Backlog: add Siri/Shortcuts features (P1-P3); mark widget config done
This commit is contained in:
+23
-5
@@ -11,14 +11,22 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
|||||||
|
|
||||||
## P1 — Soon
|
## P1 — Soon
|
||||||
|
|
||||||
- [ ] **EV charging?** — National Chargepoint Registry as a 4th "Charging" tab
|
- [ ] **Siri: "Cheapest [fuel] near me"** — `AppShortcutsProvider` + `CheapestFuelIntent`
|
||||||
(second relay endpoint, ~40k+ UK chargers, OGL, connector-type filter) vs fuel-only.
|
(App Intents, iOS 16+), dialog + price-card snippet, cached full-UK dump first
|
||||||
|
with freshness label ("as of 6am"), last-known-location fallback. Constraint:
|
||||||
|
fresh-data path needs a reachable source off-LAN — cached answers work anywhere
|
||||||
|
the app has previously fetched (see P3 data mirror).
|
||||||
|
- [ ] **Siri: "Closest [fuel] station"** — same plumbing as cheapest, sort by
|
||||||
|
distance instead of price. Free second phrase in the same `AppShortcutsProvider`.
|
||||||
|
|
||||||
## P2 — Later
|
## P2 — Later
|
||||||
|
|
||||||
- [ ] **Widget configuration** — let the widget's fuel be chosen per-widget
|
- [ ] **Shortcuts: station price lookup** — `StationEntity` + `EntityQuery` so
|
||||||
(App Intent `FuelSelectionIntent` + `StaticConfiguration` → `AppIntentConfiguration`),
|
Shortcuts/Siri pick a station by name; `ReturnsValue<Double>` enables user
|
||||||
instead of inheriting the app's selected fuel. Requires iOS 17 `AppIntentConfiguration`.
|
automations ("get cheapest diesel → notify").
|
||||||
|
- [ ] **Siri: favourite station price** — "What's diesel at my favourite station?"
|
||||||
|
(cheap once `StationEntity` exists).
|
||||||
|
|
||||||
- [ ] **CarPlay** — widgets render but can't launch Maps; consider a proper CarPlay
|
- [ ] **CarPlay** — widgets render but can't launch Maps; consider a proper CarPlay
|
||||||
scene (CPListTemplate) for navigation deep-links.
|
scene (CPListTemplate) for navigation deep-links.
|
||||||
- [ ] **Alert region tuning** — make alert trigger radius + dedup window
|
- [ ] **Alert region tuning** — make alert trigger radius + dedup window
|
||||||
@@ -33,6 +41,12 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
|||||||
|
|
||||||
## P3 — Ideas / Research
|
## P3 — Ideas / Research
|
||||||
|
|
||||||
|
- [ ] **Siri: create fuel alert** — voice-create an alert for a station. Deferred:
|
||||||
|
alert semantics (cheapest-within-radius + hourly dedup) are hard to express in
|
||||||
|
a dialog; needs the alert engine surfaced as an intent.
|
||||||
|
- [ ] **App Intents testing** — AppIntentsTesting (iOS 27) for intent coverage
|
||||||
|
instead of XCUITest when the Siri features land.
|
||||||
|
|
||||||
- [ ] **Production data mirror (GitHub)** — relay pushes the synced dump
|
- [ ] **Production data mirror (GitHub)** — relay pushes the synced dump
|
||||||
(`stations.json` + `latest.json` version pointer) to a PUBLIC GitHub repo; the
|
(`stations.json` + `latest.json` version pointer) to a PUBLIC GitHub repo; the
|
||||||
app fetches `raw.githubusercontent.com` with the LAN relay as fallback source.
|
app fetches `raw.githubusercontent.com` with the LAN relay as fallback source.
|
||||||
@@ -58,6 +72,10 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
|||||||
- [x] Switch dataset to govuk API data — official Fuel Finder OAuth API via
|
- [x] Switch dataset to govuk API data — official Fuel Finder OAuth API via
|
||||||
relay-api :8789 (source: api, ~8,012 stations); app baseURL → :8789; credentials
|
relay-api :8789 (source: api, ~8,012 stations); app baseURL → :8789; credentials
|
||||||
live in relay `.env` only, never in the IPA
|
live in relay `.env` only, never in the IPA
|
||||||
|
- [x] Widget configuration — per-widget fuel/sort/distance via
|
||||||
|
`WidgetConfigurationIntent` (`AppIntentConfiguration`), distance options as
|
||||||
|
`WidgetDistance` AppEntity (`26e724f`); small widget gained Favourites
|
||||||
|
(`d0bd4e7`) + `.systemMedium` (`b94f769`)
|
||||||
- [x] Unit test target for the app — FuelBoardShared XCTest target, 37 tests
|
- [x] Unit test target for the app — FuelBoardShared XCTest target, 37 tests
|
||||||
(title sanitizer, decode price guard, RAG thresholds, cheapest/closest baseline,
|
(title sanitizer, decode price guard, RAG thresholds, cheapest/closest baseline,
|
||||||
miles↔km)
|
miles↔km)
|
||||||
|
|||||||
Reference in New Issue
Block a user