feat(orchestrator): W3 artifacts tree, ancestry, gates and token-free cleanup
Artifacts show the branch tree with ancestry and gate marks. The cleanup runner calls pkgmgr branch cleanup with its real argv and parses its repos[*].items output, refuses any plan with a remote-branch action, marks an item done only when pkgmgr reports it done, and offers no delete for a branch a worktree holds. Every text states what the pkgmgr command does to volumes. Committed below the bar on the operator's word 2026-11-12 (no further per-bundle tests, one gate after the merge): the W3 e2e never ran; the client switches to --local once pkgmgr ships it. 🎯 Fix: 90 % 💥 Break: 6 % 💸 Cost: 30 % ⏱️ Time: 40 % 🛡️ Security: 100 % 🏆 Score: 100 🚦 Gate: ⛔ break 6 % > 5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
fd8fc08603
commit
f7a59d43a5
33 files changed
+1998
-107
No files matched your search
@@ -0,0 +1,273 @@
|
||||
{
|
||||
"generated_at": "2026-11-12T11:14:56+00:00",
|
||||
"host_pid_namespace": true,
|
||||
"delete_ready": false,
|
||||
"delete_reason": "no GitHub token in the Secret Service",
|
||||
"repos": [
|
||||
{
|
||||
"path": "@ROOT@/repos/github.com/anon/web",
|
||||
"remote": "git@github.com:anon/web.git",
|
||||
"default": "main",
|
||||
"missing": false,
|
||||
"known": true,
|
||||
"forge": "unavailable: no GitHub token in the Secret Service",
|
||||
"scanned_at": "2026-11-12T11:14:56+00:00",
|
||||
"warnings": [
|
||||
"forge unavailable: no GitHub token in the Secret Service"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"branch": "chore/ancestor-local",
|
||||
"worktree": null,
|
||||
"head": null,
|
||||
"detached": false,
|
||||
"locked": null,
|
||||
"worktree_state": null,
|
||||
"staged": null,
|
||||
"unstaged": null,
|
||||
"untracked": null,
|
||||
"upstream": null,
|
||||
"ahead": null,
|
||||
"behind": null,
|
||||
"gone": false,
|
||||
"local_sha": "1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b",
|
||||
"remotes": {},
|
||||
"compose_projects": [],
|
||||
"images": [],
|
||||
"state": "merged-clean",
|
||||
"merged": true,
|
||||
"dirty": 0,
|
||||
"merged_by": "ancestor",
|
||||
"merged_into": "origin/main",
|
||||
"unpushed": null,
|
||||
"last_activity": 1783873160,
|
||||
"size_bytes": null,
|
||||
"skip": "forge unavailable",
|
||||
"actions": [
|
||||
"local-branch"
|
||||
],
|
||||
"reason": "merged by ancestor",
|
||||
"result": null,
|
||||
"flow": null
|
||||
},
|
||||
{
|
||||
"branch": "fix/remote-merged",
|
||||
"worktree": null,
|
||||
"head": null,
|
||||
"detached": false,
|
||||
"locked": null,
|
||||
"worktree_state": null,
|
||||
"staged": null,
|
||||
"unstaged": null,
|
||||
"untracked": null,
|
||||
"upstream": "origin/fix/remote-merged",
|
||||
"ahead": 0,
|
||||
"behind": 0,
|
||||
"gone": false,
|
||||
"local_sha": "2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c",
|
||||
"remotes": {
|
||||
"origin": "2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c"
|
||||
},
|
||||
"compose_projects": [],
|
||||
"images": [],
|
||||
"state": "merged-clean",
|
||||
"merged": true,
|
||||
"dirty": 0,
|
||||
"merged_by": "ancestor",
|
||||
"merged_into": "origin/main",
|
||||
"unpushed": null,
|
||||
"last_activity": 1783873160,
|
||||
"size_bytes": null,
|
||||
"skip": "forge unavailable",
|
||||
"actions": [
|
||||
"local-branch",
|
||||
"remote-branch:origin"
|
||||
],
|
||||
"reason": "merged by ancestor",
|
||||
"result": null,
|
||||
"flow": null
|
||||
},
|
||||
{
|
||||
"branch": "feature/open",
|
||||
"worktree": null,
|
||||
"head": null,
|
||||
"detached": false,
|
||||
"locked": null,
|
||||
"worktree_state": null,
|
||||
"staged": null,
|
||||
"unstaged": null,
|
||||
"untracked": null,
|
||||
"upstream": null,
|
||||
"ahead": null,
|
||||
"behind": null,
|
||||
"gone": false,
|
||||
"local_sha": "3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
|
||||
"remotes": {},
|
||||
"compose_projects": [],
|
||||
"images": [],
|
||||
"state": "unmerged",
|
||||
"merged": false,
|
||||
"dirty": 0,
|
||||
"merged_by": null,
|
||||
"merged_into": null,
|
||||
"unpushed": 2,
|
||||
"last_activity": 1783873160,
|
||||
"size_bytes": null,
|
||||
"skip": "forge unavailable",
|
||||
"actions": [],
|
||||
"reason": "unmerged: 2 commits not in origin/main",
|
||||
"result": null,
|
||||
"flow": null
|
||||
},
|
||||
{
|
||||
"branch": "main",
|
||||
"worktree": "@ROOT@/repos/github.com/anon/web",
|
||||
"head": "4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e",
|
||||
"detached": false,
|
||||
"locked": null,
|
||||
"worktree_state": "clean",
|
||||
"staged": 0,
|
||||
"unstaged": 0,
|
||||
"untracked": 0,
|
||||
"upstream": "origin/main",
|
||||
"ahead": 0,
|
||||
"behind": 0,
|
||||
"gone": false,
|
||||
"local_sha": "4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e",
|
||||
"remotes": {
|
||||
"origin": "4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e"
|
||||
},
|
||||
"compose_projects": [],
|
||||
"images": [],
|
||||
"state": "protected",
|
||||
"merged": true,
|
||||
"dirty": 0,
|
||||
"merged_by": null,
|
||||
"merged_into": null,
|
||||
"unpushed": null,
|
||||
"last_activity": 1783873160,
|
||||
"size_bytes": null,
|
||||
"skip": null,
|
||||
"actions": [],
|
||||
"reason": "default or protected branch",
|
||||
"result": null,
|
||||
"flow": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "@ROOT@/repos/git.example.org/anon/notes",
|
||||
"remote": "ssh://git@git.example.org/anon/notes.git",
|
||||
"default": "master",
|
||||
"missing": false,
|
||||
"known": true,
|
||||
"forge": "none",
|
||||
"scanned_at": "2026-11-12T11:14:56+00:00",
|
||||
"warnings": [],
|
||||
"items": [
|
||||
{
|
||||
"branch": "topic/ancestor-local",
|
||||
"worktree": null,
|
||||
"head": null,
|
||||
"detached": false,
|
||||
"locked": null,
|
||||
"worktree_state": null,
|
||||
"staged": null,
|
||||
"unstaged": null,
|
||||
"untracked": null,
|
||||
"upstream": null,
|
||||
"ahead": null,
|
||||
"behind": null,
|
||||
"gone": false,
|
||||
"local_sha": "5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f",
|
||||
"remotes": {},
|
||||
"compose_projects": [],
|
||||
"images": [],
|
||||
"state": "merged-clean",
|
||||
"merged": true,
|
||||
"dirty": 0,
|
||||
"merged_by": "ancestor",
|
||||
"merged_into": "origin/master",
|
||||
"unpushed": null,
|
||||
"last_activity": 1783873160,
|
||||
"size_bytes": null,
|
||||
"skip": null,
|
||||
"actions": [
|
||||
"local-branch"
|
||||
],
|
||||
"reason": "merged by ancestor",
|
||||
"result": null,
|
||||
"flow": null
|
||||
},
|
||||
{
|
||||
"branch": "topic/patch-local",
|
||||
"worktree": null,
|
||||
"head": null,
|
||||
"detached": false,
|
||||
"locked": null,
|
||||
"worktree_state": null,
|
||||
"staged": null,
|
||||
"unstaged": null,
|
||||
"untracked": null,
|
||||
"upstream": null,
|
||||
"ahead": null,
|
||||
"behind": null,
|
||||
"gone": false,
|
||||
"local_sha": "6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a",
|
||||
"remotes": {},
|
||||
"compose_projects": [],
|
||||
"images": [],
|
||||
"state": "merged-clean",
|
||||
"merged": true,
|
||||
"dirty": 0,
|
||||
"merged_by": "patch",
|
||||
"merged_into": "origin/master",
|
||||
"unpushed": null,
|
||||
"last_activity": 1783873160,
|
||||
"size_bytes": null,
|
||||
"skip": null,
|
||||
"actions": [
|
||||
"local-branch"
|
||||
],
|
||||
"reason": "merged by patch",
|
||||
"result": null,
|
||||
"flow": null
|
||||
},
|
||||
{
|
||||
"branch": "master",
|
||||
"worktree": "@ROOT@/repos/git.example.org/anon/notes",
|
||||
"head": "7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b",
|
||||
"detached": false,
|
||||
"locked": null,
|
||||
"worktree_state": "clean",
|
||||
"staged": 0,
|
||||
"unstaged": 0,
|
||||
"untracked": 0,
|
||||
"upstream": "origin/master",
|
||||
"ahead": 0,
|
||||
"behind": 0,
|
||||
"gone": false,
|
||||
"local_sha": "7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b",
|
||||
"remotes": {
|
||||
"origin": "7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b"
|
||||
},
|
||||
"compose_projects": [],
|
||||
"images": [],
|
||||
"state": "protected",
|
||||
"merged": true,
|
||||
"dirty": 0,
|
||||
"merged_by": null,
|
||||
"merged_into": null,
|
||||
"unpushed": null,
|
||||
"last_activity": 1783873160,
|
||||
"size_bytes": null,
|
||||
"skip": null,
|
||||
"actions": [],
|
||||
"reason": "default or protected branch",
|
||||
"result": null,
|
||||
"flow": null
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user