feat(desktop): give page links their own click tiers in Files & Editor

Merged
SA
1mo ago
+330-235

Summary

Pages had one "Pages" select under Browser, and only the workspace Pages menu read it. Page URLs clicked in terminals, chat, markdown, and page panes fell through to URL links, so pages couldn't open differently from ordinary URLs.

  • pageOpenAction → pageLinks tier map (click / ⇧ / ⌘ / ⌘⇧). Defaults match URL links, so nothing changes until someone edits it.
  • New Files & Editor → Opening pages → Page links section; the Browser "Pages" row is removed.
  • useUrlLinkAction(mode) picks the page or URL map per clicked link. Replaces useTerminalUrlPolicy / useInlineUrlPolicy in the terminal (click + hover label), page panes, TipTap markdown, and MarkdownEditor.
  • Pages menu resolves through the page map and falls back to a split pane when a tier is unbound. "External" now opens the page URL in the system browser (it used to navigate to the in-app /pages/$slug view).
  • A saved pageOpenAction choice is not carried over; the setting shipped about two weeks ago.

Verification

  • Typecheck, biome, and 283 related tests pass; check:i18n passes with all 16 locales translated.
  • In the dev app over CDP: set Page links ⌘ Click → "Open in new tab" and kept URL links ⌘ → split pane. ⌘-hover in a terminal labels the page link "Open in new tab" and example.com "Open in split pane". ⌘-click opened the page in a new tab and example.com in a split browser pane. Screenshots: https://app.superset.sh/page/page-links-setting-o4ju11
  • Not checked: clicking a page in the Pages menu (the test workspace had no pages yet), and clicking a page link in chat.

Summary by cubic

Gives page links their own click tiers so pages clicked in terminals, chat, markdown, and page panes can open differently from ordinary URLs, which previously fell through to the URL links setting.

  • Adds a Files & Editor → Opening pages → Page links tier map; the Browser "Pages" row is removed.
  • Defaults match URL links, so behavior is unchanged until edited.
  • The saved pageOpenAction setting is not migrated over (it shipped about two weeks ago).
  • "External" in the Pages menu now opens the page URL in the system browser instead of navigating to the in-app /pages/$slug view.
  • The Pages menu falls back to opening a split pane when a tier is unbound.

Summary by CodeRabbit

  • New Features
    • Added configurable page-link behavior for links in the Pages menu, terminals, chat, and other pages.
    • Choose how page links open, including in a split or tab, with options based on click modifiers.
    • Find page-link controls in Files settings under “Opening pages.”
  • Improvements
    • Page links now follow your configured preferences across the workspace, including when clicked in the editor.