Skip to content

AIP v0.6.2

Choose a tag to compare

@michaelegner michaelegner released this 09 Oct 18:42
· 32 commits to main since this release
98eae36

Release story

v0.6.2 is a demo release: a live, hosted AIP demo on a second real system, Pitstop, without a new
capability.
The question it answers: before replacing StartTime and EndTime in
MaintenanceJobFinished, which services receive from the exchange it is published to, how far can the
evidence resolve that, and what must I still inspect?

AIP resolves the five receivers of Pitstop's RabbitMQ fanout exchange through their named queues, one of
which (ReportingService) no Pitstop document lists, with their declared and observed evidence and the
publisher's qualification. It states, rather than hides, that it holds no payload or field-level knowledge:
which receiver reads StartTime is what the agent must still inspect.

What's new

  • Pitstop demo (examples/pitstop-demo/):
    • run.sh replays an authored, frozen observation window (Docker and curl only; semantic, not
      byte-identical, reproducibility) and checks the expected answers;
    • run.sh --live runs the instrumented Pitstop fork, an OpenTelemetry Collector and a controlled traffic
      generator against AIP (needs the private fork and about 4 GB of RAM; CI does not run it);
    • a question-by-question walkthrough, a
      recorded Claude Code conversation and the
      input provenance.
  • The canonical demo is hosted and live. A continuously running, instrumented Pitstop feeds an
    owner-operated AIP instance behind a token-gated MCP URL; answers refer to a completed whole UTC day. The
    instance is not part of the repository and its address is not published here.
  • Claude Code plugin aip (claude/plugin): the
    architecture-aware-development skill (consult AIP before planning a change to an event, contract, shared data,
    deployment or service boundary; write an Evidence section; plan the inspection AIP cannot do) and a read-only
    /aip:inspect skill. AIP_MCP_URL and AIP_MCP_TOKEN point it at a token-gated instance.
  • Optional mod aip-mod (claude/mod): a band above the prompt and an
    evidence pane showing the last AIP answer beside the agent's plan. It only reads the plugin's tool results and never
    changes a prompt, a plan or a tool result.

What changed for integrators

One product change, a correctness fix found by the gate spike (I0), with no new semantics, schema, claim type,
limitation code or MCP tool:

  • Receiver-safe ingestion. A consumer span for Service A that names a Subscription declared by another
    Service is no longer accepted as RECEIVES_FROM evidence; the observing Service must have a declared route to it.
  • Window-correct resolution evidence. resolution_evidence_refs, and whether a destination counts as
    evidenced, respect the observation context's environment and window. Evidence is bucketed per UTC day, so only
    whole-UTC-day windows are stable under later evidence; the claims of a completed window do not change.

Unchanged: exactly four MCP tools in the same order, schemas/import/v0.5/*, the v0.5 and v0.6 answer schemas.
A whole-UTC-day window runs from T00:00:00Z through T23:59:59Z of its last day. Observed evidence is matched
against an inclusive window, so a window must not end at the next day's T00:00:00Z.

Known limitations

  • POST /v1/traces runs ingestion on the event loop, so REST, MCP and UI requests can stall during a batch (it
    recurs with continuous live traffic; no latency was measured). Deferred by the owner on 2026-10-08 to v0.7 or a
    patch release.
  • No per-Subscription qualification. Every claim carries the publisher's qualification; per-receiver evidence
    shows only as observed references on its route. Receipt is per messaging destination (the exchange), never per
    event type.
  • AIP holds no payload or field-level knowledge and models no Intent, Assessment or document staleness.
  • Snapshot ids differ between runs (they move with ingestion); the bounded drill-down protocol (at most three
    attempts) handles a stale snapshot.
  • --live needs the private instrumented fork; CI does not run it. The TimeService publisher emits its first span
    about a day after start.
  • The plugin and the mod are example client material, removable without changing any AIP answer. The mod uses Claude
    Code's typed mod API, so it is tied to the Claude Code build (tested with 2.1.294 and 2.1.295); CI has no Claude Code
    CLI, so claude plugin validate and claude plugin test are run by hand.
  • Inherited: a Broker is declared evidence only (no runtime observation) and destinationBrokerMappings stays
    unimplemented. I0 does not clean observed-only routes already persisted by an earlier version; the hosted demo
    started from an empty graph.

Links