feat(tts): add TTS buttons to PlanView and FilesView markdown preview with configurable input mode (#1443)
Add TTS controls to markdown preview surfaces so users can listen to plans and markdown files directly from the preview toolbar. Changes: - Add read-aloud / stop buttons to PlanView markdown preview. - Add read-aloud / stop buttons to FilesView markdown preview for markdown files. - Respect the existing showMessageTTSButtons preference in both preview views. - Add a persisted ttsInputMode setting with sanitized/raw modes. - Keep sanitized mode as the default for backward compatibility. - Allow raw markdown only for server TTS providers that can handle markdown. - Always use sanitized text for browser and macOS say fallback paths. - Add Voice Settings controls for TTS input mode. - Add i18n keys for the new preview buttons and setting labels. - Merge latest main and preserve newer FilesView toolbar/editor changes. Validation: - bun test packages/ui/src/stores/useConfigStore.test.ts packages/ui/src/components/chat/message/parts/ToolPart.test.ts packages/web/server/lib/tts/routes.test.js - bun run type-check - bun run lint - git diff --check --------- Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
This commit is contained in:
committed by
GitHub
co-authored by
Bohdan Triapitsyn
parent
a6bf73b245
commit
ba95e13b36
@@ -714,6 +714,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.messageBody.tts.stopSpeaking': 'Przestań mówić',
|
||||
'chat.messageBody.tts.readAloud': 'Czytaj na głos',
|
||||
'chat.messageBody.tts.readAloudWithProvider': 'Czytaj na głos ({provider} voice)',
|
||||
'planView.tts.readAloud': 'Czytaj plan na głos',
|
||||
'planView.tts.stopSpeaking': 'Zatrzymaj czytanie',
|
||||
'filesView.tts.readAloud': 'Czytaj plik na głos',
|
||||
'filesView.tts.stopSpeaking': 'Zatrzymaj czytanie',
|
||||
'chat.messageBody.toast.noProject': 'Nie znaleziono projektu dla tej sesji',
|
||||
'chat.messageBody.toast.savePlanFailed': 'Nie udało się zapisać planu',
|
||||
'chat.messageBody.toast.planSaved': 'Plan zapisany',
|
||||
|
||||
Reference in New Issue
Block a user