fix(deps): update all non-major dependencies (minor) - #1951
Conversation
|
|
You do not have enough credits to review this pull request. Please purchase more credits to continue. |
📝 WalkthroughSummary by CodeRabbit
WalkthroughUpdated the Dockerfile frontend syntax directive, bumped several Node package versions and ChangesDependency and tooling updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the Dockerfile syntax version to 1.25 and bumps several package dependencies in package.json and bun.lock, including @google/gemini-cli, acpx, and vite-plus. Additionally, the lockfile reflects the removal of jsdom and its related sub-dependencies, replacing them with vitest and its associated packages. I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Mesa DescriptionTL;DRUpgrades non-major project dependencies and Dockerfile syntax version to pull in the latest minor updates, bug fixes, and performance improvements. What changed?
Description generated by Mesa. Update settings |
There was a problem hiding this comment.
1 issue found across 3 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="package.json">
<violation number="1" location="package.json:78">
P1: vite-plus 0.2.0 requires Node.js >=22.18.0 but package.json has no engines.node declaration. Without engine constraints, npm/yarn/bun won't warn users on older Node versions, causing silent failures at runtime.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| "typescript": "^6.0.3", | ||
| "vite": "^8.0.16", | ||
| "vite-plus": "^0.1.24", | ||
| "vite-plus": "^0.2.0", |
There was a problem hiding this comment.
P1: vite-plus 0.2.0 requires Node.js >=22.18.0 but package.json has no engines.node declaration. Without engine constraints, npm/yarn/bun won't warn users on older Node versions, causing silent failures at runtime.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At package.json, line 78:
<comment>vite-plus 0.2.0 requires Node.js >=22.18.0 but package.json has no engines.node declaration. Without engine constraints, npm/yarn/bun won't warn users on older Node versions, causing silent failures at runtime.</comment>
<file context>
@@ -75,7 +75,7 @@
"typescript": "^6.0.3",
"vite": "^8.0.16",
- "vite-plus": "^0.1.24",
+ "vite-plus": "^0.2.0",
"xcodebuildmcp": "^2.6.2"
},
</file context>
Signed-off-by:
2fb89c6 to
ec4dd4f
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@package.json`:
- Around line 73-78: Add an engines constraint to package.json before or
alongside the vite-plus dependency update so the required Node baseline is
documented and enforced. Update the package manifest near the top-level metadata
to include a node version requirement that matches vite-plus 0.2.x, and make
sure any existing install/build workflows in the repo are aligned with that
baseline. Use the package.json manifest and the vite-plus dependency entry as
the main touchpoints.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 3be97f99-02a4-46ad-9d7e-1b7f55c6027b
⛔ Files ignored due to path filters (1)
bun.lockis excluded by!**/*.lock
📒 Files selected for processing (3)
Dockerfilepackage.jsonpyproject.toml
| "takt": "^0.47.0", | ||
| "tokscale": "^3.1.3", | ||
| "turbo": "^2.9.18", | ||
| "typescript": "^6.0.3", | ||
| "vite": "^8.0.16", | ||
| "vite-plus": "^0.1.24", | ||
| "vite-plus": "^0.2.1", |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Node version declarations =="
for f in $(fd -HI '^(package\.json|\.nvmrc|\.node-version|\.tool-versions)$' . -E .git -E node_modules); do
echo "--- $f ---"
rg -n -C2 '"engines"|node-version|nodejs|^([0-9]+\.[0-9]+(\.[0-9]+)?)$' "$f" || true
done
echo
echo "== CI workflow Node setup =="
for f in $(fd -HI '.*\.ya?ml$' .github/workflows -E .git); do
if rg -n 'setup-node|node-version|node-version-file' "$f" >/dev/null; then
echo "--- $f ---"
rg -n -C2 'setup-node|node-version|node-version-file' "$f"
fi
done
echo
echo "== Dockerfile Node/runtime hints =="
rg -n -C2 'FROM .*node:|ARG .*NODE|nodejs|npm|pnpm|corepack' Dockerfile || true
echo
echo "== package.json scripts using vite/vitest/vite-plus =="
rg -n -C2 'vite-plus|vitest|"\w+":\s*".*\bvite\b' package.json || true
echo
echo "Expected result: every declared/runtime Node version satisfies >=22.18.0 (or >=24.11.0) anywhere vite-plus can run."Repository: shunkakinoki/dotfiles
Length of output: 676
🏁 Script executed:
cat -n package.json | grep -A 50 "engines" || echo "No engines field found in package.json"Repository: shunkakinoki/dotfiles
Length of output: 198
Add engines constraint to package.json before adopting vite-plus ^0.2.1.
The repository lacks an engines field, CI workflows, or Docker configuration that would enforce the required Node version (^22.18.0 || >=24.11.0) for vite-plus 0.2.x.
Without these safeguards, the update risks breaking local builds or workflows for developers on older Node versions.
Recommendation:
- Add the following to
package.jsonto document and enforce the baseline:"engines": { "node": ">=22.18.0" }
- If this is a local dotfiles-only usage, ensure your development environment explicitly meets the requirement.
Original diff snippet
"takt": "^0.47.0",
"tokscale": "^3.1.3",
"turbo": "^2.9.18",
"typescript": "^6.0.3",
"vite": "^8.0.16",
"vite-plus": "^0.2.1",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@package.json` around lines 73 - 78, Add an engines constraint to package.json
before or alongside the vite-plus dependency update so the required Node
baseline is documented and enforced. Update the package manifest near the
top-level metadata to include a node version requirement that matches vite-plus
0.2.x, and make sure any existing install/build workflows in the repo are
aligned with that baseline. Use the package.json manifest and the vite-plus
dependency entry as the main touchpoints.
This PR contains the following updates:
^0.29.0→^0.30.00.31.0^0.46.0→^0.47.00.49.0^0.140.0→^0.141.00.142.2(+2)0.140.0→0.141.00.142.2(+2)0.140.0→0.141.00.142.2(+2)0.140.0→0.141.00.142.2(+2)0.140.0→0.141.00.142.2(+2)0.140.0→0.141.00.142.2(+2)0.140.0→0.141.00.142.2(+2)^0.10.0→^0.11.00.11.2(+1)1.24→1.25^0.150.1→^0.152.00.159.0(+9)>=1.19.0→>=1.20.11.21.0^0.46.0→^0.47.00.48.0^0.1.24→^0.2.1Release Notes
google-gemini/gemini-cli (@google/gemini-cli)
v0.47.0Compare Source
What's Changed
Full Changelog: google-gemini/gemini-cli@v0.46.0...v0.47.0
openclaw/acpx (acpx)
v0.11.0Compare Source
Changes
@agentclientprotocol/claude-agent-acp@^0.37.0. Thanks @trumpyla.fast-agentas a built-in fast-agent ACP adapter viauvx fast-agent-mcp acp.muxas a built-in coder/mux ACP adapter vianpx -y mux@^0.27.0 acp. Thanks @ThomasK33.acpx compareto run one prompt across multiple agents and summarize timing, token usage, stop reason, permissions, and final output side by side. Thanks @mvanhorn.Breaking
Fixes
selectors that an ACP agent does not support, including whether model
capability is missing or the requested id is unadvertised, so embedders do not
need to match error text.
ACPX_CLAUDE_INCLUDE_USER_SETTINGS=1to restore user settings deliberately. Fixes #361.session/set_modelcompatibility for adapters that explicitly advertise legacy model metadata.Factory-AI/factory (droid)
v0.152.0Compare Source
v0.151.0Compare Source
huggingface/huggingface_hub (huggingface-hub)
v1.20.1Compare Source
Full Changelog: huggingface/huggingface_hub@v1.20.0...v1.20.1
v1.20.0: [v1.20.0] Browser-based OAuth login, multi-commit folder uploads, and moreCompare Source
🔒 Browser-based OAuth login
hf auth loginnow defaults to a browser-based OAuth Device Code flow instead of asking you to copy-paste a token. The command prints a URL and a short code, you authorize in the browser, and the CLI retrieves and saves the token for you. The same applies tologin()in Python. In an interactive terminal you still get agh-style arrow-key menu to pick between browser login and pasting a token, and--tokenworks exactly as before.OAuth tokens expire after 30 days, but they come with a refresh token:
get_token()transparently refreshes them when less than a day of validity remains, so long-running setups keep working without re-authenticating.hf auth listnow shows the expiry date for OAuth tokens.When the command is run by an AI agent, it never prompts. Instead it streams structured events so the agent can surface the URL and code to its user, then blocks until a terminal
auth_success/auth_errorevent:hf auth listsurfaces the new expiry column:Finally,
notebook_login()now renders the link and code with plainIPython.display.HTML, dropping theipywidgetsdependency.⚡ Faster, more reliable
hf uploadfor large foldershf uploadand the underlyingupload_folderhave been revamped to be faster and far more robust on large folders. Whenhf_xetis installed (the default), uploads now run through a streamed, multi-commit pipeline built on theXetSessionAPI: the folder is scanned and fed into a background Xet upload while previous batches are committed in parallel, and files are hashed in a single read pass while they are chunked (the old flow read every large file twice). Nothing changes in how you call it:This is a drop-in replacement for experimental
hf upload-large-folderused until today, which will be deprecated in a future release.What you get on large folders:
(part N)suffix.💻 Jobs:
wait, SSH access, and cleaner error messagesThis release adds three major capabilities to Hugging Face Jobs.
Wait for completion.
HfApi.wait_for_job()andhf jobs waitblock until one or more Jobs reach a terminal stage, which makes it easy to chain commands in CI scripts.wait_for_jobaccepts a single id or a list, returns the finalJobInfoeven on failure (checkjob.status.stage), and only raisesTimeoutErroron timeout. The CLI exits0only if all waited-on Jobs endedCOMPLETED.SSH access. With
--sshat launch and an SSH key registered on huggingface.co/settings/keys, you can connect straight into a running Job's container withhf jobs ssh <job_id>. Thanks towait_for_job,hf jobs sshnow waits for the Job to reachRUNNINGbefore connecting (with a status spinner) instead of failing immediately while it is still scheduling.Readable errors. A new
JobNotFoundErrorand the switch fromresponse.raise_for_statustohf_raise_for_statusturn rawhttpxtracebacks into clean, actionable messages. Per-commandtry/exceptblocks were removed in favor of the global CLI error handling.hf jobs waitandHfApi.wait_for_jobby @Wauplin in #4345hf jobs sshwait for job to be running by @Wauplin in #4379🖥️ Custom-container deploy for Inference Endpoints
hf endpoints deploycan now deploy custom Docker containers end-to-end, no more hand-writing JSON and POSTing the raw endpoints API. New flags wire up the image and its runtime:--custom-image,--health-route,--port,--command, and--container-args. Environment variables and secrets can be injected with--env/--env-fileand--secrets/--secrets-file. On the SDK side,create_inference_endpointgainscontainer_commandandcontainer_argsparameters.hf endpoints deploy nex-n2-pro \ --repo nex-agi/Nex-N2-Pro \ --framework custom \ --accelerator gpu --vendor aws --region us-east-1 \ --instance-type nvidia-h200 --instance-size x8 \ --custom-image nexagi/sglang:v0.5.12 \ --health-route /health --port 30000 \ --container-args "--reasoning-parser qwen3 --tool-call-parser qwen3_coder --mamba-scheduler-strategy extra_buffer --tp 8" \ --env MODEL_ID=/repository \ --type authenticatedThe
typeparameter now defaults toauthenticatedinstead of the deprecatedprotected(passingprotectedemits aFutureWarning). The custom-container flags raise a clean error if used without--custom-image.⏳ Wait for a Space with
wait_for_spaceandhf spaces waitMirroring the new
wait_for_jobprimitive,HfApi.wait_for_space()andhf spaces waitblock until a Space leaves an intermediate stage (BUILDING,APP_STARTING, …) and settles on a final state. The CLI exits0if the Space isRUNNING, non-zero otherwise.hf spaces sshandhf spaces dev-modewere refactored to usewait_for_spaceinternally instead of the old CLI-only helper.📚 Documentation: CLI guide — wait for a Space · Space runtime reference
wait_for_spaceAPI andhf spaces waitCLI by @Wauplin in #4380💔 Breaking Changes
🚨🚨 With the
upload_folderandhf uploadrevamp, uploading a folder might result in multiple commits.It is also not possible to open a PR against a specific revision while using
upload_folder. If you passcreate_pr=True, it will necessarily create a PR against main. It will open the PR no matter if some changes have been committed (previously an empty commit was resulting in no PR opened at all).RepoUrlnow rejects canonical single-segment repo IDs like"gpt2"or"datasets/squad"(use"user/gpt2"or"datasets/user/squad"instead).repo_type_and_id_from_hf_idis softly deprecated.parse_hf_urigains anendpointargument to parse URLs from self-hosted Hub instances.parse_hf_uriinRepoUrl+ soft-deprecaterepo_type_and_id_from_hf_idby @Wauplin in #4324Non-detached
hf jobs run/hf jobs uv runnow exit with the Job's outcome (exit1on Job error) instead of always exiting0🖥️ CLI
createcommand instead of just reporting the 404.🔧 Other QoL Improvements
408 Request Timeoutis now part of the default retry status set, alongside the existing 5xx codes.📖 Documentation
🐛 Bug and typo fixes
error_descriptionin HTTP error messages by @coyotte508 in #4341 — failed OIDC exchanges now surface the server'serror_description, making misconfigured Trusted Publishers far easier to debug.RemoteProtocolErrorinhttp_getby @Wauplin in #4351 — transient connection drops mid-download are now retried instead of failing the download.desktop.iniand similar Windows metadata files no longer trip upscan-cache.🏗️ Internal
inferencepytest marker to filter inference tests by @Wauplin in #4338--prerelease=allowinjection for sentence-transformers by @hanouticelina in #4366nrslib/takt (takt)
v0.47.0Compare Source
Added
findings-ledger.json) with lifecycle states (new,persists,resolved,reopened), severity levels, and deduplication. A dedicatedfindings-managerpersona reconciles raw findings from multiple reviewers, allocating stable IDs (F-0001,F-0002, …) and detecting conflicts. New implementation undersrc/core/workflow/findings/(reconciler, store, manager-runner, validation), with finding-contract output contracts for all review types (coding, architecture, security, QA, frontend, testing, terraform, CQRS/ES, pure, AI antipattern). Two new workflows ship with finding contract support:takt-default-with-fcandpeer-review-with-fc. Enable by adding afinding_contractsection to a workflow YAML.provider_routingconfig for persona, tag, and step-based provider selection (#844, #846). A newprovider_routingconfig section routes provider/model/provider_options by three dimensions:personas(by raw persona key),tags(by step tag), andsteps(by step name). Resolution priority is step direct >provider_routing.steps>provider_routing.tags>provider_routing.personas> legacypersona_providers> workflow > CLI. Configurable in project (.takt/config.yaml) or global (~/.takt/config.yaml).tagsarray (e.g.plan,coding,review,implementation,edit). Tags are the primary key forprovider_routing.tags, letting you apply provider/model overrides by category rather than individual step name. Tags are also supported on parallel sub-steps.traceDiscoverymodule builds a structuredWorkflowTraceDiscoveryobject (service name, runId, workflow name, task metadata, git branch/base info) and searchable query strings, enabling correlation of workflow runs with external observability tools like Grafana Tempo.WorkflowTraceTaskMetadataand propagated into OTel spans and trace discovery output.namedResourceResolver.ts) searches.takt/provider-options/→~/.takt/provider-options/→ builtinprovider-options/directories by bare name with extension fallback (.yaml/.yml), validating against path traversal and verifying symlinks stay inside allowed directories. Used by the newextendskeyword.Changed
provider_options.$refrenamed toprovider_options.extends(#820, #824). The$refkey in step/workflowprovider_optionsthat referenced shared YAML files has been renamed toextends. The value is now a bare name (e.g.extends: edit) resolved through the 3-layer named resource resolver, instead of a relative file path (e.g.$ref: provider-options/edit.yaml). Custom workflows using$refmust be updated. Builtin provider options files moved frombuiltins/{lang}/workflows/provider-options/tobuiltins/{lang}/provider-options/. User overrides go in.takt/provider-options/or~/.takt/provider-options/.persona_providersdeprecated in favor ofprovider_routing(#844, #846). Thepersona_providersconfig key still works but is now deprecated. It matches on display name which is fragile;provider_routing.personasmatches on the raw persona key instead. Migration: move entries frompersona_providerstoprovider_routing.personas.report-writer.tsmodule.Fixed
cli-config.json.tmp→cli-config.jsonrename races across parallel reviewer steps. TAKT now retries with exponential backoff (up to 8 attempts, 1–30 s delay) instead of treating it as a fatal provider error.UnavailableToolLoopDetectorbreaks the session after 2 consecutive unavailable-tool errors, surfacing a clear failure message.Internal
provider_routingandextends.WorkflowEngineSetupextracted for cleaner engine initialization.WorkflowRunLoopenhanced with failure metadata and command gate improvements.extendsreferences.voidzero-dev/vite-plus (vite-plus)
v0.2.1: vite-plus v0.2.1Compare Source
Restores support for older Node.js (back to
20.19.0) and makesvp exec --fail-if-no-matchfail correctly on unmatched filters.Fixes & Enhancements
engines.nodeto^20.19.0 || ^22.18.0 || >=24.11.0, matching Vite's own^20.19.0floor, so older Node that works in practice (e.g. Node 20 in rolldown CI) is no longer rejected (#1865), by @fengmk2vp exec --fail-if-no-match: exit non-zero when one or more--filterexpressions match no workspace packages. Strict mode previously only warned and returned success, so typoed filters looked successful in CI even though no package command ran (#1859), by @jong-kyungBundled Versions
8.0.16f94df871.1.1d7f919c0.22.34.1.91.70.00.23.00.55.0Upgrade
Upgrading from 0.1.x to 0.2.1 Prompt
Full Changelog: voidzero-dev/vite-plus@v0.2.0...v0.2.1
Published Packages
@voidzero-dev/vite-plus-core@0.2.1vite-plus@0.2.1Installation
macOS/Linux:
curl -fsSL https://vite.plus | bashWindows:
Or download and run
vp-setup.exefrom the assets below.v0.2.0: vite-plus v0.2.0Compare Source
Vite+ now consumes upstream Vitest directly (no wrapper), raises the minimum supported Node.js version to 22.18.0, and ships corepack and devEngines support.
Highlights
vp testnow runs upstream Vitest directly (breaking): Vite+ used to ship@voidzero-dev/vite-plus-test, a rebundled copy of Vitest that lagged upstream releases. That package is removed;vp testnow runs the real upstreamvitest, which is installed automatically as a dependency ofvite-plus(you no longer addvitestor@vitest/*yourself, andvitestill resolves to@voidzero-dev/vite-plus-corevia package-manager overrides). Yourimport ... from 'vite-plus/test'code keeps working unchanged andvp migrateupdates existing projects (#1588), by @Brooooooklyn^22.18.0 || >=24.11.0(breaking): Node 20 reached end-of-life and the bundled tsdown already required^22.18.0, so the published engines range now matches whatvp packcan actually deliver;vp exec/vp run/vp dlxreject projects resolving an older Node with the existing incompatibility error (#1813), by @fengmk2corepacknow set up by default, socorepack enableand the pnpm/yarn launchers just work, even on Node 25+ which no longer ships it. (#1808), by @fengmk2devEngines.runtime(ranked aboveengines.node) anddevEngines.packageManager; auto-pin andvp migratewritedevEngines.packageManager,vp env pin/unpintargetdevEngines.runtime, andvp env doctorreports conflicts instead of silently resolving them (#1760), by @fengmk2Features
vp pm approve-builds: forward to npm's newapprove-scripts/deny-scripts(npm >= 11.16.0) instead of the previous no-op, matchingpnpm approve-builds/bun pm trust; mixed approve+deny is rejected with actionable guidance and npm's advisory-only caveat is surfaced (#1733), by @fengmk2vp create: support local monorepo templates declared increate.templatesinvite.config.ts;vp create vite:generatorscaffolds a Bingo generator and auto-registers it in the picker, replacing the old package.json-keyword inference (#1777), by @fengmk2vp create: detect direct dependencies whose build scripts the package manager gated (e.g. native builds likebetter-sqlite3) and act on them; prompt to approve each (default off) interactively, point atvp pm approve-buildsnon-interactively, or build them with--approve-builds(#1828), by @fengmk2vp config: add--no-hooksand--no-agentopt-outs to skip git-hook installation and coding-agent instruction updates (#1842), by @leno23vp list -g: sort the global package list output so entries appear in a stable order (#1748), by @liangmiQwQ1.0.3 -> 1.1.1, tsdown0.22.1 -> 0.22.3, oxlint1.67.0 -> 1.70.0, oxfmt0.52.0 -> 0.55.0, vitest4.1.8 -> 4.1.9, and the oxc toolchain0.133.0 -> 0.136.0(#1749, #1767, #1812, #1834, #1855), by @voidzero-guard[bot]Fixes & Enhancements
openssl0.10.76 -> 0.10.80(openssl-sys0.9.112 -> 0.9.116), fixing five high-severity rust-openssl issues (buffer overflows in key derivation, AES key wrap, and digest finalization; an unchecked PSK/cookie trampoline length leaking adjacent memory; and OCSP-responder undefined behavior: GHSA-pqf5-4pqq-29f5, GHSA-8c75-8mhr-p7r9, GHSA-ghm9-cr32-g9qj, GHSA-hppc-g8h3-xhp3, GHSA-xp3w-r5p5-63rr), and drop the unmaintained, unsoundlibyml(GHSA-gfxp-f68g-8x78, high) by removing deadserde_ymlcode (#1742), by @fengmk2mermaid11.13.0 -> 11.15.0to fix improperclassDefsanitization in state diagrams that allowed HTML injection (CVE-2026-41149 / GHSA-ghcm-xqfw-q4vr, medium severity;<script>tags are stripped so it does not reach XSS) (#1745), by @renovate[bot]vp check --fix/vp staged: create/migrate now wrap inline Viteplugins: [...]arrays withlazyPlugins(...)so plugin factories aren't eagerly executed (and don't hang on open handles) during lint/format/check config loading (#1752), by @jong-kyungvp migrate: complete pending migration work for projects that already havevite-plusinstalled (scripts, imports, tsconfig types, ESLint/Prettier, legacy hooks, package-manager settings) instead of treatingvite-plusas migration-complete; fully migrated projects stay idempotent (#1821), by @jong-kyungvp create/vp migrate: detect shorthandfmt,/lint,config keys so a duplicate inline block is no longer injected (#1843), by @fengmk2Configuration
📅 Schedule: (in timezone UTC)
🚦 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 has been generated by Mend Renovate.