I'm going through my code and making it so that every command can handle a deep invocation such as "Alexa, ask SKILLNAME to DO SOMETHING" rather than a generic launch + subsequent command (i.e. "Alexa, open SKILLNAME" followed by "Alexa, DO SOMETHING").
To handle this i've been checking handlerInput.requestEnvelope.session.new for true/false. This has worked as intended for every command EXCEPT when the command has completion delegation.
User: "Alexa, ask SKILLNAME to STARTAPROCESS" Alexa: "I need a little more information. Please provide EXTRAINFORMATION." User: "EXTRAINFORMATION"
Once the user provides EXTRAINFORMATION, the intent should start and session.new===true, in my opinion. Instead, it's showing as false.
This makes no sense to me. The person is launching the skill, alexa is gathering the required information for this launch, and then skill.new should be true, not false.
Can you help me understand why this would be or what the best practice is?