Skip to content

Round 9: harden MCP outputs, runtime recovery, and graph text privacy - #132

Merged
Yasou13 merged 14 commits into
mainfrom
mvp/round-9
Oct 27, 2026
Merged

Yasou13 merged 14 commits into
mainfrom
mvp/round-9

Conversation

@Yasou13

@Yasou13 Yasou13 commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Round 9 fixes MCP error propagation and unknown-document responses, removes superseded evidence from context mutations, skips adaptive LLM planning when extraction is disabled, and recovers interrupted projection and dispatch work on restart. Direct stdio tools execute without a local control-plane database; MCP outputs wrap stored evidence and include the recommended answering-LLM prompt.

Graph assertion text now stays in SQLite, with graph ranking reading evidence from the authorized SQLite map. The documented v0.9 limitation is accepted by the owner: offline rebuilds can leave live document fragments in Kùzu file slack; after a purge requiring complete removal, rebuild again and retire old generations.

Validation at be496cd: final full R9-opus-final gate PASS (lock, dependency sync, Ruff, mypy, layer imports, local suite: 1671 passed / 1 skipped / 48 deselected; MCP suite: 10 passed / 1 skipped). Final checker verdict: READY.

Pre-merge security fix: e435fba updates only the existing transitive msgpack lock from 1.2.1 to 1.2.3 for CVE-2026-114613 (GHSA-j586-36cw-2gc2). All other locked packages and lock metadata are unchanged. Patched C-extension roundtrip, strict-map rejection with bounded memory, existing Locust load-test import, dependency compatibility and the R9-msgpack quick gate pass. Final R9-premerge full gate PASS at e435fba: lane (36 files), lock, sync, Ruff, mypy, layer imports, 1671 local tests and 10 MCP tests. GitHub: all 23 active checks PASS; legacy-static-baseline conditionally skipped.

Yasou13 and others added 13 commits October 27, 2026 12:37
… unknown catalog IDs

aiosqlite raises a plain ValueError for a closed connection, so a storage
failure became a 404 'unknown document'. The route now catches
CatalogIdentityNotFoundError only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oked like a wrapper; always wrap

Stored text that starts with the open tag and ends with the close tag was
returned unescaped and without the trust header, so a document could place
instructions outside the untrusted boundary (invariant 6).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…k bytes (owner accepts for v0.9)

The offline rebuild reads assertion pages from SQLite, and Kùzu can write
reused process memory into unused file bytes, so a later purge may not
remove that text from the graph file. Owner decision: accept and document
for v0.9; a graph-off switch follows in Round 10.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 27, 2026 20:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

The GitHub dependency scan flags msgpack 1.2.1 through the existing loadtest extra. Update only that locked package to the patched version; retain all other dependency versions.
@Yasou13
Yasou13 merged commit 86d3b92 into main Oct 27, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants