refactor: require canonical talk resolved payload

This commit is contained in:
Peter Steinberger
2026-03-08 16:08:22 +00:00
parent 87640f9a61
commit 8d3d742c6a
8 changed files with 18 additions and 72 deletions

View File

@@ -1996,7 +1996,7 @@ extension TalkModeManager {
let selection = Self.selectTalkProviderConfig(talk)
if talk != nil, selection == nil {
GatewayDiagnostics.log(
"talk config ignored: legacy payload unsupported on iOS beta; expected talk.provider/providers")
"talk config ignored: normalized payload missing talk.resolved")
}
let activeProvider = selection?.provider ?? Self.defaultTalkProvider
let activeConfig = selection?.config

View File

@@ -5,7 +5,7 @@ import Testing
private let iOSSilenceTimeoutMs = 900
@Suite struct TalkConfigParsingTests {
@Test func prefersNormalizedTalkProviderPayload() {
@Test func rejectsNormalizedTalkProviderPayloadWithoutResolved() {
let talk: [String: Any] = [
"provider": "elevenlabs",
"providers": [
@@ -20,8 +20,7 @@ private let iOSSilenceTimeoutMs = 900
TalkConfigParsing.bridgeFoundationDictionary(talk),
defaultProvider: "elevenlabs",
allowLegacyFallback: false)
#expect(selection?.provider == "elevenlabs")
#expect(selection?.config["voiceId"]?.stringValue == "voice-normalized")
#expect(selection == nil)
}
@Test func ignoresLegacyTalkFieldsWhenNormalizedPayloadMissing() {