Repository navigation
fix(deps): preserve Node 25 toolchain compatibility - #68
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs changes before merge. What this changesThis PR updates oxfmt to 0.74.0, oxlint to 1.89.0, and tsdown to 0.23.1 with their locked dependencies. Example: A contributor installs development dependencies on Node 25 with pnpm install --frozen-lockfile.
Review scores
ProductKind: Maintenance · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Needs changes before merge - 2 items remain Keep this PR open for a focused repair: the formatter and linter updates are useful, but the bundled tsdown upgrade breaks supported Node 25 installations and reverses a recorded maintainer decision. Priority: P2 Before merge
Findings
Provenance
Tests
Agent review detailsHow this fits togetherThe development toolchain formats and lints repository files and builds router source into the published ESM package and declarations. flowchart LR
A[Package manifest and lockfile] --> B[pnpm installation]
B --> C[Formatter and linter]
B --> D[tsdown and declaration generator]
E[Router TypeScript source] --> D
D --> F[Published ESM and declarations]
Technical reviewBest possible solution: Retain the formatter and linter updates while restoring main's tsdown 0.22.14 and compatible bundler/declaration graph. Do we have a high-confidence way to reproduce the issue? The locked engine ranges exclude Node 25 under engineStrict, and exact-head CI confirms installation failure while main passes; no local execution was performed. Is this the best way to solve the issue? The compatible formatter and linter refresh is appropriate, but the tsdown upgrade should be removed in accordance with the existing maintainer decision. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 3db9a80449c1. Provenance checked
TestingProof path: shipped entry point. SecurityNone. EvidenceAcceptance criteria:
What I checked:
Likely related people:
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 21, 2026, 3:52 PM ET / 19:52 UTC. |
… updates Bumps the development group with 3 updates in the / directory: [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt), [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) and [tsdown](https://github.com/rolldown/tsdown). Updates `oxfmt` from 0.73.0 to 0.74.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.74.0/npm/oxfmt) Updates `oxlint` from 1.88.0 to 1.89.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.89.0/npm/oxlint) Updates `tsdown` from 0.22.14 to 0.23.1 - [Release notes](https://github.com/rolldown/tsdown/releases) - [Commits](rolldown/tsdown@v0.22.14...v0.23.1) --- updated-dependencies: - dependency-name: oxfmt dependency-version: 0.74.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development - dependency-name: oxlint dependency-version: 1.89.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development - dependency-name: tsdown dependency-version: 0.23.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development ... Signed-off-by: dependabot[bot] <support@github.com>
762764d to
6d8d14e
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Merged as c21eaef. The repaired PR passed every Node/platform job, including Node 25; post-merge CI and CodeQL also passed: https://github.com/openclaw/uirouter/actions/runs/39947077628. The current-version 0.1.2 release dry run passed without publishing: https://github.com/openclaw/uirouter/actions/runs/39947078445. Reproduction: Node 25.9.0 rejected the original tsdown 0.23.1 dependency graph under strict engine checks. The repaired graph passes frozen pnpm installation, all 58 tests, build/type/lint/format checks, packed-package import validation, and a zero-finding dependency audit on that same runtime. Final independent P0–P2 review is clean. Existing Node 25 support is preserved and documented, incompatible automated tsdown/Vitest upgrades are held, and seven development-tool advisories are resolved. No router API/runtime changes, release, tag, or package-version bump. Cloud lease stopped; task worktree removed; main clean. |
What Problem This Solves
The proposed tsdown 0.23 update prevents contributors on supported Node 25 from installing the development toolchain. The older locked test-server dependencies also carry security advisories.
User Impact
Node 25 remains supported for development, with no router API or runtime behavior changes. The package retains zero runtime dependencies.
Why This Change Was Made
Keep tsdown on its compatible 0.22 line and Vitest on 4.x, while updating the formatter, linter, compatible test patch, pnpm 11, and security-fixed transitive dependencies. Explicit patched Vite selection prevents unsafe automatic peer resolution. Document and encode the existing Node 25 compatibility hold in Dependabot version updates. Thanks @dependabot for the original tooling PR.
Evidence
Reproduced the original frozen-install failure with Node 25.9.0 (
ERR_PNPM_UNSUPPORTED_ENGINEfor tsdown 0.23.1). The repaired graph passes frozen installation andpnpm run checkon the same runtime, including all 58 tests and package pack/import validation. The audit reports zero advisories, down from seven, and workflow YAML parses successfully. Final independent Codex P0–P2 review is clean; the full Node/platform CI matrix must pass before merge.