fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main - #4240

Merged
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults
Jul 22, 2026
Merged

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main#4240
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults

Conversation

@t3dotgg

@t3dotggt3dotgg commented Jul 21, 2026

Copy link
Copy Markdown
Member

Fixes a batch of stale defaults in one pass. Folds in #3950 and #3958 (cherry-picked, with adjustments below).

1. Claude context window defaults to 1M for Opus and Fable

From #3950: the 200k default was a leftover guard from the subscription-gated 1M era (#1556) that outlived its rationale when subscription detection was removed (#1899).

Adjusted from the original PR: Sonnet 5 / Sonnet 4.6 stay at 200k default with 1M opt-in, matching Claude Code's own defaults (Opus and Fable are 1M-default there; Sonnet is not). Fable 5 and Opus 4.6 now default to 1M; Opus 4.8/4.7 were already hard-coded 1M with no toggle.

2. Codex default model follows the live catalog, preferring gpt-5.6-sol

DEFAULT_MODEL was a hardcoded "gpt-5.4" in contracts, and both web (getDefaultServerModel) and mobile (new-task flow) fell back to it or to the first list entry — which is why mobile kept landing on gpt-5.4.

The Codex app-server's model/list already reports isDefault per model; we were dropping it. Now:

  • ServerProviderModel carries an optional isDefault, populated from the Codex catalog.
  • The provider snapshot re-points the default with our preference order: gpt-5.6-sol → gpt-5.6-terra → whatever Codex itself flags (so when neither preferred slug exists, we inherit Codex's built-in default instead of pinning a stale slug).
  • Web getDefaultServerModel and mobile's new-task model fallback pick the flagged default before falling back to first-in-list.
  • The static DEFAULT_MODEL fallback (only reachable with no live catalog) is bumped to gpt-5.6-sol.

3. New worktrees start from origin's default branch

From #3958, unchanged: newWorktreesStartFromOrigin defaults on, web/mobile pre-select the repo default branch (origin/HEAD) as the worktree base instead of the currently checked-out branch, and listRefs marks origin/<default> as default even when no local copy of the default branch exists (addresses the review finding on that PR).

Testing

  • vp run -r typecheck clean
  • New unit tests for the Codex default-preference logic (sol over terra, Codex fallback, custom-model shadowing)
  • Server provider/vcs suites, contracts, shared, web model-selection, and mobile modelOptions tests all pass

🤖 Generated with Claude Code


Note

Medium Risk
Changes default behavior for existing users (worktrees from origin, Claude 1M on Opus/Fable, Codex model selection) and touches provider API model ID resolution and task creation metadata.

Overview
Refreshes stale product defaults across Claude, Codex, worktrees, and git ref listing so new tasks and API calls match current provider behavior.

Claude context window: Opus/Fable models that expose a context toggle now default to 1M (Sonnet stays 200k with 1M opt-in). resolveClaudeContextWindow drives both adapter context sizing and API model IDs ([1m] suffix), so unset selections pick up descriptor defaults instead of hard-coded 200k.

Codex default model:ServerProviderModel gains optional isDefault from Codex model/list; snapshot logic prefers gpt-5.6-solgpt-5.6-terra → Codex’s own flag. Web, mobile new-task flow, and static DEFAULT_MODEL / git text-generation fallbacks use that flag before “first in list.”

Worktrees:newWorktreesStartFromOrigin decodes on for legacy settings. Mobile/web resolve start-from-origin from server settings when the draft never set it, only persist explicit user toggles, and queued tasks inherit the same resolved value. Branch auto-select and web worktree base branch prefer repo default refs, including when the default exists only as origin/<branch>.

Git VCS: Remote origin default branch is marked isDefault without a local copy; default/current refs sort to the top of combined ref lists.

Reviewed by Cursor Bugbot for commit 40a35ef. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Update default models to Claude 1M context, Codex gpt-5.6, and worktrees from origin main

  • Changes DEFAULT_MODEL to gpt-5.6-sol and DEFAULT_GIT_TEXT_GENERATION_MODEL to gpt-5.6-luna in model.ts; adds PREFERRED_DEFAULT_CODEX_MODELS ranking ['gpt-5.6-sol', 'gpt-5.6-terra']
  • Sets Claude claude-fable-5 and claude-opus-4-8 context window default to 1m; resolveClaudeContextWindow now drives both model ID suffixing and context window resolution so defaults are honored without explicit user selection
  • Adds applyPreferredCodexDefaultModel to mark the highest-ranked available Codex model as default in the provider snapshot, overriding Codex's own default when a preferred model is available
  • Changes newWorktreesStartFromOrigin server setting default from false to true; the mobile and web composers now resolve the effective value from server settings unless the user explicitly overrides
  • listRefs marks origin/<default> as isDefault when no local copy exists and sorts current/default refs to the top of results, so worktree branch auto-selection and UI display prefer the repo default
  • Behavioral Change: existing users without an explicit newWorktreesStartFromOrigin setting will now get startFromOrigin: true by default; queued tasks inherit the resolved value rather than the draft value

Macroscope summarized 40a35ef.

Summary by CodeRabbit

  • New Features

    • Updated default models, including preferred Codex model selection.
    • Improved Claude context-window handling, with larger context available by default for supported models.
    • Worktree setup now recognizes remote default branches and selects them automatically when appropriate.
    • New worktrees now start from the repository origin by default.
  • Bug Fixes

    • Draft task settings now preserve explicit origin choices without overwriting unset preferences.
    • Model pickers more reliably select the provider-designated default model.

Loading
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main - #4240

Merged
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults
Jul 22, 2026
Merged

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main#4240
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults

Conversation

@t3dotgg

@t3dotggt3dotgg commented Jul 21, 2026

Copy link
Copy Markdown
Member

Fixes a batch of stale defaults in one pass. Folds in #3950 and #3958 (cherry-picked, with adjustments below).

1. Claude context window defaults to 1M for Opus and Fable

From #3950: the 200k default was a leftover guard from the subscription-gated 1M era (#1556) that outlived its rationale when subscription detection was removed (#1899).

Adjusted from the original PR: Sonnet 5 / Sonnet 4.6 stay at 200k default with 1M opt-in, matching Claude Code's own defaults (Opus and Fable are 1M-default there; Sonnet is not). Fable 5 and Opus 4.6 now default to 1M; Opus 4.8/4.7 were already hard-coded 1M with no toggle.

2. Codex default model follows the live catalog, preferring gpt-5.6-sol

DEFAULT_MODEL was a hardcoded "gpt-5.4" in contracts, and both web (getDefaultServerModel) and mobile (new-task flow) fell back to it or to the first list entry — which is why mobile kept landing on gpt-5.4.

The Codex app-server's model/list already reports isDefault per model; we were dropping it. Now:

  • ServerProviderModel carries an optional isDefault, populated from the Codex catalog.
  • The provider snapshot re-points the default with our preference order: gpt-5.6-sol → gpt-5.6-terra → whatever Codex itself flags (so when neither preferred slug exists, we inherit Codex's built-in default instead of pinning a stale slug).
  • Web getDefaultServerModel and mobile's new-task model fallback pick the flagged default before falling back to first-in-list.
  • The static DEFAULT_MODEL fallback (only reachable with no live catalog) is bumped to gpt-5.6-sol.

3. New worktrees start from origin's default branch

From #3958, unchanged: newWorktreesStartFromOrigin defaults on, web/mobile pre-select the repo default branch (origin/HEAD) as the worktree base instead of the currently checked-out branch, and listRefs marks origin/<default> as default even when no local copy of the default branch exists (addresses the review finding on that PR).

Testing

  • vp run -r typecheck clean
  • New unit tests for the Codex default-preference logic (sol over terra, Codex fallback, custom-model shadowing)
  • Server provider/vcs suites, contracts, shared, web model-selection, and mobile modelOptions tests all pass

🤖 Generated with Claude Code


Note

Medium Risk
Changes default behavior for existing users (worktrees from origin, Claude 1M on Opus/Fable, Codex model selection) and touches provider API model ID resolution and task creation metadata.

Overview
Refreshes stale product defaults across Claude, Codex, worktrees, and git ref listing so new tasks and API calls match current provider behavior.

Claude context window: Opus/Fable models that expose a context toggle now default to 1M (Sonnet stays 200k with 1M opt-in). resolveClaudeContextWindow drives both adapter context sizing and API model IDs ([1m] suffix), so unset selections pick up descriptor defaults instead of hard-coded 200k.

Codex default model:ServerProviderModel gains optional isDefault from Codex model/list; snapshot logic prefers gpt-5.6-solgpt-5.6-terra → Codex’s own flag. Web, mobile new-task flow, and static DEFAULT_MODEL / git text-generation fallbacks use that flag before “first in list.”

Worktrees:newWorktreesStartFromOrigin decodes on for legacy settings. Mobile/web resolve start-from-origin from server settings when the draft never set it, only persist explicit user toggles, and queued tasks inherit the same resolved value. Branch auto-select and web worktree base branch prefer repo default refs, including when the default exists only as origin/<branch>.

Git VCS: Remote origin default branch is marked isDefault without a local copy; default/current refs sort to the top of combined ref lists.

Reviewed by Cursor Bugbot for commit 40a35ef. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Update default models to Claude 1M context, Codex gpt-5.6, and worktrees from origin main

  • Changes DEFAULT_MODEL to gpt-5.6-sol and DEFAULT_GIT_TEXT_GENERATION_MODEL to gpt-5.6-luna in model.ts; adds PREFERRED_DEFAULT_CODEX_MODELS ranking ['gpt-5.6-sol', 'gpt-5.6-terra']
  • Sets Claude claude-fable-5 and claude-opus-4-8 context window default to 1m; resolveClaudeContextWindow now drives both model ID suffixing and context window resolution so defaults are honored without explicit user selection
  • Adds applyPreferredCodexDefaultModel to mark the highest-ranked available Codex model as default in the provider snapshot, overriding Codex's own default when a preferred model is available
  • Changes newWorktreesStartFromOrigin server setting default from false to true; the mobile and web composers now resolve the effective value from server settings unless the user explicitly overrides
  • listRefs marks origin/<default> as isDefault when no local copy exists and sorts current/default refs to the top of results, so worktree branch auto-selection and UI display prefer the repo default
  • Behavioral Change: existing users without an explicit newWorktreesStartFromOrigin setting will now get startFromOrigin: true by default; queued tasks inherit the resolved value rather than the draft value

Macroscope summarized 40a35ef.

Summary by CodeRabbit

  • New Features

    • Updated default models, including preferred Codex model selection.
    • Improved Claude context-window handling, with larger context available by default for supported models.
    • Worktree setup now recognizes remote default branches and selects them automatically when appropriate.
    • New worktrees now start from the repository origin by default.
  • Bug Fixes

    • Draft task settings now preserve explicit origin choices without overwriting unset preferences.
    • Model pickers more reliably select the provider-designated default model.

Loading
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main - #4240

Merged
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults
Jul 22, 2026
Merged

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main#4240
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults

Conversation

@t3dotgg

@t3dotggt3dotgg commented Jul 21, 2026

Copy link
Copy Markdown
Member

Fixes a batch of stale defaults in one pass. Folds in #3950 and #3958 (cherry-picked, with adjustments below).

1. Claude context window defaults to 1M for Opus and Fable

From #3950: the 200k default was a leftover guard from the subscription-gated 1M era (#1556) that outlived its rationale when subscription detection was removed (#1899).

Adjusted from the original PR: Sonnet 5 / Sonnet 4.6 stay at 200k default with 1M opt-in, matching Claude Code's own defaults (Opus and Fable are 1M-default there; Sonnet is not). Fable 5 and Opus 4.6 now default to 1M; Opus 4.8/4.7 were already hard-coded 1M with no toggle.

2. Codex default model follows the live catalog, preferring gpt-5.6-sol

DEFAULT_MODEL was a hardcoded "gpt-5.4" in contracts, and both web (getDefaultServerModel) and mobile (new-task flow) fell back to it or to the first list entry — which is why mobile kept landing on gpt-5.4.

The Codex app-server's model/list already reports isDefault per model; we were dropping it. Now:

  • ServerProviderModel carries an optional isDefault, populated from the Codex catalog.
  • The provider snapshot re-points the default with our preference order: gpt-5.6-sol → gpt-5.6-terra → whatever Codex itself flags (so when neither preferred slug exists, we inherit Codex's built-in default instead of pinning a stale slug).
  • Web getDefaultServerModel and mobile's new-task model fallback pick the flagged default before falling back to first-in-list.
  • The static DEFAULT_MODEL fallback (only reachable with no live catalog) is bumped to gpt-5.6-sol.

3. New worktrees start from origin's default branch

From #3958, unchanged: newWorktreesStartFromOrigin defaults on, web/mobile pre-select the repo default branch (origin/HEAD) as the worktree base instead of the currently checked-out branch, and listRefs marks origin/<default> as default even when no local copy of the default branch exists (addresses the review finding on that PR).

Testing

  • vp run -r typecheck clean
  • New unit tests for the Codex default-preference logic (sol over terra, Codex fallback, custom-model shadowing)
  • Server provider/vcs suites, contracts, shared, web model-selection, and mobile modelOptions tests all pass

🤖 Generated with Claude Code


Note

Medium Risk
Changes default behavior for existing users (worktrees from origin, Claude 1M on Opus/Fable, Codex model selection) and touches provider API model ID resolution and task creation metadata.

Overview
Refreshes stale product defaults across Claude, Codex, worktrees, and git ref listing so new tasks and API calls match current provider behavior.

Claude context window: Opus/Fable models that expose a context toggle now default to 1M (Sonnet stays 200k with 1M opt-in). resolveClaudeContextWindow drives both adapter context sizing and API model IDs ([1m] suffix), so unset selections pick up descriptor defaults instead of hard-coded 200k.

Codex default model:ServerProviderModel gains optional isDefault from Codex model/list; snapshot logic prefers gpt-5.6-solgpt-5.6-terra → Codex’s own flag. Web, mobile new-task flow, and static DEFAULT_MODEL / git text-generation fallbacks use that flag before “first in list.”

Worktrees:newWorktreesStartFromOrigin decodes on for legacy settings. Mobile/web resolve start-from-origin from server settings when the draft never set it, only persist explicit user toggles, and queued tasks inherit the same resolved value. Branch auto-select and web worktree base branch prefer repo default refs, including when the default exists only as origin/<branch>.

Git VCS: Remote origin default branch is marked isDefault without a local copy; default/current refs sort to the top of combined ref lists.

Reviewed by Cursor Bugbot for commit 40a35ef. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Update default models to Claude 1M context, Codex gpt-5.6, and worktrees from origin main

  • Changes DEFAULT_MODEL to gpt-5.6-sol and DEFAULT_GIT_TEXT_GENERATION_MODEL to gpt-5.6-luna in model.ts; adds PREFERRED_DEFAULT_CODEX_MODELS ranking ['gpt-5.6-sol', 'gpt-5.6-terra']
  • Sets Claude claude-fable-5 and claude-opus-4-8 context window default to 1m; resolveClaudeContextWindow now drives both model ID suffixing and context window resolution so defaults are honored without explicit user selection
  • Adds applyPreferredCodexDefaultModel to mark the highest-ranked available Codex model as default in the provider snapshot, overriding Codex's own default when a preferred model is available
  • Changes newWorktreesStartFromOrigin server setting default from false to true; the mobile and web composers now resolve the effective value from server settings unless the user explicitly overrides
  • listRefs marks origin/<default> as isDefault when no local copy exists and sorts current/default refs to the top of results, so worktree branch auto-selection and UI display prefer the repo default
  • Behavioral Change: existing users without an explicit newWorktreesStartFromOrigin setting will now get startFromOrigin: true by default; queued tasks inherit the resolved value rather than the draft value

Macroscope summarized 40a35ef.

Summary by CodeRabbit

  • New Features

    • Updated default models, including preferred Codex model selection.
    • Improved Claude context-window handling, with larger context available by default for supported models.
    • Worktree setup now recognizes remote default branches and selects them automatically when appropriate.
    • New worktrees now start from the repository origin by default.
  • Bug Fixes

    • Draft task settings now preserve explicit origin choices without overwriting unset preferences.
    • Model pickers more reliably select the provider-designated default model.

Loading
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main - #4240

Merged
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults
Jul 22, 2026
Merged

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main#4240
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults

Conversation

@t3dotgg

@t3dotggt3dotgg commented Jul 21, 2026

Copy link
Copy Markdown
Member

Fixes a batch of stale defaults in one pass. Folds in #3950 and #3958 (cherry-picked, with adjustments below).

1. Claude context window defaults to 1M for Opus and Fable

From #3950: the 200k default was a leftover guard from the subscription-gated 1M era (#1556) that outlived its rationale when subscription detection was removed (#1899).

Adjusted from the original PR: Sonnet 5 / Sonnet 4.6 stay at 200k default with 1M opt-in, matching Claude Code's own defaults (Opus and Fable are 1M-default there; Sonnet is not). Fable 5 and Opus 4.6 now default to 1M; Opus 4.8/4.7 were already hard-coded 1M with no toggle.

2. Codex default model follows the live catalog, preferring gpt-5.6-sol

DEFAULT_MODEL was a hardcoded "gpt-5.4" in contracts, and both web (getDefaultServerModel) and mobile (new-task flow) fell back to it or to the first list entry — which is why mobile kept landing on gpt-5.4.

The Codex app-server's model/list already reports isDefault per model; we were dropping it. Now:

  • ServerProviderModel carries an optional isDefault, populated from the Codex catalog.
  • The provider snapshot re-points the default with our preference order: gpt-5.6-sol → gpt-5.6-terra → whatever Codex itself flags (so when neither preferred slug exists, we inherit Codex's built-in default instead of pinning a stale slug).
  • Web getDefaultServerModel and mobile's new-task model fallback pick the flagged default before falling back to first-in-list.
  • The static DEFAULT_MODEL fallback (only reachable with no live catalog) is bumped to gpt-5.6-sol.

3. New worktrees start from origin's default branch

From #3958, unchanged: newWorktreesStartFromOrigin defaults on, web/mobile pre-select the repo default branch (origin/HEAD) as the worktree base instead of the currently checked-out branch, and listRefs marks origin/<default> as default even when no local copy of the default branch exists (addresses the review finding on that PR).

Testing

  • vp run -r typecheck clean
  • New unit tests for the Codex default-preference logic (sol over terra, Codex fallback, custom-model shadowing)
  • Server provider/vcs suites, contracts, shared, web model-selection, and mobile modelOptions tests all pass

🤖 Generated with Claude Code


Note

Medium Risk
Changes default behavior for existing users (worktrees from origin, Claude 1M on Opus/Fable, Codex model selection) and touches provider API model ID resolution and task creation metadata.

Overview
Refreshes stale product defaults across Claude, Codex, worktrees, and git ref listing so new tasks and API calls match current provider behavior.

Claude context window: Opus/Fable models that expose a context toggle now default to 1M (Sonnet stays 200k with 1M opt-in). resolveClaudeContextWindow drives both adapter context sizing and API model IDs ([1m] suffix), so unset selections pick up descriptor defaults instead of hard-coded 200k.

Codex default model:ServerProviderModel gains optional isDefault from Codex model/list; snapshot logic prefers gpt-5.6-solgpt-5.6-terra → Codex’s own flag. Web, mobile new-task flow, and static DEFAULT_MODEL / git text-generation fallbacks use that flag before “first in list.”

Worktrees:newWorktreesStartFromOrigin decodes on for legacy settings. Mobile/web resolve start-from-origin from server settings when the draft never set it, only persist explicit user toggles, and queued tasks inherit the same resolved value. Branch auto-select and web worktree base branch prefer repo default refs, including when the default exists only as origin/<branch>.

Git VCS: Remote origin default branch is marked isDefault without a local copy; default/current refs sort to the top of combined ref lists.

Reviewed by Cursor Bugbot for commit 40a35ef. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Update default models to Claude 1M context, Codex gpt-5.6, and worktrees from origin main

  • Changes DEFAULT_MODEL to gpt-5.6-sol and DEFAULT_GIT_TEXT_GENERATION_MODEL to gpt-5.6-luna in model.ts; adds PREFERRED_DEFAULT_CODEX_MODELS ranking ['gpt-5.6-sol', 'gpt-5.6-terra']
  • Sets Claude claude-fable-5 and claude-opus-4-8 context window default to 1m; resolveClaudeContextWindow now drives both model ID suffixing and context window resolution so defaults are honored without explicit user selection
  • Adds applyPreferredCodexDefaultModel to mark the highest-ranked available Codex model as default in the provider snapshot, overriding Codex's own default when a preferred model is available
  • Changes newWorktreesStartFromOrigin server setting default from false to true; the mobile and web composers now resolve the effective value from server settings unless the user explicitly overrides
  • listRefs marks origin/<default> as isDefault when no local copy exists and sorts current/default refs to the top of results, so worktree branch auto-selection and UI display prefer the repo default
  • Behavioral Change: existing users without an explicit newWorktreesStartFromOrigin setting will now get startFromOrigin: true by default; queued tasks inherit the resolved value rather than the draft value

Macroscope summarized 40a35ef.

Summary by CodeRabbit

  • New Features

    • Updated default models, including preferred Codex model selection.
    • Improved Claude context-window handling, with larger context available by default for supported models.
    • Worktree setup now recognizes remote default branches and selects them automatically when appropriate.
    • New worktrees now start from the repository origin by default.
  • Bug Fixes

    • Draft task settings now preserve explicit origin choices without overwriting unset preferences.
    • Model pickers more reliably select the provider-designated default model.

Loading
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main - #4240

Merged
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults
Jul 22, 2026
Merged

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main#4240
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults

Conversation

@t3dotgg

@t3dotggt3dotgg commented Jul 21, 2026

Copy link
Copy Markdown
Member

Fixes a batch of stale defaults in one pass. Folds in #3950 and #3958 (cherry-picked, with adjustments below).

1. Claude context window defaults to 1M for Opus and Fable

From #3950: the 200k default was a leftover guard from the subscription-gated 1M era (#1556) that outlived its rationale when subscription detection was removed (#1899).

Adjusted from the original PR: Sonnet 5 / Sonnet 4.6 stay at 200k default with 1M opt-in, matching Claude Code's own defaults (Opus and Fable are 1M-default there; Sonnet is not). Fable 5 and Opus 4.6 now default to 1M; Opus 4.8/4.7 were already hard-coded 1M with no toggle.

2. Codex default model follows the live catalog, preferring gpt-5.6-sol

DEFAULT_MODEL was a hardcoded "gpt-5.4" in contracts, and both web (getDefaultServerModel) and mobile (new-task flow) fell back to it or to the first list entry — which is why mobile kept landing on gpt-5.4.

The Codex app-server's model/list already reports isDefault per model; we were dropping it. Now:

  • ServerProviderModel carries an optional isDefault, populated from the Codex catalog.
  • The provider snapshot re-points the default with our preference order: gpt-5.6-sol → gpt-5.6-terra → whatever Codex itself flags (so when neither preferred slug exists, we inherit Codex's built-in default instead of pinning a stale slug).
  • Web getDefaultServerModel and mobile's new-task model fallback pick the flagged default before falling back to first-in-list.
  • The static DEFAULT_MODEL fallback (only reachable with no live catalog) is bumped to gpt-5.6-sol.

3. New worktrees start from origin's default branch

From #3958, unchanged: newWorktreesStartFromOrigin defaults on, web/mobile pre-select the repo default branch (origin/HEAD) as the worktree base instead of the currently checked-out branch, and listRefs marks origin/<default> as default even when no local copy of the default branch exists (addresses the review finding on that PR).

Testing

  • vp run -r typecheck clean
  • New unit tests for the Codex default-preference logic (sol over terra, Codex fallback, custom-model shadowing)
  • Server provider/vcs suites, contracts, shared, web model-selection, and mobile modelOptions tests all pass

🤖 Generated with Claude Code


Note

Medium Risk
Changes default behavior for existing users (worktrees from origin, Claude 1M on Opus/Fable, Codex model selection) and touches provider API model ID resolution and task creation metadata.

Overview
Refreshes stale product defaults across Claude, Codex, worktrees, and git ref listing so new tasks and API calls match current provider behavior.

Claude context window: Opus/Fable models that expose a context toggle now default to 1M (Sonnet stays 200k with 1M opt-in). resolveClaudeContextWindow drives both adapter context sizing and API model IDs ([1m] suffix), so unset selections pick up descriptor defaults instead of hard-coded 200k.

Codex default model:ServerProviderModel gains optional isDefault from Codex model/list; snapshot logic prefers gpt-5.6-solgpt-5.6-terra → Codex’s own flag. Web, mobile new-task flow, and static DEFAULT_MODEL / git text-generation fallbacks use that flag before “first in list.”

Worktrees:newWorktreesStartFromOrigin decodes on for legacy settings. Mobile/web resolve start-from-origin from server settings when the draft never set it, only persist explicit user toggles, and queued tasks inherit the same resolved value. Branch auto-select and web worktree base branch prefer repo default refs, including when the default exists only as origin/<branch>.

Git VCS: Remote origin default branch is marked isDefault without a local copy; default/current refs sort to the top of combined ref lists.

Reviewed by Cursor Bugbot for commit 40a35ef. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Update default models to Claude 1M context, Codex gpt-5.6, and worktrees from origin main

  • Changes DEFAULT_MODEL to gpt-5.6-sol and DEFAULT_GIT_TEXT_GENERATION_MODEL to gpt-5.6-luna in model.ts; adds PREFERRED_DEFAULT_CODEX_MODELS ranking ['gpt-5.6-sol', 'gpt-5.6-terra']
  • Sets Claude claude-fable-5 and claude-opus-4-8 context window default to 1m; resolveClaudeContextWindow now drives both model ID suffixing and context window resolution so defaults are honored without explicit user selection
  • Adds applyPreferredCodexDefaultModel to mark the highest-ranked available Codex model as default in the provider snapshot, overriding Codex's own default when a preferred model is available
  • Changes newWorktreesStartFromOrigin server setting default from false to true; the mobile and web composers now resolve the effective value from server settings unless the user explicitly overrides
  • listRefs marks origin/<default> as isDefault when no local copy exists and sorts current/default refs to the top of results, so worktree branch auto-selection and UI display prefer the repo default
  • Behavioral Change: existing users without an explicit newWorktreesStartFromOrigin setting will now get startFromOrigin: true by default; queued tasks inherit the resolved value rather than the draft value

Macroscope summarized 40a35ef.

Summary by CodeRabbit

  • New Features

    • Updated default models, including preferred Codex model selection.
    • Improved Claude context-window handling, with larger context available by default for supported models.
    • Worktree setup now recognizes remote default branches and selects them automatically when appropriate.
    • New worktrees now start from the repository origin by default.
  • Bug Fixes

    • Draft task settings now preserve explicit origin choices without overwriting unset preferences.
    • Model pickers more reliably select the provider-designated default model.

Loading
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main - #4240

Merged
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults
Jul 22, 2026
Merged

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main#4240
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults

Conversation

@t3dotgg

@t3dotggt3dotgg commented Jul 21, 2026

Copy link
Copy Markdown
Member

Fixes a batch of stale defaults in one pass. Folds in #3950 and #3958 (cherry-picked, with adjustments below).

1. Claude context window defaults to 1M for Opus and Fable

From #3950: the 200k default was a leftover guard from the subscription-gated 1M era (#1556) that outlived its rationale when subscription detection was removed (#1899).

Adjusted from the original PR: Sonnet 5 / Sonnet 4.6 stay at 200k default with 1M opt-in, matching Claude Code's own defaults (Opus and Fable are 1M-default there; Sonnet is not). Fable 5 and Opus 4.6 now default to 1M; Opus 4.8/4.7 were already hard-coded 1M with no toggle.

2. Codex default model follows the live catalog, preferring gpt-5.6-sol

DEFAULT_MODEL was a hardcoded "gpt-5.4" in contracts, and both web (getDefaultServerModel) and mobile (new-task flow) fell back to it or to the first list entry — which is why mobile kept landing on gpt-5.4.

The Codex app-server's model/list already reports isDefault per model; we were dropping it. Now:

  • ServerProviderModel carries an optional isDefault, populated from the Codex catalog.
  • The provider snapshot re-points the default with our preference order: gpt-5.6-sol → gpt-5.6-terra → whatever Codex itself flags (so when neither preferred slug exists, we inherit Codex's built-in default instead of pinning a stale slug).
  • Web getDefaultServerModel and mobile's new-task model fallback pick the flagged default before falling back to first-in-list.
  • The static DEFAULT_MODEL fallback (only reachable with no live catalog) is bumped to gpt-5.6-sol.

3. New worktrees start from origin's default branch

From #3958, unchanged: newWorktreesStartFromOrigin defaults on, web/mobile pre-select the repo default branch (origin/HEAD) as the worktree base instead of the currently checked-out branch, and listRefs marks origin/<default> as default even when no local copy of the default branch exists (addresses the review finding on that PR).

Testing

  • vp run -r typecheck clean
  • New unit tests for the Codex default-preference logic (sol over terra, Codex fallback, custom-model shadowing)
  • Server provider/vcs suites, contracts, shared, web model-selection, and mobile modelOptions tests all pass

🤖 Generated with Claude Code


Note

Medium Risk
Changes default behavior for existing users (worktrees from origin, Claude 1M on Opus/Fable, Codex model selection) and touches provider API model ID resolution and task creation metadata.

Overview
Refreshes stale product defaults across Claude, Codex, worktrees, and git ref listing so new tasks and API calls match current provider behavior.

Claude context window: Opus/Fable models that expose a context toggle now default to 1M (Sonnet stays 200k with 1M opt-in). resolveClaudeContextWindow drives both adapter context sizing and API model IDs ([1m] suffix), so unset selections pick up descriptor defaults instead of hard-coded 200k.

Codex default model:ServerProviderModel gains optional isDefault from Codex model/list; snapshot logic prefers gpt-5.6-solgpt-5.6-terra → Codex’s own flag. Web, mobile new-task flow, and static DEFAULT_MODEL / git text-generation fallbacks use that flag before “first in list.”

Worktrees:newWorktreesStartFromOrigin decodes on for legacy settings. Mobile/web resolve start-from-origin from server settings when the draft never set it, only persist explicit user toggles, and queued tasks inherit the same resolved value. Branch auto-select and web worktree base branch prefer repo default refs, including when the default exists only as origin/<branch>.

Git VCS: Remote origin default branch is marked isDefault without a local copy; default/current refs sort to the top of combined ref lists.

Reviewed by Cursor Bugbot for commit 40a35ef. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Update default models to Claude 1M context, Codex gpt-5.6, and worktrees from origin main

  • Changes DEFAULT_MODEL to gpt-5.6-sol and DEFAULT_GIT_TEXT_GENERATION_MODEL to gpt-5.6-luna in model.ts; adds PREFERRED_DEFAULT_CODEX_MODELS ranking ['gpt-5.6-sol', 'gpt-5.6-terra']
  • Sets Claude claude-fable-5 and claude-opus-4-8 context window default to 1m; resolveClaudeContextWindow now drives both model ID suffixing and context window resolution so defaults are honored without explicit user selection
  • Adds applyPreferredCodexDefaultModel to mark the highest-ranked available Codex model as default in the provider snapshot, overriding Codex's own default when a preferred model is available
  • Changes newWorktreesStartFromOrigin server setting default from false to true; the mobile and web composers now resolve the effective value from server settings unless the user explicitly overrides
  • listRefs marks origin/<default> as isDefault when no local copy exists and sorts current/default refs to the top of results, so worktree branch auto-selection and UI display prefer the repo default
  • Behavioral Change: existing users without an explicit newWorktreesStartFromOrigin setting will now get startFromOrigin: true by default; queued tasks inherit the resolved value rather than the draft value

Macroscope summarized 40a35ef.

Summary by CodeRabbit

  • New Features

    • Updated default models, including preferred Codex model selection.
    • Improved Claude context-window handling, with larger context available by default for supported models.
    • Worktree setup now recognizes remote default branches and selects them automatically when appropriate.
    • New worktrees now start from the repository origin by default.
  • Bug Fixes

    • Draft task settings now preserve explicit origin choices without overwriting unset preferences.
    • Model pickers more reliably select the provider-designated default model.

Loading
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main - #4240

Merged
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults
Jul 22, 2026
Merged

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main#4240
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults

Conversation

@t3dotgg

@t3dotggt3dotgg commented Jul 21, 2026

Copy link
Copy Markdown
Member

Fixes a batch of stale defaults in one pass. Folds in #3950 and #3958 (cherry-picked, with adjustments below).

1. Claude context window defaults to 1M for Opus and Fable

From #3950: the 200k default was a leftover guard from the subscription-gated 1M era (#1556) that outlived its rationale when subscription detection was removed (#1899).

Adjusted from the original PR: Sonnet 5 / Sonnet 4.6 stay at 200k default with 1M opt-in, matching Claude Code's own defaults (Opus and Fable are 1M-default there; Sonnet is not). Fable 5 and Opus 4.6 now default to 1M; Opus 4.8/4.7 were already hard-coded 1M with no toggle.

2. Codex default model follows the live catalog, preferring gpt-5.6-sol

DEFAULT_MODEL was a hardcoded "gpt-5.4" in contracts, and both web (getDefaultServerModel) and mobile (new-task flow) fell back to it or to the first list entry — which is why mobile kept landing on gpt-5.4.

The Codex app-server's model/list already reports isDefault per model; we were dropping it. Now:

  • ServerProviderModel carries an optional isDefault, populated from the Codex catalog.
  • The provider snapshot re-points the default with our preference order: gpt-5.6-sol → gpt-5.6-terra → whatever Codex itself flags (so when neither preferred slug exists, we inherit Codex's built-in default instead of pinning a stale slug).
  • Web getDefaultServerModel and mobile's new-task model fallback pick the flagged default before falling back to first-in-list.
  • The static DEFAULT_MODEL fallback (only reachable with no live catalog) is bumped to gpt-5.6-sol.

3. New worktrees start from origin's default branch

From #3958, unchanged: newWorktreesStartFromOrigin defaults on, web/mobile pre-select the repo default branch (origin/HEAD) as the worktree base instead of the currently checked-out branch, and listRefs marks origin/<default> as default even when no local copy of the default branch exists (addresses the review finding on that PR).

Testing

  • vp run -r typecheck clean
  • New unit tests for the Codex default-preference logic (sol over terra, Codex fallback, custom-model shadowing)
  • Server provider/vcs suites, contracts, shared, web model-selection, and mobile modelOptions tests all pass

🤖 Generated with Claude Code


Note

Medium Risk
Changes default behavior for existing users (worktrees from origin, Claude 1M on Opus/Fable, Codex model selection) and touches provider API model ID resolution and task creation metadata.

Overview
Refreshes stale product defaults across Claude, Codex, worktrees, and git ref listing so new tasks and API calls match current provider behavior.

Claude context window: Opus/Fable models that expose a context toggle now default to 1M (Sonnet stays 200k with 1M opt-in). resolveClaudeContextWindow drives both adapter context sizing and API model IDs ([1m] suffix), so unset selections pick up descriptor defaults instead of hard-coded 200k.

Codex default model:ServerProviderModel gains optional isDefault from Codex model/list; snapshot logic prefers gpt-5.6-solgpt-5.6-terra → Codex’s own flag. Web, mobile new-task flow, and static DEFAULT_MODEL / git text-generation fallbacks use that flag before “first in list.”

Worktrees:newWorktreesStartFromOrigin decodes on for legacy settings. Mobile/web resolve start-from-origin from server settings when the draft never set it, only persist explicit user toggles, and queued tasks inherit the same resolved value. Branch auto-select and web worktree base branch prefer repo default refs, including when the default exists only as origin/<branch>.

Git VCS: Remote origin default branch is marked isDefault without a local copy; default/current refs sort to the top of combined ref lists.

Reviewed by Cursor Bugbot for commit 40a35ef. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Update default models to Claude 1M context, Codex gpt-5.6, and worktrees from origin main

  • Changes DEFAULT_MODEL to gpt-5.6-sol and DEFAULT_GIT_TEXT_GENERATION_MODEL to gpt-5.6-luna in model.ts; adds PREFERRED_DEFAULT_CODEX_MODELS ranking ['gpt-5.6-sol', 'gpt-5.6-terra']
  • Sets Claude claude-fable-5 and claude-opus-4-8 context window default to 1m; resolveClaudeContextWindow now drives both model ID suffixing and context window resolution so defaults are honored without explicit user selection
  • Adds applyPreferredCodexDefaultModel to mark the highest-ranked available Codex model as default in the provider snapshot, overriding Codex's own default when a preferred model is available
  • Changes newWorktreesStartFromOrigin server setting default from false to true; the mobile and web composers now resolve the effective value from server settings unless the user explicitly overrides
  • listRefs marks origin/<default> as isDefault when no local copy exists and sorts current/default refs to the top of results, so worktree branch auto-selection and UI display prefer the repo default
  • Behavioral Change: existing users without an explicit newWorktreesStartFromOrigin setting will now get startFromOrigin: true by default; queued tasks inherit the resolved value rather than the draft value

Macroscope summarized 40a35ef.

Summary by CodeRabbit

  • New Features

    • Updated default models, including preferred Codex model selection.
    • Improved Claude context-window handling, with larger context available by default for supported models.
    • Worktree setup now recognizes remote default branches and selects them automatically when appropriate.
    • New worktrees now start from the repository origin by default.
  • Bug Fixes

    • Draft task settings now preserve explicit origin choices without overwriting unset preferences.
    • Model pickers more reliably select the provider-designated default model.

Loading
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main - #4240

Merged
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults
Jul 22, 2026
Merged

fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main#4240
t3dotgg merged 7 commits into
mainfrom
t3code/fix-defaults

Conversation

@t3dotgg

@t3dotggt3dotgg commented Jul 21, 2026

Copy link
Copy Markdown
Member

Fixes a batch of stale defaults in one pass. Folds in #3950 and #3958 (cherry-picked, with adjustments below).

1. Claude context window defaults to 1M for Opus and Fable

From #3950: the 200k default was a leftover guard from the subscription-gated 1M era (#1556) that outlived its rationale when subscription detection was removed (#1899).

Adjusted from the original PR: Sonnet 5 / Sonnet 4.6 stay at 200k default with 1M opt-in, matching Claude Code's own defaults (Opus and Fable are 1M-default there; Sonnet is not). Fable 5 and Opus 4.6 now default to 1M; Opus 4.8/4.7 were already hard-coded 1M with no toggle.

2. Codex default model follows the live catalog, preferring gpt-5.6-sol

DEFAULT_MODEL was a hardcoded "gpt-5.4" in contracts, and both web (getDefaultServerModel) and mobile (new-task flow) fell back to it or to the first list entry — which is why mobile kept landing on gpt-5.4.

The Codex app-server's model/list already reports isDefault per model; we were dropping it. Now:

  • ServerProviderModel carries an optional isDefault, populated from the Codex catalog.
  • The provider snapshot re-points the default with our preference order: gpt-5.6-sol → gpt-5.6-terra → whatever Codex itself flags (so when neither preferred slug exists, we inherit Codex's built-in default instead of pinning a stale slug).
  • Web getDefaultServerModel and mobile's new-task model fallback pick the flagged default before falling back to first-in-list.
  • The static DEFAULT_MODEL fallback (only reachable with no live catalog) is bumped to gpt-5.6-sol.

3. New worktrees start from origin's default branch

From #3958, unchanged: newWorktreesStartFromOrigin defaults on, web/mobile pre-select the repo default branch (origin/HEAD) as the worktree base instead of the currently checked-out branch, and listRefs marks origin/<default> as default even when no local copy of the default branch exists (addresses the review finding on that PR).

Testing

  • vp run -r typecheck clean
  • New unit tests for the Codex default-preference logic (sol over terra, Codex fallback, custom-model shadowing)
  • Server provider/vcs suites, contracts, shared, web model-selection, and mobile modelOptions tests all pass

🤖 Generated with Claude Code


Note

Medium Risk
Changes default behavior for existing users (worktrees from origin, Claude 1M on Opus/Fable, Codex model selection) and touches provider API model ID resolution and task creation metadata.

Overview
Refreshes stale product defaults across Claude, Codex, worktrees, and git ref listing so new tasks and API calls match current provider behavior.

Claude context window: Opus/Fable models that expose a context toggle now default to 1M (Sonnet stays 200k with 1M opt-in). resolveClaudeContextWindow drives both adapter context sizing and API model IDs ([1m] suffix), so unset selections pick up descriptor defaults instead of hard-coded 200k.

Codex default model:ServerProviderModel gains optional isDefault from Codex model/list; snapshot logic prefers gpt-5.6-solgpt-5.6-terra → Codex’s own flag. Web, mobile new-task flow, and static DEFAULT_MODEL / git text-generation fallbacks use that flag before “first in list.”

Worktrees:newWorktreesStartFromOrigin decodes on for legacy settings. Mobile/web resolve start-from-origin from server settings when the draft never set it, only persist explicit user toggles, and queued tasks inherit the same resolved value. Branch auto-select and web worktree base branch prefer repo default refs, including when the default exists only as origin/<branch>.

Git VCS: Remote origin default branch is marked isDefault without a local copy; default/current refs sort to the top of combined ref lists.

Reviewed by Cursor Bugbot for commit 40a35ef. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Update default models to Claude 1M context, Codex gpt-5.6, and worktrees from origin main

  • Changes DEFAULT_MODEL to gpt-5.6-sol and DEFAULT_GIT_TEXT_GENERATION_MODEL to gpt-5.6-luna in model.ts; adds PREFERRED_DEFAULT_CODEX_MODELS ranking ['gpt-5.6-sol', 'gpt-5.6-terra']
  • Sets Claude claude-fable-5 and claude-opus-4-8 context window default to 1m; resolveClaudeContextWindow now drives both model ID suffixing and context window resolution so defaults are honored without explicit user selection
  • Adds applyPreferredCodexDefaultModel to mark the highest-ranked available Codex model as default in the provider snapshot, overriding Codex's own default when a preferred model is available
  • Changes newWorktreesStartFromOrigin server setting default from false to true; the mobile and web composers now resolve the effective value from server settings unless the user explicitly overrides
  • listRefs marks origin/<default> as isDefault when no local copy exists and sorts current/default refs to the top of results, so worktree branch auto-selection and UI display prefer the repo default
  • Behavioral Change: existing users without an explicit newWorktreesStartFromOrigin setting will now get startFromOrigin: true by default; queued tasks inherit the resolved value rather than the draft value

Macroscope summarized 40a35ef.

Summary by CodeRabbit

  • New Features

    • Updated default models, including preferred Codex model selection.
    • Improved Claude context-window handling, with larger context available by default for supported models.
    • Worktree setup now recognizes remote default branches and selects them automatically when appropriate.
    • New worktrees now start from the repository origin by default.
  • Bug Fixes

    • Draft task settings now preserve explicit origin choices without overwriting unset preferences.
    • Model pickers more reliably select the provider-designated default model.

Loading
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg