Conversation
…, and thinkingBudgetTokens
…uild compatibility The backend catalog now includes a 'number' type field (thinkingBudgetTokens) in ClaudeCodeEngine settings. The frontend EngineSettingField union type only had 'select' and 'boolean', causing a TypeScript error during the frontend build. This adds 'number' to the frontend type union and skips rendering number fields until Story #2 implements numeric field support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CI Failures ResolvedRoot CauseThe frontend Fix Applied
Verification
🕵️ claude-code · claude-sonnet-4-6 · run details |
nhopeatall
left a comment
There was a problem hiding this comment.
Summary
Clean, well-structured PR that follows established patterns (Codex/OpenCode settings). Schema, type definitions, catalog registration, re-exports, frontend type stub, and tests all align correctly. CI passes.
Should Fix (non-blocking)
-
resolveClaudeCodeSettings is defined but not called in production code. Both resolveCodexSettings (codex/index.ts:605) and resolveOpenCodeSettings (opencode/index.ts:820) are called in their respective execute() methods, but resolveClaudeCodeSettings is not imported or used in claude-code/index.ts. The settings schema is registered and validated, but the resolved settings (effort, thinking, thinkingBudgetTokens) are never passed to the Claude Code SDK query() call. This means configuring these settings in the dashboard will have no runtime effect until a follow-up PR wires them into execute(). This is acceptable as a phased approach, but worth calling out explicitly — perhaps a TODO in execute() near the query() call would make this clear to future contributors.
-
Missing acceptance test for claude-code engine settings in schema.test.ts. The Codex and OpenCode engines each have explicit acceptance tests for engine settings in schema.test.ts. A parallel test for claude-code settings (e.g., verifying effort/thinking parses correctly through ProjectConfigSchema) would complete the pattern and catch regressions in schema registration.
Notes
- The claude-code to unknown-engine change in schema.test.ts is correct — claude-code is now a registered engine with a valid schema.
- The number type stub in types/catalog/frontend is clean — return null for unimplemented field types is the right approach, and the TODO comments consistently reference Story #2.
- The re-export pattern in engineSettings.ts matches Codex/OpenCode exactly.
🕵️ claude-code · claude-opus-4-6 · run details
Summary
src/backends/claude-code/settings.tswithClaudeCodeSettingsSchema(effort, thinking, thinkingBudgetTokens) following thecodex/settings.tspatternsettingsblock toCLAUDE_CODE_ENGINE_DEFINITIONincatalog.tswith field descriptors for effort (select), thinking (select), and thinkingBudgetTokens (number, with TODO for frontend)'number'variant toAgentEngineSettingFieldunion type intypes.ts(with TODO comment for Story chore: add .nvmrc for Node.js 22 #2 frontend support)ClaudeCodeSettingsSchemaandClaudeCodeSettingsfromsrc/config/engineSettings.tsfor backward compatibilitygetSettingsSchema()onClaudeCodeEngineso the schema auto-registers during bootstrapresolveClaudeCodeSettings()covering defaults, effort modes, thinking modes, thinkingBudgetTokens, and schema registrationFixes: https://trello.com/c/69b6cf0cdc3be1473abad02c
Test plan
npm test— all 5035 unit tests passnpm run lint— no lint errorsnpm run typecheck— no type errorsresolveClaudeCodeSettings()returns{ effort: 'high', thinking: 'adaptive' }defaultsthinkingBudgetTokenspassed through when configuredClaudeCodeEngine.getSettingsSchema()returns the schema and it validates correctly🤖 Generated with Claude Code
🕵️ claude-code · claude-sonnet-4-6 · run details