diff --git a/DESIGN.md b/DESIGN.md index 2cd37c2129..22d5f97dfa 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -10,13 +10,12 @@ A note lives in the `DESIGN.md` of the directory that owns the code it describes ## .github/ — CI workflows -- [Core CI partitions directories without dropping runtime coverage (`workflows/unit-test.yml`, `workflows/integration-tests.yml`)](.github/DESIGN.md#core-ci-partitions-directories-without-dropping-runtime-coverage-workflowsunit-testyml-workflowsintegration-testsyml) — each suite is its own shard job per Node version, gated by one `Unit Test` aggregate; PRs run Node 24+26 (unit) and 26 (integration), and 22 runs nightly and on release-branch pushes; fixtures batch writes so the `lmdb` shard's cap stays meaningful. · [The lock file must pass `npm ci` under npm 10 and npm 11 (`workflows/lockfile-npm-compat.yml`)](.github/DESIGN.md#the-lock-file-must-pass-npm-ci-under-npm-10-and-npm-11-workflowslockfile-npm-compatyml) — npm 11 writes the lock but accepts some that npm 10's `npm ci` rejects; fix the conflict at its source, never by regenerating with npm 10. +- [Core CI partitions directories without dropping runtime coverage](.github/DESIGN.md#core-ci-partitions-directories-without-dropping-runtime-coverage-workflowsunit-testyml-workflowsintegration-testsyml) — each suite is its own shard job per Node version, gated by one `Unit Test` aggregate; PRs run Node 24+26 (unit) and 26 (integration), and 22 runs nightly and on release-branch pushes; fixtures batch writes so the `lmdb` shard's cap stays meaningful. · [The lock file must pass `npm ci` under npm 10 and npm 11](.github/DESIGN.md#the-lock-file-must-pass-npm-ci-under-npm-10-and-npm-11-workflowslockfile-npm-compatyml) — npm 11 writes the lock but accepts some that npm 10's `npm ci` rejects; fix the conflict at its source, never by regenerating with npm 10. - [A release copies to Docker Hub only the image it booted (`workflows/docker-smoke.yml`, `workflows/publish-docker.yaml`)](.github/DESIGN.md#a-release-copies-to-docker-hub-only-the-image-it-booted-workflowsdocker-smokeyml-workflowspublish-dockeryaml) — The release builds once into a runner-local registry, smoke-tests that digest and copies the same index to Docker Hub; never a rebuild. - [A release cherry-pick skips a change its branch already has (`workflows/cherry-pick-patch.yml`, `scripts/change-landed.sh`)](.github/DESIGN.md#a-release-cherry-pick-skips-a-change-its-branch-already-has-workflowscherry-pick-patchyml-scriptschange-landedsh) — skip only when replaying the PR's commits onto the release, conflicts resolved toward each commit, ends at the release's own tree; replaying a landed PR commit by commit conflicts instead. ## resources/ — records, transactions, tables, blobs, audit -- [resources/MAP.md](resources/MAP.md) — Where things are in `resources/`: files, concepts, symbols. - [Full-text declarations and reader snapshots](resources/DESIGN.md#full-text-declarations-and-reader-snapshots) — Declarations are not attributes; one reader lease per search. - [A bare nullish id is never a collection target](resources/DESIGN.md#a-bare-nullish-id-is-never-a-collection-target-for-get-or-delete) — `get`/`delete` of a bare `null` id is a 400 · [A primitive-id static get skips instance dispatch only behind its gate](resources/DESIGN.md#a-primitive-id-static-get-skips-instance-dispatch-only-behind-its-gate) — New instance-get hooks join the gate. - [An audit record carries two clocks](resources/DESIGN.md#an-audit-record-carries-two-clocks-identity-is-nodeid-log-key-never-a-version) — Identity is (nodeId, log key); refs state their kind; `FULL_WRITE_HEAD`; equal versions order by origin.