test: cover NATS bridge + Todoist scheduler; ADR-0010
- bus.test.ts: 4 cases for the new onPublish hook contract - nats.test.ts: stream creation idempotency + JSON publish bridge - scheduler.test.ts: startup delay, fan-out, per-user failure isolation - ADR-0010 documents the bridge-don't-replace decision and the Todoist scheduler isolation, plus open follow-ups (#98 ml/serving consumer, #54 protobuf migration, graceful shutdown, metrics) - README/overview/services README reflect the bridged event substrate - CLAUDE.md gains a "don't nats.publish() directly" rule - .env.example documents NATS_URL + TODOIST_SYNC_INTERVAL_MS Verified in deployment 2026-04-18: api -> nats bridge connects on boot, signals + feedback streams created, scheduler tick logs "todoist sync: 1 ok, 0 failed (1 users)" within 10s. Closes #21, #22. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -27,3 +27,11 @@ VAPID_SUBJECT=mailto:you@example.com
|
||||
# Todoist OAuth — https://developer.todoist.com/appconsole.html
|
||||
TODOIST_CLIENT_ID=
|
||||
TODOIST_CLIENT_SECRET=
|
||||
|
||||
# Event bus — leave NATS_URL empty for in-process bus only (no JetStream bridge).
|
||||
# Set to nats://nats:4222 (compose service name) or nats://localhost:4222 (host)
|
||||
# to mirror every publish to durable JetStream streams (signals.>, feedback.>).
|
||||
# Start the broker with: docker compose --profile events up nats
|
||||
NATS_URL=
|
||||
# How often the background scheduler refreshes Todoist tasks per active user (ms).
|
||||
TODOIST_SYNC_INTERVAL_MS=900000
|
||||
|
||||
Reference in New Issue
Block a user