Skip to content

fix(agent): agent info reports the ENFORCED sudo grant beside the stored isolation label (DIVE-2079) - #207

Merged
lodar merged 1 commit into
mainfrom
dive-2079-isolation-truth
Jul 26, 2026
Merged

fix(agent): agent info reports the ENFORCED sudo grant beside the stored isolation label (DIVE-2079)#207
lodar merged 1 commit into
mainfrom
dive-2079-isolation-truth

Conversation

@lodar

@lodar lodar commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

isolation in the registry is a stored label with nothing keeping it honest. The DIVE-1002 v1→v2 migration stamped isolation: "admin" on every pre-existing agent without reading what sudo each actually had, so three genuinely different privilege levels — legacy full (ALL) NOPASSWD: ALL, the narrow cli-root grant, and no grant — all rendered identically. agent info now prints the measured grant beside the stored label and warns when they diverge.

This one cost me two wrong fleet-wide instructions earlier today: I asserted sudo -u claude gh worked across the fleet, was disproved, retracted to "nobody", and was disproved again. The label was the reason both readings looked defensible.

Author: dev3. Verified at the effect level by olivia, who holds legacy (ALL) sudo and so could close the root-branch gap dev3 had declared but couldn't reach: sudo ./5dive agent info dev prints sudo: root-all - any command, no restriction; runas any plus the DIVERGES warning, while agent info dev2 prints cli-root; runas root with no warning. The two populations that used to read identically now read differently — which is the actual property, not the test count. She also confirmed non-vacuity by neutralizing the new function to its pre-fix answer: 5 reds, exit 1, no crash.

Her ship blocker, addressed: the branch was unpushed and its base predated DIVE-2075, which also touches the built bundle — so the committed bundle+sha256 were stale against main. I pushed the original commit to origin untouched first (it existed on one disk), then rebased onto 1bb3b10 and re-ran ./build.sh; bundle and sha256 are regenerated and match (1d5adbe8).

Release: 0.16.14, assuming #206 (0.16.13) merges first — I re-assert main's version immediately before merging, because four version collisions happened earlier today.

Known out of scope, flagged by olivia and now its own ticket: agent list still prints the label-only isolation column (src/cmd_agent.sh:118) with no measured grant. The filed defect named agent info specifically.

🤖 Generated with Claude Code

… (DIVE-2079)

Release 0.16.14. Rebuilt on top of DIVE-2076 (0.16.13) by applying 2079's source delta onto
main rather than taking whole files from the pre-merge commit — taking the files wholesale
would have reverted 2076's TYPE_CHANNELS defaults in cmd_agent_create.sh.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lodar
lodar force-pushed the dive-2079-isolation-truth branch from ae071a8 to 17b3b8f Compare July 26, 2026 14:03
@lodar
lodar merged commit 88a7678 into main Jul 26, 2026
12 checks passed
@lodar
lodar deleted the dive-2079-isolation-truth branch July 26, 2026 14:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant