v0.19.0
Agents can finally see the whole wiki
Two fixes to how the MCP tools describe a wiki, from measuring what an agent
actually receives.
list_pages was hiding most of the wiki. It listed only top-level pages —
on a real 215-page wiki that is 18 pages, so 91% was invisible. An agent
that read a page, saw [[Igni]], and checked whether Igni existed was told it
didn't, and would reasonably go create a duplicate. It now takes children:
omit it for top-level only (unchanged, the sidebar depends on it), true or
null for the whole wiki, or ["a-parent"] for one branch. It always reports
children_hidden, so silence is never mistaken for absence, and every row now
carries parent_slug — the raw parent_id integer was meaningless to a caller
that never sees page ids.
get_page now resolves the page's outbound links. Previously wikilinks were
visible only as raw [[syntax]] the agent had to parse itself, which is a trap
with aliases: in [[Edaphos|earth]] the visible word is "earth" and the page is
edaphos, so slugifying the label finds nothing. Each link now comes back with
its target, title, the label the reader sees, and whether it exists —
red links included, since those mark stubs worth writing and save a doomed
fetch. Repeats collapse to one row with a count.
Dependencies
httpx ≥0.28.1, uvicorn ≥0.52.3, anthropic ≥0.122.0, markdown-it-py ≥4.2.0,
xhtml2pdf ≥0.2.17. The two that weren't already installed were verified by
booting the real server (HTTP, static, API, and the /collab websocket) and by
checking the Anthropic streaming surface ai.py depends on.