apollo-agent 0.6.0

Local-first Rust AI agent runtime — Telegram-first, trait-driven, SurrealDB + RocksDB state layer.
Documentation
# Roadmap

Last updated: 2026-07-27

## Now

- keep the local-first runtime stable while `main` stays focused on the
  single-machine experience
- maintain 0 clippy warnings, 100% test pass rate
- improve integration docs and onboarding

## Done (v0.2.0)

- Streaming tool-call parser (hermes-rs `parser.rs` port) — incremental
  `<tool_call>` detection from partial LLM output
- Tool guardrails — loop detection, idempotent/mutating classification,
  failure counting with configurable warn/block thresholds
- Pluggable context compaction — `Compactor` trait + default LLM summarizer
- Self-healing retry — auto re-prompt LLM with error context on tool failures
- Trajectory export — ReAct step serialization for RL training data
- Autonomous coding mode — 24/7 workspace loop: read TODO.md, run agent,
  validate with tests, git commit on success
- Skill curator — background task that reviews skills and suggests improvements
- Plugin lifecycle hooks — pre/post tool call, session start/end events
- Skill template preprocessing — `${HERMES_SKILL_DIR}` / `${HERMES_SESSION_ID}`
  variables + `!\`command\`` inline shell in SKILL.md
- Cron scheduler — SurrealDB-backed with in-memory noop fallback for testing
- Cargo publish v0.2.0 to crates.io as `apollo-agent`

## Next

- add tests for Telegram markdown conversion and long-message chunking
- add tests for audio/sticker handling in Telegram
- add trajectory collection toggle in config.yaml
- make swarm state more visible and easier to operate
- improve operator diagnostics
- move scheduler/session/control metadata onto unified Surreal contract

## Later

- unify storage contracts for memory, session state, swarm tasks, and scheduling
- add better observability without bloating the binary
- add agent-authored skill maintenance and better long-term procedural memory

## Not For This Branch

- hosted gateway product work
- web UI and deployment surface
- multi-user hosted control-plane (not planned on `main`)