Fastest and only macOS Dictation app with on-device STT and custom trained AI enhancement model. Windows, iOS testflight! Android, Linux waitlist open! A local Wispr Flow alternative. Follow https://x.com/fluidvoiceapp for more
This report summarizes scanner evidence for altic-dev/FluidVoice, a Swift project with 12,631 GitHub stars. SynthScan examined 328,887 lines of code across 1104 source files, recording 834 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 3.8 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 752 finding(s).
Are imports declared and package/API names verified? 82 finding(s).
Are wrappers, guards, and repeated structures necessary? 103 finding(s).
Which changes need focused human review? 834 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 834 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …nIntegrationTests/MeetingTimelineDriftProbeTests.swift | 1 | import AudioToolbox | COMMENT |
| LOW | …nIntegrationTests/VoiceProcessingAsrQualityTests.swift | 1 | import AVFoundation | COMMENT |
| LOW | …dDictationIntegrationTests/ClockDomainProbeTests.swift | 1 | import AVFoundation | COMMENT |
| LOW | …ntegrationTests/VoiceProcessingDuckingProbeTests.swift | 1 | import AVFoundation | COMMENT |
| LOW | …rces/CoreAudioCaptureSupport/CoreAudioCaptureSupport.c | 1 | #include "include/CoreAudioCaptureSupport.h" | COMMENT |
| LOW | Sources/Fluid/CoreAudioCaptureSupportBridge.c | 1 | // Fluid.xcodeproj builds the file-synchronized Sources/Fluid tree directly. | COMMENT |
| LOW | Sources/Fluid/Fluid-Bridging-Header.h | 1 | #ifndef FLUID_BRIDGING_HEADER_H | COMMENT |
| LOW | Sources/Fluid/CoreAudioCaptureSupportBridge.h | 1 | #ifndef CORE_AUDIO_CAPTURE_SUPPORT_BRIDGE_H | COMMENT |
| LOW | Sources/Fluid/UI/CustomDictionaryView.swift | 1 | // Existing UI composition; splitting it is outside this integration fix. | COMMENT |
| LOW | Sources/Fluid/UI/GlossyEffects.swift | 81 | // | COMMENT |
| LOW | Sources/Fluid/UI/GlossyEffects.swift | 101 | // endRadius: size * 0.5 | COMMENT |
| LOW | Sources/Fluid/Networking/ModelDownloader.swift | 461 | /// | COMMENT |
| LOW | Sources/Fluid/Networking/ModelDownloader.swift | 521 | /// Returns `true` if `data` begins with an HTML / XML markup marker, ignoring a leading | COMMENT |
| LOW | Sources/Fluid/Persistence/Search/SearchIndex.swift | 1 | import Foundation | COMMENT |
| LOW | Sources/Fluid/Services/AudioDeviceService.swift | 481 | static let clamshellStateDidChange = Notification.Name("ClamshellStateDidChange") | COMMENT |
| LOW | Sources/Fluid/Services/AppServices.swift | 1 | // | COMMENT |
| LOW | Sources/Fluid/Services/ASRService.swift | 461 | } | COMMENT |
| LOW | Sources/Fluid/Services/ASRService.swift | 481 | /// Slovak, Slovenian, Spanish, Swedish, Russian, and Ukrainian. | COMMENT |
| LOW | Sources/Fluid/Services/ASRService.swift | 2781 | /// | COMMENT |
| LOW | Sources/Fluid/Services/ASRService.swift | 3441 | /// 2. Ensures ASR models are ready | COMMENT |
| LOW | Sources/Fluid/Services/ASRService.swift | 3461 | /// - ASR models are not available | COMMENT |
| LOW | …Fluid/Services/Meeting/MeetingProcessingPipeline.swift | 501 | /// Drops empty-text turns; nil when all were empty (caller falls back to whole-chunk). | COMMENT |
| LOW | …Fluid/Services/Meeting/MeetingProcessingPipeline.swift | 901 | /// Original capture clock coordinates. Echo-protection era boundaries live in this domain; | COMMENT |
| LOW | …luid/Services/Meeting/MeetingASRPreparationOwner.swift | 21 | /// Immutable identity for one claimed preparation operation. | COMMENT |
| LOW | …/Fluid/Services/Meeting/MeetingMicrophoneCapture.swift | 2161 | // close the writer before the probe task exits; otherwise callbacks can outlive the | COMMENT |
| LOW | …rvices/Meeting/Backend/MeetingResultSidecarStore.swift | 1 | import CryptoKit | COMMENT |
| LOW | …Backend/MeetingProductionParakeetNemotronRuntime.swift | 1 | import Foundation | COMMENT |
| LOW | …vices/Meeting/Backend/MeetingTranscriptAssembler.swift | 101 | // Stage C2b1 of `MEETING_TRANSCRIPTION_IMPLEMENTATION_PLAN.md` (§4) and | COMMENT |
| LOW | …d/Services/Meeting/Backend/MeetingAudioChunkSink.swift | 61 | case let .writeFailed(status): return "PCM write failed (OSStatus \(status))." | COMMENT |
| LOW | …d/Services/Meeting/Backend/MeetingAudioChunkSink.swift | 81 | /// completed for that one buffer; it is `finalize()` succeeding — after a full close, reopen and | COMMENT |
| LOW | …d/Services/Meeting/Backend/MeetingAudioChunkSink.swift | 101 | /// state. No resampling, channel clamping, or sample-value conversion is performed; a sink may | COMMENT |
| LOW | …Services/Meeting/Backend/MeetingAnalysisManifest.swift | 1 | import Foundation | COMMENT |
| LOW | …Services/Meeting/Backend/MeetingAnalysisManifest.swift | 1241 | return MeetingAnalysisCaptureEras.anchorSeconds(for: era, track: track, origin: self.origin) | COMMENT |
| LOW | …/Services/Meeting/Backend/MeetingBackendEvidence.swift | 1 | import Foundation | COMMENT |
| LOW | …ices/Meeting/Backend/MeetingTranscriptionBackend.swift | 1 | import Foundation | COMMENT |
| LOW | …id/Services/Meeting/Backend/MeetingResultSidecar.swift | 1 | import Foundation | COMMENT |
| LOW | …es/Meeting/Backend/MeetingEpochAudioMaterializer.swift | 1 | import AVFoundation | COMMENT |
| LOW | …s/Meeting/Backend/MeetingAnalysisManifestBuilder.swift | 1 | import Foundation | COMMENT |
| LOW | …ices/Meeting/Backend/MeetingNemotronModelLocator.swift | 1 | import CryptoKit | COMMENT |
| LOW | …s/Meeting/Backend/MeetingUnitEchoVerdictProvider.swift | 1 | import Foundation | COMMENT |
| LOW | …s/Meeting/Backend/MeetingParakeetNemotronRuntime.swift | 1 | import Foundation | COMMENT |
| LOW | …/UpstreamSources/src/system_wrappers/include/metrics.h | 1 | // | COMMENT |
| LOW | …/UpstreamSources/src/system_wrappers/include/metrics.h | 21 | #include "api/units/time_delta.h" | COMMENT |
| LOW | …/UpstreamSources/src/system_wrappers/include/metrics.h | 41 | #define EXPECT_METRIC_LE(val1, val2) EXPECT_LE(val1, val2) | COMMENT |
| LOW | …/UpstreamSources/src/system_wrappers/include/metrics.h | 61 | // Histogram for counters. | COMMENT |
| LOW | …/UpstreamSources/src/system_wrappers/include/metrics.h | 81 | // absl::string_view name, int sample, int min, int max, | COMMENT |
| LOW | …/UpstreamSources/src/system_wrappers/include/metrics.h | 141 | // If capturing integers and wanting exact values, the number of buckets | COMMENT |
| LOW | …ssing/UpstreamSources/src/rtc_base/denormal_disabler.h | 21 | // [1] https://en.wikipedia.org/wiki/Denormal_number | COMMENT |
| LOW | …Processing/UpstreamSources/src/rtc_base/event_tracer.h | 21 | // event category is enabled. | COMMENT |
| LOW | …Processing/UpstreamSources/src/rtc_base/string_utils.h | 21 | #include <wchar.h> | COMMENT |
| LOW | …ioProcessing/UpstreamSources/src/rtc_base/swap_queue.h | 41 | bool operator()(const T& t) const { return QueueItemVerifierFunction(t); } | COMMENT |
| LOW | …ioProcessing/UpstreamSources/src/rtc_base/swap_queue.h | 61 | // // Producer pseudo-code: | COMMENT |
| LOW | …oProcessing/UpstreamSources/src/rtc_base/trace_event.h | 21 | // IWYU pragma: begin_exports | COMMENT |
| LOW | …oProcessing/UpstreamSources/src/rtc_base/trace_event.h | 41 | #define TRACE_EVENT_END(category, ...) RTC_NOOP(); | COMMENT |
| LOW | …oProcessing/UpstreamSources/src/rtc_base/trace_event.h | 61 | COMMENT | |
| LOW | …oProcessing/UpstreamSources/src/rtc_base/trace_event.h | 81 | // Events can be INSTANT, or can be pairs of BEGIN and END in the same scope: | COMMENT |
| LOW | …oProcessing/UpstreamSources/src/rtc_base/trace_event.h | 101 | // } | COMMENT |
| LOW | …oProcessing/UpstreamSources/src/rtc_base/trace_event.h | 121 | // match. For example: | COMMENT |
| LOW | …oProcessing/UpstreamSources/src/rtc_base/trace_event.h | 141 | // TRACE_COUNTER1("MY_SUBSYSTEM", "myCounter0", g_myCounterValue[0]); | COMMENT |
| LOW | …oProcessing/UpstreamSources/src/rtc_base/trace_event.h | 161 | // "arg1", "literal string is only referenced"); | COMMENT |
| 543 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 213 | check(view.trainingHasError && !view.isTrainingProcessing && view.trainingSaveID == nil, "Failure must relea | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 214 | check(view.writes == 0 && SettingsStore.shared.customDictionaryEntries == original, "Failure must preserve d | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 224 | check(view.writes == 1 && view.wizardStep == .saved, "Text-only training must save") | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 239 | check(view.writes == 1 && view.wizardStep == .saved, "Incomplete voice enrollment must not block spelling-on | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 240 | check(calls == 0 && profiles.isEmpty, "Incomplete voice examples must never enter profile persistence") | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 243 | check(!view.trainingHasError && !view.isTrainingProcessing && view.trainingSaveID == nil, "Spelling fallback | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 255 | check(view.writes == 0 && calls == 0, "Rejected aliases must not write text rules or profiles") | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 257 | check(view.trainingHasError && view.wizardStep == .recording, "Rejected aliases leave a visible manual fallb | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 259 | check(!view.trainingVariants.isEmpty && !view.isTrainingProcessing && view.trainingSaveID == nil, "Alias fai | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 273 | check(view.writes == 0 && calls == 0, "Unchanged spelling must not write text rules or voice profiles") | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 275 | check(view.wizardStep == .review && view.trainingHasError, "Unchanged spelling must stay in review with feed | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 278 | check(!view.isTrainingProcessing && view.trainingSaveID == nil, "Unchanged save must release its busy state" | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 294 | check(view.writes == 0 && calls == 0, "Already-recognized words must not save text rules or voice profiles") | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 296 | check(view.wizardStep == .review && view.trainingHasError, "Already-recognized words must stay in review wit | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 298 | check(view.trainingSampleCount == 3 && view.lastTrainingOutput == "palermo", "Already-correct feedback must | CODE |
| HIGH⚡ | Tests/run_dictionary_training_save_tests.py | 299 | check(!view.isTrainingProcessing && view.trainingSaveID == nil, "Already-correct feedback must leave the edi | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 141 | check(view.writes == 1 && view.wizardStep == .saved, "Normal save must succeed") | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 169 | check(view.trainingHasError && view.trainingStatusMessage.contains("dictionary changed"), "Conflict must sho | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 170 | check(!view.isTrainingProcessing && view.trainingSaveID == nil, "Conflict must release processing state") | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 187 | check(SettingsStore.shared.customDictionaryEntries == latest && view.writes == 0, "Post-write edit must surv | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 202 | check(view.trainingSaveID == newSaveID && view.isTrainingProcessing, "Stale failure must preserve newer acti | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 315 | check(view.isTrainingRecording == recording && view.isTrainingProcessing == !recording, "Busy Save must leav | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 339 | check(calls == 0 && view.writes == 0 && SettingsStore.shared.customDictionaryEntries == original, "Incomplet | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 340 | check(!view.isTrainingProcessing && view.trainingSaveID == nil && view.wizardStep == .recording, "Rejected s | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 354 | check(profiles.isEmpty && view.writes == 0 && SettingsStore.shared.customDictionaryEntries == original, "Sta | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 356 | check(!view.isTrainingProcessing && view.trainingSaveID == nil, "Generation refusal must release busy state" | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 371 | check(view.writes == 0 && SettingsStore.shared.customDictionaryEntries == original, "Stale success must not | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 372 | check(view.trainingSaveID == newerID && view.isTrainingProcessing, "Stale success must not release the newer | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 387 | check(view.writes == 0 && SettingsStore.shared.customDictionaryEntries == original, "Cancelled save must not | CODE |
| HIGH | Tests/run_dictionary_training_save_tests.py | 388 | check(!view.isTrainingProcessing && view.trainingSaveID == nil && view.wizardStep == .recording && !view.tra | CODE |
| HIGH | Tests/run_delivery_failure_copy_tests.py | 52 | return true | CODE |
| HIGH | Tests/run_delivery_failure_copy_tests.py | 143 | check(card.didCopy && ClipboardService.text == "first transcript", "Card first copy succeeds") | CODE |
| HIGH | Tests/run_delivery_failure_copy_tests.py | 156 | check(card.didCopy && ClipboardService.text == "second transcript", "Card can retry after failure") | CODE |
| HIGH⚡ | Tests/run_delivery_failure_copy_tests.py | 188 | check(popup.didCopy && popup.successes == 1, "Popup first copy succeeds") | CODE |
| HIGH⚡ | Tests/run_delivery_failure_copy_tests.py | 198 | check(!popup.didCopy && popup.successes == successes, "Failed popup copy neither says Copied nor dismisses") | CODE |
| HIGH⚡ | Tests/run_delivery_failure_copy_tests.py | 201 | check(popup.didCopy && popup.successes == successes + 1, "Popup retry succeeds") | CODE |
| HIGH⚡ | Tests/run_delivery_failure_copy_tests.py | 207 | check(!failedPopup.didCopy && failedPopup.successes == 0, "Fresh failed popup must not say Copied or dismiss") | CODE |
| HIGH | Tests/run_delivery_failure_copy_tests.py | 237 | check(retryPresentation.content.didCopy && ClipboardService.text == "retry transcript", "Retried controller copy | CODE |
| HIGH | Tests/run_delivery_failure_copy_tests.py | 242 | check(controller.panel?.isVisible == false && controller.generation == hiddenGeneration, | CODE |
| HIGH | Tests/run_meeting_backup_refresh_tests.py | 143 | check(baseline.hardwareQueries == 0 && baseline.persistedWrites == 0, "restore handler performs neither synchronous | CODE |
| HIGH⚡ | Tests/run_meeting_backup_refresh_tests.py | 159 | check(h.pendingBackupSetupRefresh && h.setupDraft.languageCode == "en", "busy/editing restore defers \(blocker)" | CODE |
| HIGH⚡ | Tests/run_meeting_backup_refresh_tests.py | 160 | check(h.selectedIdentities == 0 && h.persistedWrites == 0, "deferral has no effects \(blocker)") | CODE |
| HIGH⚡ | Tests/run_meeting_backup_refresh_tests.py | 166 | check(!h.pendingBackupSetupRefresh && h.setupDraft.languageCode == "de", "success/failure/close uses latest coal | CODE |
| HIGH⚡ | Tests/run_meeting_backup_refresh_tests.py | 176 | check(!h.isShowingMeetingSettings && h.setupDraft.languageCode == "fr", "sheet close consumes deferred restore") | CODE |
| HIGH⚡ | Tests/run_meeting_backup_refresh_tests.py | 177 | check(h.persistedWrites == 0 && h.hardwareQueries == 0, "stale Save/Cancel cannot overwrite imported preferences | CODE |
| HIGH⚡ | Tests/run_meeting_backup_refresh_tests.py | 181 | check(busySheet.pendingBackupSetupRefresh && busySheet.setupDraft.languageCode == "en", "closing edited sheet does n | CODE |
| HIGH | Tests/run_meeting_backup_refresh_tests.py | 196 | check(missing.setupDraft.selectedMicrophoneID == nil && missing.setupDraft.selectedApplicationID == nil, "missing ca | CODE |
| HIGH | Tests/run_settings_backup_concurrency_tests.py | 298 | expect(TranscriptionHistoryStore.shared.writes == 1 && NotificationCenter.default.snapshots.count == 1, "histori | CODE |
| HIGH | Tests/run_settings_backup_concurrency_tests.py | 299 | expect(asr.activeActivityLease == dictation && asr.isRunning, "the ongoing dictation did not release its lease b | CODE |
| HIGH | Tests/run_settings_backup_concurrency_tests.py | 320 | expect(during.2 == 0 && during.1 == 1, "rejected overlap cannot enter profile writer/second snapshot") | CODE |
| HIGH | Tests/run_settings_backup_concurrency_tests.py | 321 | expect(SettingsStore.shared.owner == "original" && TranscriptionHistoryStore.shared.writes == 0 && NotificationC | CODE |
| HIGH | Tests/run_settings_backup_concurrency_tests.py | 366 | expect(untouched.2 == 0 && untouched.0 == ["original"], "busy import must not replace profiles") | CODE |
| HIGH | Tests/run_settings_backup_concurrency_tests.py | 368 | expect(NotificationCenter.default.snapshots.isEmpty && asr.activeActivityLease == originalLease, "busy impor | CODE |
| HIGH | Tests/run_settings_backup_concurrency_tests.py | 393 | expect(beforeReplace.2 == 1 && beforeReplace.1 == 0 && TranscriptionHistoryStore.shared.loads == 0, "reverse ove | CODE |
| HIGH | Tests/run_settings_backup_concurrency_tests.py | 395 | expect(restoringASR.activeActivityLease == nil && restoringASR.admissions == 1 && restoringASR.releases == 1, "s | CODE |
| HIGH⚡ | Tests/run_settings_backup_concurrency_tests.py | 408 | expect(unchangedASR.activeExclusiveActivity == .settingsRestore && unchangedASR.providerResetPending, "UI ob | CODE |
| HIGH⚡ | Tests/run_settings_backup_concurrency_tests.py | 410 | expect(!unchangedASR.isAsrReady && unchangedASR.completedResets == 1, "queued capture sees retired ready | CODE |
| HIGH⚡ | Tests/run_settings_backup_concurrency_tests.py | 420 | expect(unchangedIdle.0 == 0 && unchangedASR.recoveryRequests == 1 && unchangedASR.completedResets == 1, "unchang | CODE |
| HIGH⚡ | Tests/run_settings_backup_concurrency_tests.py | 421 | expect(!unchangedASR.providerResetPending && unchangedASR.activeActivityLease == nil, "queued capture leaves no | CODE |
| HIGH⚡ | Tests/run_settings_backup_concurrency_tests.py | 430 | expect(NotificationCenter.default.snapshots.count == 1 && NotificationCenter.default.snapshots.allSatisfy { $0.1 | CODE |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/meeting_playback_stage05_signal_gate.py | 302 | def normalized_correlation_at_lag( | CODE |
| LOW | tools/meeting_playback_stage05_signal_gate.py | 323 | def _normalized_correlation_finite( | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 10 | def test_label_requires_full_containment(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 15 | def test_confusion_keeps_positive_and_negative_separate(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 23 | def test_annotation_rejects_overlap(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 30 | def test_annotation_rejects_sidecar_traversal(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 36 | def test_annotation_rejects_empty_intervals(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 42 | def test_output_never_contains_transcript_text_or_identifiers(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 53 | def test_sweep_includes_accept_all_control_and_unique_thresholds(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 59 | def test_unknown_frame_is_counted_not_silently_dropped(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 67 | def test_invalid_missing_probability_is_rejected(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 74 | def test_straddling_transcript_is_reported(self): | CODE |
| LOW⚡ | tools/test_meeting_admission_b3_eval.py | 84 | def test_session_duration_uses_either_track_origin_and_latest_end(self): | CODE |
| LOW | tools/test_meeting_playback_stage0_baseline.py | 44 | def test_raw_lossless_paired_topology_still_requires_route_and_evidence(self): | CODE |
| LOW | tools/test_meeting_playback_stage0_baseline.py | 59 | def test_vpio_aac_is_never_promoted_to_paired_signal_evidence(self): | CODE |
| LOW | tools/test_meeting_playback_stage0_baseline.py | 73 | def test_inventory_hashes_chunks_without_emitting_private_session_fields(self): | CODE |
| LOW | tools/test_meeting_playback_stage0_baseline.py | 108 | def test_profile_digest_changes_but_never_returns_private_values(self): | CODE |
| LOW | tools/test_meeting_playback_stage0_baseline.py | 128 | def test_profile_digest_can_recheck_frozen_sessions_without_absorbing_new_ones(self): | CODE |
| LOW | tools/test_meeting_playback_stage0_baseline.py | 147 | def test_chunk_escape_and_hash_mismatch_fail_closed(self): | CODE |
| LOW | tools/test_meeting_playback_stage0_baseline.py | 166 | def test_manifest_validation_forbids_private_or_aec_authorization(self): | CODE |
| LOW | tools/test_meeting_playback_stage0_baseline.py | 186 | def test_frozen_legacy_hashes_can_be_verified_after_temporary_outputs_expire(self): | CODE |
| LOW⚡ | tools/test_meeting_reliability_baseline.py | 10 | def test_flow_plateau_is_only_sampled_lower_bound(self): | CODE |
| LOW⚡ | tools/test_meeting_reliability_baseline.py | 19 | def test_regressed_counter_rejects_multiple_sessions(self): | CODE |
| LOW⚡ | tools/test_meeting_reliability_baseline.py | 24 | def test_missing_flow_is_not_zero_drops_evidence(self): | CODE |
| LOW⚡ | tools/test_meeting_reliability_baseline.py | 29 | def test_path_traversal_and_symlink_escape(self): | CODE |
| LOW⚡ | tools/test_meeting_reliability_baseline.py | 39 | def test_model_hash_mismatch_remains_false(self): | CODE |
| LOW | tools/test_meeting_reliability_baseline.py | 52 | def test_saved_source_track_id_counts_without_emitting_text(self): | CODE |
| LOW | tools/test_meeting_reliability_baseline.py | 64 | def test_missing_health_fails_closed_and_missing_speaker_is_not_a_person(self): | CODE |
| LOW | tools/test_meeting_reliability_baseline.py | 78 | def test_unknown_segment_schema_fails_instead_of_zero(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 108 | def test_cli_stable_delayed_linear_fixture_passes_and_report_is_private(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 127 | def test_cli_rejects_time_varying_fixture_and_geometry_hash_gap(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 157 | def test_cli_rejects_geometry_and_never_overwrites_report(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 169 | def test_unknown_and_nonfinite_thresholds_fail_closed(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 189 | def test_private_provenance_is_hash_bound_and_rejects_extra_fields(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 263 | def test_fir_fixture_is_low_residual_and_time_varying_fixture_is_not(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 270 | def test_timing_rejects_gap_overlap_and_missing_arrival(self): | CODE |
| LOW⚡ | tools/test_meeting_playback_stage05_signal_gate.py | 287 | def test_band_measures_are_not_cloned(self): | CODE |
| LOW⚡ | tools/test_meeting_playback_stage05_signal_gate.py | 294 | def test_correlation_rejects_tiny_boundary_overlap(self): | CODE |
| LOW⚡ | tools/test_meeting_playback_stage05_signal_gate.py | 299 | def test_periodic_delay_without_a_prominent_peak_is_unresolved(self): | CODE |
| LOW⚡ | tools/test_meeting_playback_stage05_signal_gate.py | 305 | def test_preprocessing_and_peak_selection_fail_closed(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 327 | def test_full_span_estimator_and_measured_support(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 344 | def test_drift_is_uncertainty_bounded_and_outside_limit_never_passes(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 371 | def test_every_scheduled_window_is_required(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 382 | def test_resolved_delay_outlier_rejects_the_whole_track(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 400 | def test_signed_clock_contract_applies_each_term_once_and_nulls_failure(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 428 | def test_unresolved_measure_has_no_dependent_metrics(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 440 | def test_affine_alignment_never_pads_or_bridges_support(self): | CODE |
| LOW | tools/test_meeting_playback_stage05_signal_gate.py | 459 | def test_short_default_drift_resolution_is_unscored(self): | CODE |
| LOW | scripts/dictation_log_summary.py | 826 | def delivery_was_unsuccessful(row): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 65 | def test_rotation_duplicates_and_restart_are_isolated(self): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 74 | def test_incomplete_cancelled_and_untimed_markers(self): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 82 | def test_superseded_hide_is_not_reported_as_hidden(self): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 88 | def test_internal_model_handoffs_and_context_are_separate(self): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 232 | def test_asr_timeout_failure_is_not_empty_or_success(self): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 242 | def test_restart_does_not_deduplicate_a_new_recording_with_reused_values(self): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 247 | def test_concurrent_private_results_are_not_misattributed_to_dictation(self): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 745 | def direct_completion_fixture(self, completion=1.3, callback_result="", *extra): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 755 | def test_direct_normal_and_spoken_send_end_before_later_callback(self): | CODE |
| LOW⚡ | scripts/test_dictation_log_summary.py | 764 | def test_direct_invalid_missing_or_future_completion_is_not_an_endpoint(self): | CODE |
| LOW | scripts/test_dictation_log_summary.py | 22 | def test_paste_and_main_callback_are_distinct(self): | CODE |
| 43 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | Sources/Fluid/UI/AISettingsView+SpeechRecognition.swift | 35 | color: self.theme.metrics.cardShadow.color.opacity(self.theme.metrics.cardShadow.opacity | CODE |
| CRITICAL | Sources/Fluid/UI/AISettingsView+SpeechRecognition.swift | 124 | color: self.theme.metrics.cardShadow.color.opacity(self.theme.metrics.cardShadow.opa | CODE |
| CRITICAL | Sources/Fluid/UI/AISettingsView+AIConfiguration.swift | 2255 | color: self.theme.metrics.cardShadow.color.opacity(self.theme.metrics.cardShadow.opacity * 0.6), | CODE |
| CRITICAL | Sources/Fluid/UI/AISettingsView+AIConfiguration.swift | 2713 | color: self.theme.metrics.cardShadow.color.opacity(self.theme.metrics.cardShadow.opacity * 0.6), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Tests/run_command_model_catalog_tests.sh | 12 | # Keep the actual model metadata/key rules; network model fetching is unavailable in this harness. | COMMENT |
| MEDIUM | Sources/Fluid/Networking/ModelDownloader.swift | 7 | /// A robust downloader for Hugging Face models with progress tracking and error handling. | COMMENT |
| MEDIUM | Sources/Fluid/Services/ASRService.swift | 474 | /// robust error handling and performance optimization. | COMMENT |
| MEDIUM | …Fluid/Services/Meeting/MeetingProcessingPipeline.swift | 530 | /// Duration-weighted 75th percentile of turn loudness: robust to a handful of loud transients | COMMENT |
| MEDIUM | …ces/src/third_party/abseil-cpp/absl/meta/type_traits.h | 501 | // If it ever becomes possible to detect [[gsl::Owner]], we should leverage it: | COMMENT |
| MEDIUM | …ces/src/third_party/abseil-cpp/absl/meta/type_traits.h | 571 | // If it ever becomes possible to detect [[gsl::Pointer]], we should leverage | COMMENT |
| MEDIUM | …ces/src/third_party/abseil-cpp/absl/meta/type_traits.h | 627 | // we should change the implementation to leverage that. | COMMENT |
| MEDIUM | …Sources/src/third_party/abseil-cpp/absl/base/options.h | 39 | // Diamond dependency problems can be avoided if all packages utilize the same | COMMENT |
| MEDIUM | …modules/audio_processing/aec3/stationarity_estimator.h | 41 | // getting a more robust estimation, it looks at future and/or past frames. | COMMENT |
| MEDIUM | …modules/audio_processing/vad/voice_activity_detector.h | 29 | // StandaloneVad and PitchBasedVad to get a more robust estimation. | COMMENT |
| MEDIUM | …urces/src/common_audio/resampler/push_sinc_resampler.h | 59 | // Delay due to the filter kernel. Essentially, the time after which an input | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …tionIntegrationTests/MeetingSummaryProviderTests.swift | 58 | XCTAssertEqual(saved.notice, "Generated by AI on your Mac. May contain mistakes.") | CODE |
| HIGH | …tionIntegrationTests/MeetingSummaryProviderTests.swift | 93 | XCTAssertEqual(saved.notice, "Generated by AI. May contain mistakes.") | CODE |
| HIGH | …tionIntegrationTests/MeetingSummaryProviderTests.swift | 111 | XCTAssertEqual(saved.notice, "Generated by AI. May contain mistakes.") | CODE |
| HIGH | …/Fluid/Services/Meeting/MeetingSummaryController.swift | 196 | ? "Generated by AI on your Mac. May contain mistakes." | STRING |
| HIGH | …/Fluid/Services/Meeting/MeetingSummaryController.swift | 197 | : "Generated by AI. May contain mistakes." | STRING |
| HIGH | …ng/UpstreamSources/src/rtc_base/numerics/safe_minmax.h | 73 | // result, then everything's fine, and the return type is as requested. But if | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/meeting_reliability_baseline.py | 147 | CODE | |
| LOW | tools/meeting_diarization_eval.py | 244 | CODE | |
| LOW | tools/meeting_diarization_eval.py | 274 | CODE | |
| LOW | tools/meeting_playback_stage05_signal_gate.py | 222 | CODE | |
| LOW | tools/meeting_playback_stage05_signal_gate.py | 830 | CODE | |
| LOW | tools/meeting_playback_stage05_signal_gate.py | 1011 | CODE | |
| LOW | tools/meeting_playback_stage05_signal_gate.py | 1104 | CODE | |
| LOW | tools/meeting_playback_stage0_baseline.py | 233 | CODE | |
| LOW | tools/meeting_playback_stage0_baseline.py | 484 | CODE | |
| LOW | scripts/dictation_log_summary.py | 27 | CODE | |
| LOW | scripts/dictation_log_summary.py | 144 | CODE | |
| LOW | scripts/dictation_log_summary.py | 1001 | CODE | |
| LOW | scripts/dictation_log_summary.py | 45 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | build.sh | 6 | # Usage: | COMMENT |
| LOW | …/UpstreamSources/src/system_wrappers/include/metrics.h | 88 | // Example usage: | COMMENT |
| LOW | …/UpstreamSources/src/system_wrappers/include/metrics.h | 145 | // Example usage: | COMMENT |
| LOW | …ssing/UpstreamSources/src/rtc_base/denormal_disabler.h | 23 | // Example usage: | COMMENT |
| LOW | …Processing/UpstreamSources/src/rtc_base/string_utils.h | 39 | // Example usage: | COMMENT |
| LOW | …cessing/UpstreamSources/src/rtc_base/gtest_prod_util.h | 25 | // Example usage: | COMMENT |
| LOW | …d_party/abseil-cpp/absl/strings/resize_and_overwrite.h | 31 | // Example usage: | COMMENT |
| LOW | …hird_party/abseil-cpp/absl/base/internal/raw_logging.h | 40 | // Usage example: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Sources/Fluid/UI/OnboardingCleanupExampleCarousel.swift | 33 | spoken: "I think I'm gonna meet you tomorrow at 3 p.m. Let me know if the time works. If not, we can figure | CODE |
| MEDIUM | Sources/Fluid/UI/OnboardingCleanupExampleCarousel.swift | 34 | cleaned: "I think I'm gonna meet you tomorrow at 3 p.m. Let me know if the time works. If not, we can figure | CODE |
| MEDIUM | Sources/Fluid/Services/OnboardingPolishPractice.swift | 34 | spoken: "I think I'm gonna meet you tomorrow at 3 p.m. Let me know if the time works. If not, we can figure | CODE |
| MEDIUM | Sources/Fluid/Services/OnboardingPolishPractice.swift | 35 | expected: "I think I'm gonna meet you tomorrow at 3 p.m. Let me know if the time works. If not, we can figur | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/meeting_diarization_eval.py | 8 | CODE | |
| LOW | tools/meeting_playback_stage05_signal_gate.py | 9 | CODE | |
| LOW | tools/test_meeting_admission_b3_eval.py | 2 | CODE | |
| LOW | tools/test_meeting_admission_b3_eval.py | 4 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Sources/Fluid/Services/LLMClient.swift | 110 | /// Parsed tool calls for agentic modes (nil if none) | COMMENT |
| MEDIUM | Sources/Fluid/Services/CommandModeService.swift | 847 | // Build conversation with agentic system prompt | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/check-team-id.sh | 8 | # Check if project.pbxproj has been modified | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …cessing/UpstreamSources/src/api/rtc_event_log_output.h | 18 | // NOTE: This class is still under development and may change without notice. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Tests/FluidASRBaselineHost/Inputs/placeholder.json | 1 | {"placeholder": true} | CODE |