AI Slop Code RIsk Monitor

Screenly/Anthias

The world's most popular open source digital signage project.

27.6 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for Screenly/Anthias, a Python project with 3,689 GitHub stars. SynthScan examined 119,973 lines of code across 444 source files, recording 2621 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 27.6 (Elevated 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.

27.6
Adjusted Signal
27.6
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
3.7K
Stars
Python
Language
120.0K
Lines of Code
444
Files
2.6K
Pattern Hits
2026-10-12
Scan Date
0.09
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 51.4/100 · HIGH

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

Hallucinated Dependency & Supply Chain Risk 4.9/100 · LOW

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

Agent Over-Engineering Ratio 68.2/100 · HIGH

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

PR Review Velocity Impact 77.0/100 · CRITICAL

Which changes need focused human review? 2621 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 1HIGH 41MEDIUM 348LOW 2231

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 2621 distinct pattern matches across 18 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.

Hyper-Verbose Identifiers1605 hits · 1298 pts
SeverityFileLineSnippetContext
LOWconftest.py311def pytest_collection_modifyitems(CODE
LOW⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py134def test_get_latest_tag_honours_release_tag_env(CODE
LOW⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py176def test_get_board_from_url_returns_none_for_non_image(url: str) -> None:CODE
LOW⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py185def test_get_asset_list_filters_to_supported_boards(CODE
LOW⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py211def test_get_asset_list_excludes_non_xz(CODE
LOW⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py224def test_retrieve_and_patch_json_patches_url(CODE
LOW⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py303def test_every_supported_board_has_device_tags() -> None:CODE
LOW⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py317def test_build_imager_json_emits_one_entry_per_supported_board(CODE
LOW⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py327def test_build_imager_json_round_trips_through_json(CODE
LOW…raspberry_pi_imager/tests/test_build_pi_imager_json.py160def test_get_board_from_url_extracts_board(CODE
LOW…raspberry_pi_imager/tests/test_build_pi_imager_json.py235def test_retrieve_and_patch_json_converts_sizes_to_int(CODE
LOW…raspberry_pi_imager/tests/test_build_pi_imager_json.py250def test_retrieve_and_patch_json_marks_maintenance_boards(CODE
LOW…raspberry_pi_imager/tests/test_build_pi_imager_json.py264def test_retrieve_and_patch_json_skips_maintenance_for_modern_boards(CODE
LOW…raspberry_pi_imager/tests/test_build_pi_imager_json.py277def test_retrieve_and_patch_json_has_all_required_fields(CODE
LOW…raspberry_pi_imager/tests/test_build_pi_imager_json.py292def test_retrieve_and_patch_json_adds_device_tags(CODE
LOW…raspberry_pi_imager/tests/test_build_pi_imager_json.py341def test_build_imager_json_tags_every_entry_for_its_board(CODE
LOWbin/balena_unpin_devices.py499def latest_supervisor_release(CODE
LOWtests/test_recheck_endpoint.py71def test_enqueues_task_when_no_lock_held() -> None:CODE
LOWtests/test_recheck_endpoint.py86def test_skips_enqueue_when_queue_debounce_held() -> None:CODE
LOWtests/test_recheck_endpoint.py108def test_back_to_back_calls_only_enqueue_once() -> None:CODE
LOWtests/test_recheck_endpoint.py130def test_missing_internal_auth_is_forbidden() -> None:CODE
LOWtests/test_recheck_endpoint.py141def test_internal_auth_works_without_basic_auth() -> None:CODE
LOWtests/test_csrf.py44def test_same_host_http_origin_passes() -> None:CODE
LOWtests/test_csrf.py57def test_same_host_https_origin_on_http_passes() -> None:CODE
LOWtests/test_csrf.py74def test_host_with_port_origin_without_port_passes() -> None:CODE
LOWtests/test_csrf.py93def test_same_host_distinct_non_default_ports_rejected() -> None:CODE
LOWtests/test_csrf.py110def test_default_port_origin_vs_non_default_host_port_rejected() -> None:CODE
LOWtests/test_csrf.py128def test_cross_host_origin_still_rejected() -> None:CODE
LOWtests/test_csrf.py141def test_missing_token_still_rejected() -> None:CODE
LOWtests/test_csrf.py156def test_bad_token_still_rejected() -> None:CODE
LOWtests/test_csrf.py169def test_no_origin_header_still_works() -> None:CODE
LOW⚡tests/test_csrf.py196def test_iis_rewrite_host_proxy_without_trusted_origin_rejected() -> None:CODE
LOWtests/test_csrf.py213def test_iis_rewrite_host_proxy_with_trusted_origin_passes(CODE
LOWtests/test_csrf.py233def test_trusted_origin_does_not_open_other_hosts(CODE
LOW⚡tests/test_undervoltage.py72 def test_returns_none_without_the_driver(CODE
LOW⚡tests/test_undervoltage.py82 def test_returns_none_when_hwmon_is_absent(CODE
LOW⚡tests/test_undervoltage.py89 def test_ignores_rpi_volt_without_the_attribute(CODE
LOW⚡tests/test_undervoltage.py114 def test_unsupported_reads_none_not_false(CODE
LOW⚡tests/test_undervoltage.py124 def test_unreadable_attribute_is_unknown(self, tmp_path: Path) -> None:CODE
LOW⚡tests/test_undervoltage.py131 def test_first_alarm_sets_the_latch(self, fake_redis: MagicMock) -> None:CODE
LOW⚡tests/test_undervoltage.py227 def test_same_boot_survives_a_reread(self, fake_redis: MagicMock) -> None:CODE
LOW⚡tests/test_undervoltage.py235 def test_corrupt_latch_is_discarded(self, fake_redis: MagicMock) -> None:CODE
LOW⚡tests/test_undervoltage.py244 def test_boot_id_is_persisted(self, fake_redis: MagicMock) -> None:CODE
LOW⚡tests/test_undervoltage.py254 def test_redis_failure_still_returns_the_reading(CODE
LOW⚡tests/test_undervoltage.py508 def test_healthy_device_never_creates_the_key(CODE
LOW⚡tests/test_undervoltage.py518 def test_a_real_change_still_writes(self, fake_redis: MagicMock) -> None:CODE
LOW⚡tests/test_undervoltage.py526 def test_unreadable_redis_does_not_erase_history(CODE
LOWtests/test_undervoltage.py53 def test_finds_rpi_volt_among_other_sensors(CODE
LOWtests/test_undervoltage.py102 def test_reads_the_boolean_attribute(CODE
LOWtests/test_undervoltage.py142 def test_recovery_clears_active_but_not_history(CODE
LOWtests/test_undervoltage.py156 def test_distinct_brown_outs_accumulate(CODE
LOWtests/test_undervoltage.py170 def test_sustained_brown_out_counts_once(CODE
LOWtests/test_undervoltage.py186 def test_worker_restart_does_not_inflate_the_count(CODE
LOWtests/test_undervoltage.py199 def test_corrupt_count_does_not_raise(self, fake_redis: MagicMock) -> None:CODE
LOWtests/test_undervoltage.py214 def test_reboot_resets_the_latch(self, fake_redis: MagicMock) -> None:CODE
LOWtests/test_undervoltage.py280 def test_healthy_board_does_not_warn(CODE
LOWtests/test_undervoltage.py295 def test_live_alarm_warns_without_a_latch(CODE
LOWtests/test_undervoltage.py312 def test_history_warns_after_recovery(CODE
LOWtests/test_undervoltage.py329 def test_live_alarm_is_written_back_to_the_latch(CODE
LOWtests/test_undervoltage.py349 def test_warning_survives_recovery_after_a_render_only_sighting(CODE
1545 more matches not shown…
Decorative Section Separators332 hits · 1179 pts
SeverityFileLineSnippetContext
MEDIUMconftest.py53# ---------------------------------------------------------------------------COMMENT
MEDIUMconftest.py55# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡conftest.py85# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡conftest.py87# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡conftest.py92# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡conftest.py94# ---------------------------------------------------------------------------COMMENT
MEDIUMconftest.py140# ---------------------------------------------------------------------------COMMENT
MEDIUMconftest.py142# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py129# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py131# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py144# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py146# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py180# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py182# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py219# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py221# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py312# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…raspberry_pi_imager/tests/test_build_pi_imager_json.py314# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py199# --------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py201# --------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py230# --------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py232# --------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py345# --------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py347# --------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py475# --------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py477# --------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py565# --------------------------------------------------------------------------COMMENT
MEDIUMbin/balena_unpin_devices.py567# --------------------------------------------------------------------------COMMENT
MEDIUM⚡bin/collect_debug.sh41# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡bin/collect_debug.sh43# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh92# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh94# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh137# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh139# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh226# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh228# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh482# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh484# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh517# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh519# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh561# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh563# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh635# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh637# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh692# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh694# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh795# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh797# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh809# ---------------------------------------------------------------------------COMMENT
MEDIUMbin/collect_debug.sh811# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_csrf.py183# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_csrf.py190# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_diagnostics.py149# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_diagnostics.py157# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_utils.py379# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_utils.py435# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_utils.py522# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_processing.py740# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_processing.py742# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_processing.py1791# ---------------------------------------------------------------------------COMMENT
272 more matches not shown…
Over-Commented Block381 hits · 343 pts
SeverityFileLineSnippetContext
LOWconftest.py61# job runs with ``-p no:django`` in a *minimal* venv that has neitherCOMMENT
LOWpyproject.toml61 # libheif1 system package is supplied by the base image (seeCOMMENT
LOWpyproject.toml161COMMENT
LOWdocker-compose.test.yml1# vim: ft=yaml.docker-composeCOMMENT
LOWtools/image_builder/utils.py101 builder_extra_apt = [COMMENT
LOWtools/image_builder/utils.py161COMMENT
LOWtools/image_builder/utils.py181 qt5_toolchain_url = f'{releases_url}/WebView-v2026.07.1'COMMENT
LOWtools/image_builder/utils.py201 # * Pi2 / Pi3 (32-bit, Qt5): Qt linuxfb + a custom -no-xcbCOMMENT
LOWtools/image_builder/utils.py281 # ``VideoOutput`` hosted in a QQuickWidget (issue #2967:COMMENT
LOWtools/image_builder/utils.py301 # gstreamer plugin set needed. VLC is deliberately notCOMMENT
LOWtools/image_builder/utils.py341 #COMMENT
LOWtools/image_builder/utils.py361 # enough to issue the ioctl; see anthias_common/smart.py.COMMENT
LOWtools/image_builder/utils.py381 # via V4L2 M2M / request API, not VAAPI; mesa-va-driversCOMMENT
LOWtools/image_builder/utils.py401 # plays pi1/pi2/pi3 video by shelling out to ``gst-launch-1.0COMMENT
LOWtools/image_builder/__main__.py61 f'Warning: Failed to create cache directory: {e}',COMMENT
LOWtools/image_builder/__main__.py81 'ffmpeg',COMMENT
LOWtools/image_builder/__main__.py181 #COMMENT
LOWtools/image_builder/__main__.py201 # Hardcode the GHCR-primary namespace so the cache lives next toCOMMENT
LOWtools/image_builder/__main__.py361COMMENT
LOWtools/raspberry_pi_imager/build_pi_imager_json.py21# one. `pi2` stays because the Pi 2 has no 64-bit option.COMMENT
LOWbin/balena_unpin_devices.py121KEEP_PINNED_TAG = 'anthias_keep_pinned'COMMENT
LOWbin/balena_unpin_devices.py141# balenaOS 5.1.x, whose devices run supervisor 15.x; pushing 17.x thereCOMMENT
LOWbin/enable_ssl.sh1#!/bin/bash -eCOMMENT
LOWbin/enable_ssl.sh21# A compose override (docker-compose.ssl.override.yml) is generated to:COMMENT
LOWbin/enable_ssl.sh161}COMMENT
LOWbin/collect_debug.sh1#!/bin/bashCOMMENT
LOWbin/collect_debug.sh21#COMMENT
LOWbin/collect_debug.sh241section "Mounts" "$SYS" mountCOMMENT
LOWbin/collect_debug.sh281 echo "a kernel built without CONFIG_SENSORS_RASPBERRYPI_HWMON."COMMENT
LOWbin/collect_debug.sh701section "Listening sockets" "$NET" sh -c 'ss -tlnp 2>/dev/null || netstat -tlnp 2>/dev/null'COMMENT
LOWbin/collect_debug.sh721# should land as more of them move into the UI: adding a field to theCOMMENT
LOWbin/migrate_legacy_paths.sh1#!/bin/bashCOMMENT
LOWbin/migrate_legacy_paths.sh21# parallel reimplementation.COMMENT
LOWbin/generate_board_enablement_testbed.sh1#!/usr/bin/env bashCOMMENT
LOWbin/install.sh381 [ "$(uv --version 2>/dev/null | awk '{print $2}')" != "${UV_PIN_VERSION}" ]; thenCOMMENT
LOWbin/install.sh461 # so `uname -m` reports aarch64 while Docker/apt are armhf.COMMENT
LOWbin/install.sh501 cd "${ANTHIAS_REPO_DIR}/ansible"COMMENT
LOWbin/install.sh561 # Free the RAM held by the previous-version stack (server, viewer,COMMENT
LOWbin/rebuild_qt5_toolchain.sh1#!/usr/bin/env bashCOMMENT
LOWbin/rebuild_qt5_toolchain.sh21# (a) two parallel builds will OOM most hosts and (b) the LinaroCOMMENT
LOWbin/rebuild_qt5_toolchain.sh61COMMENT
LOWbin/start_viewer.sh1#!/bin/bashCOMMENT
LOWbin/start_viewer.sh41# the system interpreter, which has no Anthias deps installed.COMMENT
LOWbin/build_favicons.sh1#!/usr/bin/env bashCOMMENT
LOWbin/upgrade_containers.sh1#!/bin/bash -eCOMMENT
LOWbin/upgrade_containers.sh21# against a decompression-bomb fixture or runaway ffprobe, notCOMMENT
LOWbin/upgrade_containers.sh61# Detect Raspberry Pi version. Pi 4 is always treated as pi4-64 (theCOMMENT
LOWbin/upgrade_containers.sh101 # @TODO: Rename laterCOMMENT
LOWbin/upgrade_containers.sh161# No CEC device passthrough is needed, on any board.COMMENT
LOWbin/upgrade_containers.sh181SSL_OVERRIDE=/home/${USER}/anthias/docker-compose.ssl.override.ymlCOMMENT
LOWbin/upgrade_containers.sh221# instances left over from earlier `docker compose run` invocations).COMMENT
LOWbin/migrate_in_container_paths.sh1#!/bin/bashCOMMENT
LOWbin/purge_stale_images.sh1#!/bin/bashCOMMENT
LOWbin/purge_stale_images.sh21# *tagged* images is restricted to the Anthias repositories, and onlyCOMMENT
LOWbin/render_balena_yml.sh1#!/bin/bashCOMMENT
LOWbin/balena_ota_deploy.sh1#!/bin/bashCOMMENT
LOWbin/test_webview_cpp.sh1#!/usr/bin/env bashCOMMENT
LOWbin/lib/viewer/common.sh1# shellcheck shell=bashCOMMENT
LOWbin/lib/viewer/common.sh21# from upstream mpv (RK3399 / Rock Pi 4 today; future Rockchip /COMMENT
LOWbin/lib/viewer/common.sh41 # Rockchip / Allwinner / Amlogic stateless decoders. TheCOMMENT
321 more matches not shown…
Empty Error Handlers29 hits · 145 pts
SeverityFileLineSnippetContext
HIGHbin/balena_fleet_maintenance.py183except FileNotFoundError:CODE
HIGHtests/test_viewer.py2091except OSError:CODE
HIGHtests/test_app.py102except FileNotFoundError:CODE
HIGHtests/test_app.py884except FileNotFoundError:CODE
HIGHsrc/anthias_viewer/media_player.py716except OSError:CODE
HIGHsrc/anthias_viewer/media_player.py723except (OSError, ValueError):CODE
HIGHsrc/anthias_viewer/media_player.py729except (OSError, ValueError):CODE
HIGHsrc/anthias_viewer/media_player.py876except (ProcessLookupError, OSError):CODE
HIGHsrc/anthias_viewer/media_player.py870except (CODE
HIGHsrc/anthias_viewer/__init__.py2332except OSError:CODE
HIGHsrc/anthias_viewer/__init__.py2339except (OSError, IndexError):CODE
HIGHsrc/anthias_viewer/__init__.py2356except (OSError, ValueError, TypeError):CODE
HIGHsrc/anthias_viewer/messaging.py77except redis.ConnectionError:CODE
HIGHsrc/anthias_viewer/messaging.py89except redis.ConnectionError:CODE
HIGHsrc/anthias_common/storage_health.py767except OSError:CODE
HIGHsrc/anthias_common/storage_health.py751except (AttributeError, OSError):CODE
HIGHsrc/anthias_common/utils.py422except OSError:CODE
HIGHsrc/anthias_common/utils.py700except requests.exceptions.RequestException:CODE
HIGHsrc/anthias_common/device_helper.py132except OSError:CODE
HIGHsrc/anthias_webview/pyshim/imp.py147except Exception:CODE
HIGHsrc/anthias_server/processing.py852except OSError:CODE
HIGHsrc/anthias_server/processing.py975except OSError:CODE
HIGHsrc/anthias_server/celery_tasks.py1319except OSError:CODE
HIGHsrc/anthias_server/app/views.py1737except _json.JSONDecodeError:CODE
HIGHsrc/anthias_server/lib/cec.py728except OSError:CODE
HIGHsrc/anthias_server/lib/cec.py356except OSError:CODE
HIGHsrc/anthias_server/lib/integrations/ingest.py160except OSError:CODE
HIGHsrc/anthias_server/api/helpers.py142except ValueError:CODE
HIGHsrc/anthias_server/api/views/v2.py274except redis.RedisError:CODE
Excessive Try-Catch Wrapping74 hits · 78 pts
SeverityFileLineSnippetContext
LOWtools/image_builder/__main__.py59 except Exception as e:CODE
LOWbin/migrate_legacy_paths.sh177 except Exception:CODE
MEDIUMbin/migrate_legacy_paths.sh173def asset_count(path):CODE
LOWtests/test_processing.py69except Exception:CODE
LOWsrc/anthias_viewer/media_player.py655 except Exception:CODE
LOWsrc/anthias_viewer/media_player.py670 except Exception:CODE
LOWsrc/anthias_viewer/media_player.py943 except Exception as exc:CODE
LOWsrc/anthias_viewer/__init__.py986 except Exception:CODE
LOWsrc/anthias_viewer/__init__.py1005 except Exception:CODE
LOWsrc/anthias_viewer/__init__.py1042 except Exception:CODE
LOWsrc/anthias_viewer/__init__.py1752 except Exception as exc:CODE
LOWsrc/anthias_viewer/__init__.py1805 except Exception as exc:CODE
LOWsrc/anthias_viewer/__init__.py1810 except Exception:CODE
LOWsrc/anthias_viewer/__init__.py1888 except Exception as exc:CODE
LOWsrc/anthias_viewer/__init__.py2008 except Exception as exc:CODE
LOWsrc/anthias_viewer/__init__.py2118 except Exception:CODE
LOWsrc/anthias_viewer/__init__.py2669 except Exception:CODE
LOWsrc/anthias_viewer/__init__.py2949 except Exception as exc:CODE
LOWsrc/anthias_viewer/__init__.py3037 except Exception:CODE
LOWsrc/anthias_viewer/__init__.py3099 except Exception:CODE
LOWsrc/anthias_viewer/__init__.py3127 except Exception:CODE
LOWsrc/anthias_viewer/__main__.py10 except Exception:CODE
LOWsrc/anthias_common/board.py62 except Exception:CODE
LOWsrc/anthias_common/storage_health.py821 except Exception:CODE
LOWsrc/anthias_common/storage_health.py886 except Exception:CODE
LOWsrc/anthias_common/storage_health.py899 except Exception:CODE
LOWsrc/anthias_common/version.py45 except Exception:CODE
LOWsrc/anthias_common/version.py66 except Exception:CODE
LOWsrc/anthias_common/smart.py350 except Exception:CODE
LOWsrc/anthias_common/smart.py364 except Exception:CODE
LOWsrc/anthias_common/utils.py480 except Exception:CODE
LOWsrc/anthias_common/utils.py536 except Exception:CODE
LOWsrc/anthias_common/undervoltage.py263 except Exception:CODE
LOWsrc/anthias_common/undervoltage.py375 except Exception:CODE
MEDIUMsrc/anthias_common/undervoltage.py124def _scan_for_alarm_path() -> str | None:CODE
LOWsrc/anthias_webview/pyshim/imp.py147 except Exception:CODE
LOW⚡src/anthias_server/processing.py522 except Exception:CODE
LOW⚡src/anthias_server/processing.py529 except Exception:CODE
LOWsrc/anthias_server/processing.py554except Exception: # pragma: no cover - graceful no-op on hosts w/o libheifCODE
LOWsrc/anthias_server/processing.py628 except Exception:CODE
LOWsrc/anthias_server/processing.py990 except Exception:CODE
MEDIUMsrc/anthias_server/celery_tasks.py568def send_telemetry_task() -> None:CODE
LOWsrc/anthias_server/celery_tasks.py389 except Exception:CODE
LOWsrc/anthias_server/celery_tasks.py410 except Exception:CODE
LOWsrc/anthias_server/celery_tasks.py537 except Exception:CODE
LOWsrc/anthias_server/celery_tasks.py697 except Exception:CODE
LOWsrc/anthias_server/celery_tasks.py754 except Exception:CODE
LOWsrc/anthias_server/celery_tasks.py822 except Exception:CODE
LOWsrc/anthias_server/celery_tasks.py1537 except Exception:CODE
LOWsrc/anthias_server/celery_tasks.py1848 except Exception:CODE
LOWsrc/anthias_server/app/consumers.py190 except Exception:CODE
LOWsrc/anthias_server/app/page_context.py93 except Exception:CODE
LOWsrc/anthias_server/app/page_context.py129 except Exception:CODE
LOWsrc/anthias_server/app/page_context.py161 except Exception:CODE
MEDIUMsrc/anthias_server/app/page_context.py158def _storage_state() -> dict[str, Any]:CODE
LOWsrc/anthias_server/app/views.py1994 except Exception as exc:CODE
LOWsrc/anthias_server/lib/storage_watcher.py141 except Exception:CODE
LOWsrc/anthias_server/lib/telemetry.py70 except Exception as exc:CODE
MEDIUMsrc/anthias_server/lib/telemetry.py56def _get_asset_counts() -> dict[str, int]:CODE
LOWsrc/anthias_server/lib/backup_helper.py212 except Exception:CODE
14 more matches not shown…
Unused Imports63 hits · 57 pts
SeverityFileLineSnippetContext
LOWconftest.py73CODE
LOWbin/balena_unpin_devices.py81CODE
LOWbin/shoot_pages.py17CODE
LOWbin/balena_fleet_maintenance.py41CODE
LOWemails/render_logo.py22CODE
LOWtests/test_csrf.py10CODE
LOWtests/test_processing.py31CODE
LOWtests/test_template_state_reset.py40CODE
LOWtests/test_auth.py20CODE
LOWtests/test_login_view.py10CODE
LOWtests/test_design_system_page.py18CODE
LOWtests/test_sentry.py392CODE
LOWtests/test_sentry.py415CODE
LOWtests/test_firmware_string_sanitizing.py16CODE
LOWtests/test_email_tokens.py22CODE
LOWtests/test_migrate_to_screenly.py15CODE
LOWtests/test_error_pages.py11CODE
LOWtests/test_design_tokens.py16CODE
LOWtests/_seed_data.py24CODE
LOWtests/test_remote_video.py13CODE
LOWtests/test_storage_watcher.py3CODE
LOWtests/test_host_agent_device_model.py22CODE
LOWtests/test_host_agent_board_subtype.py20CODE
LOWtests/test_host_agent_ifaddrs.py11CODE
LOWtests/test_smart.py8CODE
LOWtests/test_app.py30CODE
LOWtests/test_template_views.py11CODE
LOWtests/test_storage_health.py10CODE
LOWsrc/anthias_common/board.py35CODE
LOWsrc/anthias_common/storage_health.py75CODE
LOWsrc/anthias_common/version.py11CODE
LOWsrc/anthias_common/youtube.py12CODE
LOWsrc/anthias_common/remote_video.py17CODE
LOWsrc/anthias_common/smart.py44CODE
LOWsrc/anthias_common/http.py13CODE
LOWsrc/anthias_common/undervoltage.py49CODE
LOWsrc/anthias_host_agent/ifaddrs.py18CODE
LOWsrc/anthias_webview/pyshim/pipes.py6CODE
LOWsrc/anthias_server/processing.py57CODE
LOWsrc/anthias_server/app/design_system.py21CODE
LOW…thias_server/app/management/commands/import_content.py11CODE
LOWsrc/anthias_server/lib/auth.py66CODE
LOWsrc/anthias_server/lib/csrf.py37CODE
LOWsrc/anthias_server/lib/storage_watcher.py35CODE
LOWsrc/anthias_server/lib/screenly_migration.py14CODE
LOWsrc/anthias_server/lib/undervoltage_watcher.py26CODE
LOWsrc/anthias_server/lib/timezone.py17CODE
LOWsrc/anthias_server/lib/integrations/screencloud.py25CODE
LOWsrc/anthias_server/lib/integrations/ingest.py20CODE
LOWsrc/anthias_server/lib/integrations/graphql.py10CODE
LOWsrc/anthias_server/lib/integrations/registry.py9CODE
LOWsrc/anthias_server/lib/integrations/xibo.py25CODE
LOWsrc/anthias_server/lib/integrations/pisignage.py22CODE
LOWsrc/anthias_server/lib/integrations/http.py14CODE
LOWsrc/anthias_server/lib/integrations/base.py19CODE
LOWsrc/anthias_server/lib/integrations/yodeck.py20CODE
LOWsrc/anthias_server/api/admin.py1CODE
LOWsrc/anthias_server/api/tests/test_pisignage_import.py9CODE
LOWsrc/anthias_server/api/tests/test_xibo_import.py9CODE
LOWsrc/anthias_server/api/tests/test_yodeck_import.py14CODE
3 more matches not shown…
Cross-Language Confusion12 hits · 52 pts
SeverityFileLineSnippetContext
HIGHtests/test_app.py334 ' return el && typeof window.Alpine?.$data(el)?.openAdd === "function";'CODE
HIGHtests/test_app.py1028 _alpine_state(page, 'state.editAsset && state.editAsset.asset_id')CODE
HIGHtests/test_app.py1227 'state.previewAsset && state.previewAsset.asset_id',CODE
HIGHtests/test_app.py1252 'state.previewAsset && state.previewAsset.asset_id',CODE
HIGHtests/test_app.py1288 'state.previewAsset && state.previewAsset.asset_id',CODE
HIGHtests/test_app.py2005 if (l && l.textContent.trim() === label) {CODE
HIGHtests/test_app.py2009 return null;CODE
HIGHtests/test_app.py2059 if (memLegend[i] !== undefined) row.textContent = memLegend[i];CODE
HIGHtests/test_app.py2076 if (diskLegend[i] !== undefined) row.textContent = diskLegend[i];CODE
HIGHtests/test_app.py2089 : null;CODE
HIGHtests/test_app.py113 if (!el) return null;STRING
HIGHtests/test_app.py550 return Boolean(el && el.closest('.modal-card'));STRING
Modern Structural Boilerplate53 hits · 52 pts
SeverityFileLineSnippetContext
LOWbin/shoot_pages.py87def _setup_django(seed: bool) -> None:CODE
LOWtests/test_celery_tasks.py35def _set_mtime(file_path: str, age_seconds: int) -> None:CODE
LOWtests/test_app.py1862def _set_clock_toggle(page: Page, use_24h: bool) -> None:CODE
LOWtests/test_app.py1926def _set_date_format(page: Page, value: str) -> None:CODE
LOWtests/test_app.py1982 def _set_name(value: str) -> None:CODE
LOWsrc/anthias_viewer/media_player.py16logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_viewer/media_player.py38def set_browser_bus(bus: Any) -> None:CODE
LOWsrc/anthias_viewer/media_player.py55def set_send_to_webview(fn: Any) -> None:CODE
LOWsrc/anthias_viewer/media_player.py521 def set_asset(self, uri: str, duration: int | str) -> None:CODE
LOWsrc/anthias_viewer/media_player.py625 def set_asset(self, uri: str, duration: int | str) -> None:CODE
LOWsrc/anthias_viewer/media_player.py797 def set_asset(self, uri: str, duration: int | str) -> None:CODE
LOWsrc/anthias_viewer/__init__.py87logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_viewer/utils.py13logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_viewer/scheduling.py12logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_viewer/scheduling.py201 def update_playlist(self, *, allow_reshuffle: bool = False) -> None:CODE
LOWsrc/anthias_viewer/gst_fbdev_player.py63logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_viewer/__main__.py5logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_viewer/messaging.py11logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_common/storage_health.py88logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_common/smart.py53logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_common/utils.py31logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_common/undervoltage.py79logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_host_agent/__main__.py38logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_host_agent/__main__.py97def set_ip_addresses() -> None:CODE
LOWsrc/anthias_host_agent/__main__.py212def set_total_mem_kb(rdb: 'redis.Redis') -> None:CODE
LOWsrc/anthias_host_agent/__main__.py233def set_board_subtype(rdb: 'redis.Redis') -> None:CODE
LOWsrc/anthias_host_agent/__main__.py260def set_device_model(rdb: 'redis.Redis') -> None:CODE
LOWsrc/anthias_server/settings.py13logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/processing.py78logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/celery_tasks.py63logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/app/consumers.py8logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/app/helpers.py17logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/app/page_context.py39logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/app/views.py65logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/app/views.py1745def _set_toast_header(response: HttpResponse, kind: str, message: str) -> None:CODE
LOWsrc/anthias_server/lib/auth.py110logger = logging.getLogger(__name__)CODE
LOW⚡src/anthias_server/lib/cec.py56logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/display_power.py30logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/storage_watcher.py44logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/diagnostics.py18logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/telemetry.py19logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/backup_helper.py18logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/whitenoise.py25logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/whitenoise.py40 def update_files_dictionary(self, root: str, prefix: str) -> None:CODE
LOWsrc/anthias_server/lib/cec_client.py52logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/undervoltage_watcher.py37logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/github.py10logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/github.py50def _set_github_error_backoff(action: str) -> None:CODE
LOWsrc/anthias_server/lib/integrations/screencloud.py43logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/lib/integrations/yodeck.py37logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/api/helpers.py21def update_asset(asset: dict[str, Any], data: dict[str, Any]) -> None:CODE
LOWsrc/anthias_server/api/views/mixins.py48logger = logging.getLogger(__name__)CODE
LOWsrc/anthias_server/api/views/v2.py95logger = logging.getLogger(__name__)CODE
Deep Nesting44 hits · 39 pts
SeverityFileLineSnippetContext
LOWbin/shoot_pages.py153CODE
LOWbin/balena_fleet_maintenance.py173CODE
LOWtests/test_viewer_import_closure.py117CODE
LOWtests/test_viewer_import_closure.py144CODE
LOWtests/test_template_state_reset.py87CODE
LOWtests/test_template_state_reset.py128CODE
LOWtests/fake_docker.py77CODE
LOWtests/test_design_tokens.py275CODE
LOWtests/test_design_tokens.py300CODE
LOWtests/test_design_tokens.py355CODE
LOWtests/test_design_tokens.py474CODE
LOWtests/test_template_views.py3869CODE
LOWtests/test_template_views.py4020CODE
LOWsrc/anthias_viewer/media_player.py97CODE
LOWsrc/anthias_viewer/media_player.py339CODE
LOWsrc/anthias_viewer/__init__.py1104CODE
LOWsrc/anthias_viewer/__init__.py2289CODE
LOWsrc/anthias_viewer/__init__.py2318CODE
LOWsrc/anthias_viewer/__init__.py2398CODE
LOWsrc/anthias_viewer/__init__.py2765CODE
LOWsrc/anthias_viewer/messaging.py46CODE
LOWsrc/anthias_common/storage_health.py687CODE
LOWsrc/anthias_common/utils.py219CODE
LOWsrc/anthias_common/utils.py409CODE
LOWsrc/anthias_common/utils.py460CODE
LOWsrc/anthias_common/undervoltage.py124CODE
LOWsrc/anthias_common/device_helper.py105CODE
LOWsrc/anthias_common/device_helper.py303CODE
LOWsrc/anthias_host_agent/__main__.py135CODE
LOWsrc/anthias_host_agent/__main__.py176CODE
LOWsrc/anthias_server/celery_tasks.py1184CODE
LOWsrc/anthias_server/celery_tasks.py1603CODE
LOWsrc/anthias_server/app/views.py393CODE
LOWsrc/anthias_server/app/views.py659CODE
LOWsrc/anthias_server/app/templatetags/asset_filters.py330CODE
LOWsrc/anthias_server/lib/cec.py548CODE
LOWsrc/anthias_server/lib/cec.py331CODE
LOWsrc/anthias_server/lib/storage_watcher.py60CODE
LOWsrc/anthias_server/lib/whitenoise.py70CODE
LOWsrc/anthias_server/lib/undervoltage_watcher.py77CODE
LOWsrc/anthias_server/lib/integrations/ingest.py200CODE
LOWsrc/anthias_server/api/serializers/mixins.py61CODE
LOWsrc/anthias_server/api/views/mixins.py471CODE
LOWsrc/anthias_server/api/views/v2.py629CODE
AI Slop Vocabulary7 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUMbin/install.sh503 # If the user can't elevate without a password, Ansible needsCOMMENT
MEDIUMbin/install.sh537 # host + runtime layers. An explicit -e is robust against sudo strippingCOMMENT
LOWbin/start_viewer.sh43# we just set; -E alone is subject to env_check / env_delete and is notCOMMENT
MEDIUMansible/site.yml6 # install.sh passes -e anthias_user explicitly (robust under sudo).COMMENT
MEDIUMsrc/anthias_webview/src/view.cpp296 // an in-place navigation), so transitions are seamless with at mostCOMMENT
MEDIUMsrc/anthias_server/app/static/sass/_styles.scss3340 // 16rem parent is robust to whichever `position` wins.COMMENT
MEDIUMsrc/anthias_server/app/static/src/apps/location-map.ts133 // whenever the canvas actually gets its size — robust to the modalCOMMENT
Structural Annotation Overuse8 hits · 15 pts
SeverityFileLineSnippetContext
LOWbin/generate_board_enablement_testbed.sh67# Step 2: cut H.264 sources to CUT_SECONDS via -c copy. Avoids aCOMMENT
LOWbin/generate_board_enablement_testbed.sh92# Step 3: HEVC re-encode each H.264 cut. ``-tag:v hvc1`` writesCOMMENT
LOWbin/generate_board_enablement_testbed.sh120# Step 4: report.COMMENT
LOW⚡website/content/docs/x86-installation.md27## Step 1: Download DebianCOMMENT
LOW⚡website/content/docs/x86-installation.md35## Step 2: Write the installer to a USB driveCOMMENT
LOW⚡website/content/docs/x86-installation.md42## Step 3: Install DebianCOMMENT
LOW⚡website/content/docs/x86-installation.md52## Step 4: Prepare the system for AnthiasCOMMENT
LOWwebsite/content/docs/x86-installation.md90## Step 5: Run the Anthias installerCOMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALsrc/anthias_server/lib/auth.py540 from django.core.exceptions import ValidationErrorCODE
Self-Referential Comments3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMbin/start_server.sh21# The following block ensures that the migration is transactional and that theCOMMENT
MEDIUMtests/test_processing.py794 # Create a minimal placeholder — ffprobe is mocked below so theCOMMENT
MEDIUMtests/test_processing.py1116 # Create an empty placeholder file so the FileNotFoundError checkCOMMENT
Verbosity Indicators3 hits · 4 pts
SeverityFileLineSnippetContext
LOWbin/generate_board_enablement_testbed.sh67# Step 2: cut H.264 sources to CUT_SECONDS via -c copy. Avoids aCOMMENT
LOWbin/generate_board_enablement_testbed.sh92# Step 3: HEVC re-encode each H.264 cut. ``-tag:v hvc1`` writesCOMMENT
LOWbin/generate_board_enablement_testbed.sh120# Step 4: report.COMMENT
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡bin/collect_debug.sh31# Usage:COMMENT
LOWbin/generate_board_enablement_testbed.sh14# Usage:COMMENT
LOWbin/rebuild_qt5_toolchain.sh25# Usage:COMMENT
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMbin/start_viewer.sh3# start_viewer.sh — orchestrates the viewer boot. Shared setup runs onCOMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWemails/README.md156 announcement, kept real rather than filled with lorem ipsum so theCODE
AI Structural Patterns1 hit · 0 pts
SeverityFileLineSnippetContext
LOWtests/test_storage_health.py73CODE