fix(harness): expires_in_ms replacing expires_at in agent guidance - #952
fix(harness): expires_in_ms replacing expires_at in agent guidance#952anthonyiscoding wants to merge 1 commit into
Conversation
`lifecycle.expires_in_ms` exists, but every piece of text around the call still said `expires_at`: the prompt's lifecycle line, the unbounded-cron warning, the standing-binding note, and the one-shot-wake note. A model copies the shape it is shown, so it kept sending an absolute epoch — and an agent has no clock, so the value is a remembered date, five months stale in the report that prompted this, and refused every time. All four now name `expires_in_ms`. The prompt keeps one sentence on the absolute form, because it is still accepted and someone reading a stored binding will see it — but it says why not to reach for it: you do not know what time it is. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
skill-check — worker0 verified, 68 skipped (no docs/).
Four for four. Nicely done. |
lifecycle.expires_in_msexists (added on the base branch), but every piece of text a model reads before making the call still saidexpires_at:prompts/default.txt— the lifecycle line under "Optional, on either shape"{ max_fires | expires_at }"{ max_fires | expires_at })"{ expires_at: <epoch ms> }"A model copies the shape it is shown, so it kept sending an absolute epoch. An agent has no clock, so that value is a remembered date — five months stale in the report that prompted this:
1774738800000is 2026-03-28;nowwas 2026-08-26.What changes
All four now name
expires_in_ms. The prompt keeps one sentence on the absolute form — it is still accepted, and anyone reading a stored binding will meet it — but says why not to reach for it: you do not know what time it is.No logic changes.
expires_atstill works, and the seconds rescue and clock-aware refusal on the base branch are untouched.Base
Stacked on
feat/agent-terminal-workers, which is whereexpires_in_msis introduced (PR #937). Retarget tomainonce that lands, or merge them in order.Checks
cargo test --libinharness/: 441 pass. One advisory test now asserts the note namesexpires_in_msand no longer namesexpires_at.🤖 Generated with Claude Code