-
Notifications
You must be signed in to change notification settings - Fork 4k
Box-drawing characters not recognized as link separators; tree output never clickable #9909
Copy link
Copy link
Labels
area:shell-terminalTerminal input/output, shell integration, prompt behavior, and block rendering.Terminal input/output, shell integration, prompt behavior, and block rendering.bugSomething isn't working.Something isn't working.os:macmacOS-specific behavior, regressions, or requests.macOS-specific behavior, regressions, or requests.ready-to-implementThe issue is ready for implementation work.The issue is ready for implementation work.repro:highThe report includes enough evidence that the issue appears highly reproducible.The report includes enough evidence that the issue appears highly reproducible.triagedIssue has received an initial automated triage pass.Issue has received an initial automated triage pass.
Metadata
Metadata
Assignees
Labels
area:shell-terminalTerminal input/output, shell integration, prompt behavior, and block rendering.Terminal input/output, shell integration, prompt behavior, and block rendering.bugSomething isn't working.Something isn't working.os:macmacOS-specific behavior, regressions, or requests.macOS-specific behavior, regressions, or requests.ready-to-implementThe issue is ready for implementation work.The issue is ready for implementation work.repro:highThe report includes enough evidence that the issue appears highly reproducible.The report includes enough evidence that the issue appears highly reproducible.triagedIssue has received an initial automated triage pass.Issue has received an initial automated triage pass.
Pre-submit Checks
Describe the bug
Filenames in
treeoutput (andeza --tree,lsd --tree, and similar tree-drawing listers) are never clickable in Warp, even when the file they name exists on disk under the tree's root.Example row from
tree /tmp/repro:alpha.mdis not recognized as a clickable filename token. Hovering the filename does not highlight it; clicking does nothing.The cause is in the tokenizer's separator set:
FILE_LINK_SEPARATORSinapp/src/terminal/model/grid/grid_handler.rsincludes ASCII|and space but not the Unicode box-drawing characters│(U+2502),├(U+251C),└(U+2514),─(U+2500),┬(U+252C),┴(U+2534),┼(U+253C) thattree-style commands use to draw their hierarchy. Because these characters are not separators, a row like│ └── alpha.mdis tokenized as a single word andalpha.mdnever appears as a standalone candidate substring for file-path validation.This is a separate concern from the directory-root resolution bug in #9908: even with listing-aware resolution in place,
treeoutput cannot benefit because the tokenizer doesn't produce the right candidates in the first place.To reproduce
mkdir -p /tmp/tree-repro/{a,b} echo hi > /tmp/tree-repro/a/alpha.md echo hi > /tmp/tree-repro/b/beta.json cd /tmp/tree-repro treeHover any filename in the output. Observe that nothing is highlighted as a clickable link.
For reference, the output looks like:
Expected behavior
alpha.md,beta.json, and the directory namesa,bmust be tokenized as standalone filename candidates by the grid tokenizer.ls DIR/output resolve against CWD, silently opening wrong files #9908 in place, that resolution uses the tree command's argument directory.)Proposed fix
Extend
FILE_LINK_SEPARATORSinapp/src/terminal/model/grid/grid_handler.rsto include the Unicode box-drawing characters that appear in common tree/ASCII-art output:Add tests in
app/src/util/link_detection_test.rscovering:│ └── alpha.md→ candidates includealpha.md│ └── 音楽.md→ candidates include音楽.md│ └── /tmp/foo.md→ candidates include/tmp/foo.mdScreenshots, videos, and logs
The repro steps above are minimal and deterministic; happy to record a short screen capture on request.
Operating system (OS)
macOS
Operating system and version
macOS 26.4.1 (Darwin 25.4.0, arm64)
Shell Version
zsh 5.9
Current Warp version
v0.2026.04.27.15.32.stable_03
Regression
No, this bug or issue has existed throughout my experience using Warp
Recent working Warp date
No response
Additional context
treeversion tested: tree v2.2.1 (Homebrew). This issue is a prerequisite for thetreepart of the scope in #9908. Fixing one without the other still leavestreeoutput unclickable.Does this block you from using Warp daily?
No
Is this an issue only in Warp?
Yes, I confirmed that this only happens in Warp, not other terminals.
Warp Internal (ignore): linear-label:b9d78064-c89e-4973-b153-5178a31ee54e
None