Repository navigation
Capture SC2 reserved-storage lessons and delivery record in Atlas (Refs #4746) - #4846
Conversation
#4746) Adds three records: libmount fd-based mounts cannot target /proc/self/fd magic links; host root cannot create objects in a rootless container's tree (EOVERFLOW) and the guest-root setfsuid creation with its trust note; and the delivered SC2 reserved-storage contract with gaps transferred to #4650. Seeds and the driver manifest are regenerated to match. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Title scope for libmount (2.42.4 only), the delivered helper r3 identity checks and the reason fdev preferred the path target, the creation-check kernel function for mkdir, r4 as the uninstall evidence, the I/O coverage limit, and the #4650 transfer being only the rebind/persistence gap. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Independent review (fsgg-critic-best) of exact head 0be3a97: APPROVE. First pass at 68c4c97 returned changes-required (libmount title overstated beyond 2.42.4; wrong kernel function for mkdir; delivered helper r3 checks and root-only swap window missing; I/O coverage limit; #4650 scope). All were corrected at this head and re-verified against the cited comments. Mechanical checks re-run by the reviewer at this head: tests/atlas/check.py --baseline 1fac8e9 (18 OK, 380 records), catalogs and mirrors byte-identical, no baseline record removed, atlas manifest tree and all 388 rows match, skill-view-parity AGREE. Optional nits (path-component wording, one citation placement) are noted in the PR body and left as is. Required CI must be green on this head before merge, and merge stays held until fdev confirms the .github merge hold is released. |
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
fdev: captures the reusable Atlas lessons owed by the closure of #4746 (#4746 (comment), gap 5). Refs #4746 (already closed; this PR does not reopen or close anything).
New records (append-only; no baseline record changed):
environment/libmount-fd-mount-proc-fd-target(lesson): libmount 2.42 fd-based mounts fail with EINVAL atmove_mountonto a/proc/self/fd/Ntarget and surface as a generic rc 32 after the kernel has already mounted; mount on a path target with held-fd identity checks before and after. Sources: [cross-repo] V3-ENV-01: name the host provisioner and independent cleanup owner #4516 comments 6363317030, 6363451287, 6363337547, 6363512123, 6363552165.environment/host-root-cannot-create-in-rootless-container-tree(lesson): host root gets EOVERFLOW creating objects in a rootless container's overlay (the creation checkmay_create_dentry/may_create; the source comment namedmay_o_create, the open(O_CREAT) path; unmapped fsuid); create as the guest's mapped root viasetfsgid/setfsuidin a forked child. Includes the trust note (in-guest sudo means the protection is cooperative). Sources: [cross-repo] V3-ENV-01: name the host provisioner and independent cleanup owner #4516 comments 6363630329, 6363830442, 6363866613, 6363978038.environment/sc2-reserved-storage-delivered(contract): the delivered SC2 reserved storage (ope995b57e, profileeb838b6c, route per the [decision] Select the shared bounded execution route for SC2 and LEARN #4777 decision, whose comment 6362009891 amended only the identity proof, installed pins, measured results) and the gaps; only the rebind/persistence gap moved to [V3-ENV-01] Qualify unattended provisioned execution and ephemeral storage #4650. A pointer to the accepted closure, not a replacement for it.Notes: citations are file/sha256 only, so each record cites
docs/coordination/diagnostic-execution.mdat1fac8e92and says in its text that the findings rest on the cited issue comments; each states what was not established (libmount versions other than 2.42.4, other uid_map shapes, deployment currency). No private paths, logs, scripts or credentials. Seed mirrors in.agentsand.claudeandregistry/driver-skill-manifest.json(atlas file rows and tree-sha256) are updated to match; all 388 atlas manifest rows were verified against the files by hash, butgenerate-driver-manifest --checkcould not run here (it needs PyYAML and a built engine).Checks run locally:
python3 tests/atlas/check.py --baseline <1fac8e92 full sha>(18 tests OK, 380 records),scripts/skill-view-parity.sh(AGREE). A firstgenerate-driver-manifest --checkfailure was a stray__pycache__in a skill root, removed.Revised after independent review of 68c4c97 (head changed): libmount title scoped to 2.42.4, delivered r3 checks and residual swap window stated, mkdir creation-check named, I/O coverage limit and the #4650 scope corrected, r4 cited for uninstall.
Optional review nits left as is (a re-edit would move the head): the lesson's "every path component is root-owned 0700" is, per source, the components under /mnt/storage; a 6363978038 citation also covers an r3-time observation.
Rebased by merge onto main 2b93fe4 after the base moved (a concurrent Atlas capture, #4844, conflicted in the three catalogs and the driver manifest): catalogs are the sorted union (382 records), manifest rows/tree hash recomputed over main's manifest; the three records are unchanged from the approved head 0be3a97. The merge hold was released by fdev.
🤖 Generated with Claude Code