refactor(8.0): API-surface + quality polish from the readiness audit
- find() search-mode: collapsed the two overlapping options to one canonical `searchMode: SearchMode` (the redundant `mode` alias was silently ignored on the primary find() path while honored on the historical path — a footgun) and removed the unwired `explain?` FindParams field (never read by find()). - Documentation accuracy on the public type surface: entity ids documented as UUID v7 (auto) / v5 (natural key), not v4; dropped the stale "Brainy 3.0" banners and "backward compatibility" hedging on the fresh-8.0 Result type; documented the via/type alias; removed the dead GraphConstraints.bidirectional; fixed the no-op `EmbeddedGraphVerb = Omit<GraphVerb,'source'>` to omit the real sourceId; corrected the GraphIndexProvider.isInitialized JSDoc; documented removeMany's per-chunk generation granularity; JSDoc'd the public VFS surface. - Honest perf comments in source: removed unmeasured billion-scale figures from the LSMTree / graphAdjacencyIndex headers (the JS fallback is in-memory after open; native is the scale path). - Robustness: getVerbMetadata propagates read errors symmetrically with getNounMetadata; the find() egress integrity-guard keeps a row when the JS matcher doesn't implement an operator the provider already matched on; hardened the boundary-no-native CI guard to catch side-effect imports + re-exports. - Tests: de-theatricalized a relateMany test to assert the real contract; fixed a stale Model-B header. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
47e8031124
commit
a52dba2168
10 changed files with 346 additions and 45 deletions
|
|
@ -77,9 +77,10 @@ export class GraphAdjacencyIndex implements GraphIndexProvider {
|
|||
private lsmTreeVerbsBySource: LSMTree // sourceId -> verbIds
|
||||
private lsmTreeVerbsByTarget: LSMTree // targetId -> verbIds
|
||||
|
||||
// ID-only tracking for billion-scale memory optimization
|
||||
// Previous: Map<string, GraphVerb> stored full objects (128GB @ 1B verbs)
|
||||
// Now: Set<string> stores only IDs (~100KB @ 1B verbs) = 1,280,000x reduction
|
||||
// ID-only membership tracking: a Set<string> of verb ids rather than a
|
||||
// Map<string, GraphVerb> of full objects, so per-verb resident memory is one id
|
||||
// string instead of a whole relationship record. (Unmeasured order-of-magnitude
|
||||
// figures dropped — the durable property is "ids, not objects".)
|
||||
private verbIdSet = new Set<string>()
|
||||
|
||||
// Verb-id interning for the BigInt boundary (8.0 u64 contract).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue