Release notes: v2.1.0

Why this release

v2.1.0 hardens the v2.0.0 session loop for real daily use: resume works against the journal, tool dispatch is schema-validated, config.toml fields actually apply, and several deterministic crash paths are closed. AGEF v0.1.1 and the evidence substrate are unchanged.

Top user-facing wins

  • Session resume: -c, --continue-last, and TUI /resume reopen the journal graph instead of failing with session already exists.
  • Repeat-limit crash fix: hitting the read_file / list_directory exploration cap no longer exits with InvalidTransition (#1).
  • Tool argument validation: LLM tool calls are checked against each tool's JSON Schema before dispatch (including MCP proxies).
  • Config.toml wiring: default_model, ollama_url, enabled [[mcp]] servers, and first_token_deadline_ms are honored; invalid config files warn instead of silently resetting.
  • Scout + diff dry-run: akmon scout produces bounded planning dossiers; file tools support dry_run with stabilized file_change_set payloads.

Upgrade notes

  • Safe upgrade from v2.0.0. Existing journals and AGEF bundles remain readable.
  • CLI flags still override ~/.akmon/config.toml when set to non-default values (e.g. explicit --model, --ollama-url).
  • Tool output parsers should prefer changes[] over legacy files[] in file-modifying tool results (files[] remains as alias).

Verification checklist

akmon --version  # should report 2.1.0

# Resume should not fail on second run with same session id
akmon --yes --task "hello" --output json
akmon -c --yes --task "continue from before" --output json

# Config warning (optional smoke test with intentional typo in config.toml)
akmon doctor