From 07f4134d38e53bf6c9235f3ad18dd5b33e89d9ff Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Thu, 15 Oct 2026 11:02:34 +0200 Subject: feat(piggy): piggy list/add/remove (v0.6.0) New `piggy` group: - `piggy list` lists piggy banks with saved/target amounts and linked accounts. - `piggy add|remove [--account NAME]` changes the saved amount on a linked account via PUT /piggy-banks/{id}. Firefly syncs the whole account list on that PUT, so every linked account is resent (others without current_amount, which keeps their value) or it would be unlinked. Removing below zero is rejected before any write, and the saved amount is read back so a refused add fails loudly instead of returning 200 unchanged. add/remove currently hit an upstream bug on Firefly III <= 6.7.9: PiggyBankFactory::linkToAccountIds passes the pivot current_amount (an int from the DB) to bcsub() uncast, so any PUT with "accounts" 500s (firefly-iii/firefly-iii#13063). Documented in SKILL.md/README; the live integration test skips on that error and runs once upstream is fixed. Co-Authored-By: Claude Opus 5.5 --- completions/firefly.bash | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'completions') diff --git a/completions/firefly.bash b/completions/firefly.bash index 34171f9..baca1db 100644 --- a/completions/firefly.bash +++ b/completions/firefly.bash @@ -16,7 +16,7 @@ _firefly() { } local global_opts="--human --url --token -h --help" - local groups="auth account category tag tx budget" + local groups="auth account category tag tx budget piggy" # Find the group and leaf among the words (skip the program name at 0). local group="" leaf="" i @@ -49,6 +49,8 @@ _firefly() { "budget limit-set") leaf_opts="--amount --currency --end --start";; "budget list") leaf_opts="--end --start";; "budget update") leaf_opts="--auto-budget-amount --auto-budget-period --auto-budget-type --currency --name";; + "piggy add") leaf_opts="--account";; + "piggy remove") leaf_opts="--account";; esac # Leaves per group. @@ -60,6 +62,7 @@ _firefly() { tag) leaves="list";; tx) leaves="add delete edit get list search";; budget) leaves="create delete disable enable limit-list limit-set list update";; + piggy) leaves="add list remove";; esac # Flag values: when the previous word is a flag with a fixed value set for -- cgit v1.2.3