Skip to content

Commit 8d759c7

Browse files
committed
feat: enhance model assignment handling and session configuration updates
1 parent a91295c commit 8d759c7

2 files changed

Lines changed: 25 additions & 3 deletions

File tree

src/webviewProvider.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1213,8 +1213,20 @@ function recommendModelId(step, currentValue) {
12131213
}
12141214
12151215
function getMissingModelAssignments() {
1216+
return getEffectiveSteps().filter(step => step.enabled && !resolveConfiguredModel(step.model));
1217+
}
1218+
1219+
function getEffectiveSteps() {
12161220
if (!config?.steps?.length) return [];
1217-
return config.steps.filter(step => step.enabled && !resolveConfiguredModel(step.model));
1221+
return config.steps.map(step => {
1222+
const ov = sessionOverrides[step.id] || {};
1223+
return {
1224+
...step,
1225+
enabled: ov.enabled !== undefined ? ov.enabled : step.enabled,
1226+
model: ov.model !== undefined ? ov.model : step.model,
1227+
skill: ov.skill !== undefined ? ov.skill : step.skill,
1228+
};
1229+
});
12181230
}
12191231
12201232
function updateNoModelsBar() {
@@ -1301,7 +1313,7 @@ function renderSessionConfig() {
13011313
\` + config.steps.map((step, i) => {
13021314
const ov = sessionOverrides[step.id] || {};
13031315
const enabled = ov.enabled !== undefined ? ov.enabled : step.enabled;
1304-
const model = ov.model || step.model || '';
1316+
const model = ov.model !== undefined ? ov.model : (step.model || '');
13051317
const skill = ov.skill !== undefined ? ov.skill : (step.skill || '');
13061318
const mOpts = renderModelOptions(model);
13071319
return \`
@@ -1367,6 +1379,8 @@ function applySessionConfig() {
13671379
});
13681380
const count = Object.keys(sessionOverrides).length;
13691381
closeSessionConfig();
1382+
updateNoModelsBar();
1383+
updateControls();
13701384
toast(count ? \`\${count} step override\${count > 1 ? 's' : ''} active for next run\` : 'No overrides — using global config');
13711385
}
13721386
@@ -1375,6 +1389,8 @@ function resetSessionConfig() {
13751389
sessionRunProfile = 'custom';
13761390
renderSessionConfig();
13771391
syncSessionOverrideButton(true);
1392+
updateNoModelsBar();
1393+
updateControls();
13781394
toast('Overrides cleared');
13791395
}
13801396
@@ -1617,6 +1633,7 @@ function autoAssignSessionModels() {
16171633
const currentValue = select.value;
16181634
select.value = resolveConfiguredModel(currentValue)?.id || recommendModelId(step, currentValue);
16191635
});
1636+
applySessionConfig();
16201637
}
16211638
16221639
// ── Micro-actions ─────────────────────────────────────────────

src/workflowEngine.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,12 @@ export class WorkflowEngine {
9494
const effectiveSteps = config.steps.map(step => {
9595
const ov = stepOverrides?.find(o => o.id === step.id);
9696
if (!ov) return step;
97-
return { ...step, ...(ov.enabled !== undefined && { enabled: ov.enabled }), ...(ov.model && { model: ov.model }), ...(ov.skill && { skill: ov.skill }) };
97+
return {
98+
...step,
99+
...(ov.enabled !== undefined && { enabled: ov.enabled }),
100+
...(ov.model !== undefined && { model: ov.model }),
101+
...(ov.skill && { skill: ov.skill }),
102+
};
98103
});
99104

100105
const enabledSteps = effectiveSteps.filter(step => step.enabled);

0 commit comments

Comments
 (0)