vestige/Cargo.toml
Sam Valladares 0474c6aafa feat(config): Phase 2 Configurable Output — vestige.toml + output profiles (v2.1.24)
Add an optional, local-first `vestige.toml` config file (loaded from the active
data directory alongside vestige.db) that lets users control the default shape
and size of high-traffic MCP responses without recompiling and without a cloud
service.

- New `vestige-core::config` module: `VestigeConfig` / `OutputConfig` /
  `OutputProfile` with a dependency-free, lenient minimal-TOML parser for the
  `[defaults]` table (detail_level, limit, profile).
- Output profiles: lean | default | audit | research. `default` reproduces
  pre-2.1.24 behavior byte-for-byte so existing users see no change.
- Precedence (per call): explicit MCP param > config file > built-in default.
- Wired into search, memory_timeline, codebase (get_context), session_context.
  Each echoes the active `profile`; `lean` masks scores/timestamps via a shared
  `apply_output_masks` helper.
- McpServer loads config once at construction from storage.data_dir().
- Tests: config precedence/profile unit tests in core (10) + per-tool precedence
  and lean-masking tests. Full workspace suite green, clippy -D warnings clean,
  dashboard check + build green.
- Docs: new "Output Configuration (vestige.toml)" section in docs/CONFIGURATION.md
  and CHANGELOG 2.1.24 entry. Version bumped 2.1.23 -> 2.1.24.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 16:04:41 -05:00

37 lines
738 B
TOML

[workspace]
resolver = "2"
members = [
"crates/vestige-core",
"crates/vestige-mcp",
"tests/e2e",
]
exclude = [
"fastembed-rs",
]
[workspace.package]
version = "2.1.24"
edition = "2024"
license = "AGPL-3.0-only"
repository = "https://github.com/samvallad33/vestige"
authors = ["Sam Valladares"]
[workspace.dependencies]
# Share deps across workspace
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1", features = ["v4", "serde"] }
tracing = "0.1"
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true
opt-level = "z"
[profile.dev]
opt-level = 1