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>