Skip to content

feat(ui): New tab always opens a new tab - #1798

Merged
trunk-io[bot] merged 1 commit into
compass-ux/4682-narrow-agent-viewfrom
compass-ux/4676-new-tab-fresh
Oct 7, 2026
Merged

trunk-io[bot] merged 1 commit into
compass-ux/4682-narrow-agent-viewfrom
compass-ux/4676-new-tab-fresh

Conversation

@rigel-mintaka

@rigel-mintaka rigel-mintaka commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

This PR is part of a stack containing 3 PRs:

  1. main
  2. feat(ui): stack the agent log panel in narrow panes #1787
  3. "feat(ui): New tab always opens a new tab" (this PR)
  4. fix(ui): keep the Bridge Issues/PRs toggle in place #1812

Summary

Applies Matt's ruling B on RIG-4676: New tab (W N, and the palette's "New tab") always opens a new Bridge tab, even when Bridge is already open.

  • The open layout action gets an optional fresh flag that skips the same-path dedupe. Only tab.new sets it.
  • Links, Mod+click and deep links still dedupe to an open tab.
  • The 10-tab cap still applies. A fresh open at the cap is refused with the layout notice.
  • The design record is frozen, so the ruling goes in as ledger row DL-409, which amends DL-390's dedupe clause for this command only. DL-409 was claimed from the shared counter (tools/dl-claim).

Verification

  • Red first: three tests failed before the fix and pass after:
    • the reducer's fresh open of an open path;
    • the reducer's fresh open at the cap;
    • New tab on the Bridge tab, run against the real store.
  • compass-ui:test passes 1294; the 4 env-secrecy tests fail only because a jj workspace has no .git.
  • typecheck, dev-smoke, visual-gate (15) and design-ledger-gate:check pass. Biome and rumdl are clean.
  • Chromium smoke: on /#/, pressing W N takes the strip from 1 tab to 2, and the hash stays /.

Risks

Compatibility

fresh is optional and defaults to false, so every existing open dispatch keeps its behaviour.

Documentation

Ledger row DL-409 in docs/designs/DECISIONS.md.

Ledger-impact: appends DL-409 (amends DL-390 for New tab).

Refs RIG-4676

The open action gains an optional `fresh` flag that skips the
same-path dedupe. Only `tab.new` sets it, so W N and the palette's
"New tab" always open a Bridge tab after the active one, even when
Bridge is already open. Links, Mod+click and deep links still dedupe.
The 10-tab cap still refuses with the layout notice.

Records the ruling as DL-409, amending DL-390's dedupe clause for this
command.

Spec-impact: none
Refs RIG-4676

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@linear-code

linear-code Bot commented Oct 6, 2026

Copy link
Copy Markdown

RIG-4676

@rigel-mintaka rigel-mintaka changed the title feat(ui): New tab always opens a new tab (RIG-4676) feat(ui): New tab always opens a new tab Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-ux-4676-new-tab-fres.compass-eng-docs.pages.dev

Deployed from compass-ux/4676-new-tab-fresh at b86bcf8.

Changed pages:

@mattwilkinsonn

Copy link
Copy Markdown
Contributor

/trunk merge --priority=high

@trunk-io

trunk-io Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

😎 Stack merged successfully - details.

@trunk-io
trunk-io Bot merged commit 3069ccb into main Oct 7, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants