Syncing & backfill
Sync pulls meetings into D1; extraction turns them into follow-ups. Both run on a schedule and can be driven on demand.
Wake the agents first
Section titled “Wake the agents first”Schedules register the first time a Durable Object starts, so a freshly deployed instance has no registered crons until you wake the agents:
notewright startThis wakes every DO and prints the schedule each one registered. Confirm the crons afterward:
notewright schedulesNotes sync
Section titled “Notes sync”Trigger a sync immediately:
notewright syncWith the Granola provider this forwards to GranolaSyncAgent, which also runs on
its registered cron (0 0 * * 2-6, weekday evenings). Inspect what was synced:
notewright meetings list --limit 25notewright meetings get <meetingId> --transcriptFollow-up extraction
Section titled “Follow-up extraction”Extraction runs automatically: the follow-up agent has a backstop cron that re-scans recent meetings so nothing is missed. You can also drive it directly.
Run extraction for one meeting:
notewright follow-ups run <meetingId>notewright follow-ups run <meetingId> --force # clear failure/run marker, keep mappingsBackfill a date range (for example after first deploy, or after changing the extraction model):
notewright follow-ups backfill --since 2026-05-01T00:00:00Znotewright follow-ups backfill --since 2026-05-01T00:00:00Z --force--since is an ISO8601 lower bound; omit it to use the server’s default backfill
window. Both run and backfill enqueue work and return 202; the agent
processes the queue in the background.
Inspecting results
Section titled “Inspecting results”notewright follow-ups runs --limit 20 # processed meetings + task countsnotewright follow-ups mappings <meetingId> # the tasks created for a meetingnotewright follow-ups health # agent state + unresolved failuresWhen something fails, see Monitoring health and Troubleshooting.