STConversationRunner Release-Candidate QA
Status
The STConversationRunner reference has completed its semantic editorial pass against the current authoritative STConversationRunner.swift, STConversationCallback.swift, STResourceCategory.swift, and STSRData.swift sources.
API coverage
The reference covers the complete working public STConversationRunner method surface, the full STConversationCallback protocol, and the supporting Conversation-specific public types available in the source set.
Lifecycle consistency
The documentation consistently distinguishes:
- calls that require
initialize(); - configuration loaders that additionally require an idle Conversation;
runConversation(), which requires initialization, framework permission, and idle state;pauseConversation(), which requires active state;- stop/resume/interrupt no-op behavior in applicable idle/stopping states; and
setBackgroundAudioEnabled(_:), which intentionally can be called before initialization.
Permission consistency
Permission request methods may return a pending result. Pending is an asynchronous state, not a final denial. Resolved permission state is surfaced through STConversationCallback.
Layering consistency
STConversationRunner pages explain Conversation orchestration. Lower-level playback/recording/synthesis/ recognition semantics are linked conceptually to STMediaRunner rather than duplicated. Declarative schema, defaults, precedence, and transition behavior remain owned by the Configuration Reference.
Callback consistency
The callback reference distinguishes observational callbacks from callbacks that participate in an immediate Conversation decision. Conversation-critical changes must be completed before the callback returns when the current runtime operation depends on them.
Release gate
Before final publication, compare declarations against the exact shipping Swift interface and run the generated website's link checker. Those are release-build validation steps rather than unresolved semantic-documentation work.