Summary
Terminal programs can render named links using OSC 8 escape sequences. In bb terminals, the child process is not told that hyperlink support is available, so programs that conditionally emit OSC 8 may output only a plain-text label and leave the target inaccessible.
On desktop/web, copying a terminal selection from the context menu can also return only the clicked visual row when the selection spans soft-wrapped rows.
Versions
- bb 0.40.0
- macOS
- Reproduced in a bb terminal
- Confirmed against origin/main at commit
31d66d9d45bc8ff1483d5e4c6401c434b610dc4b
Steps to reproduce
-
Open a terminal in bb.
-
Check whether hyperlink support is advertised:
printf 'FORCE_HYPERLINK=%s\n' "${FORCE_HYPERLINK:-<unset>}"
-
Run any terminal program that emits a named OSC 8 hyperlink only when terminal hyperlink support is detected.
-
Try to activate the rendered label.
-
Print a URL long enough to soft-wrap:
python3 -c 'print("https://example.com/" + "abcdefghij" * 20)'
-
Select the wrapped URL and copy it using the terminal context menu.
Expected behavior
- Child processes can detect OSC 8 hyperlink support.
- Named hyperlinks can be activated through the existing safe external-navigation flow, with the exact target disclosed before opening.
- Copying from the terminal context menu returns the exact xterm selection across soft-wrapped rows.
Actual behavior
- Hyperlink capability is not advertised to child processes, so named links may be flattened to labels with no usable target.
- Context-menu copying may capture only one visual row of a soft-wrapped selection.
Relevant code
Existing-issue check
Priority
Medium
AGENT GENERATED
Summary
Terminal programs can render named links using OSC 8 escape sequences. In bb terminals, the child process is not told that hyperlink support is available, so programs that conditionally emit OSC 8 may output only a plain-text label and leave the target inaccessible.
On desktop/web, copying a terminal selection from the context menu can also return only the clicked visual row when the selection spans soft-wrapped rows.
Versions
31d66d9d45bc8ff1483d5e4c6401c434b610dc4bSteps to reproduce
Open a terminal in bb.
Check whether hyperlink support is advertised:
Run any terminal program that emits a named OSC 8 hyperlink only when terminal hyperlink support is detected.
Try to activate the rendered label.
Print a URL long enough to soft-wrap:
python3 -c 'print("https://example.com/" + "abcdefghij" * 20)'Select the wrapped URL and copy it using the terminal context menu.
Expected behavior
Actual behavior
Relevant code
Existing-issue check
Priority
Medium