diff options
| author | Danilo M. <danix@danix.xyz> | 2026-07-03 17:56:03 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-07-03 17:56:03 +0200 |
| commit | 203363fe96aabe2366985a769a7e10dabac69d04 (patch) | |
| tree | d744d58c377d7d28b0d4f94d060079bd188e0228 /TODO.md | |
| parent | e30b3f203059d8d116f77185f0764c391cae07dc (diff) | |
| download | firefly-cli-203363fe96aabe2366985a769a7e10dabac69d04.tar.gz firefly-cli-203363fe96aabe2366985a769a7e10dabac69d04.zip | |
fix(budget): flatten limit commands to 2-token leaves (limit-list/limit-set)
The CLI dispatcher (cli.py _build_parser) and completion generator both
partition the command name on the first space, nesting only two levels
(group + leaf). A three-token 'budget limit set' registers but is
unreachable via the CLI (invalid choice: 'limit'); the mocked unit suite
missed this because it calls handlers directly, bypassing dispatch.
Flatten to 'budget limit-list' / 'budget limit-set' (hyphenated 2-token
leaf), matching every other command. Logged the n-level dispatcher
refactor in TODO.md for when a future group needs real sub-subcommands.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'TODO.md')
| -rw-r--r-- | TODO.md | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -24,6 +24,16 @@ bash completion). - [ ] Consider a `--no-color` flag (color is currently TTY-auto only). ## Infrastructure +- [ ] n-level command nesting. `cli.py` `_build_parser` and + `scripts/gen_completion.py` both `partition(" ")` on the command name, so + they only nest two levels (group + leaf). `budget limit-set` / + `budget limit-list` are flattened to a hyphenated 2-token leaf as a + workaround (v0.4.0). Refactor both to split the full name into tokens and + build/scan nested subparsers per token, then a genuine `budget limit set` + (three tokens) works and future groups needing sub-subcommands are a + non-issue. Add a CLI-dispatch test (parse_args on the real parser), since + the mocked unit suite calls handlers directly and cannot catch a + dispatch/nesting break. - [ ] `--raw` escape hatch for arbitrary API calls. - [ ] OAuth as an alternative to personal access tokens. - [ ] zsh / fish completion (bash done). |
