Skip to content

Conversation

@schiller-manuel
Copy link
Contributor

@schiller-manuel schiller-manuel commented Dec 22, 2025

fixes #6142

Summary by CodeRabbit

  • Tests

    • Added comprehensive test coverage for lazy-loaded route scenarios, validating route tree generation and parent-child route relationships.
  • Chores

    • Enhanced route prefix map construction to properly filter and exclude certain route types, improving router generator reliability.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 22, 2025

Walkthrough

Fixes a bug in the router-cli where lazy route variants were incorrectly prioritized over regular routes when resolving parent routes. Adds a guard in RoutePrefixMap constructor to exclude lazy, loader, and component-related route pieces from the prefix map, preventing them from being considered valid parent candidates. Includes test fixtures and snapshot demonstrating the corrected behavior.

Changes

Cohort / File(s) Summary
Core Logic Fix
packages/router-generator/src/utils.ts
Adds a guard condition in RoutePrefixMap constructor to skip lazy, loader, component, pendingComponent, errorComponent, and notFoundComponent route pieces when building the prefix map, preventing them from being valid parent candidates.
Test Fixtures
packages/router-generator/tests/generator/lazy/routes/__root.tsx, posts.route.tsx, posts.route.lazy.tsx, posts.index.tsx, posts.$postId.tsx
New route module files defining root route and nested routes using both regular and lazy-loaded variants, establishing the test structure for verifying correct parent-route resolution.
Generated Snapshot
packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
Generated route tree file with route node definitions, TypeScript type interfaces (FileRoutesByFullPath, FileRoutesByTo, FileRoutesById), module augmentation for @tanstack/react-router, and route hierarchy assembly.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Core change complexity: The guard logic in RoutePrefixMap is straightforward, but its impact on parent-route resolution needs careful verification.
  • Test scope: Multiple route fixture files and a substantial generated snapshot require review to confirm they collectively demonstrate the fix resolves the reported issue.
  • Risk areas:
    • Verify that skipping lazy/component/loader pieces does not inadvertently break legitimate use cases.
    • Confirm the generated snapshot accurately reflects the corrected parent-child relationships for lazy and regular routes.

Possibly related PRs

Suggested labels

package: router-generator

Suggested reviewers

  • nlynzaad

Poem

🐰 Lazy routes were jumping first in line,
Skipping regular kin and breaking the design!
A guard now stops them from their wayward quest,
Parents resolve right—regular routes pass the test! 🎯

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'fix: ignore route pieces in RoutePrefixMap' directly describes the main code change: adding a guard to skip certain route pieces in the RoutePrefixMap constructor.
Linked Issues check ✅ Passed The PR addresses issue #6142 by modifying RoutePrefixMap to ignore lazy/loader/component route pieces, preventing lazy variants from being incorrectly preferred as parent routes, which directly resolves the reported bug.
Out of Scope Changes check ✅ Passed The PR includes snapshot test files for the lazy route test case, which are generated artifacts necessary to validate the fix works correctly and are within scope.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-6142

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 770a265 and 47d2ac8.

📒 Files selected for processing (7)
  • packages/router-generator/src/utils.ts
  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
  • packages/router-generator/tests/generator/lazy/routes/__root.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.$postId.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.index.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.route.lazy.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.route.tsx
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Use TypeScript strict mode with extensive type safety for all code

Files:

  • packages/router-generator/tests/generator/lazy/routes/__root.tsx
  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
  • packages/router-generator/tests/generator/lazy/routes/posts.route.lazy.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.$postId.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.index.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.route.tsx
  • packages/router-generator/src/utils.ts
**/*.{js,ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Implement ESLint rules for router best practices using the ESLint plugin router

Files:

  • packages/router-generator/tests/generator/lazy/routes/__root.tsx
  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
  • packages/router-generator/tests/generator/lazy/routes/posts.route.lazy.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.$postId.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.index.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.route.tsx
  • packages/router-generator/src/utils.ts
🧠 Learnings (9)
📓 Common learnings
Learnt from: nlynzaad
Repo: TanStack/router PR: 5182
File: e2e/react-router/basic-file-based/src/routes/non-nested/named/$baz_.bar.tsx:3-5
Timestamp: 2025-09-22T00:56:49.237Z
Learning: In TanStack Router, underscores are intentionally stripped from route segments (e.g., `$baz_` becomes `baz` in generated types) but should be preserved in base path segments. This is the correct behavior as of the fix in PR #5182.
Learnt from: nlynzaad
Repo: TanStack/router PR: 5402
File: packages/router-generator/tests/generator/no-formatted-route-tree/routeTree.nonnested.snapshot.ts:19-21
Timestamp: 2025-10-08T08:11:47.088Z
Learning: Test snapshot files in the router-generator tests directory (e.g., files matching the pattern `packages/router-generator/tests/generator/**/routeTree*.snapshot.ts` or `routeTree*.snapshot.js`) should not be modified or have issues flagged, as they are fixtures used to verify the generator's output and are intentionally preserved as-is.
Learnt from: schiller-manuel
Repo: TanStack/router PR: 6120
File: packages/router-generator/src/generator.ts:654-657
Timestamp: 2025-12-17T02:17:55.086Z
Learning: In `packages/router-generator/src/generator.ts`, pathless_layout routes must receive a `path` property when they have a `cleanedPath`, even though they are non-path routes. This is necessary because child routes inherit the path from their parent, and without this property, child routes would not have the correct full path at runtime.
Learnt from: nlynzaad
Repo: TanStack/router PR: 5182
File: e2e/react-router/basic-file-based/tests/non-nested-paths.spec.ts:167-172
Timestamp: 2025-09-22T00:56:53.426Z
Learning: In TanStack Router, underscores are intentionally stripped from route segments during path parsing, but preserved in base path segments. This is the expected behavior implemented in PR #5182.
Learnt from: Sheraff
Repo: TanStack/router PR: 6171
File: packages/router-core/src/new-process-route-tree.ts:898-898
Timestamp: 2025-12-21T12:52:35.231Z
Learning: In `packages/router-core/src/new-process-route-tree.ts`, the matching logic intentionally allows paths without trailing slashes to match index routes with trailing slashes (e.g., `/a` can match `/a/` route), but not vice-versa (e.g., `/a/` cannot match `/a` layout route). This is implemented via the condition `!pathIsIndex || node.kind === SEGMENT_TYPE_INDEX` and is a deliberate design decision to provide better UX by being permissive with missing trailing slashes.
Learnt from: schiller-manuel
Repo: TanStack/router PR: 5330
File: e2e/react-start/custom-basepath/src/routeTree.gen.ts:58-61
Timestamp: 2025-10-01T18:31:35.420Z
Learning: Do not review files named `routeTree.gen.ts` in TanStack Router repositories, as these are autogenerated files that should not be manually modified.
📚 Learning: 2025-12-17T02:17:55.086Z
Learnt from: schiller-manuel
Repo: TanStack/router PR: 6120
File: packages/router-generator/src/generator.ts:654-657
Timestamp: 2025-12-17T02:17:55.086Z
Learning: In `packages/router-generator/src/generator.ts`, pathless_layout routes must receive a `path` property when they have a `cleanedPath`, even though they are non-path routes. This is necessary because child routes inherit the path from their parent, and without this property, child routes would not have the correct full path at runtime.

Applied to files:

  • packages/router-generator/tests/generator/lazy/routes/__root.tsx
  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
  • packages/router-generator/tests/generator/lazy/routes/posts.route.lazy.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.$postId.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.index.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.route.tsx
  • packages/router-generator/src/utils.ts
📚 Learning: 2025-10-08T08:11:47.088Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5402
File: packages/router-generator/tests/generator/no-formatted-route-tree/routeTree.nonnested.snapshot.ts:19-21
Timestamp: 2025-10-08T08:11:47.088Z
Learning: Test snapshot files in the router-generator tests directory (e.g., files matching the pattern `packages/router-generator/tests/generator/**/routeTree*.snapshot.ts` or `routeTree*.snapshot.js`) should not be modified or have issues flagged, as they are fixtures used to verify the generator's output and are intentionally preserved as-is.

Applied to files:

  • packages/router-generator/tests/generator/lazy/routes/__root.tsx
  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
  • packages/router-generator/tests/generator/lazy/routes/posts.route.lazy.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.$postId.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.index.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.route.tsx
  • packages/router-generator/src/utils.ts
📚 Learning: 2025-12-06T15:03:07.223Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Applies to **/*.{js,ts,tsx} : Implement ESLint rules for router best practices using the ESLint plugin router

Applied to files:

  • packages/router-generator/tests/generator/lazy/routes/__root.tsx
  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
  • packages/router-generator/tests/generator/lazy/routes/posts.route.lazy.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.$postId.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.index.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.route.tsx
  • packages/router-generator/src/utils.ts
📚 Learning: 2025-10-01T18:31:35.420Z
Learnt from: schiller-manuel
Repo: TanStack/router PR: 5330
File: e2e/react-start/custom-basepath/src/routeTree.gen.ts:58-61
Timestamp: 2025-10-01T18:31:35.420Z
Learning: Do not review files named `routeTree.gen.ts` in TanStack Router repositories, as these are autogenerated files that should not be manually modified.

Applied to files:

  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
  • packages/router-generator/tests/generator/lazy/routes/posts.index.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.route.tsx
📚 Learning: 2025-12-21T12:52:35.231Z
Learnt from: Sheraff
Repo: TanStack/router PR: 6171
File: packages/router-core/src/new-process-route-tree.ts:898-898
Timestamp: 2025-12-21T12:52:35.231Z
Learning: In `packages/router-core/src/new-process-route-tree.ts`, the matching logic intentionally allows paths without trailing slashes to match index routes with trailing slashes (e.g., `/a` can match `/a/` route), but not vice-versa (e.g., `/a/` cannot match `/a` layout route). This is implemented via the condition `!pathIsIndex || node.kind === SEGMENT_TYPE_INDEX` and is a deliberate design decision to provide better UX by being permissive with missing trailing slashes.

Applied to files:

  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
  • packages/router-generator/tests/generator/lazy/routes/posts.index.tsx
  • packages/router-generator/src/utils.ts
📚 Learning: 2025-11-02T16:16:24.898Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5732
File: packages/start-client-core/src/client/hydrateStart.ts:6-9
Timestamp: 2025-11-02T16:16:24.898Z
Learning: In packages/start-client-core/src/client/hydrateStart.ts, the `import/no-duplicates` ESLint disable is necessary for imports from `#tanstack-router-entry` and `#tanstack-start-entry` because both aliases resolve to the same placeholder file (`fake-start-entry.js`) in package.json during static analysis, even though they resolve to different files at runtime.

Applied to files:

  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
📚 Learning: 2025-12-06T15:03:07.223Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Use file-based routing in `src/routes/` directories or code-based routing with route definitions

Applied to files:

  • packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts
  • packages/router-generator/tests/generator/lazy/routes/posts.index.tsx
  • packages/router-generator/tests/generator/lazy/routes/posts.route.tsx
📚 Learning: 2025-10-01T18:30:26.591Z
Learnt from: schiller-manuel
Repo: TanStack/router PR: 5330
File: packages/router-core/src/router.ts:2231-2245
Timestamp: 2025-10-01T18:30:26.591Z
Learning: In `packages/router-core/src/router.ts`, the `resolveRedirect` method intentionally strips the router's origin from redirect URLs when they match (e.g., `https://foo.com/bar` → `/bar` for same-origin redirects) while preserving the full URL for cross-origin redirects. This logic should not be removed or simplified to use `location.publicHref` directly.

Applied to files:

  • packages/router-generator/src/utils.ts
🧬 Code graph analysis (2)
packages/router-generator/tests/generator/lazy/routes/__root.tsx (1)
packages/router-generator/tests/generator/numbers-in-path/routes/__root.tsx (1)
  • RootComponent (8-15)
packages/router-generator/tests/generator/lazy/routes/posts.$postId.tsx (4)
packages/router-generator/tests/generator/lazy/routes/__root.tsx (1)
  • Route (4-6)
packages/router-generator/tests/generator/lazy/routes/posts.index.tsx (1)
  • Route (3-5)
packages/router-generator/tests/generator/lazy/routes/posts.route.lazy.tsx (1)
  • Route (3-5)
packages/router-generator/tests/generator/lazy/routes/posts.route.tsx (1)
  • Route (3-5)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Test
  • GitHub Check: Preview
🔇 Additional comments (7)
packages/router-generator/src/utils.ts (1)

22-33: LGTM! This fix correctly addresses the lazy route parent resolution bug.

The guard properly excludes route pieces (lazy, loader, component variants) from being indexed in the prefix map, ensuring they cannot be selected as parent candidates. This directly fixes issue #6142 where lazy routes were incorrectly prioritized over regular routes in the generated route tree.

The placement after the root path check and before the indexing logic is correct, and all relevant _fsRouteType values are covered.

packages/router-generator/tests/generator/lazy/routes/posts.$postId.tsx (1)

1-9: LGTM!

This test route file correctly defines a file-based route for /posts/$postId using the standard createFileRoute pattern. The implementation is consistent with other route files in the test suite.

packages/router-generator/tests/generator/lazy/routes/__root.tsx (1)

1-15: LGTM!

The root route is correctly defined using createRootRoute and follows the established pattern from other test fixtures (e.g., numbers-in-path/routes/__root.tsx). The Outlet is properly included to render nested routes.

packages/router-generator/tests/generator/lazy/routes/posts.route.lazy.tsx (1)

1-9: LGTM!

This lazy route file correctly uses createLazyFileRoute and serves as the critical test fixture for verifying the fix. The presence of both posts.route.tsx (regular) and posts.route.lazy.tsx (lazy) for the same /posts path recreates the scenario from issue #6142, ensuring the fix is properly validated.

packages/router-generator/tests/generator/lazy/routes/posts.route.tsx (1)

1-9: LGTM!

The regular route file for /posts is correctly defined. This route should be used as the parent for child routes (/posts/ and /posts/$postId), which is exactly what the fix in utils.ts ensures by excluding the lazy variant from parent candidate consideration.

packages/router-generator/tests/generator/lazy/routes/posts.index.tsx (1)

1-9: LGTM!

The index route for /posts/ is correctly defined using the standard createFileRoute pattern with the trailing slash convention for index routes.

packages/router-generator/tests/generator/lazy/routeTree.snapshot.ts (1)

16-30: Snapshot validates the fix.

The generated route tree correctly shows PostsRouteRoute with getParentRoute: () => rootRouteImport (line 19), and child routes (PostsIndexRoute, PostsPostIdRoute) with getParentRoute: () => PostsRouteRoute (lines 24, 29). This confirms that the regular PostsRouteRoute is used as the parent—not the lazy variant—which validates the fix for issue #6142.

Based on learnings, this snapshot file is a test fixture and preserved as-is.


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

@nx-cloud
Copy link

nx-cloud bot commented Dec 22, 2025

View your CI Pipeline Execution ↗ for commit 47d2ac8

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 10m 12s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 35s View ↗

☁️ Nx Cloud last updated this comment at 2025-12-22 17:12:51 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 22, 2025

More templates

@tanstack/arktype-adapter

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

@tanstack/directive-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/directive-functions-plugin@6186

@tanstack/eslint-plugin-router

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

@tanstack/history

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

@tanstack/nitro-v2-vite-plugin

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-ssr-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-ssr-query-core

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/server-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/server-functions-plugin@6186

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-router-ssr-query

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-fn-stubs

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-static-server-functions

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

@tanstack/start-storage-context

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/vue-router

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

@tanstack/vue-router-devtools

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

@tanstack/vue-router-ssr-query

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

@tanstack/vue-start

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

@tanstack/vue-start-client

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

@tanstack/vue-start-server

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

@tanstack/zod-adapter

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

commit: 47d2ac8

@schiller-manuel schiller-manuel merged commit fe09537 into main Dec 22, 2025
6 checks passed
@schiller-manuel schiller-manuel deleted the fix-6142 branch December 22, 2025 17:19
Sign up for free to 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.

router-cli 1.141.7 favors lazy over regular routes

2 participants