Skip to content

Commit f9aed4e

Browse files
chore: prepare release 2026.7.0 (#387)
Co-authored-by: richardthe3rd <573334+richardthe3rd@users.noreply.github.com>
1 parent 875a449 commit f9aed4e

3 files changed

Lines changed: 98 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,60 @@
11

2+
## [2026.7.0] - 2026-07-18
3+
4+
### Bug Fixes
5+
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)
13+
14+
### Documentation
15+
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)
27+
28+
### Features
29+
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)
47+
48+
### Refactoring
49+
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)
55+
56+
57+
258
## [2026.6.0] - 2026-06-05
359

460
### Bug Fixes

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: cambridge_beer_festival
22
description: A Flutter app for Cambridge Beer Festival - browse beers, ciders, meads, and more.
33
publish_to: 'none'
4-
version: 2026.6.0+2026060500
4+
version: 2026.7.0+2026071800
55

66
environment:
77
sdk: '>=3.10.0 <4.0.0'

release-notes.md

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,56 @@
11

2-
## [2026.6.0] - 2026-06-05
2+
## [2026.7.0] - 2026-07-18
33

44
### Bug Fixes
55

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)
1213

1314
### Documentation
1415

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)
1727

1828
### Features
1929

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)
2247

2348
### Refactoring
2449

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)
2755

2856

0 commit comments

Comments
 (0)