Repository navigation
Add a general GitHub CLI worker - #253
nishu-builder wants to merge 1 commit into
Conversation
0fc9d82 to
c8ecc6b
Compare
c8ecc6b to
612f156
Compare
nishu-builder
left a comment
There was a problem hiding this comment.
Layer 6/8. The claim protocol (create-only CAS on refs/caos/github/<invocation>, owner-only recovery after a lost push reply, result commit chained on the claim, never stolen) is implemented as designed, and the 8-thread unit test plus the version/repeat/changed-args cases in tests/github are the right shape. Isolated GH_CONFIG_DIR/XDG_DATA_HOME, GH_REPO pinned, prompts and pagers off, stdin via a file, and caos put for the scrub all look correct. The extension is exercised by actually running it, which is what the design asked for.
Three inline comments. The one I would fix: a failed claim push with the ref still absent returns a cached uncertain result although nothing was claimed and nothing ran, so a transient error on the claim converts that tool call into "inspect GitHub" permanently. The other two are about durability of the record (it binds the full ArgTree, so a redeploy or secret re-init makes a resumed call fail as "different request") and about bookkeeping failures after gh succeeded turning into permanent uncertainty.
Generated by Claude Code
612f156 to
2ebd576
Compare
2ebd576 to
9f4fcd9
Compare
f0d6847 to
f686d9b
Compare
f686d9b to
e985bef
Compare
e985bef to
ca2c7ea
Compare
cec3323 to
71109e3
Compare
|
Closing with the rest of stack #261. #300 replaces this: GitHub calls go through an inline Generated by Claude Code |
Add std/github with GitHub CLI and pinned gh-stack v0.1.1. It accepts an explicit repository, literal arguments, optional stdin and a granted GitHub token, without a source checkout.
A durable compare-and-swap claim allows one execution per invocation. A failed claim with no stored owner is retryable. After gh executes, retry only result upload and CAS bookkeeping, up to three times; never rerun the command. Completed retries reuse the result and unfinished claims remain uncertain.
Claims bind the full pinned ArgTree, including worker and credential identity. The agent resumes the stored task. Share repository spelling validation through git-locator. The real-Git unit fixture covers competing claims, a rejected claim, transient result-write rejection and result reuse.
Validation on EC2: Nix build passed. The salted suite passed 46/47 checks in 395s; its Clippy findings were fixed, and Clippy passed on all affected crates with --all-targets -- -D warnings. Formatting passed after those lint-only fixes. HTTPS import/push, shallow-locator/offline-cache, and focused unit checks also passed. The functional suite was not repeated for the lint-only changes.