Skip to content

v1.5.0 — Tools that don't lie

Choose a tag to compare

@charlesaspe charlesaspe released this 04 Jul 18:32
1d43298

Tools that don't lie

A quality sweep applying one rule to the whole MCP tool surface: never report a network as clean or complete when it isn't. Driven by a read-only audit of all 25 tools.

The headline fix — the false "0 findings". The findings loader conflated three states — "the graph is unreachable", "the query errored", and "the run genuinely has no findings" — into one indistinguishable result, so tools rendered "0 findings" for all three. A down graph read as a clean network. Now the loader raises a typed FindingsUnavailable (distinct from an empty result), and every consumer surfaces it honestly: primary findings tools return an error, dashboard APIs return 503 (not a false 404), and nothing presents a fabricated zero.

The rest of the sweep

  • No "reads clean when not collected" — security posture, site summary, and device detail now account for uncollected devices instead of hiding them.
  • blast_radius stops silently ignoring interface/max_hops; its verdict and map highlight now carry the affected blast area and internet impact.
  • Captured-but-unread fields rendered — route active/inactive state, QoS policer-vs-shaper type, firewall schedule and logging flags.
  • Honest status codes — empty or failed results return no_data/error, not a misleading ok.
  • Two machine-readable verdicts where a real consumer exists — a findings severity summary and a security pass/warn/fail — with no speculative verdicts added elsewhere.

Backward-compatible; deterministic model snapshots unchanged. Verified end-to-end on a real production collection.