# Changelog

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

### [2.37.2](https://codeberg.org/cchampou/balans/compare/v2.37.1...v2.37.2) (2026-08-28)


### Bug Fixes

* **compress:** decide before WriteHeader so static assets are correctly gzipped ([0e98e4b](https://codeberg.org/cchampou/balans/commit/0e98e4b6ebe650e3c4f17924f4413a63be8b68b5))

### [2.37.1](https://codeberg.org/cchampou/balans/compare/v2.37.0...v2.37.1) (2026-08-28)


### Bug Fixes

* **seo:** address Ahrefs site-audit findings ([2344f79](https://codeberg.org/cchampou/balans/commit/2344f7977288e7daee2c90feff25a7f88c80395a))

## [2.37.0](https://codeberg.org/cchampou/balans/compare/v2.36.6...v2.37.0) (2026-08-28)


### Features

* **seo:** correct robots.txt and add a sitemap ([3b1bb62](https://codeberg.org/cchampou/balans/commit/3b1bb62ad56ef3b12dac62c3208d237ece69075b))
* server-render the landing page as static HTML for SEO ([d74291c](https://codeberg.org/cchampou/balans/commit/d74291cfb0de7154db7e244fa696d30355ab16d4))

### [2.36.6](https://codeberg.org/cchampou/balans/compare/v2.36.5...v2.36.6) (2026-08-28)


### Bug Fixes

* allow editing groups that contain a settlement expense ([78ab8a1](https://codeberg.org/cchampou/balans/commit/78ab8a1d1692543ff6f34e924ae58866ff64ea33))

### [2.36.5](https://codeberg.org/cchampou/balans/compare/v2.36.4...v2.36.5) (2026-08-28)

### [2.36.4](https://codeberg.org/cchampou/balans/compare/v2.36.3...v2.36.4) (2026-08-28)


### Bug Fixes

* **infra:** force HTTPS ([5ff72f6](https://codeberg.org/cchampou/balans/commit/5ff72f622cbef5fbb75aa7a721b10615c1c51df7))

### [2.36.3](https://codeberg.org/cchampou/balans/compare/v2.36.2...v2.36.3) (2026-08-28)


### Bug Fixes

* **infra:** container size ([0a78a8a](https://codeberg.org/cchampou/balans/commit/0a78a8a2be49530cf512a992925ce35ac68c9ae6))

### [2.36.2](https://codeberg.org/cchampou/balans/compare/v2.36.1...v2.36.2) (2026-08-28)


### Bug Fixes

* **infra:** container size ([84d0c14](https://codeberg.org/cchampou/balans/commit/84d0c14dc5ffc21146868d80f829013f2d9ed126))

### [2.36.1](https://codeberg.org/cchampou/balans/compare/v2.36.0...v2.36.1) (2026-08-28)

## [2.36.0](https://codeberg.org/cchampou/balans/compare/v2.35.1...v2.36.0) (2026-08-28)


### Features

* add tracker ([ab0d9e2](https://codeberg.org/cchampou/balans/commit/ab0d9e2a045f2ae5dcf8e351e93421ed0cf3ca05))

### [2.35.1](https://codeberg.org/cchampou/balans/compare/v2.35.0...v2.35.1) (2026-08-28)

## [2.35.0](https://codeberg.org/cchampou/balans/compare/v2.34.4...v2.35.0) (2026-08-28)


### Features

* **client:** move expense actions to a kebab dropdown menu beside the amount ([6d07962](https://codeberg.org/cchampou/balans/commit/6d0796255b81b63bd8a5de50e7f9699fa08bae87))
* **settlements:** record out-of-band payments as settlement expenses ([48ed9f8](https://codeberg.org/cchampou/balans/commit/48ed9f8715a5b7ca0df343986f58da4de3c401b0))


### Bug Fixes

* build tabs on the Button atom ([a953fec](https://codeberg.org/cchampou/balans/commit/a953fec4bb9e5cebe73537dcc42bbdcb09f42202))
* **client:** put the group icon inside its list row ([fac41d3](https://codeberg.org/cchampou/balans/commit/fac41d32f71cceba51b11b6d19b34a31688f9105))
* **client:** resolve all lint errors and warnings ([241d750](https://codeberg.org/cchampou/balans/commit/241d7505fb42424da5c22c4fbebcce2925700e36))
* **client:** wrap group meta on a second line on mobile ([93706f2](https://codeberg.org/cchampou/balans/commit/93706f256edb5abbbebf92bdb4a22a32c2a59329))
* group name ([1f7857d](https://codeberg.org/cchampou/balans/commit/1f7857d8c764458eb7c4f5432c3892c9ce2074d5))
* improve group name UI ([b4b4f10](https://codeberg.org/cchampou/balans/commit/b4b4f10f8d880c795f860467fd9c3b219f99bd3d))
* new tabs using DS ([189a05b](https://codeberg.org/cchampou/balans/commit/189a05bd1002d01a85b6db1010deb0e63db3bd6e))
* remove unicode icons ([b0fd27d](https://codeberg.org/cchampou/balans/commit/b0fd27d4136b59919a85eff913887f89feca542d))

### [2.34.4](https://codeberg.org/cchampou/balans/compare/v2.34.3...v2.34.4) (2026-08-27)

### [2.34.3](https://codeberg.org/cchampou/balans/compare/v2.34.2...v2.34.3) (2026-08-27)


### Bug Fixes

* filter/sort ([06dc0fc](https://codeberg.org/cchampou/balans/commit/06dc0fc867c9a1673d3148dcfb9cd530de48344a))

### [2.34.2](https://codeberg.org/cchampou/balans/compare/v2.34.1...v2.34.2) (2026-08-27)


### Bug Fixes

* **client:** load base styles before component styles ([72e0691](https://codeberg.org/cchampou/balans/commit/72e0691db1538a8dc2ff32b5e4203f7321e75927))
* **landing:** refine product preview card ([bf148ba](https://codeberg.org/cchampou/balans/commit/bf148bac64d22750a07ccd3e91d444fbb8350e69))
* remove stale skills ([f88b887](https://codeberg.org/cchampou/balans/commit/f88b887c577445ac40bbd159882fcd83583c174a))

### [2.34.1](https://codeberg.org/cchampou/balans/compare/v2.34.0...v2.34.1) (2026-08-27)


### Bug Fixes

* proxy default port ([c1117bb](https://codeberg.org/cchampou/balans/commit/c1117bb889a55c76fc6e816bfa382e68311768e3))
* refine button design ([d5ead5d](https://codeberg.org/cchampou/balans/commit/d5ead5dd8243afbd2b880aacf3ab3a3de6de798d))
* simpler hero ([901cb70](https://codeberg.org/cchampou/balans/commit/901cb70597bc644c55282536ed1fd9cb5fb998fa))

## [2.34.0](https://codeberg.org/cchampou/balans/compare/v2.33.0...v2.34.0) (2026-08-27)


### Features

* add source code link ([1a8bd85](https://codeberg.org/cchampou/balans/commit/1a8bd8589250aad09132bf6515ba8f66626953a1))

## [2.33.0](https://codeberg.org/cchampou/balans/compare/v2.32.0...v2.33.0) (2026-08-24)


### Features

* **client:** add a Go/SQL storage backend alongside the git one ([55a28c4](https://codeberg.org/cchampou/balans/commit/55a28c465945c6492c6e68d1cc07d8e8863b87fd))

## [2.32.0](https://codeberg.org/cchampou/balans/compare/v2.31.5...v2.32.0) (2026-08-24)


### Features

* **server:** implement group domain and Postgres persistence ([353f6a9](https://codeberg.org/cchampou/balans/commit/353f6a91c24e24f049f874fba0512d710ff4adb5))


### Bug Fixes

* **infra:** load the database credential from a gitignored tfvars file ([9eb7801](https://codeberg.org/cchampou/balans/commit/9eb7801132d7229cdba3dfc312c21aaef599aa67))

### [2.31.5](https://github.com/cchampou/balans/compare/v2.31.4...v2.31.5) (2026-08-22)

### [2.31.4](https://github.com/cchampou/balans/compare/v2.31.3...v2.31.4) (2026-08-22)


### Bug Fixes

* **infra:** remove PORT from env vars (reserved by Scaleway) ([1085afd](https://github.com/cchampou/balans/commit/1085afd04c8b212eae114ac08be45c3a685678f4))
* **release:** commit tfstate in the release commit ([2179ba6](https://github.com/cchampou/balans/commit/2179ba653456e6dbcd9ce11d4a51755dedaba86a))
* **release:** reset tfstate before clean-tree check ([80187ee](https://github.com/cchampou/balans/commit/80187ee09c31f493e6dcdc484ce3abc22bd817f8))

### [2.31.3](https://github.com/cchampou/balans/compare/v2.31.2...v2.31.3) (2026-08-22)

### [2.31.2](https://github.com/cchampou/balans/compare/v2.31.1...v2.31.2) (2026-08-22)


### Bug Fixes

* **release:** copy changelog from repo root, not client/ ([410ebdf](https://github.com/cchampou/balans/commit/410ebdf966f9a73ac5f0e77c7e3445b0f8948c36))

### [2.31.1](https://github.com/cchampou/balans/compare/v2.31.0...v2.31.1) (2026-08-22)


### Bug Fixes

* **docker:** use pre-built client/dist instead of rebuilding in Docker ([9a3930a](https://github.com/cchampou/balans/commit/9a3930a8e0a8005f4b95673b6f9698bd47f07fc6))

## [2.31.0](https://github.com/cchampou/balans/compare/v2.30.2...v2.31.0) (2026-08-22)


### Features

* **server:** add http server with healthcheck route ([5c2db75](https://github.com/cchampou/balans/commit/5c2db75db2b908369b72a800ff80c513c057583a))
* single-container deployment — Go serves API + SPA ([d9f9941](https://github.com/cchampou/balans/commit/d9f99413c44fe93a900fd0ddbc232fa911e5b2cf))


### Bug Fixes

* **release:** build for linux/amd64 (Scaleway requirement) ([717b496](https://github.com/cchampou/balans/commit/717b496f3c00bfc86648f7bdfa3dc1bf6f47ba4f))
* **release:** pass args after -- to avoid node flag collision ([ea1d1eb](https://github.com/cchampou/balans/commit/ea1d1eb28821d0a1ec1f8429d97d48c8e2a48485))
* **release:** run standard-version from repo root to scan all commits ([f71f754](https://github.com/cchampou/balans/commit/f71f7549b4f37de026ac4780da4215c946d0c503))

### [2.30.2](https://github.com/cchampou/balans/compare/v2.30.1...v2.30.2) (2026-08-22)


### Bug Fixes

* agents.md ([d1b4577](https://github.com/cchampou/balans/commit/d1b4577f2cbbbf5d4001319c3d23ef1378bf87f9))
* remove .terraform folder ([95ba8b3](https://github.com/cchampou/balans/commit/95ba8b37eaab4bde3e4484a11734151fa703b1e1))
* rename group ([48816a4](https://github.com/cchampou/balans/commit/48816a4b3ceae72050d856b851a755f2c1ec30c6))

### [2.30.1](https://github.com/cchampou/balans/compare/v2.30.0...v2.30.1) (2026-08-22)


### Bug Fixes

* french translations ([f4f76b3](https://github.com/cchampou/balans/commit/f4f76b311de3ec8170a8b97d55006e1ee3b286f4))

## [2.30.0](https://github.com/cchampou/balans/compare/v2.29.1...v2.30.0) (2026-08-22)


### Features

* **rename:** replace save button with success checkmark and horizontal layout ([2394bcf](https://github.com/cchampou/balans/commit/2394bcf5bb824da99d618ce75b06b1ba2aa58be5))


### Bug Fixes

* **button:** give icon buttons a fixed 40x40 box ([00af035](https://github.com/cchampou/balans/commit/00af03541242750b32e35941d58a06b2c16db9b2))
* **group:** style header actions via id selector ([17a6fe0](https://github.com/cchampou/balans/commit/17a6fe0a1227e614043e2a29831c1e31cfcf69e7))
* **rename:** force horizontal layout on rename form ([46f0472](https://github.com/cchampou/balans/commit/46f047253c767201ccdf73486edadd5d48844666))

### [2.29.1](https://github.com/cchampou/balans/compare/v2.29.0...v2.29.1) (2026-08-22)

## [2.29.0](https://github.com/cchampou/balans/compare/v2.28.1...v2.29.0) (2026-08-22)


### Features

* **ui:** sober centered group not-found state ([30f5a8b](https://github.com/cchampou/balans/commit/30f5a8b9828655a4bad6b388a32f0b2c686d038e))

### [2.28.1](https://github.com/cchampou/balans/compare/v2.28.0...v2.28.1) (2026-08-22)

## [2.28.0](https://github.com/cchampou/balans/compare/v2.27.0...v2.28.0) (2026-08-21)


### Features

* **i18n:** add French for overview & settlement sharing ([886d57f](https://github.com/cchampou/balans/commit/886d57f2a9673d12e9cf53663c0cf981ae52df86))

## [2.27.0](https://github.com/cchampou/balans/compare/v2.26.0...v2.27.0) (2026-08-21)


### Features

* **i18n:** translate the group page to French (i18n part 2) ([43e06b5](https://github.com/cchampou/balans/commit/43e06b5e13982d6273c7e8a41526c40c89f98e67))

## [2.26.0](https://github.com/cchampou/balans/compare/v2.25.0...v2.26.0) (2026-08-21)


### Features

* **i18n:** add language foundation with EN/FR switcher and French core pages ([f4c7f09](https://github.com/cchampou/balans/commit/f4c7f092259c682902f18f06ffdc87ea2db2790f))

## [2.25.0](https://github.com/cchampou/balans/compare/v2.24.0...v2.25.0) (2026-08-21)


### Features

* **overview:** add multi-group overview dashboard ([698eeef](https://github.com/cchampou/balans/commit/698eeef29bc8f2dfc8d81bfd652ac2f7ca033c30))

## [2.24.0](https://github.com/cchampou/balans/compare/v2.23.0...v2.24.0) (2026-08-21)


### Features

* **settlements:** share settlements via link and QR code ([8bde751](https://github.com/cchampou/balans/commit/8bde7514733950e24d17f4ba72c6f9e623c6dcae))

## [2.23.0](https://github.com/cchampou/balans/compare/v2.22.1...v2.23.0) (2026-08-21)


### Features

* **groups:** add emoji group icon with picker in header and list ([9b58b23](https://github.com/cchampou/balans/commit/9b58b23d01d90d81b36068a126ef38b87e1fd496))

### [2.22.1](https://github.com/cchampou/balans/compare/v2.22.0...v2.22.1) (2026-08-21)


### Bug Fixes

* **expense:** scroll add form into view when duplicating an expense ([3ffcdc6](https://github.com/cchampou/balans/commit/3ffcdc66e597c1a028370ad0f8dcfc7b1a787a9f))

## [2.22.0](https://github.com/cchampou/balans/compare/v2.21.0...v2.22.0) (2026-08-21)


### Features

* **recurring:** auto-create due expenses on group load ([d8235ae](https://github.com/cchampou/balans/commit/d8235ae020e247d0261f052c4d4f1a062c82557b))

## [2.21.0](https://github.com/cchampou/balans/compare/v2.20.0...v2.21.0) (2026-08-21)


### Features

* **recurring:** expense templates — create from form, list, run now, delete ([60ccfdc](https://github.com/cchampou/balans/commit/60ccfdcb8a2a9a83d80ae7bdeea2f6e3c9c41d91))

## [2.20.0](https://github.com/cchampou/balans/compare/v2.19.0...v2.20.0) (2026-08-21)


### Features

* **pwa:** offline navigation fallback, versioned SW caches, maskable icons ([2428f7d](https://github.com/cchampou/balans/commit/2428f7d88e8859b09813e03d46d894b739aeebc4))

## [2.19.0](https://github.com/cchampou/balans/compare/v2.18.0...v2.19.0) (2026-08-21)


### Features

* **theme:** add dark mode toggle with persisted preference ([1b243a7](https://github.com/cchampou/balans/commit/1b243a77a191d51b8e5bbaf986adb628397f4d58))

## [2.18.0](https://github.com/cchampou/balans/compare/v2.17.0...v2.18.0) (2026-08-21)


### Features

* **group:** add group deletion with typed-name confirmation ([86606b3](https://github.com/cchampou/balans/commit/86606b34adff244a49de3187aacba315e16005ca))

## [2.17.0](https://github.com/cchampou/balans/compare/v2.16.0...v2.17.0) (2026-08-21)


### Features

* **group:** add inline rename of the group name from the group page ([4672021](https://github.com/cchampou/balans/commit/4672021df88ca07b01cca23e0495986422e90165))

## [2.16.0](https://github.com/cchampou/balans/compare/v2.15.0...v2.16.0) (2026-08-21)


### Features

* **shortcuts:** add keyboard shortcuts for expenses and group navigation ([ba45042](https://github.com/cchampou/balans/commit/ba45042af506646d821a76336cc6fe926ff10820))

## [2.15.0](https://github.com/cchampou/balans/compare/v2.14.1...v2.15.0) (2026-08-21)


### Features

* **expenses:** add 5s undo snackbar for expense add and delete ([16988f1](https://github.com/cchampou/balans/commit/16988f138464a4b2c6090074da536c2b88a0bd19))

### [2.14.1](https://github.com/cchampou/balans/compare/v2.14.0...v2.14.1) (2026-08-21)


### Bug Fixes

* **expenses:** hoist category useMemo above early returns ([757830f](https://github.com/cchampou/balans/commit/757830fef32b47612377e9f3297789f5522f2c4c))

## [2.14.0](https://github.com/cchampou/balans/compare/v2.13.0...v2.14.0) (2026-08-21)


### Features

* **expenses:** optional categories with per-category totals ([4516981](https://github.com/cchampou/balans/commit/45169814191ec09ccde883c4facd9888c67a2c55))
* **loop:** re-enable browser verification as a budgeted smoke gate ([d1e9758](https://github.com/cchampou/balans/commit/d1e975852562257c92526d09a9b86301f656394c))


### Bug Fixes

* **loop:** smoke skip only for infrastructure failures, not flaky asserts ([5576cb5](https://github.com/cchampou/balans/commit/5576cb521a670d26a234852b40886288e30892f3))

## [2.13.0](https://github.com/cchampou/balans/compare/v2.12.0...v2.13.0) (2026-08-21)


### Features

* **group:** export a group's expenses as CSV ([1004dd3](https://github.com/cchampou/balans/commit/1004dd3c36088feab8c11b0f411341197acbed71))

## [2.12.0](https://github.com/cchampou/balans/compare/v2.11.0...v2.12.0) (2026-08-21)


### Features

* **expenses:** duplicate an expense with a pre-filled add form ([1cffd22](https://github.com/cchampou/balans/commit/1cffd225955c412fc55dfd726383d25600e1894f))

## [2.11.0](https://github.com/cchampou/balans/compare/v2.10.0...v2.11.0) (2026-08-21)


### Features

* **group:** daily spending breakdown per participant ([3260496](https://github.com/cchampou/balans/commit/326049612befc005d555ba43e09ab233b1fde638))

## [2.10.0](https://github.com/cchampou/balans/compare/v2.9.0...v2.10.0) (2026-08-21)


### Features

* **groups:** search groups in My Groups ([4193959](https://github.com/cchampou/balans/commit/4193959ad7fac38b479e4650ed107acb3ec4df96))

## [2.9.0](https://github.com/cchampou/balans/compare/v2.8.0...v2.9.0) (2026-08-21)


### Features

* **expenses:** filter and sort expenses on group page ([78ee79b](https://github.com/cchampou/balans/commit/78ee79b0cbdb68a06f3cb8347979a644c46a7334))

## [2.8.0](https://github.com/cchampou/balans/compare/v2.7.0...v2.8.0) (2026-08-17)


### Features

* **groups:** add per-group currency support ([fae82a2](https://github.com/cchampou/balans/commit/fae82a25e438efe969d922dc5026eda4cef5e6ed))


### Bug Fixes

* **deps:** bump nanoid from 3.3.17 to 3.3.18 ([a1bca6e](https://github.com/cchampou/balans/commit/a1bca6e6565554fa6e239298e1c552eb138341b5))

## [2.7.0](https://github.com/cchampou/balans/compare/v2.6.0...v2.7.0) (2026-08-15)


### Features

* add landing product preview, improve heading hierarchy and metadata ([2264632](https://github.com/cchampou/balans/commit/22646321e3a3e4a37a3cb25411d0108e5d809e51))


### Bug Fixes

* **landing:** add missing spacing between hero and product preview ([cb38707](https://github.com/cchampou/balans/commit/cb38707c7a896a65b583bc8864b1b336cf13996c))
* remove redundant ARIA role from Checkbox visual span ([2b5c733](https://github.com/cchampou/balans/commit/2b5c7330aa5d49721f4539ae2d773a48a6bb0a93))

## [2.6.0](https://github.com/cchampou/balans/compare/v2.5.3...v2.6.0) (2026-08-10)


### Features

* replace native checkbox with custom visual for better touch target ([102fbb0](https://github.com/cchampou/balans/commit/102fbb02929a9cfccfc3bced3a46eecee147e623))

### [2.5.3](https://github.com/cchampou/balans/compare/v2.5.2...v2.5.3) (2026-08-10)


### Bug Fixes

* center checkmark using calc() for perfect alignment ([4a673e3](https://github.com/cchampou/balans/commit/4a673e309a087c7bd5597112137d2d15b46eb1b9))

### [2.5.2](https://github.com/cchampou/balans/compare/v2.5.1...v2.5.2) (2026-08-10)


### Bug Fixes

* remove inset shadows from checkbox to keep square shape ([6fe5bc6](https://github.com/cchampou/balans/commit/6fe5bc6019e7edf41c843b83e117810f9dbc6f3b))

### [2.5.1](https://github.com/cchampou/balans/compare/v2.5.0...v2.5.1) (2026-08-10)


### Bug Fixes

* replace native checkbox with custom CSS to prevent Android layout shift ([215926f](https://github.com/cchampou/balans/commit/215926f9613fcca9d0b79b43e79d337e2fcf826c))

## [2.5.0](https://github.com/cchampou/balans/compare/v2.4.0...v2.5.0) (2026-08-10)


### Features

* add Avatar component to design system ([6ec52e2](https://github.com/cchampou/balans/commit/6ec52e2c9f8227af80a0c1524755951daf3bf9aa))


### Bug Fixes

* checkbox glitch ([4c3dc93](https://github.com/cchampou/balans/commit/4c3dc9389b328cbaa97a85baff099f6da56e4308))

## [2.4.0](https://github.com/cchampou/balans/compare/v2.3.0...v2.4.0) (2026-08-10)


### Features

* restructure landing page with new component architecture ([a352475](https://github.com/cchampou/balans/commit/a3524756bf3f28801d1c9cd46efeef7353de9676))

## [2.3.0](https://github.com/cchampou/balans/compare/v2.2.5...v2.3.0) (2026-08-10)


### Features

* build UI component library and migrate atoms across codebase ([ff28fe7](https://github.com/cchampou/balans/commit/ff28fe7b3995b6a6eb8f54efe449071c0142d76d))

### [2.2.5](https://github.com/cchampou/balans/compare/v2.2.4...v2.2.5) (2026-08-09)

### [2.2.4](https://github.com/cchampou/balans/compare/v2.2.3...v2.2.4) (2026-08-09)

### [2.2.3](https://github.com/cchampou/balans/compare/v2.2.2...v2.2.3) (2026-08-09)

### [2.2.2](https://github.com/cchampou/balans/compare/v2.2.1...v2.2.2) (2026-08-09)


### Bug Fixes

* move Create button above the groups list ([644c239](https://github.com/cchampou/balans/commit/644c2396aa4d5a456eb0d2794e8af269aefb80b8))

### [2.2.1](https://github.com/cchampou/balans/compare/v2.2.0...v2.2.1) (2026-08-09)

## [2.2.0](https://github.com/cchampou/balans/compare/v2.1.5...v2.2.0) (2026-08-09)


### Features

* separate group creation into dedicated page ([bd91b3a](https://github.com/cchampou/balans/commit/bd91b3ad063736f49b6cc9907a431441eb47926d))

### [2.1.5](https://github.com/cchampou/balans/compare/v2.1.4...v2.1.5) (2026-08-09)

### [2.1.3](https://github.com/cchampou/balans/compare/v2.1.2...v2.1.3) (2026-08-09)

### [2.1.1](https://github.com/cchampou/balans/compare/v2.1.0...v2.1.1) (2026-08-09)

## [2.1.0](https://github.com/cchampou/balans/compare/v2.0.4...v2.1.0) (2026-08-09)


### Features

* UI improvments ([1b1734e](https://github.com/cchampou/balans/commit/1b1734e84bb1116e9836eb0df9276004e3235975))

### [2.0.4](https://github.com/cchampou/balans/compare/v2.0.3...v2.0.4) (2026-08-09)

### [2.0.3](https://github.com/cchampou/balans/compare/v2.0.2...v2.0.3) (2026-08-09)


### Bug Fixes

* use UTF-8-safe Base64 encoding for GitHub API writes ([c02ee51](https://github.com/cchampou/balans/commit/c02ee513a66ead6ace29da0f86ef02cb4e9a126c))

### [2.0.2](https://github.com/cchampou/balans/compare/v2.0.1...v2.0.2) (2026-08-09)

### [2.0.1](https://github.com/cchampou/balans/compare/v2.0.0...v2.0.1) (2026-08-09)


### Bug Fixes

* env config not hooked ([fd3eac5](https://github.com/cchampou/balans/commit/fd3eac5acb169868d26c2863a946af8e299b5db5))

## [2.0.0](https://github.com/cchampou/balans/compare/v1.18.3...v2.0.0) (2026-08-09)


### ⚠ BREAKING CHANGES

* **build:** share links using the old /balans/#group/:id format no
longer resolve. The new format is /balans/group/:id.

### Features

* **build:** migrate from Astro to Vite + React Router ([d6e713a](https://github.com/cchampou/balans/commit/d6e713abed16f0fba8a538a113bbdeeaad27950d))

### [1.18.3](https://github.com/cchampou/balans/compare/v1.18.2...v1.18.3) (2026-08-09)


### Bug Fixes

* agents file ([224a9f8](https://github.com/cchampou/balans/commit/224a9f85eb92106ee60a306dc1e4ac477d15c25c))

### [1.18.2](https://github.com/cchampou/balans/compare/v1.18.1...v1.18.2) (2026-08-09)

### [1.18.1](https://github.com/cchampou/balans/compare/v1.18.0...v1.18.1) (2026-08-09)

## [1.18.0](https://github.com/cchampou/balans/compare/v1.17.0...v1.18.0) (2026-08-09)


### Features

* replace shrimp with fried shrimp emoji on landing page ([54c0fc3](https://github.com/cchampou/balans/commit/54c0fc3ab01c4d9bb8ebd5aa1d30ef7c517e7292))

## [1.17.0](https://github.com/cchampou/balans/compare/v1.16.4...v1.17.0) (2026-08-09)


### Features

* remove YourGroupsSection from landing page ([40687aa](https://github.com/cchampou/balans/commit/40687aa1e36ffeba8acd6730d5048b18f35953ee))

### [1.16.4](https://github.com/cchampou/balans/compare/v1.16.3...v1.16.4) (2026-08-09)

### [1.16.3](https://github.com/cchampou/balans/compare/v1.16.2...v1.16.3) (2026-08-09)

### [1.16.2](https://github.com/cchampou/balans/compare/v1.16.1...v1.16.2) (2026-08-09)

### [1.16.1](https://github.com/cchampou/balans/compare/v1.16.0...v1.16.1) (2026-08-09)

## [1.16.0](https://github.com/cchampou/balans/compare/v1.15.1...v1.16.0) (2026-08-09)


### Features

* always show landing page for all users ([3c2932f](https://github.com/cchampou/balans/commit/3c2932f01b4bb80f1edc2942a975cb5cf8e1fd68))


### Bug Fixes

* **pre-push:** use temp file to fix subshell variable loss ([cbd1030](https://github.com/cchampou/balans/commit/cbd1030b1f74f61ca8638f1cd3ef02b3b1207796))

### [1.15.1](https://github.com/cchampou/balans/compare/v1.15.0...v1.15.1) (2026-08-09)

## [1.15.0](https://github.com/cchampou/balans/compare/v1.14.1...v1.15.0) (2026-08-09)


### Features

* add astro groups page with SPA navigation ([13c967d](https://github.com/cchampou/balans/commit/13c967dc6cc55ce682c0123a3e069ffd201b608e))


### Bug Fixes

* require explicit confirmation before git push ([9990884](https://github.com/cchampou/balans/commit/9990884fd876d5f598a1eede4035971ecf244495))
* **skill:** remove conflicting push directive from git-commit-push skill ([1c8711e](https://github.com/cchampou/balans/commit/1c8711e9ee62071bd8a11c12b13284ba6b1a0a58))

### [1.14.1](https://github.com/cchampou/balans/compare/v1.14.0...v1.14.1) (2026-08-09)


### Bug Fixes

* **agents:** push rules ([090aac2](https://github.com/cchampou/balans/commit/090aac2fd090c5bef630818c5444d56215fa3b3f))

## [1.14.0](https://github.com/cchampou/balans/compare/v1.13.2...v1.14.0) (2026-08-09)


### Features

* add QR code sharing to group page Share dropdown ([95670c0](https://github.com/cchampou/balans/commit/95670c0be957d26aef0eee029ed108fb1af147bd))
* add test coverage with soft-gate thresholds ([1984057](https://github.com/cchampou/balans/commit/1984057f2625a34c5178e4fd4eee37e753c2e2fe))


### Bug Fixes

* **conflict-resolution:** treat payerIds as sets for order-independent equality ([0c96117](https://github.com/cchampou/balans/commit/0c96117fa2c34ea1ab7a67d0b6561bb83f856ea8))
* remove unused variable in store test and ignore coverage folder ([ced0cae](https://github.com/cchampou/balans/commit/ced0caecd23f80283b32b908f424f918958323d5))

### [1.13.2](https://github.com/cchampou/balans/compare/v1.13.1...v1.13.2) (2026-08-09)

### [1.13.1](https://github.com/cchampou/balans/compare/v1.13.0...v1.13.1) (2026-08-09)

## [1.13.0](https://github.com/cchampou/balans/compare/v1.12.0...v1.13.0) (2026-08-09)


### Features

* **group-page:** add QR code sharing to group page ([cb1d112](https://github.com/cchampou/balans/commit/cb1d112877db3cb5f1c635ff5d135f5c128edf86))

## [1.12.0](https://github.com/cchampou/balans/compare/v1.11.4...v1.12.0) (2026-08-09)


### Features

* **group-page:** add tab navigation with URL-driven state and share button ([38ebc4a](https://github.com/cchampou/balans/commit/38ebc4a40ce4db391f56022159ddc28d76ca458b))

## [1.12.0](https://github.com/cchampou/balans/compare/v1.11.4...v1.12.0) (2026-08-09)


### Features

* **group-page:** add tab navigation with URL-driven state and share button ([38ebc4a](https://github.com/cchampou/balans/commit/38ebc4a40ce4db391f56022159ddc28d76ca458b))

### [1.11.4](https://github.com/cchampou/balans/compare/v1.11.3...v1.11.4) (2026-08-09)


### Bug Fixes

* store ([f8675b0](https://github.com/cchampou/balans/commit/f8675b07a636b8a77da31c3fa5b010aa95703368))

### [1.11.3](https://github.com/cchampou/balans/compare/v1.11.2...v1.11.3) (2026-08-08)


### Bug Fixes

* **conflict-resolution:** show ConflictDialog instead of stacked error banners ([97a16d8](https://github.com/cchampou/balans/commit/97a16d809b3cf0e9295a8063af4158a4468664fc))

### [1.11.2](https://github.com/cchampou/balans/compare/v1.11.1...v1.11.2) (2026-08-08)

### [1.11.1](https://github.com/cchampou/balans/compare/v1.11.0...v1.11.1) (2026-08-08)


### Bug Fixes

* **favicon:** replace Astro rocket with Balans logo ([98a7c28](https://github.com/cchampou/balans/commit/98a7c288f141b1deb3bc28314da08f11a2904b19))

## [1.11.0](https://github.com/cchampou/balans/compare/v1.10.0...v1.11.0) (2026-08-08)


### Features

* **expenses:** support joint account payers with shared credit splits ([ac56507](https://github.com/cchampou/balans/commit/ac56507c19ef398149c51861c974999e07187373))

## [1.10.0](https://github.com/cchampou/balans/compare/v1.9.1...v1.10.0) (2026-08-08)


### Features

* add robots.txt, favicon links, and expense editing ([65cd877](https://github.com/cchampou/balans/commit/65cd877c0266e99a4ae221c9fcfd5632c0e065e5))

### [1.9.1](https://github.com/cchampou/balans/compare/v1.9.0...v1.9.1) (2026-08-08)


### Bug Fixes

* **pwa:** version service worker cache names and switch to stale-while-revalidate ([23e6770](https://github.com/cchampou/balans/commit/23e67702eb09cd22e152edc9e27792d48dcd8e35))

## [1.9.0](https://github.com/cchampou/balans/compare/v1.8.0...v1.9.0) (2026-08-08)


### Features

* **conflict-resolution:** add smart conflict resolution with merge, dialog, toast, and store resilience ([0a51fe9](https://github.com/cchampou/balans/commit/0a51fe9e39684da11ce9c6d7084f0adbbe165ef6))

## [1.8.0](https://github.com/cchampou/balans/compare/v1.7.1...v1.8.0) (2026-08-08)


### Features

* **landing-page:** add landing page with hero, feature cards, and first-visit visibility ([ef4ad2a](https://github.com/cchampou/balans/commit/ef4ad2abe8fe0e0b6fd514d5d466495ff4503855))

### [1.7.1](https://github.com/cchampou/balans/compare/v1.7.0...v1.7.1) (2026-08-08)

## [1.7.0](https://github.com/cchampou/balans/compare/v1.6.0...v1.7.0) (2026-08-08)


### Features

* add/remove participants from existing groups ([388e455](https://github.com/cchampou/balans/commit/388e4552df3685c8694492aada10e653150ad9ec))

## [1.6.0](https://github.com/cchampou/balans/compare/v1.5.1...v1.6.0) (2026-08-08)


### Features

* replace Existing Groups with My Groups section ([18d0685](https://github.com/cchampou/balans/commit/18d0685de9fa4a9cbbad8b1c9c83a69d624c2811))


### Bug Fixes

* **pwa:** disable service worker registration in dev mode ([625ebbc](https://github.com/cchampou/balans/commit/625ebbc125b9220bb828563e4860d4c2a57e278e))

### [1.5.2](https://github.com/cchampou/balans/compare/v1.5.1...v1.5.2) (2026-08-08)


### Bug Fixes

* **pwa:** disable service worker registration in dev mode ([625ebbc](https://github.com/cchampou/balans/commit/625ebbc125b9220bb828563e4860d4c2a57e278e))

### [1.5.1](https://github.com/cchampou/balans/compare/v1.5.0...v1.5.1) (2026-08-08)


### Bug Fixes

* **expense-list:** format expense amounts with currency ([66cef7a](https://github.com/cchampou/balans/commit/66cef7af6d7052fe04bab3514ae42cc01b19a6f1))

## [1.5.0](https://github.com/cchampou/balans/compare/v1.4.0...v1.5.0) (2026-08-08)


### Features

* **pwa:** version service worker registration URL on app bump ([40a7da0](https://github.com/cchampou/balans/commit/40a7da01e5289e56847fbfd98b3e25972b020773))

## [1.4.0](https://github.com/cchampou/balans/compare/v1.3.0...v1.4.0) (2026-08-08)


### Features

* redesign group detail page ([f1e98fd](https://github.com/cchampou/balans/commit/f1e98fd09c72a41d8dbe6581ed7d1bcef2ccfd41))

## [1.3.0](https://github.com/cchampou/balans/compare/v1.2.1...v1.3.0) (2026-08-08)


### Features

* redesign group list with card-style items ([c907fc4](https://github.com/cchampou/balans/commit/c907fc42afe72d8b22e38ef207f6fe8112883303))


### Bug Fixes

* use real GitHub API in dev mode and fix group card styles ([b9543cd](https://github.com/cchampou/balans/commit/b9543cdaf639a65c3007c6a98b725feb824fc85e))

### [1.2.1](https://github.com/cchampou/balans/compare/v1.2.0...v1.2.1) (2026-08-08)


### Bug Fixes

* remove duplicate version sections from CHANGELOG.md ([1dc862f](https://github.com/cchampou/balans/commit/1dc862fa3ef6d07a8759f18034560f72517c38d5))

## [1.2.0](https://github.com/cchampou/balans/compare/v1.1.3...v1.2.0) (2026-08-08)


### Features

* make app title link to home page ([1943201](https://github.com/cchampou/balans/commit/19432011ea40f31532b1e849ab64cfefdaf6a588))

### [1.1.3](https://github.com/cchampou/balans/compare/v1.1.2...v1.1.3) (2026-08-08)


### Bug Fixes

* include changelog page in release commit amend ([cc3633c](https://github.com/cchampou/balans/commit/cc3633c40edf7feed34863f95c6e99f33043e508))

### [1.1.2](https://github.com/cchampou/balans/compare/v1.1.1...v1.1.2) (2026-08-08)


### Bug Fixes

* preserve layout frontmatter when syncing changelog ([1190169](https://github.com/cchampou/balans/commit/11901691f06d0ef6b4d892c217f08fafbc428a61))
* restore changelog page frontmatter ([89a9375](https://github.com/cchampou/balans/commit/89a9375989d788a0c5d4b0d28ce1d291ef1ad366))

### [1.1.1](https://github.com/cchampou/balans/compare/v1.1.0...v1.1.1) (2026-08-08)


### Bug Fixes

* create release tag after amend in release script ([0f44d18](https://github.com/cchampou/balans/commit/0f44d18013973f5c965faba47b8cb5bce72b5c10))

## 1.1.0 (2026-08-08)


### Features

* add global layout and changelog page ([50f7b2b](https://github.com/cchampou/balans/commit/50f7b2bfbc038e4ee598749a8f5eb02168298d41))
* add openspec changes for code review fixes ([e9b0f85](https://github.com/cchampou/balans/commit/e9b0f850d2a2d5359e8fdd6f0229f64e44b463d1))
* add openspec gatekeeper skill + selective-expense-sharing change artifacts ([e1382a9](https://github.com/cchampou/balans/commit/e1382a94ab207e4c15952655a12d306e1a45de9f))
* **changelog-page:** add openspec planning artifacts ([a97a699](https://github.com/cchampou/balans/commit/a97a6995de5319fc4ca202f611755be30193edbe))
* **expense-management:** add form validation, expense deletion, and atomic group creation ([5770bb3](https://github.com/cchampou/balans/commit/5770bb37c86b34ff23e40063e0f486e79aed9536))
* group pages with client-side routing — homepage for creation, group view via hash routing ([ea4179c](https://github.com/cchampou/balans/commit/ea4179c5dff7e7d053b48593a497332766ea97f1))
* implement audit spec gaps – lint, tests, validation, error handling, a11y, store methods ([f7bb7d0](https://github.com/cchampou/balans/commit/f7bb7d0f673e76109da355bdc15be57342f9c964))
* implement group pages — client-side routing, share link, homepage for creation ([f7d17fb](https://github.com/cchampou/balans/commit/f7d17fb1bd5066bfad779d55b58f2e30f23a7261))
* initial project setup with GitHub backend integration ([3eb30a8](https://github.com/cchampou/balans/commit/3eb30a8ace7b54c58d23de79c083468502d45ef1))
* participant checkboxes on expense form — exclude participants from expenses ([7d618d8](https://github.com/cchampou/balans/commit/7d618d854c8b8d460efc641b62c26da40877dab6))
* propose group pages — homepage for creation, dedicated page per group ([e487ec3](https://github.com/cchampou/balans/commit/e487ec319014c0c1e49eeb645e462a5cb39b4bce))
* propose showing payer name on expenses ([a9fcce1](https://github.com/cchampou/balans/commit/a9fcce17110589e81ef09c6d5e1ade05cad39ded))
* **pwa:** add logo.svg and update artifacts to reference it ([c1b015c](https://github.com/cchampou/balans/commit/c1b015ceed7a199bf15c690271dd2281105008eb))
* **pwa:** add PWA manifest, service worker, icons, and install prompt ([cedd893](https://github.com/cchampou/balans/commit/cedd8932a5bc1b661b902f3b2475cd14b2ce2c21))
* **pwa:** propose PWA installable change with all artifacts ([34b65a3](https://github.com/cchampou/balans/commit/34b65a365a351b0865963ee18b3eb3906a658edd))
* **settlement:** optimize settlement algorithm, fix rounding, add locale-aware currency formatting ([51cd709](https://github.com/cchampou/balans/commit/51cd7099ede639317bdbd51c7dfb1dcc0c3d468b))
* show payer name on expense list items ([e353b20](https://github.com/cchampou/balans/commit/e353b20013f5981283332a53786781988460590a))


### Bug Fixes

* agents markdown never release yourself instruction ([4bbd91d](https://github.com/cchampou/balans/commit/4bbd91d4621668f69724cf0f6eed9564aaedf7e9))
* **audit:** resolve all code audit findings ([fe18bab](https://github.com/cchampou/balans/commit/fe18bab4fae4875b450c55ff3efee17e243b43ae))
* enforce type safety in business logic ([e034b2e](https://github.com/cchampou/balans/commit/e034b2e93de854d9ce1959f0db6a26ee14f3bb7b))
* **husky:** remove deprecated shebang lines, use yarn in pre-commit hook ([608ea6d](https://github.com/cchampou/balans/commit/608ea6d66f20674b27227f477e74099962cc1b8b))
* include build output in release commit ([ec73a74](https://github.com/cchampou/balans/commit/ec73a74ed20eae91c861362bd6e0f135ec068b3d))
* make currency configurable via PUBLIC_CURRENCY env var, mark fix-audit-findings tasks complete ([3e8f795](https://github.com/cchampou/balans/commit/3e8f795236efc2d6fd6765e2b0b1067648cfd85b))
* persist .nojekyll after every build ([b5b476a](https://github.com/cchampou/balans/commit/b5b476af8bff24ecff8de8cede55b259edffb72a))
* resolve lint warnings for a11y and noNonNullAssertion ([2d4e307](https://github.com/cchampou/balans/commit/2d4e30741135329de9c0984c670352be46468e6e))
* run standard-version before build in release script ([c66c395](https://github.com/cchampou/balans/commit/c66c395fa4ef24fd1e41de3bde6152b6af183b45))
* share link shows full group URL with hash ([7abbf96](https://github.com/cchampou/balans/commit/7abbf96c283142bd3410ef3b316909a62f6e62be))
* use client:only for React islands to fix hydration mismatches ([bd52891](https://github.com/cchampou/balans/commit/bd52891719b77e12140bc72006131b5dc186b041))

## 1.0.0 (2026-08-08)


### Features

* add openspec changes for code review fixes ([e9b0f85](https://github.com/cchampou/balans/commit/e9b0f850d2a2d5359e8fdd6f0229f64e44b463d1))
* add openspec gatekeeper skill + selective-expense-sharing change artifacts ([e1382a9](https://github.com/cchampou/balans/commit/e1382a94ab207e4c15952655a12d306e1a45de9f))
* **expense-management:** add form validation, expense deletion, and atomic group creation ([5770bb3](https://github.com/cchampou/balans/commit/5770bb37c86b34ff23e40063e0f486e79aed9536))
* group pages with client-side routing — homepage for creation, group view via hash routing ([ea4179c](https://github.com/cchampou/balans/commit/ea4179c5dff7e7d053b48593a497332766ea97f1))
* implement audit spec gaps – lint, tests, validation, error handling, a11y, store methods ([f7bb7d0](https://github.com/cchampou/balans/commit/f7bb7d0f673e76109da355bdc15be57342f9c964))
* implement group pages — client-side routing, share link, homepage for creation ([f7d17fb](https://github.com/cchampou/balans/commit/f7d17fb1bd5066bfad779d55b58f2e30f23a7261))
* initial project setup with GitHub backend integration ([3eb30a8](https://github.com/cchampou/balans/commit/3eb30a8ace7b54c58d23de79c083468502d45ef1))
* participant checkboxes on expense form — exclude participants from expenses ([7d618d8](https://github.com/cchampou/balans/commit/7d618d854c8b8d460efc641b62c26da40877dab6))
* propose group pages — homepage for creation, dedicated page per group ([e487ec3](https://github.com/cchampou/balans/commit/e487ec319014c0c1e49eeb645e462a5cb39b4bce))
* propose showing payer name on expenses ([a9fcce1](https://github.com/cchampou/balans/commit/a9fcce17110589e81ef09c6d5e1ade05cad39ded))
* **pwa:** add logo.svg and update artifacts to reference it ([c1b015c](https://github.com/cchampou/balans/commit/c1b015ceed7a199bf15c690271dd2281105008eb))
* **pwa:** add PWA manifest, service worker, icons, and install prompt ([cedd893](https://github.com/cchampou/balans/commit/cedd8932a5bc1b661b902f3b2475cd14b2ce2c21))
* **pwa:** propose PWA installable change with all artifacts ([34b65a3](https://github.com/cchampou/balans/commit/34b65a365a351b0865963ee18b3eb3906a658edd))
* **settlement:** optimize settlement algorithm, fix rounding, add locale-aware currency formatting ([51cd709](https://github.com/cchampou/balans/commit/51cd7099ede639317bdbd51c7dfb1dcc0c3d468b))
* show payer name on expense list items ([e353b20](https://github.com/cchampou/balans/commit/e353b20013f5981283332a53786781988460590a))


### Bug Fixes

* **audit:** resolve all code audit findings ([fe18bab](https://github.com/cchampou/balans/commit/fe18bab4fae4875b450c55ff3efee17e243b43ae))
* enforce type safety in business logic ([e034b2e](https://github.com/cchampou/balans/commit/e034b2e93de854d9ce1959f0db6a26ee14f3bb7b))
* **husky:** remove deprecated shebang lines, use yarn in pre-commit hook ([608ea6d](https://github.com/cchampou/balans/commit/608ea6d66f20674b27227f477e74099962cc1b8b))
* include build output in release commit ([ec73a74](https://github.com/cchampou/balans/commit/ec73a74ed20eae91c861362bd6e0f135ec068b3d))
* make currency configurable via PUBLIC_CURRENCY env var, mark fix-audit-findings tasks complete ([3e8f795](https://github.com/cchampou/balans/commit/3e8f795236efc2d6fd6765e2b0b1067648cfd85b))
* persist .nojekyll after every build ([b5b476a](https://github.com/cchampou/balans/commit/b5b476af8bff24ecff8de8cede55b259edffb72a))
* resolve lint warnings for a11y and noNonNullAssertion ([2d4e307](https://github.com/cchampou/balans/commit/2d4e30741135329de9c0984c670352be46468e6e))
* share link shows full group URL with hash ([7abbf96](https://github.com/cchampou/balans/commit/7abbf96c283142bd3410ef3b316909a62f6e62be))
