perf(router): route-based code-splitting via React.lazy - #126
Merged
Conversation
WolfTasks
commented
Sep 6, 2026
OwnerAuthor
Verifikation deshalb manuell via Vor dem Merge beachten: Nach dem Merge von #125 retargetet GitHub die Base automatisch auf |
Deviates from the plan, which specified a hardcoded aria-label="Loading". The #15 i18n rollout left the scanner allowlist empty and gated in CI, and the plan's version trips it: src/components/RouteFallback.tsx:6 [attr:aria-label] Loading Uses the existing common:loading key instead (present in both en and de). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Initial bundle drops from 1,692.35 kB (gzip 501.25) to 832.55 kB (gzip 260.60); dist/assets goes from 1 JS chunk to 56, with per-page chunks for BoardPage, IssueDetailPage, ReportsPage and the rest. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
WolfTasksforce-pushed
the
worktree-react-router-lazy
branch
from
September 6, 2026 02:10
c8e967a to
5870608CompareUh oh!
There was an error while loading. Please reload this page.
WolfTasks pushed a commit
that referenced
this pull request
Sep 6, 2026
Ships the react-router v8 migration: - react-router-dom 7.18.1 -> react-router 8.3.1 (#125), which genuinely fixes GHSA-qwww-vcr4-c8h2 (CSRF, CVSS 7.1) instead of suppressing it. The .trivyignore entry and the audit-gate ALLOWLIST are removed again; both gates now run without any exception. - Route-based code-splitting via React.lazy (#126): initial bundle drops from 1,692.35 kB (gzip 501.25) to 832.55 kB (gzip 260.60). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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 freeto 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.
Was
PR 2 von 2 aus
docs/superpowers/plans/2026-07-29-react-router-v8-migration-impl.md. Leaf-Pages werden perReact.lazynachgeladen, Layouts undRequireAuthbleiben eager.80e5846RouteFallback— zentrierter Spinner als Suspense-Fallback5279ce6router.tsx: alle 39 Leaf-Pages über einenlazyPage-Helper, der named- und default-Exports einheitlich kapseltc8e967a<Suspense fallback={<RouteFallback/>}>um den<Outlet/>in AppLayout, SettingsLayout und AuthLayoutWirkung
dist/assetsEigene Chunks pro Seite sind belegt (
BoardPage-*.js,IssueDetailPage-*.js,ReportsPage-*.js, …). Die verbleibende Vite-Warnung zu Chunk-Größe betrifft nur noch den geteilten Vendor-Chunk, nicht mehr einzelne Seiten.Abweichung vom Plan
Der Plan spezifiziert für
RouteFallbackein hartkodiertesaria-label="Loading". Das bricht den i18n-CI-Gate, den der #15-Rollout scharf gestellt hat (Allowlist ist leer). Verifiziert, nicht vermutet — die Plan-Variante liefert:Stattdessen der bereits vorhandene Key
common:loading(in en und de gepflegt). Gate wieder grün.Verifikation
router.tsxvollständig, deshalb explizit gegengeprüftAuditLogPage,ProjectAuditPage,ServiceDeskPage,IncidentDashboardPage) gegen die'default'-Angaben im Plan abgeglichennpx tsc --noEmitundnpm run buildgrünnpm run lint:i18n(Scan + en/de-Parität) undnpm run test:i18ngrünOffen
Manueller DE/EN-Browser-Smoke (Plan B4 Schritt 3) — Merge-Gate, das ich nicht abdecken kann: Hard-Refresh auf
/p/:key/board,/p/:key/issues/:issueKey,/settings/security→ kurz der RouteFallback-Spinner im Content-Bereich, Sidebar und Settings-Nav bleiben stehen, dann die Seite. Kein Flackern der Shell beim Navigieren, keine Konsolenfehler.🤖 Generated with Claude Code