v1.17.0 — safety fixes + Node 22 base image + mem0ai 3.x riders
Safety / correctness (the reason this release should not wait):
- memory_forget / reindex no longer resurrects or duplicates — three stacked fixes: vault-authored lifecycle status survives the trusted reindex path (#261);
state.mdvalid_fromis server-stamped, never model-invented (#265 — a live vault showed 25/27 state docs with fabricated 2023 dates and one FUTURE date); the delete enumeration fails LOUD on a saturated scan window instead of silently deleting off a truncated view (#268; the live 100-point enumeration window itself was fixed by #231's FULL_SCAN_LIMIT). - Summarizer fabrication (#259) was fixed by the v1.16.0 abstention floors; detection note for pre-fix corpora:
tokens_in == 182alone is the marker (NOT missingcovers_from).
Base image + dependency majors (#255):
- node:22-alpine both stages (Node 20 EOL), engines >=22, six CI Node pins (two jobs were silently floating on runner defaults).
- openai ^7.5.0 (engines-only major). better-sqlite3 stays ^12.9.0 — 13.x measured unshippable:
npm cifires the implicit node-gyp rule on its toolchain-less binding.gyp (repro on #255); its dependabot ignored-major stays. - Docker post-prune gate now LOADS the better-sqlite3 native binding on both arches (fail-loud with the gate's own diagnostic); NEW standing nightly arm64 build job gives the gate pre-tag signal.
mem0ai 3.x reconciliation riders (#231):
- Boot log: 12
[mem0-patch]warns → 1 (pg only). - dependabot now ignores mem0ai (PRs only; Security-tab alerts remain the advisory path). patches/README.md is the durable reconciliation reference.
- @qdrant/js-client-rest pinned 1.18.0 (1.19 removed the legacy search API).
Registry verification (2026-08-19, pre-announce): both published arches pulled and booted from GHCR — amd64 and arm64 (QEMU): 1 patch warn, /health 200, in-image arm64 v22.23.2.
Post-deploy checklist: #262 one-time duplicate cleanup (targeted qdrant deletes, payload key id; NO vault reindex — #215 frame) → status-breakdown re-check (pre-deploy: 454/454 current) → close #262.