flutter_assistant_intents 1.4.0 copy "flutter_assistant_intents: ^1.4.0" to clipboard
flutter_assistant_intents: ^1.4.0 copied to clipboard

Expose task-app actions to voice assistants — iOS App Intents (Siri, Spotlight, Shortcuts) and Android app shortcuts — with typed Dart handlers.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.4.0 - 2026-08-24 #

Added #

  • Confirmation prompts (iOS 26+). A handler can answer with AssistantTaskResult.needsConfirmation(dialog:, options:) instead of an outcome. The assistant speaks the question, offers the AssistantChoice options, and calls the same handler again with the picked option's id in request.choice. Backed by the requestChoice(between:dialog:) API introduced in the iOS 26 App Intents framework.
  • AssistantChoice and AssistantChoiceStyle (normal, destructive, cancel), plus the shared AssistantChoice.cancel option. Unknown style names decode to normal, so a newer native side cannot break an older Dart side.
  • choice on AddTaskRequest, CompleteTaskRequest and AssistantActionRequest: null on the first call, the chosen option id on the follow-up.
  • AppIntentConfirming on the Swift side. The built-in intents adopt it; host apps declaring their own intents add the conformance and pass confirming: self to AssistantIntentBridge to get prompts too.

Changed #

  • flutter_lints raised to ^6.0.0; the package analyzes clean under the stricter rule set.

Notes #

  • Where a prompt cannot be shown (iOS below 26, Android shortcuts, or a call site that passes no intent), the action stays unperformed and the assistant speaks the fallbackMessage. That is the safe default for the destructive operations confirmations are meant for.
  • A single intent run resolves at most 3 confirmation rounds, so a handler that keeps asking cannot trap the user in a dialog loop.

1.3.1 - 2026-07-14 #

Added #

  • Generator cleanup: previously generated files are tracked in a manifest (.dart_tool/flutter_assistant_intents/outputs.json); when output paths change, stale files are deleted and their project.pbxproj entries removed — but ONLY files still carrying the // GENERATED by … marker. Hand-written files at old paths are never touched.

1.3.0 - 2026-07-14 #

Fixed #

  • Siri routed "Add a task in Siri's built-in Reminders domain claims utterances that open with "add/create a task", so the trailing app name never reached AddTaskIntent. The add-task shortcut now also advertises app-name-first phrases ("Add a

[1.3.0] - 2026-07-14 #

Added #

  • YAML-driven code generation (dart run flutter_assistant_intents:generate): declare actions once in assistant_intents.yaml and the tool generates the Runner's Swift App Intents (typed parameters, Siri phrases, task preset as package re-export or wrappers), registers the file in project.pbxproj (idempotent), and emits Dart glue (action-id constants + generatedAndroidShortcuts). --init scaffolds a starter config; validation enforces Apple's phrase-token and 10-shortcut rules.
  • New dependency: yaml (used by the generator CLI).

1.2.0 - 2026-07-13 #

Added #

  • Swift Package Manager support on iOS (dual with CocoaPods): sources moved to ios/flutter_assistant_intents/Sources/… with a Package.swift; the podspec points at the same sources, so both integrations work.

1.1.0 - 2026-07-13 #

Added #

  • iOS cold-start support: the plugin can boot a headless FlutterEngine when Siri runs an intent while the app process is not alive. Enable with FlutterAssistantIntentsPlugin.setPluginRegistrantCallback (optionally with a dedicated Dart entrypoint); a handlers.sync handshake removes the engine-boot race.

1.0.0 - 2026-07-13 #

First stable release — API considered stable from here on (SemVer).

Changed #

  • Promoted 0.1.0 to stable with no API changes: task preset (onAddTask / onCompleteTask / onQueryTasks) + generic action layer (onAction, custom iOS intents via AssistantIntentBridge.performAction, Dart-defined custom Android shortcuts).

0.1.0 - 2026-07-13 #

Added #

  • Typed Dart handler API: AssistantIntents.instance.registerHandlers(...) with optional onAddTask, onCompleteTask, onQueryTasks callbacks (task preset) and a generic onAction callback for app-defined actions.
  • Typed models: AddTaskRequest, CompleteTaskRequest, QueryTasksRequest, AssistantActionRequest, AssistantTask, AssistantTaskResult, TaskQueryFilter, AndroidShortcutsConfig, AndroidCustomShortcut.
  • iOS (16+): App Intents implementation — AddTaskIntent (title, due date, notes), CompleteTaskIntent, QueryTasksIntent, an AppShortcutsProvider with app-name-based invocation phrases (short titles + SF Symbols), and FlutterAssistantIntentsPackage (AppIntentsPackage) for host re-export.
  • iOS: public AssistantIntentBridge.performAction(id:parameters:) so host apps can declare custom intents with their own Siri phrases whose logic lives in Dart; hard 10 s timeout on every Dart round-trip so a silent handler can never hang Siri.
  • Android: dynamic app shortcuts ("Add task", "Today") published additively via ShortcutManagerCompat.pushDynamicShortcut (host shortcuts are never replaced), with icons and ranks; fully Dart-defined custom shortcuts routed to onAction.
  • updateShortcuts() — no-op-safe refresh of platform shortcut donations with configurable Android labels, task-preset opt-out and custom shortcuts.
  • Runnable example/ app (Android + iOS hosts) demonstrating the task preset, the generic action layer and the required iOS AppIntentsPackage re-export.
  • Dart-layer tests with a mocked method channel.
2
likes
160
points
18k
downloads

Documentation

API reference

Publisher

verified publisherravenlab.tech

Weekly Downloads

Expose task-app actions to voice assistants — iOS App Intents (Siri, Spotlight, Shortcuts) and Android app shortcuts — with typed Dart handlers.

Repository (GitHub)
View/report issues
Contributing

Topics

#siri #shortcuts #app-intents #voice-assistant #deep-linking

License

MIT (license)

Dependencies

flutter, yaml

More

Packages that depend on flutter_assistant_intents

Packages that implement flutter_assistant_intents