Skip to content

feat(projects): find folders with fuzzy path queries - #11879

Draft
mneuhaus wants to merge 1 commit into
pingdotgg:mainfrom
mneuhaus:feat/fuzzy-project-folder-search
Draft

mneuhaus wants to merge 1 commit into
pingdotgg:mainfrom
mneuhaus:feat/fuzzy-project-folder-search

Conversation

@mneuhaus

@mneuhaus mneuhaus commented Sep 15, 2026

Copy link
Copy Markdown

What Changed

Find project folders using abbreviations and small typos across directory levels. In New project → Local folder, wormak now finds ~/Workspace/makespace without requiring slashes or a ~/ prefix.

Results show their full paths. Click a result, or press Tab to complete the highlighted/first result, then use the existing Add action. Shared matching and canonical-path navigation cover the web/desktop picker and mobile folder browser.

Input Example match
wormak ~/Workspace/makespace
wor/mak ~/Workspace/makespace
~/wrk/t3 ~/Workspace/t3code
~/workspcae/t3cdoe ~/Workspace/t3code
worprjmak ~/Workspace/projects/makespace

Why

The picker previously required rooted paths and prefix matches in each directory. Compact input such as wormak produced no results, and a misspelled or abbreviated parent could stop browsing entirely.

Reuse the existing search ranking, with one typo allowed for fragments of at least four characters, and opt into bounded server-side folder discovery. Literal paths retain the direct listing path. Each compact-search level consumes query characters; traversal is limited to six levels, 20 candidate states per level, and 128 directory reads per request. Very ambiguous searches can therefore omit matches. Hidden branches require an explicit dot, and recursive discovery skips symlinks. No new dependency or background index.

UI Changes

The same wormak query on the unmodified base commit 50ff4c371 and this branch, using separate local development instances against the same filesystem. Screenshots are cropped to the input and first result.

Before After
Before: wormak has no results After: wormak finds Workspace/makespace

Compact search, typed one character at a time (13 seconds). Watch wwoworwormwormawormak narrow the suggestions, then Tab complete the full path. Each character remains on screen for about 1.2 seconds. The whole picker stays visible at the recorded typing pace.

The recordings use a small fixture tree under /tmp/t3-fuzzy-demo, configured as the picker's base directory, with Workspace/makespace, Workspace/manuals, Workspace/mobile-app, Workspace/t3code, Workshops/woodwork, and Downloads.

Slow typing with live folder suggestions and Tab completion

Compact-search recording as MP4
compact-path-typing.mp4

Typo tolerance, typed from the beginning (18 seconds). workspcae/t3cdoe finds Workspace/t3code despite transpositions in both directory names, followed by Tab completion.

typo-path-typing.mp4

Validation

  • 58 focused tests passed: server folder browsing (20), shared client filesystem behavior (8), command-palette logic (28), and filesystem contracts (2).
  • Server, web, client-runtime, and mobile typechecks passed.
  • Formatting and diff checks passed. Targeted lint has no errors; three existing React effect warnings are present on the base revision as well.
  • Browser verification: compact wormak and mistyped ~/workspcae/t3cdoe resolve to their canonical paths, including Tab completion. Native desktop/mobile and Windows were not run.
  • The wire fields are optional; multi-level discovery requires an updated server.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Model: GPT-6.0 Astra. Harness: Codex in T3 Code.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 15, 2026
@mneuhaus

Copy link
Copy Markdown
Author
compact-path-typing
typo-path-typing.mp4
compact-path-typing.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant