Large llms-full.txt feeds repeat section headings, which made document
identity hashes collide within one source and abort indexing on the
documents primary key. Include each document's ordinal in the identity.
Replace the abandoned llms-txt-mcp/Chroma docs backend with an in-repo
MCP service: SQLite WAL + FTS5 + sentence-transformer embeddings,
transactional source replacement, persisted state across restarts,
singleflight refresh with conditional requests, hybrid lexical/semantic
ranking with exact-duplicate collapse, source/host filters, and
explicit-by-default content retrieval. Add docs_rebuild and a
docs-rebuild CLI command.
Add deterministic llms-full.txt snapshot generation for machine-local
menus with hash-validated provenance manifests; lifecycle commands
promote a local menu to its snapshot only when the manifest validates.
Switch public source profiles to content-bearing llms-full.txt feeds.
Improve web search: bounded provider fallback with per-attempt
diagnostics and cancellation, an optional Brave Search API provider,
strict SearXNG engine selection, capped link/media extraction, and a
real engine=browser renderer that routes every request through the
existing SSRF vetting while blocking WebSockets, non-GET traffic, and
private destinations.
Extend release checks with offline unit suites and isolated candidate
container tests for both images.
The built-in OpenCode 'websearch' tool routes through Exa AI's hosted
MCP service and surfaces with tool names like parallel_web_search and
web_search_exa. Without explicit guidance the model picks per turn
between Exa and our SearXNG-backed context-web-search.
Tell agents to prefer Context Kit's local search so queries stay on
the user's machine through SearXNG.
Three local MCP servers for coding agents, designed for Claude Code
and OpenCode:
- context-web-search: SearXNG-backed web search and URL fetch
- context-docs: semantic search over curated llms.txt docs
- context-repomix: pack local or remote repos into AI context
Defaults are local-first: SearXNG binds to 127.0.0.1, no hosted API
keys are required, and Repomix mounts only the current project read-only.