Skip to content

v0.28.1 — dump omit-empty fix + example/doc coverage

Choose a tag to compare

@flyersworder flyersworder released this 19 Jul 12:37
· 46 commits to main since this release
b867af1

Patch release following v0.28.0 (metric identity decomposition).

Fixed

  • dump_semantic_source now omits empty decompositions / drill_by. 0.28.0 emitted both keys on every metric even when empty, which diverged from the tools layer's omit-when-empty convention and changed a frozen contract's contract_digest for a source that declares no decompositions — re-freezing a pre-0.28 contract produced a different content address than under 0.27.x. A leaf metric now dumps byte-identically to the pre-0.28 format, so contract_digest is stable across the upgrade for contracts that don't use the new fields. Metrics that do declare decompositions/drill_by are unaffected and still round-trip.

Docs

  • The revenue_agent and growth_agent examples now demonstrate the feature — revenue_agent a product identity (total_revenue = active_customers × revenue_per_customer) plus a region drill, growth_agent a ratio identity on conversion_rate that exercises a mixed identity + influence graph for trace_metric_impacts's kinds filter.
  • Completed decomposition coverage in docs/architecture.md (tool signature, lookup_metric fields, MetricDefinition field list).

Full suite green (724 tests); ruff / ruff format / ty clean.