Uh oh!
There was an error while loading. Please reload this page.
fix(opencode): handle shell-escaped parentheses in drag-drop file paths - #17082
fix(opencode): handle shell-escaped parentheses in drag-drop file paths#17082vdmkotai wants to merge 2 commits into
Conversation
Terminals like Ghostty shell-escape special characters when drag-dropping files. The paste handler only unescaped backslash-space but not other metacharacters like parentheses, causing silent attachment failure for filenames like 'image (1).png'. Use /\\([^a-zA-Z0-9])/g to unescape all shell metacharacters while preserving Windows path separators (backslash + alphanumeric). Fixesanomalyco#17075
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
rekram1-node
commented
May 15, 2026
Automated PR Cleanup Thank you for contributing to opencode. Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions. This PR was closed because it matched the following cleanup criteria:
PRs created within the last month are not affected by this cleanup. If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate. Thanks again for taking the time to contribute. |
Issue for this PR
Closes#17075
Type of change
What does this PR do?
When you drag-drop a file like
image (1).pnginto Ghostty, the terminal shell-escapes the path:image\ \(1\).png. The TUI paste handler only unescaped\(backslash-space) but not\(or\), soFilesystem.readArrayBufferreceived the wrong path, failed silently, and the paste was swallowed.Changed the regex from
/\\ /gto/\\([^a-zA-Z0-9])/g— this unescapes all shell metacharacters while keeping Windows path separators intact (backslash followed by alphanumeric is never a shell escape).How did you verify your code works?
Wrote a test script covering 17 cases: the bug scenario (shell-escaped parens/brackets), single-quoted paths, Windows paths (
C:\Users\...), plain paths, edge cases (trailing backslash, double backslash, backslash-digit). All 17 pass — bug is fixed and Windows paths are preserved.Screenshots / recordings
N/A — TUI-only change, no UI modification.
Checklist