# fix\(mobile\): close boundary coverage gaps found in review · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commit/6babe9a634968a4937ad090580fad759aee4a25c)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

Requested revision: 6babe9a634968a4937ad090580fad759aee4a25c

Requested commit: 6babe9a634968a4937ad090580fad759aee4a25c

Commit: 6babe9a634968a4937ad090580fad759aee4a25c

Tree: 0551cdc74afd0abcd62a1c58937c7981ce29cf10

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix(mobile): close boundary coverage gaps found in review

- NewTaskSheet declares its own screen `layout`, and React Navigation
  resolves `screen.layout ?? group ?? navigator screenLayout`, so the route
  silently bypassed the navigator-level seam. It now renders
  GuardedScreenLayout inside its own layout, wrapping the whole flow (and
  NewTaskFlowProvider) with a comment noting the override rule.
- The split-view workspace sidebar and inspector render in RootStackLayout,
  outside every screen slot. Give ThreadNavigationSidebar and
  WorkspaceInspectorPane their own scoped boundaries so a pane failure
  spares the open thread and the rest of the workspace.
- In split view the Thread route stays mounted across sidebar selections;
  screen boundaries now take resetKeys from the route params so a new
  thread does not inherit the previous route's failure state.
- Drop the WeakSet identity dedupe from the render-error log: a cached
  error re-thrown on retry is a fresh incident, and identity dedupe would
  swallow it. Once a boundary recovers, the throw stops bubbling, so
  nested double-recording was not happening anyway.

```

## Parents

- [d330f4f1d826881f2c761e485337977f6aea9ea2](https://git.cafe/pingdotgg/t3code/commit/d330f4f1d826881f2c761e485337977f6aea9ea2?format=markdown)

[Source at this commit](https://git.cafe/pingdotgg/t3code/tree/6babe9a634968a4937ad090580fad759aee4a25c?format=markdown)
