Shift+click did nothing useful on Claude Code's scratchpad paths
(/tmp/claude-<uid>/-workspace/<session>/scratchpad/x.md). Claude Code
wraps its own output: a word longer than the line is broken mid-word and
the rest drawn on the next row with cursor moves, so xterm never marks
that row isWrapped. The link provider saw two fragments: the first has no
extension (no link), the second is a relative `…/scratchpad/x.md` probed
under /workspace and not found.
- xtermLineJoin bridges such breaks when given cols: the row runs to the
edge, the next row continues with path characters after its indent, and
the two runs could not have fit on one line (keeps prose apart).
- Backend: `~/p` resolves to /home/claude/p; a relative path the project
roots do not have is probed again under /home/claude and /tmp, in a
second exec so a project file never becomes a chooser.
- CLAUDE_INSTRUCTIONS asks Claude to print full absolute paths for files
outside the project (changes the fingerprint: one recreation per project).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>