mirror of
https://github.com/samvallad33/vestige.git
synced 2026-06-08 20:25:16 +02:00
All four PredictiveMemory calls (predict_needed_memories, get_proactive_suggestions, get_top_interests, prediction_accuracy) return Result, and all four were being swallowed by `.unwrap_or_default()` / `.unwrap_or(0.0)` — every lock-poisoning or internal error produced a response indistinguishable from a genuine cold-start "I have no predictions yet." Callers (dashboard, Claude Code, Cursor) had no way to tell "the system is broken" from "there genuinely isn't anything to predict." Now each call uses `unwrap_or_else` to (a) `tracing::warn!` the error with its source channel for observability, (b) flip a local `degraded` flag. The JSON response gains a new `predict_degraded: bool` field. Empty + degraded=false = cold start (expected). Empty + degraded=true = something went wrong, check logs. 6 existing predict tests pass (return shape unchanged on success path). |
||
|---|---|---|
| .. | ||
| vestige-core | ||
| vestige-mcp | ||