docs(website): Phase 2 PR 9 — the modules mount, and Phase 2 complete #134
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/module-compose-volume"
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#136. Records the last Phase 2 PR and closes the phase.
§2.5 amended: a bind mount, not a named volume
The section said modules get "the same treatment
uploadsalready gets", reaching for a named volume by analogy. The build settled it the other way, and the reason is in that same section: hand-placing a module directory is a supported install, and a named volume routes it throughdocker cpinto a running container — the least discoverable mechanism Docker offers, for the one install path an operator without the admin panel has. Nothing else about install, uninstall or purge changes.Two things the plan had not considered
Both are silent failures rather than errors, which is why they are written down:
root:rootand the container runs as uid 1000 — so deletingmodules/from a checkout breaks the next install with a permission error that names no cause..dockerignorehas to exclude it, becauseCOPY . .would bake a builder's checked-out module into every image, and Docker seeds a fresh named volume from image contents — so it could have surfaced on a deployment that never installed it.Also
MODULE_API.md§4.1 gains the concrete Compose values, and states outright that a missing modules directory is not an error — the loader has always caught and returned, and the contract never said so.The PR 9 entry records the container verification: the §7.7 browser smoke was re-run against the containerised stack rather than a working tree, and the negative case (directory removed by hand →
startup_failed/require) confirms the §2.4 rule end to end.Phase 2's exit criterion held:
routes.manifest.jsonwent 229 → 230 across the whole phase, and the one added line is PR 6's deliberateGET /api/v1/public/modules.🤖 Generated with Claude Code
https://claude.ai/code/session_018ocYxQWk3EhZe5gWRJXFU8