Milo 0.2.2
Pipeline observability, dispatch refactor, performance improvements, and sharp edge fixes.
Patch release adding pipeline observability, refactoring command dispatch internals, improving performance, and fixing a batch of sharp edges.
Added
- Pipeline observability —
PhaseLogdataclass with@@PHASE_LOGaction and ring-buffer reducer for per-phase stdout/stderr capture (opt-in viaPipeline(capture_output=True)). Newphase_detail()andpipeline_detail()kida macros for interactive TUI with cursor navigation, log scrolling, and auto-follow.PipelineViewState+make_detail_reducer()for Elm-style keyboard-driven expand/collapse interaction.milo://pipeline/timelineMCP resource exposes phase execution timeline as structured JSON. Gateway--statusnow shows real CLI metrics and pipeline state.
Changed
- kida-templates 0.5.0 — Correctness fix for variable bindings inside unrolled for-loops (affects form, select, pipeline, and component templates) and faster template compilation from cached
str.joinand filter folding. - Dispatch performance — Replaced SHA256 with builtin hash and deferred recording append outside the lock. Fixed
get_env()singleton cache (122us to 125ns). Bulk task accounting for Batch effects. - Command dispatch refactor — Shared builtin-mode handling, command resolution, hook execution, middleware execution, generator consumption, and output writing across
run(),call(), andcall_raw()without changing the public API.
Fixed
call()/call_raw()error handling — Re-raise exceptions instead of callingsys.exit(1), restoring the pre-refactor behavior for programmatic invocations.- Sharp edges (batch 1) — Fix 7 Python 2
except A, B:syntax errors, replace silent exception swallowing with warnings/logging, add atomic file writes, guard unhandled template lookups, and addraise_on_errortoConfig.validate(). - Sharp edges (batch 2) — Warn on silent template/config fallbacks, validate PhasePolicy and pipeline dependencies eagerly, fix exit code on aborted confirmations (130 instead of 0), suppress
display_result=Falseacross all output formats, tighten Context injection type check, returndefaultfromconfirm()in dry-run mode, addfail_fastoption to hook invocation and parallel pipelines. - Sharp edges (batch 3) — Additional syntax errors, silent failures, and strict API fixes.