LearnNewsExamplesServices
Frontmatter
id17066
titleKB and MC gate their diagnostic reads behind full operability, so an embedding outage blinds the surface needed to diagnose it
stateClosed
labels
bugaimodel-experienceagent-os
assigneesneo-gpt
createdAtAug 13, 2026, 10:17 PM
updatedAtAug 14, 2026, 8:46 AM
githubUrlhttps://github.com/neomjs/neo/issues/17066
authorneo-opus-vega
commentsCount1
parentIssue17072
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtAug 14, 2026, 8:46 AM

KB and MC gate their diagnostic reads behind full operability, so an embedding outage blinds the surface needed to diagnose it

Closed Backlog/active-chunk-15 bugaimodel-experienceagent-os
neo-opus-vega
neo-opus-vega commented on Aug 13, 2026, 10:17 PM

Context

During a live external-plane embedding outage on 2026-08-13, Knowledge Base refused list_documents and get_deployment_state_snapshot because aggregate health included a failed embedding probe. Storage and the orchestrator deployment-state bridge remained readable, so the failed dependency did not prevent either requested read.

The same incident showed the correct opposite case: semantic queries genuinely need the embedding provider and must continue to refuse while it is unavailable.

The Problem

Knowledge Base already has a per-tool health-gate exemption seam, Server.getHealthExemptTools(), but three diagnostic reads are missing from it:

  • list_documents reads the tenant-scoped Chroma collection through DocumentService.listDocuments. It does not embed.
  • get_deployment_state_snapshot reads the orchestrator snapshot file.
  • inspect_deployment dispatches to the same snapshot-file reader.

As a result, an embedding-only outage blinds the existing surfaces needed to determine corpus coverage and deployment state.

Memory Core is not part of the remaining implementation. #14124 and PR #14162 already repaired the equivalent catch-22 there by extending its existing exemption list; current Memory Core keeps embedding queries gated and its non-embedding diagnostics available.

Fix Shape

Extend the Knowledge Base Server.getHealthExemptTools() list with:

  • list_documents
  • get_deployment_state_snapshot
  • inspect_deployment

Reuse the existing BaseServer dispatch policy. Do not add a second dependency registry, a new MCP tool, or a new partial-response schema.

The existing tool output contracts stay unchanged. If storage or the snapshot file itself is unavailable, the handler still returns its specific failure; the exemption only prevents an unrelated embedding-health failure from blocking dispatch.

Acceptance Criteria

  • With the embedding health gate failing, list_documents dispatches and returns its existing result when storage is live.
  • Under the same condition, get_deployment_state_snapshot and inspect_deployment dispatch through their existing file-read helper.
  • query_documents and ask_knowledge_base still refuse before dispatch because they genuinely require embeddings.
  • The regression fixture proves both halves at the BaseServer request boundary: diagnostic reads bypass; an embedding query remains gated.
  • No existing MCP response schema changes.

Out of Scope

  • Repairing the embedding provider or provider lane.
  • Memory Core health-gate changes; its equivalent diagnostic exemption already exists.
  • General classification of every read-like KB tool.
  • New MCP tools or a generic dependency-policy framework.

Avoided Traps

  • Do not globally weaken health status. The embedding outage remains real and visible.
  • Do not exempt semantic queries that embed at request time.
  • Do not annotate successful diagnostic payloads with a new ad hoc partial shape; unchanged output plus honest handler failures keeps the contract stable.

Evidence and Precedent

Authored-by: @neo-opus-vega. Intake correction and implementation by @neo-gpt.

tobiu referenced in commit f70e3c4 - "fix(ai): keep KB diagnostics available during embedding outages (#17066) (#17089)" on Aug 14, 2026, 8:46 AM
tobiu closed this issue on Aug 14, 2026, 8:46 AM