The serve surface states the map; stale frontmatter stops surfacing - #128
Merged
Conversation
Three new tools — topics(instance), entities(instance), graph(instance) — each a verbatim read of the compiled state/map.json: descriptions, counts, has-page and newest dates on the wire, member id lists left in the artifact, typed edges served in the map's own order with nothing recomputed at call time. A missing map refuses by naming `bin/dex map` (or the next sync); one that will not parse or reshape refuses with the recompile wording. The connect-time instructions open "what does this instance hold?" with the maps, and each read travels with its own next-move footer. Exposure hygiene, one rule: judgment content and provenance surface; pipeline bookkeeping and stale-by-design frontmatter never do. fetch returns the digest's fact body with `signal` lifted to its own Item field; search scans digest bodies only, so a candidate topic name living only in digest frontmatter can neither hit nor snippet (corpus files keep their whole-file scan — frontmatter URLs are provenance, and finding an item by its source is a real search); page returns the body, its `generated:` frontmatter stripped, with title and wikilinks unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Real-scale testing put the whole compiled graph on the wire — five figures of edges, 1.3MB — straight into a chat model's context. The tool now defaults to the topic↔topic core under a 2000-edge cap (every curated wikilink edge kept, the heaviest shared-items ones filling the room left, ties cut on the map's own deterministic order), and states the trim honestly: `total` counts the whole map, and the next-move line names the three parameters that open it up. `around=<name>` serves one name's entire neighborhood — all types, all endpoint kinds, uncapped — refusing an unknown name toward `topics`/`entities`; `min_weight=N` drops shared-items edges below N and composes with everything; `full=true` is the whole graph, uncapped and unrestricted, and contradicts `around` out loud. The map file itself keeps every edge: trimming is read-time only, and `state/map.json` joins the per-instance resources so a resource-capable client pulls the full artifact without it transiting a model's context. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR3 of the instance-map stack (design: #125, on #127). Three new tools —
topics,entities,graph— each a verbatim read ofstate/map.json(counts and typed edges on the wire, member ids stay in the artifact, nothing recomputed at call time), with refusals that name the recompile. Exposure hygiene lands with them:fetchreturns the digest body withsignallifted to a field,searchscans digest bodies only,pagereturns the body — stale-by-design classification frontmatter andgenerated:bookkeeping no longer reach callers. Steering opens "what does this instance hold" with the maps.31 new tests, six pins deliberately moved to the new contract; mutation audit on the changed serve modules (14 holes closed by stronger pins; server tool wiring hand-audited past the decorator trap).
🤖 Generated with Claude Code