App intent with parameter launches app before taking user input

I built a couple of app intents for macOS, which generally work great. However, I'm struggling with configuring an app intent that takes a parameter, so that it doesn't require the app to launch before presenting people with the list of options.

If the app is running and I run the intent in Spotlight, I can see the message defined by the intent's parameterSummary and I can select a parameter from the list of entities.

If the app is not running, it is launched first and only then the intent message fully populates in Spotlight and allows parameter selection.

What I've tried:

  • Support background or deferred mode in the intent.
  • Conformed the entities to IndexedEntity.
  • Conformed the entity query to EnumerableEntityQuery, implementing suggestedEntities and allEntities.
  • Conformed the entity query to EntityStringQuery.
  • Donated the intent to Spotlight on app launch.
  • Donated the entities to Spotlight on app launch, both using indexSearchableItems and indexAppEntities. Not sure if both are required or if the latter is just a more convenient version of the former.

Do I have to conform to or implement something else?

Do I need to work with an app intent extension? If so, would I put all app intent code into the extension instead of the main app?

Is this a system bug I should file?

App intent with parameter launches app before taking user input
 
 
Q