Skip to content

SAVANT-BOT v0.0.1 - Initial Public Release

Choose a tag to compare

@fame0528 fame0528 released this 16 Jun 23:13

SAVANT-BOT v0.0.1 — Initial Public Release

Sister project to SAVANT-TRADING under the SAVANT umbrella, built under SAVANT-PROTOCOL (ECHO) v0.1.3.

Highlights

  • Rust-native Discord bot on Poise 0.6 + Serenity 0.12 + Tokio
  • 3 commands: /ping (smoke test), /ask (LLM chat), /mute (moderation, requires MODERATE_MEMBERS)
  • LLM features (OpenRouter-backed): defer-then-edit, token-bucket rate limiting, exponential backoff on 429, sliding-window context
  • Moderation features: SQLite poller for temp-punishments (restart-survival)
  • 25 unit tests, all 6 validation commands PASS
  • ~1,800 lines of Rust across 18 files in src/ + 1 SQL migration

Implementation (10 FIDs)

All FIDs implemented and archived to dev/fids/archive/. Highlights:

  • FID-008 (Provider): Provider trait + OpenRouterProvider + MockProvider for tests. Uses X-OpenRouter-Title header per dev/docs/openrouter-llms.md.
  • FID-005 (Defer): defer_and_run helper using Poise 0.6's ctx.defer() + ctx.say() pattern.
  • FID-006 (Rate Limit): governor token-bucket (GCRA) + exponential backoff with ±20% jitter.
  • FID-007 (Context): Sliding-window LLM context, 20 messages/channel/1h TTL.
  • FID-004 (Poller): SQLite moderation_cases + 60s background poller.
  • FID-010 (Skeleton): Cargo baseline + Poise framework setup.

Audit Results (release-time)

  • All 6 validation commands PASS: cargo build, cargo check, cargo clippy --all-targets -- -D warnings, cargo fmt --check, cargo test (25/25), cargo clean
  • Zero unwrap() / expect() in non-test code
  • Zero TODO / FIXME / todo! / unimplemented! in src/
  • Zero secrets in tracked files (.env properly gitignored)
  • All pub fn wired to consumers (FID-151 call-graph reachability verified)

Configuration (verified at release)

Field Value Source
project.version 0.0.1 Cargo.toml, protocol.config.yaml
protocol.version 0.1.3 matches VERSION file
language rust config
quality.max_file_lines 300 coding-standards/rust.md
quality.max_function_lines 50 coding-standards/rust.md
quality.max_line_length 100 coding-standards/rust.md
perfection_loop.max_iterations 10 ECHO.md Rule #5
perfection_loop.change_threshold 0.10 ECHO.md Rule #1
perfection_loop.convergence_threshold 0.02 ECHO.md Rule #3
session.autonomy_level 3 (Autonomous) ECHO default

Known Limitations → v1.0

  • /mute records the case but does NOT call the Discord API to actually apply the mute (schema has role_id ready for v2)
  • LLM context is in-process only; lost on bot restart (SQLite persistence is v1.1)
  • Process-wide rate limiter (per-user keyed limiting is v1.1)
  • No streaming SSE for long LLM responses (v2)

Roadmap (per README)

  • v1.1: /mute actually mutes, context persistence, more moderation commands, per-user rate limiting
  • v2.0: Full SAVANT memory integration (CortexaDB), soul/personality system, A2A delegation, multi-server sharding, voice channel support, custom skills

See Also