Repository navigation
queue: repair the automation — filing gate, push retry, silent failures - #76
Merged
Merged
Conversation
Three faults kept #69/#71/#72 open since 2026-08-28: - queue_filing.yml never checked PyAutoBrain out beside the repo, so the gate's pytest (and Claude's own in-prompt gate) died on 30 tests/test_board.py theme-import errors on every run since dcd1e2c (2026-08-24). Add the sibling checkout, matching validate.yml, before the Claude step. - queue_actions.yml's push retry rebased a stale commit and discarded the action on conflict (#69). Rebuild instead: fetch, reset --hard to the moved main, re-run the idempotent action script, re-commit. - queue_actions.yml never reported its own failures (the close step is implicitly if: success()). Add an if: failure() report step, same shape as queue_filing.yml's. Closes #75. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C4so7jVxLUyBjfVsxnLNom
Adversarial-review finding: after reset --hard, a re-apply that errors (no-section, a crash swallowed by || true) also leaves a clean tree, and the retry would exit 0 — closing the issue on attempt 1's stale status. Accept the clean tree as "already landed" only when the re-run returned one of the scripts' idempotent statuses, and surface what actually landed to the close step (steps.push.outputs.status wins over attempt 1's). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C4so7jVxLUyBjfVsxnLNom
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #75. Mind prompt:
active/repair_queue_automation_filing_gate.md(batch 2026-08-31-pm, membermemory-queue-filing-gate,--auto).The dashboard's per-paper buttons file issues that were never acted on — #69, #71, #72 open since 2026-08-28, all three picked up, all three runs failed. Three distinct faults, three fixes, both files workflow-only:
What changed
queue_filing.yml— the gate has been environmentally broken since 2026-08-24. dcd1e2c moved the board theme intoPyAutoBrain/board/_theme.pyand added the sibling checkout tovalidate.ymlandknowledge_board.yml, but not here — sopython -m pytest tests/ -qdies on 30tests/test_board.pytheme-import errors after Claude has already filed the paper, on every run. Added thePyAutoLabs/PyAutoBraincheckout (path: PyAutoBrain, matchingvalidate.yml), placed before theclaude-code-actionstep because Claude's in-prompt step 5 runs the same pytest and cannot fix a missing checkout.queue_actions.yml— the push retry discarded the action on conflict.git pull --rebase origin main || exit 1lost queue add: A Population Study for Searching Supermassive Binary Black Holes in Active Galactic Nuclei: Continuum Spectral Features and Periodic Variabilities #69's commit to a content conflict against a sibling queue commit. The retry now rebuilds instead of rebasing: fetch,reset --hard origin/main, re-run the action script (idempotent:already-there/already-gone/already-done), re-commit, 3 attempts. A clean tree after re-apply counts as "already landed" only when the re-run returned an idempotent status — an error status exits 1 so the failure step reports it. The close step reports the status that actually landed (steps.push.outputs.statuswins over attempt 1's).queue_actions.yml— failures were silent. The close step is implicitlyif: success(), so a died push left the issue open with no comment (why queue add: A Population Study for Searching Supermassive Binary Black Holes in Active Galactic Nuclei: Continuum Spectral Features and Periodic Variabilities #69 read as "never swept" rather than "failed"). Added anif: failure()report step, same shape asqueue_filing.yml's.On the prompt's open question (why
concurrency: queue-actionsdidn't serialise #68/#69): the group holds at most one running + one pending run, and near-simultaneous enqueues can race the group check (a third arrival also cancels the pending run). The fix deliberately does not rely on serialisation — the retry is conflict-proof regardless, which is what the prompt requires.Autonomous-ship gate (five legs, batch launch)
make validate+ fullpytest tests/ -q: 169 passed with the Brain in reach; without it the exact 30test_board.pyfailures of the broken CI gate reproduce (red/green basis for fix 1). No downstream library repos (organism repo) — n/a.no-test-changes,config-or-schema— workflow YAML is outside the repo's pytest reach; retry semantics verified instead by a scratch-repo simulation of the exact queue add: A Population Study for Searching Supermassive Binary Black Holes in Active Galactic Nuclei: Continuum Spectral Features and Periodic Variabilities #69 conflict shape, both sibling and our change landing). Verdict CLEAN after resolving the adversary's findings (below). Witness disposition: basis-cited — cannot execute pre-merge (label-triggered workflows run the file frommain), so the basis is the local red/green repro plus live-log confirmation that runs 33202478094/33418598499 died at exactly the diagnosed step after the Claude step succeeded.PyAutoMind/batches/2026-08-31-pm.md(YELLOW 65, acked at dispatch: manifest drift on local checkout origins; CI-status measurement blindness in the web container). No Heart checkout in this container to re-measure — the same blindness the batch record acks; no new reason observed in this task's blast radius.Flagged decision (decide-and-flag, batch launch — the one per this PR): effective autonomy is
supervised(= min of the prompt'ssafeheader and thebugwork-type cap), which at ship sign-off parks the task until the human's slot. Taken instead: open this PR (the shift's dispatch budgeted this membernotify/0 review-minutes and its expected-effect line is "merges into PyAutoMemory; filing automation resumes opening PRs"). Rejected alternative: parkawaiting-inputon #75, costing the shift. One-command revert: close this PR (gh pr close 76/ the Close button) — no state exists beyond this branch.Post-merge validation (human checklist — the prompt's close-out)
queue-intakelabel (the trigger islabeled, so it must be re-applied, not just present). Witness: thequeue_filing.ymlrun goes green and opens a filing PR, where every run since 2026-08-24 showsfailure.queue-intakeoff/on) → second filing PR.queue_actions.ymltriggers on issuesopened, notlabeled, so re-applyinginterests-adddoes nothing — instead re-run its failed run 33180301104 (the old push conflict was transient; a re-run uses the original workflow version but should now push cleanly with no concurrent sibling) or tap the dashboard button again for that paper. Expect: paper moves into the reading queue, issue closes with a comment.knowledge_board.ymlandarxiv_refs.ymlstill carry the discardinggit pull --rebase origin main || exit 1retry and write the same queue files — worth the same conflict-proof shape via$intake.Generated by Claude Code