Repository navigation
v0.13.0
Team & worker workflows land in force this release, alongside a batch of
CLI ergonomics and error-classification fixes.
New commands & capabilities
--version/-vnow print the version, alongside the existinghadron version(#393).node mv—mvalias fornode move, matchingls/rmon its siblings (#450).memory create/new/add— aliases for thememory setupsert, so the create verb is discoverable like every other noun (#308).agent create --install-into <app>installs a new agent into an App's cast pool in one run, so it is castable immediately (#543).agent create/agent update --persona-prompt-file/--system-prompt-file(and-for stdin) — supply the CLI's longest text fields from a file rather than an inline argument that a shell would mangle (#541).team worker release <name>clears the hold on a name and reports what the server actually did — the released holder, whether the team-chat announcement went out (#554, #522, #524).team worker listnow shows who holds each name and whether anyone is actively driving it (#487, #523).team chat readwalks backward:--before <seq>,--limit, and aprevBeforecursor for stable paging under a chat being posted to (#548, #556).team role list/team worker castwarn when a role definition and an agent's persona role diverge — the silent direction that used to pass unremarked (#542).team session lognames the bound worker in its receipt (✓ logged … as Vera) and in--json(workerName/workerId), so a misattributed append-only record is caught on sight (#559).coding review runbuckets the review checklist against a diff and returns the checks a change could fire, with their bodies, in one response;codingnow resolves its memory from the repository and says which source answered (#551, #561, #562).specreports abstract-length headroom and escalates at the 2000-char wall, and gains two lint rules that catch a corrupted spec (#539, #547).
Improvements
- App references are validated client-side (
--app,--install-into, theappgroup's positionals,app set-active): a bad ref is refused with a message naming the flag and the canonicalhrn:app:<root>:<slug>forms, before any request — instead of leaking the server's GraphQL internals and teaching the retired::grammar (#540). - Error classification honors the GraphQL envelope code over the HTTP status, on both the curated commands and the raw
hadron apipath — so a 4xx/5xx that carries a typed code (e.g.WORKER_TAKEN,NOT_FOUND) exits with the right code rather than a generic failure; a gateway 5xx with a real body is classified from it (#563, #544). - Required flags now say so in their usage, and a command reports the whole missing set at once rather than one flag at a time (#536, #534, #538).
- Session lifecycle is sturdier: a refused
session endno longer takes the handoff with it,session start's takeover gate reads derived liveness rather than a merely-open row, and a demoted read no longer fails a bind except where it decides one (#528, #550, #552, #553).
Bug fixes
chat post/team chat post: a missing or unreadable--body-file(or a failed--body -stdin read) now exits Usage (2), the documented contract, instead of the generic 1 (#390).
Full changelog: v0.12.0...v0.13.0