docs(website): record phase 4 slice 3, and the boot-order defect it created #143
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/module-phase4-slice3"
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?
Docs half of RunicGateway/website#144 (phase 4, slice 3 — the declarative Docker path). Merge this first.
MODULE_SYSTEM.md
The slice 3 write-up in §2.7.2: why
MODULESspells out the id and the version (the offline no-op has to be a file read, not a fetch), the four decisions, the defect below, and a table of what the smoke proved against the real published v0.3.0 on a fresh database.Two sections are corrected, not merely extended:
start(), beforeapp.jsis required — which is what buys it the database, and therefore the admin-managed host allowlist and the provenance columns. A pre-flight script would have had neither.MODULE_API.md
§2.6 no longer says the fragments are replayed by
ensureSchema(). They are for every caller except the server, which now scans the volume later than it ensures the schema and so replays them itself.That was a live defect for an afternoon and the shape of it is the part worth keeping: it announced itself only as the
no module scan in this process — skipping schema fragment replayline, which is correct output fornpm run seedand means the opposite in a booting server — and on a database whose tables already existed, the module started perfectly. Every suite in that repo stubs either the loader or the pool, so none could see it; booting against an empty database did.Nothing about the contract moves — fragments still run after core's tables exist and before any
onBoot— soMODULE_API_VERSIONis unchanged. §2.5's lifecycle diagram gains the resolution step ahead ofrequire(module).BACKEND_DESIGN.md
The boot sequence in the source tree, and
MODULESbeside themodule_source_hostssetting it installs through — including that it is not a settings row and not editable from the panel.The route manifest is unchanged (166 public + 2 internal), so
api-route-inventory.jsonneeds no refresh this slice.Docs only.
AI disclosure
🤖 Generated with Claude Code