Mihari

Codename: Mihari (見張り)

MIHARI

Mihari (見張り) means “lookout” or “watchman.” LunarWing v2.0.7.0 posts watchmen over its own machinery: supervised sidecars, health gates, strike-aware secret detection, deterministic responder election, and two self-audits of the dependency graph and the MCP runtime.

LunarWing v2.0.7.0 is a reliability, supervision, and protocol-hardening release. It fixes an occasional issue of agents occasionally stalling after tool calls and approval decisions, makes multi-agent coordination deterministic, closes every finding from the MCP Part 2 gap audit, and hardens LunarVision and LunarVoice lifecycle management across both systemd and OpenRC hosts. There are no new SQL migrations and no port-registry changes — this one is all about watching what already ships.

Highlights

  • Agents no longer get stuck after tool calls or approvals: interrupted structured results are retained, denied approvals resolve the original call instead of leaving the turn hanging, and missing-output analysis pairs call IDs against the authoritative inference transcript.
  • Multi-agent coordination is now deterministic: cross-daemon responder election with a persisted per-tenant roster, an auto-loaded managed seven-rule protocol bundle, strike-aware secret detection, and one uniform master switch across legacy and Engine V2 paths.
  • The MCP Part 2 gap audit is fully remediated — all three P1 and five P2 findings. Version negotiation accepts exactly 2024-11-05, discovery refresh is bounded, worker recovery is generation-safe, and pinned Linux stdio servers execute as verified, sealed bytes via memfd + execveat.
  • LunarVision and LunarVoice now share one supervision contract on both init systems: dedicated operational health listeners, crash-supervisor -sup units, registry-aware port discovery, and fail-loud container recreation when the launch contract drifts. A sidecar that never goes healthy fails loudly instead of being restarted forever.
  • The GitLab WASM tool no longer stalls agents: list_issues can walk every page in one bounded, single-approval call, and blank or repeating pagination headers terminate the fetch instead of looping silently.
  • WASM credential isolation is tightened: a universal * host mapping stays inside its own extension sandbox and can no longer trigger auth prompts or inject secrets for unrelated hosts.
  • Updated the opencode external worker to opencode 1.18.9, with builds repointed to the canonical anomalyco/opencode repository after the upstream transfer.
  • Collapsed the dependency graph to a single reqwest 0.13.4; refreshed lockfiles across the tree.

Upgrading

Nothing migrates automatically this time — V26 and registry v15 carry over unchanged. Re-render LunarVision and LunarVoice units so the health-aware Quadlets, OpenRC supervisors, and managed assets match the new contracts; drifted containers are recreated automatically on next start. Rebuild the opencode worker image to pick up the pinned v1.18.9 build.

The pinned Rust toolchain remains 1.96.1.

For full release notes, check the repository as always.