• v0.6.1 b78fff7df9

    iw-cli v0.6.1 Stable

    mph released this 2026-06-11 07:53:09 +00:00 | 337 commits to main since this release

    iw-cli v0.6.1

    Internal release — test suite rebalance. No user-facing CLI changes.

    What changed

    The test pyramid was reshaped from a BATS-dominant suite (~27.8 min) to three tiers:

    • Unit + harness — 22/22 commands now have in-VM harness tests against FakeCommandEnv (capability-trait composition of fake console / fs / git / tracker / process / server / tmux / prompt / config / clock / etc.). ~185 new in-VM test scenarios. Detailed exit-code, error-routing, and tracker-dispatch coverage moved off scala-cli + tmpdir round-trips.
    • Tool contract — new test/contract/ tier pins external-tool assumptions (git, gh, glab, scala-cli, mill, tmux). Gated to nightly cron + contract-labeled PRs.
    • E2E smoke — BATS reduced to 1–2 round-trip tests per command (~1010s of BATS → ~36s + 36 new munit tests on previously-untested rendering / schema validity).

    Coverage is now visible: scoverage 2.1.0 instrumented on core + dashboard, with per-module XML + aggregated HTML uploaded by CI (14-day retention).

    Embedder-visible notes

    • Command-script shape: commands/<name>.scala is now a 7-line shim that delegates to iw.core.commands.<Name>.run(args, env). Logic lives in core/commands/ against the CommandEnv capability traits. Existing ./iw <command> invocations and behavior are unchanged.
    • New ./iw ./test contract runner subcommand.

    Resolved

    • #357 — superseded; bloop cold-start cost eliminated by Phase 3 dead-setup removal (no longer the bottleneck).
    • #304 — superseded; PTY-bound tmux assertions moved to the gated contract suite.

    Detail

    Plan and per-phase log: docs/plans/2026-06-03-test-rebalance.md. Implementation PR: #377.

    Downloads