blob: 43f4d6ac16ce32e9b6a702c3a4e755938b859707 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# TODO
Next steps for firefly-cli. Each new command group follows the expandability
rule in CLAUDE.md (module + decorator, import line, unit test, SKILL.md, regen
bash completion).
## Command groups (deferred, roughly by demand)
- [ ] `budget` — list/status; most-requested next group.
- [ ] `bill` — list and inspect bills.
- [ ] `piggy` — piggy banks.
- [ ] `rule` — rules and rule groups.
- [ ] `recurring` — recurring transactions.
- [ ] `attachment` — list/download transaction attachments.
- [ ] `report` — summary reports (income/expense by period).
- [ ] `currency` — list/manage currencies.
## Verbs on existing groups
- [ ] `account delete` — currently needs a manual curl DELETE.
- [ ] `tx update` / `tx delete`.
## Output / UX
- [ ] `--human` column whitelists live in `output.py` `_VIEWS`; extend as new
resource shapes are added (budget, bill, ...).
- [ ] 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).
## UI/UX
- [x] completion suggests values for `--type` (account: asset/expense/revenue
/liability, tx: withdrawal/deposit/transfer), keyed per command. Static
enum, no API call. See `FLAG_VALUES` in `scripts/gen_completion.py`.
|