Skip to content

fix(router-core): pathless nodes do not consume path segments during param extraction - #6437

Merged
Sheraff merged 4 commits into
mainfrom
fix-router-core-pathless-node-doesnt-consume-segment-during-param-extraction
Jan 21, 2026
Merged

fix(router-core): pathless nodes do not consume path segments during param extraction#6437
Sheraff merged 4 commits into
mainfrom
fix-router-core-pathless-node-doesnt-consume-segment-during-param-extraction

Conversation

@Sheraff

@SheraffSheraff commented Jan 21, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • Tests

    • Added coverage verifying parameter extraction in nested, pathless route layouts — ensures segments aren’t incorrectly consumed and parameters resolve to the deepest matching route.
  • Refactor

    • Internal parameter-extraction state and indexing were reworked to support resumable extraction and clearer progression across nodes, improving reliability and maintainability.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Jan 21, 2026

Copy link
Copy Markdown
Contributor

Caution

Review failed

The head commit changed during the review from a8e27f7 to 60da609.

📝 Walkthrough

Walkthrough

Introduces a unified internal ParamExtractionState and refactors param extraction logic to be resumable, handle pathless and index nodes, and standardize indexing (partIndex/nodeIndex/pathIndex) across the matching/extraction workflow. Tests add coverage for pathless param extraction behavior.

Changes

Cohort / File(s)Summary
Core param extraction refactor
packages/router-core/src/new-process-route-tree.ts
Adds exported internal ParamExtractionState, replaces inline extraction state with it, refactors extractParams to return/propagate state, handles pathless/index nodes, reindexes extraction to use partIndex and nodeParts[partIndex], and updates MatchStackFrame.extract usage.
Test coverage
packages/router-core/tests/new-process-route-tree.test.ts
Adds a test verifying pathless nested layout nodes do not consume path segments during param extraction and that rawParams map correctly across segments.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • schiller-manuel
  • nlynzaad

Poem

🐰 A little hop through parts and nodes,
I carry params down winding roads,
Pathless whispers I skip with care,
Indexes align — I bind each pair,
Hooray for states we now share! 🎉

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 50.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately describes the main change: fixing pathless nodes to not consume path segments during parameter extraction, which aligns with the core modifications in the extractParams function and test additions.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Comment @coderabbitai help to get the list of available commands and usage tips.

@nx-cloud

nx-cloudBot commented Jan 21, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 60da609

CommandStatusDurationResult
nx affected --targets=test:eslint,test:unit,tes...✅ Succeeded14m 50sView ↗
nx run-many --target=build --exclude=examples/*...✅ Succeeded1m 43sView ↗

☁️ Nx Cloud last updated this comment at 2026-01-21 17:30:35 UTC

@pkg-pr-new

pkg-pr-newBot commented Jan 21, 2026

Copy link
Copy Markdown
More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/arktype-adapter@6437

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/eslint-plugin-router@6437

@tanstack/history

npm i https://pkg.pr.new/TanStack/router/@tanstack/history@6437

@tanstack/nitro-v2-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/nitro-v2-vite-plugin@6437

@tanstack/react-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router@6437

@tanstack/react-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-devtools@6437

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-ssr-query@6437

@tanstack/react-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start@6437

@tanstack/react-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-client@6437

@tanstack/react-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-server@6437

@tanstack/router-cli

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-cli@6437

@tanstack/router-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-core@6437

@tanstack/router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools@6437

@tanstack/router-devtools-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools-core@6437

@tanstack/router-generator

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-generator@6437

@tanstack/router-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-plugin@6437

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-ssr-query-core@6437

@tanstack/router-utils

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-utils@6437

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-vite-plugin@6437

@tanstack/solid-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router@6437

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-devtools@6437

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-ssr-query@6437

@tanstack/solid-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start@6437

@tanstack/solid-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-client@6437

@tanstack/solid-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-server@6437

@tanstack/start-client-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-client-core@6437

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-fn-stubs@6437

@tanstack/start-plugin-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-plugin-core@6437

@tanstack/start-server-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-core@6437

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-static-server-functions@6437

@tanstack/start-storage-context

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-storage-context@6437

@tanstack/valibot-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/valibot-adapter@6437

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/virtual-file-routes@6437

@tanstack/vue-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router@6437

@tanstack/vue-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router-devtools@6437

@tanstack/vue-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router-ssr-query@6437

@tanstack/vue-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start@6437

@tanstack/vue-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-client@6437

@tanstack/vue-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-server@6437

@tanstack/zod-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/zod-adapter@6437

commit: 60da609

@Sheraff
Sheraff merged commit 0b2fcef into mainJan 21, 2026
5 checks passed
@Sheraff
Sheraff deleted the fix-router-core-pathless-node-doesnt-consume-segment-during-param-extraction branch January 21, 2026 18:51
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Sheraff