generated from eblume/project-template
feat: --project arg is case-insensitive / prefix-fuzzy when unambiguous
The `--project <name>` argument matched titles case-sensitively and exactly, so `--project hephaestus` or `--project heph` failed against a `Hephaestus` project. Make project-name resolution forgiving but deterministic, via a tiered match in `resolve_project_id`: 1. exact (case-sensitive) — the historical behavior; always wins 2. case-insensitive exact — only when unambiguous 3. case-insensitive prefix — only when unambiguous Ambiguous fuzzy matches resolve to None (callers report "no project named X") rather than silently picking one. This single resolver already backed `heph list --project` (via project_scope); route the CLI's task/edit/promote/parent path through it too with a new `project.resolve` RPC + `Store::resolve_project`, so every `--project` surface behaves the same. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
58a5544d44
commit
fc25f6ac51
7 changed files with 129 additions and 18 deletions
1
docs/changelog.d/project-arg-fuzzy.feature.md
Normal file
1
docs/changelog.d/project-arg-fuzzy.feature.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
`--project <name>` is now case-insensitive and prefix-fuzzy when unambiguous, across `heph task`, `heph edit`, `heph promote`, `heph list`, and project-parent resolution. `--project heph` or `--project hephaestus` both resolve `Hephaestus`. An exact (case-sensitive) title always wins outright, and an ambiguous prefix (e.g. `Wor` matching both `Work` and `Workshop`) resolves to nothing rather than silently picking one. A new `project.resolve` RPC backs the shared resolver.
|
||||
Loading…
Add table
Add a link
Reference in a new issue