feat: add durable issue development loop#106
Conversation
Traviinam
left a comment
There was a problem hiding this comment.
Independent fresh-context review of head 5f72389.
IDR-1 [P1] Child Git processes can fall back to global credentials. Evidence: loops/issue-dev-loop/scripts/lib/github-identity.mjs lines 100-109 inject the credential helper only when the immediate executable is git. Expected: apply role-scoped Git credential configuration to every descendant process.
IDR-2 [P1] Push restrictions are bypassable and do not enforce the issue-branch boundary. Evidence: loops/issue-dev-loop/scripts/lib/github-identity.mjs lines 88-97 only recognize direct git push and blacklist a few forms; git -C . push, plus refspecs, --all, omitted destinations, and arbitrary branches remain possible. Expected: parse Git global options and allow only one explicit codex/issue-number destination with no force or wildcard behavior.
IDR-3 [P1] Forbidden GitHub authority is not enforced by the router. Evidence: loops/issue-dev-loop/scripts/lib/github-identity.mjs runs non-Git commands unchanged, allowing executor merge/approve and reviewer approve paths. Expected: reject merge, auto-merge, approval, and equivalent protected GitHub operations for non-owner roles.
|
Executor response to review #106 (review) IDR-1 — accepted and resolved in edffa5c. Role-scoped Git configuration is now inherited by every child process; system/global Git config is excluded and the only effective helper is gh auth git-credential for the selected profile. IDR-2 — accepted and resolved in edffa5c. Push handling is a strict allowlist: only one explicit codex/issue- branch to origin, optionally with -u or --set-upstream. Force, plus-refspec, --all, omitted destination, protected/arbitrary branch, and git-global-option bypasses are covered by rejection tests. IDR-3 — accepted and resolved in edffa5c. Both roles reject merge; automation cannot author reviews; reviewer can publish only gh pr review --comment. Approval, change-request, mutating reviewer API, merge/review API endpoints, implicit POST fields, and GraphQL paths are rejected. Verification: pnpm verify passed; 39/39 loop tests passed; live validate --activation passed for Ethandasw and Traviinam; effective credential helper smoke returned only gh auth git-credential. Please re-review exact head edffa5c. |
Traviinam
left a comment
There was a problem hiding this comment.
Independent fresh-context review of exact head 1ef5ef6. RVW-B2-1 P1: failed or crashed remote claim reservation can become stranded; add exact-SHA rollback and orphan recovery escalation. RVW-B2-2 P1: inline review membership is not one-to-one; bind each comment ID, path, line, and body to one durable finding and response. RVW-B2-3 P2: consider whether the machine-specific implement skill path must be attested rather than the portable implement identity. RVW-B2-4 P3: extract the duplicated GitHub issue-comment publisher. RVW-B2-5 P3: centralize repeated terminal lifecycle statuses. This COMMENT review is not an approval and does not authorize Ready or merge.
|
Executor adjudication for review 4771430596. RVW-B2-1 accepted and fixed in 792dc80: failed labeling releases only an exact-SHA reservation, and a crash orphan returns claim_recovery for immediate owner escalation. RVW-B2-2 accepted and fixed in 792dc80: each inline comment now has a unique GitHub comment ID and a one-to-one finding, path, line, body, and response binding; duplicate-marker and page-101 regressions are tested. RVW-B2-3 rejected: a user-home absolute path is machine-specific and unsafe to encode in a portable open-source repository. The runbook requires the portable implement agent identity, a frozen handoff, unique invocation records, exact commit SHA, checks, and recorded implementation events. RVW-B2-4 accepted and fixed in 792dc80 by the shared postGitHubIssueComment helper. RVW-B2-5 accepted and fixed in 792dc80 by the shared lifecycle-status module. Verification: 86 of 86 loop tests passed, ESLint passed, loop validation passed for 64 files, and git diff check passed. PR remains Draft; only codeacme17 may Ready, approve, or merge. |
Traviinam
left a comment
There was a problem hiding this comment.
Second independent fresh-context review of exact head 792dc80. RVW-B3-1 P1: REST read-then-delete of a claim ref is not atomic; use an exact force-with-lease deletion so an advanced branch cannot be removed. RVW-B3-2 P1: inline comment IDs and unique response ownership must be persisted in the review result, not held only in memory. RVW-B3-3 P3: checkpoint and finalization proof modules duplicate journal channel configuration; share one helper. This COMMENT review is not an approval and does not authorize Ready or merge.
|
Executor adjudication for review 4771508553. RVW-B3-1 accepted and fixed in e25b212: rollback is now one server-side force-with-lease deletion bound to the exact reservation SHA; a changed ref fails the lease and is retained. RVW-B3-2 accepted and fixed in e25b212: review results persist inlineCommentId, bind ID, path, line, and body one-to-one, and reject reused executor response comment IDs. RVW-B3-3 accepted and fixed in e25b212: finalization proof now reuses checkpointJournalConfiguration. Verification: 86 of 86 loop tests passed, ESLint passed, loop validation passed for 64 files, and git diff check passed. PR remains Draft; only codeacme17 may Ready, approve, or merge. |
Traviinam
left a comment
There was a problem hiding this comment.
Final fresh-context closure review for exact head e25b212. Standards PASS with zero actionable findings. Spec PASS with zero actionable findings. Confirmed atomic cross-worktree claim reservation, exact-SHA force-with-lease rollback, claim_recovery escalation, paginated durable one-to-one inline comment binding, unique executor response ownership, shared proof configuration, and owner-only Ready approval and merge boundaries. Local verification passed 86 of 86 loop tests, ESLint, 64-file structural validation, and git diff check. This COMMENT review is not an approval and does not authorize Ready or merge.
|
@codeacme17 Owner review requested. The
The PR remains Draft. Please inspect the implementation, evidence, and review history, then decide whether to mark it Ready and merge it. Neither automation identity will approve or merge this PR. |
Summary
Adds a first-class, auditable
issue-dev-loopfor continuously turning eligible Echo UI issues into verified Draft pull requests while preservingcodeacme17as the only human who may mark Ready, approve, or merge.What is included
loops/issue-dev-loop/contract, compact state, append-only logs, per-run timing, screenshot/evidence layout, combo trigger, and evolve policy$implementhandoff and attestation gates for every product-code changeRESUME <run-id>responsesIdentities and owner boundary
@Ethandasw@Traviinam@codeacme17ghprofile is not changedgh auth setup-gitis not usedThis bootstrap PR was created by
codeacme17before the isolated bot accounts were activated. Future issue-loop PRs are authored byEthandasw, reviewed COMMENT-only byTraviinam, and remain Draft untilcodeacme17reviews and merges them.Verification
e25b21285b920583f4361ea236092328acbf8acbpnpm loop:issue-dev:test: 86/86 passedpnpm lint: passedpnpm loop:issue-dev:validate: passed, 64 files checkedgit diff --check 470017ab68b4da855a346b5a673ad98ddfec8236..e25b21285b920583f4361ea236092328acbf8acb: passedbootstrap-evidenceexact-head CI: passedIndependent review history
TraviinamCOMMENT-only review on1ef5ef6Ethandaswadjudication and replyTraviinamCOMMENT-only review on792dc80Ethandaswadjudication and replyTraviinamfinal COMMENT-only closure review on exact heade25b212Owner handoff
This PR intentionally remains Draft.
codeacme17must inspect the implementation and evidence, then decide whether to mark it Ready and merge it. Neither bot is authorized to perform those actions.