v1.8.0 — Operator Legibility & Observability
1.8.0 — 2026-07-23
Operator legibility and observability: make DevFlow's operator surface legible
and its self-reported state trustworthy. Every unit is single-writer,
operator-facing, and reversible or detection-only. Phase 21.
Fixed
- DevFlow's dogfood build-staleness guard no longer hard-blocks a self-run when the only commits ahead of the running binary's embedded commit changed nothing the compiler sees.
embedded_commit_is_stale's strict-ancestor arm now filtersgit diff --name-only <embedded> HEADthrough the sameaffects_compiled_binarypredicate the dirty-tree arm already used — a docs-only (.planning/) range readsFresh, any build-input change readsStale, and a git error fails towardStale. The block message no longer claims "is not an ancestor of HEAD" for the common case where the embedded commit is an ancestor, just behind
Added
devflow gate show <phase> [--stage]prints a gate's full context untruncated (thegate listview caps at 100 chars), routed through the same control-character sanitizer so it stays terminal-safedevflow statusnow surfaces the rate-limit reset time in its cron hints, an in-stage progress line sourced from the lateststage_launchedevent (not the phase's ownstarted_at), andresume/advancerecovery-verb hints when a phase is stuckdevflow doctorgains a detection-only planning-doc staleness check that reconcilesROADMAP.md/STATE.mdversion and outcome claims against the repo's git tags and flags drift, in both human and--jsonoutput — it never rewrites prosesequentagent's second agent now writes a tracked, path-free slot record sodevflow statusobserves it while it runs, with RAII cleanup on every exit path and no routing through the phase state machine