Skip to content

[Bug]: macOS add-project flow forces folder picker and prevents manual path entry / viewing hidden folders #1312

@hanakin

Description

@hanakin

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/desktop

Steps to reproduce

  1. Open T3 Code on macOS.
  2. In the desktop app, go to the Projects section.
  3. Click Add project.
  4. Notice the app immediately opens the native folder picker instead of showing a path input.
  5. Try to add a project by:
    • pasting a full path directly
    • navigating to a hidden folder such as .codex
    • entering a custom path manually
  6. Observe that these workflows are blocked or much harder than they should be.

Expected behavior

Adding a project on macOS should support both of these flows:

  • browse for a folder using the native picker
  • type or paste a full path directly into a path input

The native picker should also allow access to hidden folders such as .codex, or the UI should provide a manual-path fallback so hidden directories can still be added easily.

Actual behavior

On macOS desktop, clicking Add project immediately opens the native folder picker and does not expose the manual path input fallback.

As a result:

  • users cannot directly paste a path into the add-project flow
  • hidden folders like .codex are not visible in the picker
  • custom paths are impossible to enter from the UI

From the code, the behavior appears to come from two places:

  • apps/web/src/components/Sidebar.tsx forces browse-first behavior for Electron on non-Linux platforms
  • apps/desktop/src/main.ts opens Electron’s showOpenDialog with only openDirectory and createDirectory, without showHiddenFiles

Impact

Minor bug or occasional failure

Version or commit

0.0.13

Environment

macOS 15.7.4

Logs or stack traces

Screenshots, recordings, or supporting files

No response

Workaround

There does not appear to be a good in-app workaround on macOS right now.

Partial workarounds:

  • move or symlink the target folder to a visible location before adding it
  • avoid hidden directories when possible
  • modify the app locally to re-enable manual path entry or enable showHiddenFiles

For normal users, there is effectively no straightforward workaround inside the current macOS UI.

Relevant code:

  • apps/web/src/components/Sidebar.tsx
  • apps/desktop/src/main.ts
const isLinuxDesktop = isElectron && isLinuxPlatform(navigator.platform);
const shouldBrowseForProjectImmediately = isElectron && !isLinuxDesktop;
const shouldShowProjectPathEntry = addingProject && !shouldBrowseForProjectImmediately;

ipcMain.handle(PICK_FOLDER_CHANNEL, async () => {
  const owner = BrowserWindow.getFocusedWindow() ?? mainWindow;
  const result = owner
    ? await dialog.showOpenDialog(owner, {
        properties: ["openDirectory", "createDirectory"],
      })
    : await dialog.showOpenDialog({
        properties: ["openDirectory", "createDirectory"],
      });
  if (result.canceled) return null;
  return result.filePaths[0] ?? null;
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken or behaving incorrectly.needs-triageIssue needs maintainer review and initial categorization.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions