Skip to content

v2.56.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 04:45
· 35 commits to main since this release
ee5722a
  • 2.56.0 โ€” ๐Ÿงพ Invoices grow up, backups you can trust. ๐Ÿ’พ Backup fixed: the backup auto-discovers every table, but
    its photo detection only knew two filename columns โ€” so seed packet
    photos were silently left out of every backup
    . Photo detection now
    covers any *_path column, the same "no list to forget" philosophy as the
    tables. If you downloaded a backup before this fix, your packet photos
    weren't in it โ€” grab a fresh one. ๐Ÿ—“๏ธ Season year: a year picker now
    lives in the header and the whole app follows it โ€” costs drop to $0 for a
    fresh year, plants and garden logs show that season's entries, and last
    year's data is one click away instead of deleted. Seeds stay
    year-independent, as they should. The endless Garden Logs histories are
    also paged (25 at a time, newest first) instead of scrolling forever.
    Then, four accounting-workflow upgrades
    on the Costs page and around it. Search, filter, sort: the invoice list
    now searches vendor, order number, and items together, filters by source
    (manual / CSV / Gmail), and sorts by date, vendor, or total
    (GET /api/invoices/ gains q, source, sort, order). Editing:
    invoices finally have an edit button โ€” the form fills in, PATCHes on save,
    and cancels cleanly, just like expenses always could. ๐Ÿ“ท Receipt scanning:
    not every purchase comes through email, so the invoice form has a Scan
    receipt
    button: photograph a paper receipt and the vision model reads the
    vendor, date, order number, total, and items into a review card โ€” one tap
    fills the form, nothing is saved until you confirm
    (POST /api/invoices/scan, new app/receipt_scan.py; uses the same AI
    settings as the garden agent, so there's nothing new to configure).
    ๐ŸŒฑ Plants link to seed packets: the plant form has a "Grown from seed
    packet" dropdown, so a plant traces back to its packet and through it to
    the invoice that bought it (Plant.seed_packet_id; the plant profile shows
    the link). ๐Ÿช Vendors, not sources: the redundant Seed Sources tab is
    now a read-only vendor directory built from the stash โ€” every place your
    seeds came from, with packet counts and a jump into the stash. The old
    add/edit/delete source form is gone; the underlying data is untouched.