fix: pass verificationBudget to execute-task prompt template
buildExecuteTaskPrompt() was missing the verificationBudget variable that the execute-task.md template expects. The prompt-loader's strict placeholder validator threw on every auto-mode task dispatch, blocking all execution entirely. Compute the budget from the executor's context window using the existing computeBudgets() engine and pass it as ~NNK chars format string. Fixes #707
This commit is contained in:
parent
2b0c0064cd
commit
b8e6294e6b
2 changed files with 20 additions and 0 deletions
|
|
@ -716,6 +716,12 @@ export async function buildExecuteTaskPrompt(
|
|||
const activeOverrides = await loadActiveOverrides(base);
|
||||
const overridesSection = formatOverridesSection(activeOverrides);
|
||||
|
||||
// Compute verification budget for the executor's context window (issue #707)
|
||||
const prefs = loadEffectiveGSDPreferences();
|
||||
const contextWindow = resolveExecutorContextWindow(undefined, prefs?.preferences);
|
||||
const budgets = computeBudgets(contextWindow);
|
||||
const verificationBudget = `~${Math.round(budgets.verificationBudgetChars / 1000)}K chars`;
|
||||
|
||||
return loadPrompt("execute-task", {
|
||||
overridesSection,
|
||||
workingDirectory: base,
|
||||
|
|
@ -730,6 +736,7 @@ export async function buildExecuteTaskPrompt(
|
|||
priorTaskLines: priorLines,
|
||||
taskSummaryPath,
|
||||
inlinedTemplates,
|
||||
verificationBudget,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -74,6 +74,19 @@ test("compression: buildExecuteTaskPrompt minimal truncates prior summaries", ()
|
|||
);
|
||||
});
|
||||
|
||||
test("compression: buildExecuteTaskPrompt passes verificationBudget to loadPrompt (#707)", () => {
|
||||
// The execute-task template declares {{verificationBudget}} — the builder must supply it
|
||||
assert.ok(
|
||||
promptsSrc.includes("verificationBudget"),
|
||||
"buildExecuteTaskPrompt should pass verificationBudget in the loadPrompt vars object",
|
||||
);
|
||||
// Verify it computes the budget from computeBudgets
|
||||
assert.ok(
|
||||
promptsSrc.includes("computeBudgets(contextWindow)"),
|
||||
"buildExecuteTaskPrompt should compute budgets from the executor context window",
|
||||
);
|
||||
});
|
||||
|
||||
test("compression: buildPlanMilestonePrompt minimal drops project/requirements/decisions files", () => {
|
||||
// The plan-milestone builder should gate root file inlining on inlineLevel
|
||||
assert.ok(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue