fix(demo): chown modules/ and logs/ from a root container in the wipe #228
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/demo-wipe-chown"
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 first scheduled demo wipe (run 358, 18:00 UTC) failed at
seed:demo:Everything before that worked.
planmatched Module-Rust 0.6.0 to bundle 2026.10.22,restorewrote the bundle and restarted the rig, and the app came up healthy. The seed process just loaded no modules. The same log shows why:EACCES: permission denied, open '/app/logs/app.log'. The install step'schown 1000:1000 modules logsruns as the runner user, which is not root, so it failed, and2>/dev/null || truehid the failure. The app (uid 1000) then couldn't unpack the declared module into./modules, and a module install failure isn't fatal, so the health check still passed.The fix: run the chown (
-R) in a throwawaynode:22.23.4-alpinecontainer. That image runs as root, and the runner is in the docker group, so no sudo is needed. Nothing is silenced any more, so a failure stops the run at this step. It also repairs itself on every wipe; nothing has to be set by hand on the host.(Run 351, the push-triggered wipe on #227's merge, failed earlier for an unrelated reason: it ran 28 s before Module-Rust v0.6.0 was released, so
plancorrectly refused.)How it was tested
docker runwith the same volume mount theplanstep already uses on this runner..gitea/workflows/demo-wipe.yml, so merging it triggers a wipe.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_01E14m6SuuY6i1vASFeGDBeY