fix(cutover): gate 1 asks Steam when public was set (D397) #28
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/cutover-public-gate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
The 2026-11-05 cutover never released: gate 1 blocked every hourly run (runs 61–78). Both of its checks rested on assumptions the wipe disproved:
1632958440323253420(10/22), October's29152918520049035703647035647797862067(11/04), the wipe build, live2915291852004903570547616323393184824(11/06), a hotfix4006809933087453123releasebranch ("Release, before public") topublic, andlast-monthkeeps the previous build.Gate 1 now asks Steam (D397, org lead's choice 2026-11-06): the public static half runs
steamcmd +login anonymous +app_info_update 1 +app_info_print 258550and keeps the output asappinfo.txt.depots.branches.public.timeupdatedmust be on the wipe day or later, and the 258552 manifest Steam names forpublicmust equal the one the static half downloaded (when they disagree, that hour blocks).tools/drill/static.sh:steam_infowith BRANCH=public only (fetches steamcmd, installslib32gcc-s1on a bare runner after a first miss, three tries);steamNotein static.json.tools/drill/cutover.js:steamBranch()(parses app info past steamcmd's own lines) and the newpublicGate().manifestTime/publicChangedare gone..gitea/workflows/cutover.yml(edge's copy): the staging static half is gone. main's copy needs no change for this weekend: it still passes--staging-work, which is accepted and ignored, and its extra staging step just runs for nothing. The cutover merge carries edge's wiring to main.As soon as this is in edge, the next hourly run (:11) uses it, and the window is open until Sun 11-08 23:00 UTC.
How it was tested
node --test tools/drill/cutover.test.js tools/drill/drill.test.js: 62/62. The new tests use a trimmed copy of the real app info and the Thu 11-05 case (live Thursday evening, manifest dated 11-04).code_ref=fix/cutover-public-gate): on the real runner steamcmd ran,steamNoteis empty, andgate public: passed,gate oxide: passedon547616323393184824. Carbon and live were still running when this was opened. The result follows in a comment.Checklist
AI-assisted contributions (required)
Claude Code (Claude Opus 5.5). I have reviewed and understandevery change, and take responsibility for it. AI-authored commits are
marked with a
Co-Authored-By/Assisted-Bytrailer.License
(GNU GPL v3.0 or later), and I have the right to contribute it.
🤖 Generated with Claude Code
https://claude.ai/code/session_014HJEmgsXtLR5kLfh7f9y8P
The 2026-11-05 weekend never cut over: gate 1 blocked every hourly run. Both of its checks rested on assumptions the wipe disproved: - The wipe build went live Thursday evening, but its depot manifest is dated 11-04: the date DepotDownloader prints is when Facepunch built it. - Public never names staging's manifest. Facepunch promotes a hidden `release` branch ("Release, before public"), and staging had moved on before the wipe. Gate 1 now reads Steam's app info (steamcmd +app_info_print 258550, kept by static.sh as appinfo.txt with BRANCH=public): branches.public.timeupdated must be on the wipe day or later, and the Linux depot manifest Steam names for public must be the one the static half downloaded. The staging static half is gone from edge's cutover.yml; --staging-work is still accepted, since main's copy passes it until the cutover merge carries the new wiring over. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014HJEmgsXtLR5kLfh7f9y8P