Skip to content

feat(ui-tui): say where the link hover indicator lives in help rows#704

Merged
ericleepi314 merged 1 commit into
mainfrom
worktree-apple-terminal-link-affordance
Jul 12, 2026
Merged

feat(ui-tui): say where the link hover indicator lives in help rows#704
ericleepi314 merged 1 commit into
mainfrom
worktree-apple-terminal-link-affordance

Conversation

@ericleepi314

Copy link
Copy Markdown
Collaborator

What

Follow-up to #701, from user feedback: "add a mouse-over indicator when holding Command over a link — the user needs to know the link is clickable."

Investigation showed the indicator already exists everywhere it's physically possible; what was missing is anything telling the user. This PR makes the ? / /help link rows say where the hover affordance lives:

  • OSC 8 terminals: Cmd+click link — open link in browser (Cmd+hover underlines it) (the terminal's native indicator; Ctrl on non-mac).
  • Fullscreen mode: click link — open link in browser (highlights on hover) — the renderer's own hover overlay (applyHyperlinkHoverHighlight inverts the link's cells under the pointer), verified end-to-end by injecting SGR mouse-motion events in a PTY e2e (cells flip to inverse on hover, clear on leave; DEC 1003 armed).
  • Apple Terminal inline: row unchanged — no indicator is possible there (no OSC 8; inline mode receives no mouse events), so the copy makes no promise.

A Cmd-gated indicator is unimplementable in-app: SGR mouse reports encode only shift/alt/ctrl — macOS terminals never forward the Cmd key — and inline mode deliberately never captures the mouse at all.

Verification

  • Unit tests updated to the new row tuples (12/12 pass); typecheck + eslint clean.
  • Full 3-config pyte e2e re-passed (Apple inline / vscode inline / Apple fullscreen).
  • New hover e2e: synthetic SGR motion over a rendered link in fullscreen → all link cells reverse=True, cleared on pointer leave.
  • Critic delta-review: APPROVE.

🤖 Generated with Claude Code

Follow-up to #701 from user feedback ("the user needs to know the link
is clickable"): the hover affordance exists, but nothing said so.

- OSC 8 terminals row: "(Cmd/Ctrl+hover underlines it)" — the terminal's
  own native hover indicator (VS Code/iTerm2/kitty...).
- Fullscreen row: "(highlights on hover)" — the renderer's own hover
  overlay (applyHyperlinkHoverHighlight inverts the link's cells),
  verified live by injecting SGR mouse-motion events in a PTY e2e.

No modifier-gated variant is possible: terminals don't encode the Cmd
key in SGR mouse reports, and inline mode receives no mouse events at
all (Apple Terminal inline can't have a hover indicator, full stop).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 12, 2026

Copy link
Copy Markdown

Test Results

    1 files      1 suites   7m 38s ⏱️
8 517 tests 8 510 ✅ 6 💤 1 ❌
8 702 runs  8 695 ✅ 6 💤 1 ❌

For more details on these failures, see this check.

Results for commit eafaf83.

♻️ This comment has been updated with latest results.

@ericleepi314 ericleepi314 merged commit d85927a into main Jul 12, 2026
3 of 5 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.

1 participant