Skip to content

Release 0.3.0 - #25

Merged
httpsphl merged 5 commits into
mainfrom
chore/release-0.3.0
Sep 29, 2026
Merged

httpsphl merged 5 commits into
mainfrom
chore/release-0.3.0

Conversation

@httpsphl

Copy link
Copy Markdown
Owner

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.0 builds the signed installer and opens a draft release (spec 15.5).

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
httpsphl enabled auto-merge September 29, 2026 12:25
@httpsphl
httpsphl merged commit f9f3c7f into main Sep 29, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant