Skip to content

0.7.0

Released 2026-06-15.

The integration release. 0.7.0 is about what you can build on Toise. An AI assistant gets pinnable context and ready-made investigation workflows; an operator can annotate the graph; a dashboard can hold a token that can never write; and a producer in any language can prove it is on-spec before it ships. It also lands the identity hardening (resurrection, connection topology) and the audit P1/P2 lot.

Not a wire-contract break, no data migration. One MCP argument was renamed — see the 0.6 → 0.7 migration guide.

Added

  • Operator annotations. annotate_entity (MCP) and the first GraphQL mutation annotateEntity attach free-form notes — owner, runbook, ticket — to an entity as an overlay: kept in a per-tenant sidecar, surfaced on get_entity and Entity.annotations, and never mixed into producer truth or the event log. An empty value removes a key. It is the one write either read surface exposes, so it needs a write-capable token.
  • MCP resources and prompts. Beyond the twelve tools, the server exposes pinnable resourcestoise://schema (the live schema), toise://guide (a markdown orientation), and the template toise://entity/{id} — and ready-made prompts: investigate_incident, blast_radius, explain_entity, whats_changed.
  • Token roles. A bearer token can be read-only (TOISE_READ_TOKENS — query surfaces only) or ingest-only (TOISE_INGEST_TOKENS — OTLP only), alongside full tokens. Least privilege for a dashboard that must never write or a producer that must never read.
  • Verbosity tiers. find_entities, get_entity and get_neighbors take an optional verbosity: compact (id/type/label, cheap to scan a large set) or full (the default). Scan compact, then re-fetch the one you care about.
  • toise-conformance CLI. Validate a producer's OTLP output against the wire contract without a running Toise, in any language — pipe it the ExportLogsServiceRequest bytes (protobuf or JSON). See the new Producer directory for the catalog and tool usage.
  • API stability policy and a golden contract test pinning the whole MCP surface — tools, resources, and prompts — so a change is deliberate.
  • Identity-stable resurrection: an entity re-asserted within a bounded grace window after deletion keeps its logical id. Connection-topology reads with read-time peer resolution. New compute.vm and container entity types.

Changed

  • MCP get_neighbors renamed depthmax_depth, matching find_path and impact_of. Update clients that passed depth.
  • One streaming as-of fold now backs both MCP and GraphQL time-travel; traversal goes through the adjacency index instead of scanning all relations.

Fixed

  • The liveness Sweep surfaces its commit errors; a tenant whose store fails to open is quarantined at boot instead of taking down the server; live entities are counted by membership (phantom-delete fix); the SDK rejects a malformed eventName or a sub-second Interval before the wire.