SIGN IN SIGN UP

release: v2.3.8

108 merges since v2.3.7. The changelog section already carried most of them;
three pieces of work had landed without an entry and are added here:

- every MCP tool response is bounded now, with untruncated totals and a
  "showing N of M" summary, so a short answer is distinguishable from a
  truncated one (#849, #853, #887; four query tools remain, tracked in #888);
- a repository is one graph however its root is spelled, and a reconciliation
  anchored to a different root is refused rather than emptying the graph
  (#889);
- a repository reached through a symlinked path is watched and indexed
  instead of dropping every event (#892).

Verified before cutting: 2985 passed / 9 skipped / 2 xpassed, ruff and mypy
clean, the VS Code extension compiles and type-checks, `python -m build`
produces 2.3.8 artifacts, and a 19-step end-to-end CLI run (build, status,
incremental update, query, detect-changes, wiki, visualize, forget, registry,
relative-root update, MCP stdio handshake with tools/list and tools/call,
install and uninstall) passes on a scratch repository.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
T
Tirth Kanani committed
2c2487ccbbc2b9198a76834368156f3d0ac1f221
Parent: 8c71aea