feat(models): prompt for reasoning level on DEFAULT assignments for all providers - #4390
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…ll providers The model selector only opened the reasoning menu for the DEFAULT target when the model's provider was openai/openai-codex. Assigning an Anthropic reasoning model (e.g. claude-fable-5) to DEFAULT committed immediately with a bare selector, so there was no way to pin an explicit effort from the picker: the assignment silently inherited defaultThinkingLevel and re-picking stripped any hand-configured :level suffix from modelRoles.default. requiresExplicitThinkingChoice now returns true for the DEFAULT target whenever the model is reasoning-capable, matching the existing role-agent behavior. The selector-controller already composes the :level suffix and applies session.setThinkingLevel for default assignments, and session startup already honors an explicit suffix on the remembered default (explicitThinkingLevel), so the choice persists across restarts with no further changes. Non-reasoning models and temporary (role-less) model switches keep their current no-prompt behavior.
b9cff01 to
f8953e4
Compare
|
Independent exact-head review requested from @probepark. Review target: |
|
Independent exact-head reviews recovered and clear. Architect verdict: |
What
Carries contributor PR #4387 onto current
devby cherry-picking Jason Lee's exact contributor commit97bd828475095da585754622d4f2561f5c6ecc88, resolving only the real changelog and selector conflicts, and preserving the merged #4377 Grok 4.5/4.6 explicit-effort policy.The shared model-assignment predicate now requires an explicit supported effort for every reasoning-capable DEFAULT assignment, so selector UI and argument-based
/modelbehave consistently across providers. Existing explicit suffixes seed the selector and persist inmodelRoles.default; non-reasoning assignments stay direct; provider-general role-less temporary switches stay direct; OpenAI/OpenAI-Codex and Grok provider-specific explicit-thinking behavior remains unchanged.Contributor credit: @jason931225. Cherry-picked contributor commit:
97bd828475095da585754622d4f2561f5c6ecc88.Why
PR #4387 incorrectly targets
main. This dev-targeted owner branch contains one commit on currentdev(8e5c0e8a63200dafaae9fde2b5826e030fe83cbd) and introduces no main-history or docs commits.Testing
bun test packages/coding-agent/test/model-selector-role-badge-thinking.test.ts packages/coding-agent/test/model-selector-batch-thinking.test.ts packages/coding-agent/test/model-selector-controller-batch.test.ts packages/coding-agent/test/acp-builtins.test.ts— 128 pass, 0 failbunx biome checkon every touched TypeScript test/source file — cleanbun --cwd=packages/coding-agent run check:types— cleancheckis blocked by unrelated pre-existing baseline lint findings ingajaessi-launcher-alias.test.ts,settings.ts,sdk/bus/index.ts, andsdk/bus/telegram-daemon.ts; the only touched-file formatter finding was fixed.Exact-head evidence
8e5c0e8a63200dafaae9fde2b5826e030fe83cbdf8953e4563f382c8bd169bcfd175c43ec185f486git rev-list --count origin/dev..HEAD=1git diff --name-status origin/dev...HEADcontains only the six coding-agent source/test/changelog files listed in this PR.GJC verdict
devbun checkpasses (blocked only by unrelated baseline lint findings listed above)