fix(browser): report verified model labels in CLI output - #318
Conversation
|
Codex review: needs maintainer review before merge. Reviewed August 2, 2026, 1:19 PM ET / 17:19 UTC. ClawSweeper reviewWhat this changesThe PR separates requested Oracle browser model keys from ChatGPT picker targets and displays a picker label in CLI and TUI output only when the label was observed and verified. Merge readinessThis PR remains necessary: current Priority: P2 Review scores
Verification
How this fits togetherOracle’s browser engine maps a requested CLI model key to a ChatGPT picker target, then records selection evidence in session metadata. CLI completion output, session listings, and the interactive TUI consume that metadata, so they must distinguish intended selection from an observed ChatGPT label without changing execution or log-routing keys. flowchart LR
A[CLI model key] --> B[Browser configuration]
B --> C[ChatGPT picker target]
C --> D[Observed picker result]
D --> E[Verified selection evidence]
E --> F[Model display formatter]
F --> G[CLI session and TUI output]
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: Land the evidence-backed display contract after the remaining required check completes, preserving raw requested keys for routing while exposing observed browser labels only when verification is recorded. Do we have a high-confidence way to reproduce the issue? Yes, from current source: a non- Is this the best way to solve the issue? Yes. A shared browser-layer formatter plus observed-only selection evidence is the narrow maintainable fix because it keeps browser intent, observed UI state, and raw execution keys separate at every display boundary. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 421b3bfc1a55. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (27 earlier review cycles; latest 8 shown)
|
6a81cc6 to
e67b9eb
Compare
|
@clawsweeper re-review Addressed the TUI consistency finding, added strategy-aware pre-selection provenance, prevented session evidence from leaking across model runs, unified live/persisted evidence formatting, and added redacted real persisted-browser replay output to the PR description. |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review Addressed the evidence-provenance and live finish-line findings in
Validation: |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
72a17e8 to
ec844ca
Compare
|
Maintainer repair pushed in The no-label success path now records GPT-5.6 Sol as explicitly unverified instead of running strict label validation against an empty string and throwing. Positive observed labels remain strictly validated. Proof:
Recommendation: LAND once refreshed checks complete. |
|
Final reconciliation pushed in |
Summary
Propicker label without inferring a server-side GPT version.Fixes #317.
Display contract
Browser model identity has three separate sources:
requestedKey: the Oracle model key, such asgpt-5.5-pro,gpt-5.6, orgpt-5.6-sol.target: the label Oracle asks the ChatGPT picker to select, such asProorGPT-5.6 Sol.resolvedLabel: an observed picker/model label after selection. It becomes the effective display label only when it is non-empty andverified=true.Before selection, launch and dry-run output reports intent rather than observed state:
After selection, compact status and completion output uses the exact verified label, otherwise it falls back to the requested key. Detailed CLI and TUI views retain both when they differ:
The two Sol aliases retain distinct requested keys even though they currently share the
GPT-5.6 Soltarget. A bareProresult remainsPro; no path expands it toGPT-5.6 Pro.Evidence hardening
resolvedLabel. If the UI exposes only effort text or no usable label, the stored value isnull.verified=yesnow means that a non-empty observed label was available after an explicit selection strategy; a successful selection without observable label evidence remainsverified=no.switchedoralready-selectedseparately, so the lack of a displayable label does not overwrite selection state.Implementation notes
requestedKey,target,resolvedLabel,status,strategy,verified,source, andcapturedAt.metadata.model; other model runs keep their raw keys.options.modereceive the same display behavior.Validation
pnpm checkpnpm buildenv -u ANTHROPIC_BASE_URL pnpm vitest run: 1,570 passed, 44 skipped across 164 filesThe focused coverage includes the two provenance regressions fixed here:
resolvedLabel=Pro; verified=yesfrom the requested target;Prolabel appears in the live browser finish line, while unverified evidence retains the requested key.Real persisted-browser evidence
A completed signed-in browser session stored
requestedKey=gpt-5.5-pro,target=Pro,resolvedLabel=Pro, andverified=yes. Replaying that real metadata through the PR produced:The interactive TUI for the same persisted session showed:
The TUI log action still used
gpt-5.5-pro, proving display formatting does not alter log routing. Local paths, conversation identifiers, and browser profile details are omitted.