fix(heartbeat): append workspace hint only when using default prompt

This commit is contained in:
vignesh07 2026-03-08 14:08:50 -07:00
parent 4b710d79fe
commit ee83bab1f6

View File

@ -605,15 +605,19 @@ function resolveHeartbeatRunPrompt(params: {
: hasCronEvents : hasCronEvents
? buildCronEventPrompt(cronEvents, { deliverToUser: params.canRelayToUser }) ? buildCronEventPrompt(cronEvents, { deliverToUser: params.canRelayToUser })
: resolveHeartbeatPrompt(params.cfg, params.heartbeat); : resolveHeartbeatPrompt(params.cfg, params.heartbeat);
const hasExplicitPrompt = Boolean( const configuredPromptRaw =
params.heartbeat?.prompt?.trim() || params.cfg.agents?.defaults?.heartbeat?.prompt?.trim(), params.heartbeat?.prompt ?? params.cfg.agents?.defaults?.heartbeat?.prompt;
); const effectivePrompt = resolveHeartbeatPromptText(configuredPromptRaw);
const defaultPrompt = resolveHeartbeatPromptText(undefined);
const isUsingDefaultPrompt = effectivePrompt === defaultPrompt;
const prompt = appendHeartbeatWorkspacePathHint({ const prompt = appendHeartbeatWorkspacePathHint({
prompt: basePrompt, prompt: basePrompt,
workspaceDir: params.workspaceDir, workspaceDir: params.workspaceDir,
// Only append the hint when using the built-in default heartbeat prompt. // Only append the hint when using the built-in default heartbeat prompt.
// If the user configured a custom prompt, do not mutate it. // If the user configured a custom prompt, do not mutate it.
shouldAppend: !hasExplicitPrompt && !hasExecCompletion && !hasCronEvents, // Also: treat empty-string overrides as a request to fall back to the default.
shouldAppend: isUsingDefaultPrompt && !hasExecCompletion && !hasCronEvents,
}); });
return { prompt, hasExecCompletion, hasCronEvents }; return { prompt, hasExecCompletion, hasCronEvents };