From a44ccde845c4d2340afec2a53d468a268aad45be Mon Sep 17 00:00:00 2001 From: root Date: Sun, 3 May 2026 02:01:18 -0500 Subject: [PATCH] =?UTF-8?q?observer:=20overseer=20fallback=20label=20?= =?UTF-8?q?=E2=86=92=20qwen3.5:latest=20(matches=20reverted=20route)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirror of yesterday's execution_loop overseer revert (commit d054c0b). The observer logs an "overseer:" endpoint string for analysis; when row.model is missing it falls back to a hardcoded label. PR #13 set that fallback to "claude-opus-4-7" — but the route now goes to local Ollama qwen3.5:latest, so the label was wrong. Trivial one-line fix, no behavior change. Just keeps observer's endpoint string honest when older rows from the cloud-routing window get re-analyzed. End-to-end verification of the local hot path (post-revert): BEFORE /v1/usage by_provider: [] AFTER /v1/usage by_provider: [{"k":"ollama","v":2}] → /v1/iterate fired 2 chat calls, both to local ollama → ZERO cloud requests (no kimi/openrouter/opencode/ollama_cloud) → API meter on cloud providers stays at 0 for customer requests Co-Authored-By: Claude Opus 4.7 (1M context) --- mcp-server/observer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mcp-server/observer.ts b/mcp-server/observer.ts index 7085b0c..5273b7f 100644 --- a/mcp-server/observer.ts +++ b/mcp-server/observer.ts @@ -771,7 +771,7 @@ async function tailOverseerCorrections(): Promise { try { row = JSON.parse(line); } catch { continue; } const op: ObservedOp = { timestamp: row.created_at ?? new Date().toISOString(), - endpoint: `overseer:${row.model ?? "claude-opus-4-7"}`, + endpoint: `overseer:${row.model ?? "qwen3.5:latest"}`, input_summary: `${row.task_class ?? "?"}: ${row.reason ?? "escalation"}`, // Correction itself is neither success nor failure — it's a // mitigation attempt. We mark success=true so analyzeErrors