Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GmpYHPSLGmXGZMyLpn2Lbe
58 lines
3.4 KiB
Markdown
58 lines
3.4 KiB
Markdown
# TODO
|
|
|
|
Live state as of 2026-09-10. Everything not listed here is deployed and green.
|
|
|
|
## Open
|
|
|
|
- [ ] **Basic index has no reader.** `MilvusVectorStore.search()` exists now, but no
|
|
tool calls it. Decide where the query path lives: put pymilvus into the
|
|
deliberately-lean `nextcloud-basic-mcp` server image, or expose a query API
|
|
from the indexer container. Nothing can read that index until this is done.
|
|
Source: `/home/danvics/docker/nextcloud-basic-mcp`
|
|
- [ ] **Multi-collection, ped-ai half.** The MCP side is deployed
|
|
(`clinical_semantic_search(collection=…)` + `clinical_list_collections`,
|
|
allowlisted by `MILVUS_COLLECTIONS`). ped-ai still searches one collection
|
|
per request. Needs an admin setting for which collections to search, then
|
|
fan-out and merge — `dedupeSources` in `src/utils/clinicalRetrieval.js`
|
|
already merges and renumbers. See `clinical-assist/COLLECTIONS.md`.
|
|
- [ ] **Confirm mail indexing end to end.** Six separate breaks are fixed and the
|
|
scan now reaches mail, but the file pass has not finished a full cycle
|
|
since the Milvus rebuild, so no mail has been indexed yet. Watch for
|
|
`[SCAN-*] Mail messages: N seen, M queued`.
|
|
- [ ] **Apply the restored clinical vector-store compose.** Written, committed and
|
|
validated at `/home/danvics/docker/nextcloud-mcp-server`, deliberately NOT
|
|
applied — `up -d` recreates the live clinical Milvus. Owner's call when.
|
|
|
|
## Done since this file was written
|
|
|
|
- Storage stack is under version control (`/home/danvics/docker/ped-ai-storage`),
|
|
secrets verified excluded, with a README recording the misleading project names
|
|
and the MinIO/separate-etcd requirements.
|
|
- Both Milvus stores keep objects in MinIO; verified end to end on the basic side
|
|
(16 objects in the bucket, rows queryable, collection Loaded).
|
|
- The operator image is built from source (`Dockerfile.operator`), so the drifted
|
|
`check.py` that broke image generation can no longer be run by accident.
|
|
|
|
## Worth knowing
|
|
|
|
- **Four repos were rescued from container images today**: `nextcloud-basic-mcp`,
|
|
`clinical-assist`, the deleted `nextcloud-mcp-server` compose file, and the
|
|
operator's `check.py` drift. Prefer building from a repo over a live container.
|
|
- **Two Milvus instances, historically misleading names.**
|
|
Clinical index = `nextcloud-mcp-server-milvus-1` (MinIO-backed, collection
|
|
`mcp_bge_m3_1024`). Nextcloud basic index = `ped-ai-storage-basic-milvus-1`
|
|
(db `basic`, collection `basic_bge_m3_1024_v2`).
|
|
- **Embedded etcd is unusable with authorization on.** Every non-root Milvus user
|
|
failed `etcdserver: invalid auth token`. Both stores now run a separate etcd
|
|
container, matching the profile that always worked.
|
|
- **Both Milvus stores now keep objects in MinIO**, matching what clinical always
|
|
did. `COMMON_STORAGETYPE=local` wrote segment files relative to the working
|
|
directory, so a recreate destroyed them while etcd kept referencing them and the
|
|
collection hung at Loading forever. S3 semantics also mean either store can be
|
|
pointed at a managed bucket without touching Milvus — which is what makes a
|
|
Terraform-managed deployment straightforward.
|
|
- **Milvus object-store credentials live in `milvus-user.yaml`** in the protected
|
|
secrets dir, not in the compose, because Milvus has no file-based option for
|
|
them and the compose should stay reviewable.
|
|
|
|
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|