|
1 | 1 |
|
2 | | -## [2026.6.0] - 2026-06-05 |
| 2 | +## [2026.7.0] - 2026-07-18 |
3 | 3 |
|
4 | 4 | ### Bug Fixes |
5 | 5 |
|
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) |
| 6 | +- **router**: Add loading builder to root route to prevent null-check crash (#408) |
| 7 | +- **favorites**: Show loading state while festival switches (#409) |
| 8 | +- **cache**: Serialise DrinkCacheService writes to prevent race (#419) |
| 9 | +- **repository**: Return UserDrinkState from mutators to eliminate dual DateTime.now() (#447) |
| 10 | +- **drink-detail**: Make the tasting SnackBar dismissible and less cramped (#475) |
| 11 | +- **router**: Push detail routes instead of replacing to preserve scroll position (#478) |
| 12 | +- **drinks**: Make drink card text areas tappable (#483) |
12 | 13 |
|
13 | 14 | ### Documentation |
14 | 15 |
|
15 | | -- **agents**: Add parallel subagent/worktree workflow rules (#368) |
16 | | -- **agents**: Clarify worktree PRs target main, not the session branch (#374) |
| 16 | +- Remove stale planning docs and fix dangling links (#394) |
| 17 | +- **my-festival**: Resolve timeline vs unified-list contradiction; split photos into separate milestone (#418) |
| 18 | +- **api**: Publish MyFestival OpenAPI spec via Redoc at /api-docs/ (#428) |
| 19 | +- **agents**: Promote cross-cutting guidance from skill commands (#444) |
| 20 | +- **skills**: Fix MCP method references and dedupe shared guidance (#452) |
| 21 | +- **skills**: Add change-control and debugging-playbook skills (#456) |
| 22 | +- **agents**: Dedup AGENTS.md into a spine + skill router (#458) |
| 23 | +- **adr**: Propose the check-in as the primary My Festival entity (#459) |
| 24 | +- **adr**: Mark ADR 0006 Accepted (#460) |
| 25 | +- **readme**: Refresh features, fix accuracy nits, strengthen story (#464) |
| 26 | +- **design**: Capture the design-language lessons from the detail redesign (#473) |
17 | 27 |
|
18 | 28 | ### Features |
19 | 29 |
|
20 | | -- **claude**: Add ship-issues workflow commands and tighten agent docs (#378) |
21 | | -- **models**: Introduce BeverageCategories constants, replace magic strings (#381) |
| 30 | +- **favourites**: Query favourites from the personal-state store, independent of the catalogue (#396) |
| 31 | +- **domain**: Extract personal-state management into UserDrinkStateController (#398) |
| 32 | +- **domain**: Extract FestivalController from BeerProvider (#402) |
| 33 | +- **domain**: Extract UserPreferencesController from BeerProvider (#403) |
| 34 | +- **proto**: Myfestival v1alpha API contract, OpenAPI generation, and client codegen (#425) |
| 35 | +- **worker**: Add /v1alpha Review API on D1 (#426) |
| 36 | +- **proto**: Consolidate DrinkEntry sync contract (v1alpha) (#429) |
| 37 | +- **api**: Add read-only festival catalogue API (#433) |
| 38 | +- **my-festival**: Add tasting-log and notes mutators through the stack (#455) |
| 39 | +- **my-festival**: My Festival screen with want-to-try and tasted sections (#457) |
| 40 | +- **my-festival**: Migrate to LogEntry check-in model (schema v2) (#463) |
| 41 | +- **my-festival**: Detail-screen multi-tasting, timestamps and notes (#466) |
| 42 | +- **drink-detail**: Reorder layout and add Similar Drinks carousel (#468) |
| 43 | +- **drinks**: Redesign the drink detail screen around a "one job per surface" layout (#472) |
| 44 | +- **detail**: Collapse app bar title to the drink on scroll (#482) |
| 45 | +- **web**: Set route-aware browser tab titles (#484) |
| 46 | +- **navigation**: Add one-tap return to drinks list from detail screens (#485) |
22 | 47 |
|
23 | 48 | ### Refactoring |
24 | 49 |
|
25 | | -- **models**: Add Drink-level accessors to remove feature envy in screens (#367) |
26 | | -- **screens**: Extract DetailHeader widget, deduplicate sort label logic (#377) |
| 50 | +- **drinks**: Split DrinksScreen into focused widget files (#388) |
| 51 | +- **storage**: Unify personal state into a versioned UserDataStore (#395) |
| 52 | +- Simplify controllers and eliminate parallel switch and boilerplate (#399) |
| 53 | +- **models**: Rename FavoriteDrinkEntry→MyFestivalEntry; generalise to myFestivalEntries; extract FavoritesScreen (#448) |
| 54 | +- **widgets**: Extract FactsStrip from DrinkHeroPanel (#474) |
27 | 55 |
|
28 | 56 |
|
0 commit comments