Skip to content

Releases: zachyale/tab-tracker

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 02:55
Immutable release. Only release title and notes can be modified.

Features

Tabs and the ledger

  • Accounts are ledgers with a name, description, unique URL slug and currency, holding items (e.g. "Cold brew") that each have one or more priced options (e.g. Large / Small) — feat: restructure options into items with batched tap recording
  • Append-only ledger: every entry, undo, charge and payment is immutable, and prices are locked at the moment each entry is recorded, so repricing an item never rewrites what anyone already owes — feat(server): add sqlite ledger schema and balance queries
  • Public account pages with +/− buttons per option; rapid taps are debounced client-side and recorded as a single batched transaction
  • Managers can adjust any member's quantities, add arbitrary charges, and record payments to settle up — feat(server): add accounts, options, entries, and payments api
  • Manager-controlled display order for both items and their options — feat(server): add option ordering, feat(web): add option reordering and currency symbol labels

Members

  • Placeholder members let you backfill a tab for someone before they register; the tab transfers to them automatically when they sign up with the matching email, or can be linked to an existing user manually — feat(server): add ghost members and backfill charges
  • Bulk member actions from a selectable table: record payments, add charges, settle full balances, and arbitrarily merge any number of members' balances and history into one — feat(web): add bulk member actions with balance merging
  • Accounts support an owner plus co-managers, with ownership transfer

Accounts and sharing

  • Printable QR code per account, CSV export of the full ledger, and per-account activity feeds — feat(web): add dashboard, tab page, and manager console
  • Activity views: a "My activity" accordion on public pages and a paginated activity table for managers — feat(web): add activity accordion and paginated activity table
  • Per-account currency from a fixed list of decimal currencies, defaulting to CAD — feat(server): add balance notifications and currency validation

Auth and administration

  • Email + password always available, with optional Google sign-in and generic OIDC, and optional SMTP for verification and self-service password resets — feat(server): add auth with optional google, oidc, and smtp
  • Instance admin console: list users, deactivate/reactivate, and set passwords directly for SMTP-less instances. The first registered user becomes the admin — feat(server): add admin plugin with user deactivation and rate limiting, feat(web): add admin page, notification settings, and currency dropdown
  • Email notifications when a balance crosses a trigger amount, with admin-set instance defaults (default $20) and per-user overrides — refactor(web): move notification prefs into profile preferences
  • Rate-limited auth endpoints

Interface

  • Mobile-first UI built on shadcn/ui with accessible dialogs throughout — refactor(web): adopt shadcn/ui components, feat(web): replace prompt and confirm flows with accessible dialogs
  • Light/dark/system theming — warm stone in light mode, midnight blue in dark — with an override in the user menu — feat(web): add theme support, user menu, and profile page, feat(web): midnight blue dark theme and light stone palette
  • Installable PWA with an offline service worker — feat(web): add offline service worker
  • Profile page for name and password changes, with notification preferences

Packaging

  • Single Docker image containing the API, the built frontend and an embedded SQLite database; multi-arch (amd64/arm64) images published to GHCR — feat: add single-image docker packaging
  • Schema migrations generated with drizzle-kit and applied automatically on startup — refactor(server): generate migrations with drizzle-kit

Bug Fixes

  • server: defer foreign key enforcement during migrations so table rebuilds don't trip ledger constraints — fix(server): defer foreign keys during migrations
  • ci: install the conventionalcommits preset for the release tooling — fix(ci): install the conventionalcommits preset for release tooling

Internal

  • 69 API and unit specs covering permissions, price locking, notifications, merging and the ghost-claim flows, with coverage reported to Codecov
  • CI runs typecheck, tests and build on every push and pull request
  • Release flow: an admin dispatches the release workflow, which opens a develop → main PR; merging it tags the version, publishes the GitHub Release and pushes the Docker image
  • MIT licensed

Full Changelog: https://github.com/zachyale/tab-tracker/commits/v0.1.0