Repository navigation
feat(ENG-017): local-git DeliveryAdapter — commit without GitHub - #7
Merged
Merged
Conversation
…thout GitHub Adds LocalGitDeliveryAdapter behind the DeliveryAdapter port: commits the coding agent's files to a local git repo (DELIVERY_BACKEND=local) in the working-code workspace, with an in-process serialization queue for concurrent tickets. verifyTicket now feeds the committed files to the QA agent so it can verify real code (api backend is tool-less), addressing the doomed-rework cost. Real-git unit tests; typecheck + lint + 98 tests green. Live run also needs fix/worker-temporal-connection. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
ENG-017 — Local-git DeliveryAdapter (commit without GitHub)
A first live run surfaced that a no-GitHub run produces no verifiable code: delivery is
GitHub-API-only, so with
GITHUB_*unset the coding agent's files are discarded and QA (tool-lessapibackend) has nothing to verify — every ticket reworks to the cap andblocked(6/6 in the run).This adds a
LocalGitDeliveryAdapterbehind the existingDeliveryAdapterport — no GitHubaccount/remote needed; a ticket can reach
doneoffline with real, inspectable code on disk.packages/integrations/src/local/delivery.ts— full port via localgit:createBranch,commitFiles(write →add→commit, returns SHA),openPullRequest(syntheticfile://ref),getChecks→ success,merge(local--no-ff); deploy hooks no-op. Per-commit identity (no globalgit config needed), path-traversal-guarded writes.
checkout -f → write → commitunits, so theheartbeat auto-starting all backlog tickets can't corrupt the shared repo.
localGitBranchFiles()reads a branch's committed files via git (not the working tree).deliveryFromEnv()returns the local adapter whenDELIVERY_BACKEND=local;implementTicketis unchanged (the port abstraction commits to the local repo). QA now verifiesreal code —
verifyTicketinjects the committed files into the assess prompt (and says "nothing toverify" when none), fixing the doomed-rework cost.
DELIVERY_BACKENDpassthrough + a./workspacebind-mount in compose;.env.exampledocumentsit.
Verification
Real-git unit tests (commit→branch→merge, concurrent commits isolated, traversal rejected, missing
repo →
[]); typecheck · lint · 98 tests green.Notes
fix/worker-temporal-connection) to reach Temporalin Docker. Both PRs touch
docker-compose.ymlin different sections (restart policy vs. volume/env).🤖 Generated with Claude Code