fix(forgejo): make guard honour the surface its caller passes #935
No reviewers
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/devrel
role/eval
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/sysadmin
role/tpm
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure!935
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/label-taxonomy-guard-surface"
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?
Fixes the second failure, and the converge has now run successfully against all three orgs.
What was wrong
#934 added a
WRITEconstant and passed it intoguard().guard()went on hardcoding"forgejo"and ignoring the argument, so the invocation becameaosguard ops forgejo forgejo-admin org-label edit ...and aosguard answeredNo help topic for 'forgejo-admin'.My patch half-applied and I did not check that it had.
Why the tests did not catch it
This is the part worth reading. #934's tests asserted
write_argv's output and the two surface constants. They never asserted the command line those two combine into. The only piece that was wrong was the only piece nothing covered, which is the same shape as the bug #934 set out to fix, one layer down.Five tests now assert the full argv handed to
subprocess.run:forgejo-admin, a read toforgejoNegative control run, because a test that has never failed proves nothing: reintroducing the exact bug fails two of them, and removing it turns all 30 green.
The converge ran
Identical on
coilyco-bridgeandcoilyco-flight-deck. Exit 0.No issue lost its label
Verified structurally rather than by counting. Every renamed label kept its id:
role/engineer360 torole/platform360 in gaming, 382 to 382 in flight-deck, and so on for all six in both orgs sampled. Issue-label association is by id, so a rename cannot drop one.The apparent count shortfall against my pre-rename baseline is entirely issues in
coilysirenuser-owned repositories. Those carry their own repo-level labels, were explicitly out of scope, and still hold the retired names. Every per-label gap reconciles against them exactly. That is agent-compose#343, which now has a number attached: 18 issues stranded on retired label names.Refs coilyco-flight-deck/agent-compose#342