Revert #23969: a tab opened to the side starts its open on the right

Merged
TE
13d ago
+38-348

Reverts #23969 (squash c8f5d31a). The tree is base with #23969's diff inverted exactly (7 files, +38/āˆ’348). Nothing else changes.

Why: #23969 merged on a same-model review. The different-model review that followed (Codex at xhigh) said BLOCK:

  • Hidden while selected. OutboundTab.hides ignores shownByPane once a surface or name is marked. LinkOpener.move marks the tab before it awaits the move, so if the user selects that tab in the gap, the selected tab disappears from the strip. Selection, Cmd-W and tab indexes can then go stale.
  • No departure check. finish(moved: true) releases the hold after 2 s regardless. If TabMoves acknowledges before the source pane's snapshot drops the tab, the tab reappears in the left strip, the same race #23969 set out to fix.
  • Raw-id keys. Holds are keyed by tab id or surface alone, so an agent or provisional id reused while a hold is active is hidden too.
  • Tests miss these. The tests mutate the snapshot directly and complete at once. They cover none of the cases above.

Before this PR: a tab opened to the side first shows on the right, with those edge cases. After: back to the behaviour before #23969, where the tab plays its open animation for about 100 ms in the left pane's strip and then moves right. A re-land with the fixes and a different-model review before merge follows.

Leo-ask: ask-f6988c508c
Leo-ask: ask-35d63f0002
Leo: "the animation for opening up a new tab starts off in the left pane, and it doesn't start off at the right"

No capture: an exact revert to the state before #23969; the before-and-after behaviour is described in #23969.

Agent session: cosmic-gray

šŸ¤– Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Reverts #23969, restoring the previous behavior where a tab opened to the side plays its open animation in the left pane's strip for about 100 ms before moving right.

The revert is exact: #23969's diff inverted, so nothing else changes. It restores the state before that PR, which a different-model review blocked after merge for edge cases (OutboundTab hiding a tab a user selected mid-move, a 2 s hold released without confirming the source pane dropped the tab, and holds keyed by raw ids that can hide a reused id). The feature will be re-landed with those fixed and re-reviewed.