Change control — Friday 28 August
v2.4.0Nothing below is live yet. This is the release going out on Friday morning. It was drafted on Wednesday on purpose — every “before” on this page can only be measured while the live store is still serving it, and that disappears the moment the release goes out — and it was re-measured against the live store and the finished candidate on Friday morning, because the release grew by fifty-nine changes after that draft was written. Where a measurement could not be taken, the row says so in red rather than showing a number.
The one thing to take from this page, if you read nothing else. This release carries the whole of the work on what Google is allowed to read — and it switches none of it on. Four switches control it; none of the four is set on the live store, and merging on Friday does not set them. So on Saturday morning Google sees exactly what it sees today. Turning each one on is a separate, deliberate act that takes about a minute and can be undone in about a minute. The decision this page needs is which of them to turn on, and when — not whether the code is ready.
One hundred and eighty-eight changes since the 21 August release: one hundred and sixty-two on the store website, eighteen on search, eight on the order and payment services. Six hundred and fifty-two files differ between what the store runs today and what Friday would put there. Two pieces of work account for nearly all of them. The first is deciding, once and in one place, which part pages Google is invited to read, and then making every part of the site agree with that decision. The second arrived on Thursday: every page that exists on the old website now has a home on this one, which needed the parts diagrams to change address to make room. The rest are photographs moving onto our own address, and tidying up after the old database.
One correction to last week’s page before the numbers go any further. It reported sixty-two changes on the store website for 21 August. The correct figure is eighty-three. The count was taken with a tool that turned out to be reading only part of the history and gave a smaller answer without saying so; it has been checked a different way since. Nothing about what shipped on 21 August changed — only the count of it, and the same correction is why this week’s number is larger than last week’s would lead you to expect.
The unusual thing about this release is how little of it takes effect on Friday. The index work ships switched off. That is deliberate, it is reversible, and it is the subject of the first two sections. What does take effect is the second piece of work: new pages that did not exist here before, and two changes of address that carry every old address to the new one in a single hop.
What Friday actually changes on the live store — measured Wednesday, not a forecast
For Google: no change in what it is allowed to read, but two changes of address and
ten new pages. Four settings control the index work — whether a page Google is not
invited to read answers “not found”, whether the crawl instructions name parts one by
one, whether diagram pages are offered, and the master indexing switch. Read off the live store's
settings on Wednesday: none of the four exists there, and merging on Friday does not set them. The
live store's own behaviour agrees — a part page Google is not invited to read still answers
as a normal page today, and the crawl instructions still say nothing about parts. What does change
for Google on Friday sits outside those switches, and it is the fourth section: part addresses
become lower case, the parts diagrams move out of /equipment, both carrying the old
address to the new one in a single hop, and ten pages that only existed on the old website appear
on ours.
For a customer: four things, and one of them is a problem. Photographs move onto our own address, which nobody will notice and which is the point. The dealership pages from the old website — service, staff, hours, employment, the credit application — exist here for the first time. Checkout’s summary states a final amount instead of a subtotal followed by “plus shipping”, and names free shipping as free. And searching by an exact part number stops working on the test site — see the first item below. None of these four is behind a switch, so unlike the index work they take effect on Friday whether we want them to or not.
The old database is already gone, and that was not this release. It went out on Monday, Tuesday and Wednesday of this week, outside the train, and it has its own page as v2.3.1. What is left of it in this release is tidying: deleting code and comments that referred to it. None of that is visible from outside.
What the call has to decide — found Wednesday, ahead of the promote
Searching for an exact part number answers “Service Unavailable” on the test site, where the live store returns the part must settlea customer can see thisfront#3817, front#3818not on the plan
The change was a good one: type a part number into search and land on that part, instead of a results page holding a single card. On the test site it does not land on the part. It answers Service Unavailable — the page a customer sees when something is broken.
Before — the live store today/parts?q=CT-NHL-100016
answers 200 with the results grid, and the part is among the cards. q=CT-NHL-100038,
q=100412: the same. A word search, q=bearing: the same.
After — the candidate today/parts?q=CT-NHL-100016
answers 503, with no results in the page. So do q=100016,
q=CT-NHL-100038 and q=100412. q=bearing still answers 200,
so this is not search being down — it is exactly the part-number searches, which are the
ones customers actually use.
Re-measured Friday morningUnchanged on the finished candidate —
the exact tree the promote carries, not an earlier one. All four part-number searches still
answer 503; q=bearing still answers 200; the live store still answers 200 to all
five. Thursday's search fix (front#3904) is a different path: it corrected pressing Enter in the
search box at the top of the page, which now lands on the part instead of on an unrelated
diagram. Opening the results address directly is still broken.
Why it happensThe site works out that one result matches exactly and tries to send the customer straight to that part's page. By the time it decides, it has already begun sending the results page, and a redirect that arrives too late turns into an error instead. The code's own comments describe this exact behaviour having been seen on the test site, so it is a known shape rather than a new mystery.
One thing could not be established, and it decides how serious this is. Every response on both sides came back marked as served from cache, and adding a unique parameter did not force a fresh one, so this cannot tell apart “the test site produces a 503 now” from “the test site produced one earlier and is still repeating it”. The first is a reason to hold the release; the second is a stale page. Someone has to force an uncached render before Friday and say which it is. No number has been invented to cover the gap.
What is not in doubtThere is no issue tracking this. front#3817 is closed as done on the strength of front#3818, which is the change measured above. Whatever the answer, that issue is closed against work whose result has not been confirmed on a real request.
Which of the four switches to turn on, and in what order — the code is ready and no switch is set must settleGoogle can see thisfront#3809, front#3833, front#3843, front#3854plan 01
The whole index programme is behind four settings, and turning them on is the release, not the merge. Each is one setting, applied without a rebuild, and each is undone the same way. They are listed here in the order they make sense, because two of them are meaningless without the first.
1. A page Google is not invited to read answers “not found” Today a part page carrying nothing still loads as a real page and merely asks Google not to list it. Google reads such a page, decides it is thin, and holds that against the rest of the site. With the switch on, the same address answers not-found outright. Measured: a Ferris part answers 200 with a full page today and 404 on the test site, while a New Holland part that is invited answers 200 on both. So it is selective, which is the thing worth checking.
2. The crawl instructions name each invited partToday the instructions
say nothing about parts at all: 13 lines, none about /parts/. With the switch on
they hold 4,783 lines — a blanket “do not read parts”, then the 2,384 invited
parts named one at a time, in both address forms. This is the one with real consequences
if it is wrong, because it tells Google to stop reading everything not on the list.
3. Diagram pages, and what the sitemap offersToday the sitemap offers 2,415 addresses. With the switch on it offers 18,663. That is the number this week's plan quoted as 18,657 — the plan read it from the test site. The live store offers 2,415 today.
4. The master indexing switchNot set on the live store either. Nothing below it can be turned on before it is.
A decision, not a task, and it is John's: turning switch 2 on is the moment we tell Google to stop reading roughly ninety-nine per cent of the part pages it can currently see. That is the intended outcome and it is still the largest single instruction we have ever given it. It should not be turned on in the same hour as the release.
Kuhn part pages stay withheld from Google, and this release does not change that must settleGoogle can see thisfront#3666plan 01
The Kuhn brand page answers today and will answer on Saturday; what it says about itself does
not change. Measured: /parts/brand/kuhn answers 200 on both sides and carries
“do not list this page” on both. What does change on the test site is that it stops
passing Google on to the individual Kuhn parts it lists.
The reason it is withheld is unchanged and is not a decision anybody has taken this week: the Kuhn data takes between twelve and sixty-nine seconds to answer, which slows Google's reading of the whole site. It is written up as front#3666 and it has no owner. This week's plan says the same thing in the same words. Naming an owner is a one-line decision and it has now been outstanding across two releases.
What Google would read, once the switches are on — measured on the test site, where they are on
A part page nobody is invited to read: today a real page, on the test site a plain not-foundmeasuredGoogle can see thisfront#3809, front#3810, front#3827, front#3828plan 01
Before — production today/parts/CT-FER-1650347SM:
200, a 277,856-byte page, carrying noindex, follow and a canonical address pointing
at itself, with the full product description Google reads for a real product. In other words: a
page that says “do not list me” while looking exactly like a page worth listing.
After — the candidate todayThe same address: 404,
101,782 bytes, noindex, nofollow, no canonical address, and none of the product
description. Not a page pretending to be missing — a page that is missing.
The control/parts/CT-NHL-100016 answers 200 with
index, follow and its full product description on both sides. That is the
row that proves the change is selective rather than blanket, and it is the one to check first if
anything looks wrong after a switch is turned on.
Staff can still open a withheld part, at an address Google is not sent tomeasuredfront#3834, front#3843, front#3854plan 01
If a part page answers not-found, the parts desk still needs to be able to look at it. That is
what /lookup/ is: the same part, at an address that exists for people and not for
Google.
Before — production today/lookup/CT-FER-1650347SM
answers 404. The address does not exist.
After — the candidate todayThe same address answers
200 with the part on it, marked noindex, nofollow and carrying no
product description for Google to read.
The part that took four attemptsGetting this right meant walking a narrow line: the twin has to be readable enough for Google to see the “do not list me” instruction, while nothing on the site links to it. Blocking it outright would have been worse than leaving it open — an address Google is forbidden to fetch is an address where it can never read the instruction not to list it. That mistake was made and undone inside this release, which is why several of the lines at the bottom of this page contradict each other in sequence.
The crawl instructions, before and aftermeasuredGoogle can see thisfront#3806, front#3843, front#3860plan 01
Before — production today13 lines. One Allow: /, ten
Disallow lines covering the admin, account, checkout and sign-in areas and the
?highlight= addresses, and one sitemap line. Nothing about parts.
After — the candidate today4,783 lines. The same ten
Disallow lines, plus Disallow: /parts/, plus Allow:
/parts/brand/ to keep the brand pages readable, plus 4,768 lines naming 2,384
parts one at a time — each in both the full form and the bare part-number form,
because the equipment pages link to one and the search results link to the other.
The check that makes this safeThe 2,384 parts named in the crawl instructions are the same 2,384 in the sitemap. Those two lists agreeing is the whole safety property: a part offered to Google in one and forbidden in the other is a page it will fetch and fail on. A new automated check compares them on every change, and it is now part of the gate the release has to pass.
A withheld part disappears from the product feed — the brand half of it onlymeasuredfront#3835plan 01
The feed we send to Google Shopping listed products whose page will answer not-found once the switch is on. A product in the feed that leads to a missing page is the shape that gets a feed suspended, so the feed now drops those rows.
The correction inside the releaseThe first version of this dropped rows from the whole feed rather than from the brand section. That was caught and corrected within the same release — both lines are at the bottom of this page, in order, rather than the second one silently replacing the first.
The feed is not being read by anybody today. Merchant Center has never been created, which is on this week's plan as a decision waiting on John, so this change protects something that is not yet switched on. Worth doing, worth knowing.
Photographs move onto our own address — the one thing that does change on Friday
One photograph, one address, whichever host originally named itmeasureda customer can see thisfront#3803, front#3804, front#3812, front#3814, front#3820, front#3831, front#3838plan 01
Part photographs were being loaded from two different addresses depending on where they came from. One was ours; the other was a separate host. The same photograph could therefore have two addresses, be fetched twice, and be counted by Google as two pictures.
Before — production todayOn /parts/CT-NHL-100016:
112 photographs through our own resizing service, 14 from a second host, 2 from
our own images folder, and 6 video thumbnails from YouTube.
After — the candidate todayThe same page: 112 through our own resizing service, none from the second host, 5 moved onto our own address, 2 from the images folder, 5 YouTube thumbnails. The second host is gone from the page.
Also in this groupThe site now sends one image format rather than offering two, which halves what has to be produced and stored for each photograph. Brand logos that had been overridden were still being served from the old address; they moved too. And the gallery's picture sizes are now declared up front, which stops the browser guessing.
This is the only group on this page with no switch in front of it, apart from the search problem above. It takes effect on Friday.
New pages, and two changes of address — the part of this release that is not behind a switch, measured Friday morning
Twelve addresses that existed only on the old website now work on ours measureda customer and Google can see thisfront#3871, front#3872plan 03
The end state everyone is working towards is that crop.clintontractor.net replaces
the old www site. Before that can happen, every page on the old site needs a home
here, a decided redirect, or a decided drop. Andrew’s site-structure diagram is the list of
what those pages are. This is the first block of it, and the only one that needed nothing from
anyone outside the team.
Before — production todayService, the service department, booking a service, the credit application, value your trade, schedule a demo, employment, the email club, the showroom, hours and location, staff, testimonials: all twelve answer “not found” on our site and all twelve answer normally on the old one. Anyone following a link, a bookmark or a Google result to one of them landed on nothing.
After — the candidate todayTen of the twelve are real pages answering normally, and Google is invited to read them. The other two go in one hop to the page that already covers them: the service department to service, the showroom to the brands page. The site’s own map for Google grows from 31 addresses to 41 — the ten new pages are the whole of the difference.
Worth saying plainlyThese are our own words on our own pages, not a copy of the old site. Nothing about them depends on a switch, so they are live from Friday morning.
Machines and attachments for sale get their own pages — and Google is not shown them yet measureda customer can see thisfront#3871, front#3901plan 03
/equipment and /attachments now show the machines and attachments we
have for sale, in the same layout as the parts catalogue: the same cards, the same filters, the
same search. The listing data behind them is still the snapshot taken from the old site, not a
live feed — which is exactly why they carry a “do not index” instruction and
are not in the map given to Google.
Before — production today/attachments: not found.
/equipment: the parts-diagram hub, a different thing entirely.
After — the candidate todayBoth answer normally and carry
noindex. A customer who is sent the address sees the pages; Google is not invited to
them until the data behind them is live rather than a snapshot.
What this needs from the callNothing on Friday. The decision to make later is when the listings come from the live source, and only then are they offered to Google.
Every parts-diagram address moves out of /equipment, in one hop
measuredGoogle can see thisfront#3871, front#3900, front#3902plan 03
The showcase above needs the word equipment in the address, and the parts diagrams
were occupying it. So the whole diagram tree — the hub, the model index and the model and
assembly pages under them, about half a million addresses by the count in the move’s own
plan — now lives under /parts-diagrams. Every old address reaches its new one
in a single hop, keeping anything that followed the address.
Before — production today
/equipment/new-holland-speedrower-130-windrower-tier-3-non-flex-can answers 200 and
carries noindex, follow. The live map lists no model addresses at all — only
the two index pages above them.
After — the candidate todayThe same address answers 308,
one hop, to /parts-diagrams/model/ and the same name, query string intact.
The two index pages move with it and keep their place in the map under the new name.
What Google actually sees changeThe addresses, and nothing else. The setting that keeps this tree out of Google is set on the live store today — which is why the live map holds no model addresses and every model page says “do not index”. Friday moves them; it does not open them. On the test site that setting is open, which is why the test map holds 16,250 diagram addresses and the live one holds none. That difference is the switch, not the release.
Part addresses are lower case from Friday measuredGoogle can see thisfront#3886, front#3894plan 01
A part page could be reached at two addresses that differed only in capitals, and the site treated the capitalised one as the real address. From Friday the lower-case form is the real one and the capitalised form goes to it in one hop.
Before — production today/parts/CT-NHL-100016: 200,
and it names itself as the real address. /parts/ct-nhl-100016: one hop up to the
capitals. The map given to Google holds 2,389 part addresses, 2,389 of them with
capitals.
After — the candidate todayExactly the reverse, with the same 2,389 addresses and none of them carrying capitals. One hop, never two.
Why it matters and why it is safeTwo addresses for one page is the oldest way to split a page’s standing with Google between two entries. It is settled here in the only way that keeps every existing link working: the old form still resolves, in one hop, forever.
Three old redirects are removed, after sixteen months of nobody using them measuredfront#3873, front#3902plan 03
/catalog, /tires and /favorites redirected into the
store. Google’s own record for our site shows no impressions and no clicks on any of them
across its full sixteen-month window, against control addresses that returned hundreds in the
same measurement. From Friday they answer “not found” instead.
If that turns out to be wrongRestoring one is a three-line change and a deploy. The measurement says nobody arrives that way; if the site’s own error record starts showing one of them after Friday, it comes back.
Catalogue and brand pages — small, and one of them is 27 days old
The brand Diagrams tab opens on every category, not only the firstmeasureda customer can see thisfront#3224, front#3225plan 03, 05
On a brand's page, the Diagrams tab worked when the first category was selected and did nothing on the others. It now opens on all of them.
Measured/parts/brand/new-holland/diagrams answers 200 on
both sides. The page is 5.35 MB on the live store today and 4.17 MB on the candidate — 1.18
MB less to download for the same content.
Worth saying plainlyThis change waited 27 days as a draft. It is on this week's plan under “forgotten requests”, and it is the only item from that list that has actually moved. It is a small fix; the point is the 27 days, not the fix.
Search knows which brands are released to Google, and stops offering the ones that are notmeasuredsearch#933, search#934, search#938, search#942plan 01, 10
Until now the decision about which brands Google may read lived only in the storefront, and search did not know about it — so search results, the popular-parts lists and the diagram part lists could all offer a part the storefront was withholding. Search now reads the same decision from the same place, and the two agree.
This is the second half of a two-part change, and the halves ship by different routes: the storefront on Friday morning, search by a separate swap. If only one half goes out, the two disagree again — which is exactly the state this change exists to end. Both halves have to go out together, and search goes first.
Tidying after the old database — nothing visible from outside
The code that talked to the old database is deleted, along with the comments that described itmeasuredps#702, ps#704, ps#707, ps#709, front#3844, front#3857, front#3858, search#940plan 06
The old database was switched off on Wednesday morning (v2.3.1). What this release does is remove what was left pointing at it: the driver itself, 31 test settings that no longer set anything, the nightly backup job aimed at a cluster that no longer exists, and a scattering of comments that still described the old arrangement to whoever reads the code next. Nothing here is visible from outside the code.
Why it is on this page at allA comment describing a system that no longer exists is how the next person makes a wrong decision confidently. That is not a hypothetical this week — the plan for switching the old database off was itself checked against a description that had gone stale, and that is the near-miss on the v2.3.1 page.
A page that failed is no longer kept and re-served by the cachepart-measuredfront#3830plan 12
When a catalogue page cannot be built because something upstream is refusing, the site now answers with an honest “try again” that is explicitly marked as not to be stored, rather than a page that looks fine and is empty. An empty page that looks fine is the worst of the three outcomes, because Google keeps it.
Measured only in part. The marking is confirmed present on the candidate: the
failing responses carry no-store on both the browser and the network cache. What
could not be confirmed is that it works — the responses came back marked as served from
cache anyway. That is the same unresolved observation as the search item at the top of this page,
and settling one will probably settle both.
A departed colleague's name removed from thirteen places across four repositoriesmeasuredfront × 9, search#941, ps#696, ps#708not on the plan
Ownership lines, test names, code comments and a real work email address used as test data, all still naming someone who left on 20 August. Removed and, where the line stated an owner, replaced with the honest answer — which in two cases is that the lane has no owner.
Worth keepingThis did not come out of the leaving process; it came out of reading the code for something else. The accounts were closed in good order. Thirteen references outlived them, and two of those were the only record of who owned a piece of work.
Against this week’s plan — the twelve items, and what the week actually answered
The week of 24–28 August was planned as twelve items in four lanes. This is each one against what shipped, and every change higher up the page is marked with the item it answers. Two of the twelve moved a long way, four moved a little, and six did not move at all — and of the six, five are waiting on an answer from a person rather than on work. That is the honest shape of the week, and it is worth reading the right-hand column first.
| Plan item | What the week answered | What it did not |
|---|---|---|
| Vova — my queue | ||
| 01 — SEO Vova + Andrew |
Nearly all of it. Deciding once which part pages Google is invited to read, and then making the
part pages, the browse grid, the brand pages, the crawl instructions, the sitemaps, the product feed
and the saved-parts list all agree with that one decision. Photographs moved onto our own address at
the same time. With one caveat that governs the whole item: it ships switched off. Friday puts the machinery in place and changes nothing Google sees until a switch is turned on afterwards. |
The 359 parts across four brands still wait on your answer — that is the cheapest move on
the page and it has not moved in a fortnight. Forty-nine links from the product page still lead into
a closed zone. The shop. address is still undecided, and the roughly 245 sites pointing
at it are still pointing at nothing. Kuhn still answers slowly and still has no owner. The AI
descriptions are Alex’s and have not started. |
| 02 — Tests Vova |
The parked tests are cleared: of the thirty-two, twenty-seven were fixed, rewritten or deleted, and the five still parked each carry a written reason. Three of those five are parked because they have found a real fault in the product and are being left red on purpose rather than quietly adjusted to pass. The check that part addresses stay stable now blocks a bad change instead of merely reporting one. Several tests that had been passing without testing anything were given teeth, and the place-order path and the two ownership gates are now covered end to end. | The three structural items are untouched: the customer-journey checks are still not required before a change lands, a red check on the live branch can still be walked past, and nothing has checked payment overnight since 13 August. These are the three that would make a green result mean something, and none of them is work — each is a setting. |
| 03 — Moving the site structure onto crop Vova |
The largest single piece of work in this release, and it landed on Thursday. Twelve addresses
that existed only on the old website now work here, ten of them as pages of their own. The parts
diagrams moved out of /equipment so that machines could have that word, and the
machines-and-attachments showcase now lives there. The Diagrams tab also opens on every category of
a brand page rather than some. All of it is in the fourth section of this page. |
The page families that need Andrew: the parts landings and his diagram branch. His structure diagram arrived on 21 August and has not been discussed since, and the showcase still runs on a snapshot of the old site rather than on a live feed — which is why Google is not shown it yet. |
| Vova and John together | ||
| 04 — The Iron Connect / DIS API Vova + John |
Nothing. | Everything. This item did not move at all this week and nothing in this release touches it. |
| 05 — Forgotten requests Vova + John |
The oldest one shipped: the Diagrams tab, asked for twenty-seven days before it was built. | The rest of the list is still open and still unsorted. |
| Vova and Alex together | ||
| 06 — Switch off Mongo Vova + Alex |
Done, and done in production, not on a test copy. Equipment fitment moved across on 24 August, orders and the catalogue on 25 August, payment on 26 August, and the old database was deleted the same day. The eight changes in this release are what is left afterwards: deleting the driver, the backup job pointed at a cluster that no longer exists, and the settings and documents that still described it. | Nothing. This is the one item on the plan that closed. |
| 07 — John’s two mockups Vova + Alex |
Both are written down on the ideas page with what is already standing behind them and what each would need. Nothing was built. | Both. The hybrid architecture drawing also carries one line that is a decision rather than a drawing, and it is recorded there as an open question rather than agreed. |
| 08 — Infrastructure onto the OptiPlex Vova + Alex |
The nightly mobile test was moved off the window in which the office machine exports data, which it had been losing to every night. | The cost page you asked for, and the drawing of how it is now against how it should be. |
| Alex’s lane | ||
| 10 — Alex’s lane Alex |
Four of the fourteen search changes in this release are his lane’s: search now says whether a brand is released to Google, can return only the rows that are, and no longer corrupts a shared connection when a query hits its size cap. The full nightly supplier sweep also went in. | Airflow and two of his open items have not started. |
| Where the next move is not ours | ||
| 09 — AGCO first extract probably not this week |
Nothing, which is what the plan predicted for it. | — |
| 11 — My Garage John |
The test that was blocking it was repaired, so the work itself is no longer blocked from our side. | The customer-account hooks it needs are still open. |
| 12 — Andrew’s lane Andrew |
The site’s framework moved off a preview build onto the released version, with the not-found caching cost of doing so recorded rather than discovered later. | Andrew’s answers on the page families, which item 03 also waits on. |
| Not on the plan, but a real part of the week | ||
| The offboarding tail no lane |
A colleague left on 20 August and the accounts were closed in good order. Thirteen references to them survived in four repositories — ownership lines, test names, code comments and a real work email address used as sample data. All thirteen are removed in this release. | Two of those thirteen were the only written record of who owned a piece of work. Both are now recorded honestly as having no owner, which is true and is not a solution. |
Everything in this release — 188 changes, each with a one-line summary written onto the change itself
The store website162 changes 79 a customer or Google can notice
| Change | What it is | What moved | Built by |
|---|---|---|---|
| front#3871 | Going back to a search you had already run left the equipment search box empty while the page still showed the results. | search box follows an external query change | Vova |
| front#3871 | The equipment showcase now shows which filters are narrowing the list, and drops a category level nobody used. | active-filter readout added, leaf category removed | Vova |
| front#3943 | Three automated checks recognised a diagram page by a fragment of its address, and broke when the diagrams moved. | selectors match by test id, not by URL fragment | Vova |
| front#3944 | A cart test failed on a phone-sized screen because it waited for a count that renders off-screen. | toBeAttached instead of toBeVisible | Vova |
| front#3940 | A filtered listing for a held brand kept its 'do not index' instruction only when the brand was spelled one exact way. | brand value normalised before the robots decision | Vova |
| front#3946 | Choosing a held part from the search dropdown sent the customer to an address that answers not-found. | one resolver for every suggestion row | Vova |
| front#3932 | A note in the code still said the equipment pages were unreachable, after they had moved and become reachable. | comment corrected | Vova |
| front#3939 | The payment smoke test bought a part the index gate now hides, so it failed on the test site rather than on a real fault. | buyable SKU resolved at run time | Vova |
| front#3920 | Sign-in carried the page you came from inside its own address, and that value could be pointed at an outside site. | return path off the URL; only same-site paths accepted | Vova |
| front#3930 | A shared-cart link with a malformed code is now rejected before it reaches the cache, and the staff email no longer contradicts its own subject line. | token shape checked outside the cached path | Vova |
| front#3937 | Checkout said 'Total $975.94 + shipping' and quoted a delivery charge that no longer exists; it now states the final amount, with tax as a footnote. | order total is final, shipping reads Free, approved lane titles | Vova |
| front#3947 | The release's own index check judged a result by which event started it rather than by what it measured. | gate scoped by measured surface | Vova |
| front#3913 | The main shop button on nine of the ten carried brand pages led to an empty list: Landoll showed nothing where its own catalogue holds 4,767 parts. | brand CTA points at /parts/brand/<slug> | Vova |
| front#3871 | Typing in the equipment showcase now filters the list on the page as you type. | client-side filter over the loaded rows | Vova |
| front#3938 | The same index check ran against a surface that cannot answer it, and reddened work that was fine. | gate runs only where the switches exist | Vova |
| front#3871 | The equipment page said the same sentence twice, once in the heading and once in the toolbar. | duplicate subline removed | Vova |
| front#3871 | A single machine's page now reads like a part page rather than like a different site. | unit page adopts the PDP hero | Vova |
| front#3871 | The equipment list now uses the same cards, filters and density controls as the parts catalogue. | showcase listing adopts the /parts design language | Vova |
| front#3184 | Overnight delivery was offered on the basis of a back-order flag rather than on whether the depot actually holds the part. | cnh-overnight decided by depot availability | Vova |
| front#3871 | The phone menu still linked to the old website. | legacy www link removed | Vova |
| front#3871 | The new dealership pages are linked from the footer, so they can be found without knowing the address. | dealership column added to the footer | Vova |
| front#3871 | The equipment showcase is written in customer language, with our own calls to action above the fold. | customer-voice copy, CTAs above the fold | Vova |
| front#3871 | The attachments page offered filters describing whole machines rather than attachments. | /attachments filter rail describes the attachment slice | Vova |
| front#3918 | The new pages carried a breadcrumb trail in the markup that a reader could not see; both now agree. | one trail feeds the visible nav and the markup | Vova |
| front#3916 | The All-parts dialog over a diagram linked held parts to addresses the index gate answers not-found on. | held rows render as plain text in all three tables | Vova |
| front#3904 | Typing a part number and pressing Enter opened a diagram of an unrelated machine instead of that part. | submit routes by the row that answers the query | Vova |
| front#3902 | The check that old assembly addresses still redirect now runs on every change, not only in the deep run. | assemblies 308 cases run on every PR | Vova |
| front#3900 | A test still asserted the diagram hub was permanently gone, after it came back. | 410 assertion replaced by the live shape | Vova |
| front#3902 | An old assembly address reached its new home in two hops; now it takes one. | legacy assemblies tail redirects in one hop | Vova |
| front#3900 | The moved diagram code stays inside the same code-quality gates it had before the move. | moved tree kept under the fallow and comment gates | Vova |
| front#3872 | The eleven new pages repeated the same closing block and the same list markup; both are now written once. | call-us close and ItemList schema folded into helpers | Vova |
| front#3900 | The lowercase-address checks follow the diagrams to their new home. | lowercase assertions carried onto the moved tree | Vova |
| front#3902 | One place now holds the address map for the move: redirects, cache tiers, navigation and the sitemap. | redirect map, CDN tiers, nav and sitemap moved together | Vova |
| front#3872 | Eleven dealership pages that exist on the old website and answered not-found on ours now exist: service, credit application, employment, staff, testimonials, hours and location among them. | 11 static dealer routes added | Vova |
| front#3901 | Machines and attachments for sale now have their own pages, at the address the site structure calls for. | /equipment, /equipment/{id} and /attachments serve the showcase | Vova |
| front#3900 | Every parts-diagram address moves out of /equipment and into /parts-diagrams, one hop, so the equipment name is free for machines. | model tree moved to /parts-diagrams/model, query preserved | Vova |
| front#3906 | The image service would follow a redirect to an address it had never been allowed to fetch. | optimizer maximumRedirects set to 0 | Vova |
| front#3909 | A duplicate copy of the photo-address rules is deleted, so the two copies cannot drift apart. | one bucket map, one loader; 51 lines removed | Vova |
| front#3894 | Part addresses are lower case everywhere now, and the capitalised form reaches them in exactly one hop. | every /parts/ URL served lowercase, uppercase 308s once | Vova |
| front#3908 | A sign-in field left timers running after it disappeared, which reddened whichever unrelated test run was unlucky. | 0 timers pending after unmount | Vova |
| front#3905 | Test covering that a held row in a parts list is not turned into a link. | three cases pin the index-held branch | Vova |
| front#3895 | A notification could still appear in dark colours after the store was pinned to light. | toaster follows the forced theme | Vova |
| front#3891 | Which photo folders are pre-sized is declared in the code now, instead of in a hosting setting the repository cannot read. | coverage read from BAKED_WIDTHS, env override retired | Vova |
| front#3889 | The sign-in pages were blocked from being read, which also blocked the 'do not index' instruction written on them. | /sign-in and /sign-up unblocked, canonical added | Vova |
| front#3883 | With no setting present, the pre-sized photo folders defaulted to none; they now default to all three that are baked. | empty env resolves to every baked prefix | Vova |
| front#3873 | Two old redirects that Google has not followed once in sixteen months are removed. | /catalog and /tires alias rules deleted | Vova |
| front#3881 | A photo address carrying a query could be mistaken for a vector drawing and skip the optimiser. | vector test reads the path, not the raw string | Vova |
| front#3880 | Brand logos shipped at full size: 963 KB of one brand page's 1.35 MB of images. They go through the optimiser now. | raster brand marks lose the unoptimized flag | Vova |
| front#3879 | Two workflow notes stated a rule that is not true, and believing it removes the only way to run those checks by hand. | headers corrected, each citing its measurement | Vova |
| front#3877 | Production's branch required no checks at all while the test branch required five; a weekly report now watches that asymmetry. | weekly guard reads main's ruleset | Vova |
| front#3875 | A control inside the account area switched the whole store to dark for that customer, on every later visit. | light theme forced, stored dark cleared | Vova |
| front#3865 | The Brands menu in the header showed names where the logos belong. | brand marks restored in the header and hub strip | Vova |
| front#3868 | The photo optimiser fetched originals back through our own protected edge instead of the media address. | optimizer source is the absolute media origin | Vova |
| front#3867 | The brand Diagrams tab opened on a chooser instead of on the grid of all categories. | bare tab renders the all-categories grid | Vova |
| front#3863 | The toolbar change from the day before had no tests; twelve assertions now hold it in place. | 12 assertions, dependency check at zero violations | Vova |
| front#3862 | The brand diagram page showed the same row of category buttons twice, one under the other. | duplicate Categories chip strip removed; one strip renders where two did | Vova |
| front#3685 | A checkout test that fills an address twice ran out of time on a busy build machine and reddened unrelated work. | own timeout budget for the double-fill case; no product code touched | Vova |
| front#3854 | Brand pages were being judged against a rule written for part pages, so the check flagged pages that were correct. | anchor check matches by path prefix, not by one literal address | Vova |
| front#3854 | The check that guards this whole release now reads redirects out of the page body, so it can no longer be fooled by one. | audit gate asserts the robots anchor and follows body-level redirects | Vova |
| front#3860 | The crawl instruction file names some pages exactly and some by prefix; the checker treated an exact name as a prefix and passed pages it should have failed. | $-anchored Allow lines now read as exact paths | Vova |
| front#3854 | Google could still reach a held part page by one hop from a page it is invited to read; that hop is closed, so the 'do not index' instruction can finally be obeyed. | last discovery hop to /lookup removed | Vova |
| front#3858 | Comments in the code still described the old database as the live source after it was switched off. | comments corrected; no behaviour change | Vova |
| front#3225 | The Diagrams tab on a brand page only appeared for some categories; it now appears for all of them. | brand Diagrams tab opens on every category | Vova |
| front#3857 | A cache module still carried a departed colleague's name and a comment block that had drifted from the code. | name removed; comment block brought back under the ratchet | Vova |
| front#3843 | Per-part crawl permissions were written loosely enough to also permit addresses underneath them. | per-SKU Allow lines anchored with $ | Vova |
| front#3854 | Several places on the site linked to held part pages without checking whether they were held; they now check. | verdict-blind link surfaces stop advertising held PDPs | Vova |
| front#3854 | Every link to a part page is now built by one piece of code, so the held/not-held decision cannot be forgotten in one corner of the site. | all /parts/ hrefs routed through a single emitter | Vova |
| front (direct) | A test fixture used a real work email address as sample data. | neutral address substituted | Vova |
| front (direct) | A hook test used a real colleague's name as a sample co-author. | neutral fixture substituted | Vova |
| front (direct) | Documentation aside naming a departed teammate, and repeating what the paragraph above already said. | aside removed | Vova |
| front (direct) | Documentation described a feature by who built it rather than what it does. | described by role instead | Vova |
| front (direct) | A test's own name contained a departed teammate's name. | test renamed | Vova |
| front (direct) | A setup note told a specific departed person to provision a key. | note addressed to the action, not a person | Vova |
| front#3857 | Brand code still carried the old database's collection names and field maps, which now point at nothing. | dead collection names and field maps deleted | Vova |
| front (direct) | An ownership line named someone who had left. | owner line corrected | Vova |
| front#3854 | Whether a part page is offered to Google was decided in several places that could disagree; it is now decided once, with two named policies. | one index verdict, two named policies | Vova |
| front#3852 | A breadcrumb check failed the /lookup pages for not carrying data those pages deliberately omit. | audit learns the nav-without-schema shape | Vova |
| front#3851 | A check that part addresses stay stable was running where it could not stop a bad change; it now blocks. | slug stability promoted into the blocking lane | Vova |
| front#3843 | Structured product data was being sent from both the public part page and its held twin; only the public one should carry it. | structured data emitted on /parts, never on /lookup | Vova |
| front (direct) | An ownership record for catalogue baselines named a departed colleague. | recorded as vacant | Vova |
| front#3843 | The held twin of a part page still sent Google product data, which invites indexing of a page we asked it not to index. | gated /lookup render emits no structured data | Vova |
| front#3844 | Comments claimed equipment browsing read the old database. | comments corrected | Vova |
| front#3843 | A customer's saved-parts row linked to the held twin of a part in a way a crawler could follow. | fav row renders the twin crawler-invisible | Vova |
| front#3843 | The held part pages were both blocked from being read and told not to be indexed, which cancel each other out; the block is lifted so the instruction can be read. | links removed, Disallow restored, held brands nofollow | Vova |
| front#3835 | A filter meant to drop one brand's rows from the Google product feed dropped the whole feed. | filter drops the brand half only | Vova |
| front#3833 | The release's own guard did not catch a readable page linking to a blocked address; now it does. | audit flags crawlable page linking a blocked URL | Vova |
| front#3840 | A filtered listing for a held brand said one thing while the brand's own page said another. | ?manufacturer= listing agrees with its brand hub | Vova |
| front#3835 | The Google product feed still advertised parts whose pages now answer not-found. | feed drops rows whose PDP the gate 404s | Vova |
| front#3839 | Blocking a page from being read also blocks the 'do not index' instruction on it from being read. | /lookup/ unblocked so its noindex is legible | Vova |
| front#3838 | Gallery images can now declare their real sizes, because every image finally has them. | /gallery baked widths declared | Alex |
| front (direct) | A part-page test raced a lazily loaded panel. | test waits the import out | Vova |
| front#3837 | One route to a brand's parts list forgot to record that a part was held. | brand BOM route stamps indexHeld too | Vova |
| front#3834 | Test covering that a held related part links to its twin rather than to a dead address. | new test case | Vova |
| front#3834 | Related-part cards on a part page linked held parts to addresses that now answer not-found. | related cards link the /lookup twin | Vova |
| front#3833 | A harness that checks the whole index decision end to end, so this release can be verified rather than argued about. | index-gate validation harness added | Vova |
| front#3833 | That harness now runs inside both automatic site checks. | harness wired into both SEO gates | Vova |
| front#3834 | A held row in the catalogue linked nowhere at all. | held row links its /lookup page | Vova |
| front#3831 | The same photograph could be published under two different addresses depending on which system named it. | one photo, one image URL | Vova |
| front#3830 | A page that failed to build was being stored and re-served by the cache. | degraded responses marked no-store | Vova |
| front#3828 | A part page could still answer normally while carrying a 'do not index' instruction, which is the exact ambiguity this release removes. | 200-with-noindex is now impossible | Vova |
| front#3818 | Searching an exact part number landed on a grid holding one card instead of on the part. | exact SKU search lands on the part | Vova |
| front#3824 | A test waited for a diagram page's images before checking the address. | wait decoupled from images | Vova |
| front#3822 | A test treated an out-of-stock part as a missing page. | OOS part asserted as a rendered PDP | Vova |
| front#3820 | The site generated every photograph in two formats and served one. | AVIF kept, WebP dropped | Vova |
| front#3810 | The core change: a part page Google is not invited to read now answers not-found, and held rows are cut from the browse grid. | noindex equals 404, behind a switch that is off | Vova |
| front#3814 | The image loader was wired conditionally, so some pages bypassed it. | loader wired unconditionally | Vova |
| front#3812 | The image optimiser still fetched originals from an outside address. | optimiser source moved on-origin | Vova |
| front#3807 | The proposed crawl cut would have severed the brand listing pages along with the part pages. | brand listing subtree kept crawlable | Vova |
| front#3806 | The cut would also have severed every equipment link, which uses the bare part-number form. | bare-PN form allowed too | Vova |
| front#3804 | Brand marks that had been overridden by hand were still served from an outside address. | overridden marks on our own host | Vova |
| front#3801 | Storefront images served without optimisation still pointed at an outside address. | unoptimized images on our own host | Vova |
| front#3797 | Brand logos were served from an outside address. | brand logo marks on our own host | Vova |
| front#3799 | The remaining image surfaces still pointed at an outside address. | every remaining surface on our own host | Vova |
| front#3802 | A crawl check was pointed at part pages that are deliberately held, so it measured the wrong thing. | crawler pointed at index-eligible PDPs | Vova |
| front#3795 | A test run with no search address configured started the app anyway and failed later, confusingly. | fails before the webServer starts | Vova |
| front#3796 | Product data sent to Google named a photograph at one address while the page named it at another. | JSON-LD image matches og:image | Vova |
| front#3793 | First version of the held-page decision: answer not-found rather than answering normally with a 'do not index' tag. | 404 instead of 200 noindex | Vova |
| front#3791 | Every image address on the site now runs through our own domain rather than an outside one. | all image URLs published via /img/* | Vova |
| front#3789 | A nightly mobile test ran during the window the office machine exports data, and lost to it every night. | moved off the export window | Vova |
| front#3654 | Moved the site's framework off a preview build onto the released one, and recorded the not-found caching behaviour that costs us. | next 16.3.0-preview.10 -> 16.3.1 | Vova |
| front#3786 | A checklist for a flip that already happened, and a runbook whose own numbers disagreed with each other. | checklist retired, numbers reconciled | Vova |
| front#3779 | Animation library update. | framer-motion 13.1.1 | Vova |
| front#3778 | Six development-tool updates, none of which touch the site itself. | six dev-tooling majors | Vova |
| front#3783 | The runbook did not mention the switch that controls the crawl cut, so anyone following it would have missed it. | runbook documents the switch | Vova |
| front#3776 | The brand Diagrams tab downloaded 1.5MB more than it needed, and nothing was stopping it growing. | 1.5MB removed, budget added | Vova |
| front#3770 | A test signed in as one role and overwrote the session of another. | role session loaded, not overwritten | Vova |
| front#3780 | Parallel test jobs shared one mock delivery port, so they answered each other's requests. | own port per job, probe checks identity | Vova |
| front#3781 | The crawl instruction file can now name only the part pages Google is invited to read — behind a switch that is off. | robots.txt cut, default-off flag | Vova |
| front#3773 | Recorded that a page answering normally while carrying 'do not index' was the design, before this release changed it. | documentation | Vova |
| front#3771 | Product feed descriptions shouted the part type instead of naming what the part fits. | descriptions name the fitment | Vova |
| front#3772 | The brand Diagram view had no heading naming it. | h1 added | Vova |
| front#3757 | A page that failed to build looked like a normal page to our own checks. | error-boundary marker detected as soft-503 | Vova |
| front#3764 | Thirty-two parked tests, each either fixed, rewritten or deleted with the reason recorded. | deep-lane quarantine cleared, 32 specs | Vova |
| front#3765 | A checkout test pressed Pay before the page was ready. | waits for React first | Vova |
| front#3763 | A listing that briefly failed rendered the generic error screen rather than an honest try-again. | 503 body instead of the boundary | Vova |
| front (direct) | Recorded that account-level free shipping cannot express our heavy-item carve-out. | documentation | Vova |
| front#3744 | A brand-catalogue part number that does not exist answered normally instead of not-found. | 404 instead of soft-200 | Vova |
| front (direct) | Thirty-four hand-written colours reconnected to the design token they were copied from. | 34 hardcoded colours tokenised | Vova |
| front (direct) | A test helper was exported although nothing outside its file called it. | export removed | Vova |
| front (direct) | Brand marks were shifting the layout because their box was reserved from the wrong ratio. | ratio matched to the reserved box | Vova |
| front (direct) | A settings check failed on a setting whose value is itself structured data. | JSON-valued env vars accepted | Vova |
| front (direct) | Parked-test notes that the fixes in the same branch had made untrue. | notes refreshed | Vova |
| front (direct) | A search-suggestion test raced its own typing delay. | cache held cold instead | Vova |
| front (direct) | A size budget was being measured against a development build, which is always larger. | refuses to weigh a dev document | Vova |
| front (direct) | Brand marks on part pages were judged by the image rather than by the space reserved for it. | judged by the reserved box | Vova |
| front (direct) | Two test files were erroring or skipping rather than testing anything. | specs made to run | Vova |
| front (direct) | Part-page and listing tests still pointed at the old page structure. | re-anchored on the v2 rewrite | Vova |
| front (direct) | Catalogue filter tests pointed at controls the site does not render. | pointed at real controls | Vova |
| front (direct) | Suggestion tests picked rows by position, which moved. | selected by group; sentinel derived live | Vova |
| front (direct) | Buy-path tests clicked before the page was interactive. | clicks after hydration | Vova |
| front#3734 | The search address defaulted to the port the site itself runs on, so it called itself. | no self-referential default | Vova |
| front (direct) | Recorded a full browser test-run baseline so failures can be triaged against something. | baseline recorded | Vova |
| front (direct) | Three comment blocks brought under the duplication ratchet. | 3 comment blocks | Vova |
| front (direct) | Coverage baseline refreshed. | ratchet baseline | Vova |
| front (direct) | Assertions that could not fail were rewritten to be able to. | no-op assertions given teeth | Vova |
| front (direct) | Pinned the two gates that keep an internal endpoint and a debug view out of production hands. | revalidate bearer + debug-config gates pinned | Vova |
| front (direct) | The place-order path is now covered end to end. | new end-to-end coverage | Vova |
| front (direct) | Pinned the checks that stop one customer reading another's quote or order. | quote and order ownership gates pinned | Vova |
| front#3740 | Addresses containing dot segments could slip past the proxy's routing prefix. This one is already live — it went to production on 21 August and has been brought back here. | dot segments rejected; already in production | Vova |
| front#3512 | Two test cases reported success while quietly finding nothing. | cases report what they found | Vova |
| front#3735 | When a part page's title was too long, it dropped either the brand or the manufacturer's part number; it now keeps both. | title keeps brand and OEM part number | Alex |
| front#3738 | The Google product feed advertised availability states Google rejects. | disapproved states removed | Vova |
Search18 changes 11 a customer or Google can notice
| Change | What it is | What moved | Built by |
|---|---|---|---|
| search#952 | The brand parts listing ignored the instruction to show only the rows Google is invited to read. | indexableOnly honoured on the brand listing | Vova |
| search#949 | Search could hand back the address of an attachment, which the storefront has no page for. | ATTACHMENT slugs dropped from search and variants | Vova |
| search#946 | The same wrong address could come out of the assembly lanes. | ATTACHMENT slugs dropped from the assembly lanes | Vova |
| search#944 | The federated-brand lane ignored the same show-only-indexable instruction. | indexableOnly applied on the federated-brand lane | Vova |
| search#942 | The browse-grid cut was applied across all vendors on a row instead of only the row's own. | cut scoped to the row's own vendors | Vova |
| search#941 | An ownership line named a colleague who had left. | owner line corrected | Vova |
| search#940 | The health response still declared fields for two systems it no longer talks to. | elasticsearch and mongodb fields removed | Vova |
| search#933 | Popular parts and diagram parts lists did not carry whether a part is offered to Google, so the store could not tell. | registry verdict attached to both lanes | Vova |
| search#933 | Search results themselves did not carry that verdict either. | registry verdict attached to results | Vova |
| search#938 | Whether a brand is released to Google was read from a stale copy; it now reads the record that decides it. | read from indexing_blocks | Vova |
| search#938 | The brand summary now states whether a brand is released to Google, so the store stops guessing. | /api/brands/summary carries the flag | Vova |
| search#937 | A query stopped at its size cap was cancelled mid-flight, which corrupted the shared connection and affected the next customer's search. | capped queries no longer cancelled | Vova |
| search#934 | Search can now return only the rows that are offered to Google, which is what the browse grid needs. | indexableOnly=true added | Vova |
| search#931 | A part page asked for its fitment summary one part at a time; it is now supplied with the part. | fitment summary projected onto Part | Vova |
| search (direct) | Four guards in a deploy check were written so they could not fail. | guards made real if/else | Vova |
| search#884 | A finding about duplicate results was blocking deploys while still under discussion. | moved out of the hard gate | Vova |
| search (direct) | Brand-merge test fixtures were copied from a June response and had drifted from reality. | fixtures derived from the response | Vova |
| search (direct) | A test suite was passing without exercising anything. | one-part-one-card guarded | Vova |
The order and payment services8 changes 1 a customer or Google can notice
| Change | What it is | What moved | Built by |
|---|---|---|---|
| ps#709 | Documentation still named the old database as the live boundary for orders. | documentation corrected | Vova |
| ps#708 | An ownership line named a colleague who had left. | owner line corrected | Vova |
| ps#707 | A nightly backup job still targeted the cluster that has been deleted. | backup path deleted | Vova |
| ps#705 | The repository guide named the wrong backup secret, which would have inverted the order of a deletion. | secret name corrected | Vova |
| ps#704 | Thirty-one test settings stubbed a database connection that no longer exists. | 31 env stubs dropped | Vova |
| ps#703 | Two deploy descriptions still claimed a database binding neither service has. | headers corrected | Vova |
| ps#702 | The old database's driver and everything that existed only to serve it, deleted from the payment service. | driver and dependents deleted | Vova |
| ps#700 | Unbound the payment service from the old database, which turning the flags off had not done. This one is already live — it went to production on 26 August and this is the same change arriving by the normal route. | prod and dev unbound; already in production | Vova |
What is live now, and what Friday would replace it with — the exact thing to go back to
The left of each pair was read off the running systems on Wednesday 26 August and is unchanged since. The right is what the promote would put there; the storefront value is Friday morning’s final cut, not Wednesday’s — the train was re-cut to carry everything that landed after the draft. Going back means going back to the left. Unlike last week, this table is complete: nothing in it says “not read”.
| Storefront | 137e97ed2 → 13760cd0d | Read off the live address
rather than off the newest build, which are not always the same thing: the deployment currently
answering crop.clintontractor.net was built from 137e97ed2 on the live
branch. Vercel keeps the previous build, so going back is one button. |
|---|---|---|
| Search | crop-search:678b7af2 → crop-search:2394e78b | Search is
promoted by swapping the image rather than by merging, and both sides now live under the same
registry path — the renamed-path trap that made last week’s rollback address unusual
does not apply here. Serving from search-api-00042-fim, all traffic, nothing pinned. |
| Search rollback name | search-api-00042-fim | The revision to send traffic back to. It is routable by name until it is deleted, so the safe rollback does not touch images at all. |
| Services | d9915efe → b6482b8b | Order and payment services. Note that the left-hand side already moved twice this week outside the release train, on 25 and 26 August, for the database switch-off — both are recorded on the 26 August page. What Friday carries is the tidying up afterwards. |
| Services, as actually running | catalog-service-recycle-20260826-090026 payment-service-recycle-20260826-090026 |
Both services are running revisions created by the nightly restart at 09:00, not by a deploy. That restart is what holds a known memory problem in check while its cause is still open. Each is pinned to an exact image rather than to a moving label, which is what makes them safe to go back to. |
| Database | unchanged | No migration in this week’s storefront or search work, and none runs with the release. The database work this week was the switch-off, which already happened and is on its own page. |
| The four switches | not set → not set | The row that matters most for what Friday changes. None of the four settings that control the index work exists on the live store today, and the promote does not create them. Going back does not require touching them either. |