Repository navigation
v1.1.1 — final pre-freeze release of footprinter-cli. Lands the MCP context-contract work plus a configurable read-path size cap, and hardens VIEWER governance across every excerpt path.
Features
- Standardize the MCP excerpt/context contract with provenance fields
- Make the MCP read-path size cap (500 KB) configurable
- Strip governance fields from VIEWER results via denylist
- Surface
content_snippetsas a default-off opt-in in setup - Re-derive the chats excerpt from message content
- Surface
content_previewon the keyword file search path - Widen semantic file results to the full chunk plus top-N chunks
- Add a vector-read path: matched chunk plus neighbors by chunk id
- Super-entity curated context from Markdown files (uniform
context_path) - Wire the client curated-context slug convention under
get_home() - Harden curated-context resolution: size cap, path confinement, VIEWER exposure, error logging
- Cap
max_chunks_per_fileand document the chunks-shape divergence
Fixes
- Gate VIEWER content on the file excerpt paths (keyword + FTS5 fallback)
- Gate per-message visibility/access in the chat excerpt (via canonical resolvers)
- Make the curated-context exposure gate fail closed
- Strip governance fields on the semantic VIEWER path
- Bound
footprinter_readoutput to the MCP payload ceiling - Byte-budget the
footprinter_readbound for multibyte content - Corroborate read-path truncation with
size_bytesat the cap boundary - Trim
build_excerptto a word boundary on the over-budget path - Loop-guard the arch re-exec in
smoke.sh,cli_verify.sh, and the release verify scripts
Other Changes
- perf: bound the chat message-excerpt fetch (avoid N+1 + unbounded concat)
- refactor: rename the MCP config "snippet" → "config block"
- docs: document the MCP context contract in shipped docs
- test: regression guards for governance fields, content_snippets persistence, and the arch re-exec loop guard