From 8a4c472ab3f462422b4e646914156077af803408 Mon Sep 17 00:00:00 2001 From: FuelBoard Contributor Date: Fri, 14 Aug 2026 14:50:31 +0100 Subject: [PATCH] =?UTF-8?q?Siri:=20allocation=20swap=20B=20=E2=80=94=20Dir?= =?UTF-8?q?ections-to-Cheapest=20voice=20phrases=20restored=20(per-fuel),?= =?UTF-8?q?=20favourite-directions=20phrases=20dropped=20(card=20button=20?= =?UTF-8?q?covers=20it)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BACKLOG.md | 6 +++-- FuelBoard/SiriShortcuts.swift | 42 ++++++++++++++++++----------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/BACKLOG.md b/BACKLOG.md index be1a2a5..a71f628 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -33,8 +33,10 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED. `FavouriteFuelPriceIntent`: TOP favourite per fuel (first in the manual Favourites order — `SiriCheapestLookup.topFavourite`, refresh-vs-dump with offline cached-snapshot fallback); no location required (distance shown only - when the saved fix exists). Also `DirectionsToFavouriteFuelIntent` (Maps - hand-off, station announced first). 4+4 App Shortcuts (generic + per-fuel). + when the saved fix exists). `DirectionsToFavouriteFuelIntent` (Maps + hand-off, station announced first) stays in code but carries no voice + phrases — every favourite price card has the interactive Directions button + (`6d7254e`), and the voice slots went to Directions-to-Cheapest (`c6bd634`). *DONE — favourites already carried station snapshots, so no `StationEntity` dependency.* - [ ] **Siri: on-screen awareness (View Annotations + StationEntity)** — iOS diff --git a/FuelBoard/SiriShortcuts.swift b/FuelBoard/SiriShortcuts.swift index 63831c1..2166d42 100644 --- a/FuelBoard/SiriShortcuts.swift +++ b/FuelBoard/SiriShortcuts.swift @@ -578,41 +578,43 @@ struct FuelBoardShortcuts: AppShortcutsProvider { systemImageName: "star.fill" ) - // Directions — only the FAVOURITE directions carry App Shortcut - // phrases: Apple caps app shortcuts at 10 (the metadata processor - // hard-fails past that), and the per-fuel cheapest-price + favourite - // price/directions entries cover the user's actual asks. The cheapest- - // directions and generic favourite intents below remain in code — - // still runnable from the Shortcuts action list, just without Siri - // phrases. Phrases use direction verbs ("directions to", "get - // directions") so they never collide with the price shortcut phrases. + // Directions — per-fuel CHEAPEST directions carry the App Shortcut + // phrases (the user's "directions to the cheapest X" asks). Apple caps + // app shortcuts at 10 (the metadata processor hard-fails past that); + // the favourite-directions path no longer needs phrases because every + // favourite price card carries the interactive Directions button + // (OpenDirectionsIntent, zero slots) — so the favourite directions + // intents below remain in code, still runnable from the Shortcuts + // action list and via the card button, just without Siri phrases. + // Phrases use direction verbs ("directions to", "get directions") so + // they never collide with the price shortcut phrases. AppShortcut( - intent: DirectionsToFavouriteFuelIntent(fuel: .e10), + intent: DirectionsToCheapestFuelIntent(fuel: .e10), phrases: [ - "Ask \(.applicationName) for directions to my favourite unleaded station", - "Get directions to my favourite petrol station \(.applicationName)", + "Ask \(.applicationName) for directions to the cheapest unleaded near me", + "Get directions to the cheapest petrol near me \(.applicationName)", ], - shortTitle: "Directions to Favourite Unleaded", + shortTitle: "Directions to Cheapest Unleaded", systemImageName: "map" ) AppShortcut( - intent: DirectionsToFavouriteFuelIntent(fuel: .e5), + intent: DirectionsToCheapestFuelIntent(fuel: .e5), phrases: [ - "Ask \(.applicationName) for directions to my favourite premium station", - "Get directions to my favourite super unleaded station \(.applicationName)", + "Ask \(.applicationName) for directions to the cheapest premium near me", + "Get directions to the cheapest super unleaded near me \(.applicationName)", ], - shortTitle: "Directions to Favourite Premium", + shortTitle: "Directions to Cheapest Premium", systemImageName: "map" ) AppShortcut( - intent: DirectionsToFavouriteFuelIntent(fuel: .diesel), + intent: DirectionsToCheapestFuelIntent(fuel: .diesel), phrases: [ - "Ask \(.applicationName) for directions to my favourite diesel station", - "Get directions to my favourite diesel station \(.applicationName)", + "Ask \(.applicationName) for directions to the cheapest diesel near me", + "Get directions to the cheapest diesel near me \(.applicationName)", ], - shortTitle: "Directions to Favourite Diesel", + shortTitle: "Directions to Cheapest Diesel", systemImageName: "map" ) }