Skip to content

fix(deps): update all non-major dependencies#2592

Open
renovate-bot wants to merge 1 commit into
ghiscoding:masterfrom
renovate-bot:renovate/all-minor-patch
Open

fix(deps): update all non-major dependencies#2592
renovate-bot wants to merge 1 commit into
ghiscoding:masterfrom
renovate-bot:renovate/all-minor-patch

Conversation

@renovate-bot
Copy link
Copy Markdown
Contributor

@renovate-bot renovate-bot commented May 22, 2026

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@excel-builder-vanilla/types (source) ^5.0.0^5.0.1 age confidence
@fluentui/react-icons ^2.0.326^2.0.328 age confidence
@hono/node-server ^2.0.2^2.0.3 age confidence
@types/react (source) ^19.2.14^19.2.15 age confidence
@vitejs/plugin-react (source) ^6.0.1^6.0.2 age confidence
@vitejs/plugin-vue (source) ^6.0.6^6.0.7 age confidence
@vitest/coverage-v8 (source) ^5.0.0-beta.2^5.0.0-beta.3 age confidence
@vitest/ui (source) ^5.0.0-beta.2^5.0.0-beta.3 age confidence
@vue/language-core (source) ^3.2.9^3.3.1 age confidence
dompurify ^3.4.3^3.4.5 age confidence
excel-builder-vanilla (source) ^5.0.0^5.0.1 age confidence
fallow (source) ^2.76.0^2.79.0 age confidence
fflate (source) ^0.8.2^0.8.3 age confidence
hono (source) ^4.12.18^4.12.22 age confidence
oxlint (source) ^1.65.0^1.66.0 age confidence
postcss (source) ^8.5.14^8.5.15 age confidence
sass ^1.99.0^1.100.0 age confidence
vite (source) ^8.0.13^8.0.14 age confidence
vite-plugin-dts (source) ^5.0.0^5.0.1 age confidence
vitest (source) ^5.0.0-beta.2^5.0.0-beta.3 age confidence
vue-tsc (source) ^3.2.9^3.3.1 age confidence

Release Notes

ghiscoding/excel-builder-vanilla (@​excel-builder-vanilla/types)

v5.0.1

Compare Source

Bug Fixes
microsoft/fluentui-system-icons (@​fluentui/react-icons)

v2.0.328

Compare Source

v2.0.327

Compare Source

honojs/node-server (@​hono/node-server)

v2.0.3

Compare Source

What's Changed

New Contributors

Full Changelog: honojs/node-server@v2.0.2...v2.0.3

vitejs/vite-plugin-react (@​vitejs/plugin-react)

v6.0.2

Compare Source

Allow all options in reactCompilerPreset (#​1189)

This is a type only change. Only compilationMode and target options were available for reactCompilerPreset.

vitejs/vite-plugin-vue (@​vitejs/plugin-vue)

v6.0.7

Features
Bug Fixes
vitest-dev/vitest (@​vitest/coverage-v8)

v5.0.0-beta.3

Compare Source

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes
   🏎 Performance
    View changes on GitHub
vuejs/language-tools (@​vue/language-core)

v3.3.1

Compare Source

language-core
language-service
  • refactor: replace scanner-based missing props hints detection with AST traversal - Thanks to @​KazariEX!
typescript-plugin
  • fix: get component prop details from symbols - Thanks to @​KazariEX!
  • fix: skip unchecked JS identifiers in component props (#​6055) - Thanks to @​KazariEX!
vscode
  • fix: resolve typescript plugin path from resolved server path (#​6058) - Thanks to @​KazariEX!

v3.3.0

Compare Source

language-core
  • feat: check required fallthrough attributes (#​6049) - Thanks to @​KazariEX!
  • fix: penetrate v-if branch fragments when collecting single root nodes - Thanks to @​KazariEX!
  • refactor: rename Sfc APIs to IR - Thanks to @​KazariEX!
language-service
  • fix: reuse ASTs for define assignment suggestions - Thanks to @​KazariEX!
  • fix: re-support html.customData (#​5910) - Thanks to @​Bomberus!
  • fix: strip ="" only for plain boolean props completion edits - Thanks to @​KazariEX!
  • fix: reset to default data provider after running with vue data provider - Thanks to @​KazariEX!
typescript-plugin
vscode
  • fix: include extraFileExtensions in tsserver configure request payload (#​6048) - Thanks to @​KazariEX!
  • fix: write typescript plugins at build time (#​6050) - Thanks to @​KazariEX!
  • fix: avoid infinite diagnostics on Vue files when project diagnostics is enabled (#​6051) - Thanks to @​KazariEX!
cure53/DOMPurify (dompurify)

v3.4.5

Compare Source

v3.4.4: DOMPurify 3.4.4

Compare Source

  • Added the selectedcontent element to default allow-list, thanks @​lukewarlow
  • Added the command and commandfor attributes to default allowed-list, thanks @​lukewarlow
  • Added better template scrubbing for IN_PLACE operations, thanks @​DEMON1A
  • Added stronger checks for cross-realm windows, thanks @​DEMON1A & @​fg0x0
  • Updated demo website and made sure it uses the latest from main
  • Updated existing workflows, fuzzer, dependabot, etc., added more tests
  • Bumped several dependencies where possible
ghiscoding/excel-builder-vanilla (excel-builder-vanilla)

v5.0.1

Compare Source

Note: Version bump only for package excel-builder-vanilla

fallow-rs/fallow (fallow)

v2.79.0

Compare Source

Added
  • Ember.js / Glimmer / Embroider plugin. New built-in plugin activates on ember-source, ember-cli, @embroider/core, @embroider/compat, or @glimmer/component. Whitelists the build- / CLI- / runtime-resolved tooling that no source file imports (ember-source itself, ember-cli, ember-cli-htmlbars, etc.) so those packages do not surface as unused-dependency. Packages that a modern Ember app imports directly (@glimmer/component, @glimmer/tracking, etc.) are deliberately omitted; the normal import graph credits them, and listing them in the tooling allowlist would mask real removals when a user drops the dependency. Declares scoped used-class-member rules for Component, Route, Controller, Service, Helper, Modifier, Application, and Router so framework-invoked lifecycle methods (model, setupController, etc.) are not flagged as unused on subclasses. Declares the specific @ember/* paths that ember-source exposes through the AMD loader (classic) and the Embroider rewriter (@ember/application, @ember/array, etc.) as virtual-module prefixes so they no longer surface as unresolved-import or unlisted-dependency. The list is deliberately enumerated rather than a blanket @ember/ because parts of the @ember/* namespace are real npm packages users install explicitly (@ember/test-helpers, @ember/render-modifiers, etc.); a blanket prefix would mask legitimate missing-dep bugs when one of those is removed from package.json. The source of truth for the enumeration is ember-source's package.json#exports field. Because matching is prefix-based, new subpaths under existing roots (e.g. future @ember/object/... additions) are covered automatically. Known gaps: bare import Ember from 'ember' and v1 addon subpaths like ember-in-viewport/modifiers/in-viewport still need ignoreDependencies or an inline suppression until addon-shape resolution is added (not planned). Exposes Ember's classic-layout filesystem conventions (app/components/**, app/routes/**, app/services/**, tests/**/*-test.{js,ts,gjs,gts}, config/, ember-cli-build.js, testem.js) as entry-point globs since the Ember resolver loads those modules by convention rather than via static import. Scoped to strict-mode Ember apps and v2 addons: classic v1 addon layouts (addon/, addon-test-support/) are intentionally out of scope because they predate strict-mode .gts / .gjs and gain nothing from the plugin's value-adds; v1-addon maintainers can declare those paths via entry in their fallow config. .gts / .gjs single-file components were already parseable thanks to the existing <template>-stripping helper; tracking imports referenced only inside <template> blocks (and inside co-located .hbs templates) is intentionally deferred, which will extend the same scaffolding with sfc_template-style scanning. Thanks @​mike-engel for the plugin (PR #​369).
  • Glimmer <template> blocks credit imported-binding usage in .gts / .gjs. Imports referenced only inside a <template>...</template> block are no longer flagged as unused-import: PascalCase tag invocation (<HelloWorld />), mustache helper ({{capitalize x}}), triple-stash helper ({{{formatHtml body}}}), sub-expression helper ({{if (and a b) "y" "n"}}), element modifier ({{on "click" handle}}), and dotted reference ({{utils.formatDate value}}) are all credited. Handlebars/Glimmer built-in keywords (if, unless, each, let, yield, etc.), this.* chains, @arg references, and named-argument keys are never resolved as imports. Block-parameter introductions (as |item index|) are accumulated as template-scope locals so they shadow same-named imports. Co-located .hbs templates remain a known limitation: imports referenced only inside a sibling .hbs file still surface as unused on the sibling .js/.ts; the plugin's entry_patterns keep the JS sibling reachable as a file, and migrating to .gts removes the limitation entirely. The extraction cache (CACHE_VERSION bumped to 95) invalidates automatically on upgrade so warm .gts / .gjs entries are re-extracted with template-visible import usage.
Fixed
  • React Router v7 and Remix generated ./+types/* route modules no longer surface as unresolved imports when the generated files are absent from a clean checkout. Before, route modules using import type { Route } from "./+types/root" reported false-positive unresolved-import findings because those modules are produced by the framework's typegen step and are often gitignored. After, the React Router and Remix plugins declare ./+types/ as a generated type-import prefix. The suppression is plugin-gated and type-only, so runtime imports under the same prefix still report normally. (Closes #​645.)

  • JSX resource attributes no longer report as unresolved imports. Before, generic TSX metadata such as <link rel="stylesheet" href="style-a.css" />, <link rel="modulepreload" href="/vendor.js" />, and <script src="./script-a.js" /> emitted synthetic side-effect imports, so serializer tests in projects like Hono produced large false unresolved-imports clusters for runtime HTML literals. After, generic JSX resource attributes are ignored by default, while HTML files and bare html tagged-template asset scanning keep their existing graph edges. The extraction cache version is bumped so warm caches drop stale JSX resource edges. (Closes #​640.)

  • Combined human summaries are less repetitive, and fallow explain accepts issue labels with spaces. Before, fallow --summary in human mode could print both a section header and the summary renderer's own title for the same analysis, and combined runs could repeat the loaded config: notice once per analysis phase. After, combined summary sections keep their high-level headers without duplicating titles, config-load notices are deduped per config file, and fallow explain unused files / fallow explain code duplication work the same as the existing hyphenated spellings.

  • Public class members exposed through non-private package entry points are no longer reported as removable internals. Library-style packages that re-export builder or database classes from package.json entry points (main, root exports, or subpath exports) previously reported every uncalled public method as unused-class-member, even though those methods are part of the consumer API. find_unused_members now treats classes reached from an actual non-private package entry point re-export, from the transitive export * closure rooted at one, or from src/**/index.* source subpath indexes in packages with no exports map as public API and skips class member findings for those exports. The skip is limited to class methods/properties, so enum member behavior, private app packages, and internal reachable classes are unchanged. Covers renamed re-exports, default-as-named re-exports, source-first root index.js fallbacks, package subpath exports, exportless source subpath indexes, and multi-hop star barrels. (Closes #​643.)

  • Workspace and self package imports that point at missing prebuild output now resolve back to source. Before, packages such as Nitro and Redux Toolkit could report false unresolved-imports, unlisted-dependencies, unused-dependencies, and unused-files when package.json imports or exports selected dist targets before a build had run. After, fallow uses the nearest package manifest for #... imports and known root/workspace package manifests for self or workspace package specifiers, maps project-relative output targets back to tracked src candidates, and preserves dependency usage metadata when those package imports resolve to internal source files. Unmatched hash aliases, missing source targets, undeclared workspace imports, and unrelated unused files still report. (Closes #​641.)

  • Cloudflare Workers, Content Collections, and Node module.register() loaders no longer surface as false positives. Three convention-driven shapes were previously reported as unused-file / unused-export because fallow had no static way to follow them. After: (1) Cloudflare Workers projects with "main": "src/worker.tsx" (or any env.<name>.main override) in wrangler.{toml,json,jsonc} keep that worker entry alive; the static glob also widens to src/{index,worker}.{ts,tsx,js,jsx,mts,mjs} so JSX worker entries from rwsdk, React Router worker, and Hono on Workers stay reachable without reading the config. (2) Content Collections projects (@content-collections/{core,vite,next,solid-start,remix-vite,qwik,vinxi}) keep their root content-collections.{ts,tsx,js,jsx,mts,mjs,cts,cjs} config alive, and the @content-collections/* packages stay credited as tooling deps. The plugin activates when any framework integration is a direct dep, so the common case of installing only @content-collections/vite (with core arriving transitively) still works. (3) Node module.register('./hooks/loader.ts', import.meta.url) calls (or the register(url) form where url is bound to new URL('./loader.ts', import.meta.url), including the conditional condition ? srcUrl : distUrl shape) now credit the loader file's hook exports: the current initialize / resolve / load / globalPreload set plus the legacy getFormat / getSource / transformSource for projects still on older Node. The extraction cache version is bumped, so users on warm caches will see a one-time re-extract on first run after upgrading. Thanks @​M-Hassan-Raza for the patch. (Closes #​588, #​589, #​590.)

  • Playwright extend() fixture helpers are credited as used class members. Before, helper classes referenced only as Playwright fixtures (test.extend({ helper: async ({}, use) => use(new MyHelper(page)) })) had every public method reported as unused-class-member because the visitor only tracked direct call expressions, not the property-access shape that fixture consumers use (await helper.click('button')). After, the AST visitor's class-member usage tracker credits identifier references to fixture-bound helper classes the same way it credits direct invocations, so Playwright Page Object Model patterns no longer surface false-positive removable-internal findings.

  • HTML asset scanner skips build-time template-placeholder specifiers. <script src="{{rootURL}}assets/app.js"> (Ember's app/index.html), <script src="###APPNAME###/..."> (ember-cli blueprint scaffolds), and the equivalent shapes from any other framework that embeds Handlebars / Mustache / Jinja2 / pre-compiled Vue or Angular template syntax inside checked-in HTML are filtered at extraction time instead of being seeded as unresolvable specifiers that surface as unresolved-import. {{ and ### are never valid characters in a real <script src> / <link href> path, so the filter is generic across template engines rather than gated on a plugin. Applies to <script src>, <link rel="stylesheet" href>, and <link rel="modulepreload" href>.

v2.78.1

Compare Source

Fixed
  • Windows clippy on main is green again. The pre-existing #[expect(dead_code)] annotation on ScopedChild::id was unfulfilled on Windows because the function is pub in a pub mod, so rustc never flags it as dead under -D warnings. Switched to #[allow] which tolerates the lint not firing, restoring the Windows leg of ci.yml. No user-visible behavior change.

  • npm install fallow postinstall no longer fails on shared-IP CI runners with digest-unavailable. Before, the postinstall verifier fetched each platform binary's expected SHA-256 from the unauthenticated GitHub release API (api.github.com/repos/fallow-rs/fallow/releases/tags/v<version>), so pooled CI IPs (Buildkite, GHA shared runners, internal build clusters) routinely exceeded the 60 req/hr unauthenticated limit and pnpm install --frozen-lockfile aborted with fallow: binary verification failed ... (digest-unavailable): GitHub release API returned HTTP 403: API rate limit exceeded. After, the release workflow's npm-prep job computes the SHA-256 of every binary inside each @fallow-cli/<platform> package and writes it into the platform package's package.json under fallowDigests. verify-binary.js reads that embedded value first and only falls back to the GitHub API for platform packages published before v2.78.1 that do not yet carry the field, so steady-state installs perform zero network calls during digest verification. The Ed25519 signature layer and the FALLOW_SKIP_BINARY_VERIFY escape hatch are unchanged. (Closes #​597.)

v2.78.0

Compare Source

Added
  • fallow flags default SDK detector list expanded to PostHog, Vercel Flags, ConfigCat, Optimizely, and Eppo. Before, the built-in detector set covered LaunchDarkly, Statsig, Unleash, and GrowthBook only; teams using any of the five additional providers had to wire up flags.sdkPatterns manually in .fallowrc.json or accept zero detections. After, every project running fallow flags (or the bare fallow combined pipeline with the flags rule on) picks up flag usage from those five SDKs out of the box, matching the call-shape conventions each library publishes (posthog.isFeatureEnabled('flag-name'), useFlag('flag-name') and getFlag('flag-name') for @vercel/flags, configcatClient.getValueAsync('flag-name', default), optimizely.isFeatureEnabled('flag-name'), eppoClient.getStringAssignment('flag-name', subject, default)). User-authored flags.sdkPatterns still apply on top of the expanded built-in set, so existing custom detectors continue to win when they overlap. (Closes #​563.)

  • --explain now works in human output and in combined-mode JSON, not just subcommand JSON. Before, --explain was a documented top-level flag promising "Include metric definitions and rule descriptions in output" but it only fired on the subcommand+JSON path (fallow dead-code --explain --format json, etc.); every other invocation (fallow --explain, fallow --explain --format json, fallow dead-code --explain human, fallow health --explain human, fallow dupes --explain human, plus the combined-mode variants) produced output byte-identical to the same invocation without the flag. After, the human renderers each gain a Description: line under each rule / metric with the prose pulled from crates/cli/src/explain.rs::{CHECK_RULES, HEALTH_RULES, DUPES_RULES}, and combined-mode JSON gains a top-level _meta field aggregating the per-analysis _meta blocks so a single fallow --explain --format json call surfaces the full rule + metric description set. Subcommand+JSON behaviour is unchanged. (Closes #​559.)

  • License verification rejects JWTs whose iat claim is more than 24h in the future relative to the local clock, surfacing clock-skew problems loudly instead of silently letting expired licenses pass. Before, the verifier in fallow-license compared the JWT's exp claim against SystemTime::now() with no skew bound on either side: a laptop with the clock set to 2020 would treat a 2025-expired license as Valid for years; a JWT with iat in the future (an out-of-sync signing server, or a replayed token from a forward-shifted clock) was accepted without question. After, verify_jwt_with_skew runs an explicit claims.iat > now + tolerance check after signature verification and before the grace ladder. The same inequality catches both directions of skew (a forward-signed JWT and a clock-behind-reality), since now < iat - tolerance is equivalent to iat > now + tolerance. Rejection surfaces as a new LicenseError::ClockSkew variant whose Display message names CI containers without NTP, dead BIOS batteries, and clock drift as common non-user causes, and renders the magnitude as a human-friendly duration (e.g. 2 days) rather than raw seconds. The existing verify_jwt(raw, key, now, hard_fail_days) signature is preserved as a thin shim that delegates with the default tolerance, so out-of-tree embedders of the fallow-license crate see no breaking change. The default tolerance (24h, matching jsonwebtoken/pyjwt/jjwt leeway conventions) is overridable via the new FALLOW_LICENSE_SKEW_TOLERANCE_SECONDS env var for CI environments with predictable drift; lenient parsing (unset / empty / unparsable / negative all fall back to the default) keeps a typo in a runner env block from failing license verification. The iat-only check is deliberately asymmetric to exp: the existing 7/30/hard-fail grace ladder already absorbs sub-day exp skew, so layering tolerance on exp would duplicate coverage. (Closes #​453.)

Changed
  • Per-stage progress spinners replaced with a single persistent process-wide spinner. Before, every analysis stage (discovery, extract, graph, analyze, dupes, health) created and tore down its own spinner; on fast machines the per-stage spinners flickered so quickly that no spinner was ever visibly painted, and a user running fallow on a moderately-sized project saw nothing between command issue and the final summary, with no indication that the process was alive. After, fallow_core holds one persistent indicatif spinner spawned at the start of the run and reused across every stage, with the stage label updated in place as the pipeline advances ("Discovering files", "Extracting AST", "Building graph", "Detecting dead code", etc.). The spinner draws on stderr regardless of --format, respects FALLOW_QUIET=1 / --quiet / non-TTY stderr (suppressed in those cases for clean piped output), and is mutually exclusive with --trace-style stderr emission. No JSON / SARIF / CodeClimate output change. (Closes #​560.)
Fixed
  • TanStack Router ./routeTree.gen imports no longer surface as unresolved when the generated route tree is absent from a clean checkout. Before, projects using TanStack Router or Start could import ./routeTree.gen from src/router.tsx and get a false-positive unresolved-import because src/routeTree.gen.ts is generated by TanStack tooling and is often gitignored until codegen runs. The TanStack Router plugin now declares /routeTree.gen as a generated import suffix, so active TanStack projects suppress that framework artifact while ordinary missing relative imports still report. (Closes #​646.)

  • fallow --score and fallow --trend now render the health score and trend in human terminal output. Before, the bare combined-mode invocations computed the score and serialized it to JSON / SARIF / CodeClimate, but crates/cli/src/combined.rs::print_orientation_header never called the existing render_health_score / render_health_trend helpers in crates/cli/src/report/human/health.rs. A user running fallow --score to read the project score in the terminal saw the same orientation header as a plain fallow run, while fallow --score --format json | jq .health.health_score returned the populated object. After, print_orientation_header collects score + trend lines via those helpers (now exported through crate::report) and emits them on stderr above the vital signs block, matching the visual treatment of fallow health --score (● Health score: <score> <grade> plus the per-penalty deductions line). A new skip_score_and_trend field on ReportContext tells the downstream Complexity section's print_health_human to skip the score / trend block so the line is rendered exactly once (combined-mode call site sets true, standalone fallow health and fallow audit keep false so their renderers stay inline). When --trend is set the trend table also renders; vital signs continue to be suppressed in that case as before. --min-score exit-code gating, JSON / SARIF / CodeClimate output, and the no-flag bare fallow human output are unchanged. (Closes #​557.)

  • fallow check --format codeclimate --production no longer panics with internal error: entered unreachable code when a --production-suppressed dep / export / member rule resolves to Severity::Off. Three generic-iterator helpers in crates/cli/src/report/codeclimate.rs (push_dep_cc_issues, push_unused_export_issues, push_unused_member_issues) eagerly called severity_to_codeclimate(severity) BEFORE iterating their findings, so a call with severity = Off and an empty (or filtered-down) findings vec hit the Off => unreachable!() arm and exited 101. The fix moves the severity mapping inside each helper's loop body, so the call only fires when there is a finding to emit; behaviour for non-empty findings is byte-identical and a new build_codeclimate_with_off_severity_and_empty_findings_does_not_panic regression test locks it in. Slice-based helpers were already safe via their existing is_empty() early-return guards. The same PR also centralised severity_to_codeclimate next to the SARIF and review-label mappers in crates/cli/src/report/ci/severity.rs::codeclimate_severity, so adding a future Severity variant now compile-fails at all three CI-format mappers simultaneously. Wire shape unchanged: existing CodeClimate snapshot tests pass byte-identically. (Closes #​452.)

  • fallow list --files and fallow list --entry-points now emit forward-slashed paths in both --format json and the default plain-text output. Before, the per-path projection skipped the .replace('\\', "/") normalisation that the sibling workspaces array already applied via format_display_path, so Windows consumers received src\index.ts-shaped paths via JSON (breaking CI glob filters, MCP agents, and downstream pipelines that assume POSIX-style separators) and via stdout when piping to xargs / grep. The plain-text --files and --entry-points sites are now routed through format_display_path so the four list emission paths share one canonical helper. Sibling regression tests list_json_files_are_relative_paths and list_json_entry_point_paths_are_relative were tightened with assert!(!path.contains('\\')) and a strict starts_with("src/") clause so a backslashed path now fails CI on the Windows leg pre-fix and passes post-fix. Refs #​561; follow-up to #​575.

  • Focused duplicate analysis (fallow audit --gate new-only, fallow dupes --changed-since) no longer drops every clone group on Windows when opts.root and the changed-files set disagree on Windows verbatim-prefix shape. crates/core/src/duplicates/shingle_filter.rs::filter_to_focus_candidates and crates/core/src/duplicates/detect/mod.rs::detect_inner both compared focus_files.contains(&file.path) directly. On Windows, focus_files enters with non-verbatim paths (joined onto a dunce::canonicalized toplevel from try_get_changed_files), while file.path may carry the \\?\ verbatim prefix when the caller pre-canonicalised opts.root with std::fs::canonicalize (the audit test fixtures do this to exercise the macOS /var/folders/... -> /private/var/folders/... symlink case). Byte-level FxHashSet::contains mismatched on the prefix component, every file landed as non-focus, and the dupes detector materialised zero clone groups. After, both sites normalise the focus set's entries via dunce::simplified once at function entry, then look up via normalized_focus.contains(dunce::simplified(&file.path)). dunce::simplified is a no-op string-level operation on POSIX and on non-verbatim Windows paths, so the fix is zero-cost off the bug's hot path. Closes the last 2 Windows-only audit test failures: audit_dupes_only_materializes_groups_touching_changed_files and audit_gate_new_only_inherits_pre_existing_duplicates_in_focused_files. Refs #​561.

  • try_get_changed_files now normalises forward-slash segments to backslash on Windows so the FxHashSet::contains check against discovery-emitted paths actually matches. git diff --name-only emits paths shaped src/legacy.ts regardless of host OS. PathBuf::join on Windows appends with the native backslash separator without converting separators inside the appended segment, so the resulting buffer landed as C:\Users\...\Temp\test\src/legacy.ts (mixed separators). File discovery via walkdir produces all-backslash paths (C:\Users\...\Temp\test\src\legacy.ts). FxHashSet::contains compares bytes, not components; the two forms mismatched and the focused duplicates / changed-since filters silently dropped every finding. On POSIX the segment is already in native form so the new #[cfg(windows)]-guarded replace is a no-op. Closes the last two Windows-only audit test failures: audit_dupes_only_materializes_groups_touching_changed_files and audit_gate_new_only_inherits_pre_existing_duplicates_in_focused_files. Also fixes path_is_inside_temp_dir to use dunce::simplified (no I/O) so it accepts both verbatim and non-verbatim input shapes including synthetic test paths. Refs #​561.

  • fallow audit's docs-only fast path, reusable-worktree cache hash, worktree-identity comparison, and path_is_inside_temp_dir filter all use dunce::canonicalize instead of std::fs::canonicalize to keep Windows path-prefix comparisons consistent. Follow-up sweep to the CHANGELOG entry below (which only fixed resolve_git_toplevel's canonicalisation). Four additional production sites in crates/cli/src/audit.rs still used std::fs::canonicalize, each producing a \\?\C:\... verbatim path on Windows that mismatched against non-verbatim paths flowing in through other code paths (opts.root, std::env::temp_dir(), etc.). The mismatch broke three audit unit tests (audit_dupes_only_materializes_groups_touching_changed_files, audit_gate_new_only_inherits_pre_existing_duplicates_in_focused_files, audit_gate_new_only_skips_base_snapshot_for_docs_only_diff) which surfaced after the prior fix closed the changed_files mismatch. Sites switched: can_reuse_current_as_base::canonical_cache_dir, reusable_audit_worktree_path::repo_root, paths_equal, and path_is_inside_temp_dir. dunce::canonicalize is identical to std::fs::canonicalize on POSIX. Refs #​561.

  • fallow's nudge, refactoring-targets, Angular rollup, and inherited-from human-output lines now render workspace-relative paths instead of bare basenames. Before, the combined-mode failure footer rendered Failed: dead-code (...), health (...) ... start with index.ts, the orientation header's refactoring-targets nudge rendered 3 refactoring targets ... start with index.ts (complexity), the Angular component rollup line rendered `rolled up: ... on MyComponent.method + ... on tem

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "every 4 weeks on friday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@forking-renovate forking-renovate Bot added 📦 dependencies Pull requests that update a dependency file 🤖 bot labels May 22, 2026
@renovate-bot renovate-bot added 📦 dependencies Pull requests that update a dependency file 🤖 bot labels May 22, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.0%. Comparing base (0399cd7) to head (976caa4).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #2592   +/-   ##
=======================================
  Coverage   100.0%   100.0%           
=======================================
  Files         199      199           
  Lines       25168    25168           
  Branches     8908     8908           
=======================================
  Hits        25168    25168           
Flag Coverage Δ
angular 100.0% <ø> (ø)
universal 100.0% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 22, 2026

angular-slickgrid

npm i https://pkg.pr.new/angular-slickgrid@2592

aurelia-slickgrid

npm i https://pkg.pr.new/aurelia-slickgrid@2592

slickgrid-react

npm i https://pkg.pr.new/slickgrid-react@2592

slickgrid-vue

npm i https://pkg.pr.new/slickgrid-vue@2592

@slickgrid-universal/angular-row-detail-plugin

npm i https://pkg.pr.new/@slickgrid-universal/angular-row-detail-plugin@2592

@slickgrid-universal/aurelia-row-detail-plugin

npm i https://pkg.pr.new/@slickgrid-universal/aurelia-row-detail-plugin@2592

@slickgrid-universal/react-row-detail-plugin

npm i https://pkg.pr.new/@slickgrid-universal/react-row-detail-plugin@2592

@slickgrid-universal/vue-row-detail-plugin

npm i https://pkg.pr.new/@slickgrid-universal/vue-row-detail-plugin@2592

@slickgrid-universal/binding

npm i https://pkg.pr.new/@slickgrid-universal/binding@2592

@slickgrid-universal/common

npm i https://pkg.pr.new/@slickgrid-universal/common@2592

@slickgrid-universal/composite-editor-component

npm i https://pkg.pr.new/@slickgrid-universal/composite-editor-component@2592

@slickgrid-universal/custom-footer-component

npm i https://pkg.pr.new/@slickgrid-universal/custom-footer-component@2592

@slickgrid-universal/custom-tooltip-plugin

npm i https://pkg.pr.new/@slickgrid-universal/custom-tooltip-plugin@2592

@slickgrid-universal/empty-warning-component

npm i https://pkg.pr.new/@slickgrid-universal/empty-warning-component@2592

@slickgrid-universal/event-pub-sub

npm i https://pkg.pr.new/@slickgrid-universal/event-pub-sub@2592

@slickgrid-universal/excel-export

npm i https://pkg.pr.new/@slickgrid-universal/excel-export@2592

@slickgrid-universal/graphql

npm i https://pkg.pr.new/@slickgrid-universal/graphql@2592

@slickgrid-universal/odata

npm i https://pkg.pr.new/@slickgrid-universal/odata@2592

@slickgrid-universal/pagination-component

npm i https://pkg.pr.new/@slickgrid-universal/pagination-component@2592

@slickgrid-universal/pdf-export

npm i https://pkg.pr.new/@slickgrid-universal/pdf-export@2592

@slickgrid-universal/row-detail-view-plugin

npm i https://pkg.pr.new/@slickgrid-universal/row-detail-view-plugin@2592

@slickgrid-universal/rxjs-observable

npm i https://pkg.pr.new/@slickgrid-universal/rxjs-observable@2592

@slickgrid-universal/sql

npm i https://pkg.pr.new/@slickgrid-universal/sql@2592

@slickgrid-universal/text-export

npm i https://pkg.pr.new/@slickgrid-universal/text-export@2592

@slickgrid-universal/utils

npm i https://pkg.pr.new/@slickgrid-universal/utils@2592

@slickgrid-universal/vanilla-bundle

npm i https://pkg.pr.new/@slickgrid-universal/vanilla-bundle@2592

@slickgrid-universal/vanilla-force-bundle

npm i https://pkg.pr.new/@slickgrid-universal/vanilla-force-bundle@2592

commit: 976caa4

@renovate-bot renovate-bot force-pushed the renovate/all-minor-patch branch from 38d0f54 to f114847 Compare May 22, 2026 05:15
@renovate-bot renovate-bot changed the title chore(deps): update all non-major dependencies fix(deps): update all non-major dependencies May 22, 2026
@renovate-bot renovate-bot force-pushed the renovate/all-minor-patch branch 6 times, most recently from 04cc19f to 6d2dfea Compare May 24, 2026 17:44
@renovate-bot renovate-bot force-pushed the renovate/all-minor-patch branch from 6d2dfea to 976caa4 Compare May 25, 2026 01:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖 bot 📦 dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant