Files
openclaw/test-fixtures/talk-config-contract.json
nimbleenigma aee61dcee0 fix: finalize android notification forwarding controls (#40175) (thanks @nimbleenigma)
* android(gateway): always send string payloadJSON for node.event

(cherry picked from commit 5ca5a0663ad8fbd9f9f654c52a72b423e1e19605)
(cherry picked from commit bce87e7493e52b0e5959548b410500db8d545a50)

* android: restore notification forwarding controls

(cherry picked from commit 98c4486f83d165919d7f8f1d713ff79ec8126ce7)

* android: restore notification picker discovery UX

(cherry picked from commit 276fbe3f80e036b666070a636c89ee073cdaa934)

* android: enforce notification forwarding policy in listener

(cherry picked from commit 502fb761e05ff911ebde2771eebb1e175ec4dbeb)

* fix(android): harden notification quiet hours inputs

(cherry picked from commit 717d5016f52e98601e6b6d678c991c78fa5ca429)

* fix(android): polish notification forwarding settings

(cherry picked from commit ad667899dea45af70fabfd43f43fa38024def23f)

* test: normalize talk config fixture API key placeholders

* fix(android): use persisted recent packages and wall-clock policy time

* fix(android): keep notification forwarding settings editable

* fix: finalize android notification forwarding controls (#40175) (thanks @nimbleenigma)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-30 10:00:00 +05:30

144 lines
3.1 KiB
JSON

{
"selectionCases": [
{
"id": "canonical_resolved_wins",
"defaultProvider": "elevenlabs",
"payloadValid": true,
"expectedSelection": {
"provider": "elevenlabs",
"normalizedPayload": true,
"voiceId": "voice-resolved",
"apiKey": "xxxxx"
},
"talk": {
"resolved": {
"provider": "elevenlabs",
"config": {
"voiceId": "voice-resolved",
"apiKey": "xxxxx"
}
},
"provider": "elevenlabs",
"providers": {
"elevenlabs": {
"voiceId": "voice-normalized",
"apiKey": "xxxxx"
}
},
"voiceId": "voice-legacy",
"apiKey": "xxxxx"
}
},
{
"id": "normalized_missing_resolved",
"defaultProvider": "elevenlabs",
"payloadValid": false,
"expectedSelection": null,
"talk": {
"provider": "elevenlabs",
"providers": {
"elevenlabs": {
"voiceId": "voice-normalized"
}
},
"voiceId": "voice-legacy"
}
},
{
"id": "provider_mismatch_missing_resolved",
"defaultProvider": "elevenlabs",
"payloadValid": false,
"expectedSelection": null,
"talk": {
"provider": "acme",
"providers": {
"elevenlabs": {
"voiceId": "voice-normalized"
}
}
}
},
{
"id": "ambiguous_providers_missing_resolved",
"defaultProvider": "elevenlabs",
"payloadValid": false,
"expectedSelection": null,
"talk": {
"providers": {
"acme": {
"voiceId": "voice-acme"
},
"elevenlabs": {
"voiceId": "voice-normalized"
}
}
}
},
{
"id": "legacy_payload_fallback",
"defaultProvider": "elevenlabs",
"payloadValid": true,
"expectedSelection": {
"provider": "elevenlabs",
"normalizedPayload": false,
"voiceId": "voice-legacy",
"apiKey": "xxxxx"
},
"talk": {
"voiceId": "voice-legacy",
"apiKey": "xxxxx"
}
}
],
"timeoutCases": [
{
"id": "integer_timeout_kept",
"fallback": 700,
"expectedTimeoutMs": 1500,
"talk": {
"silenceTimeoutMs": 1500
}
},
{
"id": "integer_like_double_timeout_kept",
"fallback": 700,
"expectedTimeoutMs": 1500,
"talk": {
"silenceTimeoutMs": 1500.0
}
},
{
"id": "zero_timeout_falls_back",
"fallback": 700,
"expectedTimeoutMs": 700,
"talk": {
"silenceTimeoutMs": 0
}
},
{
"id": "boolean_timeout_falls_back",
"fallback": 700,
"expectedTimeoutMs": 700,
"talk": {
"silenceTimeoutMs": true
}
},
{
"id": "string_timeout_falls_back",
"fallback": 700,
"expectedTimeoutMs": 700,
"talk": {
"silenceTimeoutMs": "1500"
}
},
{
"id": "fractional_timeout_falls_back",
"fallback": 700,
"expectedTimeoutMs": 700,
"talk": {
"silenceTimeoutMs": 1500.5
}
}
]
}