Ade Thompson apt
apt pushed to main at apt/fuelboard 2026-08-14 05:02:46 +01:00
e62177ae2e Backlog: add lock screen widgets (P2, Option B)
apt pushed to main at apt/fuelboard 2026-08-14 04:59:28 +01:00
e044a1552a Backlog: add Siri/Shortcuts features (P1-P3); mark widget config done
apt pushed to main at apt/fuelboard 2026-08-14 04:53:33 +01:00
f5a5d3325f Swap app icon to water-drop pound design (drip export)
apt pushed to main at apt/fuelboard 2026-08-14 02:53:53 +01:00
b94f769750 Small widget: support .systemMedium so the icon menu offers both sizes
apt pushed to main at apt/fuelboard 2026-08-14 02:28:45 +01:00
6375af4c05 Small widget: restore its own intent TYPE (minimal params) for the icon menu
apt pushed to main at apt/fuelboard 2026-08-13 23:41:18 +01:00
050c9f13a3 Onboarding: show the app icon with iOS rounded corners
apt pushed to main at apt/fuelboard 2026-08-13 23:36:59 +01:00
fec139cf5a Icon: replace with Fuelboard-copy composer render (Vecteezy gas-station art)
apt pushed to main at apt/fuelboard 2026-08-13 22:00:17 +01:00
018e6eec2f Icon: use the Icon Composer render instead of the pre-baked appiconset PNG
apt pushed to main at apt/fuelboard 2026-08-13 21:37:39 +01:00
3545239ad6 New app icon: green pump showing £1.00, with dark + tinted variants
apt pushed to main at apt/fuelboard 2026-08-13 20:53:23 +01:00
cd88e23601 Widget pump icon flexes to the chosen fuel's colour
apt pushed to main at apt/fuelboard 2026-08-13 20:43:17 +01:00
dafc96f845 Fix small widget skeleton: use the proven medium intent; delete failing small intent
apt pushed to main at apt/fuelboard 2026-08-13 20:27:06 +01:00
553730681f A/B test: from-scratch minimal small widget (proven medium intent)
apt pushed to main at apt/fuelboard 2026-08-13 20:23:15 +01:00
8a9e77546f Small widget: remove @IntentParameterDependency from WidgetFavouriteQuery
apt pushed to main at apt/fuelboard 2026-08-13 20:13:25 +01:00
3cf1d5c9af Widget diagnostics: per-intent beacons (keychain slots + relay query)
apt pushed to main at apt/fuelboard 2026-08-13 19:52:13 +01:00
335a9751dc Widget diagnostics: beacon from makeEntry (keychain + relay) + app diagnostics section
apt pushed to main at apt/fuelboard 2026-08-13 19:35:48 +01:00
4d35b08533 Widget: keychain-free fresh defaults — drop defaultResult(), auto-populate at entry time
apt pushed to main at apt/fuelboard 2026-08-13 18:51:42 +01:00
8646521176 Small widget: fuel-only relay fetch when no location, so default/Cheapest/Closest faces populate with real stations instead of sample data. Root cause of the persistent skeleton: favourites mode reads keychain (works on free accounts), but the non-favourites path needs stations — the app-group cache can be absent on free accounts and keychain can't hold the station dump, so with no location fix the widget fell through to SampleFuelProvider and never populated. Now when location is nil the widget fetches /api/v1/stations?fuel=X&limit=500 (fuel-only, cheapest-first, verified against the relay).
apt pushed to main at apt/fuelboard 2026-08-13 18:39:32 +01:00
38b47eea38 Widget gallery order + default-widget skeleton fix. (1) Register FuelPriceSmallWidget BEFORE FuelPriceWidget so the gallery lists small, then medium (bundle order = gallery order). (2) Revert entity resolution to LENIENT: the timeline request resolves the full configuration through the entity queries, and the b1765b5 strict entities(for:) (nil for the empty default favourite 'fuel|') failed resolution for default-config small widgets, stranding them on the iOS skeleton placeholder. entities(for:) now always returns a value; defaultResult() still auto-populates fresh widgets to the first fuel with a favourite / first favourite of that fuel.
apt pushed to main at apt/fuelboard 2026-08-13 18:28:25 +01:00
b1765b5611 Widget favourites defaults: auto-populate Fuel and Favourite rows when Sort = Favourites. FavouriteFuelQuery gains defaultResult() (first fuel with a favourite, Unleaded→Diesel order) and strict entities(for:) — a stored fuel that no longer has favourites fails resolution and falls back to the default. WidgetFavouriteQuery gains defaultResult() (first favourite of the Fuel row's fuel, else first favourite overall) and strict entities(for:) — the empty static default ('fuel|') and removed favourites now resolve to nil so the sheet pre-selects a real favourite instead of showing a placeholder. Provider fallback (cheapest favourite of the fuel) unchanged.
apt pushed to main at apt/fuelboard 2026-08-13 18:21:06 +01:00
906f8a8429 Small widget: declare config params in display order for every summary branch. If iOS falls back to declaration order when re-rendering the sheet after a parameter change, the favourites branch previously re-ordered to Sort by first (sort was declared before favouriteFuel). Now favouriteFuel, fuel, sort, favourite, distance — Favourites mode reads Fuel · Sort by · Favourite under either ordering mechanism. No encoding change (config keys are identifiers, order-independent).