The capability gate hard-disabled OSC 8 whenever a multiplexer was
detected (TMUX env or TERM starting with tmux/screen), which pre-dates
tmux 3.4's OSC 8 support and has no override. Inside tmux that leaves
URLs as plain text; when one wraps at the pane edge the outer
terminal's regex link detector cannot join the hard-wrapped rows and
the URL becomes unclickable with a newline embedded in the copy.
Add two pure helpers next to the sync-output ones:
- hyperlinksUserOverride(env): PI_FORCE_HYPERLINKS=1 / PI_NO_HYPERLINKS=1.
Opt-out beats force-on.
- shouldEnableHyperlinksByDefault(env, terminalId): user override >
static per-terminal flag > screen-always-off > tmux gate
(>= 3.4 via TERM_PROGRAM_VERSION which tmux self-sets since 3.2a)
> static flag.
GNU screen never gained OSC 8, so it stays off unless explicitly
forced. Older tmux without a reported version also stays off, since
we can not distinguish 3.3 from 3.5.
Outer terminals not configured for hyperlinks see tmux drop the
sequence — identical to today's behavior — so the upgrade is safe.
Fixes#2403