@functional-systems/lambdadb-cli 0.1.4-dev.16 → 0.1.4-dev.17

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/VALIDATION.md DELETED
@@ -1,1017 +0,0 @@
1
- # Validation record
2
-
3
- ## CLI 0.1.3 publication (2026-10-06)
4
-
5
- With explicit release authorization, annotated tag `v0.1.3` was created on main
6
- commit `90628ed3648aea0ae381c061a95aebbbf48e9259` and the stable
7
- [GitHub Release](https://github.com/lambdadb/lambdadb-cli/releases/tag/v0.1.3)
8
- triggered [OIDC publication](https://github.com/lambdadb/lambdadb-cli/actions/runs/37466450036).
9
- The workflow succeeded on attempt 1, repeating Node 22/24 validation and
10
- installed-tarball tests before publishing the exact tested artifact.
11
-
12
- - Registry reads confirmed `latest=0.1.3`, `dev=0.1.3-dev.15`.
13
- - `node /tmp/lambdadb-cli-release013/main/verify-publication.mjs` fetched registry
14
- metadata, downloaded the tarball and verified its SHA-512 integrity. Its bytes
15
- exactly match the final reviewed main candidate described below.
16
- - A clean, unqualified `npm install --prefer-online --cache <isolated-cache>
17
- --no-audit --no-fund @functional-systems/lambdadb-cli` selected CLI 0.1.3 and
18
- SDK 0.8.0. Version and query/update help passed. All 54 CLI contract tests
19
- executed against this registry-installed binary, with no failures or skips.
20
- - `npm audit signatures --prefer-online --cache <isolated-cache>` verified four
21
- registry signatures and three attestations. The isolated cache avoids stale
22
- local npm metadata; the user's global installation was not changed.
23
- - Decoded [SLSA provenance](https://registry.npmjs.org/-/npm/v1/attestations/@functional-systems%2flambdadb-cli@0.1.3)
24
- matches the downloaded artifact's digest, release commit, `refs/tags/v0.1.3`,
25
- repository and `.github/workflows/publish.yaml` run 37466450036.
26
- - The registry's full metadata, npm installation metadata and signature lookup
27
- became visible at different times. Initial reads returned 404, selected the
28
- older latest package or returned ETARGET during audit. Only reads and isolated
29
- installation were retried; publication was not repeated and no tag was moved.
30
-
31
- Published tarball SHA-256:
32
- `ef98f935c5274ee6b4c7991669e46648fee4070a1105b1a265df6a6faf791b07`.
33
- Its SHA-512 integrity is
34
- `sha512-vgS5U+dVBVpjpi1KVhHr6XL/VPj6gJ3nHxWg8osGwK2ZiDP8CzZ4o3ebMzEP13Pg+G98akZKTiitiM2prvCWsw==`.
35
- The matching immutable release `package-lock.json` has SHA-256
36
- `4e1a5028be3b610e3c55f2e91954270ae767e1d958810a3ac469f056f82d1c81`.
37
- These values prepare the 0.1.3 Homebrew formula; they do not publish the public tap.
38
- `bash scripts/test-homebrew.sh` passed locally on macOS arm64: formula style,
39
- installation, brew test, wrapper isolation from ambient Node and all 54 released
40
- CLI contracts. The test uninstalled its CLI and removed its disposable tap.
41
- This was a fresh local installation, not an existing-user upgrade.
42
-
43
- The post-release PR brings main history into develop, starts `0.1.4-dev.1`, and
44
- updates publication records and the local Homebrew formula. Source/query behavior
45
- is unchanged. Homebrew CI results are recorded in that PR; the public tap still
46
- serves 0.1.2 pending its separate reviewed update. No production validation,
47
- server deployment, billing verification or new search-default promotion occurred.
48
- The installed-candidate live smoke and verified Collection cleanup below remain
49
- applicable because the published runtime is byte-identical.
50
-
51
- Sanitized original logs, registry metadata, provenance, the publication tarball
52
- and the isolated consumer are retained under `/tmp/lambdadb-cli-release013/main/`.
53
- No scratch artifacts or credentials are committed.
54
-
55
-
56
- ## CLI 0.1.3 release preparation (2026-10-06)
57
-
58
- Prepared from reviewed develop `caee1bcb6ce864c33647673b54a48f7cc06dcf84`
59
- ([PR #18](https://github.com/lambdadb/lambdadb-cli/pull/18)); its tree matches
60
- feature head `9589c7a`, whose Node 22/24 CI and automatic review completed with
61
- no findings. The release branch changes only version/changelog and release
62
- evidence relative to develop. Runtime source, examples, tests and workflow
63
- remain identical. Stable publication is not authorized or claimed here.
64
-
65
- On Node 24.15.0, these commands passed:
66
-
67
- ```sh
68
- npm ci
69
- npm run lint
70
- npm run check:version
71
- RELEASE_TAG=v0.1.3 RELEASE_PRERELEASE=false node scripts/check-release.mjs --release
72
- npm run typecheck
73
- npm test
74
- npm pack --json --pack-destination /tmp/lambdadb-cli-release013
75
- npm run test:package -- /tmp/lambdadb-cli-release013/functional-systems-lambdadb-cli-0.1.3.tgz
76
- ```
77
-
78
- The metadata check validates release settings without creating a tag. All 79
79
- source tests and 54 separately installed CLI tests passed, with zero failures
80
- or skips. The candidate inventory contains 45 files, including the new examples
81
- and no credentials, scratch files or test harnesses.
82
-
83
- An isolated installation of the packed 0.1.3 candidate, with SDK 0.8.0, then ran
84
- the actual CLI against authorized development project `bench-recall` at
85
- `https://internal-dev-aws-apne2-v3-c05a2b5d492a.lambdadb.ai`:
86
-
87
- ```sh
88
- npm install --prefix /tmp/lambdadb-cli-release013/consumer --no-audit --no-fund /tmp/lambdadb-cli-release013/functional-systems-lambdadb-cli-0.1.3.tgz
89
- LAMBDADB_TEST_CLI=/tmp/lambdadb-cli-release013/consumer/node_modules/@functional-systems/lambdadb-cli/dist/cli.js node --env-file=.env.local /tmp/lambdadb-cli-sdk080/run-live.mjs
90
- ```
91
-
92
- The launcher used the existing private environment only in memory and ran
93
- `npm run test:live`; the harness selected the installed binary through
94
- LAMBDADB_TEST_CLI. The complete suite passed in 113.4 seconds: 1 test, zero
95
- failures/skips. It exercised analyzer metadata, ordinary/bulk imports, committed
96
- query/fetch contents, facets, native/legacy create/update and actual embeddings,
97
- Bayesian budgets and reranking, retrieval scores and all 30 server rejection
98
- checks described in the SDK 0.8.0 record below.
99
-
100
- Deletion and subsequent HTTP 404 verified cleanup of all three Collections:
101
-
102
- - `cli-smoke-29074d17-7e21-460a-9823-a6e49f30d067`
103
- - `cli-native-3c9bcae9-1b91-424f-8504-ac755078ac13`
104
- - `cli-native-3b18c438-83d7-44eb-8c8d-bfc7949f35c5`
105
-
106
- The live-tested tarball has integrity
107
- `sha512-GzQVy1ZJgtT8O2q5wXDV+mhegYk6MBzZ6hSNMOjKq1BGUu6dW1P0F69dHDFJC3Q8o6gvUYQGv41DZMvfMXxaIQ==`.
108
- It and its manifest remain under `/tmp/lambdadb-cli-release013/live-tested/`;
109
- logs and the installed consumer remain in the parent directory. This evidence
110
- section changes packaged documentation after the live run. The final package is
111
- repacked and checked by the installed CLI suite; its runtime and examples are
112
- compared byte-for-byte to the live-tested installation. Its final integrity and
113
- remote CI/review results are recorded in the release PR.
114
-
115
- The earlier same-day deployment provenance record below identifies backend
116
- `9072a1bc8925954369a887f558f1eaf387b7ea0e`. This bounded test does not establish
117
- production availability, ranking quality, load or billing behavior. No new
118
- Homebrew installation or older-server tests were run. The checked-in/public tap
119
- still points to published 0.1.2; its 0.1.3 update follows a separately authorized
120
- stable publication. No server deployment, npm latest change, tag or GitHub
121
- Release was performed by this preparation.
122
-
123
-
124
- ## SDK 0.8.0 CLI compatibility (2026-10-06)
125
-
126
- Candidate: `feat/sdk-0.8.0`, based on develop `8e76422`; CLI development version
127
- `0.1.3-dev.1`, exact SDK `0.8.0`, Node `24.15.0`. This change does not publish
128
- or promote a package. Repository instructions contain no local AGENTS.md;
129
- CONTRIBUTING.md, RELEASING.md, CI, runtime/input/output and adjacent commands
130
- were inspected before implementation.
131
-
132
- ### Local and installed validation
133
-
134
- The following commands passed:
135
-
136
- ```sh
137
- npm ci
138
- npm run lint
139
- npm run check:version
140
- npm run typecheck
141
- npm test
142
- npm run test:package
143
- git diff --check
144
- ```
145
-
146
- `npm test` executed 79 tests, with no failures/skips. `npm run test:package`
147
- packed and separately installed the CLI, checked inventory/version/help, and
148
- executed all 54 CLI contract tests with no failures/skips. This is executed
149
- subprocess coverage, not merely compilation. New coverage includes Bayesian
150
- JSON mapping and budgets, omitted/null defaults, ref/input precedence, unchanged
151
- ordinary fusion requests, local versus server errors, native/legacy create and
152
- update, contradictory embedding inputs, uncertain mutations without retries,
153
- and full JSON/human results with rerank metadata through inline and docsUrl
154
- responses. No SDK query DSL validator was added.
155
-
156
- ### Current deployment provenance
157
-
158
- Read-only AWS inspection used profile `dev`, region `ap-northeast-2`:
159
- `aws ecs list-services`, `describe-services`, `list-tasks`, `describe-tasks`,
160
- and `aws ecr describe-images --image-ids imageTag=dev-v3-9072a1b` for the
161
- Gateway and Query Executor repositories. Both services had desired/running
162
- counts 1/1, task definition revision 16 and rollout `COMPLETED`.
163
- Running digest and the ECR `dev-v3-9072a1b` tag agreed:
164
-
165
- - Gateway: `sha256:300f65269579fcff327366490505327a549e38249c371e93df07f2ae0669bfef`.
166
- - Query Executor: `sha256:bf87b32fdcbaf1b17f5cacb3ec8e9f1af1eb7ef51566d06cfb74273e3f857a54`.
167
-
168
- `gh run view 37422611173 --repo lambdadb/lambdadb --json headSha,conclusion,url`
169
- confirmed the [successful deployment](https://github.com/lambdadb/lambdadb/actions/runs/37422611173)
170
- for pinned backend `9072a1bc8925954369a887f558f1eaf387b7ea0e`. The deployment
171
- run, image tag and running digests were compared together; no deployment or
172
- infrastructure configuration was changed.
173
-
174
- ### Actual CLI on the authorized development target
175
-
176
- Target: `bench-recall` at
177
- `https://internal-dev-aws-apne2-v3-c05a2b5d492a.lambdadb.ai`, following the
178
- existing repository test-environment workflow. The repository's private
179
- `.env.local` supplied its existing opt-in and credential; nothing was borrowed
180
- from another repository. The command was:
181
-
182
- ```sh
183
- node --env-file=.env.local /tmp/lambdadb-cli-sdk080/run-live.mjs
184
- ```
185
-
186
- This uncommitted launcher verified the exact endpoint/project and opt-in,
187
- mapped `LAMBDADB_BASE_URL`, `LAMBDADB_PROJECT_NAME`, and
188
- `LAMBDADB_PROJECT_API_KEY` in memory to the CLI variables, set
189
- `LAMBDADB_LIVE_CONFIRM_PROJECT`, and ran `npm run test:live` (build followed by
190
- `node --test test/live/*.test.mjs`). Credentials never entered command arguments,
191
- logs or committed files. The suite passed in 94.8 seconds: one test, zero
192
- failures/skips, using the actual CLI for all creation, updates, imports and reads.
193
-
194
- - Doctor, all 49 analyzer presets, ordinary/bulk imports, exact committed
195
- query/fetch document contents, facets, and default/null/custom reranking passed.
196
- - Both native embedding-only and explicit legacy true configurations passed
197
- create/update and normalized metadata checks with explicit 256 dimensions and
198
- cosine similarity inside embedding. Actual OpenAI document/query embeddings
199
- worked through ordinary upsert and KNN queryText.
200
- - Bayesian retrieval returned all expected documents. Holding candidateSize=30
201
- while changing size from 3 to 1 preserved the result prefix. Ordinary
202
- text/KNN/RRF/Min-Max/L2 worked without a top-level candidate budget.
203
- - Default and explicit rerank budgets both produced `applied`, three candidates,
204
- three scored candidates and two final results. Finite final scores were in
205
- [0,1], and retrievalScore exactly matched the baseline Bayesian scores. Null
206
- rerank preserved the baseline documents/scores without rerank metadata.
207
- - For each native/legacy Collection, 15 invalid requests retained API_ERROR,
208
- HTTP 400 and exit 3: missing/invalid/conflicting candidate budgets, wrong signal
209
- counts, boosts including Boolean descendants, nested fusion and a Bayesian
210
- budget on an ordinary query.
211
- - Cleanup deleted and verified HTTP 404 for all temporary Collections:
212
- `cli-smoke-61877546-2601-4df9-aeeb-91d87f44c2a5`,
213
- `cli-native-4e72c926-fe9e-4bbd-822e-1667be3e619f`, and
214
- `cli-native-2892e6ab-af3c-4a23-aff7-bb5793f7f31e`.
215
-
216
- Sanitized logs and deployment evidence are retained outside the repository in
217
- `/tmp/lambdadb-cli-sdk080/`. No temporary test data remains in those Collections.
218
- The live run used the built source CLI; installed-artifact validation used
219
- loopback servers. Full downloaded documents are covered by local transport tests;
220
- large live results alone do not prove that the server selected docsUrl.
221
- Older-server deployment, production behavior, search quality, load, billing,
222
- and Homebrew installation were not tested. Older servers may require explicit
223
- `managedEmbedding: true` and may reject Bayesian search. Existing flag precedence,
224
- ordinary query behavior, output schema and SDK transfer handling are preserved.
225
-
226
-
227
- Updated: 2026-10-04. Local contract tests use loopback servers and synthetic
228
- credentials. Authenticated development-project evidence is recorded separately.
229
-
230
- ## CLI 0.1.2 publication (2026-10-04)
231
-
232
- [PR #15](https://github.com/lambdadb/lambdadb-cli/pull/15) merged as
233
- `6628fe0ed1f405c88fbd91d591e5223d3250dd73`. The annotated v0.1.2 tag points to
234
- that commit. [GitHub Release v0.1.2](https://github.com/lambdadb/lambdadb-cli/releases/tag/v0.1.2)
235
- triggered [OIDC publication](https://github.com/lambdadb/lambdadb-cli/actions/runs/37191188846),
236
- which passed Node 22/24 validation and exact-artifact tests on attempt 1.
237
-
238
- - Registry latest=0.1.2; dev=0.1.2-dev.12 remained unchanged.
239
- - Downloaded npm tarball is byte-identical to the reviewed final candidate and
240
- merged-main pack. SHA-256:
241
- `e63c2c0fd624e1d81c45c5ba24d641a11ee0ecdc60f063aba4268e06547761ea`.
242
- Registry SHA-512 integrity:
243
- `sha512-9l1WPN2vrX+JXRjuOh7Uz5DCVcaiV/YLpYKgZb7ORU1jphaAIx38VSWeiQitz0V2Nw/b1vTxfcXzvra6EAkaFg==`.
244
- - An isolated registry consumer passed all 46 installed CLI contracts and
245
- version/help. Its lockfile integrity matched npm and SDK resolves to 0.7.0.
246
- npm audit signatures verified four registry signatures and three attestations.
247
- - Decoded [provenance](https://registry.npmjs.org/-/npm/v1/attestations/@functional-systems%2flambdadb-cli@0.1.2)
248
- matched the artifact digest, repository, release commit, refs/tags/v0.1.2,
249
- publish.yaml and workflow run 37191188846. Verification retried registry reads
250
- during propagation without another publication. Temporary consumer, archive
251
- and cache were removed.
252
- - The candidate live evidence below applies to the identical published artifact;
253
- no additional live run was performed. The earlier failed sample remains recorded.
254
- - Formula handoff pins this npm tarball and release lockfile SHA-256
255
- `e2d12af262d13c3a23073d1313b183766bb40b5360abeb0d773b5100819dac65`.
256
- The completed tap handoff and bounded upgrade evidence are recorded below.
257
-
258
- These checks establish artifact publication and the recorded development sample;
259
- production deployment, search quality, load/failure coverage and billing readiness
260
- remain separate dependencies.
261
-
262
- ## CLI 0.1.2 post-release verification (2026-10-04)
263
-
264
- [PR #16](https://github.com/lambdadb/lambdadb-cli/pull/16) merged as
265
- `aefbaeed9c799e76dd7a9501ecda6ab80dc6e958`, preserving release commit `6628fe0`
266
- as an ancestor of develop and starting the 0.1.3-dev.1 development base.
267
-
268
- - [Automatic publication](https://github.com/lambdadb/lambdadb-cli/actions/runs/37192027479)
269
- passed Node 22/24 validation and published 0.1.3-dev.13. An independent isolated
270
- registry consumer passed all 46 CLI contracts, version/help, SDK 0.7.0 and
271
- integrity checks. npm audit signatures verified four signatures and three
272
- attestations. Decoded provenance matched the artifact digest, merge commit,
273
- repository, develop ref and workflow run. At verification, dev=0.1.3-dev.13
274
- and latest=0.1.2. Temporary consumer, source archive and cache were removed.
275
- - [Homebrew PR #6](https://github.com/lambdadb/homebrew-tap/pull/6) merged as
276
- `ae9a7456acd10015d51b9ea8d58aee76afe3da28`. The public formula matches the
277
- CLI-side formula and pins the verified npm 0.1.2 artifact and release lockfile.
278
- - [Public-tap CI](https://github.com/lambdadb/homebrew-tap/actions/runs/37192619208)
279
- passed on macOS arm64 and Linux x86_64. It installed from the remote public tap
280
- and checked formula equality, style, version, JSON configuration, file
281
- permissions and Node runtime selection. Existing migration checks also passed;
282
- no migration formula was changed. Hosted test installations and taps were removed.
283
- - A separate local macOS arm64 test installed 0.1.1 into a disposable tap, replaced
284
- its formula with the exact merged public 0.1.2 formula, ran brew upgrade and
285
- verified version 0.1.2 and brew test. Both test-owned versions and the temporary
286
- tap were removed; the original user taps were preserved. This establishes the
287
- formula version transition, not an existing user's public-tap upgrade or Linux
288
- upgrade coverage. No LambdaDB service resources or credentials were used.
289
- - Merged feature branches were removed and both primary checkouts were clean.
290
- The candidate and development-service evidence below remain historical samples;
291
- this post-release verification did not run another live service smoke.
292
-
293
- ## CLI 0.1.2 stable candidate (2026-10-04)
294
-
295
- This section records the pre-publication candidate milestone. Publication and
296
- post-release results are recorded above.
297
-
298
- Prepared release/0.1.2 from reviewed develop merge `aef74a3`, retaining SDK 0.7.0
299
- and all reviewed runtime/test changes. The release branch changes only version
300
- metadata, the dated changelog and release/validation documentation. Stable npm
301
- 0.1.2 was absent when checked; latest remains 0.1.1. No stable tag, GitHub Release,
302
- package publication or main merge was performed during preparation.
303
-
304
- - npm ci, lint, typecheck, version checks and the explicit
305
- RELEASE_TAG=v0.1.2 / RELEASE_PRERELEASE=false preflight passed on Node 24.15.0
306
- with npm 11.12.1. All 71 source tests and 46 separately installed CLI tests passed.
307
- The executable and lockfile agree on 0.1.2, and the installed SDK is 0.7.0.
308
- - A candidate tarball was installed into an isolated consumer with its own npm
309
- cache. Its executable was selected via LAMBDADB_TEST_CLI for the authorized
310
- development smoke using the existing .env.local target and in-memory mapping.
311
- The successful run took 54.4 seconds: accepted writes at about 3 seconds,
312
- committed query/fetch contents at about 52 seconds, exact facets and managed
313
- reranking default/null/custom by about 54 seconds. All 49 preset metadata
314
- checks passed. Cleanup returned HTTP 404 for
315
- `cli-smoke-14b21fee-59e1-4898-9ef2-8a57db823de0`.
316
- - The first candidate live attempt failed after 53.2 seconds during query
317
- observation with exit 3 and no HTTP status. The log does not distinguish a
318
- transport timeout from another request failure; this is not a passing sample
319
- or proof of a candidate defect. No runtime code was changed for the retry.
320
- Cleanup was not confirmed by that run. An independent SDK get found its
321
- test-owned collection still present; delete was accepted and a subsequent
322
- get returned HTTP 404 for `cli-smoke-c42a987e-592a-4611-a8d7-04cf5b90ad15`.
323
- - Every live launcher checked .env.local's SHA-256 before/after execution. It
324
- remained byte-for-byte unchanged. Temporary consumers, caches and initial
325
- candidate tarballs were removed.
326
- - Only documentation was updated after the successful live run. The final
327
- review tarball is rebuilt and checked again through the installed-package
328
- suite; generated dist remains ignored. Candidate publication will be verified
329
- independently after approval, rather than assuming dev provenance applies.
330
- - The public Homebrew tap was read and matches the verified 0.1.1 formula. Its
331
- 0.1.2 update waits for the stable npm artifact and immutable release lockfile.
332
-
333
- The live checks are bounded development evidence. Provider failure/load behavior,
334
- dense vector reranking, new-preset language quality, production deployment and
335
- billing readiness remain outside this verification. The PR must pass Node 22/24
336
- CI and receive review before main promotion. Tagging and publication are separate
337
- approved actions; synchronize main back into develop with 0.1.3-dev.1 afterward.
338
-
339
- ## Published SDK 0.7.0 development consumer (2026-10-04)
340
-
341
- The [develop merge workflow](https://github.com/lambdadb/lambdadb-cli/actions/runs/37188862636)
342
- completed successfully and published
343
- [`0.1.2-dev.12`](https://www.npmjs.com/package/@functional-systems/lambdadb-cli/v/0.1.2-dev.12)
344
- from `aef74a3deeacb1e5d3f50856301562b58739fcdd` on attempt 1. Required Node
345
- 22/24 validation and the exact publication artifact tests passed. Registry
346
- visibility was checked with reads while the automatic job completed; no second
347
- publication was attempted. At verification, dev=0.1.2-dev.12 and latest=0.1.1.
348
-
349
- - Downloaded tarball SHA-512 matched registry integrity and the clean consumer
350
- lockfile. SDK dependency and the installed SDK both resolve exactly to 0.7.0.
351
- Integrity: `sha512-AyGfP2ibeu/unYj5RvkkBO2WICkCMk6dp+4TauH0Da2xBsN6g3Nub7MmM/ZeiRE93wwV9r05IhXV2DyS28WY1A==`.
352
- - Registry/installed gitHead and decoded
353
- [provenance](https://registry.npmjs.org/-/npm/v1/attestations/@functional-systems%2flambdadb-cli@0.1.2-dev.12)
354
- agree on the merge commit, repository, develop ref, publish.yaml workflow and
355
- run 37188862636; the provenance subject digest matches the downloaded artifact.
356
- - A fresh tarball consumer passed version/help and all 46 CLI contracts. Tests
357
- came from an archived merge-source snapshot, with its expected package version
358
- set to the generated published version. A separate registry-version consumer
359
- with an isolated cache verified matching lockfile integrity and SDK version;
360
- npm audit signatures verified four registry signatures and three attestations,
361
- including the published CLI. The preliminary local-tarball audit verified only
362
- the three registry dependencies, so the registry consumer verified the CLI too.
363
- - The published CLI's executable was selected through LAMBDADB_TEST_CLI for the
364
- expanded authorized development smoke. All 49 preset metadata, ordinary/bulk
365
- writes, full committed query/fetch contents, exact facets and managed reranking
366
- default/null/custom checks passed in 81.9 seconds. Query contents appeared at
367
- about 78 seconds; acceptance at about 2 seconds did not imply search readiness.
368
- - Cleanup was accepted and HTTP 404 confirmed for
369
- `cli-smoke-5028c4c7-535c-4b29-8978-b3b805054d7d`. Temporary consumers, caches,
370
- source snapshots and tarballs were removed. .env.local remained byte-for-byte
371
- unchanged. The designated target and in-memory environment mapping are recorded
372
- in the authenticated follow-up below.
373
-
374
- This establishes the published development artifact and a bounded sample on one
375
- development target. It does not establish stable publication, production feature
376
- deployment, language-specific search quality, load/failure coverage or billing
377
- readiness.
378
-
379
- ## SDK 0.7.0 local compatibility (2026-10-04)
380
-
381
- The checkout began clean on develop at `3903531`. npm now pins the released
382
- SDK 0.7.0 in both package.json and package-lock.json. Existing 0.1.1 publication
383
- and live evidence below remain historical; no new CLI package was published.
384
-
385
- - `npm ci`, lint, typecheck and version/lockfile checks passed with Node 24.15.0
386
- and npm 11.12.1. npm reported zero dependency vulnerabilities.
387
- - Source suite: 69 tests passed on Node 24.15.0 and Node 22.23.3, with no failures
388
- or skips. Installed tarballs: 44 CLI tests passed on each runtime in temporary
389
- consumers; package inventory and executable version/help checks passed.
390
- - Expanded analyzer forwarding covers all 49 names, existing omitted/default
391
- serialization and lowercase rejection. Rerank cases check custom criteria,
392
- null/omission, separate size/candidate cap/vector k, local validation, final and
393
- retrieval scores (including zero/precision), tie order, metadata and facets.
394
- Applied/empty/fallback/unused results are checked inline and through docsUrl;
395
- API failures remain errors with returnOriginal. These are synthetic transport
396
- contracts, not induced provider failures or language-quality measurements.
397
- - Repeated TypeScript builds produced identical hashes for all 21 generated
398
- files. No separate schema/model generator exists; generated dist stays ignored.
399
- - No local Qdrant mapping exists. The upstream stricter schema-option behavior
400
- and unchanged type-only mapping are documented in DESIGN.md.
401
-
402
- The initial update did not inspect the existing ignored `.env.local` and therefore
403
- ran only local tests. Steven subsequently explicitly authorized using that file;
404
- the development-service follow-up below supersedes the initial live-test omission.
405
- Supporting production deployment, search quality, load/failure coverage and billing
406
- readiness remain unverified. No merge, deployment or publication was performed.
407
-
408
- ## SDK 0.7.0 review follow-up: rerank token redaction (2026-10-04)
409
-
410
- The PR review identified a valid protocol regression: a credential equal to
411
- `applied` rewrote `data.rerank.status` to `[REDACTED]`. The new CLI regression
412
- failed before the fix, while the negative test for arbitrary metadata passed.
413
- The output sanitizer now preserves exact known status/provider/model/criteria
414
- version/reason tokens only at their contract paths. Unknown server values,
415
- resolvedModel and document content retain credential redaction; whole metadata
416
- paths are not exempted because the SDK accepts open strings for several fields.
417
-
418
- On Node 24.15.0, lint, typecheck, version checks, all 71 source tests and all 46
419
- separately installed CLI tests passed with no failures or skips. The two new
420
- cases cover every fixed token and a one-character credential, JSON and human
421
- output, docsUrl results, nested document maps and unknown provider/model/reason
422
- values. Repeated builds remain identical for all 21 generated files. This is a
423
- local redaction fix; the prior development-service evidence remains applicable
424
- to SDK API behavior and was not rerun with synthetic colliding credentials.
425
-
426
- ## SDK 0.7.0 authenticated development follow-up (2026-10-04)
427
-
428
- Tested the built CLI runtime from `b6b9cbc` (CLI `0.1.2-dev.1`, SDK `0.7.0`) on
429
- Node 24.15.0 with the expanded live harness in this PR. Target:
430
- `bench-recall` at `https://internal-dev-aws-apne2-v3-c05a2b5d492a.lambdadb.ai`.
431
- The existing `.env.local` supplied the API key and `LAMBDADB_RUN_LIVE_TESTS=1`.
432
- A `node --env-file=.env.local` launcher mapped `LAMBDADB_BASE_URL`,
433
- `LAMBDADB_PROJECT_NAME` and `LAMBDADB_PROJECT_API_KEY` in memory to the CLI's
434
- `LAMBDADB_ENDPOINT`, `LAMBDADB_PROJECT` and `LAMBDADB_API_KEY`, and set
435
- `LAMBDADB_LIVE_CONFIRM_PROJECT` to the same authorized project. It ran
436
- `node --test --test-reporter=tap test/live/cli.test.mjs` without printing credentials.
437
-
438
- - Doctor and temporary collection creation passed. All 49 fixed presets were
439
- accepted as individual text field configurations, and describe metadata
440
- preserved each requested configuration. The keyword analyzer and keyword field
441
- type remained distinct. Unpopulated preset fields test acceptance/metadata,
442
- not language-specific indexing or search quality.
443
- - Two ordinary documents with 3 MiB payloads each and one bulk document were
444
- accepted at about 4 seconds. Committed query and fetch contents for all three
445
- passed at about 100 seconds, without a pending-write overlay.
446
- - Match-all facet-only and document-plus-facet queries returned exact expected
447
- document counts and category buckets.
448
- - Default reranking and custom criteria returned `applied`, candidate/scored
449
- counts of three, expected provider/model and criteria-version markers, finite
450
- final evaluation and retrieval scores, descending final-score order and matching
451
- maxScore. Null rerank retained ordinary results with no rerank metadata or
452
- retrievalScore. All three expected IDs were preserved. These checks exercised
453
- the CLI, its published SDK and the designated development service, with no Jev key.
454
- - The final run passed in 102.4 seconds. Cleanup was accepted and get returned
455
- HTTP 404 for `cli-smoke-571da4e7-2402-4652-aa81-c44824964fdc`.
456
- - Two earlier attempts failed only in newly added test metadata assertions:
457
- first the response's collection wrapper was missed, then the server-added
458
- default id index was compared as an unexpected field. The harness now compares
459
- every requested index configuration while allowing server-added fields.
460
- Both temporary collections were deleted and HTTP 404 confirmed:
461
- `cli-smoke-ec8b9c3f-c94f-4c4a-bfff-3dad2a24516b` and
462
- `cli-smoke-7fed413e-cbe5-4e15-a7dc-e334a3fac537`.
463
- - Every attempt verified `.env.local` remained byte-for-byte unchanged using
464
- SHA-256. Temporary local files were removed by the harness. Lint, typecheck
465
- and diff checks passed after the harness changes.
466
-
467
- This is bounded development evidence. The live harness does not inspect wire
468
- responses to prove docsUrl selection, induce provider fallback or load failures,
469
- measure ranking quality, test dense vector reranking, or establish production
470
- feature deployment or billing readiness. Local transport regressions cover
471
- zero/precision/ties, docsUrl metadata, independent vector k and failure handling.
472
-
473
- ## CLI 0.1.1 publication
474
-
475
- On 2026-09-29, [release v0.1.1](https://github.com/lambdadb/lambdadb-cli/releases/tag/v0.1.1)
476
- was published from tag/main commit `80a4c10628ad2ad4ebf8d90a01924d27dcb4a790`,
477
- whose tree equals candidate `0291970`. The
478
- [release workflow](https://github.com/lambdadb/lambdadb-cli/actions/runs/36557578359)
479
- passed on attempt 1, including Node 22/24 and exact publication-artifact tests.
480
-
481
- - Registry reads confirmed `latest=0.1.1`, `dev=0.1.1-dev.10`. The stable tarball
482
- matches the final tested candidate byte-for-byte. SHA-512 integrity:
483
- `sha512-5eYw4NSCDPQrJZVDwfAg9cPtdSuipPy6/FzTj08EDn94/rRJEFLb0Meih2hzbzOSqvNLOn+MJD8Ij0a+nXe99A==`.
484
- - Decoded provenance identifies the same release commit, `refs/tags/v0.1.1`,
485
- `.github/workflows/publish.yaml`, run `36557578359`, attempt 1; its subject digest
486
- matches the downloaded tarball. Stable metadata does not expose `gitHead`, so
487
- source identity is established by provenance and the artifact comparison.
488
- - A clean unqualified consumer install selected CLI 0.1.1 and SDK 0.6.0 and passed
489
- all 40 CLI contracts. `npm audit signatures` verified all four packages' registry
490
- signatures and three packages' attestations. No publication was retried.
491
- - Credentialed live evidence remains the installed-candidate smoke below; no new
492
- live call was needed for byte-identical published runtime/package contents.
493
- - The prepared Homebrew formula pins the verified 0.1.1 tarball and lockfile from
494
- `80a4c10628ad2ad4ebf8d90a01924d27dcb4a790`. Local macOS checks passed formula
495
- style, installation, `brew test`, managed Node selection and all 40 installed
496
- CLI contracts. The harness removed its temporary installation and tap. Remote
497
- tap publication and upgrade behavior await the separate tap PR.
498
-
499
- Post-release development changes preserve this release and start `0.1.2-dev.1`.
500
- The registry-verification change passes 13 focused tests, including the real script
501
- entrypoint with a synthetic npm command: successful publication plus timeout exits
502
- 0 with an Actions warning/summary, while failed publication exits 1. Transient
503
- read failures remain bounded; authentication, schema and artifact mismatches fail.
504
- No live publication was used to test that change. The full local suite passed 65
505
- tests and the installed-package suite passed 40.
506
-
507
- ## CLI 0.1.1 release preparation
508
-
509
- On 2026-09-29, candidate commit `6f7bb23` prepared stable metadata from develop
510
- `a65a2b198b484d2e4da4ca2ff438779806a87cce`. Runtime source, tests, examples,
511
- SDK dependency and workflows are unchanged from that reviewed integration.
512
- Version 0.1.1 is a release candidate here, not an npm publication claim.
513
-
514
- - Clean candidate checkout on Node.js 24.15.0: `npm ci`, lint, version metadata,
515
- typecheck and all 64 tests passed. Explicit release preflight with
516
- `RELEASE_TAG=v0.1.1 RELEASE_PRERELEASE=false` passed without creating a tag.
517
- - Packed the candidate once and ran `npm run test:package -- <tarball>`:
518
- all 40 installed-CLI tests passed. A separate consumer installation verified
519
- CLI 0.1.1, SDK 0.6.0 and a LICENSE identical to the source.
520
- - Installed-tarball live smoke used the designated `bench-recall` development
521
- project at `https://internal-dev-aws-apne2-v3-c05a2b5d492a.lambdadb.ai` with
522
- the existing secure in-memory environment mapping. The candidate tarball had
523
- SHA-512 integrity
524
- `sha512-1MRwAbI7kbAPKNUz2L+rd/F2tIF2I3r3wdI4kpsBNE84Y13TUYwTQF+gIDB95tvByyR1RdUi30ncH699rBhu9w==`.
525
- - Doctor, creation with `chinese` and `english`, ordinary/bulk acceptance, exact
526
- committed query/fetch contents, match-all facet-only and document+facet buckets
527
- passed in 61.0 seconds. Temporary Collection
528
- `cli-smoke-a2894dda-50a2-4fa9-b320-fcc142bdf1fb` was deleted and verified by a
529
- subsequent HTTP 404. No existing Collection or index was changed.
530
- - This evidence-only addition changes packaged documentation after that smoke.
531
- The final promotion tarball is checked again by the installed-package suite;
532
- runtime source, compiled JavaScript, examples and package metadata must remain
533
- identical to the live-tested candidate. The promotion PR records the final
534
- artifact digest and CI results separately.
535
-
536
- Publication remains a separate step after main promotion and authorization.
537
- The release workflow will rebuild and verify its own exact publication tarball.
538
- The current Homebrew formula still selects published 0.1.0; updating it requires
539
- verified 0.1.1 registry metadata and immutable release-commit checksums.
540
-
541
- ## SDK 0.6.0 integration
542
-
543
- Validated on 2026-09-29 from an isolated worktree based on develop
544
- `513af6e4d262edd380013c86d51a20aad16274d7`, with Node.js 24.15.0 and the
545
- published `@functional-systems/lambdadb@0.6.0` dependency. npm `latest` was 0.6.0.
546
- The release tag resolves to `491d01e0eb54bd135823fab79cbe32396ec03691`;
547
- installed query schema, analyzer schema and client facade source files matched
548
- that tag byte-for-byte. The lockfile records the published package integrity.
549
-
550
- - `npm ci`, `npm run lint`, `npm run check:version`, `npm run typecheck`: passed.
551
- - `npm test`: 64 tests passed, including subprocess requests through the actual
552
- SDK for facet-only success, zero without facets rejection, omitted query,
553
- malformed facets, bounds, null/default preservation and ref consistency.
554
- - `npm run test:package`: 40 installed-tarball CLI tests passed. Facet metadata,
555
- inline documents and `docsUrl` downloads survive JSON output; signed URLs and
556
- credentials remain excluded. Arbitrary facet-name redaction preserves collisions;
557
- short credentials do not change fixed bucket/result schema keys.
558
- - All 16 analyzer names passed create serialization and reached the loopback API;
559
- unknown/case-mismatched names failed before HTTP. Omitted, empty and duplicate
560
- analyzer lists were forwarded unchanged. This does not mean the live server
561
- accepts duplicate names.
562
- - `git diff --check`: passed. GitHub Node 22/24 CI results are reported on the PR;
563
- the local run above used Node 24 only.
564
-
565
- The credentialed live harness (`node --test test/live/cli.test.mjs`, after build)
566
- used the previously designated development endpoint
567
- `https://internal-dev-aws-apne2-v3-c05a2b5d492a.lambdadb.ai`, project `bench-recall`.
568
- An in-memory launcher used the existing ignored `.env.local` mapping documented
569
- below; no credential file was changed or copied into the worktree.
570
-
571
- - Doctor and temporary Collection creation with `english` and new `chinese`
572
- analyzers succeeded. Two ordinary 3 MiB writes and one bulk write were accepted
573
- at about 2 seconds in the final run.
574
- - Committed query/fetch contents for all three documents were verified at about
575
- 87 seconds in the final run, without a pending-write overlay.
576
- - Both checked-in facet examples passed: omitted-query `size: 0` returned no
577
- documents; document+facet returned three. Both returned exact category buckets
578
- `database: 2` and `developer-tools: 1` through CLI JSON output.
579
- - The final test passed in 87.8 seconds after the short-credential output fix.
580
- Temporary Collection `cli-smoke-dcd3b60a-b65d-4126-b6e4-ad78904f4eb3` was deleted
581
- and a subsequent SDK get returned HTTP 404. The earlier integration smoke also
582
- passed in 53.6 seconds; its temporary Collection
583
- `cli-smoke-e9f9a7c8-babf-4a62-a8d8-48bfa4683f66` was likewise deleted with 404
584
- verification.
585
-
586
- This proves the bounded sample against one supporting development deployment,
587
- not production availability, all analyzer language behavior or old-index support.
588
- No existing Collection/index was migrated. No CLI merge, tag, GitHub Release or
589
- npm publication was performed as part of this integration.
590
-
591
- ## Development publication after Homebrew documentation
592
-
593
- On 2026-09-19, the [develop push workflow](https://github.com/lambdadb/lambdadb-cli/actions/runs/35434313586)
594
- completed successfully for `225dec37f48dd5603af7fe777c1eb24d9041188c`, the merge of
595
- PR #8. Node 22/24 validation and tests of the exact publication tarball passed.
596
- The publish job accepted `0.1.1-dev.8`, retried registry reads during propagation,
597
- and finished with `result=published` without repeating the write.
598
-
599
- Subsequent read-only registry checks confirmed `dev=0.1.1-dev.8`,
600
- `latest=0.1.0`, and the package's `gitHead` matching the merge commit. Decoded
601
- provenance metadata identifies that same commit, `refs/heads/develop`,
602
- `.github/workflows/publish.yaml` and workflow attempt 1; its subject digest matches
603
- registry integrity. This metadata inspection did not repeat signature verification,
604
- a consumer installation or the LambdaDB live smoke.
605
-
606
- ## Homebrew publication
607
-
608
- On 2026-09-19, the public
609
- [lambdadb/homebrew-tap](https://github.com/lambdadb/homebrew-tap) was initialized at
610
- `ca84485149d7915131df686b4c68868d47c00cd5`. Its CLI formula is byte-for-byte equal
611
- to the formula merged in CLI PR #7 (`3eefaaa`), selecting stable `0.1.0` and the
612
- release lockfile at `c8d389f`.
613
-
614
- - Local macOS 26.4 arm64 / Homebrew 6.0.17 verification used the tap's new harness
615
- in both local and remote modes. Remote mode invoked
616
- `brew install --formula lambdadb/tap/lambdadb-cli` with no existing tap or CLI,
617
- exercising automatic public tap discovery and formula-specific trust.
618
- - Installation, downloaded formula equality, Homebrew style, `brew test`, version
619
- `0.1.0`, JSON configuration with mode 0600, and the wrapper with an unusable
620
- ambient Node all passed. No trust checks were disabled.
621
- - Test installations and taps were removed; existing taps, fnm Node and CLI
622
- `.env.local` were preserved. Dependencies and caches remain installed.
623
- - [Tap CI](https://github.com/lambdadb/homebrew-tap/actions/runs/35433096180)
624
- passed remote installation, style, smoke, runtime selection and cleanup on both
625
- macOS 15 and Ubuntu 24.04 at the published tap commit.
626
- - Simulated existing CLI, broken prefix executable symlink and existing remote
627
- tap cases stopped the new harness before mutations; invalid mode returned 2
628
- without invoking Homebrew.
629
- - Tap main protection requires both installation checks, one approving review,
630
- resolved conversations and an up-to-date base; force pushes and deletion are
631
- disabled. Organization-level default-branch rules also apply.
632
-
633
- This publishes an installation path for the existing stable artifact, without a
634
- new npm release or another LambdaDB live-service smoke. Upgrade behavior between
635
- two distinct stable versions remains unverified until the next formula update.
636
- The earlier 35-contract Homebrew verification below used the same stable artifact;
637
- this tap publication ran the installation smoke checks rather than repeating it.
638
-
639
- ## Homebrew preparation
640
-
641
- On 2026-09-19, macOS 26.4 arm64 / Homebrew 6.0.17 installed stable `0.1.0`
642
- from `packaging/homebrew/Formula/lambdadb-cli.rb` through a disposable local tap.
643
- The npm tarball SHA-256 was checked against the downloaded bytes, whose SHA-512
644
- matched registry integrity. The release lockfile resource is fixed to `c8d389f`.
645
-
646
- - Homebrew formula style, installation and `brew test` passed. The formula checks
647
- CLI version, JSON configuration and mode 0600 without contacting a service.
648
- - A deliberately unusable `node` placed first on ambient PATH did not prevent
649
- the installed wrapper from running; it selected Homebrew's Node 24.21.0.
650
- - All 35 CLI contracts from the stable release commit passed against the installed
651
- Homebrew package. The harness uses the release commit's tests/examples so future
652
- development-only features do not create false failures for an older stable CLI.
653
- - Simulated existing-formula and broken-executable-symlink cases both stopped the
654
- harness before any installation or tap mutation.
655
- - The temporary CLI installation and tap were removed. The final harness disables
656
- automatic dependency removal and cleanup, and does not persist developer mode.
657
- Homebrew dependencies/caches remain: installing Node also upgraded the required
658
- ca-certificates, openssl@3, readline, sqlite and xz packages during initial setup.
659
- The existing fnm-managed Node and global npm CLI were not replaced.
660
- - Normal clean-install, lint, version/type checks, 59 source tests and 35 npm
661
- installed-package contracts also passed. CLI runtime and SDK dependencies did
662
- not change.
663
-
664
- macOS/Linux Homebrew CI is configured separately from runtime CI; current PR job
665
- results are the authority for hosted-runner coverage. This initial preparation
666
- did not create the public tap; publication evidence is recorded above. No new npm
667
- version was published by the preparation. LambdaDB service smoke was not repeated for
668
- this packaging-only change; the stable candidate evidence below remains separate.
669
-
670
- ## Stable 0.1.0 publication
671
-
672
- On 2026-09-19, [GitHub Release v0.1.0](https://github.com/lambdadb/lambdadb-cli/releases/tag/v0.1.0)
673
- and its annotated tag identified main commit
674
- `c8d389f3264d641ae6eafc7737fedd5ea046ddf1`. Its tree exactly matches the reviewed
675
- candidate `658ea7ccdce535bbd4f2e29ae06813e2f2e716e2` from PR #5, including the
676
- runtime verified by the installed-candidate development smoke below. That smoke
677
- was not repeated because release contents were unchanged.
678
-
679
- The [release-event workflow](https://github.com/lambdadb/lambdadb-cli/actions/runs/35421226854)
680
- passed on attempt 1. Node 22/24 validation and exact-tarball contracts passed;
681
- Trusted Publishing published `0.1.0` on `latest` at 04:27:06 UTC. Version/tag
682
- metadata and attestation metadata propagated separately. Verification retried
683
- reads only; no second publication or workflow rerun was needed.
684
-
685
- A clean, unqualified npm install with an isolated cache resolved to `0.1.0` and
686
- passed version/help plus all 35 CLI contract tests. The downloaded tarball digest,
687
- installed lockfile integrity and provenance subject matched. The decoded SLSA
688
- provenance identified this repository, `.github/workflows/publish.yaml`,
689
- `refs/tags/v0.1.0`, release commit `c8d389f` and workflow attempt 1.
690
- `npm audit signatures` reported no invalid or missing signatures.
691
- At verification, `latest=0.1.0` and `dev=0.1.0-dev.5`; the stable release replaced
692
- the initial bootstrap latest tag without changing the dev channel.
693
-
694
- The subsequent main-to-develop synchronization sets `0.1.1-dev.1` as the next
695
- base. Its local clean install, lint, types, version checks, 59 source tests and
696
- 35 installed-package contracts passed. This maintenance change updates versions
697
- and documentation only; CLI runtime, dependencies, tests and workflows match
698
- `v0.1.0`. Its PR validation does not itself publish a new dev version.
699
-
700
- ## Stable 0.1.0 candidate
701
-
702
- Prepared `release/0.1.0` from reviewed develop commit
703
- `c8947e96308283ac593e712716f0732121bb1958`. Relative to that commit, only package
704
- versions and release documents change. Runtime source, dependencies, tests,
705
- examples and workflows are unchanged. This records the pre-publication candidate.
706
-
707
- On Node.js 24.15.0 / npm 11.12.1, a new worktree passed `npm ci`, lint, type
708
- checking, all 59 source tests, and 35 installed-package contract tests.
709
- `RELEASE_TAG=v0.1.0 RELEASE_PRERELEASE=false npm run check:version -- --release`
710
- passed and selected `latest`. CI results for the final commit belong to the
711
- promotion PR; local success is not a substitute for those required checks.
712
-
713
- A newly packed `0.1.0` tarball was installed into an isolated temporary consumer.
714
- Its executable reported `0.1.0` and was selected with `LAMBDADB_TEST_CLI` while
715
- running `node --test --test-reporter=tap test/live/cli.test.mjs`. The launcher used
716
- the maintainer's existing opt-in development settings and the in-memory variable
717
- mapping described below; it did not change or copy `.env.local` into the worktree.
718
- Target: `bench-recall` at
719
- `https://internal-dev-aws-apne2-v3-c05a2b5d492a.lambdadb.ai`.
720
-
721
- - Doctor and temporary collection creation passed within the first second.
722
- - Two ordinary documents with 3 MiB payloads each and one bulk document were
723
- accepted at approximately 3 seconds. Acceptance did not imply search visibility.
724
- - Query and ID fetch on `branch:main` returned all three documents with exact
725
- contents at approximately 69 seconds, without a pending-write overlay.
726
- - The live test passed in 69.6 seconds. Cleanup was accepted, then an independent
727
- SDK get returned `ResourceNotFoundError` for
728
- `cli-smoke-b854ef72-1448-42ae-8c9a-ce5c0441f104`, confirming its absence.
729
- - The source `.env.local` was byte-for-byte unchanged, and the temporary consumer
730
- and tarball were removed. No key or signed URL is recorded here.
731
-
732
- Only documentation was updated after this live run; the final package is checked
733
- again with the installed-package contracts. This is development-service evidence
734
- for a bounded sample, not a latency/readiness guarantee or live tag/alias coverage.
735
- The stable npm artifact and release-event workflow were not verified at candidate
736
- preparation time; the subsequent publication evidence is recorded above.
737
-
738
- ## Public bootstrap and OIDC publication
739
-
740
- On 2026-09-18, the maintainer authorized the public bootstrap
741
- [`0.1.0-dev.1`](https://www.npmjs.com/package/@functional-systems/lambdadb-cli/v/0.1.0-dev.1)
742
- from reviewed develop commit `f2397ba`. Clean installation, lint, types and
743
- 53 source tests passed; the exact tarball passed 35 installed-CLI tests and its
744
- published integrity matched. This local publication has no GitHub provenance.
745
-
746
- After npm Trusted Publisher setup and repository variable activation, the
747
- [develop push workflow, attempt 2](https://github.com/lambdadb/lambdadb-cli/actions/runs/35340278724/attempts/2)
748
- passed Node 22/24 validation, prepared `0.1.0-dev.4`, tested its exact tarball,
749
- and published with OIDC and provenance. The old six-attempt verification loop
750
- exhausted its five 5-second sleeps before npm metadata propagation completed, so
751
- the job failed after a successful publication. Read-only checks subsequently
752
- confirmed the artifact. The
753
- [protected rerun, attempt 3](https://github.com/lambdadb/lambdadb-cli/actions/runs/35340278724/attempts/3)
754
- completed with `result=already-published`, proving the same source/artifact was
755
- recognized without a second registry write.
756
-
757
- The public [`0.1.0-dev.4` provenance](https://registry.npmjs.org/-/npm/v1/attestations/@functional-systems%2flambdadb-cli@0.1.0-dev.4)
758
- identifies `lambdadb/lambdadb-cli`, `.github/workflows/publish.yaml`,
759
- `refs/heads/develop`, source commit `f2397ba102c67f1af9ed5ae0b8b8d47c06da7d4b`,
760
- and workflow attempt 2. Registry `gitHead`, downloaded tarball digest, installed
761
- lockfile integrity and provenance subject agreed. A clean `@dev` installation
762
- using an isolated npm cache passed version/help and all 35 CLI contract tests
763
- with the generated package metadata. `npm audit signatures` verified four package
764
- signatures and three attestations, including the CLI. No credentials were added
765
- to GitHub validation jobs or repository files.
766
-
767
- At this verification, `dev=0.1.0-dev.4` and `latest=0.1.0-dev.1`. Bootstrap had
768
- created both tags despite `--tag dev`; a removal attempt for `latest` returned
769
- HTTP 400. The automated dev publication left `latest` unchanged. This observation
770
- does not establish a general version-count rule for npm. Bootstrap and OIDC setup
771
- were complete at that stage; main promotion and stable publication followed as
772
- recorded above.
773
-
774
- ## Publication verification hardening
775
-
776
- The follow-up script uses a five-minute monotonic verification budget, 15-second
777
- maximum read subprocesses and 10-second maximum polling sleeps. It retries only
778
- missing/lagging metadata and transient post-publication reads. It reports an
779
- accepted write separately from `published-verification-pending`, which still exits
780
- nonzero. Authentication, malformed responses and source/artifact mismatches fail
781
- closed. No late response can satisfy the deadline, and no verification path
782
- repeats the registry write.
783
-
784
- Deterministic tests exercise 150/180-second metadata/tag propagation, five-minute
785
- expiration, read time consuming the budget, capped final I/O/sleep, late success,
786
- temporary HTTP/transport failures and permanent errors. The changed publication
787
- logic passed all 59 source tests (12 release-automation tests), lint, type checks
788
- and version checks on Node 24.15.0; the installed tarball passed 35 CLI contracts.
789
- A read-only probe used the actual npm CLI and new bounded-read flags to verify
790
- the existing `0.1.0-dev.4` manifest/tag. Only its preflight and accepted write were
791
- simulated; the probe performed no registry mutation.
792
-
793
- The [ordinary develop merge workflow](https://github.com/lambdadb/lambdadb-cli/actions/runs/35344153978)
794
- published `0.1.0-dev.5` from `c8947e96308283ac593e712716f0732121bb1958`
795
- on attempt 1. Node 22/24 validation and exact-artifact tests passed. Publication
796
- succeeded at 12:22:09 UTC; registry verification completed at 12:25:10 UTC with
797
- `result=published`. The approximately 181-second propagation delay required only
798
- read retries, with no manual rerun or repeated publication.
799
-
800
- A fresh npm `@dev` install with an isolated cache passed all 35 CLI contract tests,
801
- version/help, tarball/lockfile integrity checks and npm signature verification.
802
- Provenance identified the expected repository, develop ref, workflow, source
803
- commit and attempt 1. `dev=0.1.0-dev.5`; `latest` remained `0.1.0-dev.1`.
804
- These registry checks are separate from the development-service smoke below.
805
-
806
- ## Initial local automation validation (before publication)
807
-
808
- On Node.js 24.15.0, lint, type checking and all 46 source tests passed, including
809
- six release-automation tests. The tests cover deterministic first-parent version
810
- numbers, numeric channel ordering, stale commits, registry lookup failures,
811
- artifact/commit conflicts, identical reruns and uncertain publication outcomes.
812
- Registry writes use an injected fake npm runner; no package was published.
813
- A real read-only npm lookup also confirmed the structured E404 handling.
814
-
815
- A temporary local Git repository and bare remote exercised the actual prepare
816
- command, including rejected PR/wrong-commit contexts and stale remote heads.
817
- A separate clean source copy generated `0.1.0-dev.2`, installed locked
818
- dependencies, packed and installed the generated artifact, and passed all 35
819
- installed-CLI contracts. Its source `gitHead` and license metadata were preserved
820
- and its Git HEAD did not change. The normal `0.1.0-dev.1` artifact also passed
821
- all 35 installed-CLI contracts.
822
-
823
- `actionlint` 1.7.12 accepted the combined CI/publishing workflow. The existing
824
- `Node.js 22` and `Node.js 24` check names are retained. Publishing needs both jobs
825
- and is restricted to explicit releases or opted-in develop pushes. The repository
826
- variable enabling automatic dev publication was not set during this validation.
827
- At that stage, OIDC authentication, registry writes, provenance and GitHub job
828
- ordering were unverified. The later publication evidence above supersedes that
829
- limitation; it does not turn these original local tests into live registry writes.
830
-
831
- ## Authenticated development-project smoke
832
-
833
- Tested the CLI from develop commit `a040f53` (version `0.1.0-dev.1`, SDK `0.5.1`)
834
- with Node.js 24.15.0 against the development target supplied by the maintainer in
835
- the primary checkout's ignored `.env.local`. The designated development target is:
836
-
837
- - Endpoint: `https://internal-dev-aws-apne2-v3-c05a2b5d492a.lambdadb.ai`
838
- - Project: `bench-recall`
839
-
840
- The API key is excluded from this record. The file used `LAMBDADB_BASE_URL`,
841
- `LAMBDADB_PROJECT_NAME`, `LAMBDADB_PROJECT_API_KEY` and an explicit
842
- `LAMBDADB_RUN_LIVE_TESTS=1`. An in-memory launcher mapped the first three to
843
- `LAMBDADB_ENDPOINT`, `LAMBDADB_PROJECT`, `LAMBDADB_API_KEY`, and supplied the
844
- confirmed development project as `LAMBDADB_LIVE_CONFIRM_PROJECT` for this run.
845
- Neither the file nor the CLI's environment-variable contract was changed.
846
-
847
- After `npm run build`, the launcher ran `node --test test/live/cli.test.mjs`:
848
-
849
- - The original 75-second query observation window failed after writes were
850
- accepted. This was a failed smoke, not proof of a service or CLI defect.
851
- - The follow-up harness allows up to 300 seconds per read stage, matching the
852
- SDK live smoke's committed-document observation window. It reports elapsed
853
- time and matched-document counts without printing responses or credentials.
854
- - The follow-up run passed: doctor and creation completed within the first
855
- second; two ordinary writes (3 MiB payload each) and one bulk write were
856
- accepted at about 2 seconds. Query returned all three expected documents with
857
- exact contents at about 65 seconds, and ID fetch verified them at about 66
858
- seconds. Both reads selected `branch:main` without a pending-write overlay.
859
- - Cleanup was accepted for both temporary collections. Subsequent SDK get calls
860
- returned `ResourceNotFoundError` for
861
- `cli-smoke-9797d164-abb3-4a7e-ae26-f5ae251ad72c` and
862
- `cli-smoke-b926fd65-c371-462f-9727-9d5d9edecc1c`, confirming their absence.
863
-
864
- The two runs demonstrate variable observation time; 300 seconds is a test budget,
865
- not a readiness or latency guarantee. Full content was verified for a combined
866
- response above 6 MiB, but the CLI harness did not inspect the service's wire
867
- response to prove selection of `docsUrl`. Live tag/alias reads remain unverified.
868
-
869
- ### Review follow-up: enforce the observation budget
870
-
871
- The harness now uses a monotonic deadline, caps CLI and child-process timeouts
872
- to the remaining budget, and limits the final polling sleep. It checks the
873
- deadline after each observation, including content comparison, before accepting
874
- success. Process termination and event-loop scheduling can delay reporting, but
875
- a response at or after the deadline cannot pass the stage.
876
-
877
- On Node.js 24.15.0, lint, type checking and all 53 source tests passed. Seven new
878
- deterministic tests cover timely success, late success/failure, success exactly
879
- at the deadline, a capped final sleep, an in-flight timeout and an earlier fatal
880
- error. The regression reproduces a response arriving at 318 seconds and rejects
881
- it; the final request receives only the remaining 2-second budget.
882
- The packed and separately installed CLI also passed all 35 contract tests.
883
-
884
- Re-ran `node --test test/live/cli.test.mjs` with this review fix in the working
885
- tree based on `6642eeb`, using the same designated endpoint/project and launcher
886
- above. The CLI runtime source remained identical to `a040f53`; SDK version was
887
- `0.5.1`. Doctor and collection creation passed within the first second, ordinary
888
- and bulk writes were accepted at about 3 seconds, and exact query/fetch contents
889
- passed at about 91 seconds (test duration: 91.231 seconds). Both reads used
890
- `branch:main`. Cleanup was accepted for
891
- `cli-smoke-3cb15833-414d-4265-9b57-70df164b28ef`; a subsequent SDK get returned
892
- `ResourceNotFoundError`, confirming absence. Deadline boundary cases were
893
- verified deterministically above, not by inducing a live service timeout.
894
-
895
- ## 0.1.0-dev.1 release preparation
896
-
897
- Revalidated on 2026-09-18 in a fresh worktree based on develop commit `52e7aa2`
898
- with Node.js 24.15.0 and npm 11.12.1. `npm ci`, lint, type checking and version
899
- checks passed. Source tests passed (40), and the separately installed tarball's
900
- CLI tests passed (35), with no failures or skips. The version assertion now
901
- compares the executable against package metadata instead of a fixed version.
902
-
903
- `RELEASE_TAG=v0.1.0-dev.1 RELEASE_PRERELEASE=true npm run check:version -- --release`
904
- passed and selected the `dev` channel. This checks release metadata only; it does
905
- not publish or establish main ancestry, npm permissions or live-service behavior.
906
- At the initial release-preparation stage no development connection settings were
907
- supplied, so live validation was not attempted then. See the later smoke above.
908
-
909
- ## Completed local validation
910
-
911
- | Check | Result |
912
- | --- | --- |
913
- | `npm run typecheck` | Passed with TypeScript 5.8.3. |
914
- | `npm run lint` and `npm run check:version` | Passed; package and lockfile metadata agree. |
915
- | `npm test` on Node.js 24.15.0 | 40 tests passed, zero failed or skipped. |
916
- | Prior CLI MVP suite on Node.js 22.23.2 via `npm exec --yes --package=node@22 -- node --test test/*.test.mjs` | 40 tests passed, zero failed or skipped; new automation tests are recorded separately above. |
917
- | Fresh temporary source directory: `npm ci`, `npm run build`, CLI version | Passed without the development checkout's node_modules or dist. |
918
- | `npm run test:package`: pack, inspect inventory, install in a temporary consumer, invoke executable version/help and repeat CLI contracts | 35 installed-CLI tests passed on Node 24. Package was never published. |
919
- | `actionlint` on CI and publish workflows | Passed. This is static validation, not an OIDC publication. |
920
- | Live command without opt-in | Expected nonzero exit before network calls; not counted as a live test pass. |
921
- | npm install dependency audit | Zero vulnerabilities reported at installation time. |
922
- | Apache-2.0 license packaging | Official license text from apache.org is included byte-for-byte as `package/LICENSE` in the built tarball; package.json and lockfile license metadata agree. |
923
- | Reference SDK status and specified sbrain file status | Unchanged. |
924
-
925
- Tests use the actual published SDK and CLI subprocesses; they do not replace the
926
- SDK with a fake client for transport tests. The workflow unit tests separately
927
- cover byte accounting and cancellation between batches.
928
-
929
- ## Behavior exercised
930
-
931
- - Configure, doctor, create (HTTP 201), JSONL upsert (HTTP 202), query, fetch,
932
- describe and paginated collection listing.
933
- - Exact branch/tag/alias request bodies and result targets on query and fetch;
934
- write branch forwarded on ordinary and bulk requests.
935
- - SDK pagination with an opaque continuation token.
936
- - SDK bulk metadata, signed headers, upload body and finalization; no project
937
- credential sent to object storage.
938
- - SDK offloaded query/fetch downloads for each ref kind, including 1 MiB returned
939
- document bodies; consumed signed URLs omitted from CLI output.
940
- - Complete-file preflight rejects malformed later JSONL lines, invalid IDs,
941
- empty files and oversized individual batch entries before any request.
942
- - Invalid query fields, conflicting file/flag refs, invalid query size and
943
- branch-only consistency constraints rejected before requests.
944
- - Query `size: null` normalized to SDK omission and branch consistency forwarded.
945
- - Accepted/rejected/not-attempted batch counts and physical line ranges.
946
- - Disconnect, HTTP 503, malformed 202 and timeout classified as unknown writes
947
- without mutation retries, preserving previously accepted batches.
948
- - Failed bulk upload not retried or finalized; reported conservatively as unknown
949
- because the SDK helper has no structured error stage.
950
- - Shared deadline applies to API calls, signed downloads and signed uploads;
951
- cancellation between batches leaves unsent rows not attempted.
952
- - Actual SIGINT/SIGTERM during an active second write preserve the accepted first
953
- batch, mark the active batch unknown and leave the third batch unattempted.
954
- - Release channels and rejection of version drift, invalid tags/flags, private
955
- publication and missing license metadata.
956
- - Empty results succeed; 401/403 authentication failures, other API failures and
957
- invalid response schemas fail; creation conflicts differ from uncertain writes.
958
- - All documented exit codes, JSON parseability, stdout/stderr separation, human
959
- summaries, help and version.
960
- - Flag/environment/saved-config precedence, explicit missing config, missing
961
- selected key, custom key-variable names and POSIX config file mode 0600.
962
- - SDK debug suppression and credential redaction in errors and returned documents,
963
- including secret strings containing JSON structural characters.
964
- - Short keys preserve JSON envelope fields, CLI command/state/check tokens,
965
- ref kinds and error codes. Arbitrary document/index/tag keys and variable
966
- values remain redacted; human output retains its structured data section.
967
- - Redacted map-key collisions preserve all entries and unchanged field names.
968
- Query/fetch regressions cover both input orders, multiple colliding renamed
969
- keys, preexisting suffixes and nested maps; collection metadata covers tag and
970
- index-config collisions. Generated suffixes cannot overwrite reserved names.
971
- - Exactly 100,000 documents are accepted by input preflight; excess rows are
972
- rejected with their physical line number, excluding blank lines from the count.
973
- CRLF and a final line without a newline are covered.
974
- - A 3 MB file of one million small documents exits 2 before any API request under
975
- a 128 MiB V8 heap limit. The pre-fix reader reproduced heap exhaustion with
976
- that input. Ten million blank lines followed by invalid JSON also exit 2 within
977
- that heap limit, preserving the final line number without a split array.
978
-
979
- ## Source and public-contract inspection
980
-
981
- Verified npm latest and installed SDK 0.5.1; checked current local SDK source and
982
- published OpenAPI/quickstart. Evidence revisions and compatibility findings are
983
- in [DESIGN.md](DESIGN.md). These checks establish the chosen contract, not the
984
- deployment state of an individual LambdaDB endpoint.
985
-
986
- ## Not performed / not established
987
-
988
- - The live smoke verifies one designated development target and a bounded sample;
989
- it does not establish general query/index readiness, search ranking, managed
990
- embedding behavior, exhaustive signed-storage policies or production-scale
991
- performance. Credentials were not searched for in other repositories.
992
- - No proof of exactly-once delivery, durable resume, or a committed-through write
993
- receipt. Those capabilities are not implemented.
994
- - No Windows-specific permission or signal validation. POSIX modes and injected
995
- SIGINT/SIGTERM were checked on macOS; CI targets Linux.
996
- - Mock large-response tests cover SDK routing/credential separation at 1 MiB;
997
- the live sample verifies combined content above 6 MiB. Neither is an exhaustive
998
- memory/size stress test. Imports buffer a maximum 64 MiB source file
999
- and retain at most 100,000 documents. Complex documents can still use much more
1000
- memory than their serialized size; the count limit is not a process memory cap.
1001
-
1002
- ## Requirements for live verification
1003
-
1004
- Follow the explicit settings and `npm run test:live` procedure in
1005
- [RELEASING.md](RELEASING.md#explicit-live-smoke). The authenticated main-branch
1006
- flow and cleanup have been exercised as recorded above. For non-main refs,
1007
- supply existing development branch/tag/alias
1008
- targets whose expected contents are known. Record evidence without keys or signed
1009
- URLs. Temporary collection deletion is performed by the harness through the SDK,
1010
- not exposed as a CLI command.
1011
-
1012
- During expanded validation, a second-write timeout hung repeatedly in the source
1013
- and installed package. An explicit timer alone was insufficient; binding the
1014
- command signal through SDK HTTPClient fetch dispatch resolved the observed local
1015
- regressions. See [DESIGN.md](DESIGN.md) for the compatibility boundary; the exact
1016
- upstream cause is not claimed. Commits, pushes and CI runs are recorded in Git
1017
- and the pull request; local checks do not imply service or publication success.