Repository navigation
fix(console): hide policy denial controls for a version without a sandbox - #3667
Conversation
…dbox A version without a Sandbox has no denial log. Policy denials said so but still showed the loaded-window count, Refresh denials, Follow, the filter and Refresh suggestions, which could only show nothing (finding 2497). Only the reason stays now; a version with a Sandbox keeps every control.
|
🦞👀 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 changesHide policy-denial counts and controls when the viewed Agent version has no Sandbox log source. Example: An Agent reader opens Policy denials for a Dedicated Codex version without a Sandbox.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Partial Merge readiness⛔ Needs changes before merge - 2 items remain Keep this PR open: it addresses real Console clutter, but the API-error fallback can retain Refresh suggestions, and required Storybook coverage is missing. Priority: P3 Before merge
Findings
Tests
Agent review detailsHow this fits togetherThe Console combines revision metadata and policy-read permissions with independently authorized log and suggestion responses to render the Agent’s Policy denials tab. flowchart TD
A[Agent revision snapshot] --> C[Policy denials renderer]
B[Policy read permission] --> C
C --> D[Sandbox log API]
C --> E[Policy suggestions API]
D --> F[Denial controls or explanation]
E --> F
Technical reviewBest possible solution: Update both denial and suggestion controls when absence becomes known, and cover that state in the existing Storybook workflow. Do we have a high-confidence way to reproduce the issue? Current-main source retains the controls after establishing no Sandbox log, and the supplied browser comparison reports the corresponding failure; no target code was executed during this read-only review. Is this the best way to solve the issue? Reusing the existing renderer and hidden attributes is appropriately small, but the API-error transition must also update already-rendered suggestion controls. Full review comments:
Overall correctness: patch is correct AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 426fee0f8be0. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceAcceptance criteria:
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 25, 2026, 3:25 PM ET / 19:25 UTC. |
Problem
Policy denials on a version without a Sandbox (#3657) says "This Agent version runs without a Sandbox, so no policy denials are recorded for it." It still shows "Denials in the loaded window: none recorded", Refresh denials, Follow, the filter, and Refresh suggestions when suggestions are readable. None of these can show anything for that version, and they leave large empty bands.
Change
When the viewed version has no Sandbox log source, from its snapshot or from the API's
RUNTIME_LOGS_SOURCE_UNAVAILABLEanswer, Policy denials hides the loaded-window count, the Refresh denials and Follow controls, the filter and Refresh suggestions. The reason line stays. A version with a Sandbox keeps every control. The draft and "Sandbox Driver does not support per-Agent network policy" views are unchanged.Verification
console-agent-detail-2.test.mjs("an Agent reader meets no refused read …"): on the current version without a Sandbox, the reason shows and no count, Refresh denials, Refresh suggestions, Follow or filter control appears. This fails on main.console-agent-draft-guards.test.mjs("Policy denials reads the Sandbox log …"): a version a Sandbox Driver provisioned keeps Refresh denials, Follow and the filter visible. This guards the other branch and passes on main and here.Risks
Low. Only a
hiddentoggle on existing nodes in one branch. The Follow timers are also cleared there, as before.