Repository navigation
fix: a dropped file types its path; the terminal answers a right-click (#16) - #17
Merged
Merged
Conversation
…wers a right-click (#16) Both lived in Prism's split dock and went with it when the dock was stripped, while the README and the spec went on listing the drop as shipped. They are on App's terminal host now: the drop goes through quotePaths and termInput and never presses Enter; the menu is Paste, Find in scrollback and Close tab. The e2e performs a real drop with Chromium's drag events and fails on the old code. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This was referenced Sep 19, 2026
This was referenced Sep 19, 2026
Maxaubert
added a commit
that referenced
this pull request
Sep 25, 2026
…ns, what is on disk (#67) (#68) - Paste is sanitised: no ESC or control can end the bracketed paste (#1). - Windows tools are started by full path; main leaves its launch folder (#3). - Paths are quoted for the shell they go to; cd quoting is complete (#5, #7). - The updater installs main's own offer only, pre-answers the close at the quit, hears a failed handoff and removes its temp folder (#14, #15, #19). - tabs.json and window.json are written atomically (#18). - Command-line paths resolve against the typing folder; a drive root works (#16, #17). The DWM helper's stdin errors are heard (#13). - The review and the three-PR plan are in docs/. Claude-Session: https://claude.ai/code/session_01LJbePcRzre7AusNzPNS2Bk Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
github-actions Bot
pushed a commit
that referenced
this pull request
Sep 25, 2026
…ns, what is on disk (#67) (#68) - Paste is sanitised: no ESC or control can end the bracketed paste (#1). - Windows tools are started by full path; main leaves its launch folder (#3). - Paths are quoted for the shell they go to; cd quoting is complete (#5, #7). - The updater installs main's own offer only, pre-answers the close at the quit, hears a failed handoff and removes its temp folder (#14, #15, #19). - tabs.json and window.json are written atomically (#18). - Command-line paths resolve against the typing folder; a drive root works (#16, #17). The DWM helper's stdin errors are heard (#13). - The review and the three-PR plan are in docs/. Claude-Session: https://claude.ai/code/session_01LJbePcRzre7AusNzPNS2Bk Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #16.
The bug, and the false claim
Dropping a file on the terminal did nothing, and the terminal had no right-click menu. In Prism both live in
TermDock.tsx, the split dock; when the dock was stripped to make this app, the drop handler and the menu went with it.quotePaths,pasteIntoand any terminalonDrophad ZERO callers outsidelib/.The owner had chosen to keep "Find, paste and drop", and the README, the spec and PR #3 all listed "a file dropped on the window types its path" as shipped. It was never tested, so the claim was false for a day. Found by the sync mapping for #15.
The fix
On App's terminal host (
data-term-host):quotePathsandtermInput, quoted as the paste rule quotes copied files, and NEVER followed by Enter. Only over a shell (the start screen and Settings have nothing to type into). Counts as typing, so its echo is not scored as the agent working.pasteInto: an image forwards the keystroke to the agent, files become quoted paths, text is a bracketed paste), Find in scrollback, Close tab. No Copy row: xterm owns its selection, and Ctrl+C over one already copies.Verification
dropAndMenuperforms a REAL drop with Chromium's own drag events (Input.dispatchDragEventcarrying a file path), since a synthetic DataTransfer holds a File with no path and would prove nothing aboutgetPathForFile. It asserts the path is typed, that it is quoted (the file is namedmy notes.txt), that nothing ran, that the menu has its three rows and that Find opens the bar.FAIL a file dropped on the terminal types its path,FAIL the terminal answers a right-click (null).npm run typecheck: clean.npm run lint: 0 errors.npm test: 355 pass.npm run e2e: 13 scenarios pass.Lesson written into CLAUDE.md
Nothing in a feature list is true until a test has done it, and when a Prism component is stripped, grep what ELSE it owned before calling a feature kept.
Notes
🤖 Generated with Claude Code