Changelog

What's shipped, newest first

v0.4.0

2026-06-07
View on GitHub
  • Added `is_pro` flag to User model with admin toggle
  • Full-resolution image retention for pro users (stored in separate S3 prefix)
  • AI label scan: pro users can upload bottle images and have Claude automatically fill in name, distillery, type, ABV, size, and vintage years
  • Full user management dashboard at `/admin/users`
  • Sortable columns and bottle count in admin user table
  • S3 orphaned image audit command (`flask audit-orphaned-images [--delete]`)
  • Fixed `delete_bottle` leaving images behind in S3 (wrong extension + missing full-res bucket cleanup)
  • Images section moved to top of Add Bottle form
  • Homepage headline updated
  • Removed "Made with" tech stack section from homepage

v0.3.6

2026-06-06
View on GitHub
  • Passkey support — sign in with Touch ID / Face ID / hardware keys as an alternative to password #373
  • Home page redesign — new stats band, pour-bar chart, and two-column hero layout on the design token system #381
  • Account page redesign — profile, security, preferences, and danger zone cards #381
  • Changelog page — in-app release notes with two-column section layout (#360, #370)
  • Redirect after login — returns you to the page you were trying to reach #362
  • Barrel pickers in bottle popover — hover cards on bottle lists now include barrel picker names #361
  • Bottle detail visual refresh — type-hue accent colors throughout the detail page #368
  • ABV/Proof column populated on distillery, bottler, and barrel picker bottle lists #375
  • Type filter now applied on the main bottle list page #377
  • Trix rich-text editor styles now respect dark themes #382
  • Error pages use correct CSS classes (#379, #380)
  • "Remember me" login persistence #78
  • Form pages wrapped in card layout with section labels #383
  • Hardcoded color values replaced with design tokens throughout #384
  • Playwright end-to-end test suite (27 browser tests, runs on every PR) #355
  • Production server migrated to uv #366
  • Shared "cannot delete" modal extracted into a reusable macro #320

v0.3.5

2026-05-13
View on GitHub
  • Sort indicators: active column shows a directional arrow (↑/↓), inactive columns show a faint bidirectional hint (↕) #348
  • Fixed column widths — no more layout shift when switching sort columns (Type column was the main offender: "Rye" vs "American Light Whiskey") #348
  • Bootstrap tooltip on SB/Private column headers fixed for HTMX — no more stuck tooltips after sorting #348
  • Empty stars in Cellar theme: increased contrast so placeholder stars are visible #348
  • Type pills: bumped from 0.72rem → 0.82rem to balance visually with proof/ABV values #348
  • Private bottle count hint: owners see "N bottles · M private" in the list summary line #348
  • Header stripped to status badges only (Single Barrel, Private) — Type, ABV/Proof, and Distillery pills removed since they duplicated the spec tiles and Details section #345
  • Name row kept in Details table, with external-link icon when a bottle URL is set #345
  • VR divider always shown before "My List" on desktop #345
  • Rich text: bullet list indentation fixed (wrapped lines align with text, not bullet); paragraph spacing tightened #345

v0.3.0

2026-05-12
View on GitHub
  • Login rate limiting, failed login tracking, and alerting #302
  • Google reCAPTCHA on password reset form #303
  • Email alert on login from unrecognized IP address #304
  • Update email address with confirmation flow #306
  • Account privacy toggle #306
  • Change Password moved out of Danger Zone into Account Settings #306
  • Server-side image resizing on upload — removes file-size rejection #308
  • Export enhancements: format choice, filters, JSON, and image zip #307
  • Rich-text hover card with image preview #330
  • Automated cleanup of inactive user accounts via Flask CLI #310
  • Local dev HTTPS via mkcert #309
  • Upgraded python-dotenv (CVE-2026-28684) and urllib3 (CVE-2026-44432)

v0.2.0

2026-05-10
View on GitHub
  • 3-theme system: Barrel Room, Modern Cellar, The Vault
  • CSS design tokens and Google Fonts foundation
  • Theme switcher in navbar
  • Reskinned bottle list with grouped rows, type badges, single barrel indicators, killed bottle styling
  • Reskinned bottle detail, distillery/bottler list and detail pages, add/edit bottle form
  • Navbar logo with SVG icon and themed text treatment
  • Markdown support for bottle descriptions and notes
  • Bottle descriptions shown as hover tooltips in the list
  • Success flash messages link to the saved item
  • Filter List button hidden when only one bottle type is present
  • Show killed bottles toggle
  • Proof/ABV column toggle
  • Per-page pill buttons (25/50/100/All) persisted in cookie
  • Random Bottle button
  • My Account: Danger Zone — Change Password and Delete Account (with full S3 + DB cleanup)
  • Disable new user registration
  • Updated form field types (EmailInput, etc.)
  • Table and theme polish: rating stars, chevrons, icons
  • Aligned bottler/distillery list table styling with bottle list