This report summarizes scanner evidence for Louis-CFM/coucou. SynthScan examined 240,144 lines of code across 1003 source files, recording 829 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 10.1 (Moderate 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? 99 finding(s).
Are imports declared and package/API names verified? 35 finding(s).
Are wrappers, guards, and repeated structures necessary? 698 finding(s).
Which changes need focused human review? 829 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
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 829 distinct pattern matches across 11 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 |
|---|---|---|---|---|
| MEDIUM | tests/ChatParsingTests.swift | 30 | // ── Unit tests (no network) ────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/ChatParsingTests.swift | 120 | // ── End-to-end tests (fake server) ─────────────────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 20 | // ── DiffEngine.fromEdit — additions ─────────────────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 31 | // ── DiffEngine.fromEdit — removals ──────────────────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 40 | // ── DiffEngine.fromEdit — replacement ───────────────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 52 | // ── DiffEngine.fromNew — new file ────────────────────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 62 | // ── DiffEngine.fromEdit — MultiEdit (two edits) ──────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 73 | // ── DiffEngine — tooLarge ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/DiffEngineTests.swift | 84 | // ── DiffEngine — CRLF ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/DiffEngineTests.swift | 92 | // ── DiffEngine — no trailing newline ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/DiffEngineTests.swift | 100 | // ── DiffEngine — 3-line context ─────────────────────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 115 | // ── DiffEngine — m*n > 1_000_000 → tooLarge ───────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 125 | // ── DiffEngine.fromNew — too large ──────────────────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 136 | // ── String.makeDiffStep / parseDiffStep ─────────────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 157 | // ── DiffEngine.toOneLine ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/DiffEngineTests.swift | 213 | // ── finish ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 22 | // ── one session alone: the pill follows it all the way ────────────────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 40 | // ── two sessions on one pill: this is the defect ──────────────────────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 62 | // ── a resting sibling does not hold the pill back ─────────────────────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 75 | // ── name and cwd: owned by one session, handed over when it leaves ────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 99 | // ── the name follows the session that is working ─────────────────────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 139 | // ── empty cwd must not erase a known one ──────────────────────────────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 150 | // ── pills are independent ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 162 | // ── sessions we never saw start ───────────────────────────────────────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 179 | // ── a Stop that never arrives must not hold the other session back ───── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 204 | // ── a SessionEnd that never arrives must not pin the card forever ────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 220 | // ── the terminal ("Open terminal") follows the display owner ──────────── | COMMENT |
| MEDIUM | tests/PillSessionRegistryTests.swift | 240 | // ── finish ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/EntityResolverTests.swift | 13 | // ── Exact matches ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/EntityResolverTests.swift | 29 | // ── Aliases ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/EntityResolverTests.swift | 40 | // ── Case/diacritic insensitive ──────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/EntityResolverTests.swift | 46 | // ── Word-match ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/EntityResolverTests.swift | 51 | // ── Levenshtein ≤ 2 ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/EntityResolverTests.swift | 57 | // ── No match ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/EntityResolverTests.swift | 63 | // ── Category filter ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/EntityResolverTests.swift | 70 | // ── GitHub phonetic aliases ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/EntityResolverTests.swift | 79 | // ── Levenshtein distance ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/VoiceQueryTests.swift | 20 | // ── Topics: Louis's own questions ───────────────────────────────────── | COMMENT |
| MEDIUM | tests/VoiceQueryTests.swift | 48 | // ── Through the parser ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/VoiceQueryTests.swift | 52 | // ── Mail ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/VoiceQueryTests.swift | 104 | // ── Apps ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/VoiceQueryTests.swift | 144 | // ── Answers ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/VoiceConversationTests.swift | 9 | // ── Members ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/VoiceConversationTests.swift | 24 | // ── Non-members ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/VoiceConversationTests.swift | 29 | // ── Non-empty ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/SpotterGenerationTests.swift | 18 | // ── Generation counter basics ───────────────────────────────────────── | COMMENT |
| MEDIUM | tests/SpotterGenerationTests.swift | 36 | // ── beginWindow / endWindow simulation ─────────────────────────────── | COMMENT |
| MEDIUM | tests/SpotterGenerationTests.swift | 53 | // ── spotterIsExpectedError ──────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/SpotterGenerationTests.swift | 71 | // ── 20-second restart scenario ──────────────────────────────────────── | COMMENT |
| MEDIUM | tests/SpotterGenerationTests.swift | 89 | // ── Late partial from A containing "ok coucou" ─────────────────────── | COMMENT |
| MEDIUM | tests/SpotterGenerationTests.swift | 103 | // ── Summary ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/PillFixture.swift | 8 | // ── Where you code ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/PillFixture.swift | 13 | // ── Agents ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/PillFixture.swift | 21 | // ── AI for the chat ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/PillFixture.swift | 27 | // ── Services ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/AskQuestionTests.swift | 29 | // ── parse ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/AskQuestionTests.swift | 90 | // ── buildAnswers ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/AskQuestionTests.swift | 112 | // ── island height ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/AskQuestionTests.swift | 129 | // ── finish ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/GitHubActivityTests.swift | 86 | // ── GitHubActivity.parse ────────────────────────────────────────────── | STRING |
| 598 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …app/src/test/kotlin/com/coucou/android/IconSpecTest.kt | 46 | val mirrored = com.coucou.android.core.IconKind.values().filter { com.coucou.android.core.IconSpec.mirrorsInRtl( | CODE |
| CRITICAL | …rc/test/kotlin/com/coucou/android/PlanUsageLookTest.kt | 127 | for (s in com.coucou.android.core.WidgetTone.values()) { | CODE |
| CRITICAL | …c/test/kotlin/com/coucou/android/link/RelayLinkTest.kt | 84 | assertTrue(com.coucou.android.core.PairingScan.decide(link) is com.coucou.android.core.ScanDecision.Pairing) | CODE |
| CRITICAL | …tlin/com/coucou/android/link/RustDesktopInteropTest.kt | 187 | assertFalse(com.coucou.android.core.ApprovalSheetPlan.canAllowHere(req)) | CODE |
| CRITICAL | …app/src/main/kotlin/com/coucou/android/MainActivity.kt | 148 | super.attachBaseContext(com.coucou.android.app.AppLanguage.wrap(newBase)) | CODE |
| CRITICAL | …app/src/main/kotlin/com/coucou/android/MainActivity.kt | 153 | model.languageChanged(com.coucou.android.app.AppLanguage.current(this)) | CODE |
| CRITICAL | …rc/main/kotlin/com/coucou/android/core/UserSettings.kt | 74 | volume = com.coucou.android.sound.SoundVolume.clamp(store.getFloat(VOLUME, d.volume)), | CODE |
| CRITICAL | …rc/main/kotlin/com/coucou/android/core/UserSettings.kt | 81 | outfit = com.coucou.android.mochi.outfit.Wardrobe.parseLocal(store.getString(OUTFIT, d.outfit)), | CODE |
| CRITICAL | …rc/main/kotlin/com/coucou/android/core/UserSettings.kt | 94 | store.put(VOLUME, com.coucou.android.sound.SoundVolume.clamp(s.volume)) | CODE |
| CRITICAL | …rc/main/kotlin/com/coucou/android/core/UserSettings.kt | 99 | store.put(OUTFIT, com.coucou.android.mochi.outfit.Wardrobe.parseLocal(s.outfit)) | CODE |
| CRITICAL⚡ | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 188 | var computerOutfit by mutableStateOf(com.coucou.android.mochi.outfit.Wardrobe.parse(kv.getString("computer_outfit", | CODE |
| CRITICAL⚡ | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 193 | get() = com.coucou.android.mochi.outfit.Wardrobe.choose(settings.outfit, computerOutfit) | CODE |
| CRITICAL⚡ | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 197 | com.coucou.android.mochi.outfit.Wardrobe.resolve(outfitSelection, today) | CODE |
| CRITICAL | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 367 | fun glance(): com.coucou.android.core.Glance = com.coucou.android.core.GlanceBuilder.build( | CODE |
| CRITICAL | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 373 | com.coucou.android.core.WidgetData.build(g, sessions, this::agentName, usage, todayCounter.count(), System.curre | CODE |
| CRITICAL | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 405 | sessions.firstOrNull { it.pillId == pillId }?.agent?.takeIf { it.isNotBlank() } ?: Pills.byId(pillId)?.name ?: c | CODE |
| CRITICAL | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 649 | if (allow && request != null && !com.coucou.android.core.ApprovalSheetPlan.canAllowHere(request)) { | CODE |
| CRITICAL | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 657 | recordDecision(Decision(agentName(request.pillId), request.tool, com.coucou.android.core.SafeText.requestLab | CODE |
| CRITICAL | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 739 | val v = com.coucou.android.mochi.outfit.Wardrobe.parse(outfit) | CODE |
| CRITICAL⚡ | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 833 | (diffState as? com.coucou.android.core.DiffState.Loading)?.let { diffState = com.coucou.android.core.DiffState.F | CODE |
| CRITICAL⚡ | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 842 | diffState = com.coucou.android.core.DiffState.Loading(pillId, file.id, file.name) | CODE |
| CRITICAL⚡ | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 846 | else diffState = com.coucou.android.core.DiffState.Failed(file.name) | CODE |
| CRITICAL | …app/src/main/kotlin/com/coucou/android/app/AppModel.kt | 860 | if (diffState is com.coucou.android.core.DiffState.Loading) diffState = com.coucou.android.core.DiffState.Re | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | android/relay/tools/e2e.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/cloud-test-build.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/dev-install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .github/workflows/linux.yml | 1 | name: Linux | COMMENT |
| LOW | windows/src-tauri/Cargo.toml | 41 | tokio-tungstenite = { version = "0.26", default-features = false, features = ["handshake"] } | COMMENT |
| LOW | windows/src-tauri/Cargo.toml | 101 | libc = "0.2" | COMMENT |
| LOW | windows/src-tauri/src/agents.rs | 1 | // Hook and plugin installers for every agent other than Claude Code (hooks.rs). | COMMENT |
| LOW | windows/src-tauri/src/claude.rs | 1 | // Claude API client — the same integration as ClaudeService.swift: multi-turn | COMMENT |
| LOW | windows/src-tauri/src/webview_drop.rs | 1 | // Files dropped on the island, taken by WebView2 itself. | COMMENT |
| LOW | windows/src-tauri/src/portal.rs | 1 | // Global shortcuts on Wayland, through the XDG desktop portal | COMMENT |
| LOW | windows/src-tauri/src/shortcuts.rs | 1 | // Global keyboard shortcuts — port of HotKeyCenter.swift + ShortcutLogic.swift. | COMMENT |
| LOW | windows/src-tauri/src/shortcuts.rs | 21 | // Ctrl+Alt+T open the terminal Ctrl+Alt+G wardrobe | COMMENT |
| LOW | windows/src-tauri/src/shortcuts.rs | 141 | TypesCharacter, | COMMENT |
| LOW | windows/src-tauri/src/session_window.rs | 1 | // "Open terminal" brings the window a Claude Code session runs in to the front, | COMMENT |
| LOW | windows/src-tauri/src/config_file.rs | 1 | // The one careful way Coucou changes a file that belongs to somebody else: | COMMENT |
| LOW | windows/src-tauri/src/config_file.rs | 41 | /// What the user looks at before anything is written. | COMMENT |
| LOW | windows/src-tauri/src/update.rs | 1 | // "Coucou 0.6.0 is out" in the island, and on Windows one click to install it. | COMMENT |
| LOW | windows/src-tauri/src/hooks.rs | 1 | // Claude Code hook installation. | COMMENT |
| LOW | windows/src-tauri/src/cli_relay.rs | 1 | // The chat on the user's own subscription (Settings → Chat → Your AI | COMMENT |
| LOW | windows/src-tauri/src/claude_code.rs | 1 | // The Claude Code relay: with no Anthropic API key saved, the chat, Flow's | COMMENT |
| LOW | windows/src-tauri/src/pipe.rs | 1 | // Relay server for coucou-hook. | COMMENT |
| LOW | windows/src-tauri/src/integrations.rs | 681 | } | COMMENT |
| LOW | windows/src-tauri/src/desktop.rs | 1 | // Mochi on the desktop: his own small window, wherever the user dropped him. | COMMENT |
| LOW | windows/src-tauri/src/local_chat.rs | 1 | // Chat with a model server the user runs: Ollama, LM Studio, or any other | COMMENT |
| LOW | windows/src-tauri/src/spotify.rs | 1 | // The Spotify pill — port of SpotifyController.swift. | COMMENT |
| LOW | windows/src-tauri/src/spotify.rs | 1341 | COMMENT | |
| LOW | windows/src-tauri/src/recap.rs | 1 | // Weekly recap history — port of RecapStore.swift. | COMMENT |
| LOW | windows/src-tauri/src/agent_hooks.rs | 1 | // Whether each hook-driven pill is connected. | COMMENT |
| LOW | windows/src-tauri/src/settings.rs | 41 | /// Show the Codex plan pill (5 h / weekly limits from `codex app-server`). | COMMENT |
| LOW | windows/src-tauri/src/settings.rs | 61 | /// default (see shortcuts.rs). | COMMENT |
| LOW | windows/src-tauri/src/settings.rs | 81 | /// owned by the Rust side, so what a webview sends back is ignored. | COMMENT |
| LOW | windows/src-tauri/src/chat.rs | 41 | // ── Conversation ────────────────────────────────────────────────────────────── | COMMENT |
| LOW | windows/src-tauri/src/mail/mod.rs | 1 | // The Mail pill on Windows: classic Outlook, driven through its COM objects (outlook.rs). | COMMENT |
| LOW | windows/src-tauri/src/mail/outlook.rs | 1 | // Classic Outlook on Windows, driven through its own COM objects by a small PowerShell | COMMENT |
| LOW | windows/src-tauri/src/platform/mod.rs | 1 | // Everything that differs between operating systems, behind one set of names. | COMMENT |
| LOW | windows/src-tauri/src/platform/linux.rs | 1 | // Linux: XDG directories for files, xdg-open for links and folders, and | COMMENT |
| LOW | windows/src-tauri/src/platform/linux_focus.rs | 1 | // Linux "Open terminal": bringing a session's terminal or editor window forward. | COMMENT |
| LOW | windows/src-tauri/src/phone_link/relay_client.rs | 1 | // The phone link through a relay (docs/RELAY_LINK.md), computer side. | COMMENT |
| LOW | windows/src-tauri/src/phone_link/hub.rs | 1 | // What the phone is told, and what it may decide. | COMMENT |
| LOW | windows/src-tauri/src/phone_link/discovery.rs | 1 | // Announces this computer on the local network while the phone link is on, so the phone finds it by itself when | COMMENT |
| LOW | windows/src-tauri/src/phone_link/server.rs | 1 | // The phone link's TLS server (docs/ANDROID_LINK.md, protocol v1). | COMMENT |
| LOW | windows/src-tauri/src/phone_link/mod.rs | 1 | // Copyright (c) 2026 Rhytam Biswas. MIT License, like the rest of Coucou; see android/LICENSE for the text. | COMMENT |
| LOW | windows/src-tauri/src/phone_link/admission.rs | 1 | // Who may open a connection, and for how long it may stay unauthenticated (docs/ANDROID_LINK.md, "Admission"). | COMMENT |
| LOW | windows/src-tauri/src/phone_link/relay_crypto.rs | 1 | // The end-to-end encrypted channel for the relay link (docs/RELAY_LINK.md, sections 4 and 5). | COMMENT |
| LOW | windows/src-tauri/src/phone_link/interop.rs | 1 | // The real phone link server, run for the Android app's tests. | COMMENT |
| LOW | windows/src-tauri/src/phone_link/chat.rs | 1 | // Chat from the phone (docs/ANDROID_LINK.md, "Chat"). | COMMENT |
| LOW | windows/src-tauri/src/voice/mod.rs | 1 | // « OK Coucou » on Windows and Linux: say it, then ask anything. Port of the | COMMENT |
| LOW | windows/src-tauri/src/whatsapp/mod.rs | 1 | // WhatsApp in the island (experimental), the Windows and Linux port of the Mac's WhatsAppController.swift. | COMMENT |
| LOW | windows/src-tauri/src/flow/logic.rs | 1 | // The key logic of Flow dictation, with nothing from the OS in it. Port of | COMMENT |
| LOW | windows/src-tauri/src/flow/mod.rs | 1 | // Flow dictation: hold a key anywhere, speak, let go, and the words are pasted | COMMENT |
| LOW | windows/src-tauri/src/flow/wayland.rs | 1 | // Flow dictation on Wayland, where no app may watch the keyboard or type into | COMMENT |
| LOW | windows/hook/src/statusline.rs | 1 | //! `coucou-hook --statusline`: Claude Code's status line command, for the plan | COMMENT |
| LOW | windows/hook/src/reply.rs | 1 | //! What the relay prints back to the agent — the only place that knows each | COMMENT |
| LOW | windows/hook/src/main.rs | 1 | //! coucou-hook — the relay Claude Code (and every other agent) runs on each hook | COMMENT |
| LOW | windows/src/mochi/outfits.ts | 1 | // Mochi's outfits, drawn in code — port of design/outfits/mochi-outfits.js (the | COMMENT |
| LOW | windows/src/core/fonts.ts | 1 | // Fonts that carry the scripts of the ten interface languages, appended to the | COMMENT |
| LOW | windows/src/core/shortcuts.ts | 1 | // Keyboard shortcuts — the pure part, port of ShortcutLogic.swift. | COMMENT |
| LOW | windows/src/i18n/i18n.ts | 1 | // Interface language — the Mac's languages except Thai and Traditional Chinese, Mac-only for now. | COMMENT |
| LOW | windows/src/views/ticker.ts | 1 | // Overview task ticker — port of TickerView (V2) from IslandViewContent.swift. | COMMENT |
| LOW | windows/src/views/icons.ts | 41 | // star.fill | COMMENT |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/fake_local_llm.py | 74 | except Exception: | CODE |
| MEDIUM⚡ | scripts/RenderOutfits.swift | 302 | print("Error: ImageRenderer returned nil for \(path)") | CODE |
| MEDIUM⚡ | scripts/RenderOutfits.swift | 309 | print("Error: PNG conversion failed for \(path)") | CODE |
| MEDIUM⚡ | scripts/RenderOutfits.swift | 316 | print("Error writing \(path): \(error)") | CODE |
| LOW | scripts/test-whats-new.py | 64 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | windows/src-tauri/src/agents.rs | 917 | except Exception: | CODE |
| MEDIUM | windows/src-tauri/src/agents.rs | 908 | def _run(): | CODE |
| MEDIUM | NotchBuddy/Sources/App/HookServer.swift | 2990 | def _run() -> None: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3002 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3094 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3583 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3598 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3607 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3628 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3651 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3666 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3707 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3717 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3763 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3790 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3843 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3860 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3874 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3958 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3973 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 3982 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4003 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4026 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4041 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4082 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4092 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4137 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4164 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4217 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4233 | except Exception: | CODE |
| LOW | NotchBuddy/Sources/App/HookServer.swift | 4247 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/WhatsAppGatewayTests.swift | 18 | "from_name": "John Doe", | CODE |
| LOW | tests/WhatsAppGatewayTests.swift | 35 | "from_name": "John Doe", | CODE |
| LOW | tests/WhatsAppGatewayTests.swift | 55 | "from_name": "John Doe", | CODE |
| LOW | tests/WhatsAppGatewayTests.swift | 85 | {"event":"message","device_id":"628987654321@s.whatsapp.net","payload":{"id":"G1","chat_id":"120363402106000001@g.us | CODE |
| LOW | tests/WhatsAppGatewayTests.swift | 229 | let devices = #"{"code":"SUCCESS","message":"List devices","results":[{"id":"coucou","state":"disconnected", | STRING |
| LOW | …otlin/com/coucou/android/link/DevDesktopInteropTest.kt | 286 | assertEquals(750 * "Lorem ipsum dolor sit amet. ".length, long.length) | CODE |
| LOW | …otlin/com/coucou/android/link/DevDesktopInteropTest.kt | 286 | assertEquals(750 * "Lorem ipsum dolor sit amet. ".length, long.length) | CODE |
| LOW⚡ | windows/src-tauri/src/whatsapp/gateway.rs | 600 | const GOWA_TEXT: &str = r#"{"event":"message","device_id":"628987654321@s.whatsapp.net","payload":{"id":"3EB0C127D7B | CODE |
| LOW⚡ | windows/src-tauri/src/whatsapp/gateway.rs | 601 | const GOWA_IMAGE: &str = r#"{"event":"message","device_id":"628987654321@s.whatsapp.net","payload":{"id":"3EB0C127D7 | CODE |
| LOW⚡ | windows/src-tauri/src/whatsapp/gateway.rs | 602 | const GOWA_AUDIO: &str = r#"{"event":"message","device_id":"628987654321@s.whatsapp.net","payload":{"id":"3EB0C127D7 | CODE |
| LOW⚡ | windows/src-tauri/src/whatsapp/gateway.rs | 604 | const GOWA_GROUP_MENTION: &str = r#"{"event":"message","device_id":"628987654321@s.whatsapp.net","payload":{"id":"G1 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/test-nb-hook.py | 74 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/test-nb-hook.py | 55 | CODE | |
| LOW | scripts/test-whats-new.py | 59 | CODE | |
| LOW | scripts/test-session-title.py | 67 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | windows/src/settings/phone.ts | 504 | function usableProvidersCandidates(): ProviderDef[] { | CODE |
| LOW | windows/src/island/integrations.ts | 16 | export function registerIntegrationHandlers(island: Island) { | CODE |
| LOW | windows/src/hub/shell.ts | 153 | function updateSearchRowHighlights() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | NotchBuddy/Sources/App/WhatsNewViews.swift | 138 | // Step 1: what the version brings | COMMENT |
| LOW | NotchBuddy/Sources/App/WhatsNewViews.swift | 157 | // Step 2: your Coucou so far, and the coffee | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | NotchBuddy/Sources/App/WhatsNewViews.swift | 138 | // Step 1: what the version brings | COMMENT |
| LOW | NotchBuddy/Sources/App/WhatsNewViews.swift | 157 | // Step 2: your Coucou so far, and the coffee | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/fake_local_llm.py | 10 | deltas (content=null), and Markdown answer | STRING |