vestige/crates
Sam Valladares e3378316ed feat(mcp): consolidate graph/assoc/predict into graph (4→1)
Tool Consolidation v2.2.0, Layer 1 commit 4/6 (3b). Advertised tools 24 → 21.

Folds explore_connections + predict + memory_graph + composed_graph into one
action-dispatched tool:

  action ∈ {chain, associations, bridges, predict, memory_graph,
            recent, get, memory, neighbors, never_composed, bounty_mode, label}

- Transparent facade: each action forwards the same args envelope to the
  existing handler, which re-reads its own discriminator/params. No underlying
  arg struct uses deny_unknown_fields, so cross-fields are ignored.
- All actions read-only except `label` (the one mutator), which is logged for
  audit via tracing::info!(event_id, outcome_type).
- outcome_type enum sourced from composed_graph::OUTCOME_TYPES (now pub(crate))
  rather than re-listed, so the vocabulary stays single-sourced.
- All 4 old names remain hidden warn!+redirect aliases (removed v2.3.0).
- Size annotation: graph=250_000 (memory_graph layout + bounty_mode pagination),
  kept in sync across loop, helper, and both annotation tests.
- Tests: count 24→21, 4 negatives, test_graph_actions_and_aliases exercising
  read-only actions + aliases (incl. the memory_graph facade branch).

Note: the design draft mislabeled graph::execute as sync; it is `pub async fn`.
The per-commit build gate caught it — the facade awaits it correctly.

Gates: cargo test --workspace, cargo clippy -D warnings — clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 18:16:16 -05:00
..
vestige-core fix(core): re-enable usearch fp16lib to unbreak Windows MSVC build (#94) 2026-06-22 01:19:40 -05:00
vestige-mcp feat(mcp): consolidate graph/assoc/predict into graph (4→1) 2026-06-28 18:16:16 -05:00