chore(deps): update all non-major dependencies - #41
Conversation
dawsontoth
left a comment
There was a problem hiding this comment.
Verified locally on 8c94b3ee (Node 24.17.0). Approving.
Checks:
| check | result |
|---|---|
npm ci |
exit 0 |
npm run build (tsc) |
exit 0 |
npm run format:check |
exit 0 |
npm test |
39 tests / 4 suites, 0 fail |
This PR takes the same harper 5.2.2 → 5.2.4 bump that has agent#154 red, and is not affected. I checked specifically because the base commit here is b50f856 ci(renovate): drop the ineffective skipInstalls override, so this repo is known-exposed to that pruning problem. The lockfile retains 19 react-native* entries and npm ci exits 0, so the alasql optional subtree survived the re-resolve. No action needed — just noting the two PRs diverged despite the identical bump.
Lockfile audit (base vs head): keys 1465 → 1460, 0 major crossings, 50 version changes, and the add/remove churn is all platform-optional binaries rather than anything semantic:
- added:
@rolldown/binding-android-arm-eabi@1.2.5, plus a nestedfast-uri@4.1.2 - removed:
@rolldown/binding-wasm32-wasi@1.2.1and its 6 wasm shims (@emnapi/*,@napi-rs/wasm-runtime,@tybys/wasm-util,tslib)
That's rolldown swapping a wasm fallback binding for a native one as vite goes 8.2.1 → 8.2.2 — benign, and it doesn't reach shipped output.
@oxc-project/types 0.142.0 → 0.146.0 is the one 0.x minor in the diff, but it's transitive under vite/rolldown rather than a direct dependency, so it moves with them.
This PR contains the following updates:
6.0.5→6.1.05.2.2→5.2.48.2.1→8.2.2Release Notes
vitejs/vite-plugin-react (@vitejs/plugin-react)
v6.1.0Compare Source
Add experimental native React Compiler support (#1419)
Add experimental native React Compiler support.
You can use it by installing
oxc-transform-reactand enabling it via thecompileroption:harperfast/harper (harper)
v5.2.4Compare Source
Regression fix: using a context after a mid-handler commit
Committing the current transaction mid-handler and then continuing to use the context — the pattern documented in the v5 migration notes and the 4.5.0 notes — started returning 500s on 5.2.1 and later.
releaseContext()(added in #2030 to stop a long-lived context pinning a completed transaction) setcontext.transaction = null, and the next touch threwCannot read properties of null (reading 'commit').On 5.2.3 this took out Central Manager's fabric connect and cluster create/delete for any non-super-user, because
getUserPermissions()commits the caller's transaction mid-request.A completed transaction now leaves a frozen, process-wide released placeholder in the slot:
commit()andabort()are no-ops and reads through it see the latest committed state — the behavior the slot had before #2030 — while retention stays O(1) per process. Every route that adopts a caller-supplied transaction or context refuses the placeholder rather than silently operating on it. (#2230, closes #2229)Data integrity
delete K; put Ktransaction — the shape a replace-all writer produces — could leave a follower holding a live, correct record with none of its secondary index entries: invisible to every indexed search, and not repairable by rewriting the record. Same-key writes now execute in the order they were staged, and a transaction applied from a leader stages its same-key writes in the leader's order. (#2235)invalidate,publish, crash-recovery replay, reload markers — installed a native handle without the per-handle reference bookkeeping, leaving the read-transaction count asNaNfor each consumer that reads it (commit(),doneReadTxn(),disregardReadTxn(),releaseContext()andabort()). Those transactions are also now visible to the long-transaction monitor. (#2232)Availability
NODE_STORAGEwalked the entire Harper root with an unbounded recursivePromise.all, holding a path, a dirent and a pendingstatfor every file at once. On a node with a large blob store the main thread grew about 72 MB/s until V8 aborted — and because the metric runs on the first analytics cycle after start, it happened on every boot (124 restarts observed on 5.2.3). The walk now streams each directory throughopendirand stats one file at a time. (#2242, fixes #2240)storage.debugLongTransactionsno longer breaks reads. With the flag on, anysearch()whose transaction had not opened its own read handle threwTypeError: Cannot read properties of undefined (reading 'push')and returned a 500 — the diagnostic broke exactly the reads an operator enables it to diagnose. (#2225, refs #2222)Configuration and observability
replication_receiveQueueHighWaterMarkis now a registered configuration setting, so the bounded replication receive queue added in harper-pro #735 can be tuned. (#2233)harper statusreports process uptime, andsystem_informationreturnsprocess_uptimein seconds in its time response. (#2209)Also in this release
Windows CI deflakes for early-hints deployment and the QA-782 LMDB control arm (#2227, #2243/#2248); promoted test coverage for streaming delivery and stream-error contracts (#2070) and six QA eviction/removal/reclaim data-integrity anchors (#1916); an in-repo guard for the new config registration; and a
package-lock.jsonsync.Full Changelog: HarperFast/harper@v5.2.3...v5.2.4
v5.2.3Compare Source
Blob durability — dangling references and in-flight readers
Two related fixes close windows where a committed record could point at blob bytes that were no longer on disk.
PENDING, or incomplete blob file. When the same record is later re-delivered by a base copy, Harper now repairs that existing file in place rather than writing a new orphan the duplicate-skipped record would never reference. The repair is fail-atomic — it holds the blob lock, writes and verifies a sibling temp file, flushes, and renames over the target — so a failed repair leaves the referenced file byte-for-byte unchanged. The orphan sweeper respects active repair locks. Adds the shared blob-header classifier and thereplication.blobGapReconnectMsconfig key consumed by harper-pro (#2177).stream()/bytes()time, a reader that resolved a record just before a concurrent write could open a file that was already gone — on the HTTP path thatENOENTlands after response headers are committed, reaching the client as a truncated body while every signal reports success. The delay is now configurable viastorage.blobRetentionand defaults to 2s, and reclamation is reference-aware so an in-flight reader can take a retention hold (#2145).Deploy — by reference, with a durable credential
harper deploygains two opt-ins that together let an app be deployed from its git repository instead of an uploaded payload:by_ref=true(orref=<committish>) resolves the app's GitHubowner/repoand commit from the local working copy (or from GitHub Actions env) and deploysgit+https://github.com/<owner>/<repo>.git#<sha>. Everything that could move is resolved client-side to a SHA — including an explicitref=, locally first and then viagit ls-remote— so cluster peers, which resolve the package independently, cannot diverge on a moved tag. An unpinnable ref fails closed rather than being sent as a name the cluster would resolve for itself, and an attached credential is pinned to the package host (#1850).setup=trueis a guided, client-side credential provisioning flow — whatharper loginis for auth, but for deploy tokens. It fetches the cluster's public key, sources a token (a fine-grained PAT, yourghsession, or an npm token), seals it locally into anenc:v1:envelope, and stores only ciphertext in the component-scoped secret tier. The plaintext never leaves the machine; the cluster decrypts in memory only at deploy/rollback time (#1851).package_componentstreams instead of base64package_componentreturned the whole component tarball as a base64 string inside the JSON envelope, peaking at roughly 4.7× the archive size resident in a shared (on Fabric, multi-tenant) Harper process, and hard-failing withERR_STRING_TOO_LONGonce the base64 result exceeded V8's string cap. The operation now streams the archive; project-resolution failures other thanENOENTare rethrown instead of being swallowed (#2152, #2150).Dependency pinning for load-bearing modules
A caret range does not bind the version that reaches a running node: harper-pro, a rebuilt container, or a plain
npm installof publishedharpercould resolve a newer native or encoder dependency with no Harper PR and no human merge. The load-bearing ranges — rocksdb-js, the encoder/iterator modules whose object identity crosses its boundary, structon, and the optional native addons — are now pinned to the versions the lockfile already resolved. No installed dependency moves; only the allowed resolution narrows. Docker smoke additionally requires the rootmsgpackrand@harperfast/extended-iterablespecs to be byte-equal to rocksdb-js's requirements and rejects a nested copy (#2179). A follow-up aligned the structon pin with the lockfile after it brokenpm cion main (#2196).Also in this release
A report-mode
review-coverageCI check that surfaces cross-model review counts and a staleHuman-Review-Need:footer without blocking (#2183); an integration-test helper refactor (#1904); and non-major dependency updates (#2131, #2189, #2190).Full Changelog: HarperFast/harper@v5.2.2...v5.2.3
vitejs/vite (vite)
v8.2.2Compare Source
Features
@vitejs/devtoolspeer range to v0.5.0 (#23302) (495d9ff)Bug Fixes
resolve.preserveSymlinkswhen resolving root (fix #23197) (#23198) (8413052)Documentation
Miscellaneous Chores
Code Refactoring
Tests
Build System
Configuration
📅 Schedule: (in timezone America/New_York)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.