Version Packages - #37
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 4, 2026 15:55
7029541 to
4d06af6
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 11, 2026 16:27
4d06af6 to
18d0714
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@ingram-tech/nk-db@1.5.0
Minor Changes
3e6e51d:
nk-pg-migraterefuses to under-apply, and reports what the migrator can't reach.drizzle's migrator picks what to run with
when > max(created_at)— ahigh-water mark. A migration whose journal timestamp lands below an
already-applied one is skipped, never recorded, and reported as success,
and the gap is permanent. It doesn't register as drift either: the recorded
rows still match the files positionally. Two branches generating migrations and
merging in the other order produce exactly this, as does a hand-edited
when.inspectMigrationsnow computespendingas a set difference on hash ratherthan by timestamp, and adds
unreachable(pending files the migrator willnever reach) and
journalIssues(non-increasingwhen, gaps or repeats inidx).runMigrationsthrows the newMigrationOrderErrorinstead of runninga partial chain, naming the stranded migrations and the timestamp to clear;
nk-pg-migrate --statusreports both before a deploy.The fix it points at is raising the stranded entry's
wheninmeta/_journal.json, which leaves the.sql— and so the hash every databaserecorded — untouched.
MigrationFileMetagainsidx.@ingram-tech/nk-dev@0.11.0
Minor Changes
f2c9d94: New oxlint rule
nextkit/no-redundant-node-crypto(warn): flags thenode:cryptoimports that are already on the Web Crypto global —randomUUID,getRandomValues,subtleandwebcrypto. Each pins a module to a Node-onlyruntime for something it would have had regardless, and
subtle/webcryptoaren't even different objects from
globalThis.crypto.subtle/globalThis.crypto.Catches named imports, and member access through a namespace or default import
of the module. The rest of
node:crypto(createHash,createHmac,randomBytes,timingSafeEqual, …) has no drop-in global and is left alone, sothe usual fix is trimming one name off an import list.
This makes fleet-wide the invariant nk-db's id codec already holds by hand — its
id.tsis pinned to an empty import list by a test whose comment namesnode:cryptofor randomness as the tempting one, because a single Node-onlyimport there would make every module that touches an id Node-only.
Not autofixable: the call sites have to become member expressions on the global,
and an import named
cryptoshadows the global it stands in for. Keep an importwith a justified disable —
node:crypto'srandomUUIDtakes adisableEntropyCacheoption that Web Crypto's does not.6c34702: Guard the drizzle migration chain:
nk migrationsand two newnk doctorfindings.Applied migrations are immutable — the runner records
sha256(file), so editingone after it has run drifts every database that applied it, and drizzle never
looks at the file again to notice.
nk migrationspins each file's hash in acommitted
drizzle/_seal.jsonandnk checkfails on a mismatch, so the editsurfaces in the PR that made it instead of on the next deploy.
--resealis thedeliberate-squash escape hatch, and its effect is visible in the diff.
nk migrations --ddl(and ank doctorfinding) lists the migrations carryingDDL drizzle's snapshot cannot model — functions, triggers,
DEFERRABLEconstraints, grants, roles, extensions, materialized views. Those are outside
db:generate's diff basis entirely, so a clean generate does not mean the chainreproduces the database, and anything regenerated from
schema.tsdrops them.Both run without a database.
nk doctoralso seals an unsealed chain on--fix.