Task assignment should allow to select AI models separately for planning and steps execution - #46
Merged
wdembinski merged 4 commits intoSep 11, 2026
Conversation
Adds Task.agentPlanningModel, letting a card override the model its planning runs use independently of agentModel (which now only affects steps). resolveRunModel's planning branch checks agentPlanningModel ?? agentModel ?? project.planningModel ?? project.defaultModel, while a steps run keeps agentModel ?? project.defaultModel unchanged. Also threads the new field through AssignAgentInput.planningModel and task:setAgentOptions' options type, and updates the ladder doc comments in model.ts and docs/03-how-orchestration-works.md. Step 1 of 4: "Task assignment should allow to select AI models separately for planning and steps execution". Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Mirror agentModel with agentPlanningModel across TaskRow, the fresh-install schema, the jiraTaskColumns migration, both patchable-field whitelists, the INSERT/UPDATE statements, taskToRow/rowToTask, and addSubtask (steps never plan, so they get null like agentModel). Wire task:assignAgent and task:setAgentOptions in ipc.ts to validate and persist input.planningModel / options.planningModel the same way the existing model field is handled. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
AssignAgentDialog now seeds and saves a task's own planning-model override alongside its steps model, using the same PlanningModelField + ModelField pair ProjectForm already uses for a project's split. cardModelCaption resolves through resolveRunModel for both so a task that splits its own override reads as "X planning · Y steps", same as a project that splits. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Section 9 of verify-model-split.mjs is the first E2E scenario where a card sets its own agentPlanningModel, distinct from its own agentModel, on a project that itself splits — proving the newest rung of resolveRunModel's ladder is really plumbed through buildClaudeArgs and the spawn, not just the pure function model.test.ts already covers. Confirmed the section can fail: dropping `task.agentPlanningModel ??` from the ladder turns only section 9 red, restored afterward. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently, when user assigns a task to an AI agent, they can change the model from project's default (which describes separately models for planning and steps execution) and other model names. However, selecting other than project's default, does not allow to select planning and steps execution seprately.