Skip to content

Task assignment should allow to select AI models separately for planning and steps execution - #46

Merged
wdembinski merged 4 commits into
developmentfrom
feat/task-assignment-should-allow-to-select
Sep 11, 2026
Merged

wdembinski merged 4 commits into
developmentfrom
feat/task-assignment-should-allow-to-select

Conversation

@wdembinski

Copy link
Copy Markdown
Owner

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.

wdembinski and others added 4 commits September 11, 2026 13:23
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>
@wdembinski
wdembinski merged commit 7f42a9d into development Sep 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant