# fix\(web\): honour browser defaults on the paths that were skipping them · pingdotgg/t3code

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

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

Visibility: public

Requested revision: 6489255f56d9ac7435a7189f827a687c1650ab93

Requested commit: 6489255f56d9ac7435a7189f827a687c1650ab93

Commit: 6489255f56d9ac7435a7189f827a687c1650ab93

Tree: 819eec4f4e3bffc75fa37f2932695b80cba71d61

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix(web): honour browser defaults on the paths that were skipping them

Three ways the configured browser defaults were not reaching a tab:

Restore defaults skipped them entirely. They are unified settings like every
other preference on that button, so they now take part in both the dirty
labels and the reset. The viewport is a tagged union, so comparing it needs
structural equality — identity would have reported a freshly decoded copy of
the default as changed.

`browserAutoShowFloatingPreview: false` was ignored for `preview_open`.
`normalizePreviewOpenInput` filled an omitted `open` with `true` on the server,
so by the time the renderer asked "did the agent state a preference?" the
answer was always yes. The server now leaves unstated visibility unstated,
which is the only thing it can honestly say — the preference is desktop-local
and unreadable from there.

A preview opened before client settings hydrated was born at the schema
defaults and never corrected. The three imperative open paths now await
hydration, which costs nothing: they were already async.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

```

## Parents

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

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