Repository navigation
docs(repo): state the native session request limit and the draft allowance opt-out - #3581
Conversation
…wance opt-out One native repository session admits four concurrent Git requests; the fifth answers HTTP 503. The default draftPullLimit allows one draft per grant across Agents and versions, and closing the draft does not restore it; draftPullLimit none lifts it and changes the grant identity.
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs changes before merge. What this changesThis PR documents the four-request repository session limit and the draft allowance policy. Example: An operator runs six concurrent Git requests through one Agent repository session.
Review scores
ProductKind: Docs · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Needs changes before merge - 1 item remains Keep this PR open: the documentation is useful, but its native draft-limit opt-out guidance contradicts the implementation and existing coverage. Priority: P3 Before merge
Findings
Agent review detailsHow this fits togetherNative Git requests enter the repository broker, which enforces session capacity and asks the worker to authorize prepared credential use before contacting GitHub. flowchart LR
A[Agent Git client] --> B[Repository broker]
B --> C[Session capacity]
C --> D[Prepared credential worker]
D --> E[Grant receipt storage]
D --> F[GitHub]
Technical reviewBest possible solution: Keep the concurrency guidance and describe native Git’s one-draft allowance accurately, distinguishing it from the protected sender opt-out. Do we have a high-confidence way to reproduce the issue? The source shows that a second native draft create under the same grant remains limited even with draftPullLimit none, and an existing PostgreSQL test explicitly asserts HTTP 409; no execution was performed. Is this the best way to solve the issue? Documenting the limits is appropriate, but the proposed native opt-out explanation mistakes a fresh grant’s first successful create for removal of its allowance. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against b5710af6c76b. Provenance checked
SecurityNone. EvidenceAcceptance criteria:
What I checked:
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 25, 2026, 1:08 AM ET / 05:08 UTC. |
Problem
Two native prepared Git behaviors that an operator meets in the first dogfood session are not documented:
exchangesPerSession: 4). A fifth concurrent request answers HTTP 503, and Git prints onlyThe requested URL returned error: 503. Six parallel clones from one Agent fail two of them.git-and-draft-prgrant is shared by every Agent and version holding the grant, and is not restored when the draft is closed or its branch deleted. The registry opt-outdraftPullLimit: none(accepted by the registry loader since the Credential Proxy release) appears nowhere indocs/ordeploy/.Change
docs/reference/repository-credentials/prepared-native-git.md: one paragraph on the four-request session limit, and one on the defaultdraftPullLimit: one-per-grant, theoperation_conflictanswer for a later create, and thedraftPullLimit: noneopt-out (which changes the grant identity, so a new version must deploy).Verification
Observed on a k3d install on a remote dogfood host, main 9d6220d, native prepared Git (Kubernetes Compute, dedicated Codex, no Sandbox) against a real GitHub App and a private scratch repository:
git clonefrom one Agent: 4 succeed, 2 get HTTP 503; three rounds of 6 parallelgit ls-remote: 1 or 2 get 503 per round; 10 sequential pushes all succeed.oce-github pr-create --draftgotoperation_conflictand GitHub received no request. WithdraftPullLimit: nonepublished and a new version deployed, the same create opened a new draft.apps/controller/src/drivers/repo/credentials/configuration.tsandservice.ts; accepted values fromapps/controller/src/drivers/repo/github/credentials/registry.ts.prettier --checkon the page. Docs only: no tests.Risks
Docs only. The page stays under the length budget (about 1,100 words).