|
| 1 | +# GPT-5.6 effort handling |
| 2 | + |
| 3 | +## Source and behavior |
| 4 | + |
| 5 | +OpenAI's [model documentation](https://learn.chatgpt.com/docs/models#know-when-to-use-max-or-ultra) |
| 6 | +distinguishes Max reasoning from Ultra's delegation mode. The desktop app may |
| 7 | +hide Max until it is enabled in settings. The public API's |
| 8 | +[GPT-5.6 model documentation](https://developers.openai.com/api/docs/models/gpt-5.6-sol) |
| 9 | +supports `xhigh` and `max`; `ultra` is not a public API effort. |
| 10 | + |
| 11 | +The saved account's model variants and the local Codex catalog were inspected |
| 12 | +read-only. Both contained `xhigh`, `max`, and `ultra` for Sol/Terra, and `xhigh` |
| 13 | +and `max` for Luna. No credentials, preferences, or historical sessions were |
| 14 | +changed. No destructive remediation or schema migration is needed for those |
| 15 | +records. Live and persisted capability metadata continue to take precedence |
| 16 | +over fallback variants. |
| 17 | + |
| 18 | +The producing paths had three inconsistencies: |
| 19 | + |
| 20 | +- Fallback model metadata omitted Max for GPT-5.6. The fallback now emits Max |
| 21 | + for Sol, Terra, and Luna, with Ultra additionally available for Sol/Terra. |
| 22 | +- The frontend slider placed Ultra before Max, while the table/default ranking |
| 23 | + omitted Ultra. All three rankings now place Ultra after Max. Separately, |
| 24 | + the requested GPT-5.6 picker policy hides the standalone Max step by default: |
| 25 | + Sol/Terra show Light, Medium, High, Extra High, Ultra; Luna stops at Extra High |
| 26 | + because its catalog does not advertise Ultra. This policy is shared across |
| 27 | + GPT-5.6 pickers, independent of the account supplying the variants. |
| 28 | +- Rust parsing erased Ultra into Max, while the public OpenAI effort mapper |
| 29 | + also lowered `xhigh` and `max` to `high`. Parsing now retains Ultra; public |
| 30 | + API requests preserve the selected `xhigh`/`max` value. Unsupported explicit |
| 31 | + selections can fail at the provider instead of silently running lower effort. |
| 32 | + |
| 33 | +Max is real capability data, not malformed data. Its UI exclusion is the |
| 34 | +requested product behavior, not data cleanup. The catalog and request resolver |
| 35 | +retain Max, and an already-applied Max selection remains visible when editing |
| 36 | +it. Opening, dismissing, or changing Fast cannot silently turn it into another |
| 37 | +effort or enable Ultra delegation. After selecting a different level, the normal |
| 38 | +menu no longer offers Max. Other model families' Max options remain unchanged. |
| 39 | + |
| 40 | +Correctly applying a previously downgraded effort can increase active-request |
| 41 | +latency and usage. Ultra can additionally use the existing worker allowance; |
| 42 | +it does not change that allowance or create idle work. |
| 43 | + |
| 44 | +Native Codex Ultra requests send `max` reasoning and add bounded delegation |
| 45 | +guidance to that request's instructions. This reuses existing subagent tools, |
| 46 | +permissions, worker limits, and cancellation behavior. It does not enable tools, |
| 47 | +spawn workers itself, change cached prompts, or override user restrictions. |
| 48 | +This implements ORGII's delegation guidance; it does not establish full parity |
| 49 | +with Codex's internal orchestration. |
| 50 | + |
| 51 | +Ultra's slider fill, label, and focus ring use the existing purple theme token. |
| 52 | +Other levels retain the primary accent. The popup retains its existing |
| 53 | +Apply/Cancel workflow in this change. |
| 54 | + |
| 55 | +## Architecture coverage |
| 56 | + |
| 57 | +Layers 1–10 were considered within the changed call chain: compilation; |
| 58 | +existing shared effort mapping; names; Max/Ultra semantics; default handling; |
| 59 | +provider-specific delegation guidance; explanatory comments; serialized wire |
| 60 | +bodies; streaming/non-streaming parity; and live/persisted/fallback precedence. |
| 61 | +Unrelated session initialization, database schema, and architecture cleanup |
| 62 | +were intentionally excluded. |
| 63 | + |
| 64 | +## Lifecycle checks |
| 65 | + |
| 66 | +| Area | Verdict | Evidence | Change or reason kept | Verification | |
| 67 | +| ------------------ | ------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------- | |
| 68 | +| Background work | keep | Existing slider-scoped visibility listener and CSS animation | No new timers, listeners, workers, or polling | Hidden/visible and repeated-open listener tests | |
| 69 | +| Memory | keep | Fixed 18 decorative comets; per-request instruction string | No retained mode state or growing buffers | Source inspection and request tests | |
| 70 | +| Scope/isolation | keep | Ultra instructions are constructed from the current request's parsed mode | No account writes, cached-prompt mutation, or tool-permission changes | Serialized request tests preserve input and tool absence | |
| 71 | +| Rendering/hot path | keep | One derived accent state; existing native range and CSS motion | No new subscriptions; reduced-motion rules retained | Slider tests and SCSS compilation | |
| 72 | + |
| 73 | +## Verification |
| 74 | + |
| 75 | +- `pnpm exec vitest run --config config/vitest.config.ts src/components/ModelPropertiesDropdown/EffortSlider.test.ts src/util/__tests__/modelVariants.test.ts src/util/__tests__/variantEditOptions.test.ts`: 20 tests passed. |
| 76 | +- `pnpm exec eslint src/components/ModelPropertiesDropdown/index.tsx src/components/ModelPropertiesDropdown/EffortSlider.tsx src/components/ModelPropertiesDropdown/EffortSlider.test.ts src/util/__tests__/variantEditOptions.test.ts src/util/variantEditOptions.ts src/util/defaultModelVariant.ts src/modules/MainApp/Integrations/KeyVault/shared/ModelTable/ModelVariantInlineCard.tsx --max-warnings 0`: passed with zero warnings. |
| 77 | +- `pnpm run typecheck`: passed after the final picker policy change. The first |
| 78 | + attempt was terminated with SIGTERM before diagnostics and is not counted |
| 79 | + as a pass. |
| 80 | +- `cargo test -p agent_core -p key_vault --lib gpt_5_6` from `src-tauri`: 4 passed, |
| 81 | + including actual mocked HTTP requests through both chat transports and the |
| 82 | + fallback catalog producing boundary. |
| 83 | +- `~/.cargo/shared-target/debug/deps/agent_core-ed837004ecb79b26 core::providers:: --quiet`: |
| 84 | + the freshly built provider test executable passed 446 tests, including native |
| 85 | + Codex and public Responses serialization. Direct execution avoids rebuilding |
| 86 | + or contending for the shared Cargo target lock. |
| 87 | +- `~/.cargo/shared-target/debug/deps/key_vault-2ea898359e39b97e codex --quiet`: |
| 88 | + 36 Codex catalog/discovery/credential-handling tests passed. Together with the |
| 89 | + provider suite, 482 distinct Rust tests passed. |
| 90 | +- SCSS compilation verified the purple token, matching focus ring, and retained |
| 91 | + reduced-motion rules. |
| 92 | +- `node scripts/quality/check-test-placement.mjs`: passed across 440 directories. |
| 93 | +- `rustfmt --check --edition 2021` on the six changed Rust files: passed. |
| 94 | +- `git diff --check`: passed. |
| 95 | + |
| 96 | +Verification used no desktop control or live LLM requests from ORGII. Mock HTTP |
| 97 | +requests and serialized request bodies verify the integration boundary, but do |
| 98 | +not prove provider acceptance or observed automatic delegation. Full-app visual |
| 99 | +inspection and CPU/RSS measurement were not run; no runtime performance gain is |
| 100 | +claimed. |
| 101 | + |
| 102 | +Performance verdict: **pass for this scoped change**. No new idle/background |
| 103 | +resources or retained state were introduced; listener cleanup and visibility |
| 104 | +gating are regression-tested. Active Ultra delegation can consume more usage |
| 105 | +within existing limits; its real-world latency and resource cost remain unmeasured. |
0 commit comments