feat: open session working directory in file manager#204
Merged
Conversation
Add an `O` keybinding that opens the selected session's working directory in the system file manager. Reuses the platform opener (explorer, open, xdg-open) with a new OpenDir helper that validates the path is an existing directory before spawning, and reports the result through the status line. Closes #197 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.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.
What
Adds an
Okeybinding that opens the selected session's working directory in the system file manager.Once you spot a session in the list, you often want to jump straight to its files on disk. Today that means copying the path and opening a file manager by hand. This wires the directory open into a single keystroke.
How
internal/platform/open.go: extracted the per-OS command builder intoopenCommandand addedOpenDir(path), which validates the path is a non-empty, existing directory before spawning the opener. Usesexploreron Windows,openon macOS, andxdg-openelsewhere.internal/tui/keys.go: added theObinding (open directory) to the key map, short help, and full help.internal/tui/model.go: added the key case andopenDirCmd, which resolves the selected session's working directory and returns adirOpenedMsg.internal/tui/handlers.go/messages.go: addeddirOpenedMsgandhandleDirOpened, which reports success or failure on the status line and clears it after two seconds.Testing
go build ./...go vet ./...gofumpt -l .(clean)golangci-lint run --timeout 15m(0 issues)go test ./... -count=1(all packages pass)New tests: per-OS command assertions and directory validation in
internal/platform/open_test.go, plus success and error paths forhandleDirOpenedininternal/tui/handlers_test.go.Closes #197