Repository navigation
Release 0.3.0 - #25
Merged
Merged
Conversation
Routines are the first item after the MVP: a bot works on its own on a weekly schedule, an interval or a cron expression, in the routine's own time zone. Each run is a message the owner wrote, delivered into the bot's one conversation through the courier like any other, so it is durable and needs no second session. A run ends with the turn its message started; overlapping runs are skipped (or one waits), paused bots skip, and missed times run once when the computer is back. The schedule is stored as structured JSON so the app can show and edit it in plain words; cron stays behind "Advanced". Milestones R1 (daemon) and R2 (app) start once M5 is closed.
A routine makes a bot work on its own: weekly at a time, every N minutes or on a cron expression, in its own time zone. When its time comes, the daemon posts the owner's request to the bot on the usual message path, with an envelope that names the routine, the local time it is for and that nobody is watching. The run ends with the turn that began with that message: done, or failed on an error, a dead message, a process that ended mid-turn or a daemon that stopped mid-turn. A run still open skips the next time (or lets one wait, with queue), a paused bot skips its times, and times missed while the daemon was away run once for the latest (or not at all). Run now fires outside the schedule. Archiving a bot archives its routines. Zones use jiff with the IANA database it bundles on Windows. The daemon evaluates cron itself, walking the days in the routine's zone: a time the clock skips runs right after the jump, one it repeats runs once. The app gets the protocol (routines.* and two notifications) and a fake; its screens come in R2. The spec also records the M5 reboot check.
Each bot's page gets Chat and Routines tabs. The list shows each
routine's switch, its schedule in plain words ("Weekdays at 09:00",
"Every 2 hours"), the next time in its zone ("tomorrow at 09:00") and
how the last run went, with Run now, edit and delete. The form asks for
a name, what the bot should do and when: every day, weekdays, chosen
days or every N minutes or hours; the zone, overlap, missed times and a
cron expression sit under More options.
A routine's message shows "Routine · name" in the chat, the crew's page
lists every bot's routines, and a failed run marks the taskbar until the
owner opens that bot. The daemon now sends a reason code with schedule
problems, which the app words in the owner's language.
httpsphl
enabled auto-merge
September 29, 2026 12:25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps the workspace and app version to 0.3.0 for the release with routines (#23 and #24). Stacked on #24. The tag
v0.3.0builds the signed installer and opens a draft release (spec 15.5).