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