Skip to content

The account row is fixed, and the post's own headline was wrong when it published - #92

Merged
will-lamerton merged 3 commits into
mainfrom
fix/corrections-account-row
Aug 29, 2026
Merged

The account row is fixed, and the post's own headline was wrong when it published#92
will-lamerton merged 3 commits into
mainfrom
fix/corrections-account-row

Conversation

@pip-robot

@pip-robot pip-robot Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

The post about our false claims published with one in it

/blog/what-we-got-wrong went live at 01:03 on 25 August saying "One of them is
still wrong as this goes up."
It was not. The site had been republished with its
database configuration at 17:44 the afternoon before, seven hours earlier. The
sentence was typed rather than read off the registry the rest of the page is generated
from, which is the only way it could have gone stale.

The account row is fixed, and the date it printed was wrong too

The row said 3 August, on the stated reasoning that we could not see from outside
which earlier builds carried the configuration. We can, and I should have looked before
writing a date down. Every deployment this repository publishes keeps a permanent
address, and I read the bundle out of three of them:

Build Deployed Supabase config inlined?
5e4ccbdb 9 Aug 12:30 yes
75d782b8 14 Aug 08:03 yes
fb731060 15 Aug 09:48 yes
ed2a7e26 (#86) 24 Aug 16:44 yes
691e7918 (#87) 25 Aug 00:03 yes

Every build this workflow has ever made had the variables in it. The repository
variables were never missing, and setting them was never the fix.

What actually happened is narrower and worse. The deploy workflow's run for 81d9e93 on
23 August failed at the security-audit step and skipped build and publish, so this
workflow published nothing between 15 Aug 09:48 and 24 Aug 16:44. Yet the live
site on the morning of 24 August was carrying the nine merges from 23 August, and the
15 August build still serves your profile never leaves your device at its permanent
address today. Something other than this workflow published to playpip.io on 23
August, and whatever it was built without the configuration.

Live now, verified from outside this morning rather than assumed:

  • config inlined in 2bgg_makkgv9r.js, no runtime lookup in anything the site references
  • https://gjzwwlffeygxtkxavfau.supabase.co/auth/v1/settings -> 200, email sign-up enabled
  • /rest/v1/profiles -> 200 [] anonymously; /rest/v1/memberships -> 404, still absent

So the row is 23 to 24 August, one day, not twenty-one.

Three schema changes, each because a row would otherwise have to lie

fixedInProduct. The words on /privacy were right and the product was missing, so
the fix was a deploy, not an edit. gone has to stay null: banning a fragment of that
sentence would ban the sentence we now want to go on saying. Previously the test demanded
a gone on every fixed non-post row, so the only way to record this row was to invent
one.

guardNote. A fixed row names the test that stops it recurring or says in the page
why there is none
. This row has none. scripts/assert-sync-config.mjs can only inspect
a build made by the deploy it is attached to, and that is not the deploy that went wrong.
It is also still not wired into any deploy: neither AI can push .github/workflows
without the workflows permission, and I confirmed that by trying (refusing to allow a GitHub App to create or update workflow).

The post's live state is computed. open.length drives the intro paragraph, so the
page can no longer disagree with its own list. tests/corrections.test.ts pins that and
fails if as this goes up comes back.

Row eight is this post

corrections-post-open-row is open, deliberately. A merge is the deploy, so the
stale sentence is serving until this lands and I do not know the date that will happen
on. The next session sets its fixedOn to the merge date, and the existing
"a corrected post carries its correction note" test will fail until a <Correction> note
goes under the title, which is the right forcing function.

Gate

pnpm test:all green, 474 tests, pnpm build clean, biome-formatted. The audit line
is the pre-existing moderate advisory, unchanged, no highs.

…was wrong when it published

The corrections post went live at 01:03 on 25 August saying one row was
still open. It was not: the site had been republished with its database
configuration at 17:44 the afternoon before. The sentence was typed
rather than read off the registry, so it could not have been anything
else.

Three things change.

The account row is fixed, and its date was wrong too. It said 3 August
on the reasoning that we could not see which earlier builds carried the
configuration from outside. We can: every deployment this repo publishes
keeps a permanent address, and the ones from 9, 14 and 15 August all
carry it. The fault was never a missing variable. Something other than
this repository's deploy published to playpip.io on 23 August without
the configuration, over a build that had it, and the workflow's next
deploy on 24 August put it back. One day, not twenty-one.

That row is fixed but keeps its sentence, because the words were right
and the product was missing, so 'gone' would ban the thing we now want
to go on saying. New field, fixedInProduct, and the test knows the
difference between that and a row nobody finished. It also has no guard
and says so in the page rather than in a comment: assert-sync-config.mjs
can only read a build made by the deploy it is attached to, which is not
the deploy that went wrong.

The post's claim about its own open rows is now read off the registry at
build time, pinned by a test, and the stale sentence is row eight.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deploying pip-web with  Cloudflare Pages  Cloudflare Pages

Latest commit: 80a6acb
Status: ✅  Deploy successful!
Preview URL: https://0f46d54c.pip-web-9oj.pages.dev
Branch Preview URL: https://fix-corrections-account-row.pip-web-9oj.pages.dev

View logs

pip-robot Bot added 2 commits August 25, 2026 15:10
The row said "something other than this repository's deploy" published
playpip.io on 23 August. It has a name now: a hosting-side Git integration
connected to the same Pages project, which builds every push without the
test gate and without the NEXT_PUBLIC_SUPABASE_* variables the deploy
workflow supplies. Confirmed from outside, no dashboard needed: its build
of 81d9e93 is still at c529ed3e.pip-web-9oj.pages.dev, it stamps
pip-81d9e93, it carries no supabase.co literal, and it carries the
env.NEXT_PUBLIC_SUPABASE runtime lookup that is the fault signature.

guardNote follows: the fix that holds is one publisher, which is a
hosting setting, not a line in this repository.
@will-lamerton
will-lamerton merged commit 9e202bf into main Aug 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant