Open transcript URLs on modifier click - #964
Conversation
Markdown prose stays terminal-owned: its renderers expose no text-leaf API to highlight or hit-test.
A retext that dropped the last URL left the old hit ranges armed, so Ctrl+clicking the old columns still opened. The armer now clears its handlers when no line holds a URL.
Audit: NEEDS-WORK (security — Windows opener command injection)Finding (blocking): Checked and kept (no change requested):
Suggestion (non-blocking): a hover URL preview (status line or tooltip showing the target) would mitigate display-text-vs-target phishing; consider as a follow-up. Verification note: the unit/headless suites pin the gating with a mocked opener, but a real-terminal pass is still needed to confirm the terminal delivers the held modifier on motion/press events and that the spawn resolves into a browser. Not run in this pass (no real-terminal mouse tests here). |
cmd.exe re-parses the assembled command line, so &, | and && in an attacker-influenceable transcript URL would execute as command separators. Route win32 through rundll32 url.dll,FileProtocolHandler with the URL as a plain argv element instead; no shell is involved on any platform.
Summary
Verification
bun run typecheck,bun run build, andbun run checkpassRelated to CL-7346