Repository navigation
Consider opt-in recovery of existing local paths split by cursor-positioned TUI rendering #14989
Unanswered
bjmatrix
asked this question in
Feature Requests, Ideas
Replies: 1 comment 2 replies
|
If a TUI is using ESC sequences to lay out the screen it should definitely be using OSC 8 to create proper links. Anything we did in Ghostty would at best be a flaky heuristic. |
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Ghostty 1.4.0 (18457), macOS 27.2 arm64; originally encountered with Codex CLI 0.166.0. This reproduction needs no Codex, tmux, or custom link configuration.
An existing local file path becomes a truncated clickable target when an application lays it out across rows using CUP cursor positioning. Cmd-clicking the first row sends a nonexistent prefix to the file safety check; the continuation is not recognized as the same file.
These rows are not terminal-native soft wraps. This is a request to consider bounded, opt-in recovery for local files, not to reinterpret arbitrary cursor movement as a wrap. Producer-side OSC 8 remains the clean protocol-level solution.
Reproduction
Run in a fresh window around 80 columns wide:
The script creates a harmless temporary file and draws its path on independently positioned rows. Each row ends before the right margin; no OSC 8 metadata is emitted. Try Cmd-clicking either path segment.
Source observations at v1.4.0
Terminal.setCursorPosclears pending-wrap state;printWrapcreates native wrap markers.Surface.linkAtPinusesScreen.selectLine, which follows those markers. The independently drawn rows have no continuation relationship.Possible narrow behavior
Only if the original matched path does not exist, inspect a few adjacent near-margin rows and accept a unique existing local-file candidate. Preserve existing literal filenames, reject ambiguous joins and clear record boundaries, and retain executable-file and URL safety checks. A local prototype has been tested; no branch or patch has been published.
Would this be an acceptable opt-in feature direction, or should it remain exclusively a producer-side OSC 8 responsibility?
Related: openai/codex#7983 (same symptom); #14984 (related application scrolling case; this reproduction needs no scrolling).
AI disclosure: OpenAI Codex assisted with source inspection, the reproduction, the local prototype, and drafting this report.
All reactions