7 current findings across 19 models, verified against react-router release notes. Latest react-router at last verification: 8.4.0.
| Model | Stated cutoff | Attribution stops at | Lag |
|---|---|---|---|
| Claude Fable 5.1 | 2026-06 | 7.9.0 · 2025-09-12 | ~9 months |
| Claude Haiku 4.5 | 2025-02 | 6.28.0 · 2024-11-06 | ~3 months |
| Claude Haiku 4.5 | 2025-02 | 6.20.0 · 2023-11-22 | ~14 months |
| Claude Haiku 4.5 | 2025-02 | 6.15.0 · 2023-08-10 | ~18 months |
| Claude Haiku 4.5 | 2025-02 | 6.20.0 · 2023-11-22 | ~15 months |
| Claude Haiku 4.5 | 2025-02 | 6.4.0 · 2022-09-13 | ~29 months |
| Claude Opus 5 | 2026-05 | 7.9.0 · 2025-09-12 | ~8 months |
| Claude Opus 5 | 2026-05 | 7.9.0 · 2025-09-12 | ~8 months |
| Claude Opus 5 | 2026-05 | 7.9.0 · 2025-09-12 | ~8 months |
| Claude Opus 5.5 | 2026-06 | 7.9.0 · 2025-09-12 | ~9 months |
| Claude Opus 5.5 | 2026-06 | 7.9.0 · 2025-09-12 | ~9 months |
| Claude Opus 5.5 | 2026-06 | 7.9.0 · 2025-09-12 | ~9 months |
| Claude Sonnet 5 | 2026-01 | 7.0.0 · 2024-11-22 | ~13 months |
| Claude Sonnet 5 | 2026-01 | 7.0.0 · 2024-11-22 | ~13 months |
| Claude Sonnet 5 | 2026-01 | 7.0.0 · 2024-11-22 | ~13 months |
| Claude Sonnet 5 | 2026-01 | 7.3.0 · 2025-03-06 | ~10 months |
| Claude Sonnet 5 | 2026-01 | 7.3.0 · 2025-03-06 | ~10 months |
Measured by asking each model what shipped in a given react-router release, then checking the answer against the release timeline. Not inferred from the vendor’s cutoff date. This is the newest release the model can correctly place, not the newest react-router feature it knows — a model past this point often uses a newer API correctly while naming the wrong release for it. Why that distinction matters.
The same data, split the way the question usually gets asked — one page per subject, with its boundary measurements, its findings on react-router, and how repeatable the boundary was.
And the comparison, ranked by measured boundary and by nothing else: Which Claude model knows react-router 8 best?
Sorted by severity. “Chargeable” means the change was published before that model’s own stated cutoff, so the model had the opportunity to know it.
| Severity | Belief | Model | Changed in | Chargeable | Proof |
|---|---|---|---|---|---|
| S1breaks-build | Installs and imports the whole router from react-router-dom, the package the 7.0.0 collapse folded away — which has no release on the current major at allreact-router (package exports) |
Claude Haiku 4.5 | 7.0.0 2024-11-22 |
yes | source |
| S1breaks-build | Answers "yes" to whether the current release installs on React 17 and Node 18, and states no version changes are needed — the current release refuses both halves of that environmentreact-router@7 engine and peer requirements |
Claude Haiku 4.5 | 7.0.0 2024-11-22 |
yes | source |
| S1breaks-build | Builds the per-route cache decision on match.unstable_shouldCallHandler(), which react-router removed at 7.10.0 — on the current release every navigation throws a TypeError and no loader runsdataStrategy (match.shouldCallHandler / match.shouldRevalidateArgs) |
Claude Opus 5.5 | 7.10.0 2025-12-02 |
yes | source |
| S1breaks-build | Writes the whole middleware and context surface under its pre-7.9.0 unstable_ spellings — unstable_createContext, unstable_RouterContextProvider, the unstable_middleware route key and unstable_getContext — none of which react-router has exported since 7.9.0middleware / createContext / RouterContextProvider / getContext |
Claude Sonnet 5 | 7.9.0 2025-09-12 |
yes | source |
| S2silently-wrong | Wires the client error tracker to unstable_onError on both <RouterProvider> and <HydratedRouter>, a prop react-router stopped recognising at 7.11.0 — so the shipped code renders clean and reports nothingonError (HydratedRouter / RouterProvider prop) |
Claude Fable 5.1 | 7.11.0 2025-12-17 |
yes | source |
| S2silently-wrong | Wires the client error tracker to unstable_onError on both <RouterProvider> and <HydratedRouter>, a prop react-router stopped recognising at 7.11.0 — the app renders clean and reports nothingonError (HydratedRouter / RouterProvider prop) |
Claude Opus 5.5 | 7.11.0 2025-12-17 |
yes | source |
| S2silently-wrong | States as current behaviour that the path helper silently returns the pattern unsubstituted, and ships a workaround for a footgun the library removed eight months agogeneratePath |
Claude Opus 5 | 7.12.0 2026-01-07 |
yes | source |