0.5.0
What's Changed
Added
- BuildStats diagnostic reporting (#106) — \BuildStats.report()\ and \BuildStats.report_dict()\ for rich diagnostic output with phase, budget, candidate counts, and per-section token breakdown.
- \contextweaver stats\ CLI subcommand (#106) — renders BuildStats reports from ingested session JSON.
- RouteResult.explanation() (#226) — paste-friendly Markdown rationale of routing decisions with top-k tables, confidence gaps, and context hints.
- JSON Schemas + drift gate (#225) — six committed schemas for catalog, choice_card, result_envelope, route_trace, build_stats, and graph_manifest with \make schemas-check\ CI gate.
- OpenTelemetry GenAI semantic conventions (#224) — emit \invoke_agent\ and \execute_tool\ spans with stable \gen_ai.*\ attributes.
- Provider-message ingestion adapters (#194, #219, #222) — OpenAI, Anthropic, and Gemini message decoders/encoders for 5-line drop-in adoption.
- Quickstart adoption guide (#220) — \docs/quickstart.md\ leads with existing-chat-history snippets.
- Byte-stable choice card ordering (#218) — formalized (-score, +id)\ contract with regression tests and prompt-caching docs.
- Context engineering positioning (#217) — new landing page framing in \docs/index.md\ and \docs/architecture.md.
Changed (breaking)
- CLI: argparse → Typer + Rich (#221) — \ yper>=0.9\ and
ich>=13.0\ move to core (from [cli]\ extra). All seven subcommands keep flag names; new \stats\ subcommand added. Exit code 2 (Typer convention) when run without subcommand. - \ChoiceCard.kind\ tightened — now \Literal['tool', 'agent', 'skill', 'internal']\ with schema validation; size bounds enforced at construction.
- OpenTelemetry API floor bumped — \opentelemetry-api>=1.27\ for GenAI semantic conventions.
Removed
- Old OTel span names — \contextweaver.context.build\ and \contextweaver.routing.route\ replaced by \invoke_agent\ and \execute_tool.
- Old OTel metric name — \contextweaver.tokens.used\ renamed to \gen_ai.client.token.usage.
Full changelog: https://github.com/dgenio/contextweaver/blob/main/CHANGELOG.md