diff --git a/.planning/STATE.md b/.planning/STATE.md index 6d445c9..a963853 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -4,8 +4,8 @@ milestone: v1.1 milestone_name: Operability & Polish status: completed stopped_at: Phase 9 context gathered -last_updated: "2026-06-12T18:02:28.162Z" -last_activity: 2026-06-12 +last_updated: "2026-06-12T18:28:01.547Z" +last_activity: 2026-06-12 -- Phase 09 planning complete progress: total_phases: 18 completed_phases: 5 @@ -28,7 +28,7 @@ See: .planning/PROJECT.md (updated 2026-06-10) Phase: 999.1 Plan: Not started Status: Plans 15-01 + 15-02 complete; 15-03 Task 1 (publish.yml comment) committed (da623ac); 15-03 Task 2 awaiting operator after branch merges to main -Last activity: 2026-06-12 +Last activity: 2026-06-12 -- Phase 09 planning complete ### Deferred Checkpoint — Phase 15 Plan 15-03 Task 2 (human-action) diff --git a/.planning/phases/09-faster-write-back/09-01-PLAN.md b/.planning/phases/09-faster-write-back/09-01-PLAN.md index 7f9d123..bbc2f6c 100644 --- a/.planning/phases/09-faster-write-back/09-01-PLAN.md +++ b/.planning/phases/09-faster-write-back/09-01-PLAN.md @@ -18,6 +18,8 @@ must_haves: - "Concurrent scheduleOutboxDrain() calls dispatch each pending row exactly once — no duplicate CalDAV PUT (D-07)" - "runOutboxDrain's body and the isDraining guard are behaviorally unchanged — its existing 15 tests still pass" - "scheduleOutboxDrain catches drain errors so a listener error never escapes the wrapper (D-02)" + - "No debounce/coalesce window and no rejection of mid-drain signals: drainRequested is a plain boolean that collapses every mid-drain signal into exactly one trailing drain — never rate-limited or dropped (D-06)" + - "Verification is fully automated by the trigger-wiring Vitest tests; no operator-stopwatch human checkpoint is required and the CI-guarded test is the durable latency evidence (D-10)" artifacts: - path: "apps/api/src/lib/outboxTrigger.ts" provides: "Zero-dependency in-process EventEmitter drain signal (signalOutboxDrain, onOutboxDrain)"