fix(browser): fail fast when a new turn offers Retry - #458
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: blocked before merge. Reviewed September 7, 2026, 5:04 AM ET / 09:04 UTC. ClawSweeper reviewWhat this changesOracle detects stopped ChatGPT turns with known failure text and a visible Retry button, returns a structured warning, and preserves eligible browsers for manual recovery. Merge readiness⛔ Blocked before merge - 1 item remains The fix remains useful, and the owner’s new built-CLI Chrome/CDP evidence resolves the previous proof blocker. No blocking patch defect was found; the signed-in Pro smoke remains a separate release gate. Priority: P2 Review scores
Verification
How this fits togetherOracle’s browser engine submits prompts to ChatGPT and reads responses through Chrome’s debugging connection. Its response collector feeds text, image results, or structured errors into CLI output and saved session metadata. flowchart TD
A[Submitted prompt] --> B[ChatGPT assistant turn]
B --> C[Response collector]
C --> D{Visible Retry and known failure with generation stopped?}
D -->|No| E[Continue normal response capture]
D -->|Yes| F[Structured browser warning]
F --> G[Save recovery metadata and retain eligible browser]
Before merge
Agent review detailsSecurityNone. Review metrics
Root-cause clusterRelationship: Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Use the shared turn-scoped error guard and existing recovery lifecycle, preserving normal generation waits and completing the separately tracked signed-in smoke before release. Do we have a high-confidence way to reproduce the issue? Yes, source inspection supports the reported path: a stopped new assistant turn with failure text and Retry lacks an immediate terminal guard on current main. No current-main runtime reproduction was executed during this read-only review. Is this the best way to solve the issue? Yes. The patch extends the existing response collector and structured-error lifecycle, guards active generation, and avoids automatic retries or a competing recovery mechanism. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 1c5ac1b38d64. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
History |
|
Verified on head The full built CLI now has real headful Chrome/CDP proof on a clean Linux machine, using a synthetic local ChatGPT-shaped page and no provider credentials. Both ordinary text and
Local suite: 1,999 passed, 43 skipped. Typecheck/lint/build/docs checks pass. Final branch autoreview through P2 is scoped-clean. CI: https://github.com/steipete/oracle/actions/runs/34101387198 — all four jobs succeeded. This proves the synthetic failure and recovery path. The signed-in Pro smoke remains a separate release gate. |
Consolidate complete pending Unreleased notes and contributor credit, ordered by user impact with Highlights. Include #458, #430, #406, #460, #461, #383, #459, #451, and #445; preserve earlier unpublished notes and released history. Align devtools-protocol 0.0.1692173 in manifest, override, and lockfile while retaining Node >=24 and the release-age policy. No version bump or publication is included.
Fixes #457.
When the submitted ChatGPT turn displays a known English generation failure with a visible Retry control, Oracle returns a structured, body-free browser warning promptly. It preserves manual recovery and never clicks Retry or submits the prompt again. Unknown/localized failure states retain the configured timeout.
The maintainer repair keeps waiting while generation is active, ignores transparent controls, uses the outer conversation turn for busy/progress evidence, stops the pending response observer on failure, and applies the error guard to image output and response-recovery paths. The changelog entry is collected in the final maintenance-notes PR to keep sibling branches independent.
Validation:
node scripts/assistant-retry-proof.mjs, opened in an existing Chrome profile, passed nine controlled DOM cases. The production reader/error guard emittedchatgpt-ui-warning; older turns, hidden/transparent Retry, unrelated prose, and active generation did not fail. Zero Retry clicks.The Chrome fixtures are synthetic and do not claim a newly observed live ChatGPT outage. A signed-in Oracle CDP smoke remains blocked by Chrome's separate remote-debugging approval; this is also an outstanding release gate.
Full built-CLI/CDP proof now passes for text and image failure, including persisted recovery metadata and retained Chrome: #458 (comment). The separate signed-in Pro release smoke remains outstanding.