Release notes: v1.8.2

Why this release

v1.8.2 is an operability and trust release: provider routing is fully explainable and diagnosable without changing resolver behavior. Introspection mirrors LlmConnectConfig::resolve() deterministically; no routing algorithm changes.

Top user-facing wins

  1. Deterministic ProviderResolutionTrace — structured trace (selected_provider, selected_reason, model_id, ordered candidates[] with eligible, reason, missing_prerequisites, priority_order) matching the real resolver priority. Secrets are never echoed; only named prerequisites.
  2. akmon config explain-provider — print the trace in the terminal or as JSON (--json on config, or global --output json).
  3. akmon doctor providers — includes the same provider_resolution block in text and JSON alongside existing health checks.
  4. Headless --output json — run summary JSON includes additive provider_resolution for automation (same schema as above).

Upgrade notes

  • No routing or CLI semantics changes for provider selection; this release adds diagnostics only.
  • Pair config explain-provider (why this branch won) with doctor providers (keys, endpoints, reachability).

Verification checklist

akmon config explain-provider
akmon config explain-provider --json
akmon doctor providers
akmon --output json doctor providers
# After a headless run with --output json, inspect provider_resolution on stdout