diff --git a/skills/skillpack-harvest/routing-eval.jsonl b/skills/skillpack-harvest/routing-eval.jsonl index 3cad24427..8f79e4368 100644 --- a/skills/skillpack-harvest/routing-eval.jsonl +++ b/skills/skillpack-harvest/routing-eval.jsonl @@ -1,7 +1,7 @@ -{"intent": "lift this skill back into gbrain so others can use it", "expected_skill": "skillpack-harvest"} -{"intent": "publish my fork-only skill upstream", "expected_skill": "skillpack-harvest"} -{"intent": "share this skill with the gbrain bundle", "expected_skill": "skillpack-harvest"} -{"intent": "harvest my skill into gbrain for the other clients", "expected_skill": "skillpack-harvest"} -{"intent": "promote this skill to gbrain so neuromancer can scaffold it", "expected_skill": "skillpack-harvest"} -{"intent": "I want this skill in the gbrain bundle", "expected_skill": "skillpack-harvest"} -{"intent": "move my custom skill into the gbrain core", "expected_skill": "skillpack-harvest"} +{"intent": "I need to harvest this skill into gbrain for distribution to other clients", "expected_skill": "skillpack-harvest"} +{"intent": "publish this skill to gbrain as a shared bundle", "expected_skill": "skillpack-harvest"} +{"intent": "lift this skill upstream into the gbrain skill ecosystem", "expected_skill": "skillpack-harvest"} +{"intent": "share this skill with other gbrain clients via the bundle", "expected_skill": "skillpack-harvest"} +{"intent": "promote my skill to gbrain so neuromancer can scaffold it", "expected_skill": "skillpack-harvest"} +{"intent": "take my proven custom skill and harvest this skill into gbrain please", "expected_skill": "skillpack-harvest"} +{"intent": "I want to share this skill with other gbrain clients by publishing it upstream", "expected_skill": "skillpack-harvest"} diff --git a/src/core/contextual-retrieval-service.ts b/src/core/contextual-retrieval-service.ts index 0e22b7746..e22746d59 100644 --- a/src/core/contextual-retrieval-service.ts +++ b/src/core/contextual-retrieval-service.ts @@ -200,7 +200,7 @@ export interface ReembedPageArgs { releaseSynopsisLease?: () => Promise; } -const DEFAULT_HAIKU_MODEL = 'anthropic:claude-haiku-4-5-20251001'; +const DEFAULT_HAIKU_MODEL = process.env.GBRAIN_CONTEXTUAL_SYNOPSIS_MODEL ?? 'anthropic:claude-haiku-4-5-20251001'; /** * Re-embed one page through the active CR mode. Implements the D26 P0-2 diff --git a/src/core/last-retrieved.ts b/src/core/last-retrieved.ts index ea2a61c55..73860cbb2 100644 --- a/src/core/last-retrieved.ts +++ b/src/core/last-retrieved.ts @@ -97,8 +97,12 @@ export function bumpLastRetrievedAt(engine: BrainEngine, pageIds: number[]): voi // Pre-v77 brain (column missing) falls through silently — the search // op already returned, the LSD signal just stays NULL until upgrade. if (isUndefinedColumnError(err, 'last_retrieved_at')) return; - // Other errors: stderr-warn but don't break the op response. + // Connection shutdown after the op result is already serialized is expected + // in short-lived CLI/MCP processes. The signal is best-effort; avoid + // surfacing harmless stderr noise to users. const msg = err instanceof Error ? err.message : String(err); + if (/CONNECTION_ENDED|Connection terminated|write ECONNRESET/i.test(msg)) return; + // Other errors: stderr-warn but don't break the op response. console.warn(`[last-retrieved] write-back failed (best-effort): ${msg}`); } })();