v0.11.2
Highlights
Link an existing transaction as a group settlement (#184)
When you settle a debt in a group, you can now point the settlement at a transaction you already have instead of always creating a new one.
- The settle-up dialog has a new Transação choice — None, Create a new transaction (existing behavior), or Link an existing transaction (new).
- The transaction picker is searchable (server-side, capped at 20 results) so it stays usable no matter how many transactions you have.
- Picking a transaction auto-fills the settlement's amount, currency and date from it and locks those fields so the two records can't disagree.
Resolves #184.
Auto-create the counterpart for transfers (#191)
Marking a transaction as a transfer no longer dead-ends when the other side doesn't exist yet.
- In the link-as-transfer picker, a new "Counterpart not listed?" section lets you pick a manual account and have the system create the matching opposite-side transaction automatically (mirrors date / description / notes, FX-converts the amount for cross-currency).
- Synced accounts stay in the candidate list as before — manual accounts (where the counterpart usually doesn't exist) get the auto-create path.
Resolves #191.
Customizable CSV column mapping (#201)
Imports now let you map CSV columns to Securo fields by hand when the auto-detection isn't right — date, description, amount, type, category, currency, fx_rate. CSVs with unrecognized headers reach the mapping UI instead of failing the import.
Resolves #201.
Fixes
- celery-worker RAM dropped from ~1.2 GB to ~300-500 MB (#207). Bounded Celery concurrency, disposed SQLAlchemy engines after every task, and isolated
sync_tasks.pyfrom the FastAPI engine to avoid forked-connection issues.
Thanks
Big thanks to the contributors who suggested these improvements 🙏
@rodrigost23 · @jun10r4lm31d4 · @Alan-Gomes · @lgwacker
Full changelog: v0.11.1...v0.11.2