Files
Jarvis/App/Boot
james.maesandClaude Opus 4.7 740bed4cbf fix(round-4): tag-agnostic ollama probe + mcp probe counts in-process tools
Two false-positive degraded reports surfaced during the second
Round 4 dogfood run:

1. Ollama probe was exact-string matching against required model
   names. `requiredModels` had `"nomic-embed-text"` (no tag), but
   `/api/tags` returns `"nomic-embed-text:latest"` (with default
   tag) — so the probe reported "missing models: nomic-embed-text"
   even after `ollama pull` succeeded. Fix: when a required name
   has no `:tag`, accept any tag (`name == required OR
   name.hasPrefix(required + ":")`). Required names that DO
   include a tag (e.g., `qwen3.6:latest`) keep their strict match.

2. MCP probe was reading ONLY `runtime.client.registeredToolNames()`
   — the stdio side (3 helpers: get_clipboard, get_time,
   run_applescript). The other 4+ in-process tools (self-knowledge
   + memory) live in `InProcessToolRegistry` and are routed
   through `InProcessAwareToolDispatcher` (commit 1b7fb81's B-01b
   fix). Probe now reads both registries, unions the names, and
   reports the combined count. Evidence line breaks out stdio vs
   in-process counts so the operator can see the split.

Verified: app build clean, app target compiles. Re-launch should
show ollama=ok (all 3 models present) and mcp=ok (8 tools after
self-knowledge tools register at install step 15).

The Toby fix verification mid-dogfood: the model received the
degradation summary in its system prompt and truthfully reported
"my memory subsystem is currently degraded (nomic-embed-text is
missing)" instead of yesterday's fake "Got it" promise. Round 4
slice 3 confirmed working end-to-end.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 10:29:58 -05:00
..