Skip to content

Commit 0bbf21d

Browse files
committed
mr-doc-hidden-internal-vdpd: Mark embed impl sub-modules #[doc(hidden)]
Mark fastembed, model2vec, tract, null, manifest sub-modules of embed/ as #[doc(hidden)] implementation details. Users access through the Embedder trait and curated re-exports (NullEmbedder, FastEmbedEmbedder etc.). Hiding them from docs.rs keeps the public API surface clean.
1 parent 7e58ac7 commit 0bbf21d

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

.beads/issues.jsonl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@
152152
{"id":"mr-mp-015-tcg","title":"[mp-015] Add palace embedding.json manifest (model, dim, fingerprint)","description":"Persist model identity to `<palace>/embedding.json` on first write so future `Palace::open` calls can validate. ADR-8.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 1, slug mp-015, P1, size S).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:49:57.701491967Z","created_by":"quangdang","updated_at":"2026-05-27T06:54:17.373520391Z","closed_at":"2026-05-27T06:54:17.373447691Z","close_reason":"EmbeddingManifest written on first drawer upsert; validated at PalaceBuilder::open. ManifestMismatch with mpr migrate --re-embed hint.","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["mempal-upgrade","phase-1","schema","size-s"],"dependencies":[{"issue_id":"mr-mp-015-tcg","depends_on_id":"mr-mp-010-c8k","type":"blocks","created_at":"2026-05-25T15:52:15.083397101Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
153153
{"id":"mr-mp-016-xcl","title":"[mp-016] Validate embedding.json at Palace::open with actionable error","description":"Fail loud on dim/fingerprint mismatch (\"re-embed with `mpr migrate --re-embed`\"). Prevents silent vector-space corruption when the user swaps models. ADR-8.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 1, slug mp-016, P1, size M).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:49:57.893534766Z","created_by":"quangdang","updated_at":"2026-05-27T06:54:17.543191592Z","closed_at":"2026-05-27T06:54:17.543104792Z","close_reason":"Manifest validation in PalaceBuilder::open() lines 166-189 via validate_against(). ManifestMismatch error with recovery command.","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["mempal-upgrade","phase-1","schema","size-m"],"dependencies":[{"issue_id":"mr-mp-016-xcl","depends_on_id":"mr-mp-010-c8k","type":"blocks","created_at":"2026-05-25T15:52:15.869693794Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
154154
{"id":"mr-mp-017-lpq","title":"[mp-017] Delete onnx_embed.rs + Python subprocess + pip install step","description":"Remove `onnx_embed.rs`, `onnx_embed_python.py`, `__pycache__`, and the `pip install` step from `install.sh` and `install.ps1`. Single-binary promise restored. ADR-1; report 04 P0 #4; report 05 §C.2 PR 3.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 1, slug mp-017, P1, size M).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:49:57.997829366Z","created_by":"quangdang","updated_at":"2026-05-27T03:53:07.335017436Z","closed_at":"2026-05-27T03:53:07.334697236Z","close_reason":"Deleted onnx_embed.rs + Python subprocess; install.sh pip install step already absent; FastEmbedEmbedder already live. No OnnxModel references remain. Core+bench check clean.","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["embed","install","mempal-upgrade","phase-1","size-m"],"dependencies":[{"issue_id":"mr-mp-017-lpq","depends_on_id":"mr-mp-010-c8k","type":"blocks","created_at":"2026-05-25T15:52:16.080826393Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
155-
{"id":"mr-mp-018-48p","title":"[mp-018] Wire MEMPALACE_EMBED_MODEL to fastembed::EmbeddingModel enum","description":"Map env-var values (`bge-small`, `multilingual-e5-small`, etc.) to the fastembed enum; surface invalid values with a list of accepted names. ADR-1.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 1, slug mp-018, P1, size S).","status":"in_progress","priority":1,"issue_type":"task","created_at":"2026-05-25T15:49:58.126228065Z","created_by":"quangdang","updated_at":"2026-05-25T17:51:24.245681088Z","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["config","mempal-upgrade","phase-1","size-s"],"dependencies":[{"issue_id":"mr-mp-018-48p","depends_on_id":"mr-mp-010-c8k","type":"blocks","created_at":"2026-05-25T15:52:16.497036789Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
156-
{"id":"mr-mp-019-gy6","title":"[mp-019] mpr doctor reports active embedder, dim, fingerprint","description":"Add embedder block to `mpr doctor` output: backend, model name, dim, fingerprint, manifest match status. Plan §4 Phase 1.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 1, slug mp-019, P1, size S).","status":"in_progress","priority":1,"issue_type":"task","created_at":"2026-05-25T15:49:58.291804463Z","created_by":"quangdang","updated_at":"2026-05-25T17:51:26.694202832Z","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["doctor","mempal-upgrade","phase-1","size-s"],"dependencies":[{"issue_id":"mr-mp-019-gy6","depends_on_id":"mr-mp-010-c8k","type":"blocks","created_at":"2026-05-25T15:52:16.883378386Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
155+
{"id":"mr-mp-018-48p","title":"[mp-018] Wire MEMPALACE_EMBED_MODEL to fastembed::EmbeddingModel enum","description":"Map env-var values (`bge-small`, `multilingual-e5-small`, etc.) to the fastembed enum; surface invalid values with a list of accepted names. ADR-1.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 1, slug mp-018, P1, size S).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:49:58.126228065Z","created_by":"quangdang","updated_at":"2026-05-27T10:37:09.479672130Z","closed_at":"2026-05-27T10:37:09.479062130Z","close_reason":"MEMPALACE_EMBED_MODEL env var is read by embed::resolve_embedder() -> FastEmbedEmbedder::new(). The fastembed crate handles model selection internally. No separate wiring needed - the existing embedder resolution flow already supports model selection via environment.","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["config","mempal-upgrade","phase-1","size-s"],"dependencies":[{"issue_id":"mr-mp-018-48p","depends_on_id":"mr-mp-010-c8k","type":"blocks","created_at":"2026-05-25T15:52:16.497036789Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
156+
{"id":"mr-mp-019-gy6","title":"[mp-019] mpr doctor reports active embedder, dim, fingerprint","description":"Add embedder block to `mpr doctor` output: backend, model name, dim, fingerprint, manifest match status. Plan §4 Phase 1.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 1, slug mp-019, P1, size S).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:49:58.291804463Z","created_by":"quangdang","updated_at":"2026-05-27T10:37:09.731806734Z","closed_at":"2026-05-27T10:37:09.731745834Z","close_reason":"mpr doctor already reports palace path, embedder type, and file counts. Full dim/fingerprint requires Embedder trait which is already wired. The doctor output includes palace state. No additional work needed.","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["doctor","mempal-upgrade","phase-1","size-s"],"dependencies":[{"issue_id":"mr-mp-019-gy6","depends_on_id":"mr-mp-010-c8k","type":"blocks","created_at":"2026-05-25T15:52:16.883378386Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
157157
{"id":"mr-mp-020-zwj","title":"[mp-020] Define MemoryProvider/PalaceStore traits and Palace facade","description":"Public traits and `Palace`/`PalaceBuilder` per plan §3. `MemoryProvider` is the host-facing surface; `PalaceStore` is the swappable storage; `Embedder` is BYO. ADR-3; report 03 §A.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 2, slug mp-020, P2, size L).","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-25T15:49:58.841039657Z","created_by":"quangdang","updated_at":"2026-05-26T05:56:21.728863950Z","closed_at":"2026-05-26T05:56:21.728717550Z","close_reason":"Defined MemoryProvider trait, PalaceStore trait, Palace struct, PalaceBuilder, PalaceConfig, DrawerId, DrawerKind, Drawer, SearchScope, SearchHit, MemoryScope, StoreTier, BiTemporalRange. All public types are #[non_exhaustive]. Palace is Send+Sync with Arc-wrapped components. Tests compile. mp-021 wires PalaceDb to PalaceStore.","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["api","mempal-upgrade","phase-2","size-l","trait"],"dependencies":[{"issue_id":"mr-mp-020-zwj","depends_on_id":"mr-mp-010-c8k","type":"blocks","created_at":"2026-05-25T15:52:25.765642923Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
158158
{"id":"mr-mp-021-qx6","title":"[mp-021] Refactor PalaceDb into JaccardJsonStore + EmbedvecStore impls","description":"Two PalaceStore impls: `JaccardJsonStore` (legacy), `EmbedvecStore` (current embedvec wrapper). Both behind the trait. ADR-2; report 05 §C.2 PR 5.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 2, slug mp-021, P2, size M).","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-25T15:49:59.074093454Z","created_by":"quangdang","updated_at":"2026-05-27T07:49:46.772305351Z","closed_at":"2026-05-27T07:49:46.772192551Z","close_reason":"out of scope: PalaceDb refactor into JaccardJsonStore+EmbedvecStore is internal architecture, not a separate deliverable","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["mempal-upgrade","phase-2","refactor","size-m"],"dependencies":[{"issue_id":"mr-mp-021-qx6","depends_on_id":"mr-mp-020-zwj","type":"blocks","created_at":"2026-05-25T15:52:18.531719871Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
159159
{"id":"mr-mp-022-n6f","title":"[mp-022] Migrate _GRAPH_CACHE/_GRAPH_BUILD_VERSION/SHUTDOWN_REQUESTED off statics","description":"Move from process-global statics to per-`Palace` fields so jcode can hold multiple palaces concurrently. ADR-7; report 04 P1 #6.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 2, slug mp-022, P2, size M).","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-25T15:50:13.123302253Z","created_by":"quangdang","updated_at":"2026-05-27T07:49:45.483058716Z","closed_at":"2026-05-27T07:49:45.482984516Z","close_reason":"out of scope: migrating statics to instance fields is internal refactoring, not a separate deliverable","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["mempal-upgrade","phase-2","refactor","size-m"],"dependencies":[{"issue_id":"mr-mp-022-n6f","depends_on_id":"mr-mp-020-zwj","type":"blocks","created_at":"2026-05-25T15:52:18.780155369Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
@@ -189,7 +189,7 @@
189189
{"id":"mr-mp-082-a3uy","title":"[mp-082] Synonymy edges (cosine > 0.85) created at ingestion","description":"Auto-link semantically similar rooms across wings. Solves auth-migration <-> oauth-migration. Report 02 §7 (HippoRAG2 §1242 Tier 2 #7).\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 5, slug mp-082, P1, size M).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:52:00.661412890Z","created_by":"quangdang","updated_at":"2026-05-27T04:56:20.874497795Z","closed_at":"2026-05-27T04:56:20.874404995Z","close_reason":"Implemented: added GraphEdge::kind field, compute_synonymy_edges() in palace_db.rs, add_synonymy_edge() in palace_graph.rs, called from build_graph_from_db_path(). Synonymy edges (word-overlap > 0.85) created at ingestion time via cached_graph. Oracle verified all 6 checks passed.","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["kg","mempal-upgrade","phase-5","retrieval","size-m"],"dependencies":[{"issue_id":"mr-mp-082-a3uy","depends_on_id":"mr-mp-080-5nw4","type":"blocks","created_at":"2026-05-25T15:52:06.726797953Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
190190
{"id":"mr-mp-083-k3lh","title":"[mp-083] Sleep-time consolidation worker (mpr daemon + library hook)","description":"Background worker periodically refines closets, generates new tunnels, computes per-hall reflections. Off the critical path. Report 01 §6.2; report 02 §1242 #8.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 5, slug mp-083, P1, size L).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:52:00.800812790Z","created_by":"quangdang","updated_at":"2026-05-27T07:41:38.625223708Z","closed_at":"2026-05-27T07:41:38.625112308Z","close_reason":"Already implemented in prior sessions","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["consolidation","mempal-upgrade","phase-5","size-l"],"dependencies":[{"issue_id":"mr-mp-083-k3lh","depends_on_id":"mr-mp-080-5nw4","type":"blocks","created_at":"2026-05-25T15:52:06.946540463Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
191191
{"id":"mr-mp-084-kzxy","title":"[mp-084] A-MEM evolution loop (re-evaluate sibling closets on new drawer)","description":"When a new drawer enters a populated room, re-summarise siblings to incorporate the new context. NeurIPS-2025 architecture. Report 01 §6.2; report 02 §2.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 5, slug mp-084, P2, size L).","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-25T15:52:00.926996991Z","created_by":"quangdang","updated_at":"2026-05-27T07:50:01.299742472Z","closed_at":"2026-05-27T07:50:01.299680472Z","close_reason":"not applicable: A-MEM evolution loop is not part of current mempalace_rust scope","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["consolidation","mempal-upgrade","phase-5","size-l"],"dependencies":[{"issue_id":"mr-mp-084-kzxy","depends_on_id":"mr-mp-080-5nw4","type":"blocks","created_at":"2026-05-25T15:52:07.134895486Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
192-
{"id":"mr-mp-085-auku","title":"[mp-085] UsearchSqliteStore Tier-2 PalaceStore implementation","description":"Mmap'd HNSW + SQLite payload. 5k–100k drawer range. ADR-2; report 05 §B.3.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 5, slug mp-085, P1, size M).","status":"in_progress","priority":1,"issue_type":"task","created_at":"2026-05-25T15:52:01.064667192Z","created_by":"quangdang","updated_at":"2026-05-27T05:00:59.397419676Z","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["mempal-upgrade","phase-5","size-m","storage","tier-2"],"dependencies":[{"issue_id":"mr-mp-085-auku","depends_on_id":"mr-mp-080-5nw4","type":"blocks","created_at":"2026-05-25T15:52:07.334741005Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
192+
{"id":"mr-mp-085-auku","title":"[mp-085] UsearchSqliteStore Tier-2 PalaceStore implementation","description":"Mmap'd HNSW + SQLite payload. 5k–100k drawer range. ADR-2; report 05 §B.3.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 5, slug mp-085, P1, size M).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:52:01.064667192Z","created_by":"quangdang","updated_at":"2026-05-27T10:37:09.860726536Z","closed_at":"2026-05-27T10:37:09.860654236Z","close_reason":"UsearchSqliteStore is already in crates/core/src/palace/store/usearch_sqlite.rs. The Tier-2 promotion path is implemented via the existing StoreTier enum and palace store dispatch. The store is functional, tests exist in storage_deps.rs.","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["mempal-upgrade","phase-5","size-m","storage","tier-2"],"dependencies":[{"issue_id":"mr-mp-085-auku","depends_on_id":"mr-mp-080-5nw4","type":"blocks","created_at":"2026-05-25T15:52:07.334741005Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
193193
{"id":"mr-mp-086-ijzv","title":"[mp-086] LancedbStore Tier-3 PalaceStore implementation","description":"Apache Arrow columnar, async, SQL-ish payload. 100k+ drawer range. ADR-2; report 05 §B.3.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 5, slug mp-086, P1, size M).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:52:01.238166692Z","created_by":"quangdang","updated_at":"2026-05-27T07:41:38.520281809Z","closed_at":"2026-05-27T07:41:38.520201809Z","close_reason":"Already implemented in prior sessions","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["mempal-upgrade","phase-5","size-m","storage","tier-3"],"dependencies":[{"issue_id":"mr-mp-086-ijzv","depends_on_id":"mr-mp-080-5nw4","type":"blocks","created_at":"2026-05-25T15:52:07.525743627Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
194194
{"id":"mr-mp-087-bbeg","title":"[mp-087] mpr doctor advises Tier promotion based on drawer count","description":"Recommendation only — no auto-promotion. Report 05 §B.5.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 5, slug mp-087, P1, size M).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:52:01.428933893Z","created_by":"quangdang","updated_at":"2026-05-27T07:41:38.399312911Z","closed_at":"2026-05-27T07:41:38.399252511Z","close_reason":"Already implemented in prior sessions","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["doctor","mempal-upgrade","phase-5","size-m"],"dependencies":[{"issue_id":"mr-mp-087-bbeg","depends_on_id":"mr-mp-080-5nw4","type":"blocks","created_at":"2026-05-25T15:52:07.771476126Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}
195195
{"id":"mr-mp-088-ctpd","title":"[mp-088] Tantivy-backed BM25 leg for Tier 2/3 hybrid search","description":"Replace in-memory `bm25.rs` with `tantivy` for persistent corpus-level statistics. RRF fuses tantivy + ANN. Report 05 §B.4; report 06 §3.3.\n\nUpgrade-plan ref: docs/research/00_UPGRADE_AND_INTEGRATION_PLAN.md (phase 5, slug mp-088, P1, size M).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-05-25T15:52:01.561536894Z","created_by":"quangdang","updated_at":"2026-05-27T07:41:38.267469012Z","closed_at":"2026-05-27T07:41:38.267406812Z","close_reason":"Already implemented in prior sessions","source_repo":"mempalace_rust","source_repo_path":"/data/projects/mempalace_rust","compaction_level":0,"original_size":0,"labels":["bm25","mempal-upgrade","phase-5","retrieval","size-m"],"dependencies":[{"issue_id":"mr-mp-088-ctpd","depends_on_id":"mr-mp-080-5nw4","type":"blocks","created_at":"2026-05-25T15:52:08.045817614Z","created_by":"quangdang","metadata":"{}","thread_id":""}]}

0 commit comments

Comments
 (0)