AI Slop Code Risk Monitor

zhom/donutbrowser

SlopCodeMonitor badge for zhom/donutbrowser Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).
2.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for zhom/donutbrowser. SynthScan examined 367,347 lines of code across 609 source files, recording 679 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 2.2 (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.

2.2
Adjusted Signal
2.2
Raw Pattern Score
100%
Time Factor
—
Last Push
—
Stars
—
Language
367.3K
Lines of Code
609
Files
679
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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.

Cognitive Ownership Risk 5.1/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 366 finding(s).

Hallucinated Dependency & Supply Chain Risk 4.1/100 · LOW

Are imports declared and package/API names verified? 270 finding(s).

Agent Over-Engineering Ratio 2.8/100 · LOW

Are wrappers, guards, and repeated structures necessary? 119 finding(s).

PR Review Velocity Impact 9.9/100 · LOW

Which changes need focused human review? 679 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 0MEDIUM 42LOW 637

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 679 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.

Over-Commented Block280 hits · 276 pts
SeverityFileLineSnippetContext
LOWosv-scanner.toml1# Advisories the scan may pass over, and why. This list is NOT a way to quiet aCOMMENT
LOWpackaging/flatpak/com.donutbrowser.DonutBrowser.yml1# Flatpak manifest for Donut Browser.COMMENT
LOWpackaging/linux/smoke-test.sh1#!/usr/bin/env bashCOMMENT
LOWdonut-sync/docker-compose.yml1# Storage for developing and testing donut-sync itself. It runs an S3 serverCOMMENT
LOWdonut-sync/src/jsval.rs1//! Request bodies read the way the original server read them.COMMENT
LOWdonut-sync/src/migrate.rs1//! `donut-sync migrate-at-rest`: seals the plaintext objects already in theCOMMENT
LOWdonut-sync/src/at_rest.rs1//! Encryption at rest with the server's own key (`SYNC_AT_REST_KEY`).COMMENT
LOW.github/workflows/i18n-review.yml1name: Translation ReviewCOMMENT
LOW.github/workflows/publish-sidecars.yml1name: Publish sidecars to R2COMMENT
LOW.github/scripts/ai-infer.sh1#!/usr/bin/env bashCOMMENT
LOW.github/prompts/release-notes.prompt.yml21 Use this format:COMMENT
LOWsrc-tauri/.cargo/audit.toml1# cargo-audit configuration.COMMENT
LOWsrc-tauri/.cargo/audit.toml21 # arrives via tauri-plugin-log -> byte-unit -> rust_decimal. No enabledCOMMENT
LOWsrc-tauri/src/autostart.rs1//! Launch at login, and the profiles to open again at the next start.COMMENT
LOWsrc-tauri/src/app_proxy.rs1//! The proxy Donut's own requests go through: Wayfern and app downloads,COMMENT
LOWsrc-tauri/src/profile_templates.rs21 pub name_prefix: Option<String>,COMMENT
LOWsrc-tauri/src/remote_handoff.rs1//! What a remote session owes this machine, and the gate that collects it.COMMENT
LOWsrc-tauri/src/remote_handoff.rs301 let mut transitioned = false;COMMENT
LOWsrc-tauri/src/remote_handoff.rs641 }COMMENT
LOWsrc-tauri/src/profile_dns.rs1//! The DNS server a profile resolves names with.COMMENT
LOWsrc-tauri/src/proxy_distribution.rs1//! Handing a fleet of profiles one proxy each.COMMENT
LOWsrc-tauri/src/proxy_distribution.rs41 pub unpaired_profile_ids: Vec<String>,COMMENT
LOWsrc-tauri/src/browser_runner.rs1661COMMENT
LOWsrc-tauri/src/proxy_server.rs1921 Ok(Ok(())) => {}COMMENT
LOWsrc-tauri/src/proxy_server.rs2241 crate::dialer::connect_host("direct", host, port, DIRECT_CONNECT_TIMEOUT).awaitCOMMENT
LOWsrc-tauri/src/proxy_server.rs2261/// forwarding path.COMMENT
LOWsrc-tauri/src/portable_update.rs1//! Self-update of the portable Windows ZIP.COMMENT
LOWsrc-tauri/src/group_bookmarks.rs1//! Bookmarks a profile group shares with every profile in it.COMMENT
LOWsrc-tauri/src/group_bookmarks.rs41/// One bookmark shared by every profile in a group.COMMENT
LOWsrc-tauri/src/mcp_views.rs1//! What MCP tools answer with, kept small: an agent pays for every byte inCOMMENT
LOWsrc-tauri/src/window_decorations.rs1//! Client-side window decorations on Linux.COMMENT
LOWsrc-tauri/src/window_decorations.rs21pub struct WindowDecorations {COMMENT
LOWsrc-tauri/src/window_decorations.rs41/// works. KWin honors it, so Plasma would be free to draw a Breeze titlebarCOMMENT
LOWsrc-tauri/src/remote_session.rs141/// Whether this profile's exit rules out running it on a leased host.COMMENT
LOWsrc-tauri/src/remote_session.rs161/// itself needs a remote host.COMMENT
LOWsrc-tauri/src/remote_session.rs421 #[serde(default)]COMMENT
LOWsrc-tauri/src/remote_session.rs441 #[serde(default)]COMMENT
LOWsrc-tauri/src/remote_session.rs521/// Where to attach a CDP client for one session.COMMENT
LOWsrc-tauri/src/remote_session.rs641 .lock()COMMENT
LOWsrc-tauri/src/remote_session.rs661/// as "finished" would lift the local launch gate during the one minute a hostCOMMENT
LOWsrc-tauri/src/remote_session.rs981COMMENT
LOWsrc-tauri/src/remote_session.rs1161 }COMMENT
LOWsrc-tauri/src/recorder.rs1//! Recording what a person does, as a recipe.COMMENT
LOWsrc-tauri/src/app_dirs.rs121/// directory, so the only lever is the file name. Handing it an ABSOLUTE pathCOMMENT
LOWsrc-tauri/src/app_dirs.rs241COMMENT
LOWsrc-tauri/src/proxy_manager.rs141 /// routed through it at all. Receipts written before this existedCOMMENT
LOWsrc-tauri/src/proxy_manager.rs1521 }COMMENT
LOWsrc-tauri/src/proxy_manager.rs2601 // No proxy found for this profileCOMMENT
LOWsrc-tauri/src/proxy_manager.rs2761 }COMMENT
LOWsrc-tauri/src/system_proxy.rs1//! The proxy the operating system hands Donut's own HTTP clients.COMMENT
LOWsrc-tauri/src/launch_gate.rs1//! The pre-spawn gate.COMMENT
LOWsrc-tauri/src/launch_gate.rs141/// Say which of the three states a non-blocking check landed in.COMMENT
LOWsrc-tauri/src/launch_gate.rs321 // But a profile that DOES declare one and still arrives here with no upstreamCOMMENT
LOWsrc-tauri/src/launch_gate.rs421 pub exit_probe_pending: bool,COMMENT
LOWsrc-tauri/src/fs_secure.rs1//! Best-effort secure deletion.COMMENT
LOWsrc-tauri/src/fs_secure.rs61#[cfg(not(unix))]COMMENT
LOWsrc-tauri/src/dns_blocklist.rs61 }COMMENT
LOWsrc-tauri/src/proxy_udp.rs41COMMENT
LOWsrc-tauri/src/proxy_udp.rs61/// Only an accepted association counts as `Yes`. Every other reply is aCOMMENT
LOWsrc-tauri/src/lib.rs381COMMENT
220 more matches not shown…
Fake / Example Data238 hits · 276 pts
SeverityFileLineSnippetContext
LOWsrc-tauri/src/mcp_server.rs44 const ATTRS = ['type','name','id','role','aria-label','aria-checked','aria-expanded','placeholder','title','value','hrCODE
LOWsrc-tauri/src/mcp_server.rs1531 const ATTRS = ['id', 'name', 'type', 'role', 'href', 'src', 'placeholder', 'aria-label', 'title', 'alt', 'data-testid'CODE
LOWsrc-tauri/src/mcp_server.rs1566 const ph = el.getAttribute('placeholder'); if (ph && norm(ph)) return norm(ph).slice(0, 300);CODE
LOWsrc-tauri/src/mcp_server.rs16172 assert!(field_took(" Doe", "Jane", "Jane Doe", false, false));CODE
LOWsrc-tauri/src/mcp_server.rs16175 assert!(!field_took("Doe", "Jane Doe", "Jane Doe", false, false));CODE
LOWsrc-tauri/src/log_redaction.rs142 "user@example.com",CODE
LOWsrc/components/multiple-selector.tsx65 "value" | "placeholder" | "disabled"CODE
LOW⚡src/i18n/locales/zh.json3105 "placeholder": "搜索要启动的配置文件...",CODE
LOW⚡src/i18n/locales/zh.json3111 "placeholder": "搜索运行中的配置文件...",CODE
LOW⚡src/i18n/locales/zh.json3117 "placeholder": "搜索配置文件...",CODE
LOW⚡src/i18n/locales/zh.json3123 "placeholder": "搜索分组...",CODE
LOW⚡src/i18n/locales/zh.json4513 "placeholder": "发生了什么?你原本期望的结果是什么?提供复现步骤会很有帮助。"CODE
LOW⚡src/i18n/locales/zh.json4517 "placeholder": "怎样能让 Donut 更好用?"CODE
LOW⚡src/i18n/locales/zh.json4521 "placeholder": "你喜欢哪些地方?团队会很高兴听到。"CODE
LOW⚡src/i18n/locales/zh.json4525 "placeholder": "想说什么都可以。"CODE
LOWsrc/i18n/locales/zh.json327 "placeholder": "socks5://user:password@host:1080",CODE
LOWsrc/i18n/locales/zh.json522 "placeholder": "添加备注..."CODE
LOWsrc/i18n/locales/zh.json547 "placeholder": "https://example.com/track-launch"CODE
LOWsrc/i18n/locales/zh.json615 "placeholder": "https://example.com/hooks/profile-launch"CODE
LOWsrc/i18n/locales/zh.json833 "placeholder": "https://provider.example/change-ip?key=…",CODE
LOWsrc/i18n/locales/zh.json1303 "placeholder": "在此粘贴 Cookie。JSON(数组或 {cookies: [...]} 对象)、Netscape cookies.txt,或 name=value; name2=value2",CODE
LOWsrc/i18n/locales/zh.json1700 "placeholder": "https://example.com/hooks/profile-launch",CODE
LOWsrc/i18n/locales/zh.json1978 "placeholder": "输入 DNS 地址或留空",CODE
LOWsrc/i18n/locales/zh.json2013 "placeholder": "https://mail.example.com\nhttps://shop.example.com"CODE
LOWsrc/i18n/locales/zh.json2263 "placeholder": "选择代理或 VPN",CODE
LOWsrc/i18n/locales/zh.json2282 "placeholder": "选择分组",CODE
LOWsrc/i18n/locales/zh.json3086 "placeholder": "输入命令或搜索...",CODE
LOWsrc/i18n/locales/zh.json4548 "placeholder": "you@example.com",CODE
LOW⚡src/i18n/locales/tr.json3105 "placeholder": "Başlatılacak profilleri arayın...",CODE
LOW⚡src/i18n/locales/tr.json3111 "placeholder": "Çalışan profilleri arayın...",CODE
LOW⚡src/i18n/locales/tr.json3117 "placeholder": "Profilleri arayın...",CODE
LOW⚡src/i18n/locales/tr.json3123 "placeholder": "Grupları arayın...",CODE
LOW⚡src/i18n/locales/tr.json4513 "placeholder": "Ne oldu ve ne bekliyordunuz? Tekrarlama adımları çok yardımcı olur."CODE
LOW⚡src/i18n/locales/tr.json4517 "placeholder": "Donut'u sizin için ne daha iyi yapardı?"CODE
LOW⚡src/i18n/locales/tr.json4521 "placeholder": "Neyi seviyorsunuz? Ekip bunu duymaktan mutlu olur."CODE
LOW⚡src/i18n/locales/tr.json4525 "placeholder": "Bize her şeyi yazabilirsiniz."CODE
LOWsrc/i18n/locales/tr.json327 "placeholder": "socks5://user:password@host:1080",CODE
LOWsrc/i18n/locales/tr.json522 "placeholder": "Not ekleyin..."CODE
LOWsrc/i18n/locales/tr.json547 "placeholder": "https://example.com/track-launch"CODE
LOWsrc/i18n/locales/tr.json615 "placeholder": "https://example.com/hooks/profile-launch"CODE
LOWsrc/i18n/locales/tr.json833 "placeholder": "https://provider.example/change-ip?key=…",CODE
LOWsrc/i18n/locales/tr.json1303 "placeholder": "Çerezleri buraya yapıştırın. JSON (bir dizi veya {cookies: [...]} nesnesi), Netscape cookies.txt yCODE
LOWsrc/i18n/locales/tr.json1700 "placeholder": "https://example.com/hooks/profile-launch",CODE
LOWsrc/i18n/locales/tr.json1978 "placeholder": "Bir DNS adresi girin veya boş bırakın",CODE
LOWsrc/i18n/locales/tr.json2013 "placeholder": "https://mail.example.com\nhttps://shop.example.com"CODE
LOWsrc/i18n/locales/tr.json2263 "placeholder": "Bir proxy veya VPN seçin",CODE
LOWsrc/i18n/locales/tr.json2282 "placeholder": "Bir grup seçin",CODE
LOWsrc/i18n/locales/tr.json3086 "placeholder": "Bir komut yazın veya arayın...",CODE
LOWsrc/i18n/locales/tr.json4548 "placeholder": "siz@example.com",CODE
LOW⚡src/i18n/locales/ja.json3105 "placeholder": "起動するプロファイルを検索...",CODE
LOW⚡src/i18n/locales/ja.json3111 "placeholder": "実行中のプロファイルを検索...",CODE
LOW⚡src/i18n/locales/ja.json3117 "placeholder": "プロファイルを検索...",CODE
LOW⚡src/i18n/locales/ja.json3123 "placeholder": "グループを検索...",CODE
LOW⚡src/i18n/locales/ja.json4513 "placeholder": "何が起きて、本来はどうなるべきでしたか?再現手順があると助かります。"CODE
LOW⚡src/i18n/locales/ja.json4517 "placeholder": "Donut がどうなれば、もっと使いやすくなりますか?"CODE
LOW⚡src/i18n/locales/ja.json4521 "placeholder": "気に入っている点を教えてください。チームの励みになります。"CODE
LOW⚡src/i18n/locales/ja.json4525 "placeholder": "どんなことでもお聞かせください。"CODE
LOWsrc/i18n/locales/ja.json327 "placeholder": "socks5://user:password@host:1080",CODE
LOWsrc/i18n/locales/ja.json522 "placeholder": "メモを追加..."CODE
LOWsrc/i18n/locales/ja.json547 "placeholder": "https://example.com/track-launch"CODE
178 more matches not shown…
Decorative Section Separators38 hits · 111 pts
SeverityFileLineSnippetContext
MEDIUM⚡sdk/python/src/donutbrowser/client.py775 # ------------------------------------------------------------------COMMENT
MEDIUM⚡sdk/python/src/donutbrowser/client.py777 # ------------------------------------------------------------------COMMENT
MEDIUM⚡sdk/python/src/donutbrowser/client.py1282 # ------------------------------------------------------------------COMMENT
MEDIUM⚡sdk/python/src/donutbrowser/client.py1284 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py205 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py207 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py274 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py276 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py598 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py600 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py742 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py744 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py908 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py910 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py936 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py938 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py967 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py969 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py1031 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py1033 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py1117 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py1119 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py1165 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py1167 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py1309 # ------------------------------------------------------------------COMMENT
MEDIUMsdk/python/src/donutbrowser/client.py1311 # ------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh71# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh73# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh88# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh90# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh164# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh166# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh199# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh201# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh213# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/publish-repo.sh215# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc-tauri/src/proxy_manager.rs4118 // ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/proxy_manager.rs4120 // ──────────────────────────────────────────────────────────────────────COMMENT
Hyper-Verbose Identifiers74 hits · 94 pts
SeverityFileLineSnippetContext
LOW⚡sdk/python/tests/test_coverage.py28def test_the_snapshot_is_readable_and_not_empty() -> None:CODE
LOW⚡sdk/python/tests/test_coverage.py36def test_every_published_operation_is_wrapped_or_omitted() -> None:CODE
LOW⚡sdk/python/tests/test_coverage.py45def test_the_sdk_claims_nothing_the_app_does_not_publish() -> None:CODE
LOW⚡sdk/python/tests/test_coverage.py54def test_an_operation_is_either_wrapped_or_omitted_but_not_both() -> None:CODE
LOW⚡sdk/python/tests/test_coverage.py59def test_every_omission_gives_a_reason() -> None:CODE
LOW⚡sdk/python/tests/test_coverage.py64def test_every_wrapped_operation_names_a_real_method() -> None:CODE
LOW⚡sdk/python/tests/test_coverage.py70def test_no_two_operations_share_a_method() -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py11def test_arguments_are_used_as_given() -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py19def test_the_environment_fills_in_what_was_not_passed() -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py25def test_arguments_win_over_the_environment() -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py35def test_the_port_falls_back_to_the_app_default() -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py40def test_a_base_url_overrides_host_and_port() -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py50def test_a_base_url_prefix_is_kept_on_every_path(fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py58def test_an_unusable_port_in_the_environment_is_reported() -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py64def test_an_unsupported_scheme_is_refused() -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py69def test_the_websocket_address_is_built_from_the_same_base() -> None:CODE
LOW⚡sdk/python/tests/test_configuration.py77def test_a_reopened_client_still_works(fake: FakeDonut) -> None:CODE
LOWsdk/python/tests/test_errors.py44def test_status_maps_to_its_exception(CODE
LOW⚡sdk/python/tests/test_errors.py56def test_every_error_is_a_donut_error(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_errors.py62def test_the_five_hundreds_share_one_base(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_errors.py70def test_rate_limited_carries_retry_after(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_errors.py81def test_rate_limited_without_the_header_is_still_raised(CODE
LOW⚡sdk/python/tests/test_errors.py90def test_an_unreadable_retry_after_does_not_break_the_error(CODE
LOW⚡sdk/python/tests/test_errors.py99def test_a_structured_code_body_is_decoded(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_errors.py108def test_a_structured_code_body_keeps_its_params(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_errors.py116def test_a_plain_text_body_leaves_code_unset(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_errors.py124def test_an_undocumented_status_still_raises_something_catchable(CODE
LOW⚡sdk/python/tests/test_errors.py133def test_an_undocumented_server_status_is_a_server_error(CODE
LOW⚡sdk/python/tests/test_errors.py141def test_the_message_names_the_call(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_errors.py149def test_an_unreachable_app_is_not_an_api_error(fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_errors.py158def test_a_missing_token_fails_before_any_request() -> None:CODE
LOW⚡sdk/python/tests/test_errors.py164def test_a_non_json_answer_is_reported_as_such(client: DonutClient, fake: FakeDonut) -> None:CODE
LOWsdk/python/tests/test_session.py13def test_the_block_gets_the_cdp_endpoint(client: DonutClient, fake: FakeDonut) -> None:CODE
LOWsdk/python/tests/test_session.py30def test_nothing_launches_until_the_block_is_entered(CODE
LOWsdk/python/tests/test_session.py38def test_the_browser_is_stopped_when_the_block_raises(CODE
LOWsdk/python/tests/test_session.py54def test_a_failed_stop_never_hides_why_the_block_failed(CODE
LOWsdk/python/tests/test_session.py68def test_a_failed_stop_is_raised_when_the_block_was_fine(CODE
LOW⚡sdk/python/tests/test_session.py79def test_a_failed_launch_stops_nothing(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_session.py89def test_the_cdp_url_is_refused_before_the_block(client: DonutClient) -> None:CODE
LOW⚡sdk/python/tests/test_session.py95def test_a_browser_taken_over_is_left_running(client: DonutClient, fake: FakeDonut) -> None:CODE
LOWsdk/python/tests/test_requests.py848def test_method_sends_the_documented_request(CODE
LOW⚡sdk/python/tests/test_requests.py863def test_every_client_method_is_exercised_here() -> None:CODE
LOW⚡sdk/python/tests/test_requests.py870def test_the_token_travels_as_a_bearer_header(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_requests.py878def test_a_body_is_sent_as_json(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_requests.py885def test_path_ids_are_escaped(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_requests.py891def test_none_arguments_are_left_out_of_the_body(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_requests.py896def test_an_empty_string_still_reaches_the_app(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_requests.py902def test_a_no_content_answer_becomes_none(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_requests.py907def test_a_json_answer_is_returned_as_sent(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/tests/test_requests.py915def test_a_bare_boolean_answer_is_returned(client: DonutClient, fake: FakeDonut) -> None:CODE
LOW⚡sdk/python/src/donutbrowser/client.py779 def list_cookie_bot_schedules(self, *, scope: Optional[str] = None) -> CookieBotScheduleList:CODE
LOW⚡sdk/python/src/donutbrowser/client.py1275 def remove_extension_from_group(self, group_id: str, extension_id: str) -> ExtensionGroup:CODE
LOWsdk/python/src/donutbrowser/client.py833 def delete_cookie_bot_schedule(self, profile_id: str) -> CookieBotScheduleDeleted:CODE
LOWsdk/python/src/donutbrowser/client.py1015 def create_profiles_from_template(CODE
LOWsrc/app/page.tsx143function consistencyFromErrorParams(CODE
LOWsrc/components/window-resize-warning-dialog.tsx22export function WindowResizeWarningDialog({CODE
LOWsrc/components/cookie-management-dialog.tsx106function initSelectionFromCookieData(data: CookieReadResult): SelectionState {CODE
LOWsrc/components/extension-management-dialog.tsx151export function ExtensionManagementDialog({CODE
LOWsrc/components/extension-group-assignment-dialog.tsx36export function ExtensionGroupAssignmentDialog({CODE
LOWsrc/components/proxy-import-dialog.tsx52function isFirstHopCipherUndecided(proxy: ParsedProxyLine): boolean {CODE
14 more matches not shown…
Unused Imports32 hits · 31 pts
SeverityFileLineSnippetContext
LOWsdk/tools/extract-api-paths.py19CODE
LOWsdk/python/tests/conftest.py1CODE
LOWsdk/python/tests/test_coverage.py9CODE
LOWsdk/python/tests/test_configuration.py3CODE
LOWsdk/python/tests/test_errors.py3CODE
LOWsdk/python/tests/test_session.py3CODE
LOWsdk/python/tests/fake_donut.py8CODE
LOWsdk/python/tests/test_requests.py10CODE
LOWsdk/python/src/donutbrowser/models.py18CODE
LOWsdk/python/src/donutbrowser/client.py10CODE
LOWsdk/python/src/donutbrowser/__init__.py16CODE
LOWsdk/python/src/donutbrowser/__init__.py16CODE
LOWsdk/python/src/donutbrowser/__init__.py16CODE
LOWsdk/python/src/donutbrowser/__init__.py16CODE
LOWsdk/python/src/donutbrowser/__init__.py17CODE
LOWsdk/python/src/donutbrowser/__init__.py17CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/__init__.py18CODE
LOWsdk/python/src/donutbrowser/coverage.py15CODE
LOWsdk/python/src/donutbrowser/errors.py27CODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMdonut-sync/docker-compose.yml16 # `rclone serve s3` is what scripts/sync-test-harness.mjs uses too.COMMENT
MEDIUM.github/codeql/codeql-config.yml7# fixtures, and the E2E harness downloads its own driver and browser bundle,COMMENT
Modern Structural Boilerplate5 hits · 4 pts
SeverityFileLineSnippetContext
LOWsdk/python/src/donutbrowser/models.py22__all__ = [CODE
LOWsdk/python/src/donutbrowser/client.py80__all__ = ["DonutClient", "RunSession", "DEFAULT_PORT", "DEFAULT_HOST"]CODE
LOWsdk/python/src/donutbrowser/__init__.py37__all__ = [CODE
LOWsdk/python/src/donutbrowser/coverage.py19__all__ = ["OPERATIONS", "OMITTED"]CODE
LOWsdk/python/src/donutbrowser/errors.py32__all__ = [CODE
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/dev.sh99 # Check if process is still runningCOMMENT
LOWscripts/dev.sh125 # Check if sync backend diedCOMMENT
LOWscripts/dev.sh131 # Check if Tauri diedCOMMENT
Modern AI Meta-Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMAGENTS.md54│ │ ├── browser_runner.rs # Profile launch/kill orchestrationCODE
MEDIUMCLAUDE.md54│ │ ├── browser_runner.rs # Profile launch/kill orchestrationCODE
Deep Nesting3 hits · 2 pts
SeverityFileLineSnippetContext
LOWsdk/tools/extract-api-paths.py83CODE
LOWsdk/python/src/donutbrowser/client.py135CODE
LOWsdk/python/src/donutbrowser/client.py214CODE
AI Structural Patterns2 hits · 1 pts
SeverityFileLineSnippetContext
LOWsdk/python/src/donutbrowser/client.py294CODE
LOWsdk/python/src/donutbrowser/client.py346CODE