fix(sidebar): place new workspaces next to current by default

TE
18h ago
+631-203

HOLD: default placement (top vs next to current vs bottom) is paused by Leo

Problem

Cmd-N still follows the later regression from #25220: the shared #22926 placement path resolves the default as top, so a workspace created from a selected group member can appear at the group's top before settling. The draft was opened at the first commit with focused regression tests, as requested.

Leo's words (verbatim)

  • Leo, 2026-10-21: “I feel like we should just be able to, like, arbitrarily create the new workspaces in the specific positions that you want whenever you press, like, Ctrl N or whatever, Command N, and likewise be able to create them within groups. I feel like we can do better than Chromium in this case.”
  • Leo, 2026-10-22: “OH YEAH LAWRENCE WANTED DEFAULT NEW WORKSPACE AT THE TOP”
  • Leo, 2026-10-29T22:12Z (leo-asks ask-afb7e1369f): “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-29 order authorizes moving the default from top to afterCurrent (“right next to it”), reversing Lawrence's a0a00d1c top default. The 10-22 Lawrence remark is preserved here as the prior product context.

Coordinator brief (implementation paraphrase, not a Leo quote): Cmd-N creates right below the selected row, inside its selected group; New workspaces go to: Next to current (default) / Bottom (Chrome-style); the optional per-group + New workspace row stays off by default; manual order is preserved outside Priority view; one layout pass keeps existing rows visible while rows below spring down about 150 ms and the new row icon grows/fades in.

Relationship to #22926

#22926 is the existing Cmd-N placement path (NewWorkspaceDefaultSlot / NewWorkspacePlacements.rule). The later default change in #25220 caused the regression, so this PR builds on that path and does not add a second placement mechanism.

The resolved merge keeps #27712's existing-group-only Chief behavior. It also keeps #24374's section-create behavior (new group creation remains top-oriented); Leo's 10-29 words name new workspaces and do not change that section-create path.

Changelog

Changed: Cmd-N and other setting-driven workspace creates use the selected workspace's next slot by default, including inside its selected group; Bottom remains the Chrome-style alternative.

Verification

  • First commit: regression tests for the shared default, grouped placement, per-display-frame stability, and new-row icon motion.
  • The merge resolution preserves ordered pending placement processing, pre-create retention, projection retry, and cleanup on abandonment or confirmed removal.
  • Exact-head Astra high/fast review: SHIP, visual PASS at c9a593a9c8ec1ae2f123edaa1434b5c5f3c31891.
  • Required fleet package suite filters at that head: CmdNRowSlotTests, CmdNInGroupRowSlotTests, WorkspaceRowOpenMotionTests, NewWorkspaceInGroupTests, NewWorkspacePlacementDefaultTests. The first two are nested in CmdNRowSlotSuites; substring filters must discover the nested suites. Results pending.
  • Merge-resolution coverage: NewWorkspaceInSectionTests, NewWorkspaceGroupIndexTests, and CmdNTopInGroupFramesTests.
  • Chief checks, app compile and fresh-home launch must pass before landing. Lawrence has been requested as reviewer for Chief-path awareness; his response is not a wait gate.
  • Before/after captures are included below from the fleet capture run.

Proof

Viewed after image: yes
Visual verdict: The new row sits below spec inside Design with compact, aligned spacing and no clipped or repeated controls.

Before: before sidebar strip · before light still

After: after sidebar strip · after light still

The earlier before/after captures show the new workspace moving from the top of the Design group to immediately below the selected spec row, with no blank or hidden frame at the sampled times; their 250 ms sampling does not prove the 150 ms animation. The exact-head fleet capture receipt is pending. The landing lane viewed the after image and accepted the layout next to ChatGPT/Claude: the row density, shared icon column, and group indentation remain compact and aligned.

Agent-session footer: agent session