v0.9.1 — the board's janitor, honest workflows, and a 20× lighter daemon
Highlights
The task board got its janitor (#913). Tasks no longer wedge forever in implementing/blocked when their implement job dies or the work ships via another branch: a stale-task auto-reconciler (job-liveness + remote-branch existence checks) sweeps dead cards, gitmoot task dismiss retires them explicitly, and every state change now lands in a task_events audit trail. Companion fix #893 already un-wedged pr_open tasks whose PRs merged outside gitmoot.
The Workflows page lists only actual workflows (#912). Synthetic adhoc/<agent> auto-groups are gone — they were hundreds of dead "workflow not found" links (including retried pipeline-stage attempts leaking through the #900 exclusion). Unlabeled jobs stay on the Jobs page; every listed workflow's detail link now resolves, asserted in-test.
GitHub API budget fixed (#911). The daemon's PR polling dropped from ~10.4k REST calls/hr to a few hundred: ETag conditional requests (304s are free), adaptive idle cadence, and pluggable poll intervals.
Pipelines are self-describing (#873, #775, #793). Trigger-aware mode labels (email, every 6h, email+6h, manual), stage cards that show kind + agent runtime (with the declared DAG shown even before the first run), shell cmd: stages receiving upstream stage results via a bounded JSON context file, and explicit --action routing with a validated PR-bound fix-pass door.
Memory: opt-in insight harvest (#884). A durable post-terminal sweep can distill lessons from finished jobs into staged, human-gated memory proposals; default_enroll can auto-enroll persistent agents. Both ship off by default, with receipts, leases, and a fail-closed promotion allowlist.
Readable transcripts (#698). gitmoot cockpit panes render streaming agent transcripts with an orientation header (action, agent, runtime/model, workflow), dimmed machinery, spaced turns, and red failures — TTY-only styling, byte-stable when piped.
Security hardening (#874 P1). Runtime children get a curated environment; ambient GitHub credentials are denied to agent processes.
Dashboard
- Wave 2–4 redesign completed: Health and Charts joined the calm design language (flat cards, mono digits, purple-active controls), the app-wide state-fill palette softened ~22% (hues preserved), gradients flattened, and the attention page's blocked-gate chips bounded.
- Faster CI for everyone: the race gate is now a 13-lane split (cli×5, workflow×3, db×2, daemon) — PR wall time ~8m (#906/#907).
Upgrade notes
- Includes a schema migration (
task_events+ task-dismissal support); it applies automatically on first start. - No config changes required. New knobs (
[memory] harvest_enabled,default_enroll, daemon poll intervals) are off/defaulted.