fix(schedule): reconcile cron stack layer

This commit is contained in:
Tianyi Cui
2026-08-08 23:25:04 +08:00
parent b37877d80b
commit 3fa4c012b1
5 changed files with 6 additions and 16 deletions
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-05-durable-web-schedule.md
2026-08-05-durable-web-schedule.md: 25db990be3ff4f962d8457acc20d888ffaef8c1c
2026-08-05-durable-web-schedule.zh.md: b0fd1d0364810f48b95af6ddc9f466fecf56d1f7
2026-08-05-durable-web-schedule.md: 1963d0437e585df3b1260c031dbb2a4a49dc9046
2026-08-05-durable-web-schedule.zh.md: 65e482d4bb65edab02e7721511f82ce1af9de9b8
+2
View File
@@ -250,8 +250,10 @@ describe.skipIf(MODE === 'record')('web e2e: durable after reminder receipt', ()
it('keeps the fixture inventory closed', async () => {
await assertFixtureInventory(SNAPSHOT_DIR, [
'at-receipt.expected.md',
'cron-receipt.expected.md',
'every-batch.expected.md',
'every-receipt.expected.md',
'mixed-batch.expected.md',
'receipt.expected.md',
])
})
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write packages/schedule/tool-schedule/README.md
README.md: 14ab3ec655968f0d072be8bf0ad2ab8c18a857e5
README.zh.md: b948c6cb7d5f62611945e0d1ecc09c9b38a4cdbc
README.md: 1c0e347d50fed2fe27741d584e6b3f158df1a081
README.zh.md: 3665cf7e37a30458017eb16cc9171ec541fc55ea
@@ -367,7 +367,6 @@ describe('durable Cron replay', () => {
scheduleId: 'schedule-cron',
prompt: 'daily review',
occurrenceAt: '2026-08-08T01:00:00.000Z',
deliveryMode: 'session-local',
})
})
@@ -650,17 +650,6 @@ describe('Schedule tool protocol', () => {
expect(test.agent.session.events.filter(event => event.type === 'schedule/change')).toEqual([])
})
it('rejects an empty or padded delete id before persistence', async () => {
const test = await harness()
for (const id of ['', ' schedule-1']) {
expect(value(await execute(test, 'schedule_delete', { id }))).toEqual({
code: 'invalid_rule',
message: 'schedule_delete id must be non-empty without surrounding whitespace.',
})
}
expect(test.flushes.count).toBe(0)
})
it('returns a range error only after the create preflight', async () => {
const test = await harness()
expect(value(await execute(test, 'schedule_create', {