AI Slop Code RIsk Monitor

music-assistant/server

Music Assistant is a free, opensource Media library manager that connects to your streaming services and a wide range of connected speakers. The server is the beating heart, the core of Music Assistant and must run on an always-on device like a Raspberry Pi, a NAS or an Intel NUC or alike.

31.1 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for music-assistant/server, a Python project with 3,160 GitHub stars. SynthScan examined 858,894 lines of code across 2659 source files, recording 22432 pattern matches distributed across 25 syntactic categories. The legacy adjusted pattern signal is 31.1 (High 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.

31.1
Adjusted Signal
31.1
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
3.2K
Stars
Python
Language
858.9K
Lines of Code
2.7K
Files
22.4K
Pattern Hits
2026-10-12
Scan Date
0.32
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 61.1/100 · HIGH

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

Hallucinated Dependency & Supply Chain Risk 17.9/100 · LOW

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

Agent Over-Engineering Ratio 72.8/100 · HIGH

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

PR Review Velocity Impact 81.3/100 · CRITICAL

Which changes need focused human review? 22432 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 122HIGH 720MEDIUM 818LOW 20772

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 22432 distinct pattern matches across 25 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 Identifiers17117 hits · 15266 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py58def pytest_report_to_serializable() -> Generator[None, object, object]:CODE
LOWtests/conftest.py71def isolate_models_global_cache() -> Generator[None]:CODE
LOWtests/test_shortcut_cleanup.py84async def test_cleanup_drops_shortcuts(auth: AuthenticationManager) -> None:CODE
LOWtests/test_shortcut_cleanup.py108async def test_cleanup_rewrites_shortcuts(auth: AuthenticationManager) -> None:CODE
LOWtests/test_shortcut_cleanup.py131async def test_cleanup_no_change_skips_write(auth: AuthenticationManager) -> None:CODE
LOWtests/test_shortcut_cleanup.py146async def test_cleanup_empty_shortcuts_skipped(auth: AuthenticationManager) -> None:CODE
LOWtests/test_shortcut_cleanup.py161async def test_cleanup_multiple_users(auth: AuthenticationManager) -> None:CODE
LOWtests/test_shortcut_cleanup.py179async def test_cleanup_preserves_other_preferences(auth: AuthenticationManager) -> None:CODE
LOWtests/test_shortcut_cleanup.py226async def test_stale_provider_shortcut_follows_library_item(CODE
LOWtests/test_shortcut_cleanup.py239async def test_stale_provider_shortcut_dropped_when_not_in_library(CODE
LOWtests/test_shortcut_cleanup.py252async def test_live_provider_shortcuts_are_kept(CODE
LOWtests/test_shortcut_cleanup.py274async def test_empty_provider_config_keeps_shortcuts(CODE
LOWtests/test_shortcut_cleanup.py288async def test_malformed_shortcut_is_dropped_without_raising(CODE
LOWtests/test_shortcut_cleanup.py303async def test_sweep_failure_never_aborts_startup(CODE
LOW⚡tests/test_library_sync.py864async def test_set_provider_mappings_overwrite_keeps_existing_when_empty(CODE
LOW⚡tests/test_library_sync.py879async def test_set_provider_mappings_no_mappings_is_noop(mock_controller: Mock) -> None:CODE
LOW⚡tests/test_library_sync.py892async def test_set_provider_mappings_upsert_preserves_null_in_library(CODE
LOWtests/test_library_sync.py117async def test_add_item_to_library_sets_in_library_true() -> None:CODE
LOWtests/test_library_sync.py151async def test_add_item_to_library_sets_in_library_even_when_sync_back_disabled() -> None:CODE
LOWtests/test_library_sync.py185async def test_add_item_to_library_sets_in_library_even_when_edit_not_supported() -> None:CODE
LOWtests/test_library_sync.py217async def test_add_album_imports_tracks_when_enabled() -> None:CODE
LOWtests/test_library_sync.py256async def test_add_album_does_not_import_tracks_when_disabled() -> None:CODE
LOWtests/test_library_sync.py288async def test_add_album_only_imports_tracks_for_added_instance() -> None:CODE
LOWtests/test_library_sync.py339async def test_refresh_item_preserves_in_library_state() -> None:CODE
LOWtests/test_library_sync.py383async def test_refresh_item_preserves_in_library_false() -> None:CODE
LOWtests/test_library_sync.py425async def test_refresh_item_respects_provider_set_in_library() -> None:CODE
LOWtests/test_library_sync.py469async def test_refresh_item_non_library_item_skips_update() -> None:CODE
LOWtests/test_library_sync.py503async def test_sync_library_marks_removed_item_in_library_false() -> None:CODE
LOWtests/test_library_sync.py554async def test_sync_library_deletions_disabled_keeps_item() -> None:CODE
LOWtests/test_library_sync.py598async def test_sync_library_deletion_unmarks_favorite_when_no_other_providers() -> None:CODE
LOWtests/test_library_sync.py628async def test_sync_library_deletion_keeps_favorite_when_other_provider_has_it() -> None:CODE
LOWtests/test_library_sync.py669async def test_sync_library_always_stores_cache_regardless_of_deletion_setting() -> None:CODE
LOWtests/test_library_sync.py701def _create_controller_for_filter_tests() -> Mock:CODE
LOWtests/test_library_sync.py711async def test_apply_filters_in_library_only_without_provider_filter() -> None:CODE
LOWtests/test_library_sync.py743async def test_apply_filters_in_library_only_with_provider_filter() -> None:CODE
LOWtests/test_library_sync.py776async def test_apply_filters_no_in_library_filter_by_default() -> None:CODE
LOWtests/test_library_sync.py800async def test_apply_filters_provider_filter_without_in_library() -> None:CODE
LOWtests/test_library_sync.py848async def test_set_provider_mappings_overwrite_deletes_and_reinserts(CODE
LOWtests/test_library_sync.py913async def test_set_provider_mappings_upsert_writes_explicit_in_library(CODE
LOWtests/test_library_sync.py936async def test_library_items_default_filters_in_library_only() -> None:CODE
LOWtests/test_library_sync.py952async def test_library_items_defaults_to_summary() -> None:CODE
LOWtests/test_library_sync.py983def test_ensure_provider_filter_keeps_plugin_provider_mappings() -> None:CODE
LOWtests/test_library_sync.py1005def test_ensure_provider_filter_rejects_unallowed_music_provider() -> None:CODE
LOWtests/test_library_sync.py1026def test_ensure_provider_filter_allows_explicit_non_music_provider() -> None:CODE
LOWtests/test_library_sync.py1046def test_ensure_provider_filter_auto_allows_non_music_providers() -> None:CODE
LOWtests/test_library_sync.py1078def test_select_provider_id_prefers_allowed_music_over_plugin() -> None:CODE
LOWtests/test_library_sync.py1116def test_select_provider_id_falls_back_to_plugin_when_no_allowed_music() -> None:CODE
LOWtests/test_library_sync.py1154def test_select_provider_id_refuses_an_item_only_on_hidden_sources() -> None:CODE
LOWtests/test_library_sync.py1184def test_select_provider_id_keeps_an_allowed_mapping_next_to_a_hidden_one() -> None:CODE
LOWtests/test_library_sync.py1233async def test_select_provider_id_prefers_highest_priority_mapping(reverse: bool) -> None:CODE
LOWtests/test_library_sync.py1267def test_select_provider_id_breaks_priority_ties_deterministically(reverse: bool) -> None:CODE
LOWtests/test_library_sync.py1299async def test_get_library_item_does_not_filter_in_library() -> None:CODE
LOWtests/test_library_sync.py1319async def test_update_item_in_library_skips_non_music_providers() -> None:CODE
LOWtests/test_library_sync.py1360def _create_event_capture_controller(CODE
LOWtests/test_library_sync.py1379async def test_add_and_update_item_emit_events_outside_sync() -> None:CODE
LOWtests/test_library_sync.py1399async def test_provider_sync_suppresses_per_item_events() -> None:CODE
LOWtests/test_library_sync.py1439async def test_concurrent_add_rechecks_match_inside_lock() -> None:CODE
LOWtests/test_library_sync.py1479def test_select_provider_id_never_substitutes_another_account_of_the_same_service() -> None:CODE
LOWtests/test_generate_release_notes.py131def test_linear_release_filters_prs_merged_before_previous_tag(CODE
LOWtests/test_generate_release_notes.py156def test_pr_number_only_taken_from_commit_title_not_body(CODE
17057 more matches not shown…
Cross-File Repetition654 hits · 3270 pts
SeverityFileLineSnippetContext
HIGHtests/test_dynamic_playlist_framework.py0create a bare metadatacontroller without running __init__.STRING
HIGHtests/controllers/metadata/test_album_reconciliation.py0create a bare metadatacontroller without running __init__.STRING
HIGHtests/controllers/metadata/test_metadata_radio.py0create a bare metadatacontroller without running __init__.STRING
HIGHtests/core/test_provider_unload.py0handle logic when the player is unloaded from the player controller.STRING
HIGHtests/controllers/players/test_player_controller.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/wiim/linkplay_player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/wiim/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/fully_kiosk/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/sync_group/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/bose_soundtouch/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/dlna/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGH…sic_assistant/providers/roku_media_assistant/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/chromecast/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/sonos_s1/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/airplay/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/raumfeld/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/sendspin/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGH…ic_assistant/providers/_demo_player_provider/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/universal_group/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/providers/sonos/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHmusic_assistant/models/player.py0handle logic when the player is unloaded from the player controller.STRING
HIGHtests/providers/neteasecloudmusic/test_setup_flow.py0build a real setupsession backed by a mock mass for driving run_setup directly.STRING
HIGHtests/providers/audible/test_setup_flow.py0build a real setupsession backed by a mock mass for driving run_setup directly.STRING
HIGHtests/providers/iheartradio/test_setup_flow.py0build a real setupsession backed by a mock mass for driving run_setup directly.STRING
HIGHtests/providers/pandora/test_setup_flow.py0build a real setupsession backed by a mock mass for driving run_setup directly.STRING
HIGHtests/providers/yandex_music/test_setup_flow.py0build a real setupsession backed by a mock mass for driving run_setup directly.STRING
HIGHtests/providers/neteasecloudmusic/test_setup_flow.py0return the flow steps pushed through mass.signal_event, in order.STRING
HIGHtests/providers/yandex_music/test_setup_flow.py0return the flow steps pushed through mass.signal_event, in order.STRING
HIGHtests/providers/yandex_ynison/test_setup_flow.py0return the flow steps pushed through mass.signal_event, in order.STRING
HIGHtests/providers/airplay/test_setup_flow.py0return the flow steps pushed through mass.signal_event, in order.STRING
HIGHtests/providers/neteasecloudmusic/test_setup_flow.py0wait until the predicate returns truthy (or fail the test).STRING
HIGHtests/providers/audible/test_setup_flow.py0wait until the predicate returns truthy (or fail the test).STRING
HIGHtests/providers/iheartradio/test_setup_flow.py0wait until the predicate returns truthy (or fail the test).STRING
HIGHtests/providers/yandex_music/test_setup_flow.py0wait until the predicate returns truthy (or fail the test).STRING
HIGHtests/providers/yandex_ynison/test_setup_flow.py0wait until the predicate returns truthy (or fail the test).STRING
HIGHtests/providers/yandex_station/test_setup_flow.py0wait until the predicate returns truthy (or fail the test).STRING
HIGHtests/providers/pandora/test_setup_flow.py0wait until the predicate returns truthy (or fail the test).STRING
HIGHtests/providers/ytmusic/test_similar_artists.py0return a youtubemusicprovider instance with mocked dependencies.STRING
HIGHtests/providers/ytmusic/test_album_tracks.py0return a youtubemusicprovider instance with mocked dependencies.STRING
HIGHtests/providers/ytmusic/test_ytmusic.py0return a youtubemusicprovider instance with mocked dependencies.STRING
HIGHtests/providers/ytmusic/test_recommendations.py0return a youtubemusicprovider instance with mocked dependencies.STRING
HIGHtests/providers/ytmusic/test_ytmusic.py0build a fake async context manager mimicking aiohttp's session.get().STRING
HIGHtests/providers/lrclib/test_lrclib.py0build a fake async context manager mimicking aiohttp's session.get().STRING
HIGHtests/providers/filesystem_onedrive/test_provider.py0build a fake async context manager mimicking aiohttp's session.get().STRING
HIGHtests/providers/audiobookshelf/test_recommendations.py0back @use_cache with a dict store; return the background store tasks.STRING
HIGHtests/providers/bbc_sounds/test_recommendations.py0back @use_cache with a dict store; return the background store tasks.STRING
HIGHtests/providers/soundcloud/test_recommendations.py0back @use_cache with a dict store; return the background store tasks.STRING
HIGHtests/providers/apple_music/test_recommendations.py0an item_id not present in the payload yields an empty uniquelist.STRING
HIGHtests/providers/bbc_sounds/test_recommendations.py0an item_id not present in the payload yields an empty uniquelist.STRING
HIGHtests/models/test_recommendation_payload.py0an item_id not present in the payload yields an empty uniquelist.STRING
HIGHtests/providers/vrt_max/test_auth.py0minimal stand-in for an aiohttp response used as an async context manager.STRING
HIGHtests/providers/listenbrainz_scrobble/test_hook.py0minimal stand-in for an aiohttp response used as an async context manager.STRING
HIGHtests/providers/vrt_max/test_playback.py0minimal stand-in for an aiohttp response used as an async context manager.STRING
HIGHtests/providers/hass/test_provider.py0provide the slice of the cache controller that @use_cache relies on.STRING
HIGHtests/providers/hass/test_device_correlation.py0provide the slice of the cache controller that @use_cache relies on.STRING
HIGHtests/providers/hass/test_control_entity_search.py0provide the slice of the cache controller that @use_cache relies on.STRING
HIGHtests/providers/hass/test_provider.py0return the (data, is_fresh, found) triplet for the given key.STRING
HIGHtests/providers/hass/test_device_correlation.py0return the (data, is_fresh, found) triplet for the given key.STRING
HIGHtests/providers/hass/test_control_entity_search.py0return the (data, is_fresh, found) triplet for the given key.STRING
HIGHtests/providers/listenbrainz_scrobble/test_hook.py0build a playback progress report for a played track.STRING
594 more matches not shown…
Decorative Section Separators722 hits · 2579 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py199# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py201# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py269# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py271# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py487# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py489# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py509# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py511# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py566# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py568# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py592# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py594# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py733# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py735# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py912# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py914# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py960# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py962# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py1537# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/mammamiradio/test_mammamiradio.py1539# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/mammamiradio/test_mammamiradio.py298# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/mammamiradio/test_mammamiradio.py300# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/mammamiradio/test_mammamiradio.py1193# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/mammamiradio/test_mammamiradio.py1195# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/mammamiradio/test_mammamiradio.py1565# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/mammamiradio/test_mammamiradio.py1567# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/apple_music/test_api_client.py181# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/apple_music/test_api_client.py183# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/apple_music/test_api_client.py267# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/apple_music/test_api_client.py269# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py81# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py83# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py148# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py150# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py306# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py308# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py346# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py348# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_notifier.py121# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_notifier.py123# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_handlers.py192# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_handlers.py194# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py71# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py73# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py159# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py161# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py252# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py254# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py267# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py269# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py402# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py404# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_direct.py134# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_direct.py136# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_direct.py241# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_direct.py243# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_direct.py263# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_direct.py265# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_direct.py421# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/providers/yandex_smarthome/test_direct.py423# ---------------------------------------------------------------------------COMMENT
662 more matches not shown…
Unused Imports1872 hits · 1756 pts
SeverityFileLineSnippetContext
LOWtests/test_shortcut_cleanup.py3CODE
LOWtests/test_library_sync.py3CODE
LOWtests/test_generate_release_notes.py3CODE
LOWtests/test_numba_cache_isolation.py3CODE
LOWtests/test_provider_manifests.py3CODE
LOWtests/test_dynamic_playlist_framework.py3CODE
LOWtests/test_cross_type_features.py3CODE
LOWtests/test_websocket_client.py3CODE
LOWtests/core/test_diagnostics.py3CODE
LOWtests/core/test_provider_unload.py3CODE
LOWtests/core/test_provider_post_load.py3CODE
LOWtests/core/test_provider_load_retry.py3CODE
LOWtests/core/test_audio_analysis_failures.py3CODE
LOWtests/core/test_ci_test_scope.py3CODE
LOWtests/integration/test_library_summary_items.py12CODE
LOWtests/integration/test_background_scan_streaming.py3CODE
LOWtests/integration/test_dynamic_mode_e2e.py11CODE
LOWtests/integration/test_dynamic_mode_e2e.py23CODE
LOWtests/integration/test_dynamic_mode_e2e.py29CODE
LOWtests/integration/test_dynamic_mode_e2e.py29CODE
LOWtests/integration/conftest.py10CODE
LOWtests/integration/conftest.py23CODE
LOWtests/integration/test_demo_group_e2e.py9CODE
LOWtests/integration/test_no_change_resync.py10CODE
LOWtests/integration/test_podcast_genre_resync.py3CODE
LOWtests/integration/test_podcast_genre_resync.py16CODE
LOWtests/integration/test_smart_shuffle_e2e.py10CODE
LOWtests/integration/test_smart_shuffle_e2e.py26CODE
LOWtests/integration/test_smart_shuffle_e2e.py31CODE
LOWtests/integration/test_smart_shuffle_e2e.py31CODE
LOWtests/integration/test_dynamic_radio_e2e.py11CODE
LOWtests/integration/test_album_play_credit_e2e.py9CODE
LOWtests/integration/test_album_play_credit_e2e.py17CODE
LOWtests/integration/test_album_play_credit_e2e.py22CODE
LOWtests/integration/test_album_play_credit_e2e.py22CODE
LOWtests/integration/test_radio_playlist_e2e.py9CODE
LOWtests/integration/test_radio_playlist_e2e.py18CODE
LOWtests/integration/test_radio_playlist_e2e.py21CODE
LOWtests/integration/test_managed_pool_e2e.py10CODE
LOWtests/integration/test_managed_pool_e2e.py27CODE
LOWtests/integration/test_managed_pool_e2e.py33CODE
LOWtests/integration/test_managed_pool_e2e.py33CODE
LOWtests/providers/neteasecloudmusic/test_setup_flow.py3CODE
LOWtests/providers/neteasecloudmusic/conftest.py3CODE
LOWtests/providers/neteasecloudmusic/test_scrobble.py3CODE
LOW…sts/providers/neteasecloudmusic/test_library_tracks.py3CODE
LOW…s/neteasecloudmusic/test_library_listing_validation.py3CODE
LOWtests/providers/neteasecloudmusic/test_image_urls.py3CODE
LOW…ts/providers/neteasecloudmusic/test_recommendations.py3CODE
LOWtests/providers/wiim/test_grouping.py3CODE
LOWtests/providers/wiim/test_linkplay.py3CODE
LOWtests/providers/wiim/test_linkplay_external_source.py3CODE
LOWtests/providers/openai_tts/test_openai_tts.py3CODE
LOW…sts/providers/hass_players/test_native_import_guard.py3CODE
LOWtests/providers/hass_players/test_external_playback.py3CODE
LOWtests/providers/local_audio/test_retired.py3CODE
LOWtests/providers/mammamiradio/test_mammamiradio.py3CODE
LOWtests/providers/fully_kiosk/test_setup_flow.py3CODE
LOWtests/providers/fully_kiosk/test_dashboard.py3CODE
LOWtests/providers/ytmusic/test_similar_artists.py3CODE
1812 more matches not shown…
Hallucination Indicators122 hits · 1385 pts
SeverityFileLineSnippetContext
CRITICAL⚡tests/test_library_sync.py860 mock_controller.mass.music.database.delete.assert_called_once()CODE
CRITICAL⚡tests/test_library_sync.py861 mock_controller.mass.music.database.upsert_many.assert_called_once()CODE
CRITICAL⚡tests/test_library_sync.py874 mock_controller.mass.music.database.delete.assert_not_called()CODE
CRITICAL⚡tests/test_library_sync.py875 mock_controller.mass.music.database.upsert_many.assert_not_called()CODE
CRITICAL⚡tests/test_library_sync.py887 mock_controller.mass.music.database.delete.assert_not_called()CODE
CRITICAL⚡tests/test_library_sync.py888 mock_controller.mass.music.database.upsert_many.assert_not_called()CODE
CRITICALtests/providers/msx_bridge/test_party_qr_cover.py475 assert mass_mock.http_session.get.call_args.kwargs.get("allow_redirects") is FalseCODE
CRITICALtests/providers/radio_playlist/test_radio_playlist.py187 prov.mass.music.artists.top_tracks.assert_awaited_once_with("art1", "test")CODE
CRITICALtests/providers/radio_playlist/test_radio_playlist.py205 prov.mass.music.artists.tracks.assert_awaited_once_with("art1", "test")CODE
CRITICAL⚡tests/providers/airplay/test_announce.py261 player.mass.streams.announcement_renderer.release.assert_awaited_once()CODE
CRITICALtests/providers/airplay/test_announce.py221 leader.mass.streams.announcement_renderer.release.assert_awaited_once()CODE
CRITICALtests/providers/airplay/test_announce.py806 player.mass.streams.announcement_renderer.release.assert_awaited_once()CODE
CRITICAL⚡tests/providers/airplay/test_stream.py227 player.provider.mass.streams.get_publish_ip.assert_called_once_with("192.168.1.50")CODE
CRITICALtests/providers/airplay/test_stream.py2048 player.provider.mass.config.set_raw_player_config_value.assert_not_called()CODE
CRITICALtests/providers/airplay/test_stream.py2083 player.provider.mass.config.set_raw_player_config_value.assert_not_called()CODE
CRITICALtests/providers/airplay/test_stream.py2094 pinned_player.provider.mass.config.set_raw_player_config_value.assert_not_called()CODE
CRITICALtests/providers/airplay/test_stream.py2111 player.provider.mass.config.set_raw_player_config_value.assert_not_called()CODE
CRITICALtests/providers/airplay/test_stream.py2186 player.provider.mass.config.set_raw_player_config_value.assert_not_called()CODE
CRITICALtests/providers/plex/test_provider_methods.py404 music_provider.mass.streams.audio_analysis.set_track_loudness.assert_awaited_once_with(CODE
CRITICALtests/providers/plex/test_provider_methods.py423 music_provider.mass.streams.audio_analysis.set_track_loudness.assert_not_awaited()CODE
CRITICALtests/providers/opensubsonic/test_provider.py119 provider.mass.streams.audio_analysis.set_track_loudness.assert_awaited_once_with(CODE
CRITICALtests/providers/opensubsonic/test_provider.py139 provider.mass.streams.audio_analysis.set_track_loudness.assert_awaited_once_with(CODE
CRITICALtests/providers/sendspin/test_playback_processing.py56 player.mass.streams.audio_processing.update_output.assert_called_once_with(CODE
CRITICALtests/providers/loudness_analysis/test_provider.py487 provider.mass.streams.audio_analysis.get_audio_analysis.assert_awaited_once_with(CODE
CRITICAL⚡tests/providers/builtin/test_infinite_mix.py95 provider.mass.music.tracks.library_items.assert_called_once_with(CODE
CRITICAL⚡tests/providers/builtin/test_infinite_mix.py112 provider.mass.music.tracks.library_items.assert_called_once_with(CODE
CRITICAL⚡tests/providers/builtin/test_infinite_mix.py162 provider.mass.music.tracks.library_items.assert_called_once_with(CODE
CRITICALtests/providers/builtin/test_import_matching.py426 prov_any.mass.music.tracks.enrich_provider_mappings.assert_not_called()CODE
CRITICALtests/providers/builtin/test_import_matching.py468 prov_any.mass.music.tracks.enrich_provider_mappings.assert_not_called()CODE
CRITICALtests/providers/builtin/test_import_matching.py505 prov_any.mass.music.tracks.enrich_provider_mappings.assert_not_called()CODE
CRITICALtests/providers/builtin/test_import_matching.py540 prov_any.mass.music.tracks.enrich_provider_mappings.assert_awaited_once()CODE
CRITICALtests/providers/builtin/test_import_matching.py562 prov_any.mass.music.tracks.enrich_provider_mappings.assert_not_called()CODE
CRITICALtests/providers/builtin/test_import_matching.py596 prov_any.mass.music.tracks.enrich_provider_mappings.assert_awaited_once()CODE
CRITICALtests/providers/builtin/test_import_matching.py622 prov_any.mass.music.tracks.enrich_provider_mappings.assert_not_called()CODE
CRITICALtests/providers/builtin/test_import_matching.py645 prov_any.mass.music.tracks.enrich_provider_mappings.assert_not_called()CODE
CRITICALtests/providers/builtin/test_import_matching.py666 prov_any.mass.music.tracks.enrich_provider_mappings.assert_not_called()CODE
CRITICALtests/providers/builtin/test_import_matching.py729 prov_any.mass.music.tracks.get_provider_item.assert_not_awaited()CODE
CRITICALtests/providers/builtin/test_import_matching.py783 prov_any.mass.music.tracks.get_provider_item.assert_awaited_once()CODE
CRITICALtests/providers/builtin/test_import_matching.py839 prov_any.mass.music.tracks.get_provider_item.assert_awaited_once()CODE
CRITICALtests/providers/builtin/test_import_matching.py1156 prov_any.mass.music.tracks.get_provider_item.assert_not_awaited()CODE
CRITICALtests/providers/builtin/test_import_matching.py1185 prov_any.mass.music.tracks.get_provider_item.assert_awaited_once()CODE
CRITICALtests/providers/builtin/test_import_matching.py1263 prov_any.mass.music.tracks.get_provider_item.assert_awaited_once()CODE
CRITICALtests/providers/builtin/test_import_matching.py1300 prov_any.mass.music.tracks.get_provider_item.assert_awaited_once_with(CODE
CRITICALtests/providers/builtin/test_import_matching.py1349 prov_any.mass.music.tracks.get_provider_item.assert_not_awaited()CODE
CRITICALtests/providers/builtin/test_import_matching.py1378 prov_any.mass.music.tracks.get_provider_item.assert_not_awaited()CODE
CRITICALtests/providers/builtin/test_import_matching.py2247 prov_any.mass.music.tracks.enrich_provider_mappings.assert_not_awaited()CODE
CRITICALtests/providers/builtin/test_recently_played.py52 provider.mass.music.tracks.get_library_items_by_query.assert_awaited_once_with(CODE
CRITICALtests/providers/builtin/test_recently_played.py106 provider.mass.music.tracks.get_library_items_by_query.assert_not_awaited()CODE
CRITICALtests/providers/filesystem_local/test_nfo_resolution.py627 provider.mass.music.artists.get_library_item_by_external_id.assert_awaited_once_with(CODE
CRITICAL⚡…providers/filesystem_local/test_metadata_file_cache.py646 provider.mass.music.artists.get_library_artist_tracks.assert_awaited_once_with(CODE
CRITICAL⚡…providers/filesystem_local/test_metadata_file_cache.py690 provider.mass.music.artists.get_library_artist_albums.assert_awaited_once_with(CODE
CRITICAL⚡…providers/filesystem_local/test_metadata_file_cache.py693 provider.mass.music.albums.get_library_album_tracks.assert_awaited_once_with(CODE
CRITICAL…providers/filesystem_local/test_parse_playlist_line.py154 fs_provider.mass.music.tracks.get_library_item_by_prov_id.assert_awaited_once() # type: ignore[attr-defined]CODE
CRITICAL⚡tests/providers/filesystem_local/test_sound_effects.py78 provider.mass.music.database.get_rows_from_query.assert_not_called() # type: ignore[attr-defined]CODE
CRITICALtests/providers/filesystem_local/test_sound_effects.py150 provider.mass.music.tracks.get_library_item_by_prov_id.assert_not_called() # type: ignore[attr-defined]CODE
CRITICALtests/providers/filesystem_local/test_sound_effects.py175 provider.mass.music.tracks.get_library_item_by_prov_id.assert_awaited_once_with(CODE
CRITICAL⚡tests/providers/filesystem_local/test_sync_config.py95 provider.mass.music.database.get_rows_from_query.assert_not_called() # type: ignore[attr-defined]CODE
CRITICAL⚡tests/providers/filesystem_local/test_sync_config.py102 provider.mass.music.database.get_rows_from_query.assert_not_called() # type: ignore[attr-defined]CODE
CRITICAL⚡tests/providers/filesystem_local/test_sync_config.py109 provider.mass.music.database.get_rows_from_query.assert_not_called() # type: ignore[attr-defined]CODE
CRITICAL⚡tests/providers/filesystem_local/test_sync_config.py126 provider.mass.music.tracks.add_item_to_library.assert_not_called() # type: ignore[attr-defined]CODE
62 more matches not shown…
Excessive Try-Catch Wrapping720 hits · 721 pts
SeverityFileLineSnippetContext
LOWtests/core/test_diagnostics.py173 except Exception:CODE
LOWtests/providers/nicovideo/test_converters.py128 except Exception as e:CODE
LOWtests/providers/nicovideo/test_converters.py150 except Exception as e:CODE
LOWtests/controllers/config/test_setup_flows.py614 except Exception as err:CODE
LOWtests/controllers/streams/test_get_media_stream.py278 except Exception as err:CODE
MEDIUMmusic_assistant/mass.py1537def _on_provider_loaded() -> None:CODE
LOWmusic_assistant/mass.py211 except Exception as err:CODE
LOWmusic_assistant/mass.py371 except Exception as err:CODE
LOWmusic_assistant/mass.py428 except Exception:CODE
LOWmusic_assistant/mass.py989 except Exception as exc:CODE
LOWmusic_assistant/mass.py1006 except Exception as exc:CODE
LOWmusic_assistant/mass.py1032 except Exception as exc:CODE
LOWmusic_assistant/mass.py1102 except Exception as exc:CODE
LOWmusic_assistant/mass.py1194 except Exception as err:CODE
LOWmusic_assistant/mass.py1513 except Exception:CODE
LOWmusic_assistant/mass.py1519 except Exception as unload_err:CODE
LOWmusic_assistant/mass.py1540 except Exception as err:CODE
LOWmusic_assistant/mass.py1606 except Exception as exc:CODE
LOWmusic_assistant/providers/wiim/provider.py139 except Exception:CODE
LOWmusic_assistant/providers/wiim/provider.py160 except Exception:CODE
LOWmusic_assistant/providers/wiim/player.py211 except Exception:CODE
LOWmusic_assistant/providers/openai_tts/__init__.py110 except Exception:CODE
LOWmusic_assistant/providers/hass_players/helpers.py139 except Exception as exc:CODE
LOWmusic_assistant/providers/ytmusic/__init__.py956 except Exception as err:CODE
LOWmusic_assistant/providers/vban_receiver/provider.py213 except Exception as err:CODE
LOWmusic_assistant/providers/bandcamp/__init__.py849 except Exception as error:CODE
LOWmusic_assistant/providers/sync_group/player.py1355 except Exception as err:CODE
LOWmusic_assistant/providers/apple_music/library.py388 except Exception as err:CODE
LOWmusic_assistant/providers/smart_fades/provider.py597 except Exception as err:CODE
LOWmusic_assistant/providers/yandex_smarthome/cloud.py69 except Exception:CODE
LOW⚡music_assistant/providers/yandex_smarthome/cloud.py142 except Exception:CODE
LOW⚡music_assistant/providers/yandex_smarthome/cloud.py151 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/device.py564 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/playlists.py44 except Exception as exc:CODE
LOW…sistant/providers/yandex_smarthome/ma_authenticator.py74 except Exception as exc:CODE
LOW⚡music_assistant/providers/yandex_smarthome/notifier.py206 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/notifier.py305 except Exception as exc:CODE
LOW⚡music_assistant/providers/yandex_smarthome/notifier.py337 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/notifier.py368 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/handlers.py73 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/handlers.py103 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/plugin.py93 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/plugin.py418 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/plugin.py431 except Exception:CODE
LOW⚡music_assistant/providers/yandex_smarthome/direct.py179 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py234 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py246 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py265 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py277 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py289 except Exception:CODE
LOW⚡music_assistant/providers/yandex_smarthome/direct.py302 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py369 except Exception:CODE
LOW…sic_assistant/providers/yandex_smarthome/setup_flow.py518 except Exception as err:CODE
LOWmusic_assistant/providers/bose_soundtouch/player.py410 except Exception:CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py83 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py190 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py238 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py252 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/provider.py332 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/provider.py897 except Exception as err:CODE
660 more matches not shown…
Modern Structural Boilerplate386 hits · 388 pts
SeverityFileLineSnippetContext
LOWtests/test_shortcut_cleanup.py66async def _set_shortcuts(auth: AuthenticationManager, user_id: str, uris: list[str]) -> None:CODE
LOWtests/providers/sync_group/test_sync_group.py1940 async def _set_members(**_kwargs: object) -> None:CODE
LOWtests/providers/bose_soundtouch/test_config.py72 def _update_config_value(self, key: str, value: Any, immediate: bool = False) -> None:CODE
LOWtests/providers/vrt_max/conftest.py63def _set_credentials(provider: VrtMaxProvider) -> None:CODE
LOWtests/providers/musicbrainz/test_recommendations.py87def _set_library(provider_mock: Mock, artists: list[Artist]) -> None:CODE
LOWtests/providers/heos/test_player.py221async def _set_device_state(player: HeosPlayer, state: HeosPlayState) -> None:CODE
LOWtests/providers/fastmcp_server/test_e2e_hotswap.py36def _set_config_values(config: MagicMock, **overrides: Any) -> None:CODE
LOW…ders/fastmcp_server/test_request_policy_enforcement.py309 async def update_metadata(uri: str) -> None:CODE
LOWtests/providers/itunes_podcasts/test_recommendations.py43def _set_library(mass: Mock, podcasts: list[Podcast]) -> None:CODE
LOWtests/providers/snapcast/conftest.py34 def set_callback(self, cb: Any) -> None:CODE
LOWtests/providers/soundcloud/test_setup.py18def _setup_values(provider: SoundcloudMusicProvider, **values: str) -> None:CODE
LOW⚡tests/providers/sonos_s1/test_player.py191def _set_transport_state(sonos_player: SonosPlayer, state: str) -> None:CODE
LOW⚡tests/providers/sonos_s1/test_player.py196def _set_track_info(sonos_player: SonosPlayer, uri: str, position: str = "") -> None:CODE
LOW⚡tests/providers/yandex_ynison/test_ynison_client.py451 def _setup_ws(self, client: YnisonClient) -> None:CODE
LOW⚡tests/providers/yandex_ynison/test_ynison_client.py748 def _setup_ws(self, client: YnisonClient) -> None:CODE
LOW⚡tests/providers/yandex_ynison/test_ynison_client.py1393 async def set_stop(*_args: Any, **_kwargs: Any) -> None:CODE
LOWtests/providers/airplay/test_sendspin_bridge.py299def _settle_anchor(bridge: SendspinAirPlayBridge) -> None:CODE
LOWtests/providers/sendspin/test_setup_flow.py265 async def set_trusted_unpaired(self, client_id: str, enabled: bool) -> None:CODE
LOWtests/providers/sendspin/test_bridge_manager.py533 def set_raw(player_id: str, key: str, value: Any) -> None:CODE
LOWtests/providers/sendspin_source/test_provider.py449async def _settle() -> None:CODE
LOWtests/providers/nugs/test_stream_url.py56def _set_quality(provider: NugsProvider, quality: str) -> None:CODE
LOWtests/providers/sonos/test_provider.py120 async def _setup_player(*_args: object) -> None:CODE
LOWtests/providers/ai_radio/test_runtime.py124def _set_runtime_mass(runtime: AIRadioRuntimeMixin, mass: Any) -> None:CODE
LOWtests/providers/ai_radio/test_runtime.py1572 async def _set_shuffle(_queue_id: str, _shuffle_enabled: bool) -> None:CODE
LOWtests/providers/ai_radio/test_runtime.py2240 async def _set_shuffle(queue_id: str, shuffle_enabled: bool) -> None:CODE
LOWtests/providers/ai_radio/test_runtime.py2405 def _set_flow_mode_required(queue_id: str, owner: str, required: bool) -> None:CODE
LOWtests/providers/ai_radio/test_queue_dj.py90 def update_items(self, queue_id: str, queue_items: list[Any]) -> None:CODE
LOW…sts/providers/spotify_connect/test_backend_contract.py142 async def set_volume(self, volume: int) -> None:CODE
LOW…sts/providers/spotify_connect/test_backend_contract.py159 async def set_shuffle(self, enabled: bool) -> None:CODE
LOW…sts/providers/spotify_connect/test_backend_contract.py163 async def set_repeat(self, repeat: RepeatMode) -> None:CODE
LOWtests/providers/spotify_connect/test_soloist_backend.py97 async def set_volume(self, volume_pct: float) -> None:CODE
LOWtests/models/test_player_icons.py209def _set_up_config_player(mass: MusicAssistant) -> None:CODE
LOW⚡tests/controllers/music/test_genres.py1693async def _set_track_genres(mass: MusicAssistant, track_id: int, genres: list[str]) -> None:CODE
LOWtests/controllers/music/test_genres.py130async def _set_podcast_genres(mass: MusicAssistant, podcast_id: int, genres: list[str]) -> None:CODE
LOWtests/controllers/music/test_genres.py1704async def _set_album_genres(mass: MusicAssistant, album_id: int, genres: list[str]) -> None:CODE
LOWtests/controllers/config/test_setup_flows.py1727def _set_player_conf(flow_mass: MusicAssistant, player: MockPlayer) -> None:CODE
LOWtests/controllers/config/test_save_scheduling.py61def _set_without_delay(controller: ConfigController, key: str, value: Any) -> None:CODE
LOWtests/controllers/config/test_remove_player_config.py86 def set_protocol_parent_id(self, parent_id: str | None) -> None:CODE
LOW…ts/controllers/config/test_filesystem_consolidation.py2037 async def _update_then_kill(mass: MusicAssistant, instance_ids: list[str]) -> None:CODE
LOWtests/controllers/players/test_player_controller.py1374def _set_play_media_override(mock_mass: MagicMock, value: bool) -> None:CODE
LOWtests/controllers/players/test_player_controller.py3570 def _set_limits(mock_mass: MagicMock, min_volume: int, max_volume: int) -> None:CODE
LOWtests/controllers/players/test_player_controller.py6572 async def _set_members(**kwargs: list[str]) -> None:CODE
LOW…/controllers/players/test_active_protocol_lifecycle.py263 async def _set_members(**kwargs: object) -> None:CODE
LOWtests/controllers/players/test_protocol_linking.py2966 def _update_state_on_set_members(player: MockPlayer) -> None:CODE
LOWtests/controllers/players/test_live_source_selection.py123 async def _settle() -> None:CODE
LOW⚡tests/controllers/players/test_live_source_dispatch.py276 async def set_shuffle(self, shuffle_enabled: bool) -> None:CODE
LOW⚡tests/controllers/players/test_live_source_dispatch.py279 async def set_repeat(self, repeat_mode: RepeatMode) -> None:CODE
LOWtests/controllers/storage/conftest.py114def set_locations(storage: StorageController, *locations: StorageLocation) -> None:CODE
LOW…ts/controllers/player_queues/test_play_media_access.py101def _set_sources(ctrl: Any) -> None:CODE
LOWtests/helpers/test_scrobbler.py36 async def _update_now_playing(self, report: MediaItemPlaybackProgressReport) -> None:CODE
LOWtests/helpers/test_scrobbler.py220 async def _update_now_playing(self, report: MediaItemPlaybackProgressReport) -> None:CODE
LOWtests/helpers/test_throttle_retry.py52 def set_side_effects(self, effects: Sequence[Exception | str]) -> None:CODE
LOWmusic_assistant/mass.py1627 async def _update_available_providers_cache(self) -> None:CODE
LOWmusic_assistant/mass.py1651 async def _setup_storage(self) -> None:CODE
LOWmusic_assistant/mass.py1658 def _set_state(self, new_state: CoreState) -> None:CODE
LOWmusic_assistant/__main__.py275 def _set_stop() -> None:CODE
LOW⚡music_assistant/providers/wiim/player.py435 def _update_ma_state_from_sdk_cache(self) -> None:CODE
LOWmusic_assistant/providers/hass_players/provider.py210 def update_player_from_state_msg(entity_id: str, state: CompressedState) -> None:CODE
LOWmusic_assistant/providers/hass_players/player.py372 def update_from_compressed_state(self, state: CompressedState) -> None:CODE
LOWmusic_assistant/providers/hass_players/player.py384 def _update_hass_features(self, hass_supported_features: MediaPlayerEntityFeature) -> None:CODE
326 more matches not shown…
Deep Nesting286 hits · 252 pts
SeverityFileLineSnippetContext
LOWtests/test_library_sync.py503CODE
LOWtests/test_library_sync.py554CODE
LOWtests/integration/test_library_summary_items.py163CODE
LOW…ts/providers/filesystem_yandex_disk/test_setup_flow.py166CODE
LOW…ts/providers/filesystem_yandex_disk/test_setup_flow.py335CODE
LOWtests/providers/musicbrainz/test_provider.py827CODE
LOWtests/providers/iheartradio/conftest.py114CODE
LOWtests/providers/fastmcp_server/test_origin.py339CODE
LOWtests/providers/music_quiz/test_plugin.py2310CODE
LOWtests/providers/music_quiz/test_plugin.py2629CODE
LOWtests/providers/music_quiz/test_models.py331CODE
LOWtests/providers/sendspin/test_setup_flow.py242CODE
LOWtests/providers/sendspin/test_pin_session.py215CODE
LOWtests/providers/feiniu_music/test_http_session.py62CODE
LOWtests/providers/feiniu_music/test_http_session.py278CODE
LOWtests/providers/feiniu_music/test_http_session.py75CODE
LOWtests/providers/feiniu_music/test_api_lifecycle.py262CODE
LOWtests/controllers/music/test_album_track_identity.py404CODE
LOWtests/controllers/players/test_player_grouping.py732CODE
LOWmusic_assistant/providers/wiim/grouping.py536CODE
LOWmusic_assistant/providers/wiim/player.py435CODE
LOWmusic_assistant/providers/openai_tts/__init__.py310CODE
LOWmusic_assistant/providers/openai_tts/__init__.py313CODE
LOWmusic_assistant/providers/hass_players/provider.py150CODE
LOWmusic_assistant/providers/hass_players/player.py409CODE
LOWmusic_assistant/providers/mammamiradio/__init__.py200CODE
LOWmusic_assistant/providers/ytmusic/__init__.py245CODE
LOWmusic_assistant/providers/ytmusic/__init__.py484CODE
LOWmusic_assistant/providers/ytmusic/__init__.py656CODE
LOWmusic_assistant/providers/ytmusic/__init__.py677CODE
LOWmusic_assistant/providers/ytmusic/__init__.py781CODE
LOWmusic_assistant/providers/ytmusic/__init__.py860CODE
LOWmusic_assistant/providers/ytmusic/__init__.py864CODE
LOWmusic_assistant/providers/ytmusic/helpers.py371CODE
LOWmusic_assistant/providers/ytmusic/helpers.py378CODE
LOWmusic_assistant/providers/vban_receiver/provider.py249CODE
LOWmusic_assistant/providers/teddycloud/provider.py78CODE
LOWmusic_assistant/providers/bandcamp/converters.py58CODE
LOWmusic_assistant/providers/sync_group/player.py136CODE
LOWmusic_assistant/providers/sync_group/player.py569CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py424CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py488CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py1079CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py1566CODE
LOWmusic_assistant/providers/apple_music/library.py253CODE
LOWmusic_assistant/providers/apple_music/library.py327CODE
LOWmusic_assistant/providers/apple_music/helpers/browse.py70CODE
LOWmusic_assistant/providers/smart_fades/helpers.py123CODE
LOWmusic_assistant/providers/theaudiodb/__init__.py173CODE
LOWmusic_assistant/providers/theaudiodb/__init__.py203CODE
LOW…nt/providers/bose_soundtouch/client/client/__init__.py183CODE
LOW…nt/providers/bose_soundtouch/client/client/__init__.py234CODE
LOW…nt/providers/bose_soundtouch/client/client/__init__.py304CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py140CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py196CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py302CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py339CODE
LOWmusic_assistant/providers/zvuk_music/parsers.py132CODE
LOWmusic_assistant/providers/vrt_max/parsers.py68CODE
LOWmusic_assistant/providers/vrt_max/parsers.py89CODE
226 more matches not shown…
Cross-Language Confusion39 hits · 241 pts
SeverityFileLineSnippetContext
HIGHtests/providers/mammamiradio/test_mammamiradio.py1118 """session_state stopped/empty_queue (now_playing null) renders the station name."""STRING
HIGHtests/providers/spotify/test_playback_auth.py326 ('{"username": null, "auth_data": "blob"}', "u1", False),CODE
HIGH⚡tests/providers/milkdrop_visualizer/test_tap.py515 queue.push(b"first")CODE
HIGH⚡tests/providers/milkdrop_visualizer/test_tap.py516 queue.push(b"second")CODE
HIGH⚡tests/providers/milkdrop_visualizer/test_tap.py517 queue.push('{"type": "stream/clear"}')CODE
HIGH⚡tests/providers/milkdrop_visualizer/test_tap.py525 queue.push('{"type": "stream/start"}')CODE
HIGH⚡tests/providers/milkdrop_visualizer/test_tap.py526 queue.push('{"type": "stream/clear"}')CODE
HIGH⚡tests/providers/milkdrop_visualizer/test_tap.py527 queue.push(b"frame")CODE
HIGH⚡tests/controllers/music/test_music_migrations.py319 1: ("smart_fades", '{"spectral_centroid": [1.5, null, 2.5, null], "bpm": 120}'),CODE
HIGH⚡tests/controllers/music/test_music_migrations.py322 3: ("other_domain", '{"spectral_centroid": [null], "bpm": 100}'),CODE
HIGH⚡tests/controllers/music/test_music_migrations.py326 5: ("smart_fades", '{"spectral_centroid": null, "bpm": 90}'),CODE
HIGHtests/helpers/test_wake_on_lan.py44 """Test an invalid (or null) MAC address raises instead of silently sending nothing."""STRING
HIGH⚡tests/helpers/test_json.py97 ({"a": [1, 2], "b": {"c": None}}, '{"a":[1,2],"b":{"c":null}}'),CODE
HIGHmusic_assistant/providers/yousee/media.py247 tracks(first: $first, after: null, orderBy: POPULARITY) {CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py178 info: null,CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py179 sessionToken: null,CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py180 selectedClientId: null,CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py188 setupCallback: null,CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py193 if (cachedTokens && typeof cachedTokens === "object") state.tokens = cachedTokens;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py208 let data = null;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py245 if (!c || !c.methods || !c.methods.length) return null;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py335 state.sessionToken = null;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py343 showMsg((data && data.error) || ("HTTP " + res.status), "bad");CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py354 if (!value || !value.startsWith("/")) return null;CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py357 if (callback.origin !== window.location.origin) return null;CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py358 if (!/\\/setup_flow\\/callback\\/[a-f0-9]+$/.test(callback.pathname)) return null;CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py361 return null;CODE
HIGH⚡…sic_assistant/providers/fastmcp_server/connect/page.py366 if (!state.setupCallback || state.setupCallbackSent) return;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py381 if (navigator.clipboard && navigator.clipboard.writeText) {CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py454 showMsg((data && data.error) || "Sign-in failed.", "bad");CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py465 showMsg("Signed in as " + (data.user && data.user.username || "user") + ".", "good");CODE
HIGHmusic_assistant/providers/airplay/provider.py635 # one resolves (first) is undefined, so match the full advertised address setCOMMENT
HIGHmusic_assistant/providers/sendspin/playback.py597 await processor.push(chunk)CODE
HIGHmusic_assistant/providers/sendspin/playback.py1424 await processor.push(chunk)CODE
HIGHmusic_assistant/providers/milkdrop_visualizer/tap.py142 A track without a palette yields every field as null, so a viewer drops theSTRING
HIGHmusic_assistant/providers/milkdrop_visualizer/tap.py248 queue.push(frame)CODE
HIGHmusic_assistant/providers/milkdrop_visualizer/relay.py10- text {"type":"color","payload":{field: [r,g,b]|null, ...}} - changed color@v1 fieldsSTRING
HIGHmusic_assistant/controllers/streams/audio_analysis.py451 # non-finite floats serialize to JSON null, which corrupts the stored row;COMMENT
HIGHmusic_assistant/controllers/webserver/api_docs.py1013 # Filter out None/null types (None, NoneType, null all mean JSON null)COMMENT
Redundant / Tautological Comments110 hits · 162 pts
SeverityFileLineSnippetContext
LOWmusic_assistant/providers/vban_receiver/provider.py317 # Check if the stream_id has changed underneath us while waitingCOMMENT
LOWmusic_assistant/providers/airplay_receiver/metadata.py144 # Check if we have a complete line before any XMLCOMMENT
LOWmusic_assistant/providers/airplay_receiver/provider.py589 # Check if process started successfullyCOMMENT
LOW…stant/providers/airplay_receiver/bin/build_binaries.sh103 # Check if Homebrew is installedCOMMENT
LOWmusic_assistant/providers/party/__init__.py606 # Check if guest access is enabledCOMMENT
LOWmusic_assistant/providers/party/__init__.py879 # Check if guest access and skip are enabledCOMMENT
LOWmusic_assistant/providers/spotify/provider.py234 # Check if user has a custom client ID with valid dev tokenCOMMENT
LOWmusic_assistant/providers/audible/__init__.py95 # Check if we have signing auth (preferred, stable - not affected by API changes)COMMENT
LOWmusic_assistant/providers/bluesound/provider.py83 # Check if the IP address has changedCOMMENT
LOW…_assistant/providers/nicovideo/provider_mixins/core.py64 # Check if login credentials are providedCOMMENT
LOWmusic_assistant/providers/nicovideo/services/video.py156 # Check if this is already a media playlist (has #EXTINF)COMMENT
LOW…providers/sonic_analysis/vendored_clap/clap_wrapper.py57 # Check if version is supportedCOMMENT
LOWmusic_assistant/providers/yandex_music/provider.py3280 # Check if we've already reached the limitCOMMENT
LOWmusic_assistant/providers/yandex_music/api_client.py735 # Check if it's LRC format (synced lyrics have timestamps like [00:12.34])COMMENT
LOWmusic_assistant/providers/universal_player/provider.py112 # Check if player already existsCOMMENT
LOWmusic_assistant/providers/soundcloud/__init__.py480 # Check if we have a valid response with tracks collectionCOMMENT
LOWmusic_assistant/providers/yandex_ynison/provider.py645 # Check if manual player switching is allowedCOMMENT
LOWmusic_assistant/providers/yandex_station/provider.py252 # Check if player already registered (cloud-discovered) — connect GlagolCOMMENT
LOWmusic_assistant/providers/internet_archive/provider.py229 # Check if we have enough results across all typesCOMMENT
LOWmusic_assistant/providers/internet_archive/provider.py346 # Check if this is audiobook content using improved detectionCOMMENT
LOWmusic_assistant/providers/internet_archive/provider.py355 # Check if this is podcast contentCOMMENT
LOWmusic_assistant/providers/internet_archive/provider.py614 # Check if this is the same as album artist to avoid duplicates (case-insensitive)COMMENT
LOWmusic_assistant/providers/plex/__init__.py871 # Check if this is a collection (collections have the format "collection:<key>")COMMENT
LOWmusic_assistant/providers/plex/__init__.py907 # Check if this is a collection (collections have the format "collection:<key>")COMMENT
LOWmusic_assistant/providers/plex/__init__.py1523 # Check if album rating meets the configured threshold for favoritesCOMMENT
LOWmusic_assistant/providers/plex/__init__.py1760 # Check if track rating meets the configured threshold for favoritesCOMMENT
LOWmusic_assistant/providers/plex_connect/gdm.py202 # Check if this is a discovery request (M-SEARCH) not our own HELLOCOMMENT
LOWmusic_assistant/providers/webdav/provider.py287 # Check if this is an audio file with embedded imageCOMMENT
LOWmusic_assistant/providers/webdav/helpers.py139 # Check if it's a directoryCOMMENT
LOWmusic_assistant/providers/kion_music/provider.py2397 # Check if we've already reached the limitCOMMENT
LOWmusic_assistant/providers/kion_music/api_client.py466 # Check if it's LRC format (synced lyrics have timestamps like [00:12.34])COMMENT
LOWmusic_assistant/providers/sendspin/provider.py1569 # Check if client still exists (may have disconnected while waiting)COMMENT
LOWmusic_assistant/providers/podcastfeed/__init__.py214 # Check if we got actual image contentCOMMENT
LOWmusic_assistant/providers/tidal/tidal_page_parser.py141 # Check if item appears to be a mixCOMMENT
LOWmusic_assistant/providers/tidal/auth_manager.py126 # Check if token is expiredCOMMENT
LOWmusic_assistant/models/player.py1848 # Check if the protocol player is actually availableCOMMENT
LOWmusic_assistant/models/player.py3565 # Check if member_id is a provider instance IDCOMMENT
LOWmusic_assistant/controllers/music/controller.py571 # Check if the search query is a streaming provider public shareable URLCOMMENT
LOWmusic_assistant/controllers/music/media/playlists.py1417 # Check if any existing mapping's item_id has been modified for non-streaming providersCOMMENT
LOWmusic_assistant/controllers/music/media/genres.py2105 # Check if a non-excluded genre in this taxonomy exists with this name as its ownCOMMENT
LOWmusic_assistant/controllers/music/media/genres.py2155 # Check if this name was deliberately excluded in this taxonomy before creatingCOMMENT
LOWmusic_assistant/controllers/players/controller.py3281 # Check if parent config still existsCOMMENT
LOWmusic_assistant/controllers/players/controller.py3478 # Check if new source is external (not MA-managed)COMMENT
LOWmusic_assistant/controllers/players/controller.py3542 # Check if it's a known queue IDCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py238 # Check if this universal player should now be merged with anotherCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py279 # Check if linking actually succeeded (may be refused forCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py294 # Check if this universal player should now be merged with anotherCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py443 # Check if this protocol player has a cached parent (was previously linked)COMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py502 # Check if there's an existing universal player we should joinCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py585 # Check if linking actually succeeded (may be refused for duplicate domain)COMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py604 # Check if this universal player should now be merged with anotherCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py621 # Check if universal player has generic placeholder device infoCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py867 # Check if keeper already has an active link from this domainCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py991 # Check if linking succeeded (may be refused for duplicate domain)COMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py1624 # Check if this protocol has a parent_id pointing to this native playerCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py2303 # Check if this member is in the parent's group via protocolCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py2322 # Check if child's protocol player is in parent's native group_membersCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py2389 # Check if parent supports this protocol (including native protocol)COMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py2396 # Check if this protocol supports set_membersCOMMENT
LOWmusic_assistant/controllers/streams/audio.py3458 # Check if this is a Shoutcast/ICY response that aiohttp can't parseCOMMENT
50 more matches not shown…
Over-Commented Block157 hits · 144 pts
SeverityFileLineSnippetContext
LOWtests/integration/test_library_summary_items.py221 # wire format: provider mappings are carried in full and must match theCOMMENT
LOWtests/providers/fastmcp_server/conftest.py1"""COMMENT
LOWtests/controllers/streams/test_audio_sources.py421 ) -> None:COMMENT
LOWmusic_assistant/mass.py341 await cast("CoreController", getattr(self, controller_name)).post_setup()COMMENT
LOWmusic_assistant/mass.py361 # the access records that now live on the sources. Needs the users from the authCOMMENT
LOWmusic_assistant/constants.py901 "Pragma": "no-cache",COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py241 # in the supported_features and you did not override the default sync method.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py281 # in the supported_features and you did not override the default sync method.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py301 # NOTE: This is only called on each full sync of the library (at the specified interval).COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py321 # If you need more fine grained control over the sync process, you can overrideCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py341 # library based on the returned items in the (default) 'sync_library' method.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py361 # You can use the @use_cache decorator from music_assistant.controllers.cacheCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py381 """Get full album details by id."""COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py401 # Mandatory only if you reported LIBRARY_PLAYLISTS in the supportedCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py421 # Get all tracks for a given album.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py501COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py661 # Return one RecommendationFolder per recommendation row, filling in onlyCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py681COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py701 # If you use the RecommendationPayloadMixin (see get_recommendations),COMMENT
LOW…assistant/providers/_demo_music_provider/setup_flow.py41 Drive the interactive setup flow for a new provider instance.COMMENT
LOWmusic_assistant/providers/sync_group/player.py701 await self.mass.players._handle_cmd_stop(leader.player_id)COMMENT
LOWmusic_assistant/providers/sync_group/player.py1061 )COMMENT
LOWmusic_assistant/providers/yandex_smarthome/notifier.py81 # Dedupe state-callback errors by fingerprint. Yandex's backendCOMMENT
LOWmusic_assistant/providers/yandex_smarthome/constants.py21CONF_EXPOSED_PLAYLISTS = "exposed_playlists"COMMENT
LOWmusic_assistant/providers/yandex_smarthome/constants.py61# Direct mode uses a per-install auto-generated secret instead (see CONF_DIRECT_CLIENT_SECRET).COMMENT
LOWmusic_assistant/providers/vrt_max/constants.py201)COMMENT
LOWmusic_assistant/providers/vrt_max/constants.py221 "Accept": "application/json",COMMENT
LOWmusic_assistant/providers/hass/control_entities.py21COMMENT
LOWmusic_assistant/providers/spotify/constants.py41# The playback session registers under this name, so it shows up as a device inCOMMENT
LOWmusic_assistant/providers/spotify/backends/soloist.py101# absorbs the source-less gap at the next track boundary; at exactly 1.0xCOMMENT
LOWmusic_assistant/providers/spotify/backends/soloist.py121_JUMP_TIMEOUT_S: Final[float] = 5.0COMMENT
LOWmusic_assistant/providers/spotify/backends/soloist.py141# holds well under a second, so the reader must keep draining it whenever theCOMMENT
LOWmusic_assistant/providers/spotify/backends/soloist.py761 self._transport = NoneCOMMENT
LOWmusic_assistant/providers/msx_bridge/static/input.js1/******************************************************************************/COMMENT
LOWmusic_assistant/providers/amplipi/constants.py41# no native pause for this type; pause is emulated via stop in the player.COMMENT
LOWmusic_assistant/providers/amplipi/constants.py81COMMENT
LOW…sic_assistant/providers/sonic_analysis/clap_prompts.py101# Calibration provenanceCOMMENT
LOWmusic_assistant/providers/yandex_music/constants.py81# triggers (HTML body with smart-captcha markers), the correspondingCOMMENT
LOWmusic_assistant/providers/yandex_music/constants.py101# sync — kept low so it does not flood smart-captchaCOMMENT
LOWmusic_assistant/providers/yandex_music/constants.py121# Initial-sync jitter: during the first INITIAL_SYNC_WINDOW_S after aCOMMENT
LOWmusic_assistant/providers/yandex_music/api_client.py141 # Short-TTL cache for /get-file-info results, keyed byCOMMENT
LOWmusic_assistant/providers/hue_entertainment/analyzer.py41_PALETTE_DIM_FACTOR = 0.45COMMENT
LOWmusic_assistant/providers/hue_entertainment/analyzer.py101 color_gradient_spread: floatCOMMENT
LOWmusic_assistant/providers/hue_entertainment/analyzer.py181COMMENT
LOWmusic_assistant/providers/hue_entertainment/analyzer.py201# Transient scaling, beat animation fraction, pulse peak and color gradientCOMMENT
LOW…sic_assistant/providers/snapcast/snapweb/snapstream.js381 // rate = 1.0 - Math.min(rate, 0.0005);COMMENT
LOWmusic_assistant/providers/chromecast/constants.py41SENDSPIN_CAST_EXPERIMENTAL_NOTE = "sendspin_cast_experimental"COMMENT
LOWmusic_assistant/providers/yandex_ynison/provider.py481 The PCM format is frozen at session start to match what the outerCOMMENT
LOW…sic_assistant/providers/yandex_ynison/ynison_client.py721COMMENT
LOWmusic_assistant/providers/yandex_station/player.py221 # can't issue duplicate stop/play commands for the same track.COMMENT
LOWmusic_assistant/providers/yandex_station/player.py281 # registered player regardless of which playback features itCOMMENT
LOWmusic_assistant/providers/yandex_station/player.py761 except Exception as exc:COMMENT
LOWmusic_assistant/providers/yandex_station/player.py801 The debounce timestamp is updated on every attempt — successful orCOMMENT
LOWmusic_assistant/providers/yandex_station/player.py881 await self._pause_target(clear_session=True, clear_debounce=False)COMMENT
LOWmusic_assistant/providers/airplay/provider.py81COMMENT
LOWmusic_assistant/providers/airplay/constants.py61# that could not tell a password challenge apart from a flat refusal wrote theCOMMENT
LOWmusic_assistant/providers/airplay/constants.py101COMMENT
LOWmusic_assistant/providers/airplay/constants.py121# first probe (~1078 ms after connect on a cold device), so this only has toCOMMENT
LOWmusic_assistant/providers/airplay/constants.py141# the auto-route for the receivers that used to need a deepened queue: theCOMMENT
LOWmusic_assistant/providers/airplay/constants.py161# reported. The binary derives the cut it took from the bytes it discarded, so aCOMMENT
97 more matches not shown…
Self-Referential Comments37 hits · 108 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_webserver_auth.py194 # Create a user firstCOMMENT
MEDIUMtests/test_remote_access.py589 # Create a session firstCOMMENT
MEDIUMtests/providers/bandcamp/test_converters.py34 # Create a mock SearchResultTrackCOMMENT
MEDIUMtests/providers/bandcamp/test_converters.py53 # Create a mock SearchResultAlbumCOMMENT
MEDIUMtests/providers/bandcamp/test_converters.py116 # Create a mock SearchResultArtistCOMMENT
MEDIUMtests/providers/apple_music/test_library.py487 # Create an ItemMapping instead of a TrackCOMMENT
MEDIUMtests/providers/smart_playlist/test_smart_playlist.py1997 # Create a library track without genresCOMMENT
MEDIUMtests/providers/yandex_ynison/test_ynison_client.py527 # Create a real task that we can cancelCOMMENT
MEDIUMtests/providers/tidal/test_api_client.py30 # Create a mock that acts as an async context managerCOMMENT
MEDIUMtests/controllers/players/test_protocol_linking.py55 # Create a mock manifestCOMMENT
MEDIUMtests/helpers/test_throttle_retry.py899 # Create a date 60 seconds in the futureCOMMENT
MEDIUMmusic_assistant/providers/vban_receiver/vban.py44 # Create a socket and set the optionsCOMMENT
MEDIUM…c_assistant/providers/_demo_music_provider/__init__.py473 # Create a new playlist on the provider.COMMENT
MEDIUMmusic_assistant/providers/airplay_receiver/metadata.py105 # Create an asyncio.Event to signal when data is availableCOMMENT
MEDIUMmusic_assistant/providers/party/__init__.py798 # Create a QueueItem from the media itemCOMMENT
MEDIUMmusic_assistant/providers/spotify/parsers.py282 # Create a minimal podcast reference if none availableCOMMENT
MEDIUMmusic_assistant/providers/deezer/parsers.py788 # Create a full Artist object so MA doesn't try to resolve it.COMMENT
MEDIUMmusic_assistant/providers/deezer/parsers.py818 # Create a full Album object so MA doesn't try to resolve it.COMMENT
MEDIUM…istant/providers/nicovideo/provider_mixins/playlist.py120 # Create a new mylist using niconico.pyCOMMENT
MEDIUM…assistant/providers/digitally_incorporated/__init__.py768 # Create a mapping of filter ID to genre nameCOMMENT
MEDIUMmusic_assistant/providers/snapcast/socket_server.py77 # Create the socket serverCOMMENT
MEDIUMmusic_assistant/providers/universal_player/provider.py157 # Create the player instanceCOMMENT
MEDIUMmusic_assistant/providers/plex/__init__.py2168 # Create a recommendation folder for each hubCOMMENT
MEDIUMmusic_assistant/providers/plex_connect/gdm.py84 # Create the shared listen/reply socket and start the listener taskCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py40 # This method is optional and should be implemented if you need to handleCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py239 # This method is mandatory and should be implemented.COMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py279 # This method is optional and should be implemented if you want to supportCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py291 # This method is optional and should be implemented if the player supportsCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py307 # This method is optional and should be implemented if the player supportsCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py315 # This method is optional and should be implemented if the player supportsCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py327 # This method is optional and should be implemented if the player supportsCOMMENT
MEDIUMmusic_assistant/controllers/config/providers.py797 # Create the config with only the server-default entries (no provider options: thoseCOMMENT
MEDIUMmusic_assistant/controllers/webserver/auth.py1355 # Create a long-lived token (only long-lived tokens can be created via this command)COMMENT
MEDIUMmusic_assistant/controllers/webserver/api_docs.py196 # Create a schema reference for this typeCOMMENT
MEDIUMmusic_assistant/controllers/webserver/api_docs.py289 # Create a detailed enum definition with descriptionsCOMMENT
MEDIUM…istant/controllers/webserver/helpers/auth_providers.py547 # Create the userCOMMENT
MEDIUMmusic_assistant/controllers/metadata/radio.py477 # Create a minimal Album object to pass the MusicBrainz release group IDCOMMENT
AI Slop Vocabulary48 hits · 104 pts
SeverityFileLineSnippetContext
MEDIUMtests/providers/sync_group/test_sync_group.py739 # (that path is only for the seamless handoff). Instead, dissolve+reformCOMMENT
MEDIUMtests/providers/sync_group/test_sync_group.py925 # the remaining member never joined the session, so no seamless handoffCOMMENT
MEDIUMtests/providers/sync_group/test_sync_group.py628 """When the new leader IS in the live session, seamless protocol-level handoff is used."""STRING
MEDIUMtests/providers/yandex_station/test_provider_cascade.py35# ── Test harness ───────────────────────────────────────────────────COMMENT
LOWtests/providers/airplay/test_control_player.py351 # the level the user just set.COMMENT
MEDIUMtests/helpers/test_audio.py152 # deliberately wide to stay robust on loaded CI runners.COMMENT
MEDIUMmusic_assistant/providers/ambient_sounds/__init__.py97 # 0.1 Hz swell = 3 full cycles per 30s loop, keeping the loop seamlessCOMMENT
MEDIUMmusic_assistant/providers/ambient_sounds/__init__.py358 """Build the ffmpeg filter graph that renders the preset as a seamless loop."""STRING
MEDIUMmusic_assistant/providers/ambient_sounds/__init__.py360 # seamless loop: generate CROSSFADE_DURATION extra seconds, trim that amountCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py371 # Note that (local) file based providers will simply return all artist tracks here.COMMENT
MEDIUMmusic_assistant/providers/sync_group/constants.py65# group can do a seamless leader handoff; otherwise it must dissolve andCOMMENT
MEDIUMmusic_assistant/providers/sync_group/player.py1399 # a seamless handoff must stay on the protocol carrying the stream.COMMENT
MEDIUMmusic_assistant/providers/sync_group/player.py1420 # so the session continuation is seamless.COMMENT
MEDIUMmusic_assistant/providers/sync_group/player.py1442 # A seamless handoff requires the new leader to already be a sync_client ofCOMMENT
MEDIUMmusic_assistant/providers/phishin/provider.py116 # Replace with comprehensive song_slug resultsCOMMENT
MEDIUM⚡…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js33 */var R3=J,ao=N3;function Ve(t){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+t,s=1;s<arguments.leCOMMENT
MEDIUM⚡…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js33 */var R3=J,ao=N3;function Ve(t){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+t,s=1;s<arguments.leCOMMENT
MEDIUM⚡…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js40`+d.stack}return{value:t,source:r,stack:p,digest:null}}function b2(t,r,s){return{value:t,source:null,stack:s??null,digesCODE
MEDIUM⚡…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js40`+d.stack}return{value:t,source:r,stack:p,digest:null}}function b2(t,r,s){return{value:t,source:null,stack:s??null,digesCODE
MEDIUMmusic_assistant/providers/airplay/provider.py651 # Match by advertised name (robust even when the TXT record did not resolve).COMMENT
LOWmusic_assistant/providers/airplay/control_player.py1081 # overwrite (or persist) the level the user just set on the stream.COMMENT
MEDIUMmusic_assistant/providers/opensubsonic/parsers.py48# the list of episodes in a channel, to facilitate, we will use both the episode id and theCOMMENT
MEDIUMmusic_assistant/providers/squeezelite/provider.py149 # If any ports are occupied, raise a comprehensive error messageCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py58 # used in conjunction with the needs_poll property.COMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py118 # In this demo implementation we just set the power state to ONCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py125 # In this demo implementation we just set the power state to OFFCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py139 # In this demo implementation we just set the volume levelCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py172 # In this demo implementation we just set the playback state to PLAYINGCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py189 # In this demo implementation we just set the playback state to IDLECOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py205 # In this demo implementation we just set the playback state to PAUSEDCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py249 # the queue controller will simply call this play_media method forCOMMENT
LOWmusic_assistant/providers/filesystem_local/__init__.py441 # for audiobooks and podcasts we just return all library itemsCOMMENT
LOWmusic_assistant/models/provider.py229 # default implementation - simply use the instance number/indexCOMMENT
LOWmusic_assistant/models/music_provider.py2060 # just return False here to trigger that logicCOMMENT
LOW⚡music_assistant/models/player.py1361 # default implementation will simply call set_membersCOMMENT
LOWmusic_assistant/models/player.py1343 # default implementation will simply call set_membersCOMMENT
LOWmusic_assistant/models/player.py3393 # Scenario 1: Player is a protocol player - just return the (expanded) resultCOMMENT
LOWmusic_assistant/controllers/music/controller.py3724 # simply return the first item because search is already sorted by best matchCOMMENT
LOWmusic_assistant/controllers/music/media/playlists.py1752 # simply sort by quality and just add the first available versionCOMMENT
LOWmusic_assistant/controllers/music/media/base.py1314 # simply return the fallback itemCOMMENT
LOWmusic_assistant/controllers/players/controller.py1592 # else: any other media item, just add it to the favorites directlyCOMMENT
LOWmusic_assistant/controllers/streams/controller.py956 # just set an insane high content length to make sure the player keeps playingCOMMENT
LOWmusic_assistant/controllers/streams/controller.py1389 # just set an insane high content length to make sure the player keeps playingCOMMENT
LOWmusic_assistant/controllers/webserver/api_docs.py983 # Remove the ellipsis and just use the typeCOMMENT
LOW…ssistant/controllers/player_queues/playback_tracker.py409 # so we just return the queue index and the elapsed timeCOMMENT
LOWmusic_assistant/helpers/api.py148 # we can just use the bound type for documentation purposesCOMMENT
LOWmusic_assistant/helpers/audio.py960 # simply return the preferenceCOMMENT
MEDIUMscripts/perf/perf_server.py191 # skip the harness' own frames - they are measurement scaffoldingCOMMENT
Empty Error Handlers20 hits · 100 pts
SeverityFileLineSnippetContext
HIGHtests/test_cross_type_features.py910except NotImplementedError:CODE
HIGHtests/providers/feiniu_music/test_api_lifecycle.py136except ConnectionResetError:CODE
HIGHmusic_assistant/providers/wiim/player.py404except ValueError:CODE
HIGHmusic_assistant/providers/ytmusic/__init__.py300except InvalidDataError:CODE
HIGHmusic_assistant/providers/playlist_metadata/__init__.py993except OSError:CODE
HIGHmusic_assistant/providers/hass/__init__.py1014except asyncio.CancelledError:CODE
HIGHmusic_assistant/providers/airplay/player.py876except ValueError:CODE
HIGHmusic_assistant/providers/plex_connect/__init__.py358except PlexTvAuthError:CODE
HIGHmusic_assistant/providers/sendspin/provider.py342except ValueError:CODE
HIGHmusic_assistant/providers/sendspin/security.py26except FileNotFoundError:CODE
HIGHmusic_assistant/providers/samsung_wam/player.py276except TimeoutError:CODE
HIGHmusic_assistant/controllers/config/controller.py326except FileNotFoundError:CODE
HIGHmusic_assistant/controllers/config/core.py209except asyncio.CancelledError:CODE
HIGH…sic_assistant/controllers/streams/smart_fades/fades.py71except BrokenPipeError:CODE
HIGH…stant/controllers/webserver/helpers/auth_middleware.py545except Exception: # noqa: S110CODE
HIGHmusic_assistant/helpers/diagnostics.py196except Exception: # noqa: S110 - capturing diagnostics may never break logging itselfCODE
HIGHmusic_assistant/helpers/images.py425except OSError:CODE
HIGHmusic_assistant/helpers/images.py643except FileNotFoundError:CODE
HIGHmusic_assistant/helpers/images.py765except OSError:CODE
HIGHscripts/check_python_version.py20except OSError:CODE
Verbosity Indicators25 hits · 39 pts
SeverityFileLineSnippetContext
LOW⚡tests/controllers/music/test_genres.py2499 # Step 2: album gains its own genre metadata.COMMENT
LOW⚡tests/controllers/music/test_genres.py2502 # Step 3: incremental scan must replace the derived mapping with a direct one,COMMENT
LOWtests/controllers/music/test_genres.py2476 # Step 1: album has no genres yet → propagation creates a derived mapping.COMMENT
LOW⚡tests/controllers/players/test_protocol_linking.py5318 # Step 1: Mock config - AirPlay has cached parent, Sendspin does notCOMMENT
LOW⚡tests/controllers/players/test_protocol_linking.py5365 # Step 2: AirPlay reconnects first - links via cached parent_idCOMMENT
LOW⚡tests/controllers/players/test_protocol_linking.py5374 # Step 3: Sendspin registers next - should match Universal Player by MACCOMMENT
LOWmusic_assistant/providers/hass_players/provider.py168 # if the player is an ESPHome player, we need to check if it is a V2 playerCOMMENT
LOW⚡…sic_assistant/providers/yandex_ynison/ynison_client.py246 # Step 1: Get redirect ticketCOMMENT
LOW⚡…sic_assistant/providers/yandex_ynison/ynison_client.py249 # Step 2: Connect to state serviceCOMMENT
LOWmusic_assistant/providers/airplay/pairing.py459 # Step 1: Send device ID and methodSTRING
LOWmusic_assistant/providers/airplay/pairing.py481 # Step 2: SRP authenticationSTRING
LOWmusic_assistant/providers/airplay/pairing.py510 # Step 3: Encrypt and send auth public key using AES-GCMSTRING
LOW⚡music_assistant/helpers/tags.py269 # Step 1: Always split on featuring splittersCOMMENT
LOW⚡music_assistant/helpers/tags.py276 # Step 2: If no expected_count or already at/above target, we're doneCOMMENT
LOW⚡music_assistant/helpers/tags.py280 # Step 3: Need more artists - split on extra splitters to reach expected_countCOMMENT
LOWmusic_assistant/helpers/resources/api_docs.html462<span class="comment"># Step 1: Authenticate (REQUIRED as first command)</span>CODE
LOWmusic_assistant/helpers/resources/api_docs.html480<span class="comment"># Step 2: Send commands (message_id is REQUIRED)</span>CODE
LOW⚡.github/workflows/dependency-security.yml58 # Step 1: Verify requirements_all.txt is in syncCOMMENT
LOW.github/workflows/dependency-security.yml84 # Step 2: Detect new or changed dependenciesCOMMENT
LOW.github/workflows/dependency-security.yml132 # Step 3: Resolve what both branches install, so findings can be split into onesCOMMENT
LOW.github/workflows/dependency-security.yml154 # Step 4: Run pip-audit for known vulnerabilities. The audit covers the wholeCOMMENT
LOW.github/workflows/dependency-security.yml202 # Step 5: Check manifest.json changesCOMMENT
LOW.github/workflows/dependency-security.yml250 # Step 6: Run package safety check on new dependenciesCOMMENT
LOW.github/workflows/dependency-security.yml309 # Step 7: Persist analysis results for the reporting workflow.COMMENT
LOW.github/workflows/dependency-security.yml328 # Step 8: Hand off report fragments and results to the reporting workflowCOMMENT
Structural Annotation Overuse24 hits · 37 pts
SeverityFileLineSnippetContext
LOW⚡tests/controllers/music/test_genres.py2499 # Step 2: album gains its own genre metadata.COMMENT
LOW⚡tests/controllers/music/test_genres.py2502 # Step 3: incremental scan must replace the derived mapping with a direct one,COMMENT
LOWtests/controllers/music/test_genres.py2476 # Step 1: album has no genres yet → propagation creates a derived mapping.COMMENT
LOW⚡tests/controllers/players/test_protocol_linking.py5318 # Step 1: Mock config - AirPlay has cached parent, Sendspin does notCOMMENT
LOW⚡tests/controllers/players/test_protocol_linking.py5365 # Step 2: AirPlay reconnects first - links via cached parent_idCOMMENT
LOW⚡tests/controllers/players/test_protocol_linking.py5374 # Step 3: Sendspin registers next - should match Universal Player by MACCOMMENT
LOW⚡…sic_assistant/providers/yandex_ynison/ynison_client.py246 # Step 1: Get redirect ticketCOMMENT
LOW⚡…sic_assistant/providers/yandex_ynison/ynison_client.py249 # Step 2: Connect to state serviceCOMMENT
LOWmusic_assistant/providers/airplay/pairing.py459 # Step 1: Send device ID and methodSTRING
LOWmusic_assistant/providers/airplay/pairing.py481 # Step 2: SRP authenticationSTRING
LOWmusic_assistant/providers/airplay/pairing.py510 # Step 3: Encrypt and send auth public key using AES-GCMSTRING
LOW⚡music_assistant/helpers/tags.py269 # Step 1: Always split on featuring splittersCOMMENT
LOW⚡music_assistant/helpers/tags.py276 # Step 2: If no expected_count or already at/above target, we're doneCOMMENT
LOW⚡music_assistant/helpers/tags.py280 # Step 3: Need more artists - split on extra splitters to reach expected_countCOMMENT
LOWmusic_assistant/helpers/resources/api_docs.html462<span class="comment"># Step 1: Authenticate (REQUIRED as first command)</span>CODE
LOWmusic_assistant/helpers/resources/api_docs.html480<span class="comment"># Step 2: Send commands (message_id is REQUIRED)</span>CODE
LOW⚡.github/workflows/dependency-security.yml58 # Step 1: Verify requirements_all.txt is in syncCOMMENT
LOW.github/workflows/dependency-security.yml84 # Step 2: Detect new or changed dependenciesCOMMENT
LOW.github/workflows/dependency-security.yml132 # Step 3: Resolve what both branches install, so findings can be split into onesCOMMENT
LOW.github/workflows/dependency-security.yml154 # Step 4: Run pip-audit for known vulnerabilities. The audit covers the wholeCOMMENT
LOW.github/workflows/dependency-security.yml202 # Step 5: Check manifest.json changesCOMMENT
LOW.github/workflows/dependency-security.yml250 # Step 6: Run package safety check on new dependenciesCOMMENT
LOW.github/workflows/dependency-security.yml309 # Step 7: Persist analysis results for the reporting workflow.COMMENT
LOW.github/workflows/dependency-security.yml328 # Step 8: Hand off report fragments and results to the reporting workflowCOMMENT
Synthetic Comment Markers4 hits · 29 pts
SeverityFileLineSnippetContext
HIGH⚡tests/providers/smart_playlist/test_smart_playlist.py2096# AI-generated description testsCOMMENT
HIGHmusic_assistant/providers/zvuk_music/constants.py26# These AI-generated playlists are identified by low fixed IDs, stable per account.COMMENT
HIGH…instructions/music-assistant-standards.instructions.md26- **Won't support** AI-generated technical diagnoses or bug reports filed at face value in the tracker; describe problemCODE
HIGH…instructions/music-assistant-standards.instructions.md26- **Won't support** AI-generated technical diagnoses or bug reports filed at face value in the tracker; describe problemCODE
AI Structural Patterns33 hits · 27 pts
SeverityFileLineSnippetContext
LOWtests/providers/zvuk_music/test_parsers.py72CODE
LOWtests/providers/zvuk_music/test_parsers.py137CODE
LOWtests/providers/msx_bridge/factories.py56CODE
LOWtests/providers/musicbrainz/test_provider.py863CODE
LOWtests/providers/music_quiz/test_plugin.py117CODE
LOWtests/providers/chromecast/test_media_status_updates.py108CODE
LOWtests/providers/smart_playlist/test_smart_playlist.py378CODE
LOWtests/providers/airplay/test_dashboard.py31CODE
LOWtests/providers/airplay/dacp/conftest.py78CODE
LOWtests/providers/plex/test_provider_methods.py88CODE
LOWtests/providers/opensubsonic/test_provider.py46CODE
LOWtests/providers/builtin/test_sound_effects.py19CODE
LOW…sts/providers/spotify_connect/test_backend_contract.py179CODE
LOWtests/controllers/music/test_library_listing_queries.py217CODE
LOWtests/controllers/streams/smart_fades/conftest.py27CODE
LOW…s/controllers/player_queues/test_player_queues_sort.py36CODE
LOWtests/helpers/test_scrobbler.py307CODE
LOW…c_assistant/providers/smart_fades/feature_extractor.py40CODE
LOW…c_assistant/providers/smart_fades/dbn_postprocessor.py29CODE
LOW…s/sonic_analysis/vendored_clap/models/pytorch_utils.py30CODE
LOW…providers/sonic_analysis/vendored_clap/models/htsat.py61CODE
LOW…providers/sonic_analysis/vendored_clap/models/htsat.py384CODE
LOW…providers/sonic_analysis/vendored_clap/models/htsat.py588CODE
LOW…providers/sonic_analysis/vendored_clap/models/htsat.py686CODE
LOWmusic_assistant/providers/music_quiz/__init__.py355CODE
LOWmusic_assistant/controllers/music/media/podcasts.py91CODE
LOWmusic_assistant/controllers/music/media/audiobooks.py218CODE
LOWmusic_assistant/controllers/music/media/audiobooks.py159CODE
LOWmusic_assistant/controllers/music/media/audiobooks.py179CODE
LOWmusic_assistant/controllers/music/media/audiobooks.py199CODE
LOWmusic_assistant/controllers/music/media/artists.py179CODE
LOWmusic_assistant/controllers/tasks/controller.py259CODE
LOWmusic_assistant/controllers/cache/helpers.py49CODE
Modern AI Meta-Vocabulary8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMtests/providers/smart_fades/test_provider.py40# Clip ends 0.2s after the last beat to avoid end-of-track hallucination.COMMENT
MEDIUM⚡…ts/controllers/streams/smart_fades/test_vocal_aware.py483 # FireRed hallucinates vocal-like activity in the low-energy tail, past the boundaryCOMMENT
MEDIUMmusic_assistant/providers/airplay/stream.py200 # `connected` this makes readiness fully event-driven, so START canCOMMENT
MEDIUMmusic_assistant/providers/airplay/player.py664 # The lock windows live inside the orchestration: the dispatch decision andCOMMENT
MEDIUMmusic_assistant/providers/airplay/stream_session.py203 # anchor with a short lead. Readiness is fully event-drivenCOMMENT
MEDIUM…ant/controllers/streams/smart_fades/planner/context.py85# exceed ~6dB and re-orchestrate (band fractions move)COMMENT
MEDIUMscripts/perf/perf_server.py191 # skip the harness' own frames - they are measurement scaffoldingCOMMENT
MEDIUM…instructions/music-assistant-standards.instructions.md66- **MUST** stay event-driven: when state looks stale, add or fix the missing event instead of polling; prefer mDNS/annouCODE
Dead Code12 hits · 23 pts
SeverityFileLineSnippetContext
MEDIUMtests/providers/spotify/test_playback_auth.py199CODE
MEDIUMtests/providers/yandex_ynison/test_ynison_client.py1298CODE
MEDIUMtests/providers/airplay/test_protocol_crash.py55CODE
MEDIUMtests/providers/kion_music/test_streaming.py272CODE
MEDIUMtests/providers/squeezelite/test_player.py26CODE
MEDIUMtests/providers/filesystem_local/test_nfo_resolution.py973CODE
MEDIUMtests/providers/spotify_connect/test_provider.py103CODE
MEDIUMtests/controllers/music/test_sync_resilience.py205CODE
MEDIUMtests/controllers/streams/test_audio_buffer.py509CODE
MEDIUMtests/controllers/streams/test_stream_capacity.py659CODE
MEDIUMtests/helpers/test_ffmpeg.py767CODE
MEDIUMmusic_assistant/models/media_capabilities.py251CODE
Slop Phrases10 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUM…c_assistant/providers/_demo_music_provider/__init__.py532 # for most providers this will be HTTP but you can also use CUSTOMCOMMENT
LOWmusic_assistant/providers/theaudiodb/__init__.py187 # make sure to include the version in the album nameCOMMENT
LOWmusic_assistant/providers/theaudiodb/__init__.py215 # make sure to include the version in the album nameCOMMENT
LOWmusic_assistant/providers/lastfm_scrobble/__init__.py142 self.logger.info("No session key available, don't forget to authenticate!")CODE
LOWmusic_assistant/providers/lastfm_scrobble/strings.json26 "label": "Successfully logged in as {0}, don't forget to hit save to complete the setup"CODE
MEDIUM…_assistant/providers/_demo_plugin_provider/__init__.py149 # you can use this for instance to trigger custom (non-mdns) discovery of pluginsCOMMENT
MEDIUM…_assistant/providers/_demo_player_provider/provider.py64 # you can use this to do any async initialization of the provider,COMMENT
MEDIUM…_assistant/providers/_demo_player_provider/provider.py151 # note that you can use this point to update the player connection infoCOMMENT
LOWmusic_assistant/controllers/music/controller.py391 # make sure to finish any removal jobsCOMMENT
LOWmusic_assistant/translations/en.json1668 "provider.lastfm_scrobble.config_entries.save_reminder.label": "Successfully logged in as {0}, don't forget to hit savCODE
Fake / Example Data16 hits · 16 pts
SeverityFileLineSnippetContext
LOWtests/providers/vrt_max/conftest.py65 values = {CONF_USERNAME: "user@example.com", CONF_PASSWORD: "secret"}CODE
LOWtests/providers/vrt_max/test_auth.py23def _auth(username: str = "user@example.com") -> VrtMaxAuth:CODE
LOWtests/providers/msx_bridge/test_http_server.py2013 queue_item_id="placeholder",CODE
LOW…iders/fastmcp_server/test_provider_command_registry.py1167 error_code=999, message="login failed for other@example.org"CODE
LOW⚡tests/providers/yandex_music/test_api_client.py1541 client = YandexMusicClient(token=SecretStr("fake_token"))CODE
LOWtests/providers/yandex_music/test_api_client.py53 client = YandexMusicClient(token=SecretStr("fake_token"))CODE
LOW⚡tests/providers/kion_music/test_api_client.py251 real_client = ClientAsync("fake-token", base_url=DEFAULT_BASE_URL)CODE
LOWtests/providers/kion_music/test_api_client.py23 return KionMusicClient("fake_token", base_url=DEFAULT_BASE_URL)CODE
LOWtests/providers/kion_music/test_api_client.py37 mock_cls.assert_called_once_with("fake_token", base_url=DEFAULT_BASE_URL)CODE
LOWtests/providers/kion_music/test_api_client.py220 real_client = ClientAsync("fake-token", base_url=DEFAULT_BASE_URL)CODE
LOWtests/providers/kion_music/test_api_client.py273 real_client = ClientAsync("fake-token", base_url=DEFAULT_BASE_URL)CODE
LOW⚡tests/helpers/test_podcast_parsers.py825 assert cues[0].speaker == "Jane Doe"CODE
LOW⚡tests/helpers/test_transcripts.py52 assert cues[1].speaker == "Jane Doe"CODE
LOW⚡tests/helpers/test_transcripts.py252 assert parse_transcript_cues(document)[0].speaker == "Jane Doe"CODE
LOWtests/helpers/test_helpers.py217 ("Great Song [with Jane Doe]", ("Jane Doe",)),CODE
LOW…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js129`&&(Q.value+=" ");const U=B.boxSizing,ee=Bu(B.paddingBottom)+Bu(B.paddingTop),q=Bu(B.borderBottomWidth)+Bu(B.borderTopWiCODE
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGH…sic_assistant/providers/nicovideo/converters/stream.py57 Convert StreamConversionData into StreamDetails. Args: conversion_data: Data containing viSTRING
HIGHmusic_assistant/providers/pandora/helpers.py57 Get CSRF token from Pandora website. Attempts to retrieve CSRF token from Pandora cookies. Args: STRING
HIGHmusic_assistant/providers/internet_archive/provider.py771 Get streamdetails for a track or audiobook. Delegates to the streaming handler for proper multi-file sSTRING
Overly Generic Function Names6 hits · 6 pts
SeverityFileLineSnippetContext
LOWtests/providers/audible/test_audible.py42def helper(mass_mock: AsyncMock, audible_client_mock: AsyncMock) -> AudibleHelper:CODE
LOWtests/providers/storytel/test_storytel_helper.py26def helper() -> StorytelHelper:CODE
LOWtests/helpers/test_jwt_auth.py19def helper() -> JWTHelper:CODE
LOWmusic_assistant/providers/nicovideo/converters/base.py29 def helper(self) -> NicovideoConverterHelper:CODE
LOWmusic_assistant/providers/sonos/cloud_queue.py56 async def handle_request(self, request: web.Request) -> web.Response:CODE
LOWmusic_assistant/controllers/tasks/controller.py153 def run_task(self, task_id: str) -> BackgroundTask:CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWmusic_assistant/providers/filesystem_local/__init__.py2437 # TODO: implement favorite status based on rating ?COMMENT