Cron & Notifications
BOR can do work on a schedule and tell you about it. Cron runs jobs at a cadence; notifications are an inbox the presence surfaces. Together they let BOR be proactive — “every morning, summarize my calendar and notify me.”Cron
server/cron/ runs scheduled tasks. A cron job is a recurring instruction BOR runs on its own, even when you’re not chatting.
Scheduling
The AI schedules and manages jobs with thecron tool, and surfaces can schedule jobs through the bridge (type: 'cron'). A job carries a schedule (a cadence) and a task (what to do when it fires).
The HTTP surface is /api/cron (list / create / run). The scheduler logs [cron] scheduler started; jobs=N; next=… on boot.
Use cases
- “Every morning at 8am, check the weather and notify me if it’ll rain.”
- “Every six hours, run a dream cycle to consolidate memory.” (BOR’s own dreams run on cron.)
- “Once a day, fetch my RSS feeds and build a digest widget.”
Notifications
server/notifications.js is a notification inbox. BOR pushes notifications; the presence shows an unread badge on the Notifications header button, and you can open the inbox to read and act on them.
Pushing
The AI pushes a notification with thepush_notification tool, and surfaces can push through the bridge (type: 'notification-push'). The HTTP surface is /api/notifications (list / act).
In the presence
- The Notifications button in the bubble header shows an unread count.
- Opening it lists notifications; each can carry an action (open a surface, run something).
- New notifications can play a sound.
Putting them together
Cron + notifications are how BOR becomes ambient and proactive rather than purely reactive:“Every weekday at 9am, pull my GitHub notifications, summarize the ones that need me, and send me a notification with a shortcut to reply.”BOR schedules a cron job; when it fires it fetches, summarizes, builds/updates a shortcut, and pushes a notification. You see the badge, open the inbox, and act — all without starting the conversation yourself.
Tools & endpoints
| Tool / endpoint | Purpose |
|---|---|
cron (tool) | Schedule, list, enable/disable, or run cron jobs. |
push_notification (tool) | Send a notification to the inbox. |
/api/cron | HTTP: list / create / run jobs. |
/api/notifications | HTTP: list / act on notifications. |
Bridge type:'cron' / type:'notification-push' | Surfaces schedule + notify. |