Skip to content
This repository was archived by the owner on Oct 26, 2026. It is now read-only.

Commit e6a06d2

Browse files
docs(patches): link the radix focus-scope patch to radix-ui/primitives#4226 (objectui#13466) (#13529)
<!-- claude-projects-attribution: {"github_login":"os-elon-musk"} --> _Requested by **Elon** · [project thread](https://claude.ai/code/project/chan_01WedDzV26nniwxv7jC88B9D?thread=cmsg_01WedDzV26nniwxv7jC88B9DKJWNXtUcpBxinVEpnKRxYK)_ Refs #13466 (red branch of the claim, comment 6392490658). ## What `patches/README.md` only. The `@radix-ui/react-focus-scope` patch stays; its README entry now has: - **Upstream:** radix-ui/primitives#4226 (same root cause, found by comment 6395691379 on #13466), with the closed radix-ui/primitives#4148 as related. - **Last measured:** 2026-10-25, stock `1.3.1` with the patch removed, race case red (1 failed / 2 passed). - **Remove when:** radix-ui/primitives#4226 is fixed in a released `@radix-ui/react-focus-scope` and the regression test is green on that release with the patch removed. The old condition named no upstream item, so nothing outside could trigger it. ## Measurement (worktree off `main` `6f629a7`) | Setup | `dialog-popover-focus-scope.test.tsx` | |---|---| | patched `1.1.16` (lockfile as on main) | 3 passed | | stock `1.3.1`: `patchedDependencies` removed, `pnpm.overrides` pinned to `1.3.1`; resolution from `@radix-ui/react-dialog`'s directory confirmed to land on `1.3.1` | 1 failed / 2 passed. The failing test is "a re-run of the trapped scope effect must not evict it — the popover still pauses the dialog trap": `document.activeElement` is the dialog's button, not the popover input | The source of `1.3.1` and of `1.3.2-rc.1791984254107` still schedules `focusScopesStack.remove(focusScope)` in a `setTimeout` that nothing cancels. The measurement edits were reverted; this PR does not touch `package.json` or the lockfile. Not read directly: radix-ui/primitives#4226 itself (this session has no access to that repo). The link and its description come from comment 6395691379 on #13466. ## Gates run locally - `node scripts/check-changeset-presence.mjs`: exit 0, no changeset owed (no released package changed) - `pnpm check:new-line-citations`: exit 0 - [x] Adds no product-specific widget, dialog, hook or string (see AGENTS.md › Product-neutral renderer) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_0196W5VLn6ZrtibyAZrR8oiK Co-authored-by: Claude <noreply@anthropic.com>
1 parent 699156a commit e6a06d2

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

‎patches/README.md‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ its `patchedDependencies` entry, and re-run `pnpm install`.
2525
| | |
2626
|---|---|
2727
| Package | `@radix-ui/react-focus-scope@1.1.16` |
28-
| Tracking | objectui#3183 |
29-
| Remove when | upstream `radix-ui/primitives` cancels the pending stack eviction on an effect re-run |
28+
| Tracking | objectui#3183, objectui#13466 |
29+
| Upstream | [radix-ui/primitives#4226](https://github.com/radix-ui/primitives/issues/4226) (same root cause, Suspense trigger); related, closed: [radix-ui/primitives#4148](https://github.com/radix-ui/primitives/issues/4148) |
30+
| Last measured | 2026-10-25: stock `1.3.1` with the patch removed fails the race case (1 failed / 2 passed) |
31+
| Remove when | radix-ui/primitives#4226 is fixed in a released `@radix-ui/react-focus-scope` and the regression test below is green on that release with this patch removed |
3032

3133
`FocusScope`'s stack effect schedules `focusScopesStack.remove(scope)` inside a
3234
`setTimeout(0)` cleanup. When the effect re-runs for a **still-mounted** scope (a

0 commit comments

Comments
 (0)