Repository navigation
Releases
v0.3.14
- Writing during a wake counts as a reply on Hermes 0.23.x. If you write once a wake turn has started, that wake's message no longer counts toward the unanswered mute, isn't later treated as ignored, and can't tip the wake into a no-change pause. Hermes 0.23.x queues your message behind the turn instead of folding it in, so before this fix the mute could start one message early. The wake keeps the next check the agent asked for. The Signal/SimpleX exception under Known issues still applies (#157).
- Gateway tests run on Hermes 0.23.1 in CI. The end-to-end matrix now includes Hermes v0.23.1 beside v0.21.6, v0.21.7 and main (#155).
v0.3.13
- Fully silent wakes need one Hermes setting. A wake that decides to stay silent keeps its final reply out of the chat, but Hermes posts interim text (what the model writes alongside a tool call) by default. The README now says so, with the fix:
display.interim_assistant_messages: false. The wake text now tells the model why it must not write alongside tool calls. - Cleaner check-ins and desk. A check-in's wake header (which the model reads) now says
check-ininstead ofwatcherand drops the empty title slot, so it no longer shows a doubled separator. The desk says1 wakeand1 watcherinstead of1 wakes(#151). /pulse whyremembers why something was held. After a held occurrence is released and fires, its row still shows why it was held, for examplewas held: waiting for your reply(#151).- Shorter
/pulse listrows. Long watcher filter values (a task id, message id or emoji list) are shortened in the list;/pulse whystill shows them in full (#151). /pulse testmatches what would be sent. The preview includes the same "(held by …)" note a dispatched turn carries, and a wake you made for owner silence no longer says "Would run now: yes" before you've been quiet long enough (#151).- Gateway tests on current Hermes. The end-to-end suite now passes against Hermes 0.23.x in local runs (a 0.23.x CI pin comes next) and adds two scenarios: a role taking its own turn, and arming plus a silent verdict when Hermes's default tool search reaches
pulsethrough itstool_callbridge (#155). One 0.23.x difference found along the way is tracked in #157.
v0.3.12
Documentation only; no code changes. Upgrading from 0.3.11 changes nothing at runtime.
- The demo plays on the README. The film plays inline under the demo link, so you can watch it without leaving GitHub.
- Says up front that waiting costs nothing. The README's opening now states that no model runs until there's work: plain code checks every wake and watcher, and the agent gets a turn only when something is due or a watcher's condition is met.
/pulseshows what's next;/pulse why <id>lists an item's recent triggers with their states and reasons. The same "condition is met" wording replaces "until something changes" in What it does, since command watchers can fire on success, failure or a JSON verdict as well as on change.
Install or update:
hermes plugins install electricsheephq/heartbeat2 --enableFull list: CHANGELOG.
v0.3.11
Documentation-only release: the README now starts with the point. No code changes since 0.3.10.
- First screen: the one-line pitch, the demo, badges, the install line and what it needs.
- Try it: three steps to a first result in about five minutes. Allow injection, ask "Remind me in 5 minutes to stretch.", and the agent writes first. The slower role walkthrough follows under Setup.
- Fixed stale lines:
- Added: the model-fallback notice in the silence notes, a troubleshooting list, a contents line, and links to the changelog, contributing guide, security policy and license.
Install or upgrade:
hermes plugins install electricsheephq/heartbeat2 --enablev0.3.10
A fix for a bug reported by a user (#147).
- Check-ins stay in messaging chats. On CLI, TUI, Desktop and API sessions, the built-in check-in and own time could pile up, one per launch, until no new wake could be created (
global_max_active). They are now created only in messaging chats, and leftover ones are cancelled automatically, so an affected profile recovers on its own. - Built-ins don't use up your wake slots. The check-in and own time no longer count toward the per-chat or profile wake limits.
- Clearer refusals. When a limit is reached, the refusal says how to free a slot.
Install or update: hermes plugins install electricsheephq/heartbeat2 --enable
v0.3.9
HeartBeat 2.0 v0.3.9 lets you try a wake right away, and see what it will do before it does it.
- Run it now.
/pulse run <id>fires a recurring wake or role now, under the usual checks (busy chat, quiet hours, daily caps, budgets), and counts as one of its fires. It won't queue a second copy of one that's already waiting or running. Watchers and one-time reminders keep firing on their own; preview them with/pulse test. - Dry-run it.
/pulse test <id>shows whether the wake would run right now (and if not, why), when it fires next, its cache line and the text the agent would get for its next turn. For a watcher with nothing waiting, it says whether a match would run now. Nothing is sent, spent or changed. - One cache line. The agent's receipt,
/pulse addand the governor card agree, and a cold wake shows its cost once. - See filters before you approve. A watcher waiting for your OK says what it would wait for, including any task, board, message or emoji filter.
/pulse listand/pulse whyshow filters too.
Upgrade: reinstall and restart the gateway. No settings or database changes. Roadmap: #139.
v0.3.8
HeartBeat 2.0 v0.3.8 lets the agent set its own rhythm, and makes sure your pause always holds.
- Rest until the work is ready. When a role is waiting on something until a known time, the agent can pause it with
pause_for: "12h", and it resumes on its own at that time. No empty wake-ups in between. Your controls come first: if you pause it yourself, or turn the chat off, the agent's timer never resumes it. - Your pause holds. A wake you paused with
/pulse pausecan be resumed by the agent only during your own turn in the chat, for example when you ask. It can't resume it from one of its own turns, including the turn you paused. - Watch one task, board or message. Kanban watchers can be aimed at one
task_idorboard, reaction watchers at onemessage_id, and the receipt names the filter. - The cost limit, described as it is. The daily cost setting is a priced-spend limit: it's checked before each of the agent's own turns, can't stop a turn already running, and doesn't count unpriced calls. The desk and
/pulse statusnow show the agent's own spend today and how many calls weren't counted, with or without a limit set. - Tidier history. Old turns that ended with nothing to report are pruned as usual; held results that can still come back to you are always kept.
Upgrade: reinstall and restart the gateway. No settings or database changes. Roadmap: #139.
v0.3.7: results come back
HeartBeat 2.0 v0.3.7 brings back what the agent did while your limits held its messages.
- Held results come back. During quiet hours, after the daily message cap, or while you haven't replied, the agent's turns keep working but can't message you. Now, when such a turn finishes with something you should hear, HeartBeat keeps that summary. On your next message, or the agent's next role or own-time turn that can send, the agent gets a short list and tells you what still matters. It's part of a reply or turn that happens anyway, so there are no extra messages or turns, and your limits don't change.
- Nothing gets lost on the way. The list shows up to five results at a time, oldest first, and the rest come back next time. A result only counts as passed on once your reply has finished or the agent's message was actually sent; if a turn fails or is interrupted, the results wait for the next one. It starts with this version, so nothing held under an earlier version floods your next replies.
- Finished roles stay on the desk. When the agent finishes a role, its row and last result stay on
/pulse deskuntil you've written in the chat, for up to 24 hours. The desk also counts the results held for you. - Clearer budget notes. If a budget you set is above your profile's
role_turns_per_day_max, the note now names the maximum actually applied, and a lowering you ask for records your number.
Upgrade: reinstall and restart the gateway. No settings change; on first start, a one-time database step marks results held under earlier versions as already reported. Roadmap: #139.
v0.3.6: the agent sees its desk
HeartBeat 2.0 v0.3.6 lets the agent see its own desk, and makes a role budget you set a real ceiling.
-
The agent can read its desk. The
pulsetool has a new read-onlydeskaction. At any point in a turn, the agent can check its roles, what's due, whether messages are held, and the turns, messages and cost left today. It's the same view as/pulse desk. -
A role budget you set is a ceiling. After
/pulse budget <id> 3/day, the agent can go under 3 but never over it. Only your own/pulse budgetcommand raises it, and a lowering you ask the agent for becomes the new ceiling. Before, the agent could raise it back to the profile maximum outside a wake turn. -
Honest pacing feedback. A cron wake follows its schedule, so the tool now says when it ignores a
next_checkrequest. Idle hints offer only what works for that kind of wake: roles can't become watchers, own time is your setting, and the built-in check-in gets no hint. -
README: your first hour. There's now a five-step walkthrough from install to seeing silent work on the desk. The command and settings tables now list roles, the desk, budgets, own time and the daily cost limit.
-
Budgets set before 0.3.6: a role budget you set with an earlier version has no record of being yours, so it isn't a ceiling yet. Set it again with
/pulse budget <id> <n>/dayto make it one.
Upgrade: reinstall and restart the gateway. No settings or database changes. Roadmap: #139.
v0.3.5
HeartBeat 2.0 v0.3.5 shows roles and the desk in the README and the catalog entry.
- README: roles and the desk. "See it work" continues with two screenshots from a real Telegram run:
- the agent's receipt when it takes on three roles: each role's rhythm, what it will and won't do without an OK, a one-turn-a-day budget, and the facts it still needs ("Anything missing stays explicitly TBC, not invented");
/pulse deskwith those roles, today's budgets, and messages held for quiet hours.
No code changes. Upgrading is optional.