From 6438a87ab50b5cf80c3b95974e4325964efa0b76 Mon Sep 17 00:00:00 2001 From: Nils Lehnen <30603423+iderex@users.noreply.github.com> Date: Sun, 23 Aug 2026 05:35:28 +0200 Subject: [PATCH] Read the catalogue address in the runbook as it answers [#67] The cutover runbook told a reader performing the move that a 404 on the catalogue address is what it answers today, and that it is not evidence the move went badly. It answers 200 now, so that sentence inverted the reading it was written to help: on the day of the move a 404 there would be the move having dropped the file, which is the failure this issue exists to refuse, and the runbook said to read past it. Three statements are repaired and they are not the same kind. Step 9 said what a 404 means at that moment. It now says both paths answer 200 today, so a 404 at either is a dropped file, and it keeps what a 404 used to mean with the date it stopped meaning it, because a reader who knows only the new sentence cannot tell why the old one was ever right. The paths section said /manifest.json does not answer today. It says what it answers and that this repository does not author what it carries, which is record 0006's position for that file and is why it is carried rather than built. The state-before-the-change block keeps its 2026-08-11 reading unedited, because that section exists so a rollback restores a state rather than guesses at one. A paragraph beside it says which single line has been overtaken and what the path answers now, so the block is still the state it records and no longer reads as the state to expect on the day. for p in /manifest.json /design-tokens.json; do printf "%-40s " "https://flowfin.dev$p" curl -sS -o /dev/null -w "%{http_code}\n" "https://flowfin.dev$p" done https://flowfin.dev/manifest.json 200 https://flowfin.dev/design-tokens.json 200 Run 2026-08-23. The means is prose in the document that already holds this sequence, because what changed is what a reader is told and there is nothing here a check could decide: no reading of this tree says what a public name answers, which is why that class lives in the harness outside the gate. No decision record is edited. 0006 and 0008 both paste the same 404, and under the rule in decisions/README.md a change to 0006 is not a correction, because it changes what a reader would decide after reading it. That needs a new record and is left where it belongs. Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com> --- docs/domain-cutover.md | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/docs/domain-cutover.md b/docs/domain-cutover.md index 3578058..b919217 100644 --- a/docs/domain-cutover.md +++ b/docs/domain-cutover.md @@ -76,6 +76,17 @@ What answers, and with what: https://flowfin.dev/design-tokens.json 200 https://flowfin.dev/manifest.json 404 +One line of that reading has been overtaken, and it stays as it was printed +because this section exists so that rolling back restores a state rather than +guessing at one. The catalogue address answers now: + + curl -sS -o /dev/null -w '%{http_code}\n' https://flowfin.dev/manifest.json + 200 + +Run 2026-08-23. So a rollback restores an origin that serves that path, which is +what step 9 reads for, and the reading above is the state on 2026-08-11 rather +than the state to expect on the day. + A request over plain http is answered with a redirect rather than served: curl -sS -o /dev/null -w 'http->%{http_code} %{redirect_url}\n' http://flowfin.dev/ @@ -258,9 +269,11 @@ nothing reports it broken. Read it deliberately, with the token file beside it: done What each of those should answer at that moment depends on what step 4 carried. -A `404` on the catalogue address is the state before anything is published -upstream and is what it answers today; it is not evidence that the move went -well. +Both answer `200` today, so on the day of the move a `404` at either of them is +the move having dropped a file rather than a state to read past. A `404` on the +catalogue address is also the state before anything is published upstream, and +that is what it meant until 2026-08-23; it has stopped meaning that, and neither +reading is evidence that the move went well. ### 10. Record what the move produced, from outside @@ -290,7 +303,8 @@ not become a dead link. `/install/`, `/plugins//`, `/privacy/`, `/legal/` and `/404.html` are new. Nothing links to them today, so nothing breaks by their arriving. -`/manifest.json` does not answer today and is the commitment record 0006 holds. +`/manifest.json` answers today with a `200`, carrying a catalogue this +repository does not author, and it is the commitment record 0006 holds. It is the reason #67 refuses a publish rather than completing one. `/design-tokens.json` answers today with a `200`, is authored in the repository