feat: pluggable TTS engine interface #247
Quality Gate failed
Failed conditions
6 Security Hotspots
5.4% Duplication on New Code (required ≤ 3%)
Annotations
Check warning on line 26 in src/engine/EngineRegistry.ts
sonarqubecloud / SonarCloud Code Analysis
Member '_instances' is never reassigned; mark it as `readonly`.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy6I8C5q95abmHie&open=AZ1zfy6I8C5q95abmHie&pullRequest=247
Check warning on line 77 in src/services/generationToolLoop.ts
sonarqubecloud / SonarCloud Code Analysis
Replace this character class by the character itself.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy4h8C5q95abmHh7&open=AZ1zfy4h8C5q95abmHh7&pullRequest=247
Check warning on line 146 in src/engine/tts/engines/qwen3/Qwen3TTSEngine.ts
sonarqubecloud / SonarCloud Code Analysis
Complete the task associated to this "TODO" comment.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy518C5q95abmHiU&open=AZ1zfy518C5q95abmHiU&pullRequest=247
Check warning on line 92 in src/utils/messageContent.ts
sonarqubecloud / SonarCloud Code Analysis
Replace this character class by the character itself.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy9N8C5q95abmHjL&open=AZ1zfy9N8C5q95abmHjL&pullRequest=247
Check failure on line 83 in src/engine/tts/engines/kokoro/KokoroTTSBridge.tsx
sonarqubecloud / SonarCloud Code Analysis
Refactor this code to not nest functions more than 4 levels deep.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy5W8C5q95abmHiF&open=AZ1zfy5W8C5q95abmHiF&pullRequest=247
Check warning on line 4 in src/stores/ttsStore.ts
sonarqubecloud / SonarCloud Code Analysis
'../engine' imported multiple times.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy9w8C5q95abmHjQ&open=AZ1zfy9w8C5q95abmHjQ&pullRequest=247
Check warning on line 39 in src/components/NumericStepper.tsx
sonarqubecloud / SonarCloud Code Analysis
Prefer `Number.parseFloat` over `parseFloat`.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy248C5q95abmHhy&open=AZ1zfy248C5q95abmHhy&pullRequest=247
Check warning on line 114 in __tests__/unit/stores/ttsStore.test.ts
sonarqubecloud / SonarCloud Code Analysis
Don't use a zero fraction in the number.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfyuL8C5q95abmHhU&open=AZ1zfyuL8C5q95abmHhU&pullRequest=247
Check warning on line 152 in src/components/ChatInput/AudioModeLayout.tsx
sonarqubecloud / SonarCloud Code Analysis
Unexpected negated condition.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfyzc8C5q95abmHhj&open=AZ1zfyzc8C5q95abmHhj&pullRequest=247
Check warning on line 76 in src/screens/ChatScreen/useChatScreen.ts
sonarqubecloud / SonarCloud Code Analysis
Unexpected negated condition.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy678C5q95abmHii&open=AZ1zfy678C5q95abmHii&pullRequest=247
Check warning on line 176 in src/screens/TTSSettingsScreen/index.tsx
sonarqubecloud / SonarCloud Code Analysis
Unexpected negated condition.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy8m8C5q95abmHiw&open=AZ1zfy8m8C5q95abmHiw&pullRequest=247
Check warning on line 244 in src/services/ttsService.ts
sonarqubecloud / SonarCloud Code Analysis
Don't use a zero fraction in the number.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy3J8C5q95abmHhz&open=AZ1zfy3J8C5q95abmHhz&pullRequest=247
Check warning on line 115 in src/components/ChatInput/Popovers.tsx
sonarqubecloud / SonarCloud Code Analysis
Unexpected negated condition.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfyzK8C5q95abmHhh&open=AZ1zfyzK8C5q95abmHhh&pullRequest=247
Check warning on line 227 in src/screens/DownloadManagerScreen/items.tsx
sonarqubecloud / SonarCloud Code Analysis
Extract this nested ternary operation into an independent statement.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy7X8C5q95abmHiq&open=AZ1zfy7X8C5q95abmHiq&pullRequest=247
Check warning on line 59 in __tests__/unit/stores/ttsStore.test.ts
sonarqubecloud / SonarCloud Code Analysis
Unexpected empty class.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfyuL8C5q95abmHhS&open=AZ1zfyuL8C5q95abmHhS&pullRequest=247
Check warning on line 300 in src/services/ttsService.ts
sonarqubecloud / SonarCloud Code Analysis
Don't use a zero fraction in the number.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy3J8C5q95abmHh1&open=AZ1zfy3J8C5q95abmHh1&pullRequest=247
Check warning on line 17 in src/types/tts.ts
sonarqubecloud / SonarCloud Code Analysis
export statement without specifiers is not allowed.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy-x8C5q95abmHjX&open=AZ1zfy-x8C5q95abmHjX&pullRequest=247
Check warning on line 34 in src/components/NumericStepper.tsx
sonarqubecloud / SonarCloud Code Analysis
Prefer `Number.parseFloat` over `parseFloat`.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy248C5q95abmHhx&open=AZ1zfy248C5q95abmHhx&pullRequest=247
Check warning on line 140 in src/stores/ttsStore.ts
sonarqubecloud / SonarCloud Code Analysis
Don't use a zero fraction in the number.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy9w8C5q95abmHjS&open=AZ1zfy9w8C5q95abmHjS&pullRequest=247
Check warning on line 92 in src/utils/messageContent.ts
sonarqubecloud / SonarCloud Code Analysis
Prefer `String#replaceAll()` over `String#replace()`.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy9N8C5q95abmHjJ&open=AZ1zfy9N8C5q95abmHjJ&pullRequest=247
Check warning on line 7 in src/engine/tts/engines/qwen3/models.ts
sonarqubecloud / SonarCloud Code Analysis
Complete the task associated to this "TODO" comment.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy5-8C5q95abmHic&open=AZ1zfy5-8C5q95abmHic&pullRequest=247
Check warning on line 15 in src/engine/tts/engines/kokoro/KokoroTTSBridge.tsx
sonarqubecloud / SonarCloud Code Analysis
'react-native-executorch' imported multiple times.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy5W8C5q95abmHiC&open=AZ1zfy5W8C5q95abmHiC&pullRequest=247
Check warning on line 243 in src/screens/ChatScreen/useChatScreen.ts
sonarqubecloud / SonarCloud Code Analysis
Prefer using an optional chain expression instead, as it's more concise and easier to read.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy678C5q95abmHik&open=AZ1zfy678C5q95abmHik&pullRequest=247
Check warning on line 287 in src/engine/tts/engines/qwen3/Qwen3TTSEngine.ts
sonarqubecloud / SonarCloud Code Analysis
Complete the task associated to this "TODO" comment.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy518C5q95abmHiW&open=AZ1zfy518C5q95abmHiW&pullRequest=247
Check warning on line 225 in src/screens/DownloadManagerScreen/items.tsx
sonarqubecloud / SonarCloud Code Analysis
Extract this nested ternary operation into an independent statement.
See more on https://sonarcloud.io/project/issues?id=alichherawalla_off-grid-mobile&issues=AZ1zfy7X8C5q95abmHio&open=AZ1zfy7X8C5q95abmHio&pullRequest=247