docs(modules): phase 2 as built — packaging, release and the frozen manifest #254
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/rust-phase-2"
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?
modules/rust/PLAN.mdgains §15, and the phase-2 row is marked done. Pairs with Module-Rust#2 (merged) and release v0.1.0.The criterion is met
Walked as an operator would, with the phase-1 state torn down first — the hand-copied
modules/rust/directory moved aside and itsinstalled_modulesrow deleted — so this was a first install, not an upgrade.GET /api/v1/public/rust/serversanswered 404 before it.Paste the manifest URL → "Installed Rust v0.1.0. Restart to load it." → restart →
module "rust" started. The row now carriesstate = started, the source URL andsha256 7296c76b988c…, where phase 1's had nulls in both, because a directory somebody copied has no provenance to record.Three checks that it is serving and not merely loaded: the public route answers 200, the player and admin tiers answer 401 (tier gates on, not bypassed), and all five
/rustpaths appear in/api/docs.json— the fragment merged into core's own spec.The volume received exactly the twenty files the include list names. No tests, no
server/scripts/, noci/, noclient/src/, nonode_modules, no dotfiles.What the phase found
The starting position was worse than the row implied. Phase 1 built five guards and ran every one by hand, because the repo had no
.gitea/workflows/at all — nothing gated the branch that gets released, and there was no way to release it. Hence D4: the phase covers the gate as well as the release.The frozen manifest answers a question §13 had to take on trust. §13's own registration comment says
/rustwas "checked against core's mount tables rather than assumed" — and names the limit: core mounts several public routes at a tier root (/status,/version) that the loader's collision probe cannot see. The job diffs a real core's route table with and without the module. Locally and then in CI, against the same pinned ref, agreeing exactly:The bundle carries no
node_modules(D5), and the emptiness is asserted rather than assumed — the point of the decision is that the day it stops being true is a loud day. Verified by breaking the include list, which names the exact edit.REGISTRY_TOKENwas already configured. That was the one prerequisite this work could not check for itself — the bot identity can read neither repo nor org Actions secrets. The credential check exists because the answer was unknowable from here, and the first release ran clean through it.Two things §15 is honest about
docker-compose.ymlprovides and a barenpm startdoes not — and it is core's behaviour, not this module's.mainserver row survived the reinstall. The schema fragment replayed on boot (statements: 2), exactly as R12 requires of a fragment that runs every time.One rig finding, not a module finding
Docker Desktop's Linux engine was found dead — WSL distro stopped,
uomm-dbexited, anddockeranswering every call with a bare500 Internal Server Errornaming nothing. Recorded because it presents as the website being broken, andCLAUDE.mdpoints every smoketest at that one container.Noticed, not changed
modules/rust/README.mdstill describesCARBON.mdas "not yet proven on a live Carbon server". §14.5 of PLAN.md disproves that — R19 was proven on Carbon 2.0.259.0. It is outside this phase's scope so I have left it; worth a one-line fix whenever someone is next in that file.🤖 Generated with Claude Code
https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4