chore(v1.1): move stats tools to CLI, add feedback protocol

- Remove get_stats, health_check, run_consolidation from MCP server
- These tools now CLI-only: vestige stats, vestige health, vestige consolidate
- Add feedback protocol to server instructions (promote/demote guidance)
- Update README with CLI Admin Commands section and Feedback Tools table
- Update release note: "8 Cognitive Primitives + 3 CLI Admin Commands"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Sam Valladares 2026-01-26 02:05:06 -06:00
parent a6ba67884d
commit 1b9004f88e
2 changed files with 20 additions and 27 deletions

View file

@ -14,7 +14,7 @@ The only MCP memory server built on cognitive science. FSRS-6 spaced repetition,
> **Released January 2025** — 11 hours after v1.0 > **Released January 2025** — 11 hours after v1.0
### Tool Consolidation: 29 → 8 ### Tool Consolidation: 29 → 8 Cognitive Primitives + 3 CLI Admin Commands
| Old Tools | New Tool | Why Better | | Old Tools | New Tool | Why Better |
|-----------|----------|------------| |-----------|----------|------------|
| `recall`, `semantic_search`, `hybrid_search` | `search` | Hybrid is always best—no decision needed | | `recall`, `semantic_search`, `hybrid_search` | `search` | Hybrid is always best—no decision needed |
@ -22,7 +22,8 @@ The only MCP memory server built on cognitive science. FSRS-6 spaced repetition,
| `remember_pattern`, `remember_decision`, `get_codebase_context` | `codebase` | Unified codebase memory | | `remember_pattern`, `remember_decision`, `get_codebase_context` | `codebase` | Unified codebase memory |
| 5 separate intention tools | `intention` | Familiar action-based API | | 5 separate intention tools | `intention` | Familiar action-based API |
### New CLI Binary ### CLI Admin Commands (Moved from MCP)
Stats and maintenance removed from MCP to minimize context window usage:
```bash ```bash
vestige stats # Memory statistics vestige stats # Memory statistics
vestige stats --tagging # Retention distribution vestige stats --tagging # Retention distribution
@ -32,6 +33,14 @@ vestige consolidate # Run memory maintenance
vestige restore <file> # Restore from backup vestige restore <file> # Restore from backup
``` ```
### Feedback Tools (Preference Learning)
| Tool | When to Use |
|------|-------------|
| `promote_memory` | User confirms a memory was helpful |
| `demote_memory` | User corrects a hallucination or says memory was wrong |
Claude automatically uses these based on user feedback—no permission needed.
### Documentation ### Documentation
- **30+ FAQ entries** with verified neuroscience claims - **30+ FAQ entries** with verified neuroscience claims
- **Storage modes**: Global, per-project, multi-Claude household - **Storage modes**: Global, per-project, multi-Claude household

View file

@ -103,8 +103,10 @@ impl McpServer {
instructions: Some( instructions: Some(
"Vestige is your long-term memory system. Use it to remember important information, \ "Vestige is your long-term memory system. Use it to remember important information, \
recall past knowledge, and maintain context across sessions. The system uses \ recall past knowledge, and maintain context across sessions. The system uses \
FSRS-6 spaced repetition to naturally decay memories over time - review important \ FSRS-6 spaced repetition to naturally decay memories over time. \
memories to strengthen them.".to_string() \n\nFeedback Protocol: If the user explicitly confirms a memory was helpful, use \
promote_memory. If they correct a hallucination or say a memory was wrong, use \
demote_memory. Do not ask for permission - just act on their feedback.".to_string()
), ),
}; };
@ -180,22 +182,8 @@ impl McpServer {
description: Some("Mark a memory as reviewed with FSRS rating (1=Again, 2=Hard, 3=Good, 4=Easy). Strengthens retention.".to_string()), description: Some("Mark a memory as reviewed with FSRS rating (1=Again, 2=Hard, 3=Good, 4=Easy). Strengthens retention.".to_string()),
input_schema: tools::review::schema(), input_schema: tools::review::schema(),
}, },
// Stats and maintenance // NOTE: Stats/maintenance tools (get_stats, health_check, run_consolidation)
ToolDescription { // moved to CLI-only in v1.1. Use: vestige stats, vestige health, vestige consolidate
name: "get_stats".to_string(),
description: Some("Get memory system statistics including total nodes, retention, and embedding status.".to_string()),
input_schema: tools::stats::stats_schema(),
},
ToolDescription {
name: "health_check".to_string(),
description: Some("Check health status of the memory system.".to_string()),
input_schema: tools::stats::health_schema(),
},
ToolDescription {
name: "run_consolidation".to_string(),
description: Some("Run memory consolidation cycle. Applies decay, promotes important memories, generates embeddings.".to_string()),
input_schema: tools::consolidate::schema(),
},
// Codebase tools (deprecated - use unified 'codebase' tool) // Codebase tools (deprecated - use unified 'codebase' tool)
ToolDescription { ToolDescription {
name: "remember_pattern".to_string(), name: "remember_pattern".to_string(),
@ -516,11 +504,9 @@ impl McpServer {
} }
// ================================================================ // ================================================================
// Stats and maintenance (not deprecated) // Stats and maintenance - REMOVED from MCP in v1.1
// Use CLI instead: vestige stats, vestige health, vestige consolidate
// ================================================================ // ================================================================
"get_stats" => tools::stats::execute_stats(&self.storage).await,
"health_check" => tools::stats::execute_health(&self.storage).await,
"run_consolidation" => tools::consolidate::execute(&self.storage).await,
// ================================================================ // ================================================================
// Neuroscience tools (not deprecated, except get_memory_state above) // Neuroscience tools (not deprecated, except get_memory_state above)
@ -843,9 +829,7 @@ mod tests {
assert!(tool_names.contains(&"get_knowledge")); assert!(tool_names.contains(&"get_knowledge"));
assert!(tool_names.contains(&"delete_knowledge")); assert!(tool_names.contains(&"delete_knowledge"));
assert!(tool_names.contains(&"mark_reviewed")); assert!(tool_names.contains(&"mark_reviewed"));
assert!(tool_names.contains(&"get_stats")); // NOTE: get_stats, health_check, run_consolidation moved to CLI in v1.1
assert!(tool_names.contains(&"health_check"));
assert!(tool_names.contains(&"run_consolidation"));
assert!(tool_names.contains(&"set_intention")); assert!(tool_names.contains(&"set_intention"));
assert!(tool_names.contains(&"check_intentions")); assert!(tool_names.contains(&"check_intentions"));
assert!(tool_names.contains(&"complete_intention")); assert!(tool_names.contains(&"complete_intention"));