Repository navigation
Verify the Agent’s model credential in First Agent Smoke - #2921
freeqaz-openai wants to merge 1 commit into
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 maintainer review before merge. What this changesThe smoke verifies each Agent’s synthetic bearer credential and binds successful model turns to that Agent and its nonce. Example: A Codex turn requests nonce OCE_SMOKE_123 without an Authorization header.
Review scores
ProductKind: Test only · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep this PR open: it closes a real credential-delivery blind spot in First Agent Smoke, and source review found no blocking defect. Priority: P2 Before mergeNone. FindingsNone. Tests
Agent review detailsHow this fits togetherFirst Agent Smoke installs OCE on local Kubernetes, provisions Agents through existing workflows, and checks their model requests against a controlled TLS provider. flowchart LR
A[Smoke orchestrator] --> B[Agent provisioning]
B --> C[Agent runtime]
A --> D[Provider credential digests]
C --> E[TLS provider fixture]
D --> E
E --> F[Caller and nonce assertion]
Technical reviewBest possible solution: Keep credential checking in the existing provider fixture and require the expected Agent identity alongside every asserted nonce. Do we have a high-confidence way to reproduce the issue? Current-main provider handlers do not inspect Authorization, and the smoke checks only the returned nonce; the PR additionally reports successful unauthorized turns over both transports. Is this the best way to solve the issue? The change extends the existing fixture and assertion owners, preserves unconfigured fixture behavior, and uses distinct credentials to detect cross-Agent substitution. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 5963327b74b6. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
LabelsLabel changes: No label changes. Label justifications:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
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 19, 2026, 5:04 AM ET / 09:04 UTC. |
First Agent Smoke checked that its model provider answered a fresh nonce, but the provider never checked the bearer credential. I reproduced a completed model turn over both HTTPS and WebSocket with the Authorization header absent, and again with an incorrect bearer. A green smoke could therefore miss a regression in credential delivery.
The smoke now gives each Agent a distinct, disposable credential and gives the stand-in provider only the corresponding SHA-256 digests. The provider checks the bearer before handling an HTTPS request or a WebSocket upgrade. Its successful-turn event identifies the matched test Agent, and the smoke requires that identity and the turn nonce. No production authentication changes; fixture users that do not configure this check retain their existing behavior.
Verified locally with the committed fixture, real TLS, HTTPS and WebSocket on isolated loopback:
Hosted First Agent Smoke passed on this exact head. CI built the checkout images, installed OCE, and completed the credential-bound turns: embedded OpenClaw over HTTPS and dedicated Codex over WebSocket, including the turns after stop/start. Required CI also passed; it is a separate check. This proves delivery of the assigned synthetic bearer on those turns, not exclusive custody, real-provider authorization, or OpenShell qualification.
An independent source review found no blocking issue. The separate local automated review timed out without a report; that is unavailable evidence, not a passing review.