diff --git a/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.i18n.yaml b/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.i18n.yaml index 3551585864..da80e563e6 100644 --- a/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.i18n.yaml @@ -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 diff --git a/apps/web/tests/schedule-after.e2e.ts b/apps/web/tests/schedule-after.e2e.ts index 0c9c8c48a3..00fc83c101 100644 --- a/apps/web/tests/schedule-after.e2e.ts +++ b/apps/web/tests/schedule-after.e2e.ts @@ -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', ]) }) diff --git a/packages/schedule/tool-schedule/README.i18n.yaml b/packages/schedule/tool-schedule/README.i18n.yaml index 325e0119cc..627792f7e0 100644 --- a/packages/schedule/tool-schedule/README.i18n.yaml +++ b/packages/schedule/tool-schedule/README.i18n.yaml @@ -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 diff --git a/packages/schedule/tool-schedule/tests/cron.spec.ts b/packages/schedule/tool-schedule/tests/cron.spec.ts index ec5df8b367..e26cd5de59 100644 --- a/packages/schedule/tool-schedule/tests/cron.spec.ts +++ b/packages/schedule/tool-schedule/tests/cron.spec.ts @@ -367,7 +367,6 @@ describe('durable Cron replay', () => { scheduleId: 'schedule-cron', prompt: 'daily review', occurrenceAt: '2026-08-08T01:00:00.000Z', - deliveryMode: 'session-local', }) }) diff --git a/packages/schedule/tool-schedule/tests/tools.spec.ts b/packages/schedule/tool-schedule/tests/tools.spec.ts index a180dbda03..4d144cb1fb 100644 --- a/packages/schedule/tool-schedule/tests/tools.spec.ts +++ b/packages/schedule/tool-schedule/tests/tools.spec.ts @@ -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', {