From 9fda6d9566a3907cfc7eabcf8b5487ab68a6e587 Mon Sep 17 00:00:00 2001 From: David Snelling Date: Wed, 5 Aug 2026 16:28:06 -0700 Subject: [PATCH] =?UTF-8?q?docs:=20Path=20Registry=20rows=20DP6/DP8/MT5=20?= =?UTF-8?q?flip=20to=20contracted+pinned=20=E2=80=94=20the=20deferred-embe?= =?UTF-8?q?dding=20and=20atomic-update=20train=20landed=20with=20cited=20t?= =?UTF-8?q?ests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/path-registry.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/path-registry.md b/docs/path-registry.md index a8c694ac..aef437b5 100644 --- a/docs/path-registry.md +++ b/docs/path-registry.md @@ -40,9 +40,9 @@ and what's missing, stated) Β· πŸ”΄ owed (named, never silent). | DP3 | Filtered/sorted list: column top-K when the field is columnized (INDEX-SERVED, zero canonical reads on the sorted page β€” value pairs come from ONE batched metadata-record pass); no-column fallback is BOUNDED-ANNOUNCED (one batch pass, announces once per field past 500 rows); unknown field β†’ TYPED REFUSAL naming both candidate spellings. | βœ… `tests/unit/utils/metadataIndex-sort-callshape` (zero per-row reads, batch-only β€” latency-blind) + `metadataIndex-nested-orderby` (dotted keys serve-or-refuse) + `tests/integration/orderby-sort-bug` | | DP4 | Aggregation/stats: ALWAYS answers. Write-time incremental; behind-stamp reconciles incrementally; genuine rebuilds go through the native parallel door or the paged JS walk; nothing ever latches off; before-image-less deletes flag a LOUD rescan, never a silent skip. | βœ… `tests/integration/aggregation-lifecycle-catchup` + `tests/unit/aggregation/aggregation-provider-rebuild` | | DP5 | Graph traversal: `related()` paged via adjacency; whole-graph analytics carry declared cost. | 🟑 paged reads pinned; analytics cost-class declaration owed (rides VENUE-GRAPH-TRUST audit tool) | -| DP6 | Single write: ack at the canonical commit; visibility committed at ack (the atomic vector update kills the removeβ†’add dark window); maintenance NEVER holds the ack (background flush cadence β€” THE ACK LAW pin: a hung flush cannot block a write). | 🟑 ack law pinned (`tests/unit/brainy/persistence-policy`); atomic-update pin lands with the flicker fix in this train | +| DP6 | Single write: ack at the canonical commit; visibility committed at ack (the atomic vector update kills the removeβ†’add dark window); maintenance NEVER holds the ack (background flush cadence β€” THE ACK LAW pins: a hung flush cannot block a write, a hung EMBEDDER cannot block a write). | βœ… `tests/unit/brainy/persistence-policy` + `tests/unit/hnsw/update-item-atomic` + `tests/integration/deferred-embedding` | | DP7 | Bulk ingest: sustained rate holds flat β€” per-write maintenance taxes must not grow with brain size (A4 removed caller-flush convoys; deferred embedding removes the per-write embed tax where opted). | 🟑 the decay-curve row is a pair speed-table RED GATE; brainy-alone sustained-rate run rides the same corpora | -| DP8 | Read under write pressure: no flicker window β€” a row that exists is never invisible to recall, even transiently (same-vector re-index is a no-op; changed-vector swaps in place, node never leaves the index). | 🟑 lands in this train (atomic `updateItem` + `ReplaceInVectorIndexOperation`); symmetry suite + sentinels are the B4 program | +| DP8 | Read under write pressure: no flicker window β€” a row that exists is never invisible to recall, even transiently (same-vector re-index is a no-op; changed-vector swaps in place, node never leaves the index; deferred updates serve the OLD vector until the atomic swap β€” stale-beats-absent). | βœ… brainy leg pinned (`tests/unit/hnsw/update-item-atomic` 9/9 + `deferred-embedding` stale-beats-absent); the symmetry property suite + runtime sentinels remain the B4 program | | β€” | **The lazy-open gate honors EVERY provider's not-ready report** (a not-ready metadata provider can no longer latch the silent-empty state under `disableAutoRebuild`). | βœ… `tests/unit/brainy/lazy-notready-honor` | ## MT β€” Maintenance (never in the door path) @@ -53,7 +53,7 @@ and what's missing, stated) Β· πŸ”΄ owed (named, never silent). | MT2 | Compaction: never on flush (durability-only law, 8.9.0); close-time pass time-budgeted + resumable; explicit `compactHistory({timeBudgetMs})`. | βœ… 8.9.0 suites | | MT3 | Index upkeep (mapper folds, delta promotion): native-side machinery; brainy's JS legs are small and synchronous-cheap. | 🟑 declared; yield audit rides the pair | | MT4 | Heal/rebuild walks (`repairIndex`, backfill walks): paged; failure latches with cooldown; NOT yet yield-to-foreground installments. | πŸ”΄ owed β€” the priority-isolation clause (couples to LC4; same choreography) | -| MT5 | Deferred embedding worker: ack at durability, durable pending markers, crash-recovered at open, single-flight batches. | πŸ”΄ lands as A3 in this train (design frozen on the incident thread) | +| MT5 | Deferred embedding worker: ack at durability, durable pending markers (written BEFORE the commit β€” orphan-safe), crash-recovered at open via a bounded prefix listing, single-flight, 60s hang guard, `awaitPendingEmbeds()` barrier + `pendingEmbeds` gauge. VFS write paths adopt it end-to-end. | βœ… `tests/integration/deferred-embedding` 5/5 | | MT6 | Retention/archival walks: retention `'all'` does nothing by design; bounded-retention reclaim is close-time/explicit only. | 🟑 8.9.0 behavior pinned; archival profile is the co-frozen D1+D3 unit | ## FM β€” Failure modes @@ -75,11 +75,11 @@ and what's missing, stated) Β· πŸ”΄ owed (named, never silent). ## Status summary -Contracted + pinned this train: **DP3, DP4, MT1, LC5(aggregation), the -lazy-open not-ready gate, LC1/LC3/LC9, FM4, FL5** β€” each with the cited -test. Landing in this train: **DP6/DP8 (atomic vector update), MT5 (A3 -deferred embedding)**. Owed, in production-risk order, all coupled to the -priority-isolation program the lifecycle sev opened: **LC4 (doors-open -migration), MT4 (yielding heals), LC7 (downgrade contract), LC6 (SIGTERM -budget), FL2–FL4, FM1/FM2 depot cases.** Rows move from owed to contracted -only with a cited test β€” none lands by prose. +Contracted + pinned this train: **DP3, DP4, DP6, DP8(brainy leg), MT1, +MT5, LC5(aggregation), the lazy-open not-ready gate, LC1/LC3/LC9, FM4, +FL5** β€” each with the cited test. Owed, in production-risk order, all +coupled to the priority-isolation program the lifecycle sev opened: **LC4 +(doors-open migration), MT4 (yielding heals), LC7 (downgrade contract), +LC6 (SIGTERM budget), FL2–FL4, FM1/FM2 depot cases, B4 symmetry suite + +sentinels.** Rows move from owed to contracted only with a cited test β€” +none lands by prose.