Skip to content

feat(browser): support GPT-6 Astra as ChatGPT's "Latest" model - #448

Closed
malvarezcastillo wants to merge 3 commits into
steipete:mainfrom
malvarezcastillo:feat/gpt-6-latest-browser-model
Closed

feat(browser): support GPT-6 Astra as ChatGPT's "Latest" model#448
malvarezcastillo wants to merge 3 commits into
steipete:mainfrom
malvarezcastillo:feat/gpt-6-latest-browser-model

Conversation

@malvarezcastillo

Copy link
Copy Markdown
Contributor

Summary

ChatGPT started serving GPT-6 Astra (2026-09-03) without a named entry in the model picker. On a Pro account today the advanced view offers the radios Latest, GPT-5.6 Sol and GPT-5.5; "GPT-6 Pro" is Latest with the power slider at Pro, and the composer pill then reads 6 Pro (with GPT-5.6 Sol it reads 5.6 Pro).

This PR adds first-class ids for it and makes the "Latest" target verifiable:

  • gpt-6-astra (known model: API pricing $10/$50 per 1M, same 272K base-rate window as GPT-5.6, reasoning effort/mode accepted), plus the aliases gpt-6, latest, and the browser-only gpt-6-pro. All map to the Latest picker label; gpt-6-pro is passed through normalization like the other browser-only variants so it defaults to the Pro tier (resolveDefaultBrowserThinkingTime).
  • ensureModelSelection now decides a version-less Latest target on real evidence: the checked radio of the advanced view when the picker is open, otherwise the composer pill (^6…, never 5.6…). Previously buildComposerSignalMatchers allowed a blank composer signal for that target, so Latest reported already-selected while the tab was on GPT-5.6 Sol, with the resolved label 5.6Pro. The resolved label is now reported as Latest.
  • Docs and changelog.

How it was verified

Against a live Pro account through a remote Chrome (--remote-chrome), running the built ensureModelSelection + ensureThinkingTime in a tab, no prompt sent:

step before after
target GPT-5.6 Sol, pro switched → GPT-5.6 Sol, pill 5.6Pro same
target Latest, pro (tab still on Sol) already-selected → 5.6Pro switched → Latest, pill 6Pro
target Latest, pro again already-selected → 5.6Pro already-selected → Latest

Also oracle --engine browser --dry-run --model gpt-6-protarget=Latest; requested=gpt-6-pro, and a real Pro request on a second account resolved Latest + Thinking time: Pro and answered.

pnpm run check and pnpm test pass. No new unit tests were added for the injected picker script (it is DOM-driven); happy to add coverage for normalizeChatGptModelForBrowser / mapModelToBrowserLabel / resolveDefaultBrowserThinkingTime if you want it.

Not in this PR

The legacy Pro aliases (gpt-5-pro, gpt-5.4-pro, …) still resolve to GPT-5.6 Sol + Pro (CURRENT_CHATGPT_PRO_ALIASES). If the intended semantics is "the newest Pro in ChatGPT", they should now point at gpt-6-pro; left untouched here to keep the change scoped.

ChatGPT exposes GPT-6 Astra (released 2026-09-03) without a named picker entry: it is
the "Latest" radio of the advanced picker, and "GPT-6 Pro" is that radio with the power
slider at Pro (the composer pill reads "6 Pro"; with GPT-5.6 Sol it reads "5.6 Pro").

- Add `gpt-6-astra` as a known model (API: $10/$50 per 1M, same 272K base-rate window as
  GPT-5.6, reasoning effort/mode allowed) and the aliases `gpt-6`, `latest` and the
  browser-only `gpt-6-pro`, all mapped to the "Latest" picker label. `gpt-6-pro` keeps its
  name through normalization so it defaults to the Pro tier like `gpt-5.5-pro`.
- Decide a version-less "Latest" target on evidence: the checked radio of the advanced view
  when the picker is open, otherwise the composer pill (`^6…`, never `5.6…`). Before, the
  blank composer signal passed as "already selected" while GPT-5.6 Sol was active, and the
  resolved label came back as "5.6Pro". Report "Latest" as the resolved label.
@clawsweeper

clawsweeper Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@clawsweeper clawsweeper Bot added P1 Urgent regression or broken agent/channel workflow affecting real users now. merge-risk: 🚨 auth-provider 🚨 Merging this PR could break OAuth, tokens, provider routing, model choice, or credentials. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Sep 4, 2026
@clawsweeper

clawsweeper Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Codex review: blocked before merge. Reviewed September 5, 2026, 1:55 AM ET / 05:55 UTC.

ClawSweeper review

What this changes

Adds GPT-6 Astra aliases and API metadata, maps browser requests to ChatGPT’s Latest model with optional Pro effort, and adds selection checks, tests, and documentation.

Merge readiness

Blocked before merge - 5 items remain

This remains useful work absent from main. Earlier findings are fixed, but new discussion and source inspection identify two remaining picker defects. The reported live browser proof remains valid, and the linked fork follow-up offers a focused repair candidate.

Priority: P2
Reviewed head: 414a0e34816037e1c73686c6e61b00caa23fd5ed

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) Useful, well-supported browser work still has two bounded integration defects exposed by new UI evidence.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (live_output): The captured live Pro-account results exercise the production model and effort selectors through remote Chrome, show Sol-to-Latest recovery and repeated selection, and report a completed Pro consultation. Independent exact-head CLI and unavailable-account checks supplement that proof. Japanese follow-up results apply to separate code, and no API inference is claimed.
Patch quality 🦐 gold shrimp (3/6) 2 actionable review findings remain.

Verification

Check Result Evidence
Real behavior Verified Sufficient (live_output): The captured live Pro-account results exercise the production model and effort selectors through remote Chrome, show Sol-to-Latest recovery and repeated selection, and report a completed Pro consultation. Independent exact-head CLI and unavailable-account checks supplement that proof. Japanese follow-up results apply to separate code, and no API inference is claimed.
Evidence reviewed 10 items Policy and checkout identity: Read the complete root AGENTS.md; no nested AGENTS.md or maintainer-notes directory was found. Applied the Pro-verification and changelog guidance. The checkout remained clean, and the repository onboarding profile prohibits automatic closure.
Verified introduced change: Inspected the local base-to-head diff, including patches truncated in the supplied context. The verified test merge records main followed by the exact PR head as parents, and its tree matches the reviewed head.
Still necessary on main and latest release: Main’s browser alias table lacks Astra/Latest mappings, and v0.18.0 lacks the Astra model entry. The supplied merged #441 fixes localized slider verification, not Astra selection.
Findings 2 actionable findings [P2] Recognize Astra effort controls before defaulting to Pro
[P2] Match the observed Japanese Latest radio
Security None None.

How this fits together

Oracle converts CLI model requests into either API requests or ChatGPT browser selections. In browser mode, it selects the model and verifies the requested effort before submitting the prompt.

flowchart TD
  A[CLI model request] --> B[Resolve aliases]
  B --> C{Selected engine}
  C --> D[API model metadata]
  C --> E[ChatGPT model picker]
  E --> F[Verify effort tier]
  F --> G[Submit prompt or report failure]
  D --> H[Provider request]
Loading

Before merge

  • Recognize Astra effort controls before defaulting to Pro (P2) - The new alias sends Latest plus pro to ensureThinkingTime, but its existing effort finder excludes model-switcher-dropdown-button, does not recognize an otherwise unqualified 6Pro pill, and reserves its Pro fallback for GPT-5.6. On the reported version-prefixed picker layout without legacy trailing controls, this reaches chip-not-found and aborts before submission. Extend Astra effort-control discovery while preserving the existing tier verification. The newly posted follow-up reports this integration gap.
  • Match the observed Japanese Latest radio (P2) - On the Japanese Pro UI reported in the new discussion, the radio reads 最新. normalizeText removes those characters, so this new comparison always rejects that checked radio; the target matcher also lacks a localized alternative when switching from Sol. Support exact 最新 matching consistently in option selection and verification, with coverage for Sol-to-Latest and already-selected cases.
  • Resolve merge risk (P1) - The reported Japanese success includes a separate fork follow-up, so it does not establish that this head handles those account layouts.
  • Resolve merge risk (P1) - The supplied runs do not exercise Astra through the API, and official API metadata could not be independently checked during this review.
  • Complete next step (P2) - Repair Astra effort-control discovery and Japanese Latest matching, using the posted fork follow-up as a candidate and preserving the existing Pro-verification safeguards.

Findings

  • [P2] Recognize Astra effort controls before defaulting to Pro — src/cli/browserConfig.ts:185-189
  • [P2] Match the observed Japanese Latest radio — src/browser/actions/modelSelection.ts:753-756
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Production and test growth Production +118/−4 lines; tests +146/−1 lines; documentation +5 lines Production growth supports the stated model integration, but the added tests do not cover the newly reported localized and effort-control cases.

Merge-risk options

Maintainer options:

  1. Complete the Astra picker integration (recommended)
    Repair localized Latest matching and Astra effort-control discovery, evaluating the posted fork follow-up while retaining existing Pro verification.
Copy recommended automerge instruction
@clawsweeper automerge

Special instructions:
Repair Japanese 最新 matching in model selection and recognize Astra version-prefixed effort controls for Latest targets; preserve unknown-model rejection, explicit effort overrides, legacy aliases, and the existing label-plus-numeric Pro verification, with focused regression coverage.

Technical review

Best possible solution:

Use the existing picker machinery to recognize observed Astra labels and effort controls while preserving strict Pro verification, explicit effort settings, and legacy aliases.

Do we have a high-confidence way to reproduce the issue?

Yes: the reported Japanese 最新 radio and Astra version-prefixed effort controls map to explicit rejection paths in the reviewed source. No runtime reproduction was executed during this read-only review.

Is this the best way to solve the issue?

Yes in approach: extending the existing alias and picker implementation is appropriate, but the model-label and effort-control integration needs the two focused corrections below.

Full review comments:

  • [P2] Recognize Astra effort controls before defaulting to Pro — src/cli/browserConfig.ts:185-189
    The new alias sends Latest plus pro to ensureThinkingTime, but its existing effort finder excludes model-switcher-dropdown-button, does not recognize an otherwise unqualified 6Pro pill, and reserves its Pro fallback for GPT-5.6. On the reported version-prefixed picker layout without legacy trailing controls, this reaches chip-not-found and aborts before submission. Extend Astra effort-control discovery while preserving the existing tier verification. The newly posted follow-up reports this integration gap.
    Confidence: 0.96
  • [P2] Match the observed Japanese Latest radio — src/browser/actions/modelSelection.ts:753-756
    On the Japanese Pro UI reported in the new discussion, the radio reads 最新. normalizeText removes those characters, so this new comparison always rejects that checked radio; the target matcher also lacks a localized alternative when switching from Sol. Support exact 最新 matching consistently in option selection and verification, with coverage for Sol-to-Latest and already-selected cases.
    Confidence: 0.97

Overall correctness: patch is incorrect
Overall confidence: 0.95

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against be6c92a9e4cc.

Labels

Label justifications:

  • P2: This is bounded support for an optional model, with remaining failures limited to particular picker layouts and locales.
  • merge-risk: 🚨 auth-provider: The new model aliases can reach browser selectors that reject available Astra model or effort controls before prompt submission.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦞 diamond lobster and patch quality is 🦐 gold shrimp.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (live_output): The captured live Pro-account results exercise the production model and effort selectors through remote Chrome, show Sol-to-Latest recovery and repeated selection, and report a completed Pro consultation. Independent exact-head CLI and unavailable-account checks supplement that proof. Japanese follow-up results apply to separate code, and no API inference is claimed.
  • proof: sufficient: Contributor real behavior proof is sufficient. The captured live Pro-account results exercise the production model and effort selectors through remote Chrome, show Sol-to-Latest recovery and repeated selection, and report a completed Pro consultation. Independent exact-head CLI and unavailable-account checks supplement that proof. Japanese follow-up results apply to separate code, and no API inference is claimed.

Evidence

Acceptance criteria:

  • [P1] pnpm vitest run tests/browser/modelSelection.test.ts tests/browser/thinkingTime.test.ts tests/cli/browserConfig.test.ts tests/cli/options.test.ts.
  • [P1] pnpm run check.
  • [P1] pnpm build.
  • [P1] pnpm test.

What I checked:

  • Policy and checkout identity: Read the complete root AGENTS.md; no nested AGENTS.md or maintainer-notes directory was found. Applied the Pro-verification and changelog guidance. The checkout remained clean, and the repository onboarding profile prohibits automatic closure. (AGENTS.md:1, 414a0e348160)
  • Verified introduced change: Inspected the local base-to-head diff, including patches truncated in the supplied context. The verified test merge records main followed by the exact PR head as parents, and its tree matches the reviewed head. (414a0e348160)
  • Still necessary on main and latest release: Main’s browser alias table lacks Astra/Latest mappings, and v0.18.0 lacks the Astra model entry. The supplied merged fix(browser): verify localized effort labels with Unicode boundaries #441 fixes localized slider verification, not Astra selection. (src/cli/browserConfig.ts:34, be6c92a9e4cc)
  • Astra effort integration gap: The new alias requests Latest plus Pro, which browser/index.ts passes to ensureThinkingTime. Its effort-control finder excludes model-switcher-dropdown-button and reserves the bare-Pro fallback for GPT-5.6; it does not recognize an otherwise unqualified 6Pro pill. Without legacy trailing controls, strict Pro selection aborts before submission. (src/browser/actions/thinkingTime.ts:1148, 414a0e348160)
  • Japanese Latest label rejected: The new checked-radio comparison requires the ASCII string latest, while normalizeText removes Japanese characters. The reported 最新 radio therefore cannot satisfy this check, and the target matcher has no localized label alternative. (src/browser/actions/modelSelection.ts:756, 414a0e348160)
  • Positive real browser evidence: The captured PR body reports production model/effort selectors running against a live Pro account through remote Chrome: Sol to Latest changed the pill from 5.6Pro to 6Pro, repeated selection resolved Latest, and a separate Pro consultation answered. feat(browser): support GPT-6 Astra as ChatGPT's "Latest" model #448 (comment) independently verifies the exact head’s CLI behavior, unavailable-account rejection, and a completed Sol canary; it explicitly does not claim API/Astra inference. Captured context sourceRevision: d9ac21320c21d5e4632b5cc01ff8b0976492a0229333360de858558ccb07de3f. (414a0e348160)

Likely related people:

  • Peter Steinberger: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • kiyo-e: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • Gabrielgvl: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Complete Astra effort-control discovery while retaining strict Pro verification and its existing regression coverage.
  • Add exact Japanese Latest matching and regression cases for switching from Sol and detecting an already-selected model.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (3 earlier review cycles)
  • reviewed 2026-09-04T22:22:25.230Z sha 50a1ca3 :: blocked before merge. :: [P1] Restrict GPT-6 aliases to the documented model names
  • reviewed 2026-09-04T22:44:12.433Z sha b022dcf :: needs changes before merge. :: [P2] Initialize the Latest helper before the current-strategy return
  • reviewed 2026-09-04T22:54:57.150Z sha 414a0e3 :: needs maintainer review before merge. :: none

The alias matcher accepted any `gpt-6…` value not followed by a digit or period, so
undeclared ids such as `gpt-6-codex` or `gpt-6-custom` were rewritten to `gpt-6-astra`
before the custom/OpenRouter passthrough in resolveApiModel. Match only `gpt-6`,
`gpt-6-astra`, `gpt-6-pro` (and their label forms) plus `latest`; every other id keeps its
existing handling.

Also declare `targetIsLatest` before getResolvedLabel can run: the picker-less path evaluated
it before initialization (ReferenceError in the injected selection script).

Add regression coverage for the accepted aliases, the browser-only gpt-6-pro tier, the
"Latest" picker target, and unknown gpt-6-* ids passing through unchanged.
@malvarezcastillo

Copy link
Copy Markdown
Contributor Author

Addressed the review in b022dcf:

  • isGpt6Alias / isGpt6ProAlias now match only the documented spellings (gpt-6, gpt-6-astra, gpt-6-pro, their label forms such as "GPT-6 Pro", and latest). Any other gpt-6-* id (gpt-6-codex, gpt-6-custom, gpt-6-astra-mini, gpt-6.1, …) is no longer intercepted: resolveApiModel passes it through to the existing custom/OpenRouter handling and normalizeChatGptModelForBrowser returns it unchanged.
  • While adding coverage, the three existing picker-less modelSelection cases surfaced a TDZ bug in the injected script (targetIsLatest was declared after getResolvedLabel could run); it is now declared next to normalizedTarget.
  • Tests: tests/cli/options.test.ts (alias resolution for resolveApiModel/inferModelFromLabel, unknown gpt-6-* preservation), tests/cli/browserConfig.test.ts (buildBrowserConfig → "Latest", Pro default only for gpt-6-pro, isGpt6Alias/normalizeChatGptModelForBrowser/mapModelToBrowserLabel/resolveDefaultBrowserThinkingTime, unknown ids untouched), tests/browser/modelSelection.test.ts (a "6 Pro" pill counts as Latest, a 5.6 pill does not).

pnpm vitest run tests/cli/options.test.ts tests/cli/browserConfig.test.ts tests/browser/modelSelection.test.ts, pnpm run check, pnpm build and the full suite pass locally.

@malvarezcastillo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

@clawsweeper clawsweeper Bot added P2 Normal priority bug or improvement with limited blast radius. and removed P1 Urgent regression or broken agent/channel workflow affecting real users now. merge-risk: 🚨 auth-provider 🚨 Merging this PR could break OAuth, tokens, provider routing, model choice, or credentials. labels Sep 4, 2026
…hout a picker

The "current" strategy calls getResolvedLabel() before the selection helpers further down the
injected script are initialized, so a "Latest" target without a checked advanced radio hit a
temporal-dead-zone ReferenceError on latestButtonSelected. Define that helper next to
getButtonLabel, and when no picker button exists at all fall back to the generic composer-label
resolution instead of returning the empty button text.

Add a current-strategy test for the Latest target with a "6Pro" pill and with no signal.
@malvarezcastillo

Copy link
Copy Markdown
Contributor Author

Addressed the second-round finding in the latest commit:

  • latestButtonSelected is now defined next to getButtonLabel, before getResolvedLabel, so the current strategy no longer reaches it in the temporal dead zone for a Latest target without a checked advanced radio (targetIsLatest was already hoisted in the previous commit).
  • When there is no picker button at all, the Latest branch falls back to the generic composer/observed-label resolution instead of returning the empty button text.
  • Test added in tests/browser/modelSelection.test.ts: Latest under the current strategy with a 6Pro composer pill resolves to { status: "already-selected", label: "6Pro" }, and with no signal to label: null, without throwing.

pnpm vitest run tests/browser/modelSelection.test.ts tests/cli/browserConfig.test.ts tests/cli/options.test.ts, pnpm run check, pnpm build and the full suite pass.

@malvarezcastillo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Sep 4, 2026
@hongho55

hongho55 commented Sep 5, 2026

Copy link
Copy Markdown

Independent verification of head 414a0e34816037e1c73686c6e61b00caa23fd5ed on macOS / Node 26.7.0:

  • pnpm install --frozen-lockfile, pnpm check, and pnpm test succeeded: 1,958 passed, 43 skipped.
  • pnpm run test:mcp succeeded: 7 passed; a fresh downstream MCP connection discovered all four tools.
  • Before/after CLI reproduction with --engine browser --model gpt-6-astra --browser-thinking-time extended --dry-run: released 0.18.0 exits 1 after misidentifying the request as retired gpt-5.2; this head exits 0 with target=Latest; requested=gpt-6-astra.
  • A live select attempt on a Plus browser profile without a Latest option correctly failed before submitting the prompt: Unable to find model option matching "Latest" in the model switcher. Available: High, GPT-5.6 Sol, GPT-5.5. Inspection of that exact run's target confirmed the Sol radio checked; this is negative/fail-closed coverage, not a successful Astra inference or proof of availability on all Plus accounts.
  • A separate live Sol regression canary completed with the expected response and verified Sol model-selection evidence. Its requested Extra High effort emitted an existing selection unverified warning, so this does not certify that effort tier.

No API/Astra inference was tested. Thanks for the existing implementation; posting the additional reproduction and account-unavailability evidence here rather than opening a duplicate Astra-support PR.

@kiyo-e

kiyo-e commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Tested this head on a Japanese ChatGPT Pro UI and prepared a focused follow-up into your feature branch: malvarezcastillo#1 . This avoids opening a competing Astra-support PR against upstream main.

It adds exact 最新 matching, recognizes Astra version-prefixed effort controls using the existing localized tier vocabulary, and includes the observed Japanese 極高 label. The #441 leading-label + numeric slider verification remains intact; Sol/unknown owners remain rejected. The effort-control fix also has an English 6 High -> Pro regression, but live verification is Japanese only, not a claim of full multilingual coverage.

With the follow-up: Sol -> Latest -> already-selected, 極高 -> Pro, and two attachment consultations completed through the native select + Pro path. Full local suite: 1,964 passed / 44 skipped; check and build passed. Details and sanitized evidence are in the linked PR. No API/Astra inference was tested. Please merge/cherry-pick the follow-up if useful.

@clawsweeper clawsweeper Bot added merge-risk: 🚨 auth-provider 🚨 Merging this PR could break OAuth, tokens, provider routing, model choice, or credentials. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Sep 5, 2026
@clawsweeper clawsweeper Bot added the status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. label Sep 5, 2026
steipete added a commit to FNDEVVE/oracle that referenced this pull request Sep 8, 2026
Preserve browser-only Pro aliases through CLI engine discovery, retain model-specific API capabilities, and verify localized Latest and effort controls. Combine the compatible work from steipete#448, steipete#449, and steipete#465; release notes are deferred to the final notes PR.
steipete pushed a commit that referenced this pull request Sep 8, 2026
Consolidate API capability validation and Latest browser selection from #449 and #448. Validate model-specific reasoning efforts, reject invalid saved defaults, recognize localized picker controls, and preserve browser-only aliases during engine discovery. Keep the default model unchanged.

Real standard/Pro API calls, Latest/High and Latest/Pro browser requests, and a controlled Sol-to-Latest transition passed. Thanks @kiyo-e for the browser work incorporated into this PR.

Co-authored-by: FND <fndevve@proton.me>
Co-authored-by: oraclexing <xing_z@hotmail.com>
Co-authored-by: nummy <6960749+malvarezcastillo@users.noreply.github.com>
@steipete

steipete commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Landed through #465, which consolidates this change with the related model work and keeps your contributor credit in the squash commit and changelog. Thank you.

@steipete steipete closed this Sep 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 auth-provider 🚨 Merging this PR could break OAuth, tokens, provider routing, model choice, or credentials. P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants