@harperfast/harper 5.2.4 → 5.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/components/status/crossThread.ts +69 -44
  2. package/components/status/types.ts +1 -0
  3. package/dist/components/status/crossThread.d.ts +1 -0
  4. package/dist/components/status/crossThread.js +57 -41
  5. package/dist/components/status/crossThread.js.map +1 -1
  6. package/dist/components/status/types.d.ts +1 -0
  7. package/dist/resources/DatabaseTransaction.d.ts +28 -0
  8. package/dist/resources/DatabaseTransaction.js +110 -8
  9. package/dist/resources/DatabaseTransaction.js.map +1 -1
  10. package/dist/resources/ResourceInterface.d.ts +15 -0
  11. package/dist/resources/ResourceInterface.js.map +1 -1
  12. package/dist/resources/Table.js +3 -0
  13. package/dist/resources/Table.js.map +1 -1
  14. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +11 -0
  15. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +153 -51
  16. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  17. package/dist/resources/transaction.js +3 -1
  18. package/dist/resources/transaction.js.map +1 -1
  19. package/dist/server/itc/serverHandlers.js +2 -1
  20. package/dist/server/itc/serverHandlers.js.map +1 -1
  21. package/dist/server/threads/manageThreads.d.ts +1 -0
  22. package/dist/server/threads/manageThreads.js +17 -2
  23. package/dist/server/threads/manageThreads.js.map +1 -1
  24. package/npm-shrinkwrap.json +2 -2
  25. package/package.json +1 -1
  26. package/resources/DESIGN.md +19 -18
  27. package/resources/DatabaseTransaction.ts +124 -15
  28. package/resources/ResourceInterface.ts +15 -0
  29. package/resources/Table.ts +3 -0
  30. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +153 -54
  31. package/resources/transaction.ts +3 -1
  32. package/schema.graphql +8 -3
  33. package/server/itc/serverHandlers.js +2 -1
  34. package/server/threads/manageThreads.js +17 -2
  35. package/studio/web/assets/{Chat-BvOlYIhe.js → Chat-Lgj1d-8d.js} +1 -1
  36. package/studio/web/assets/{FloatingChat-fCJiJCH2.js → FloatingChat-jLWvR4kI.js} +3 -3
  37. package/studio/web/assets/{apiToken-bKwPv0uN.js → apiToken-DYI4DqWa.js} +1 -1
  38. package/studio/web/assets/{applications-BZ47njJ_.js → applications-DCmc9-lk.js} +1 -1
  39. package/studio/web/assets/{index-DF1fSnXV.js → index-CqbCnqsT.js} +4 -4
  40. package/studio/web/assets/{index.lazy-DWt8ubrr.js → index.lazy-BNqr3j0f.js} +3 -3
  41. package/studio/web/assets/{notifications-B5ZBOni1.js → notifications-Bb2cj14_.js} +1 -1
  42. package/studio/web/assets/{notifications-gVx0lA8H.js → notifications-DVlKonbI.js} +1 -1
  43. package/studio/web/assets/{profile-D7g0x28A.js → profile-BSQWfYfq.js} +1 -1
  44. package/studio/web/assets/{regions-DRkhlkiD.js → regions-Dk3g8bBF.js} +1 -1
  45. package/studio/web/assets/{setComponentFile-DQkkobG5.js → setComponentFile-DoITgNLb.js} +1 -1
  46. package/studio/web/assets/{setup-nf-EOheW.js → setup-CiEALLa7.js} +1 -1
  47. package/studio/web/assets/{status-B2tOM3RF.js → status-CK9tD-Nd.js} +1 -1
  48. package/studio/web/assets/{swagger-ui-react-UktCouQ0.js → swagger-ui-react-CxjCDFB-.js} +1 -1
  49. package/studio/web/assets/{useEntityRestURL-alqAn3dT.js → useEntityRestURL-Cy-0i1UZ.js} +1 -1
  50. package/studio/web/index.html +1 -1
@@ -25,6 +25,10 @@ export declare class HierarchicalNavigableSmallWorld {
25
25
  distance: (a: number[], b: number[]) => number;
26
26
  int8: boolean;
27
27
  efSearchConfigured: boolean;
28
+ efConstructionConfigured: boolean;
29
+ private lastLoggedEfConstruction;
30
+ private idIncrementerRetryAt;
31
+ private idIncrementerFailureLogged;
28
32
  private convertedNodes;
29
33
  private nodeCount;
30
34
  private nodeCountAt;
@@ -61,6 +65,13 @@ export declare class HierarchicalNavigableSmallWorld {
61
65
  * the query path may bypass it, or the O(1) lookup becomes per-query work again.
62
66
  */
63
67
  private approximateNodeCount;
68
+ private resolveConstructionNodeCount;
69
+ /**
70
+ * Create-or-attach the shared id counter, seeded from a one-time reverse seek to the largest node
71
+ * id. getUserSharedBuffer returns the existing shared buffer when another worker created it
72
+ * first, so the seed only matters for whoever wins the race.
73
+ */
74
+ private ensureIdIncrementer;
64
75
  /** O(1) node count — the shared id counter, else a single reverse seek to the largest node id. */
65
76
  private resolveNodeCount;
66
77
  private safeGetSync;
@@ -43,11 +43,16 @@ function dequantizeInt8(q, scale) {
43
43
  }
44
44
  // Auto-scaled search ef, used only when an index does not explicitly configure efConstructionSearch
45
45
  // and a query does not pass its own ef. A fixed ef makes recall decay as the graph grows (it explores
46
- // a shrinking fraction of the graph), so ef grows with sqrt(node count), capped to bound search cost.
47
- // Constants from a recall/latency-vs-N sweep (768-dim cosine, int8): ef≈400 holds ~0.8 recall@10 from
48
- // 5K30K, and the recall/latency tradeoff is steep (ef 800 at 30K 0.92 recall but ~2s p50), so the
49
- // cap deliberately favors latency apps wanting higher recall set efConstructionSearch or a per-query
50
- // ef. Tune as graph build quality / larger-N data improves.
46
+ // a shrinking fraction of the graph), so ef grows with sqrt(node count) in two regimes, with a
47
+ // ceiling to bound search cost. The first regime's constants come from the original recall/latency
48
+ // sweep (5K-30K, 768-dim cosine, int8) and plateau at AUTO_EF_MAX from ~13K nodes; that plateau was
49
+ // calibrated when layers above 0 were searched at the full ef, which made large efs cost seconds.
50
+ // After the greedy-descent fix (#2125) ef 1024 at 5M nodes costs ~45ms, and the measured decay at a
51
+ // pinned 512 (set-recall 0.997 -> 0.955 -> 0.935 across 1M/2M/5M on well-built graphs, #2181) is
52
+ // recall left on the table, so past AUTO_EF_LARGE_REF nodes the scale resumes from that plateau and
53
+ // runs to AUTO_EF_CEILING. Validated against the same sweeps: the second regime resolves 1,145 at
54
+ // 5M, and the measured ef-1024 point there holds 0.985. Apps preferring latency pin
55
+ // efConstructionSearch or a per-query ef; graphs past ~tens of millions of nodes should shard.
51
56
  const AUTO_EF_BASE = 100;
52
57
  // The index store holds a graph node plus a primary-key mapping per record, so a key count is twice
53
58
  // the node count. Sizes here are in nodes; this converts back for the one consumer still calibrated
@@ -58,7 +63,15 @@ const INDEX_KEYS_PER_NODE = 2;
58
63
  // a live count, so the resolved ef can differ from that formula by one at a rounding boundary.
59
64
  const AUTO_EF_REF = 500;
60
65
  const AUTO_EF_MAX = 512;
66
+ // Nodes at which the second regime starts: 512 was measured sufficient through 1M (set-recall
67
+ // 0.997) and short from 2M up, so the resumed curve is anchored to pass through (1M, 512).
68
+ const AUTO_EF_LARGE_REF = 1_000_000;
69
+ const AUTO_EF_CEILING = 2048;
61
70
  function autoScaleEf(nodeCount) {
71
+ if (nodeCount > AUTO_EF_LARGE_REF) {
72
+ const scaled = Math.round(AUTO_EF_MAX * Math.sqrt(nodeCount / AUTO_EF_LARGE_REF));
73
+ return Math.min(AUTO_EF_CEILING, scaled);
74
+ }
62
75
  const scaled = Math.round(AUTO_EF_BASE * Math.sqrt(Math.max(1, nodeCount / AUTO_EF_REF)));
63
76
  return Math.min(AUTO_EF_MAX, Math.max(AUTO_EF_BASE, scaled));
64
77
  }
@@ -68,10 +81,24 @@ function autoScaleEf(nodeCount) {
68
81
  const ROUTING_EF = 1;
69
82
  // Ceiling on the ef a query's own `offset + limit` can ask for. `limit` is unprivileged and set on
70
83
  // every request, so this bounds what a caller can make one thread do synchronously: layer 0 holds
71
- // `ef` candidates in a sorted array with an O(len) insert. Kept within a small multiple of
72
- // AUTO_EF_MAX so the worst case stays the same order as the index's own auto-scaled ceiling; a
73
- // caller who genuinely wants more sets an explicit `ef` and owns the cost.
74
- const LIMIT_EF_MAX = 4 * AUTO_EF_MAX;
84
+ // `ef` candidates in a sorted array with an O(len) insert. Kept within a small multiple of the
85
+ // index's own auto-scaled ceiling so the worst case stays the same order. Schema and per-query ef
86
+ // pins are authoritative cost ceilings; only an automatically scaled index widens from `limit`.
87
+ const LIMIT_EF_MAX = 2 * AUTO_EF_CEILING;
88
+ // Auto-scaled construction ef, used only when an index does not explicitly configure efConstruction.
89
+ // At a constant efConstruction, edge quality erodes as the graph grows until true neighbours become
90
+ // unreachable at ANY search ef; the cap bounds per-insert cost. Measurements and policy in
91
+ // DESIGN.md ("efConstruction and the search-ef ceiling both auto-scale with the graph") and #2180.
92
+ const AUTO_EFC_REF = 250_000;
93
+ // Validated to 447 (the 5M point, where the resulting graph held 0.985 set-recall at ef 1024); the
94
+ // headroom to 1024 is the same sqrt curve extrapolated, binding at ~26M nodes. Build cost grows
95
+ // with the curve (N^1.5 total under sqrt scaling), which is why the cap stays finite: past ~tens of
96
+ // millions of nodes, sharded medium graphs beat one huge graph on both build and query cost.
97
+ const AUTO_EFC_MAX = 1024;
98
+ function autoScaleEfConstruction(nodeCount) {
99
+ const scaled = Math.round(AUTO_EF_BASE * Math.sqrt(Math.max(1, nodeCount / AUTO_EFC_REF)));
100
+ return Math.min(AUTO_EFC_MAX, Math.max(AUTO_EF_BASE, scaled));
101
+ }
75
102
  // How long a resolved graph size is reused before it is looked up again (see approximateNodeCount).
76
103
  // ef moves with the square root of the count and is capped, so a slightly stale size is immaterial;
77
104
  // this only has to be short enough that a table growing from empty picks up a larger ef promptly.
@@ -171,21 +198,21 @@ class HierarchicalNavigableSmallWorld {
171
198
  // a value of 1 is extremely aggressive.
172
199
  optimizeRouting = 0.5;
173
200
  nodesVisitedCount = 0;
174
- // Visit-budget multiplier for predicate-aware traversal (#1241). When a filter is selective enough
175
- // that layer-0 results never fill `ef`, the "closest candidate worse than worst result" stop rule
176
- // never triggers, so maxVisits = ef * filterExpansion caps how many nodes an under-filled filtered
177
- // search visits before returning what it has (approximate, like all ANN). It does NOT bound a filter
178
- // that fills `ef` that terminates naturally. Default 24 (not the 8 the design sketch assumed):
179
- // this HNSW visits a large fraction of the graph per query, so filling `ef` at selectivity `s` needs
180
- // ~ef/s visits; a multiplier of 24 fills down to ~4% selectivity before the budget bites, keeping
181
- // recall at or above post-filtering across the range the query planner routes to traversal. Raising
182
- // it is nearly free for condition-derived filters (they fill and self-terminate); it mainly trades
183
- // latency for recall on selective *function* predicates. Per-query override via the search options.
201
+ // Visit-budget multiplier for predicate-aware traversal (#1241). Under-filled filtered searches
202
+ // stop after the resolved budget ef * filterExpansion visits; automatic search ef contributes at
203
+ // most AUTO_EF_MAX, while explicit schema/query ef remains authoritative. A filter that fills its
204
+ // candidate list terminates naturally before this bound. Raising the multiplier mainly trades
205
+ // latency for recall on selective function predicates; 24 fills to roughly 4% selectivity before
206
+ // the budget binds. Per-query override via the search options.
184
207
  filterExpansion = 24;
185
208
  idIncrementer;
186
209
  distance;
187
210
  int8 = true; // store vectors as int8-quantized bins by default; opt out with `quantization: "none"`
188
- efSearchConfigured = false; // whether the schema set an explicit search ef; if not, search ef auto-scales with N
211
+ efSearchConfigured = false; // whether the schema pins search ef directly or through efConstruction
212
+ efConstructionConfigured = false; // whether the schema set an explicit efConstruction; if not, it auto-scales with N
213
+ lastLoggedEfConstruction = 0;
214
+ idIncrementerRetryAt = 0;
215
+ idIncrementerFailureLogged = false;
189
216
  // Caches the Int8Array-converted clone of a frozen (decoded-from-disk) int8 node, keyed by the
190
217
  // frozen node the object store hands back. WeakMap so entries are collected when the store evicts
191
218
  // the frozen node — without it, every cache hit on a frozen node would re-slice and re-clone.
@@ -200,8 +227,9 @@ class HierarchicalNavigableSmallWorld {
200
227
  this.indexStore.encoder.useFloat32 = msgpackr_1.FLOAT32_OPTIONS.ALWAYS;
201
228
  }
202
229
  this.int8 = options?.quantization !== 'none';
203
- // Respect an explicitly-configured search ef (or efConstruction, which seeds it); otherwise auto-scale.
230
+ // Respect an explicitly-configured ef (efConstruction seeds the search ef too); otherwise auto-scale both.
204
231
  this.efSearchConfigured = options?.efConstructionSearch !== undefined || options?.efConstruction !== undefined;
232
+ this.efConstructionConfigured = options?.efConstruction !== undefined;
205
233
  this.distance =
206
234
  options?.distance === 'euclidean'
207
235
  ? vector_ts_1.euclideanDistance
@@ -249,21 +277,7 @@ class HierarchicalNavigableSmallWorld {
249
277
  if (!nodeId) {
250
278
  if (!vector)
251
279
  return; // didn't exist before, doesn't exist now, nothing to do
252
- if (!this.idIncrementer) {
253
- let largestNodeId = 0;
254
- for (const key of this.indexStore.getKeys({
255
- reverse: true,
256
- limit: 1,
257
- start: Infinity,
258
- end: 0,
259
- transaction: options.transaction,
260
- })) {
261
- if (typeof key === 'number')
262
- largestNodeId = key;
263
- }
264
- this.idIncrementer = new BigInt64Array([BigInt(largestNodeId) + 1n]);
265
- this.idIncrementer = new BigInt64Array(this.indexStore.getUserSharedBuffer('next-id', this.idIncrementer.buffer));
266
- }
280
+ this.ensureIdIncrementer(options);
267
281
  nodeId = Number(Atomics.add(this.idIncrementer, 0, 1n));
268
282
  this.indexStore.put(safeKey, nodeId, options);
269
283
  }
@@ -363,9 +377,26 @@ class HierarchicalNavigableSmallWorld {
363
377
  for (let i = 0; i <= level; i++) {
364
378
  connections[i] = [];
365
379
  }
366
- // Connect the new element to neighbors at its level and below
380
+ // An update-only worker may not have attached the id counter yet. The healthy path is one
381
+ // atomic load; a failed attach falls back to the memoized seek and retries after its TTL.
382
+ let efConstruction = this.efConstruction;
383
+ if (!this.efConstructionConfigured) {
384
+ // Graph size only tunes a heuristic; a write must never fail because it could not be resolved.
385
+ try {
386
+ efConstruction = autoScaleEfConstruction(this.resolveConstructionNodeCount(options));
387
+ }
388
+ catch (error) {
389
+ logger.debug?.('could not resolve the HNSW construction node count; using the base ef', error);
390
+ }
391
+ if (efConstruction > this.efConstruction && this.lastLoggedEfConstruction !== efConstruction) {
392
+ // once per resolved value per process: makes replica-divergent build quality and the
393
+ // build-cost ramp diagnosable (the resolved value is otherwise surfaced nowhere)
394
+ this.lastLoggedEfConstruction = efConstruction;
395
+ logger.debug?.(`HNSW construction ef auto-scaled to ${efConstruction}`);
396
+ }
397
+ }
367
398
  for (let l = Math.min(level, currentLevel); l >= 0; l--) {
368
- let neighbors = this.searchLayer(vector, entryPointId, entryPoint, this.efConstruction, l, options);
399
+ let neighbors = this.searchLayer(vector, entryPointId, entryPoint, efConstruction, l, options);
369
400
  neighbors = neighbors.slice(0, this.M << 1);
370
401
  if (neighbors.length === 0 && l === 0) {
371
402
  logger.info?.('should not have zero connections for', entryPointId);
@@ -526,8 +557,7 @@ class HierarchicalNavigableSmallWorld {
526
557
  }
527
558
  }
528
559
  this.indexStore.remove(nodeId, options);
529
- // Remove the safeKey→nodeId mapping so the key count used by autoScaleEf stays accurate
530
- // and a re-insert of this primary key gets a fresh node rather than the deleted node's id.
560
+ // A re-insert of this primary key must get a fresh node rather than the deleted node's id.
531
561
  this.indexStore.remove(safeKey, options);
532
562
  }
533
563
  const needsReindexing = new Map();
@@ -720,20 +750,86 @@ class HierarchicalNavigableSmallWorld {
720
750
  * measurements behind both. The memo is the only gate on how often the size is resolved; nothing on
721
751
  * the query path may bypass it, or the O(1) lookup becomes per-query work again.
722
752
  */
723
- approximateNodeCount() {
753
+ approximateNodeCount(options) {
724
754
  const now = Date.now();
725
755
  if (this.nodeCountAt > 0 && now - this.nodeCountAt < NODE_COUNT_TTL)
726
756
  return this.nodeCount;
727
- this.nodeCount = this.resolveNodeCount();
757
+ this.nodeCount = this.resolveNodeCount(options);
728
758
  this.nodeCountAt = now;
729
759
  return this.nodeCount;
730
760
  }
761
+ resolveConstructionNodeCount(options) {
762
+ if (this.idIncrementer)
763
+ return this.resolveNodeCount();
764
+ const now = Date.now();
765
+ if (now >= this.idIncrementerRetryAt) {
766
+ try {
767
+ this.ensureIdIncrementer(options);
768
+ this.idIncrementerRetryAt = 0;
769
+ this.idIncrementerFailureLogged = false;
770
+ return this.resolveNodeCount();
771
+ }
772
+ catch (error) {
773
+ this.idIncrementerRetryAt = now + NODE_COUNT_TTL;
774
+ if (!this.idIncrementerFailureLogged) {
775
+ this.idIncrementerFailureLogged = true;
776
+ logger.warn?.('could not attach the shared HNSW id counter; using a memoized node count', error);
777
+ }
778
+ }
779
+ }
780
+ return this.approximateNodeCount(options);
781
+ }
782
+ /**
783
+ * Create-or-attach the shared id counter, seeded from a one-time reverse seek to the largest node
784
+ * id. getUserSharedBuffer returns the existing shared buffer when another worker created it
785
+ * first, so the seed only matters for whoever wins the race.
786
+ */
787
+ ensureIdIncrementer(options) {
788
+ if (this.idIncrementer)
789
+ return;
790
+ let largestNodeId = 0;
791
+ for (const key of this.indexStore.getKeys({
792
+ reverse: true,
793
+ limit: 1,
794
+ start: Infinity,
795
+ end: 0,
796
+ transaction: options?.transaction,
797
+ })) {
798
+ if (typeof key === 'number')
799
+ largestNodeId = key;
800
+ }
801
+ // Never install the counter until the shared attach succeeds: assigning the private seed
802
+ // array first would, on an attach failure, leave THIS process allocating ids nobody else can
803
+ // see — cross-worker id collisions. Left unset, the next write simply retries the ensure.
804
+ const seed = new BigInt64Array([BigInt(largestNodeId) + 1n]);
805
+ try {
806
+ const sharedBuffer = this.indexStore.getUserSharedBuffer('next-id', seed.buffer);
807
+ if (!sharedBuffer ||
808
+ sharedBuffer.byteLength < BigInt64Array.BYTES_PER_ELEMENT ||
809
+ sharedBuffer.byteLength % BigInt64Array.BYTES_PER_ELEMENT !== 0) {
810
+ throw new Error('Shared HNSW id counter buffer is unusable');
811
+ }
812
+ this.idIncrementer = new BigInt64Array(sharedBuffer);
813
+ }
814
+ catch (error) {
815
+ // Reuse the transactional seed seek as the degraded count instead of seeking a second time.
816
+ this.nodeCount = largestNodeId + 1;
817
+ this.nodeCountAt = Date.now();
818
+ throw error;
819
+ }
820
+ }
731
821
  /** O(1) node count — the shared id counter, else a single reverse seek to the largest node id. */
732
- resolveNodeCount() {
822
+ resolveNodeCount(options) {
733
823
  if (this.idIncrementer)
734
824
  return Number(Atomics.load(this.idIncrementer, 0));
735
825
  try {
736
- for (const key of this.indexStore.getKeys({ reverse: true, limit: 1, start: Infinity, end: 0 })) {
826
+ for (const key of this.indexStore.getKeys({
827
+ reverse: true,
828
+ limit: 1,
829
+ start: Infinity,
830
+ end: 0,
831
+ transaction: options?.transaction,
832
+ })) {
737
833
  if (typeof key === 'number')
738
834
  return key + 1;
739
835
  }
@@ -1025,8 +1121,8 @@ class HierarchicalNavigableSmallWorld {
1025
1121
  if (!Array.isArray(target))
1026
1122
  throw new hdbError_ts_1.ClientError('The target vector must be an array');
1027
1123
  const options = context.transaction; // should have a nested RocksDB transaction
1028
- // Resolve search ef: per-query ef wins; else an explicitly-configured efConstructionSearch;
1029
- // else auto-scale with the graph size so recall holds as the table grows.
1124
+ // Resolve search ef: per-query ef wins; else use the schema-pinned value (from either ef option);
1125
+ // otherwise auto-scale with the graph size so recall holds as the table grows.
1030
1126
  let effectiveEf = this.efConstructionSearch;
1031
1127
  const explicitEf = ef !== undefined && ef > 0;
1032
1128
  if (explicitEf)
@@ -1041,22 +1137,28 @@ class HierarchicalNavigableSmallWorld {
1041
1137
  // to cover the request, up to LIMIT_EF_MAX — `ef` sizes a synchronous traversal that holds every
1042
1138
  // admitted candidate in a sorted array with an O(len) insert, so an unbounded one lets a plain
1043
1139
  // `limit` stall the thread. Past the ceiling the result set is still short, as it was before.
1044
- // A per-query `ef` is left authoritative: it is an explicit cost ceiling, and a caller who sets
1045
- // one has said what they are willing to spend.
1140
+ // Schema and per-query `ef` pins are authoritative cost ceilings. Only an automatically scaled
1141
+ // index widens toward LIMIT_EF_MAX to cover a larger bounded request.
1046
1142
  // The ceiling is the only bound: clamping to the graph size as well would need a count exact as
1047
1143
  // of this query — the memo reads low while a table grows, truncating the very limit this
1048
1144
  // honours — and an ef above the node count is free, the traversal ending at the graph, not ef.
1049
- if (minResults !== undefined && !explicitEf && minResults > effectiveEf) {
1145
+ if (minResults !== undefined && !explicitEf && !this.efSearchConfigured && minResults > effectiveEf) {
1050
1146
  effectiveEf = Math.max(effectiveEf, Math.min(minResults, LIMIT_EF_MAX));
1051
1147
  }
1052
1148
  // Predicate-aware traversal budget (#1241): matches accrue slower than visits under a selective
1053
1149
  // filter, so bound layer-0 work at ef * filterExpansion nodes. Only built when a filter is active.
1054
1150
  // Deliberately `resolvedEf`, not the limit-widened ef: this budget is what stops a selective
1055
1151
  // filter crawling the whole graph, and multiplying it by a caller's limit would turn a filtered
1056
- // vector query into a record-loading scan.
1152
+ // vector query into a record-loading scan. When the ef came from the auto-scale (neither a
1153
+ // per-query ef nor a schema-configured one), its budget contribution is additionally capped at
1154
+ // AUTO_EF_MAX: every budgeted visit is a synchronous record load + predicate evaluation, so the
1155
+ // second-regime search ef (up to AUTO_EF_CEILING) must not silently quadruple the filtered
1156
+ // worst case — the recall decision and the filtered-scan budget are separate decisions. Callers
1157
+ // wanting a deeper filtered search set an explicit ef or filterExpansion, and own the cost.
1057
1158
  const filterState = filter
1058
1159
  ? {
1059
- maxVisits: resolvedEf * (filterExpansion && filterExpansion > 0 ? filterExpansion : this.filterExpansion),
1160
+ maxVisits: (explicitEf || this.efSearchConfigured ? resolvedEf : Math.min(resolvedEf, AUTO_EF_MAX)) *
1161
+ (filterExpansion && filterExpansion > 0 ? filterExpansion : this.filterExpansion),
1060
1162
  nodesVisited: 0,
1061
1163
  filterEvaluations: 0,
1062
1164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchicalNavigableSmallWorld.js","sourceRoot":"","sources":["../../../resources/indexes/HierarchicalNavigableSmallWorld.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HierarchicalNavigableSmallWorld.js","sourceRoot":"","sources":["../../../resources/indexes/HierarchicalNavigableSmallWorld.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,9 @@ function transaction(ctx, callback) {
35
35
  if (context?.transaction?.open === DatabaseTransaction_ts_1.TRANSACTION_STATE.OPEN && typeof callback === 'function') {
36
36
  return callback(context.transaction); // nothing to be done, already in open transaction
37
37
  }
38
- const transaction = new DatabaseTransaction_ts_1.DatabaseTransaction();
38
+ // scopeOwned: onComplete/onError below guarantee this instance a final commit or an abort, which is
39
+ // what lets a mid-scope commit rotate it instead of leaving later writes to commit themselves.
40
+ const transaction = new DatabaseTransaction_ts_1.DatabaseTransaction({ scopeOwned: true });
39
41
  context.transaction = transaction;
40
42
  if (context.timestamp)
41
43
  transaction.timestamp = context.timestamp;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../resources/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../resources/transaction.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ const { validateEvent } = require('../threads/itc.js');
8
8
  const harperBridge = require("../../dataLayer/harperBridge/harperBridge.js").default ||
9
9
  require("../../dataLayer/harperBridge/harperBridge.js");
10
10
  const process = require('process');
11
- const { isMainThread, workerData } = require('worker_threads');
11
+ const { isMainThread, threadId, workerData } = require('node:worker_threads');
12
12
  const { resetDatabases, closeDatabase } = require("../../resources/databases.js");
13
13
  /**
14
14
  * This object/functions are passed to the ITC client instance and dynamically added as event handlers.
@@ -173,6 +173,7 @@ async function componentStatusRequestHandler(event) {
173
173
  message: {
174
174
  requestId: event.message.requestId,
175
175
  statuses: statusArray,
176
+ threadId,
176
177
  workerIndex: workerIndex,
177
178
  isMainThread: isMainThread,
178
179
  },