Repository navigation
Fence prepared GitHub App issuance and read only committed warm material - #2470
Conversation
|
🦞👀 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 real behavior proof before merge. What this changesThis PR adds background GitHub App token preparation and a reader that returns only eligible committed material. Example: The admitted git-read grant has no committed token.
Review scores
ProductKind: Feature · Worth it: Yes · Fix scope: Partial Merge readiness⛔ Blocked before merge - 4 items remain Keep this PR open under its explicit qualification hold; dispatch fencing and required platform integration remain blocking. Priority: P2 Before merge
Findings
Tests
Agent review detailsHow this fits togetherThe component sits inside the controller's GitHub repository credential implementation, taking trusted grant admission and signing-key access and producing committed tokens for a future Resolver. flowchart TB
A[Trusted admission] --> B[Preparation owner]
K[App signing key] --> B
B --> G[GitHub token endpoint]
B --> S[Family store port]
S --> R[Warm reader]
W[Background worker] -. pending integration .-> B
R -. pending integration .-> C[Authorized Resolver]
Technical reviewBest possible solution: Integrate one durable preparation owner and authorized warm consumer, preserving the hold until withdrawal prevents unauthorized dispatch and the supported workflow is qualified. Do we have a high-confidence way to reproduce the issue? Source shows that withdrawal after readCurrent succeeds but before TCP connect leaves observeDispatch checking only time and cancellation; this path was not executed during review. Is this the best way to solve the issue? Reusing the existing signer, transport, and response validator is appropriate, but a detached admission snapshot cannot replace dispatch fencing or regular workflow integration. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 2e09588e05c3. Provenance checked
TestingProof path: in-process harness. SecurityNeeds attention: Durable withdrawal does not currently invalidate the new owner's authority at provider dispatch. EvidenceSecurity concerns:
What I checked:
Likely related people:
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 14, 2026, 6:23 PM ET / 22:23 UTC. |
DO NOT MERGE YET. Human merge required. Interface names may change.
The OpenShell compatibility test found that the current refresh bridge cannot identify distinct issuance attempts and can substitute an expiry. This adds a narrow OCE-prepared GitHub App lifecycle core, without registering a second issuer or moving every provider’s rotation into OCE.
A background owner admits the attempt before issuance, validates returned repository rights and actual provider expiry, then commits a material version. The reader only returns an eligible committed version: a cold, expired or wrong-grant read does not read the key, issue, or schedule work.
With a generated App key and local HTTPS fixture, the owner ran 128 focused tests with no skips. Independent negatives caught and fixed issuance after exact-attempt quarantine and expiry while a read was in flight. The repository fixture authenticated with the committed bytes; no live GitHub or production custody is claimed.
Next join: implement the encrypted durable family store; prove restart, takeover, withdrawal and lost acknowledgment; then connect the background worker and read-only Resolver. The current transaction fixture shares committed memory, not a production database.
Stack-tip CI repair: hosted module policy rejected importing the receipt service through concrete
state/. Move the service to neutral OCC domain code; leave storage adapters and the existing policy unchanged. The exact conformance lane then passed 1,637 tests across 101 files, with no failures or skips. Hosted rerun and installed qualification are separate.Egress Proxy RFC #1530 · Delivery and qualification gates