0.2.21
Behavior changes
- The release screen and away alerts show a finished gate shard with failing tests as "done, failures reported" instead of a green pass.
- In the TUI, one Esc during a turn that is running exactly one identified foreground harness run now skips the sub-agent confirmation, writes a soft-stop request to that run's control inbox and prints one "stopped" line; if the request cannot be persisted it says so, and unidentified or concurrent harness runs keep the existing "/harness stop" hint.
- Mermaid code blocks in Obsidian vault notes on the PWA now render as diagrams that follow the light or dark theme, and a block with a syntax error shows the error line and its source instead of disappearing.
- The graph and workflow editor (
/editor) is now in the default PWA menu under Create and on the mobile Create tab, graded Stable, so it shows without turning on Labs or picking a screen role. - The Telegram intake digest now uses one briefing shape for both the whole view and the per-seat view: a head line "absorbed N → K that touch us", at most three S·C·A·note blocks for lens-judged items, and every other item folded into a single "reference M — notes" line (up to ten names, then a pointer to
elanous intake items); an empty seat day shows the same zero head line instead of "no new items today". - The PWA owner overview (
/ceo) gains a "draft inventory" card showing open harness drafts, the oldest draft age, drafts with no owner and the 48h draft-to-merge conversion; the daemon serves it from a 10-minute cache filled in the background by the new read-onlyelanous harness drafts metrics --json, so opening the page makes no GitHub calls, and a cold or failed cache shows "measuring" or "unreadable" instead of zero. elanous tasks parents [--older-than <hours>] [--json]lists harness parent processes older than the threshold whose run ledger is terminal or whose Pod is gone (read-only, never kills); an opt-intaskAgent.parentHostsetting (default off) can launchtasks hand --liveparents on another host over ssh, PR-only, falling back to the local launch when its preflight fails.- New read-only
elanous ops overview [--json] [--watch [s]] [--since 1h] [--owner …]prints one flow verdict first (unobservable > blocked > loop-down > saturated > supply-empty > degraded > flowing) with its reason chain, then release, agent-task, capacity, machine, landing and loop sections; every cell it cannot measure shows "not measured" with a reason (JSONnull), never 0, and the call makes no ssh, kubectl or GitHub requests. - A new live run page (/live-run) replays one harness run on its execution graph in the editor's visual language: the taken edge lights up and a token travels along it, nodes pulse while running and turn green or red with a ×N revisit badge, a KST timeline sits beside the graph, finished runs replay at 1×/4×/16× with a following camera, running runs update live, and grouped nodes can be boxed or folded into one node.
Plus 58 internal changes.