projecta-rrr 1.21.1 → 1.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,47 @@ All notable changes to RRR will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
+
## [1.21.2] - 2026-04-18
|
|
8
|
+
|
|
9
|
+
**Integration fix — MCP tool surface now actually callable.**
|
|
10
|
+
|
|
11
|
+
v1.21.0/1.21.1 shipped the tool implementations (Phase 76-02/03/04) but
|
|
12
|
+
`server.js` never imported the tool-registry, so `createMcpServer()` returned
|
|
13
|
+
a bare Server with zero handlers for `tools/list` / `tools/call`. Caught
|
|
14
|
+
during live dogfood smoke against the deployed stack.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- **Wire tool-registry into server.js** — build registry once at boot with all
|
|
19
|
+
6 tools (`semantic_search`, `index_status`, `list_repos`, `search_sessions`,
|
|
20
|
+
`index_repo`, `sync_repo`) and shared deps (pool, Voyage client, BullMQ
|
|
21
|
+
queue, query-embed cache). Logs integrity-hash for debugging.
|
|
22
|
+
- **teamId context plumbing** — `createMcpServer({ teamId, registry })` now
|
|
23
|
+
closes over teamId per-session and `tool-registry.attachToServer` accepts
|
|
24
|
+
a `getContext` callback that injects `{ teamId, reqContext: { teamId } }`
|
|
25
|
+
into every handler call. Fixes both handler conventions (5 tools read
|
|
26
|
+
`req.teamId`, semantic_search reads `ctx.reqContext.teamId`).
|
|
27
|
+
- **Session-scoped server cache** — MCP SDK tracks init state per `Server`
|
|
28
|
+
instance; creating a fresh server per HTTP request returned
|
|
29
|
+
"Server not initialized" on every 2nd+ call. Transport now caches
|
|
30
|
+
`{server, transport}` per session-id, evicts on `DELETE /mcp` or
|
|
31
|
+
`onsessionclosed`.
|
|
32
|
+
- **Postgres grants for SECURITY DEFINER functions** — `lookup_mcp_session`
|
|
33
|
+
(owned by `rrr_auth_definer`) needed SELECT on `mcp_sessions`; `neondb_owner`
|
|
34
|
+
needed EXECUTE on both `lookup_mcp_session` + `lookup_token_by_prefix`.
|
|
35
|
+
Applied as one-off grants (documented in SHIP-RUNBOOK for idempotency).
|
|
36
|
+
|
|
37
|
+
### Verified
|
|
38
|
+
|
|
39
|
+
- `tools/list` returns the full 6-tool registry with integrity hash
|
|
40
|
+
- `tools/call semantic_search` against live Neon/Voyage/HNSW: returns
|
|
41
|
+
semantically correct top-K matches (cosine similarity 0.72 for
|
|
42
|
+
"queue.add" query against test fixtures that mock that exact call)
|
|
43
|
+
- Session persistence across multiple HTTP requests works (cache hit)
|
|
44
|
+
- Latency: 837ms first call (cold Voyage embed + HNSW warmup);
|
|
45
|
+
subsequent calls should be sub-200ms with query-embed LRU hits.
|
|
46
|
+
Full P95 measurement is still a Phase 78 D.5 operator step.
|
|
47
|
+
|
|
7
48
|
## [1.21.1] - 2026-04-18
|
|
8
49
|
|
|
9
50
|
**Patch release — deploy-time fixes from first live Fly + Neon ingest.**
|
package/package.json
CHANGED