Fix step execution range toggle persistence

This commit is contained in:
QLHazyCoder
2026-05-20 10:29:47 +08:00
parent aa8025cb76
commit 9dbbce77ad
3 changed files with 42 additions and 5 deletions
+4 -4
View File
@@ -341,8 +341,8 @@
},
autoRun: {
stepExecutionRange: normalizeStepExecutionRangeEntry(
nested?.flows?.openai?.autoRun?.stepExecutionRange
?? stepExecutionRangeByFlow.openai
stepExecutionRangeByFlow.openai
?? nested?.flows?.openai?.autoRun?.stepExecutionRange
?? {},
defaults.flows.openai.autoRun.stepExecutionRange
),
@@ -370,8 +370,8 @@
},
autoRun: {
stepExecutionRange: normalizeStepExecutionRangeEntry(
nested?.flows?.kiro?.autoRun?.stepExecutionRange
?? stepExecutionRangeByFlow.kiro
stepExecutionRangeByFlow.kiro
?? nested?.flows?.kiro?.autoRun?.stepExecutionRange
?? {},
defaults.flows.kiro.autoRun.stepExecutionRange
),
+14 -1
View File
@@ -2622,6 +2622,19 @@ function getStepExecutionRangeBoundaryNodeId(stepNumber, boundary = 'start') {
return String(resolvedNodeId || fallbackNode?.nodeId || '').trim();
}
function getStepExecutionRangeStepOptionLabel(node = {}) {
const nodeId = String(node?.nodeId || '').trim();
const step = getStepIdByNodeIdForCurrentMode(nodeId);
const displayOrder = Number(node?.displayOrder);
if (Number.isInteger(step) && step > 0) {
return String(step);
}
if (Number.isInteger(displayOrder) && displayOrder > 0) {
return String(displayOrder);
}
return nodeId;
}
function syncStepExecutionRangeSelectOptions(selectedFromNodeId = '', selectedToNodeId = '') {
const nodes = getStepExecutionRangeNodes();
const fromSelect = inputStepExecutionRangeFrom;
@@ -2632,7 +2645,7 @@ function syncStepExecutionRangeSelectOptions(selectedFromNodeId = '', selectedTo
const buildOptions = (selectedValue) => nodes.map((node) => {
const nodeId = String(node?.nodeId || '').trim();
const label = getStepExecutionRangeNodeLabel(node);
const label = getStepExecutionRangeStepOptionLabel(node);
return `<option value="${escapeHtml(nodeId)}"${nodeId === selectedValue ? ' selected' : ''}>${escapeHtml(label)}</option>`;
}).join('');
@@ -87,6 +87,30 @@ test('settings schema normalizes view input into canonical nested namespaces', (
});
});
test('settings schema lets explicit flat step range override stale canonical range', () => {
const { settingsSchema } = loadApis();
const schema = settingsSchema.createSettingsSchema();
const oldState = schema.normalizeSettingsState({
activeFlowId: 'openai',
stepExecutionRangeByFlow: {
openai: { enabled: true, fromStep: 3, toStep: 6 },
},
});
const normalized = schema.normalizeSettingsState({
settingsState: oldState,
stepExecutionRangeByFlow: {
openai: { enabled: false, fromStep: 3, toStep: 6 },
},
});
assert.deepEqual(normalized.flows.openai.autoRun.stepExecutionRange, {
enabled: false,
fromStep: 3,
toStep: 6,
});
});
test('settings schema can project canonical state into a read view without legacy rebuild helpers', () => {
const { settingsSchema } = loadApis();
const schema = settingsSchema.createSettingsSchema();