docs: record the mail fixes and the collection rename

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Daniel 2026-09-10 17:42:30 +02:00
parent 846143ebe5
commit 596fd897f6

41
TODO.md
View file

@ -43,26 +43,27 @@ and green (674 tests, three consecutive clean runs).
per request. Needs an admin setting for which collections to search, then per request. Needs an admin setting for which collections to search, then
fan-out and merge — `dedupeSources` in `src/utils/clinicalRetrieval.js` fan-out and merge — `dedupeSources` in `src/utils/clinicalRetrieval.js`
already merges and renumbers. See `clinical-assist/COLLECTIONS.md`. already merges and renumbers. See `clinical-assist/COLLECTIONS.md`.
- [ ] **Confirm mail indexing end to end.** Six separate breaks are fixed, and - [x] **Mail indexing works.** It was never reached: mail ran last, after nine
mail is enabled (`BASIC_INDEXING_MAIL_ENABLED=true`), but no mail has been other sources, and Tables alone is thousands of rows at about a second
indexed yet: the file pass was still working through 472 large PDFs (68 each. Mail leads now — it is the only bounded source (identities only,
done in six hours, some over 1,500 chunks each) and mail runs after it. capped by `BASIC_INDEXING_MAIL_MAX_MESSAGES`, bodies left to the
On 2026-09-11 the indexed folder was changed from `Documents` to processor), so it cannot starve the others the way they starved it.
`Personal assistant`, which currently lists 0 files, so the file pass is Messages are indexing.
now trivial and mail should be reached on a scan cycle (every 300s). - [x] **Mail attachments were never indexed.** An attachment's id is its index
Watch for `[SCAN-*] Mail messages: N seen, M queued`. within its message, so `/api/attachments/{id}` meant nothing and answered
Note: the 68 files already indexed from `Documents` are still in the 500 every time. Fixed to `/api/messages/{id}/attachment/{id}`, verified
collection. Say the word if they should be cleared. live against a real message.
- [ ] **`image-size` DoS advisory (high), no upstream fix.** Every published - [x] **The basic collection is renamed** `personal_assistant_bge_m3_1024`
version up to 2.0.2 is affected; `npm audit fix` only offers a breaking (was `basic_bge_m3_1024_v2`), matching `mcp_bge_m3_1024` on the clinical
downgrade of pptxgenjs. Not reachable here: the only `addImage` call side. Milvus grants name the collection, so the rename revoked
(`src/routes/learningAI.js`) is fed PNGs the app generated itself and basic_reader/basic_writer; `bootstrap_basic.py` restored them, but it
fetched with an ownership check, never an uploaded file. Uploads are must be bind-mounted because the operator image ships an older copy.
allowlisted to jpeg/png/gif and checked against their magic bytes. Revisit - [ ] **The indexed folder is `Personal assistant`,** and the setting now takes
when pptxgenjs ships a patched dependency. a comma-separated list (`Personal assistant,Clinical Notes`), each walked
- [ ] **`uuid` advisory (moderate) via gaxios via Google auth.** Not reachable: recursively. Note the file reconciliation removed the chunks of the 68
the flaw needs v3/v5/v6 with an explicit buffer, and gaxios calls only `Documents` files, since a complete listing is the deletion authority and
`v4()` for a multipart boundary. Forcing an override risks Vertex auth. they are no longer under an indexed root. Entities went 27,930 -> ~9,700.
Re-add those files under an indexed folder if they are still wanted.
## Deployment readiness (CI/CD and Kubernetes) ## Deployment readiness (CI/CD and Kubernetes)