|
1 | 1 |
|
2 | | -## [2026.5.9] - 2026-05-31 |
| 2 | +## [2026.6.0] - 2026-06-05 |
3 | 3 |
|
4 | 4 | ### Bug Fixes |
5 | 5 |
|
6 | | -- Style screen title casing and google_fonts crash reporting (#295) |
7 | | -- **router**: Handle illegal percent encoding in style route (#300) |
8 | | -- **ci**: Replace report-lcov action with codecov for coverage gating (#303) |
9 | | -- **analytics**: Prevent Cloudflare Pages preview hosts from logging to production (#327) |
10 | | -- **search**: Debounce search input to avoid per-keystroke filtering (#328) |
11 | | -- **festivals**: Skip malformed festival entries instead of crashing (#330) |
12 | | -- **screens**: Return Future from async URL launch handlers (#331) |
13 | | -- **provider**: Make festival/error analytics non-blocking in BeerProvider (#332) |
14 | | -- Dispose http.Client instances owned by repositories (#334) |
15 | | -- **provider**: Rate-limit refreshIfStale retries after failed network calls (#336) |
16 | | -- Prevent `"null"` identifier collisions from malformed drink JSON (#339) |
17 | | -- **provider**: Refresh current festival reference on registry update (#362) |
18 | | -- **models**: Replace fragile substring matching with exact-match status map (#360) |
| 6 | +- **screens**: Show festival name instead of ID in drink detail app bar (#365) |
| 7 | +- **models**: Make Drink user-state fields immutable with copyWith (#366) |
| 8 | +- **analytics**: Filter connectivity failures from partial-fetch log (#375) |
| 9 | +- **connectivity**: Replace runtimeType string-matching with conditional imports (#376) |
| 10 | +- **provider**: Don't update lastDrinksRefresh when festival has no types (#382) |
| 11 | +- **models**: Add == and hashCode to Drink, Product, and Producer (#380) |
19 | 12 |
|
20 | 13 | ### Documentation |
21 | 14 |
|
22 | | -- Add badges, Play Store link, and fix README accuracy (#297) |
23 | | -- Move issue tracking to GitHub, archive todos.md (#316) |
24 | | -- **agents**: Add implicit patterns subsection to Code Style (#325) |
25 | | -- **agents**: Add session startup section for toolchain pre-warming (#333) |
26 | | -- **my-festival**: Add product vision document (#359) |
| 15 | +- **agents**: Add parallel subagent/worktree workflow rules (#368) |
| 16 | +- **agents**: Clarify worktree PRs target main, not the session branch (#374) |
27 | 17 |
|
28 | 18 | ### Features |
29 | 19 |
|
30 | | -- **offline**: Cache drinks & festivals for instant stale-while-revalidate startup (#302) |
31 | | -- **android**: Configure App Links to open shared drink URLs in the app (#363) |
| 20 | +- **claude**: Add ship-issues workflow commands and tighten agent docs (#378) |
| 21 | +- **models**: Introduce BeverageCategories constants, replace magic strings (#381) |
32 | 22 |
|
33 | 23 | ### Refactoring |
34 | 24 |
|
35 | | -- Extract inline shell tasks to mise-tasks file-tasks; add shellcheck + shfmt (#299) |
36 | | -- **storage**: Centralize SharedPreferences keys in PreferenceKeys (#356) |
37 | | -- **provider**: Extract DrinkFilterController from BeerProvider (#357) |
| 25 | +- **models**: Add Drink-level accessors to remove feature envy in screens (#367) |
| 26 | +- **screens**: Extract DetailHeader widget, deduplicate sort label logic (#377) |
38 | 27 |
|
39 | 28 |
|
0 commit comments