The open-source AI voice studio. Clone, dictate, create.
565 matches across 12 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | landing/src/components/CapturesMockup.tsx | 23 | // ─── Sidebar (matches ControlUI exactly) ─────────────────────────────────── |
| MEDIUM | landing/src/components/CapturesMockup.tsx | 81 | // ─── FakeWaveform (ported from CapturesTab.tsx) ──────────────────────────── |
| MEDIUM | landing/src/components/CapturesMockup.tsx | 119 | // ─── Data ─────────────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/CapturesMockup.tsx | 235 | // ─── Capture list row ─────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/CapturesMockup.tsx | 274 | // ─── Detail view ──────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/CapturesMockup.tsx | 405 | // ─── Main mockup ──────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 7 | // ─── Lazy load wrapper ────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 44 | // ─── Animation: Voice Cloning ─────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 114 | // ─── Mini waveform for clips ──────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 175 | // ─── Animation: Stories Editor ─────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 453 | // ─── Animation: Effects Pipeline ──────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 547 | // ─── Animation: Local or Remote ───────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 602 | // ─── Animation: Transcription ─────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 648 | // ─── Animation: Unlimited Length ───────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 761 | // ─── Feature data ─────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 808 | // ─── Feature Card ─────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Features.tsx | 832 | // ─── Features Section ─────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/VoiceCreator.tsx | 7 | // ─── Waveform bars generator ──────────────────────────────────────────────── |
| MEDIUM | landing/src/components/VoiceCreator.tsx | 25 | // ─── Animated waveform background ─────────────────────────────────────────── |
| MEDIUM | landing/src/components/VoiceCreator.tsx | 65 | // ─── Tab content panels ───────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/VoiceCreator.tsx | 350 | // ─── Tab selector ─────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/VoiceCreator.tsx | 360 | // ─── Main section ─────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Personalities.tsx | 7 | // ─── Modes ────────────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Personalities.tsx | 44 | // ─── Persona card ─────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Personalities.tsx | 70 | // ─── Mode demo ────────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Personalities.tsx | 151 | // ─── Bullets ──────────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/Personalities.tsx | 168 | // ─── Section ──────────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/AgentIntegration.tsx | 7 | // ─── Scenarios (the agent console cycles through these) ──────────────────── |
| MEDIUM | landing/src/components/AgentIntegration.tsx | 61 | // ─── Console mockup ───────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/AgentIntegration.tsx | 112 | // ─── Desktop-floating pill stage ──────────────────────────────────────────── |
| MEDIUM | landing/src/components/AgentIntegration.tsx | 194 | // ─── Code panel ───────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/AgentIntegration.tsx | 253 | // ─── Support bullets ──────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/AgentIntegration.tsx | 276 | // ─── Section ──────────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/ControlUI.tsx | 22 | // ─── Data ─────────────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/ControlUI.tsx | 246 | // ─── Phase system ─────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/ControlUI.tsx | 259 | // ─── Typewriter ───────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/ControlUI.tsx | 290 | // ─── Loading bars (simplified react-loaders replacement) ──────────────────── |
| MEDIUM | landing/src/components/ControlUI.tsx | 320 | // ─── Profile Card ─────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/ControlUI.tsx | 361 | // ─── History Row ──────────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/ControlUI.tsx | 434 | // ─── Floating Generate Box ────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/ControlUI.tsx | 522 | // ─── Main ControlUI ───────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/CaptureSection.tsx | 7 | // ─── Hero: Hotkey Pill ────────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/CaptureSection.tsx | 150 | // ─── Card: Whisper, sized for every machine ──────────────────────────────── |
| MEDIUM | landing/src/components/CaptureSection.tsx | 213 | // ─── Card: LLM Refinement ─────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/CaptureSection.tsx | 295 | // ─── Card: Agent voice output ─────────────────────────────────────────────── |
| MEDIUM | landing/src/components/CaptureSection.tsx | 400 | // ─── Feature data + card ──────────────────────────────────────────────────── |
| MEDIUM | landing/src/components/CaptureSection.tsx | 445 | // ─── Section ──────────────────────────────────────────────────────────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 15 | // ── Tag definitions ───────────────────────────────────────────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 33 | // ── Helpers ───────────────────────────────────────────────────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 107 | // ── Component ─────────────────────────────────────────────────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 152 | // ── Sync external value → editor ────────────────────────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 163 | // ── Emit plain-text value on input ──────────────────────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 172 | // ── Insert a tag badge at the caret ─────────────────────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 217 | // ── Handle keydown for autocomplete navigation ──────────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 253 | // ── Handle input (check for / trigger) ──────────────────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 285 | // ── Handle paste — convert [tag] patterns to badges ─────────── |
| MEDIUM | app/src/components/Generation/ParalinguisticInput.tsx | 324 | // ── Show placeholder ────────────────────────────────────────── |
| MEDIUM | app/src/lib/constants/languages.ts | 84 | // ── Backwards-compatible exports used elsewhere ────────────────────── |
| MEDIUM | app/src/lib/api/client.ts | 134 | // ── Personality-driven text generation ───────────────────────────── |
| MEDIUM | backend/models.py | 392 | # ── Profile personality endpoint ────────────────────────────────────── |
| 41 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | backend/server.py | 21 | except Exception: |
| LOW | backend/server.py | 83 | except Exception as e: |
| LOW | backend/server.py | 128 | except Exception: |
| LOW | backend/server.py | 301 | except Exception as e: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 70 | except Exception: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 287 | except Exception: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 315 | except Exception as e: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 385 | except Exception as e: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 446 | except Exception as e: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 462 | except Exception as e: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 507 | except Exception as e: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 524 | except Exception as _e: |
| LOW | backend/app.py | 205 | except Exception: |
| LOW | backend/app.py | 259 | except Exception as e: |
| LOW | backend/app.py | 282 | except Exception as e: |
| LOW | backend/app.py | 291 | except Exception as e: |
| LOW | backend/app.py | 302 | except Exception: |
| LOW | backend/app.py | 306 | except Exception: |
| LOW | backend/app.py | 310 | except Exception: |
| LOW | backend/pyi_rth_numpy_compat.py | 90 | except Exception: |
| LOW | backend/backends/mlx_backend.py | 245 | except Exception as e: |
| LOW | backend/backends/__init__.py | 621 | except Exception: |
| LOW | backend/backends/base.py | 75 | except Exception as e: |
| LOW | backend/backends/base.py | 279 | except Exception as e: |
| MEDIUM | backend/tests/test_whisper_download.py | 23 | print(f"Error: SSE endpoint returned {response.status_code}") |
| LOW | backend/tests/test_whisper_download.py | 71 | except Exception as e: |
| LOW | backend/tests/test_generation_download.py | 59 | except Exception as e: |
| LOW | backend/tests/test_generation_download.py | 104 | except Exception as e: |
| LOW | backend/tests/test_generation_download.py | 120 | except Exception as e: |
| MEDIUM | backend/tests/test_generation_download.py | 121 | print(f"Error getting profiles: {e}") |
| LOW | backend/tests/test_generation_download.py | 132 | except Exception as e: |
| LOW | backend/tests/test_progress.py | 263 | except Exception as e: |
| LOW | backend/tests/test_progress.py | 270 | except Exception as e: |
| LOW | backend/tests/test_progress.py | 277 | except Exception as e: |
| LOW | backend/tests/test_progress.py | 284 | except Exception as e: |
| LOW | backend/tests/test_offline_guard.py | 91 | except Exception as exc: # noqa: BLE001 |
| LOW | backend/tests/test_offline_guard.py | 98 | except Exception as exc: # noqa: BLE001 |
| MEDIUM | backend/tests/test_offline_guard.py | 85 | def slow(): |
| MEDIUM | backend/tests/test_offline_guard.py | 94 | def fast(): |
| LOW | backend/tests/test_refinement_samples.py | 339 | except Exception: |
| LOW | backend/tests/test_refinement_samples.py | 434 | except Exception as e: |
| LOW | backend/tests/test_all_models_e2e.py | 185 | except Exception as e: |
| LOW | backend/tests/test_all_models_e2e.py | 200 | except Exception: |
| LOW | backend/tests/test_all_models_e2e.py | 597 | except Exception: |
| LOW | backend/tests/test_all_models_e2e.py | 600 | except Exception as e: |
| LOW | backend/tests/test_personality_samples.py | 204 | except Exception: |
| LOW | backend/tests/test_personality_samples.py | 239 | except Exception as e: |
| LOW | backend/tests/test_personality_samples.py | 316 | except Exception as e: |
| LOW | backend/tests/test_qwen_download.py | 89 | except Exception as e: |
| LOW | backend/tests/test_qwen_download.py | 107 | except Exception as e: |
| LOW | backend/tests/test_qwen_download.py | 130 | except Exception as e: |
| LOW | backend/tests/test_qwen_download.py | 145 | except Exception as e: |
| LOW | backend/tests/test_qwen_download.py | 156 | except Exception: |
| LOW | backend/utils/cache.py | 70 | except Exception: |
| LOW | backend/utils/cache.py | 116 | except Exception as e: |
| LOW | backend/utils/cache.py | 124 | except Exception as e: |
| LOW | backend/utils/cache.py | 150 | except Exception as e: |
| LOW | backend/utils/images.py | 43 | except Exception as e: |
| LOW | backend/utils/hf_offline_patch.py | 183 | except Exception as exc: |
| LOW | backend/utils/hf_offline_patch.py | 235 | except Exception: |
| 80 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/src/stores/serverStore.ts | 49 | export function isLoopbackVoiceboxServerUrl(url: string): boolean { |
| LOW | …components/InputMonitoringGate/InputMonitoringGate.tsx | 18 | export function useInputMonitoringPermission() { |
| LOW | app/src/components/ServerSettings/ModelManagement.tsx | 49 | async function fetchHuggingFaceModelInfo(repoId: string): Promise<HuggingFaceModelInfo> { |
| LOW | …src/components/AccessibilityGate/AccessibilityGate.tsx | 23 | export function useAccessibilityPermission() { |
| LOW | …components/CapturesTab/DictationReadinessChecklist.tsx | 83 | export function DictationReadinessChecklist({ |
| LOW | app/src/components/Generation/EngineModelSelector.tsx | 162 | export function isProfileCompatibleWithEngine( |
| LOW | app/src/lib/constants/languages.ts | 76 | export function getLanguageOptionsForEngine(engine: string) { |
| LOW | app/src/lib/hooks/useHistory.ts | 32 | export function useClearFailedGenerations() { |
| LOW | app/src/lib/hooks/useCaptureRecordingSession.ts | 100 | export function useCaptureRecordingSession( |
| LOW | backend/config.py | 25 | def _path_relative_to_any_data_dir(path: Path) -> Path | None: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 226 | def _patch_scipy_distn_source(source: str) -> str: |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 239 | def _patch_masking_utils_source(source: str) -> str: |
| LOW | backend/database/seed.py | 12 | def backfill_generation_versions(SessionLocal, Generation, GenerationVersion) -> None: |
| LOW | backend/database/migrations.py | 197 | def _migrate_generation_versions(engine, inspector, tables: set[str]) -> None: |
| LOW | backend/database/migrations.py | 205 | def _migrate_capture_settings(engine, inspector, tables: set[str]) -> None: |
| LOW | backend/backends/__init__.py | 259 | def _get_qwen_custom_voice_configs() -> list[ModelConfig]: |
| LOW | backend/backends/__init__.py | 285 | def _get_non_qwen_tts_configs() -> list[ModelConfig]: |
| LOW | backend/backends/__init__.py | 524 | async def ensure_model_cached_or_raise(engine: str, model_size: str = "default") -> None: |
| LOW | backend/backends/__init__.py | 655 | def get_tts_backend_for_engine(engine: str) -> TTSBackend: |
| LOW | backend/backends/__init__.py | 747 | def get_llm_backend_for_engine(engine: str) -> LLMBackend: |
| LOW | backend/tests/test_cors.py | 63 | def client_with_custom_origins(): |
| LOW | backend/tests/test_cors.py | 118 | def test_credentials_header_present(self, client): |
| LOW | backend/tests/test_cors.py | 126 | def test_custom_origin_allowed(self, client_with_custom_origins): |
| LOW | backend/tests/test_cors.py | 130 | def test_other_custom_origin_allowed(self, client_with_custom_origins): |
| LOW | backend/tests/test_cors.py | 134 | def test_default_origins_still_work(self, client_with_custom_origins): |
| LOW | backend/tests/test_cors.py | 138 | def test_unlisted_origin_still_blocked(self, client_with_custom_origins): |
| LOW | backend/tests/test_cors.py | 158 | def test_trailing_comma_ignored(self): |
| LOW | backend/tests/test_offline_patch.py | 45 | def test_suppresses_offline_mode_is_enabled(monkeypatch): |
| LOW | backend/tests/test_offline_patch.py | 62 | def test_suppresses_connection_errors(monkeypatch): |
| LOW | backend/tests/test_offline_patch.py | 79 | def test_passthrough_on_success(monkeypatch): |
| LOW | backend/tests/test_offline_patch.py | 105 | def test_missing_method_is_noop(monkeypatch): |
| LOW | backend/tests/test_generation_download.py | 142 | async def test_generation_with_cached_model(): |
| LOW | backend/tests/test_generation_download.py | 196 | async def test_generation_with_fresh_download(): |
| LOW | backend/tests/test_audio_preprocess.py | 32 | def test_peak_cap_scales_hot_input(): |
| LOW | backend/tests/test_audio_preprocess.py | 38 | def test_peak_cap_leaves_moderate_input_untouched(): |
| LOW | backend/tests/test_audio_preprocess.py | 50 | def test_silence_is_trimmed_with_padding_kept(): |
| LOW | backend/tests/test_audio_preprocess.py | 61 | def test_clean_audio_is_not_padded_past_original_length(): |
| LOW | backend/tests/test_audio_preprocess.py | 70 | def test_empty_input_returns_empty(): |
| LOW | backend/tests/test_audio_preprocess.py | 75 | def test_validate_accepts_previously_rejected_hot_file(tmp_path): |
| LOW | backend/tests/test_audio_preprocess.py | 88 | def test_validate_still_rejects_silent_input(tmp_path): |
| LOW | backend/tests/test_audio_preprocess.py | 100 | def test_validate_rejects_too_short(tmp_path): |
| LOW | backend/tests/test_task_queue_cancellation.py | 9 | async def test_cancel_queued_generation_skips_execution(): |
| LOW | backend/tests/test_task_queue_cancellation.py | 36 | async def test_cancel_running_generation_cancels_task(): |
| LOW | backend/tests/test_progress.py | 21 | def test_progress_manager_basic(): |
| LOW | backend/tests/test_progress.py | 57 | async def test_progress_manager_sse(): |
| LOW | backend/tests/test_profile_duplicate_names.py | 54 | async def test_create_profile_duplicate_name_raises_error(test_db, mock_profiles_dir): |
| LOW | backend/tests/test_profile_duplicate_names.py | 83 | async def test_create_profile_different_names_succeeds(test_db, mock_profiles_dir): |
| LOW | backend/tests/test_profile_duplicate_names.py | 110 | async def test_update_profile_to_duplicate_name_raises_error(test_db, mock_profiles_dir): |
| LOW | backend/tests/test_profile_duplicate_names.py | 143 | async def test_update_profile_keep_same_name_succeeds(test_db, mock_profiles_dir): |
| LOW | backend/tests/test_profile_duplicate_names.py | 170 | async def test_update_profile_to_new_unique_name_succeeds(test_db, mock_profiles_dir): |
| LOW | backend/tests/test_profile_duplicate_names.py | 196 | async def test_case_sensitive_names_allowed(test_db, mock_profiles_dir): |
| LOW | backend/tests/test_client_id_middleware.py | 25 | def test_mcp_semantic_paths_are_stamped(path: str) -> None: |
| LOW | backend/tests/test_client_id_middleware.py | 48 | def test_other_paths_are_not_stamped(path: str) -> None: |
| LOW | backend/tests/test_offline_guard.py | 39 | def test_mutates_cached_huggingface_hub_constant(): |
| LOW | backend/tests/test_offline_guard.py | 46 | def test_mutates_cached_transformers_constant(): |
| LOW | backend/tests/test_offline_guard.py | 60 | def test_noop_when_not_cached(): |
| LOW | backend/tests/test_offline_guard.py | 66 | def test_nested_contexts_respect_refcount(): |
| LOW | backend/tests/test_offline_guard.py | 77 | def test_concurrent_threads_share_offline_window(): |
| LOW | backend/tests/test_refinement_collapse.py | 17 | def test_single_word_loop_stripped(): |
| LOW | backend/tests/test_refinement_collapse.py | 22 | def test_single_word_loop_with_punctuation_normalized(): |
| 57 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | backend/app.py | 200 | |
| LOW | backend/main.py | 10 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 8 | |
| LOW | backend/database/__init__.py | 26 | |
| LOW | backend/database/__init__.py | 26 | |
| LOW | backend/database/__init__.py | 26 | |
| LOW | backend/database/__init__.py | 26 | |
| LOW | backend/database/__init__.py | 26 | |
| LOW | backend/backends/chatterbox_backend.py | 17 | |
| LOW | backend/backends/chatterbox_turbo_backend.py | 17 | |
| LOW | backend/backends/kokoro_backend.py | 20 | |
| LOW | backend/backends/kokoro_backend.py | 25 | |
| LOW | backend/backends/qwen_llm_backend.py | 14 | |
| LOW | backend/backends/qwen_llm_backend.py | 15 | |
| LOW | backend/backends/hume_backend.py | 23 | |
| LOW | backend/backends/pytorch_backend.py | 13 | |
| LOW | backend/backends/pytorch_backend.py | 13 | |
| LOW | backend/backends/mlx_backend.py | 5 | |
| LOW | backend/backends/mlx_backend.py | 20 | |
| LOW | backend/backends/mlx_backend.py | 20 | |
| LOW | backend/backends/__init__.py | 13 | |
| LOW | backend/backends/luxtts_backend.py | 14 | |
| LOW | backend/backends/qwen_custom_voice_backend.py | 24 | |
| LOW | backend/backends/base.py | 12 | |
| LOW | backend/backends/base.py | 106 | |
| LOW | backend/tests/test_cors.py | 15 | |
| LOW | backend/tests/test_cors.py | 17 | |
| LOW | backend/tests/test_whisper_download.py | 8 | |
| LOW | backend/tests/test_generation_download.py | 11 | |
| LOW | backend/tests/test_profile_duplicate_names.py | 19 | |
| LOW | backend/tests/test_refinement_samples.py | 27 | |
| LOW | backend/tests/test_all_models_e2e.py | 13 | |
| LOW | backend/tests/test_all_models_e2e.py | 28 | |
| LOW | backend/tests/test_personality_samples.py | 25 | |
| LOW | backend/utils/effects.py | 20 | |
| LOW | backend/utils/platform_detect.py | 28 | |
| LOW | backend/utils/hf_offline_patch.py | 199 | |
| LOW | backend/utils/progress.py | 5 | |
| LOW | backend/utils/progress.py | 6 | |
| LOW | backend/utils/capture_chords.py | 3 | |
| LOW | backend/mcp_shim/__main__.py | 16 | |
| LOW | backend/routes/speak.py | 9 | |
| LOW | backend/routes/models.py | 7 | |
| LOW | backend/routes/models.py | 9 | |
| LOW | backend/routes/health.py | 9 | |
| 22 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | backend/server.py | 102 | |
| LOW | backend/server.py | 132 | |
| LOW | backend/server.py | 164 | |
| LOW | backend/pyi_rth_numpy_compat.py | 35 | |
| LOW | backend/database/seed.py | 50 | |
| LOW | backend/database/migrations.py | 65 | |
| LOW | backend/database/migrations.py | 295 | |
| LOW | backend/backends/chatterbox_backend.py | 73 | |
| LOW | backend/backends/chatterbox_turbo_backend.py | 73 | |
| LOW | backend/backends/hume_backend.py | 204 | |
| LOW | backend/backends/hume_backend.py | 228 | |
| LOW | backend/backends/pytorch_backend.py | 138 | |
| LOW | backend/backends/mlx_backend.py | 115 | |
| LOW | backend/backends/mlx_backend.py | 169 | |
| LOW | backend/backends/mlx_backend.py | 194 | |
| LOW | backend/backends/__init__.py | 655 | |
| LOW | backend/backends/base.py | 24 | |
| LOW | backend/tests/test_generation_download.py | 15 | |
| LOW | backend/tests/test_progress.py | 120 | |
| LOW | backend/tests/test_progress.py | 166 | |
| LOW | backend/tests/test_progress.py | 187 | |
| LOW | backend/tests/test_refinement_samples.py | 407 | |
| LOW | backend/tests/test_all_models_e2e.py | 214 | |
| LOW | backend/tests/test_all_models_e2e.py | 274 | |
| LOW | backend/tests/test_all_models_e2e.py | 486 | |
| LOW | backend/tests/test_personality_samples.py | 285 | |
| LOW | backend/tests/test_qwen_download.py | 23 | |
| LOW | backend/tests/test_qwen_download.py | 135 | |
| LOW | backend/tests/test_qwen_download.py | 160 | |
| LOW | backend/utils/hf_progress.py | 30 | |
| LOW | backend/utils/hf_progress.py | 217 | |
| LOW | backend/utils/hf_progress.py | 116 | |
| LOW | backend/utils/images.py | 47 | |
| LOW | backend/utils/hf_offline_patch.py | 34 | |
| LOW | backend/utils/progress.py | 35 | |
| LOW | backend/utils/progress.py | 190 | |
| LOW | backend/routes/tasks.py | 46 | |
| LOW | backend/routes/models.py | 122 | |
| LOW | backend/routes/models.py | 227 | |
| LOW | backend/routes/models.py | 153 | |
| LOW | backend/routes/health.py | 57 | |
| LOW | backend/routes/health.py | 185 | |
| LOW | backend/services/task_queue.py | 39 | |
| LOW | backend/services/generation.py | 29 | |
| LOW | backend/services/export_import.py | 123 | |
| LOW | backend/services/export_import.py | 333 | |
| LOW | backend/services/captures.py | 60 | |
| LOW | backend/services/cuda.py | 138 | |
| LOW | backend/services/history.py | 273 | |
| LOW | scripts/test_download_progress.py | 154 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | backend/server.py | 141 | # Check if process has actually exited |
| LOW | backend/config.py | 14 | # Set VOICEBOX_MODELS_DIR to an absolute path before starting the server. |
| LOW | backend/backends/mlx_backend.py | 226 | # Check if generate accepts ref_audio parameter |
| LOW | backend/tests/test_whisper_download.py | 81 | # Check if server is running |
| LOW | backend/tests/test_whisper_download.py | 153 | # Check if we got meaningful progress |
| LOW | backend/tests/test_generation_download.py | 264 | # Check if server is running |
| LOW | backend/tests/test_qwen_download.py | 167 | # Check if server is running |
| LOW | backend/tests/test_qwen_download.py | 288 | # Check if progress increased over time |
| LOW | backend/utils/chunked_tts.py | 165 | # Check if the cut falls inside a bracket tag; if so, move before it |
| LOW | backend/utils/progress.py | 45 | # Check if we're in the main event loop thread |
| LOW | backend/utils/progress.py | 115 | # Check if we should notify listeners (throttling) |
| LOW | backend/services/export_import.py | 73 | # Check if profile has avatar |
| LOW | backend/services/export_import.py | 388 | # Check if we should match an existing profile or create metadata |
| LOW | backend/services/stories.py | 263 | # Check if generation is already in story |
| LOW | backend/services/stories.py | 959 | # Read file bytes |
| LOW | backend/services/cuda.py | 122 | # Check if the binary version matches the expected app version |
| LOW | backend/services/channels.py | 74 | # Check if name already exists |
| LOW | backend/services/channels.py | 125 | # Check if name already exists (excluding current channel) |
| LOW | scripts/prepare-release.sh | 24 | # Check if public key is in tauri.conf.json |
| LOW | scripts/generate-api.sh | 8 | # Check if backend is running |
| LOW | scripts/generate-api.sh | 13 | # Check if virtual environment exists |
| LOW | scripts/generate-api.sh | 57 | # Check if openapi-typescript-codegen is installed |
| LOW | scripts/build-server.sh | 16 | # Check if PyInstaller is installed |
| LOW | scripts/update-icons.sh | 20 | # Check if source exists |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | backend/STYLE_GUIDE.md | 104 | Load and concatenate all voice prompt files for a profile. Reads .wav/.mp3/.flac files from the profile directory, |
| HIGH | backend/services/export_import.py | 46 | Export a voice profile to a ZIP archive. Args: profile_id: Profile ID to export db: Databa |
| HIGH | backend/services/export_import.py | 124 | Import a voice profile from a ZIP archive. Args: file_bytes: ZIP file contents db: Databas |
| HIGH | backend/services/export_import.py | 246 | Export a generation to a ZIP archive. Args: generation_id: Generation ID to export db: Dat |
| HIGH | backend/services/export_import.py | 334 | Import a generation from a ZIP archive. Args: file_bytes: ZIP file contents db: Database s |
| HIGH | backend/services/profiles.py | 142 | Create a new voice profile. Args: data: Profile creation data db: Database session Return |
| HIGH | backend/services/profiles.py | 361 | Update a voice profile. Args: profile_id: Profile ID data: Updated profile data db: Da |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tauri/src-tauri/src/keyboard_layout.rs | 1 | //! Layout-aware resolution of the keycode whose current-layout translation |
| LOW | tauri/src-tauri/src/input_monitoring.rs | 1 | //! Platform permission gate for the global keyboard tap. |
| LOW | tauri/src-tauri/src/input_monitoring.rs | 21 | //! `enable_hotkey` calls `request` on first invocation so the prompt fires |
| LOW | tauri/src-tauri/src/input_monitoring.rs | 41 | |
| LOW | tauri/src-tauri/src/synthetic_keys.rs | 1 | //! Synthetic keyboard event posting for the auto-paste pipeline. |
| LOW | tauri/src-tauri/src/accessibility.rs | 1 | //! Platform permission gate for the auto-paste pipeline. |
| LOW | tauri/src-tauri/src/main.rs | 61 | } |
| LOW | tauri/src-tauri/src/main.rs | 821 | /// windows. Paste into Voicebox-internal targets is step 6 territory and |
| LOW | tauri/src-tauri/src/main.rs | 861 | /// Holds the lazily-spawned global hotkey monitor. The monitor is `None` |
| LOW | tauri/src-tauri/src/main.rs | 921 | toggle_to_talk: Vec<String>, |
| LOW | tauri/src-tauri/src/main.rs | 961 | #[command] |
| LOW | tauri/src-tauri/src/main.rs | 1041 | /// Windows sequence number) matching the value captured right after |
| LOW | tauri/src-tauri/src/clipboard.rs | 1 | //! Snapshot / write / restore helpers around the system clipboard. |
| LOW | tauri/src-tauri/src/clipboard.rs | 21 | //! clipboard guard. CF_UNICODETEXT, CF_HDROP, CF_DIB (bitmap data in |
| LOW | tauri/src-tauri/src/clipboard.rs | 281 | //! fan-out. |
| LOW | tauri/src-tauri/src/key_codes.rs | 1 | //! Stable string ↔ `keytap::Key` mapping for chord persistence. |
| LOW | tauri/src-tauri/src/focus_capture.rs | 1 | //! Captures the focused-UI snapshot at chord-start so auto-paste can land |
| LOW | tauri/src-tauri/src/focus_capture.rs | 21 | //! Activation walks top-level windows for the saved PID and calls |
| LOW | tauri/src-tauri/src/focus_capture.rs | 241 | |
| LOW | tauri/src-tauri/src/focus_capture.rs | 381 | /// Best-effort `UIAutomation::GetFocusedElement().CurrentClassName()`. |
| LOW | tauri/src-tauri/src/hotkey_monitor.rs | 1 | //! Global hotkey → dictation effect bridge. |
| LOW | tauri/src-tauri/src/hotkey_monitor.rs | 41 | // Public types |
| LOW | tauri/src-tauri/src/speak_monitor.rs | 1 | //! Rust-side subscriber for the backend `/events/speak` SSE stream. |
| LOW | tauri/src-tauri/src/speak_monitor.rs | 21 | //! long-term outages stop filling stderr with reconnect log lines. |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 421 | # everything that isn't create_module/exec_module (or __getattr__/init). |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 481 | # the child). |
| LOW | backend/pyi_rth_torch_compiler_disable.py | 521 | |
| LOW | backend/requirements-mlx.txt | 1 | # MLX-specific dependencies (Apple Silicon only) |
| LOW | backend/requirements-mlx.txt | 21 | # sounddevice, tqdm) are already in requirements.txt or pulled in by |
| LOW | backend/mcp_server/context.py | 61 | # ignored so the Settings UI's "last heard from" column only reflects |
| LOW | backend/services/refinement.py | 201 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | backend/models.py | 362 | description="When true and the profile has a personality prompt, the input text is rewritten in-character before |
| HIGH | backend/tests/test_whisper_download.py | 86 | print(" cd backend && python main.py") |
| HIGH | backend/tests/test_generation_download.py | 269 | print(" cd backend && python main.py") |
| HIGH | backend/tests/test_qwen_download.py | 8 | cd backend && python -m tests.test_qwen_download |
| HIGH | backend/tests/test_qwen_download.py | 11 | - Server must be running: cd backend && python main.py |
| HIGH | backend/tests/test_qwen_download.py | 172 | print(" cd backend && python main.py") |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | backend/utils/hf_progress.py | 288 | # Create a wrapper that calls our tracking |
| MEDIUM | backend/utils/dac_shim.py | 61 | # Create the module tree: dac -> dac.nn -> dac.nn.layers |
| MEDIUM | backend/services/profiles.py | 607 | # Create a hash of sample IDs to identify this specific combination |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | backend/pyi_rth_torch_compiler_disable.py | 438 | # fresh compile() from source. Easiest robust fix: read the source |
| MEDIUM | backend/tests/test_personality_samples.py | 298 | # per-request to /profiles/{id}/compose. The harness swaps it |
| MEDIUM | backend/utils/hf_offline_patch.py | 149 | """Make transformers' tokenizer load robust to HuggingFace metadata failures. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tauri/src-tauri/gen/schemas/acl-manifests.json | 1 | {"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:pat |