Repository navigation
fix(desktop): reveal .app bundles in Finder instead of launching them - #1625
Merged
Emanuele-web04 merged 1 commit intoOct 8, 2026
Merged
Conversation
Reveal in Finder and Open in Finder on a .app folder, such as a build output mentioned in a chat, started the app instead of showing it. App bundles are now revealed like files, both in the desktop handler and in the server's file manager launch. Plain folders with dots in their names, such as next.js, still open as before. Windows and Linux are unchanged.
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 Changed
On macOS, "Reveal in Finder" and "Open in Finder" now reveal a
.appbundle in its parent folder instead of launching it. Other platforms are unchanged.packages/shared/src/filesystemPlatform.tsgetsisMacAppBundlePath, which is true for a path ending in.app(any case) on macOS.showInFolderhandler's open-or-reveal choice moves intoapps/desktop/src/showInFileManager.ts. A.appdirectory now goes toshell.showItemInFolderlike a file. Other folders still go toshell.openPath, and its error handling is unchanged.apps/server/src/open.tspasses-Rtoopenfor a.appdirectory in the file-manager path, the same way it already does for files.Why
A macOS app bundle is a directory, so both paths treated it as a folder to open. Opening a runnable
.appdirectory launches the app. Right-clicking a chat chip such as/Users/me/proj/dist/mac-arm64/MyApp.appand choosing "Reveal in Finder" callsshell.openPathon it, which starts the app instead of showing it. The Finder entry in the "Open in" menu does the same through the server, becauseopen <dir>launches a bundle like a double-click.Only
.appis treated as a bundle. A rule based on any extension would change plain folders such asnext.js,v1.2orexample.com, which repos often use as names, from opening to revealing in their parent. Other package types such as.xcodeprojand.bundlekeep their current behavior. They are not covered here and could be handled in a separate change.#1137 is open and also moves this desktop handler into
apps/desktop/src/showInFileManager.ts, with a test file of the same name. This change adds files at the same two paths, so whichever lands second will have to merge them by hand, along with theshowInFolderhunk inmain.ts. #1137 still callsshell.openPathfor every directory, so the bundle check would go into its function if it lands first.UI Changes
No visual change to Synara. The screenshots use the sidebar's "Open in Finder" on a test bundle added as a project, because getting a
.apppath to render as a chat chip needs a model reply. Both actions go through the same desktop handler. The test bundle only appends a line toLAUNCHED.markereach time it starts. The server path through the "Open in" menu was not run in the app.Before, "Open in Finder" launched the bundle. The marker went from 0 to 1 line, and Finder did not select it.
After, Finder opened the parent folder with the bundle selected, and the marker stayed at 1 line.
A plain folder named
next.jsstill opens in Finder on both builds.Verification
bun run --cwd apps/desktop test -- src/showInFileManager.test.ts: 3 passed. With the base dispatch the.appcase fails, becauseshowItemInFolderis never called. With an any-extension rule thenext.jscase fails, becauseopenPathis never called.bun run --cwd apps/server test -- src/open.test.ts: 18 passed. On main the new case fails, because the bundle gets no-R.bun run --cwd packages/shared test -- src/filesystemPlatform.test.ts: 5 passed. On main the new case fails, since the helper does not exist yet.bun run fmt:check,bun run lint(no new warnings),bun run typecheckandbun run windows-runtime:checkpass.shell.openPathandopen <bundle>each launched it, andopen -R <bundle>andshowItemInFolderdid not.Checklist