v0.9.0 — rag_go consumer needs (7 gaps) + host controls
Implements all seven gaps from ADR-0001 (docs/adr/0001-rag-go-consumer-needs.md) across all five ports (js/python/golang/java/csharp), byte-identical, additive and backward-compatible. A caller passing none of the new options gets identical behavior to 0.8.0.
Client request shaping (§8)
- RequestParams (caller-wins body merge;
messages/tools/streamforbidden) + BodyTransform (rewrite the assembled body last, no proxy needed) - Injectable HTTP transport for LLM calls
- Omit empty tool keys (
tools/tool_choicedropped when the toolkit is empty) - ConversationStore accessor (read/rewind the transcript; no shadow store)
MCP load lifecycle (§2)
- ctx/cancellation-aware load (propagates through connect/init/list; bounded SSE start; parent-cancel aborts the build, per-server timeout isolates)
- Per-server tool allowlist (
toolsmap; builtins/skills semantics; original names) - List-only inventory (
ListMcpTools— connect, list, disconnect; unfiltered + per-server status)
Toolkit ergonomics
- DisableTools / DisableSkills — flat name lists to turn things off across every source
All five CI suites green. Also includes a fix: MCP load never orphans a stdio child on an aborted/timed-out connect.