feat(ui): add /cwd path tab-completion with async directory picker#922
Conversation
733d670 to
8e316a8
Compare
|
Nice extension of the Two things before merge:
A couple of unit tests around drill-down and the escape-to-absolute branch would be nice but not blocking — happy to merge once the two above are in. |
The /cwd slash command now exposes \`argCompleter: "path"\`, a new completer type that async-lists the filesystem via \`listDirectory()\`. Tab drills into directories (trailing '/'), Enter commits. Matches are capped at SEARCH_RESULT_CAP (200) to match @-mention search. - types.ts: add "path" to argCompleter union - commands.ts: wire /cwd to argCompleter: "path" - useCompletionPickers.ts: new usePathCandidates hook; update pickSlashArg for dir drill-down; expose slashArgPathCandidates - App.tsx: Tab handler checks candidate.isDir for drill vs. commit - SlashArgPicker.tsx: optional pathCandidates prop, renders trailing / on directory rows
8e316a8 to
a174dae
Compare
Recent PRs hit Windows-specific bugs that Ubuntu CI couldn't catch — literal forward-slash separators in path comparisons (#911) and `partial.startsWith("/")` as an "is absolute path" heuristic (#922) both sailed through `ubuntu-latest` while shipping broken on the platform that most of the user base actually runs. Add `windows-latest` to the existing matrix so every PR exercises the Windows code paths (taskkill tree-kill, MS Store node-shim detection, path separator handling, etc.) before review. Job name now includes the OS so the two runs are distinguishable in branch protection. Also swap the hardcoded `/tmp/tau-dry.json` in the τ-bench dry-run for `${{ runner.temp }}` — RUNNER_TEMP is set on every GitHub Actions runner including Windows, where `/tmp` isn't a path. Co-authored-by: reasonix <reasonix@deepseek.com>
|
Both addressed cleanly — Heads-up: the matrix CI change landed in #926 about an hour ago, so on your next contribution the build job will run on |
The /cwd slash command now exposes `argCompleter: "path"`, a new completer type that async-lists the filesystem via `listDirectory()`. Tab drills into directories (trailing '/'), Enter commits. Matches are capped at SEARCH_RESULT_CAP (200) to match @-mention search.
What
2026-05-15.17.15.17.mov
Why
How to verify
Checklist
npm run verifypasses locally (lint + typecheck + tests + comment-policy gate)Co-Authored-By: Claudetrailer in commitsCHANGELOG.md— release notes are maintainer-written at release time