You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
0.2.0 (2026-10-17)
⚠ BREAKING CHANGES
web: POST /api/btw takes a required aside and answers it; GET /api/btw answers asides in place of open and said, filtered by epic; POST /api/btw/leave takes aside in place of to. A conversation of an earlier epic is answered as to /, no longer //.
btw: The Epic is answered by the btw setting alone. With it unset, a side question of The Epic is refused rather than answered by the flow's first agent: set it in Settings › General (web) or /settings › General › /btw The Epic (terminal). An epic's own btw agent, POST /api/btw/agent and btw mode's ctrl+g are gone, and GET /api/btw answers no agent.
runtime: runtimes take harness instead of affinity, and work on another machine with no setting no longer drops to a harness here when the CLI is missing or a gating hook is hung: set the runtime's harness to local. A saved affinity is still read, as its first entry with self as env.
web: hmz web no longer serves only the directory it was started in, and every request about one workspace's runs names it; GET /api/held answers the machine's context.
web: the page's addresses move: #/runs/ is #/epics/, #/start is #/new, #/runs?… is #/search?… and #/usage is #/settings/usage.
flows: ralph_loop and continue_loop are no longer resumable. stateful_ralph now keeps its session in state, so --resume carries the conversation on. flame_chase keeps only whose turn is next, and rlar keeps only the last review. A failed turn now ends any of these runs.
Features
agents: drive omp (Oh My Pi) as a backend (#283) (5a7ac5a), refs #280
agents: offer a flow's callback tools to ACP CLIs and grok over mcpServers (#338) (3bf9af0)
agents: offer a flow's callbacks to Antigravity CLI as a plugin (#339) (c9eed02)
agents: offer a flow's callbacks to opencode and mimocode (#336) (127ac9c)
agents: offer a flow's callbacks to pi, Oh My Pi and DeepSeek Harness (#341) (6bbf96b)
agents: offer a flow's own callbacks to Qwen Code (#337) (2ac6d3e)
agents: put a flow's own command lines on an agent's PATH (#342) (46e38c6)
btw: ask The Epic or a conversation, from a menu laid out as the epic (#455) (43441e8)
btw: The Epic asks a conversation through a skill, carried out by a hook (#460) (110b66b)
call every agent by its own name, never by the role it fills (#401) (2b0148a)
chat like Claude, no all-sessions log, Exomyth fixes, split profiling, TUI parity (#422) (33ed4dd)
cli: update hmz itself with hmz update, and say when a newer release is out (#318) (7854f0a)
coganchor: route any CLI through a local LiteLLM gateway (#343) (1d49b9e)
daemon: let a line said to a conversation between turns answer what to say next (#333) (7d89b54)
desktop: a macOS app around hmz web, shipped as a DMG on every release (#310) (02b60eb)
desktop: install and keep hmz at the app's own version, by itself (#316) (be44c6b)
desktop: lay out the disk image with first-open steps, and line up the web's controls (#396) (3c2689e)
desktop: make the title bar one with the page (#314) (a77103a)
desktop: open .hmzepic files, importing them into Exomyth (#365) (ad0827d)
desktop: update the app by itself, signed, from each release (#315) (d1f2d18)
flows: carry a session kept in a flow's state on in a later run (#172) (896a089)
flows: offer a role's FakeTools to its agent as tools of the flow's own (#340) (4de535d)
flows: one FakeTool, FakeCli and FakeCommand for flows and coganchor (#364) (af428c2)
land the open web and LiteLLM gateway pull requests together (#367) (d7f732e)
many chats, each its own epic beside the workspace's flow, folding away when idle (#427) (33ed4dd)
many daemons in web and desktop, and notifications across them (#385) (6514f96)
rewrite specs as api/ and features/, pick the btw agent per epic, refuse cross-machine workspace hooks (#444) (33ed4dd)
runtime: back epics up to git repositories (#331) (0beb7cf)
runtime: download epics from backup targets (#355) (bab4db1)
runtime: export epics as .hmzepic and import them back (#327) (f12acb0)
runtime: lay an epic out as an Exomyth timeline (#326) (09d0192)
runtime: let docker and swarm runtimes share a host: name prefix, exec user, running container (#426) (33ed4dd)
runtime: put environments on Slurm jobs, reached by srun or over TCP (#317) (32b0e45)
runtime: say where a harness runs with one setting, not four placements (#446) (33ed4dd)
tui: add Exomyth, a timeline of an epic's sessions (#345) (6d0e67f)
tui: answer chat's questions in the conversation being read (#334) (046f562)
tui: back epics up from /settings, /flow and /epics (#352) (14de0fa)
tui: import an epic from a .hmzepic (#354) (9f1f931)
tui: show the epics of this directory or of this machine (#325) (194a061)
web: add Exomyth, a timeline of an epic's sessions (#344) (d12da19)
web: ask a session of any epic beside it, and read epics back out of their logs (#305) (2363cb9)
web: back epics up from Settings, launch and the epic menu (#351) (cebac23)
web: choose a theme only in Settings (#323) (3c61e7e)
web: come with a light and a dark theme for every Chrysos Heir, and pair them under Auto (#321) (f9ff098)
web: do what the terminal interface does to flows and epics (#304) (e16e329)
web: draw an epic's Exomyth as a flame graph, with its slices in a table (#363) (14929ec)
web: draw humanize in NVIDIA's green and Hyacine's colours (#302) (d0731e4)
web: hmz web serves a workspace's runs to a browser on this machine (#285) (cae5859)
web: import an epic from a .hmzepic (#356) (9437fe0)
web: keep only Daemon, Settings and Usage in the sidebar's foot menu (#394) (43e614c)
web: lay hmz web out as Codex and Claude lay theirs out (#300) (21a1379)
web: make a light and a dark theme a pair of your own, written out together (#328) (af884d4)
web: make, edit, import and export themes, and pair any two under Auto (#320) (02dbd5e)
web: open a chat on its conversation, and ask in it (#335) (c113c55)
web: redesign in NVIDIA's green beside Hyacine's cyan, and her pink apart (#307) (f71dea2)
web: right-click menus, full text on hover, and paths browsed for rather than typed (#313) (475b6f6)
web: serve every workspace on the machine, as the daemon does (#303) (ef0e9e5)
web: several aside conversations, each asking one target picked at its start, with live status (#459) (110b66b)
web: stop hmz web when whatever started it goes (#306) (7997c21)
Fixes
agents: let fenced Codex initialize TLS on macOS and fail turns that end in error (#281) (15e9995)
agents: prefix pi and omp flow tools, let omp take them remotely (#361) (3964e98)
agents: refuse a dsh turn that would need a new runtime for a conversation (#362) (8b1c073)
agents: retry Codex's dropped streams and start every harness in a virtual config home (#425) (33ed4dd)
anchor: copy sessions a CLI logs on another machine into the epic (#324) (069c3fe)
carry chats on and draw them whole, and keep hosts up on macOS (#452) (a4c18ed)
codex: price cached input as a cache read, not as plain input (#469) (3204d46)
coganchor: build a harness's virtual home on its own machine under afar (#445) (33ed4dd)
coganchor: keep the turns of the shared-mirror test in the mirror at once (#442) (33ed4dd)
coganchor: let a fence write /proc, and let local and user of ALL write what they say (#278) (60cab7e)
coganchor: let a fence write /proc, and let local and user of ALL write what they say (#287) (60cab7e)
coganchor: let turns working in one mirror at once see each other's work (#423) (33ed4dd)
desktop: find the update in the newest release that carries one (#450) (a4c18ed)
desktop: keep a strip for the traffic lights over the sidebar's top row (#402) (2b0148a)
desktop: keep the traffic lights' strip across the whole window (#403) (2b0148a)
flows: drop the trailing comma CodeQL cannot parse in type parameter lists (#293) (5d0fe0b)
flows: keep and carry on supervised sessions, whose CLI runs here in a mirror (#424) (33ed4dd)
flows: let rlar's reviewer read what the actor said (#290) (a8651f1)
flows: two runs fetching one git+ flow at once both get it (#470) (3204d46)
line up the sidebar's top row with the traffic lights, and every row on one column (#399) (2b0148a)
list a run hmz exec holds as going in hmz web and /epics (#370) (085fd0a)
order epics begun in one millisecond, and keep a left view out of the next one's address (#360) (18cd580)
runtime: bound docker calls, and let go of a swarm runtime once its service is created (#467) (3204d46)
runtime: refuse a host slot that is neither the workspace's nor a chat's (#451) (a4c18ed)
telemetry: scrub reports as bundles are, timings and profiles too, only where started (#439) (33ed4dd)
tui,web: call an execution of a flow an epic in every label and message (#447) (33ed4dd)
web: draw the view an address names, never one left or one under a dialog (#357) (45184e7)
web: keep long flow and workspace names inside what shows them (#329) (1e765bc)
web: pick an agent and an environment a step at a time, and test the page in a browser (#301) (27dfb41)
web: say what an epic's environments are, and fit its spending in the panel (#309) (cc17577)
web: size the composer's input as soon as it is shown (#458) (110b66b)
Performance
tracing: open only the Codex rollouts a run could have written (#454) (43441e8)
Refactoring
flows: strip the builtin loops to their purest form (#298) (f855a01)