carry: Home tabs open only where they land

Closed
TE
5d ago
+427-54

Leo, 2026-10-29, word for word:

"What the f*** are the actual fing fixes for animations? Gosh-darn new tabs. Why the f? I'm pretty good about this because guys apparently can't fing listen. I open a link, or whatever the f, and it opens up on the right by default. Then just open it up on the fing right. Stop playing the animation that it's opening up a new tab on the main pane. Likewise, when new workspaces are being fing created, you fing just make it on the bottom, or you put it right next to it. What the f is this conflicting situation?"

(The 10-21 complaint, "the new-tab animation starts on the left", was misread as link routing in #22822 and reverted in #23886. This PR changes no placement: only which strip plays the tab opening animation.)

Home’s pinned dock creates some tabs locally before moving them into the column on its right. Those tabs used to appear and animate briefly in Home’s strip. The beside-dock link, browser, terminal, and internal-page paths now carry an outbound hold through placement so the tab first appears in its destination.

The hold follows its own tab, preserves unrelated user selections, and survives a move response until the source snapshot drops the tab. Failed or refused opens release their own hold and show any surviving tab in place. Unanswered holds unregister after 2 seconds; a late answer can hold its named tab again. Named moves have a 60-second backstop and successful moves a 10-second source-snapshot bound. Each deadline is cancelled when its hold ends.

Risk: asynchronous creation, selection, movement, and keyboard focus must remain ordered. The latest independent review found that terminal type-ahead could reach the previously selected terminal before a delayed move completed; its correction is under fleet validation on a scratch branch before publication here.

Validation

At 2891ca5dd6ead769f6e3d867fd99b676982158b3, the fleet app compile and all four Mac suites passed: HomeDockOpensTests (7 tests), SideOpenStripTests (13 tests), HomeLoneDockTests, and LinkOpenPlacementTests. The state-machine test covers snapshot/response order, failed and cancelled opens, timeout cleanup, late replies, and concurrent holds. Creator tests exercise terminal cancellation, page rejection, and browser refusal.

Independent Astra review at that head: BLOCK on terminal input during a delayed move. A passing review of the corrected head is still required.

Visual evidence

Historical before/after stills from the original fix show the same final placement. They do not capture the transient source-strip animation and are not a capture receipt for the current head.

BeforeAfter
beforeafter

The committed main-pane tour now selects its workspace before creating the chat and omits invalid directional focus steps. The tour’s final “main pane off” title is not evidence of that setting’s behavior: previous base/head stills both showed the link in a separate right pane.

Carry PR

Carries #27649 with the original authorship preserved. Its owner will close #27649 with a link here after this carry lands. Placement policy is unchanged; #26582 remains independently owned.

After stills (tour:main-pane at 6ed3cd22)

LightDark
after lightafter dark

Visual verdict SHIP at 6ed3cd22 (independent reviewer; issuecomment-6527803107). Landing lane claude-sr2-coord viewed the after image.

Agent session: agent session