1.13.0 (2026-11-02)
✨ Features
- add leggings, camisole, bodysuit, sweatshirt, heels, flats, overalls, poncho and watch types (bc1fe5e)
- edit an item's AI tags and secondary and tertiary colours (700cd68)
- edit an item's AI tags and secondary and tertiary colours (#300) (668002e)
- score sweatshirts as warm, ponchos as rain layers and camisoles as cold-exposed (30e9993)
- stop offering leggings, heels and flats as subtypes now that they are types (fe41116)
- tell the tagger how to tell the new types from their neighbours (36e181c)
🐛 Bug Fixes
- bulk select all filters (#309) (5d262fd)
- bulk: apply the view's filters to select-all and refuse unknown keys (64c4aa0)
- clear a subtype that names a type when the item's type changes (5388267)
- family: read a missing family as none instead of toasting the 404 (539bd42)
- family: read a missing family as none instead of toasting the 404 (#307) (5f7b573)
- ignore style and season order when diffing tag edits (c2bd073)
- keep edits honest when tagging finishes mid-edit, and keep colours in step (494c9ea)
- keep the colour list in step with a primary colour sent inside tags (86c6b32)
- never refill a tag the person edited or cleared when re-analysing (75ce556)
- outfits: filter worn outfits by wear date instead of accepted status (46bc7a7)
- outfits: filter worn outfits by wear date instead of accepted status (#308) (1d6d859)
- outfits: follow the cursor when select-all delete passes the bulk cap (1bcd78a)
- outfits: link items with the wardrobe's item query parameter (0bbca3a)
- outfits: link items with the wardrobe's item query parameter (5cd2519)
- outfits: read item numbers the model echoes as [n] labels (ea476ef)
- outfits: read item numbers the model echoes as [n] labels (e1188fe)
- pin redis below 6 because arq cannot install with it (79fce2c)
- send colours only when the extra colours change, so a rename cannot drop one (8bae496)
- show a translated toast when saving an item fails (938e185)
- stop suggesting leggings in the subtype field placeholder (617137f)
- validate tag edits in one place and answer bad values with INVALID_TAG_VALUE (d83d8da)
📝 Documentation
- link the android app on google play (bbe090e)
🔧 Maintenance
- deps: bump codecov, docker login and metadata actions, and TanStack Query (0865c88)
🧪 Tests
- cover the subtype type check, the tags-primary fallback and a signed-out save (1062e57)
- fix a type error in the tag-edit tests (c5f5457)
👷 CI/CD
- keep moving image tags in place when their check cannot finish (0d3c940)
- let actionlint 1.7.12 accept concurrency queue in docker-publish (10536e5)
- never move latest or minor image tags back to an older build (f5fd755)
- pin the sparse checkout in the publish job and drop its stored credentials (648c19c)
- publish version-first image tags (1.10.0-backend) for Renovate (9194423)
- tag each service's commit image as <service>-sha-<commit> (8fa8ed2)