feat: include full date with day of week in system prompt

Fixes #2108

The system prompt now includes the full current date and time
(e.g., 'Current: Monday, January 5th, 2026 — 3:26 PM') in addition
to the timezone. This prevents the agent from incorrectly guessing
the day of week.
This commit is contained in:
Kaya 2026-01-26 10:44:16 +03:00
parent 6859e1e6a6
commit 3a2f1801f8
2 changed files with 10 additions and 2 deletions

View File

@ -145,6 +145,7 @@ describe("buildAgentSystemPrompt", () => {
});
expect(prompt).toContain("## Current Date & Time");
expect(prompt).toContain("Current: Monday, January 5th, 2026 — 3:26 PM");
expect(prompt).toContain("Time zone: America/Chicago");
});
@ -157,6 +158,7 @@ describe("buildAgentSystemPrompt", () => {
});
expect(prompt).toContain("## Current Date & Time");
expect(prompt).toContain("Current: Monday, January 5th, 2026 — 15:26");
expect(prompt).toContain("Time zone: America/Chicago");
});

View File

@ -49,9 +49,14 @@ function buildUserIdentitySection(ownerLine: string | undefined, isMinimal: bool
return ["## User Identity", ownerLine, ""];
}
function buildTimeSection(params: { userTimezone?: string }) {
function buildTimeSection(params: { userTimezone?: string; userTime?: string }) {
if (!params.userTimezone) return [];
return ["## Current Date & Time", `Time zone: ${params.userTimezone}`, ""];
const lines = ["## Current Date & Time"];
if (params.userTime) {
lines.push(`Current: ${params.userTime}`);
}
lines.push(`Time zone: ${params.userTimezone}`, "");
return lines;
}
function buildReplyTagsSection(isMinimal: boolean) {
@ -459,6 +464,7 @@ export function buildAgentSystemPrompt(params: {
...buildUserIdentitySection(ownerLine, isMinimal),
...buildTimeSection({
userTimezone,
userTime: params.userTime,
}),
"## Workspace Files (injected)",
"These user-editable files are loaded by Clawdbot and included below in Project Context.",