ci(bump-callers): make an empty area-label roster fail loudly - #333
Conversation
ALLOW_EMPTY has been "true" since this fleet shipped. That is correct exactly
once — before the first caller is enrolled — and the workflow's own comment said
to flip it "as soon as the roster secret is seeded with its first entry".
It never was. AREA_LABEL_CALLERS did not exist at all, so every run logged
roster: 0 caller(s), sha256 n/a (roster empty or unset)
AREA_LABEL_CALLERS has no callers yet — nothing to bump for area-label.
and concluded SUCCESS, while both live callers sat at the pin they merged with
for a month and every area-label change shipped past them. A green no-op is
indistinguishable from a working fleet, which is what let it go unnoticed.
The roster is now seeded (Comfy-Org/github-workflows-ops#10), so an empty one
means the secret was lost or clobbered — a state that must be loud.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (1)
Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour. 📝 WalkthroughWalkthroughThe area-label caller bumper now fails when ChangesCaller Roster Validation
Priority: ⬇️ Low 🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Comment |
There was a problem hiding this comment.
🔍 Cursor Review — Consolidated panel
Triggered by @mattmillerai.
Every reviewer in the matrix failed to contribute — see the panel summary for which cells errored, and the run logs for the underlying cause.
Panel: 0/6 reviewers contributed findings.
Reviewers that did not contribute: claude-opus-5-thinking-max:adversarial (error), gpt-5.6-sol-max:adversarial (error), kimi-k3-high:adversarial (error), claude-opus-5-thinking-max:edge-case (error), gpt-5.6-sol-max:edge-case (error), kimi-k3-high:edge-case (error)
ELI-5
ALLOW_EMPTY: "true"tells the bumper that finding zero callers is fine. That is true exactly once in a fleet's life — before the first caller is enrolled — which is why this file's own comment said to flip it "as soon as the roster secret is seeded with its first entry".It never was flipped, because the roster was never seeded. The secret did not exist at all. So every run of this fleet, from the day it shipped, did this:
…and concluded success. Green check, no annotation, nothing to notice.
Meanwhile there were two live callers the whole time, both sitting at the pin they merged with while area-label changes shipped past them for a month. A green no-op is indistinguishable from a working fleet — that's the actual defect here, not the stale pins, which are only its symptom.
What changed
One value,
"true"→"false", and the comment rewritten to say what the flag now means and to carry the incident so the next person doesn't reintroduce it.The roster is seeded as of Comfy-Org/github-workflows-ops#10, and the first real run confirms it loads:
That digest matches
jq -cS . rosters/area-label.json | sha256sumin the ops repo, which is the documented way to prove the live secret is exactly the committed file. With the roster populated, an empty one from here on means the secret was lost or clobbered — andgh secret setoverwrites wholesale with no read-back, so that is a realistic failure worth reding the run for.Why not leave it permissive
The counter-argument is that a hard fail on an empty roster is noise if someone decommissions the fleet. But decommissioning is a deliberate act that removes the workflow, and this repo already treats a silently-not-bumping fleet as the expensive failure — AGENTS.md calls the missed-enrolment step "the most repeated mistake here" and records that the groom fleet lost its own caller the same way. Between a false alarm on an intentional teardown and another month of invisible drift, the alarm is cheaper.
Verification
check_workflow_pins.pygreen. No script change, so no suite applies; the bumper's empty-roster branch is already covered by.github/bump-callers/tests/.🤖 Generated with Claude Code