fix(dev-loop): close proof-guard gaps from the dev-loop PR stack - #1078
Merged
Merged
Conversation
Follow-up nits from reviewing #1075/#1076/#1077 (all merged): - aeon.yml "Commit read-only failure log" step now also skips prove-* dispatches. A proof run re-runs a read-only skill on the PR's attested head branch; on a failed run this step would commit memory/logs and push a stray commit onto the very head the proof must not move. The sibling "Commit results" step already had this guard; this closes the asymmetry. - telegram-route.sh dev-loop target regex tightened from (#[0-9]+)? to (#[1-9][0-9]*)?, matching the workflow validator (dev-loop-pr.sh). The router no longer accepts #0 / zero-padded refs that the workflow would reject downstream, wasting an Actions run. Header side-effects note now mentions the chain-runner.yml dispatch path. - test_idea_pipeline_dev_loop_offer.sh: the pick: no-force-reply guard was vacuous - its sed range start pattern omitted the backticks around ${var} that SKILL.md actually has, so it captured 0 lines and could never fail. Fixed the pattern (now captures the block, still passes). - test_telegram_route.sh: added a regression case asserting a #0 issue ref is rejected at the router edge.
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.
Follow-up to the merged dev-loop stack (#1075, #1076, #1077) - closes the review nits.
Changes
aeon.yml proof-head invariant (the real one). The "Commit read-only failure log" step lacked the
!startsWith(inputs.dispatch_id, 'prove-')guard that its sibling "Commit results" step has. A proof run re-runs a read-only skill on the PR's attested head branch; on a failed run this step would commitmemory/logs/and push a strayaeonframeworkcommit onto the very head the proof is meant to leave immutable. Fail-closed (the proof then flunks the SHA re-check), but it contradicts the invariant feat(dev-loop): require live behavioral proof, not just review #1075 headlines. Now skipped forprove-*dispatches.telegram-route.sh target regex. Tightened
(#[0-9]+)?->(#[1-9][0-9]*)?to match the workflow validator indev-loop-pr.sh. The router no longer accepts#0/ zero-padded issue refs that the workflow rejects downstream (wasting an Actions run). Stale header side-effects note now mentions thechain-runner.ymldispatch path.Vacuous test guard.
test_idea_pipeline_dev_loop_offer.sh's "pick: sends no force-reply" guard captured 0 lines - its sed range start pattern omitted the backticks around${var}that SKILL.md actually has, so thegrepran on empty input and could never fail. Corrected pattern now captures the 16-line block and still passes.Regression test. Added a
test_telegram_route.shcase asserting a#0issue ref is rejected at the router edge.Note: the reviewer's suggested "redundant case-arm" nit on
dispatch_dev_loopwas not applied - the char class[a-zA-Z0-9_.-]excludes#, so the secondcasealternative is actually required to matchowner/repo#Ntargets.Verification
All local tests pass:
test_idea_pipeline_dev_loop_offer.sh,test_dev_loop_proof.sh,test_telegram_route.sh(incl. new case).shellcheck -S errorclean on telegram-route.sh; aeon.yml parses.