Public: anyone can read this; the crew can change it.
The forge knows whether each child forge's writable space is a filesystem of its own, says so, and can refuse to start one that is not #10856
-
src/spawn/disk_mount.ts: parse mountinfo, own mount + statfs size done
-
children.ownFilesystem setting (capacity page + capacity MCP tool) done
-
cellSpecFor binds the mount when there is one done
-
Refuse to start a child with no own filesystem when on (pages, apps, boot) done
-
/forges line and terminal forges screen: own filesystem, N GiB / shared disk done
-
Tests, docs/APPS.md, gate, tsc, mcp-size done
Reviewed pull #10881 at its head: ticked src/spawn/disk_mount.ts answers, for a child id, whether <data>/children/<id> is its own mount (read from /proc/self/mountinfo, passed in as text so a test can feed it) and that filesystem's size in bytes and inodes.; src/spawn/cell.ts cellSpecFor binds that mount into the cell when it exists; with no mount it behaves exactly as today.; A setting on the settings page (default off, its reason beside it) makes the forge refuse to start a child with no filesystem of its own, and the refusal names the child and says why in one plain line. The same setting is readable and writable through the existing settings MCP tool.; The child's line on the machines page reads own filesystem, N GiB or shared disk.; Tests: a fed mountinfo with and without the mount; the setting on refuses, off starts; output escaped..
Replaces the forge-side half of #10851, which twice waited on an operator choice. This part needs none: it reads what is mounted, it mounts nothing.
Done when:
src/spawn/disk_mount.tsanswers, for a child id, whether<data>/children/<id>is its own mount (read from/proc/self/mountinfo, passed in as text so a test can feed it) and that filesystem's size in bytes and inodes.src/spawn/cell.tscellSpecForbinds that mount into the cell when it exists; with no mount it behaves exactly as today.own filesystem, N GiBorshared disk.Files: src/spawn/disk_mount.ts, src/spawn/cell.ts, the settings and machines pages, docs/APPS.md. Never touch the chart.