Repository navigation
Releases: Bergschloss/Refine-Cycle-for-Hermes-Agent
Release list
v1.3.28
Fix works on the newest Hermes again
Hermes main 6e8adc7a46 changed code next to the route patch, and the patch stopped applying there. After a Hermes update, Fix would have answered that this Hermes isn't supported yet.
1.3.28 bundles invocation-route-v2026.10.22.patch. Rebased by refine-bot with Antigravity (gemini-3.8-flash-high). Antigravity changed the patch's logic, not only where it applies; the change passed the isolated host, release and plugin checks below. The installer picks the patch that fits your Hermes; older Hermes versions keep the patch they had.
Checked automatically before release: on a clean Hermes main 6e8adc7a46 the installer picks the new patch and its tests pass; no recent Hermes release would pick the new patch, so none of them changes; all plugin tests pass, and CI is green on Windows and Linux.
Also in this release
- Install canary Hermes from its reviewed lock instead of ignoring dependency overrides
Updating
Tap /refine_update, or press Update in the desktop app. Hermes will restart.
v1.3.27
Fix works on the newest Hermes again
Hermes main 3752497cc4 changed code next to the route patch, and the patch stopped applying there. After a Hermes update, Fix would have answered that this Hermes isn't supported yet.
1.3.27 bundles invocation-route-v2026.10.18.patch. Rebased by refine-bot with Antigravity (gemini-3.8-flash-high). Antigravity changed the patch's logic, not only where it applies; the change passed every check below and brings in no process, network, eval, decoding, file or environment calls the previous patch did not make; ordinary named attribute reads are permitted. The installer picks the patch that fits your Hermes; older Hermes versions keep the patch they had.
Checked automatically before release: on a clean Hermes main 3752497cc4 the installer picks the new patch and its tests pass; no recent Hermes release would pick the new patch, so none of them changes; all plugin tests pass, and CI is green on Windows and Linux.
Updating
Tap /refine_update, or press Update in the desktop app. Hermes will restart.
v1.3.26
Restore invocation-bound plugin commands on current Hermes main after dispatch moved into the shared gateway handler. The new one-context-line v2026.10.17 patch covers messaging and gateway-backed local CLI commands, preserves upstream session_entry handling and retains older patches for release hosts.
Also correct the documented update_check setting and classify only genuine missing-host-symbol ImportErrors during installation.
Validation: 1386 plugin tests; all four Linux/Windows Python 3.11/3.12 CI jobs; live Hermes canary with all 8 markers and 42 route tests; 40 route tests each on Hermes v0.22.2, v0.22.1 and v0.21.6. All prior route tests/assertions are preserved, with two added local-command cases.
Update with /refine update, then restart Hermes to load the patched core.
v1.3.25
Fix works on the newest Hermes
1.3.25 bundles invocation-route-v2026.10.15.patch, a route patch revision for a newer Hermes that was on main but in no release yet. The installer picks the patch that fits your Hermes; older Hermes versions keep the patch they had.
Checked automatically before release: on a clean Hermes main 7bda2a3368 the installer picks a bundled patch and its tests pass; on Hermes v0.22.1 the installer picks a fitting patch and its tests pass; all plugin tests pass, and CI is green on Windows and Linux.
Also in this release
- Patch the extracted gateway dispatcher instead of shadowing upstream methods
Updating
Tap /refine_update, or press Update in the desktop app. Hermes will restart.
v1.3.24
The installer never repairs the wrong Hermes
install.py --hermes-src <path> used to treat the path as a first guess. A path that was not a Hermes checkout fell through to the gateway's systemd unit, HERMES_HOME or ~/releases, so a repair aimed at one checkout could land on another. Now an explicit --hermes-src is used exactly as given, or refused with an error.
On a server where Hermes runs as another user, the installer also stopped with PermissionError when it met that user's checkout while looking for Hermes. Now it skips a checkout it cannot read and keeps looking.
Checked: all 1,382 plugin tests pass on Windows and Linux. Two new tests cover the cases above, one for each.
Updating
Tap /refine_update, or press Update in the desktop app. Hermes will restart.
v1.3.23
Fix works on the newest Hermes again
Hermes main from 99b067e315 (2026-10-10) changed one type annotation next to the code the route patch touches, and the patch stopped applying. After a Hermes update, Fix would have answered that this Hermes isn't supported yet.
1.3.23 bundles the same patch with less surrounding context (one line instead of three), so small cosmetic changes in Hermes next to it no longer break it. The lines it adds and removes are identical to 1.3.22's. The installer still picks the patch that fits your Hermes; v0.21.6 keeps the one it had.
Checked: on a clean Hermes main 9b1a56e15f the new patch applies and its 40 tests pass; on one Hermes base, the new and the previous patch produce byte-identical files; on v0.21.6 the previous patch applies and its 40 tests pass; all 1,380 plugin tests pass on Windows and Linux.
Updating
Tap /refine_update, or press Update in the desktop app. Hermes will restart.
v1.3.22
Fix works on the newest Hermes again
Hermes main from 8bff64d6ed (2026-10-09) changed its type annotations, and the route patch no longer applied there. After a Hermes update, Fix would have answered with:
♾️ Refine Cycle is paused: Hermes … isn't supported yet. You'll get a message when it is.
1.3.22 bundles a patch rebased onto that Hermes. The patch does the same thing as before; only the annotations around it changed. The installer picks the patch that fits your Hermes, so older Hermes versions, v0.21.6 included, keep the patch they had.
Checked: on a clean Hermes main 8bff64d6ed the new patch applies and its 40 tests pass; on v0.21.6 the previous patch applies and its 40 tests pass; all 1,380 plugin tests pass on Windows and Linux.
Updating
Tap /refine_update, or press Update in the desktop app. Hermes will restart.
v1.3.21
Fix brings everything back
When the plugin works but something is off, it now says so and offers the same one-tap Fix:
♾️ Refine Cycle works partially.
/refine_fix — Hermes will restart.
This covers a Hermes update that removed the route patch while a chosen lesson model keeps the automatic lessons running, and a memory budget below 4400 (a Hermes update resets Hermes's own default to 2200). /refine status and the desktop status bar say works partially, with a Fix button.
One Fix restores all of it: the route patch and the memory budget, on a patched Hermes too. Afterwards:
♾️ Refine Cycle is fixed.
When nothing works, the message stays as it was:
♾️ Refine Cycle stopped working after the Hermes update.
/refine_fix — Hermes will restart.
Messages say the state and the one command, nothing more; the details go to the log.
Also
- The installer's self-check works on the newest Hermes, which runs on its own bundled Python.
/refine fixasks the installer for the host state once instead of twice.
Checked: all 1,380 plugin tests pass, on Windows and on Linux (Python 3.12 and 3.14). Live on a Hermes server: memory lowered to 2200 → works partially → Fix → 4400 → is fixed; route patch removed → stopped working → Fix → patch and memory back → is fixed.
Updating
Tap /refine_update, or press Update in the desktop app. Hermes will restart.
v1.3.20
A chosen lesson model keeps working after a Hermes update
Every Hermes update removes the route patch the plugin needs for passes on the session's model, so the plugin used to stop and ask for /refine_fix after each update. With a lesson model chosen (/refine model, or llm.use_model_for_auto_runs + llm.model in config.yaml) and automatic refinement on, it now keeps working: automatic lessons reach that model through Hermes's plain plugin LLM, which needs no patch.
On a Hermes without the route patch, with a lesson model chosen:
- no "stopped working" message, and the desktop status bar stays on
working; /refine statussaysworking, plus one line that a manual/refinepass needs/refine_fix(or, where no patch fits that Hermes yet, that it waits until that Hermes is supported);- "working again" comes only when the route itself is back.
Without a chosen model, nothing changes, except that the "stopped working" message now also offers the second way out: Or send /refine model and pick the model that writes lessons. With a model already set that cannot run, the message says what stops it instead: no llm.model, a missing allow_*_override, or a model or provider that llm.allowed_models / llm.allowed_providers leaves out. Those allowlists now count everywhere the plugin decides whether the chosen model is usable, as Hermes itself applies them.
Checked live on an unpatched Hermes main (04dc1c6ea0) with a local stand-in model: with a model chosen, a full automatic pass reached that model and nothing claimed the plugin was broken; without one, the pass stopped as before and the message offered both ways out. All 1,372 plugin tests pass.
Also
/refine fix on a broken Hermes asks the installer for the host state once before repairing, not twice.
Updating
Tap /refine_update, or press Update in the desktop app. Hermes will restart.
v1.3.19
A typed update in the desktop app restarts it too
In the Hermes desktop app, typing /refine update or /refine fix in chat now ends the way the status bar's Update / Fix button does: the plugin runs the button's own job, tells the status bar when it is done, and the status bar restarts the desktop backend at once. Before, the backend kept the old plugin code until the status bar's next check, up to ten minutes later, and then asked you to press Fix.
On Hermes 0.21.4 and newer the command is /refine-cycle update / /refine-cycle fix. Telegram, the CLI and the buttons work as before. /refine fix is now a command of its own, the same one as /refine_fix; /refine fix <text> is still a reason for a pass.
This needs the desktop half switched on and a Hermes with the plugin event bridge (hermes_cli.plugin_events). Without either, the status bar's Fix loads the new code, as before.
Checked: all 1,351 plugin tests pass. Live on Hermes Desktop 0.21.5: a typed /refine-cycle fix restarted the desktop backend with no Fix press.
Docs
README, INSTALL, ARCHITECTURE and USAGE now cover the model picker and the typed update in the desktop app.
Updating
Tap /refine_update, or press Update in the desktop app. Coming from 1.3.17 or 1.3.18, the desktop app's status bar still runs the old code, so press Fix once if it asks.