You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(geometry): persist detached-tab window size and position
A popped-out tab window was excluded from geometry persistence
structurally, alongside the home surface, so every pop-out opened at the
consuming app's hardcoded default regardless of how the last one was
resized.
The exclusion was over-broad. What makes a window unpersistable is
having no stable identity to key on — true of the home surface (one
window, many states) but not of a detached tab: every consumer already
derives its detach token from a durable tab identity, so
`shell-detach:<token>` names the same tab across sessions. Dropping the
clause hands detached windows the whole existing restore path — work-area
clamp, most-overlap monitor pick, fullscreen guard, display-gone
fallback — with no new code.
The move/resize cache handler becomes load-bearing rather than a nicety:
closing a detached window IS how a tab redocks, so it is the normal path,
long before the exit-time flush.
Records the two invariants this creates for consumers: the detach token
must stay deterministic, and DetachSpec's width/height are now the
first-pop-out default only, so docked content must size off the built
window's real inner_size().
0 commit comments