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
{{ message }}
Repository navigation
Restore floating PiP by default, with optional docking for chat reflow
#14935
Moved from issue #14929, where triage identified the new layout as an intentional design. I want to discuss restoring the old floating behavior as the default, with explicit docking available when reflow is useful.
Problem
After the V2 orchestrator merge, browser/device picture in picture no longer behaves like a freely movable overlay over the conversation. Dragging it left is constrained to a lane on the right, and moving or resizing it shifts and narrows both the messages and the input field.
I actively want the old floating behavior back for most cases. Keeping a preview visible while reading or typing should not rearrange the conversation underneath it.
Steps to reproduce
Open a thread with enough text to see line wrapping. Keep the main sidebar open and use a 1440×900 window.
Open a browser preview or simulator in the right panel and float it over chat. For a simulator: More device actions → Float device over chat.
Compare its default position with 0.45. Drag it left and right, then up and down. Resize it from its west edge.
Watch the messages and input field. Repeat at 1920×1080 with the thread-details card open to see how it shares space with PiP.
Expected behavior
Restore floating PiP as the default: movable across the chat canvas, above the messages, with the text and input keeping their position and width. The existing canvas bounds and protection around the input can remain.
An explicit Dock button could make the current reflow behavior useful as an opt-in mode. Undock should return it to the floating overlay. Docking should be a choice; simply opening or dragging PiP should not opt me into reflow.
Actual behavior
Action
Stable 0.45
0.46 preview
Default position
Upper-right of the chat canvas
Lower-right, beside the input
Drag left/right
Can cross the conversation and reach the canvas's left edge; messages/input stay fixed
Stops at a reserved chat lane; messages/input shift left and narrow, then restore when dragged right
Drag up/down
Moves over the conversation while avoiding the input
Shares placement constraints with thread details; moving upward can push PiP sideways and shift the chat
Enlarge PiP
Leaves messages/input geometry unchanged
Changes chat layout and can compress or hide thread details
At 1440×900, the same leftward gesture leaves the 0.45 input at x=477, width=742px. In 0.46, PiP stops at x=928, and the input moves from x=453, width=710px at the default PiP position to x=289, width=614px. These are CSS pixels from the page origin. Baseline widths differ between releases; the regression is the position/width changing within the same version as PiP moves.
Captured on macOS using an iPhone 17 Pro simulator stream inside the web client in T3's internal browser, with identical sample conversations and isolated state. No native mobile app was tested.
The recordings use synthetic pointer gestures through the actual PiP drag/resize handlers, with native pointer-capture bookkeeping bypassed. They demonstrate layout behavior, not manual hit-target ergonomics.
Simulator PiP was directly exercised. Browser PiP uses the same MiniPlayerShell and layout functions; desktop native always-on-top PiP was not tested.
Relevant source
The new chat canvas layout reserves a minimum chat lane while dragging and derives the chat insets from PiP's frame. Thread details participate in the same placement. The 0.45 PiP shell instead measures the canvas/composer and floats without changing chat layout.
Screenshots and recordings
Before/after evidence from stable 0.45 and 0.46 preview, using the same conversation and a simulator stream inside the browser client.
Stable 0.45 — floating overlay
Default position:
After dragging left; the conversation and input keep their position and width:
Movement recording: left, farther left, right, up, down, then resize.
v045-movement.mp4
0.46 preview — reserved lane and reflow
Default position:
After dragging left; PiP stops at the reserved lane and the conversation and input shift and narrow:
The same movement sequence:
v046-movement.mp4
At 1920×1080, enlarging PiP compresses and then hides the thread-details card:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Moved from issue #14929, where triage identified the new layout as an intentional design. I want to discuss restoring the old floating behavior as the default, with explicit docking available when reflow is useful.
Problem
After the V2 orchestrator merge, browser/device picture in picture no longer behaves like a freely movable overlay over the conversation. Dragging it left is constrained to a lane on the right, and moving or resizing it shifts and narrows both the messages and the input field.
I actively want the old floating behavior back for most cases. Keeping a preview visible while reading or typing should not rearrange the conversation underneath it.
Steps to reproduce
Expected behavior
Restore floating PiP as the default: movable across the chat canvas, above the messages, with the text and input keeping their position and width. The existing canvas bounds and protection around the input can remain.
An explicit Dock button could make the current reflow behavior useful as an opt-in mode. Undock should return it to the floating overlay. Docking should be a choice; simply opening or dragging PiP should not opt me into reflow.
Actual behavior
At 1440×900, the same leftward gesture leaves the 0.45 input at x=477, width=742px. In 0.46, PiP stops at x=928, and the input moves from x=453, width=710px at the default PiP position to x=289, width=614px. These are CSS pixels from the page origin. Baseline widths differ between releases; the regression is the position/width changing within the same version as PiP moves.
Versions and verification
v0.0.45/6c8fed35dd.v0.0.46-preview.20261002.2598/b37fcea42f.de34391427). The 0.45 preview channel already included the new layout, so the stable 0.45 tag is the baseline here.MiniPlayerShelland layout functions; desktop native always-on-top PiP was not tested.Relevant source
The new chat canvas layout reserves a minimum chat lane while dragging and derives the chat insets from PiP's frame. Thread details participate in the same placement. The 0.45 PiP shell instead measures the canvas/composer and floats without changing chat layout.
Screenshots and recordings
Before/after evidence from stable 0.45 and 0.46 preview, using the same conversation and a simulator stream inside the browser client.
Stable 0.45 — floating overlay
Default position:
After dragging left; the conversation and input keep their position and width:
Movement recording: left, farther left, right, up, down, then resize.
v045-movement.mp4
0.46 preview — reserved lane and reflow
Default position:
After dragging left; PiP stops at the reserved lane and the conversation and input shift and narrow:
The same movement sequence:
v046-movement.mp4
At 1920×1080, enlarging PiP compresses and then hides the thread-details card:
v046-wide-grow-movement.mp4
All reactions