You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Voice-only channels (e.g., `voice-call` extension) are unusable without STT (inbound voice → text) and TTS (outbound text → voice). Today:
No `voiceOnly` capability field exists on `ChannelCapabilities`
No validation during onboarding or channel setup that TTS/STT credentials are configured
Errors only surface lazily at runtime when an agent tries to use the channel
STT config is plugin-specific (voice-call only), not global
TTS has a free fallback (Edge) but STT has none — voice channels silently break without STT credentials
After #424 (STT as middleware) and #402/#403 (TTS auth unification), both STT and TTS credentials live in the global auth profile store. Voice-only channels should validate that the required auth profiles exist.
Problem
Voice-only channels (e.g., `voice-call` extension) are unusable without STT (inbound voice → text) and TTS (outbound text → voice). Today:
After #424 (STT as middleware) and #402/#403 (TTS auth unification), both STT and TTS credentials live in the global auth profile store. Voice-only channels should validate that the required auth profiles exist.
Scope
1. Add `voiceOnly` to `ChannelCapabilities`
`src/channels/plugins/types.core.ts`:
```typescript
export type ChannelCapabilities = {
chatTypes: Array<ChatType | "thread">;
voiceOnly?: boolean; // channel only supports voice I/O
// ... existing fields
};
```
`voice-call` extension sets `voiceOnly: true` in its capabilities.
2. Validation at channel enable time
When a channel with `voiceOnly: true` is enabled (onboarding or `remoteclaw channels add`):
3. Runtime validation
Before accepting messages for a voice-only channel:
4. Health check integration
`remoteclaw doctor` should flag:
Design notes
Depends on
Related