hsa-app/CHANGELOG.md
Jean-Michel Tremblay 2ff5c3847c
All checks were successful
Build and Test / build-and-test (push) Successful in 36s
Optional receipt tags; changelog 0.0.2
Add a shared, free-form tag vocabulary attachable to a receipt at upload.
New tags/receipt_tags tables (case-insensitive label dedup); an in-page
chip-mosaic picker after "Who" with inline tag creation. Tags are
resolved/created only on successful submit, and shown on the confirm
page and recent lists. Documented as spec item 14.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 08:35:14 -04:00

1.7 KiB

Changelog

All notable changes to this project are documented here. Versions are git tags; release tags X.Y.Z are built and deployed automatically (pre-release tags such as 0.0.0a1 are built and staged only).

[0.0.2] - 2026-06-20

Added

  • Optional tags on a receipt. An "Add tags" button on the upload form (after "Who") opens an in-page card with an alphabetical chip mosaic; tap to select or deselect, and create a new tag inline (auto-selected for this receipt). Tags are a shared, free-form vocabulary stored separately from the fixed categories.
    • New tags are written to the catalog only when the receipt is actually saved, matched case-insensitively so casing variants don't duplicate.
    • A receipt's tags are shown on the confirmation page and in the recent lists.
    • See spec.md item 14. Out of scope for now: tag-based filtering, tally-by-tag, and editing/merging tags in Manage.

[0.0.1] - 2026-06-19

Added

  • Upright receipt images (EXIF orientation normalization). Phone cameras often store a photo sideways with an EXIF "Orientation" tag that only some viewers honor, so receipts could appear rotated. On upload the indicated rotation is now baked into the pixels (and the tag dropped) so the stored image is upright in every consumer — browser, download, the AI classifier, and any future export.
    • Applies only when orientation is actually known (a JPEG with an EXIF tag of 2..8). Images with no tag, an already-upright tag, non-JPEG images, and PDFs are left byte-for-byte untouched — no guessing from image content.
    • Runs on the primary receipt, every additional attachment, and the image sent to the AI classifier. New uploads only; existing stored receipts are unchanged.
    • See spec.md item 13.