Skip to content

Projects: offer the OS folder dialog in New project - #126

Open
katulevskiy wants to merge 3 commits into
mirror/upstream-mainfrom
mirror/upstream-pr/663
Open

katulevskiy wants to merge 3 commits into
mirror/upstream-mainfrom
mirror/upstream-pr/663

Conversation

@katulevskiy

Copy link
Copy Markdown
Owner

Upstream mirror

Source: zeronsh#663
Original author: @RemingtonWilcox
Original revision: d985d7940ea22c92876e12d2cafb5459d96f2d7a

This PR is an isolated Contribution Manager pilot mirror. Its reviews, checks and merge state are separate from upstream. An empty [skip ci] commit suppresses automatic bulk CI; the code tree matches the imported upstream revision.


Summary

  • On the local device, New project's locations end with a Browse in File Explorer… row (Browse in Finder… on macOS, Browse folders… elsewhere). It opens the native folder picker, with the system's favorites and New folder.
  • Choosing a folder there is the confirmation, so it's added directly. Cancel returns to the palette, and a picker error shows in the palette's error row.
  • The row filters by its label like any other location and is reachable with ↑↓ and Enter.
  • The dialog only reaches this device's folders, so remote devices keep the in-app browser unchanged.
  • The pick goes through add_space_create, the tail of the palette's own Add project (split out of submit_add_space, behaviour unchanged), so a folder that already has a project switches to it instead of adding a duplicate.

Worth a close look

  • The picked folder's git_detected comes from a local .git probe, the same check ListFolders uses; the device's SpacesSync re-verifies it.
  • The dialog uses gpui's prompt_for_paths, which the composer's attach button already uses on every platform.
  • Projects saved by older builds with mixed separators (C:\Users\me/code) aren't matched by the duplicate check here or in the in-app browser. That's a separate small PR (same-folder-paths).
  • The test setup of devices_locations_folders_and_back_clear_stale_state moved into a small shell_with_devices helper so the new test can share it. Projects: open New project on the device already in context zeronsh/zeron#690 adds the same helper; whichever lands second drops its copy on rebase.
  • Add folder creation to New project on desktop and iOS zeronsh/zeron#685 (folder creation in New project) touches the same palette; the two haven't been tried together.

Test plan

  • local_device_offers_the_os_folder_dialog: no row on a remote device; on the local device the row shows, filters to "browse", opens the dialog on Enter, and Cancel returns to Locations. Fails without the change.
  • Existing project-flow tests still pass.
  • cargo test --locked -p zeron-ui --lib on Windows 11 x64: 1482 passed, 5 ignored.
  • rustfmt --check clean; no new warnings in the changed code.
  • Manual, Windows 11 x64, on an earlier build of this branch: the row appears under Home and the drives, opens the File Explorer folder picker, adds the picked folder, and Cancel returns to the palette.
  • Not re-checked manually after this trim. Not checked on macOS (Finder) or Linux (portal).
  • Not covered by a test: a picked folder being added (needs a running engine).
  • Linux UI and core suites on the fork's CI (ui-tests workflow): https://github.com/RemingtonWilcox/zeron/actions/runs/37240695980

Screenshots

New project locations on Windows: Home, drives, then Browse in File Explorer…

Dark mode. The row reuses the palette's existing row style and arrow icon.

🤖 Generated with Claude Code

RemingtonWilcox and others added 2 commits October 4, 2026 15:24
On the local device, New project's locations now end with a "Browse in
File Explorer…" row ("Browse in Finder…" on macOS). It opens the native
folder picker, with the system's favorites and New folder, and adds the
picked folder directly: choosing it there is the confirmation, and Cancel
returns to the palette. The row filters like any other location and is
reachable with the keyboard.

The dialog only reaches this device's folders, so remote devices keep
the in-app browser. The pick goes through the same creation path as the
palette's own Add project, so a folder that already has a project
switches to it instead of adding a duplicate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@contribution-manager-katulevskiy contribution-manager-katulevskiy Bot added the review:needs-triage Managed by Contribution Manager label Oct 6, 2026
@contribution-manager-katulevskiy

contribution-manager-katulevskiy Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Contribution Manager

needs triage · medium risk · untriaged

Open review workspace · Revision b003e707

Next actions:

  • Direction decision needed
  • Scope, risk, and platform triage needed
  • Independent code review needed
  • Required check: core-tests (missing)

This summary is maintained by the review app. Decisions and test evidence are recorded in the workspace; the app does not merge PRs.

@contribution-manager-katulevskiy contribution-manager-katulevskiy Bot added cm:inbox Contribution Manager: waiting for triage and removed review:needs-triage Managed by Contribution Manager labels Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cm:inbox Contribution Manager: waiting for triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants