@functional-systems/srcx 0.1.0-dev.35 → 0.1.0-dev.37

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ - Reduce incremental publication reads by comparing against a fully validated,
6
+ identity-matched local baseline when available, with immutable remote fallback
7
+ after local file loss. Reuse complete candidate validation within one invocation
8
+ after checking its Tag/Snapshot identity, but revalidate on publication retries.
9
+ Skip unchanged inventory-part uploads; preserve full candidate/hash/vector
10
+ checks, resumability and immutable version reads. Document remaining full-corpus
11
+ work and cover small updates to a larger corpus with local operation/byte tests.
12
+
5
13
  - Add `lookup --symbol` for exact indexed definition/declaration lookup with
6
14
  verified source chunks and pinned citations in one call. Support path/language
7
15
  filters and a bounded result limit, using existing indexes without embeddings
package/DESIGN.md CHANGED
@@ -422,6 +422,17 @@ connection or remote repository lookup. No `--backend` option is needed for that
422
422
  Use ordinary SDK upsert/delete for this workaround. Bulk ingestion remains later
423
423
  work; do not assume its asynchronous processing obeys the same marker ordering.
424
424
 
425
+ For baseline comparison, prefer a local artifact only after matching repository,
426
+ configuration, commit, build, record and inventory identities to the journal's
427
+ remote baseline, checking its Tag/Snapshot and manifest, and fully validating the
428
+ artifact. Reconstruct the old file/chunk and metadata hash map from that artifact.
429
+ The local artifact is a cache, never publication evidence: missing files or a
430
+ different build fall back to the immutable baseline's full listing; corruption
431
+ of a matching artifact fails closed. A write-stage retry uses the same rule and
432
+ does not require the previous local artifact. Compare inventory-part hashes too,
433
+ so unchanged metadata parts are not uploaded again. Always write the new root
434
+ marker separately after all required mutation ACKs.
435
+
425
436
  ### Replacing one file
426
437
 
427
438
  Replace a modified file's chunk set as a unit in the build plan, using the previous
@@ -990,6 +1001,23 @@ name/Snapshot/manifest before retrying. Existing valid publication is reused.
990
1001
  A crash after candidate validation but before publication can be recovered by
991
1002
  revalidating that candidate and publishing; a `try-*` name alone is never enough.
992
1003
 
1004
+ Within one invocation, reuse the successful complete candidate check instead of
1005
+ immediately scanning it twice. Before publication, require that the candidate Tag
1006
+ still points to the Snapshot returned when it was created. This result exists
1007
+ only in memory: resuming a publication-stage journal performs full candidate
1008
+ validation again and verifies the Tag/Snapshot identity. The final Tag is still
1009
+ created from the candidate Tag, with the existing Snapshot equality check.
1010
+
1011
+ These optimizations retain full Git enumeration, local artifact copying and
1012
+ validation, full inventory construction, and at least one complete remote
1013
+ candidate verification. Cold recovery also lists the old remote baseline.
1014
+ Achieving remote validation proportional to a delta requires a verified backend
1015
+ contract tying a candidate Snapshot to the exact validated baseline plus all
1016
+ acknowledged upserts/deletes, preserving all other records and establishing index
1017
+ and managed-embedding readiness. No such contract is assumed by this importer;
1018
+ marker visibility, matching counts and changed-document sampling cannot replace
1019
+ the complete comparison. Dependency ingestion remains outside this workflow.
1020
+
993
1021
  ## 10. Git tags, exact version selection, and recovery
994
1022
 
995
1023
  ### Git release Alias synchronization
package/README.md CHANGED
@@ -712,6 +712,22 @@ remove that specific lock directory. Do not delete `pending.json` to force a new
712
712
  commit over an uncertain workspace. Unexpected baselines fail closed; automatic
713
713
  recovery to a new workspace and resource cleanup are not implemented yet.
714
714
 
715
+ Incremental publication can reuse a fully validated local baseline artifact's
716
+ record hashes after matching its repository/configuration, commit, build and
717
+ inventory/record hashes to the pinned remote baseline. Missing local files or a
718
+ different cached build fall back to listing that immutable baseline; corrupted
719
+ matching artifacts fail validation. Unchanged inventory parts also need no write.
720
+ Every new candidate still receives full document/hash and managed-vector
721
+ validation. A successful check is reused only within that invocation, after
722
+ confirming the candidate Tag still names the same Snapshot. Publication-stage
723
+ retries repeat full validation rather than trusting the journal.
724
+
725
+ This reduces redundant remote reads, not import complexity to the changed-code
726
+ size. Git tree enumeration, local full-artifact materialization/validation,
727
+ inventory construction and at least one complete candidate read remain. Further
728
+ reductions need a verified backend contract proving both mutation completeness
729
+ and preservation of unchanged baseline data; the final marker alone is insufficient.
730
+
715
731
  Git tag synchronization observes local `refs/tags/*` only. Multiple Git tags for
716
732
  one commit create separate `rel-*` Aliases targeting the same published Tag.
717
733
  An unimported/moved target is pending; the previously pinned version remains usable
package/VALIDATION.md CHANGED
@@ -864,6 +864,60 @@ work around propagation. Local evidence is retained in `registry-dev3.json`,
864
864
  `attestations-dev3.json`, and `provenance-dev3.json` under the release directory
865
865
  above. No stable release, GitHub Release, or Homebrew formula was created.
866
866
 
867
+ ## Incremental publication read reductions
868
+
869
+ Local comparison against `0e4de30` uses 120 fixed text files, one added path,
870
+ one modified path and one deleted path. Both versions contain 240 source records
871
+ plus an inventory part and root marker. The old revision was compiled separately
872
+ and exercised with the same fixture and fault-injection stores as the new code.
873
+ Managed vectors are synthetic 1536-dimensional fixture values; no provider or
874
+ LambdaDB calls are involved.
875
+
876
+ | Preset | Local baseline | Full list passes before / after | Listed documents before / after | Canonical document bytes before / after | Reduction |
877
+ | ------------- | -------------- | ------------------------------- | ------------------------------- | --------------------------------------- | --------- |
878
+ | Lexical | Available | 3 / 1 | 726 / 242 | 1,047,827 / 348,865 | 66.71% |
879
+ | Lexical | Missing state | 3 / 2 | 726 / 484 | 1,047,827 / 698,962 | 33.29% |
880
+ | Managed small | Available | 3 / 1 | 726 / 242 | 4,095,746 / 1,364,635 | 66.68% |
881
+ | Managed small | Missing state | 3 / 2 | 726 / 484 | 4,095,746 / 2,731,111 | 33.32% |
882
+
883
+ Bytes sum canonical JSON for documents yielded by `CollectionStore.list`, including
884
+ synthetic vectors. Passes are whole-corpus iterator invocations, not HTTP requests
885
+ or pages. These figures exclude control/marker fetches, query responses, Tag/Branch
886
+ metadata, transport overhead and server work. They are local fixture measurements,
887
+ not measured LambdaDB latency, operation charges, indexing or embedding performance.
888
+ The matched baseline shortcut trades a remote full-content read for full local
889
+ artifact validation; it does not remove that local CPU/I/O work.
890
+
891
+ Both implementations upsert six corpus documents for this update (68,089 lexical
892
+ bytes or 72,937 managed-input bytes), delete four obsolete source IDs and leave
893
+ unchanged records alone. The candidate still receives full validation. For a new
894
+ commit with identical source, the regression test also checks that only the root
895
+ marker is written, with the unchanged inventory part retained.
896
+
897
+ `test/incremental-import.test.mjs` covers matching, missing and mismatched local
898
+ baselines; missing local record files; corruption detection; missing unchanged
899
+ candidate chunks, unexpected IDs and stale markers; unknown delete/upsert results
900
+ and retries with or without prior local artifacts; publication-stage full
901
+ revalidation; replaced baseline/candidate Tags; unchanged managed-vector retention;
902
+ and operation/byte bounds. Existing CLI/package tests retain loopback coverage for
903
+ resumption and immutable source reads, including managed vector hydration.
904
+
905
+ Local checks on Node.js 24.15.0 and 22.23.4: all 182 Node tests passed on each
906
+ runtime, and typechecking and the exact installed-package suite passed on both
907
+ (seven package CLI tests each). `npm ci --ignore-scripts`, `npm run format:check`,
908
+ `npm run check:version` and `git diff --check` passed. The Python checks from CI
909
+ also passed: `local_rerank_test.py` (3), `qwen_worker_test.py` (6),
910
+ `benchmark_data_test.py` (2), `cosqa_bm25_test.py` (3) and `cosqa_rerank_test.py` (3).
911
+ The benchmark checks used an isolated environment with dependencies pinned in
912
+ `eval/bm25-requirements.txt`; no benchmark dataset or model was downloaded.
913
+
914
+ Remaining full-corpus work includes Git tree enumeration, local record copying
915
+ and validation, inventory construction, and one complete candidate comparison.
916
+ Missing local baselines add a remote baseline comparison. Retained-version
917
+ discovery also still reads version metadata. Further delta-only validation needs
918
+ a verified backend completeness/preservation/readiness contract; a marker or
919
+ changed-record sample is not a substitute. Dependency ingestion is outside scope.
920
+
867
921
  ## Local checks
868
922
 
869
923
  Runtime used: Node.js 24.15.0, npm 11.12.1. Dependencies are pinned in
package/dist/publish.js CHANGED
@@ -2,7 +2,7 @@ import { mkdir, rm, readFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { atomic, canonical, hash, invariant, optionalJson, sleep, } from "./common.js";
5
- import { corpusMetadata, records, recordHash, supportedPreset, validateBuild, } from "./build.js";
5
+ import { corpusMetadata, loadBuild, records, recordHash, supportedPreset, validateBuild, } from "./build.js";
6
6
  import { branch, tag, one } from "./remote.js";
7
7
  export function gitBranchName(ref) {
8
8
  invariant(ref.startsWith("refs/heads/") && ref.length > 11, "Expected a full Git branch ref.");
@@ -170,6 +170,56 @@ export async function published(store, binding) {
170
170
  return result.sort((a, b) => String(a.commitTime).localeCompare(String(b.commitTime)) ||
171
171
  a.commitOid.localeCompare(b.commitOid));
172
172
  }
173
+ /** A local artifact is only a cache for this exact, previously published baseline. */
174
+ async function baselineHashes(store, binding, preset, baseline, state, gitRef, local) {
175
+ const pin = (await store.tags()).find((t) => t.name === baseline.tagName);
176
+ const root = await one(store, tag(baseline.tagName), "__manifest__");
177
+ invariant(pin?.snapshotId === baseline.snapshotId &&
178
+ root?.repoId === binding.repoId &&
179
+ root.indexId === binding.indexId &&
180
+ root.configHash === binding.configHash &&
181
+ root.buildId === baseline.buildId &&
182
+ root.commitOid === baseline.commitOid &&
183
+ root.attemptId === baseline.attemptId &&
184
+ root.recordsHash === baseline.recordsHash &&
185
+ root.inventoryHash === baseline.inventoryHash, "Baseline Tag is missing or changed.");
186
+ if (!local) {
187
+ const last = await optionalJson(lastBuildPath(state, gitRef));
188
+ if (last) {
189
+ try {
190
+ local = await loadBuild(last.artifact);
191
+ }
192
+ catch (error) {
193
+ if (error.code !== "ENOENT")
194
+ throw error;
195
+ }
196
+ }
197
+ }
198
+ if (local &&
199
+ local.repoKey === binding.repoKey &&
200
+ local.configHash === binding.configHash &&
201
+ local.buildId === baseline.buildId &&
202
+ local.commitOid === baseline.commitOid &&
203
+ local.recordsHash === baseline.recordsHash &&
204
+ local.inventoryHash === baseline.inventoryHash) {
205
+ try {
206
+ await validateBuild(local);
207
+ const hashes = new Map(Object.entries(local.recordHashes));
208
+ for (const doc of corpusMetadata(local, binding.repoId, binding.indexId, baseline.attemptId))
209
+ hashes.set(doc.id, hash(doc));
210
+ return hashes;
211
+ }
212
+ catch (error) {
213
+ if (error.code !== "ENOENT")
214
+ throw error;
215
+ }
216
+ }
217
+ // Retain recovery without local files, including explicit same-artifact retries.
218
+ const hashes = new Map();
219
+ for await (const doc of store.list(tag(baseline.tagName)))
220
+ hashes.set(doc.id, recordHash(doc, preset));
221
+ return hashes;
222
+ }
173
223
  /** Caller holds the per-collection lock for the complete import. */
174
224
  export async function publish(args) {
175
225
  const { store, binding, build: b, state } = args;
@@ -323,18 +373,14 @@ export async function publish(args) {
323
373
  const marker = metadata.at(-1);
324
374
  if (j.phase === "writing") {
325
375
  // Reconcile from the immutable old Tag, never from a half-written writer.
326
- const oldIds = new Set();
327
- const oldHashes = new Map();
328
- if (j.baseline)
329
- for await (const d of store.list(tag(j.baseline.tagName))) {
330
- oldIds.add(d.id);
331
- oldHashes.set(d.id, recordHash(d, b.preset));
332
- }
376
+ const oldHashes = j.baseline
377
+ ? await baselineHashes(store, binding, b.preset, j.baseline, state, j.gitRef, args.baseline?.build)
378
+ : new Map();
333
379
  const newIds = new Set([
334
380
  ...Object.keys(b.recordHashes),
335
381
  ...metadata.map((d) => d.id),
336
382
  ]);
337
- const obsolete = [...oldIds].filter((id) => !newIds.has(id));
383
+ const obsolete = [...oldHashes.keys()].filter((id) => !newIds.has(id));
338
384
  const mutate = async (operation, payload, send) => {
339
385
  const receipt = {
340
386
  operation,
@@ -356,7 +402,8 @@ export async function publish(args) {
356
402
  if (oldHashes.get(d.id) !== hash(d))
357
403
  yield d;
358
404
  for (const d of metadata.slice(0, -1))
359
- yield d;
405
+ if (oldHashes.get(d.id) !== hash(d))
406
+ yield d;
360
407
  }
361
408
  for await (const docs of batches(changed()))
362
409
  await mutate("upsert", docs, () => store.upsert(j.writer, docs));
@@ -371,6 +418,7 @@ export async function publish(args) {
371
418
  const deadline = Date.now() + (args.timeoutMs ?? 120_000);
372
419
  const pause = args.pollMs ?? 1000;
373
420
  let rejectedSnapshot;
421
+ let validatedHere = false;
374
422
  while (j.phase === "waiting") {
375
423
  invariant(Date.now() < deadline, "Index validation timed out; build remains unpublished. Resume this artifact with --resume.");
376
424
  const visible = await one(store, branch(j.writer), "__manifest__", false);
@@ -392,13 +440,19 @@ export async function publish(args) {
392
440
  continue;
393
441
  }
394
442
  j.candidate = candidate;
443
+ validatedHere = true;
395
444
  j.phase = "publishing";
396
445
  await save();
397
446
  }
398
447
  invariant(j.candidate, "Missing validated candidate.");
399
- invariant(await validateCandidate(store, j.candidate.name, b, binding, j.attemptId), "Validated candidate is missing or changed.");
448
+ // Never persist this shortcut: a resumed journal must revalidate the full corpus.
449
+ if (!validatedHere)
450
+ invariant(await validateCandidate(store, j.candidate.name, b, binding, j.attemptId), "Validated candidate is missing or changed.");
451
+ const pins = await store.tags();
452
+ invariant(pins.find((t) => t.name === j.candidate.name)?.snapshotId ===
453
+ j.candidate.snapshotId, "Validated candidate Tag is missing or changed.");
400
454
  const name = versionTag(b.commitOid);
401
- const found = (await store.tags()).find((t) => t.name === name);
455
+ const found = pins.find((t) => t.name === name);
402
456
  const final = found ?? (await store.tag(name, tag(j.candidate.name)));
403
457
  invariant(existing
404
458
  ? final.snapshotId === existing.snapshotId
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@functional-systems/srcx",
3
- "version": "0.1.0-dev.35",
3
+ "version": "0.1.0-dev.37",
4
4
  "private": false,
5
5
  "description": "Version-aware code search on LambdaDB",
6
6
  "type": "module",
@@ -66,5 +66,5 @@
66
66
  "url": "https://github.com/lambdadb/srcx/issues"
67
67
  },
68
68
  "license": "Apache-2.0",
69
- "gitHead": "25781d8a66271798be0bc2f807010c5b73a29f65"
69
+ "gitHead": "605dc2ffbb39f849cc44201e5bbd558811015c50"
70
70
  }
package/src/publish.ts CHANGED
@@ -12,6 +12,7 @@ import {
12
12
  } from "./common.js";
13
13
  import {
14
14
  corpusMetadata,
15
+ loadBuild,
15
16
  records,
16
17
  recordHash,
17
18
  supportedPreset,
@@ -269,6 +270,72 @@ export async function published(
269
270
  a.commitOid.localeCompare(b.commitOid),
270
271
  );
271
272
  }
273
+ /** A local artifact is only a cache for this exact, previously published baseline. */
274
+ async function baselineHashes(
275
+ store: CollectionStore,
276
+ binding: Binding,
277
+ preset: Build["preset"],
278
+ baseline: Published,
279
+ state: string,
280
+ gitRef?: string,
281
+ local?: Build,
282
+ ): Promise<Map<string, string>> {
283
+ const pin = (await store.tags()).find((t) => t.name === baseline.tagName);
284
+ const root = await one(store, tag(baseline.tagName), "__manifest__");
285
+ invariant(
286
+ pin?.snapshotId === baseline.snapshotId &&
287
+ root?.repoId === binding.repoId &&
288
+ root.indexId === binding.indexId &&
289
+ root.configHash === binding.configHash &&
290
+ root.buildId === baseline.buildId &&
291
+ root.commitOid === baseline.commitOid &&
292
+ root.attemptId === baseline.attemptId &&
293
+ root.recordsHash === baseline.recordsHash &&
294
+ root.inventoryHash === baseline.inventoryHash,
295
+ "Baseline Tag is missing or changed.",
296
+ );
297
+ if (!local) {
298
+ const last = await optionalJson<{ artifact: string }>(
299
+ lastBuildPath(state, gitRef),
300
+ );
301
+ if (last) {
302
+ try {
303
+ local = await loadBuild(last.artifact);
304
+ } catch (error) {
305
+ if ((error as NodeJS.ErrnoException).code !== "ENOENT") throw error;
306
+ }
307
+ }
308
+ }
309
+ if (
310
+ local &&
311
+ local.repoKey === binding.repoKey &&
312
+ local.configHash === binding.configHash &&
313
+ local.buildId === baseline.buildId &&
314
+ local.commitOid === baseline.commitOid &&
315
+ local.recordsHash === baseline.recordsHash &&
316
+ local.inventoryHash === baseline.inventoryHash
317
+ ) {
318
+ try {
319
+ await validateBuild(local);
320
+ const hashes = new Map(Object.entries(local.recordHashes));
321
+ for (const doc of corpusMetadata(
322
+ local,
323
+ binding.repoId,
324
+ binding.indexId,
325
+ baseline.attemptId,
326
+ ))
327
+ hashes.set(doc.id, hash(doc));
328
+ return hashes;
329
+ } catch (error) {
330
+ if ((error as NodeJS.ErrnoException).code !== "ENOENT") throw error;
331
+ }
332
+ }
333
+ // Retain recovery without local files, including explicit same-artifact retries.
334
+ const hashes = new Map<string, string>();
335
+ for await (const doc of store.list(tag(baseline.tagName)))
336
+ hashes.set(doc.id, recordHash(doc, preset));
337
+ return hashes;
338
+ }
272
339
  /** Caller holds the per-collection lock for the complete import. */
273
340
  export async function publish(args: {
274
341
  store: CollectionStore;
@@ -519,18 +586,22 @@ export async function publish(args: {
519
586
  const marker = metadata.at(-1)!;
520
587
  if (j.phase === "writing") {
521
588
  // Reconcile from the immutable old Tag, never from a half-written writer.
522
- const oldIds = new Set<string>();
523
- const oldHashes = new Map<string, string>();
524
- if (j.baseline)
525
- for await (const d of store.list(tag(j.baseline.tagName))) {
526
- oldIds.add(d.id);
527
- oldHashes.set(d.id, recordHash(d, b.preset));
528
- }
589
+ const oldHashes = j.baseline
590
+ ? await baselineHashes(
591
+ store,
592
+ binding,
593
+ b.preset,
594
+ j.baseline,
595
+ state,
596
+ j.gitRef,
597
+ args.baseline?.build,
598
+ )
599
+ : new Map<string, string>();
529
600
  const newIds = new Set([
530
601
  ...Object.keys(b.recordHashes),
531
602
  ...metadata.map((d) => d.id),
532
603
  ]);
533
- const obsolete = [...oldIds].filter((id) => !newIds.has(id));
604
+ const obsolete = [...oldHashes.keys()].filter((id) => !newIds.has(id));
534
605
  const mutate = async (
535
606
  operation: string,
536
607
  payload: unknown,
@@ -554,7 +625,8 @@ export async function publish(args: {
554
625
  async function* changed() {
555
626
  for await (const d of records(b.directory))
556
627
  if (oldHashes.get(d.id) !== hash(d)) yield d;
557
- for (const d of metadata.slice(0, -1)) yield d;
628
+ for (const d of metadata.slice(0, -1))
629
+ if (oldHashes.get(d.id) !== hash(d)) yield d;
558
630
  }
559
631
  for await (const docs of batches(changed()))
560
632
  await mutate("upsert", docs, () => store.upsert(j!.writer, docs));
@@ -570,6 +642,7 @@ export async function publish(args: {
570
642
  const deadline = Date.now() + (args.timeoutMs ?? 120_000);
571
643
  const pause = args.pollMs ?? 1000;
572
644
  let rejectedSnapshot: string | undefined;
645
+ let validatedHere = false;
573
646
  while (j.phase === "waiting") {
574
647
  invariant(
575
648
  Date.now() < deadline,
@@ -598,16 +671,25 @@ export async function publish(args: {
598
671
  continue;
599
672
  }
600
673
  j.candidate = candidate;
674
+ validatedHere = true;
601
675
  j.phase = "publishing";
602
676
  await save();
603
677
  }
604
678
  invariant(j.candidate, "Missing validated candidate.");
679
+ // Never persist this shortcut: a resumed journal must revalidate the full corpus.
680
+ if (!validatedHere)
681
+ invariant(
682
+ await validateCandidate(store, j.candidate.name, b, binding, j.attemptId),
683
+ "Validated candidate is missing or changed.",
684
+ );
685
+ const pins = await store.tags();
605
686
  invariant(
606
- await validateCandidate(store, j.candidate.name, b, binding, j.attemptId),
607
- "Validated candidate is missing or changed.",
687
+ pins.find((t) => t.name === j!.candidate!.name)?.snapshotId ===
688
+ j.candidate.snapshotId,
689
+ "Validated candidate Tag is missing or changed.",
608
690
  );
609
691
  const name = versionTag(b.commitOid);
610
- const found = (await store.tags()).find((t) => t.name === name);
692
+ const found = pins.find((t) => t.name === name);
611
693
  const final = found ?? (await store.tag(name, tag(j.candidate.name)));
612
694
  invariant(
613
695
  existing