Fix high-severity audit findings across matcher, router, CI, and build#1
Merged
ConsoleTVs merged 2 commits intomainfrom Apr 12, 2026
Merged
Fix high-severity audit findings across matcher, router, CI, and build#1ConsoleTVs merged 2 commits intomainfrom
ConsoleTVs merged 2 commits intomainfrom
Conversation
… and build - Fix falsy handler values (0, '', false) treated as unregistered in matcher - Throw on conflicting dynamic/wildcard param names at the same trie level - Guard window.navigation fallback for SSR environments - Use base URL in useNextMatch to prevent TypeError on relative paths - Strip inherited middleware/scroll/focusReset from redirect routes - Scope CI workflow write permissions to release job only - Update vite 8.0.3 -> 8.0.8 to patch 3 known CVEs - Exclude example/test .d.ts files from published package
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.
Summary
Matcher Correctness
0,"",false) silently treated as unregistered — changed truthiness checks to!== undefined/user/:idand/user/:name)SSR Safety
window.navigationfallback withtypeof windowcheck — preventsReferenceErrorin Node.js SSR'http://localhost'base URL tonew URL()inuseNextMatch— preventsTypeErroron relative pathsSecurity
contents: writeandid-token: writepermissions to thereleasejob only (previously granted to all jobs includingcheckandbuild)Dependencies & Build
vitefrom8.0.3to8.0.8— patches 3 high-severity CVEs (path traversal,server.fs.denybypass, WebSocket file read).d.tsfiles from the published package viadts()plugin exclude patternsTests
Breaking Changes
createMatcher: conflicting param names now throwRegistering routes with different dynamic param names at the same trie level (e.g.,
/user/:id/profileand/user/:name/settings) now throws an error instead of silently dropping the second name.redirect(): no longer inherits middleware, scroll, or focusResetRedirect routes created via
.redirect()inside a middleware group no longer attach the group's middleware to the handler. This was dead code — middleware never executed on redirects because the precommit redirect fires before render. If you relied on middleware side effects during redirect prefetch, move that logic into the redirect callback.