auto-label: stop re-adding managed labels to closed issues (#407) #408

Merged
conductor merged 1 commits from fix-407-autolabel into master 2026-09-20 11:17:05 +01:00
Owner

Plain summary — what this fixes

Taking the bug sticker off a finished issue did not stick — the label robot put it straight back on, so the board checker could never go green for that issue (#324).

What changed

  • The label robot now skips closed issues entirely. Once an issue is closed, its stickers are history — humans and the conductor curate them.
  • The old keyword guessing (used only for very old issues without the kind spine) now runs once, at filing time, instead of on every edit.
  • The priority gate also ignores closed issues.

Verification plan (after merge)

  1. Remove bug from closed #324 via PUT labels.
  2. Wait >60s and across any label event; confirm no re-add.
  3. scripts/gitea_reconciliation_check.py green for #324.

Fixes #407. Version intent: patch.

## Plain summary — what this fixes Taking the bug sticker off a finished issue did not stick — the label robot put it straight back on, so the board checker could never go green for that issue (#324). ## What changed - The label robot now skips closed issues entirely. Once an issue is closed, its stickers are history — humans and the conductor curate them. - The old keyword guessing (used only for very old issues without the kind spine) now runs once, at filing time, instead of on every edit. - The priority gate also ignores closed issues. ## Verification plan (after merge) 1. Remove `bug` from closed #324 via PUT labels. 2. Wait >60s and across any label event; confirm no re-add. 3. `scripts/gitea_reconciliation_check.py` green for #324. Fixes #407. Version intent: patch.
conductor added 1 commit 2026-09-20 11:11:52 +01:00
auto-label: stop re-adding managed labels to closed issues; keyword fallback filing-time only
CI Pipeline / best-practices (push) Successful in 3s
CI Pipeline / documentation (push) Successful in 1s
Auto-label / priority-gate (pull_request) Skipped
Auto-label / auto-label (pull_request) Successful in 1s
CI Pipeline / canary (push) Successful in 29s
CI Pipeline / type-check (push) Successful in 26s
deploy / deploy (push) Skipped
CI Pipeline / lint (push) Successful in 34s
CI Pipeline / gitea-offline (push) Successful in 13s
CI Pipeline / lint (pull_request) Successful in 33s
CI Pipeline / best-practices (pull_request) Successful in 1s
CI Pipeline / documentation (pull_request) Successful in 1s
CI Pipeline / canary (pull_request) Successful in 29s
CI Pipeline / gitea-offline (pull_request) Successful in 12s
Spec gate (headless) / spec-gate (pull_request) Successful in 3s
CI Pipeline / type-check (pull_request) Successful in 26s
CI Pipeline / unit-tests (push) Successful in 4m43s
CI Pipeline / required-checks (push) Successful in 1s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 2s
CI Pipeline / unit-tests (pull_request) Successful in 4m40s
CI Pipeline / required-checks (pull_request) Successful in 0s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 1s
Auto-version and Release / release (pull_request) Successful in 7s
c08b211f0e
Root cause of #407: the labels job re-ran its full inference on every
issues event, including 'labeled' events on closed issues. Any label
mutation (human cleanup, bot churn) re-triggered inference, and the
spine-authoritative mapping re-added the type label to the closed issue
(#324: kind bug, closed FIXED_VERIFIED, bug label re-added within
seconds of every removal — making the reconciliation checker
permanently red for that issue).

Fix:
- Closed issues are skipped entirely; post-close label curation
  belongs to humans and the conductor. Labels are filing-time
  metadata.
- The pre-template keyword fallback now runs only on the 'opened'
  action, per its documented scope; edits and label events on
  spine-less issues no longer override human curation.
- Priority gate also skips closed issues (hygiene, same class).

Version intent: patch (workflow behavior fix, no API change).
Verification after merge: remove 'bug' from closed #324, wait >60s
across any label event, confirm no re-add; reconciliation checker
green for #324.
gitea-actions Bot added the bugcustodianinfrastructure labels 2026-09-20 11:11:57 +01:00

🤖 Headless spec gate (non-blocking, #204 first slice)

Spec-gate agent produced no text output — check runner logs.

Deterministic floors still govern the merge

This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.

🤖 **Headless spec gate (non-blocking, #204 first slice)** Spec-gate agent produced no text output — check runner logs. <details><summary>Deterministic floors still govern the merge</summary> This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.</details>
conductor merged commit 31565844d7 into master 2026-09-20 11:17:05 +01:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: conductor/rune#408