Muzei Live Wallpaper for Android
This report summarizes scanner evidence for muzei/muzei, a Kotlin project with 4,957 GitHub stars. SynthScan examined 65,682 lines of code across 555 source files, recording 150 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 4.1 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 97 finding(s).
Are imports declared and package/API names verified? 34 finding(s).
Are wrappers, guards, and repeated structures necessary? 80 finding(s).
Which changes need focused human review? 150 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 150 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/frontend/html/backroom_schedule.html | 384 | function reloadArtworksForCurrentMonth() { | CODE |
| LOW | web/frontend/html/backroom_schedule.html | 443 | function addArtworkFromExternalArtworkUrl(url, publishDate, callback) { | CODE |
| LOW | web/lib/cloudstorage/cloudstorage_api.py | 376 | def _should_get_another_batch(self, content): | CODE |
| LOW | web/lib/cloudstorage/api_utils.py | 49 | def _get_default_retry_params(): | CODE |
| LOW | web/lib/cloudstorage/api_utils.py | 175 | def belong_to_current_request(self): | CODE |
| LOW | web/lib/bs4/element.py | 100 | def _substitute_if_appropriate(cls, ns, f): | CODE |
| LOW | web/lib/bs4/element.py | 1351 | def default_candidate_generator(tag): | CODE |
| LOW | web/lib/bs4/dammit.py | 54 | def _populate_class_variables(): | CODE |
| LOW | web/lib/bs4/dammit.py | 158 | def substitute_xml_containing_entities( | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 89 | def test_public_doctype_with_url(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 96 | def test_namespaced_system_doctype(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 100 | def test_namespaced_public_doctype(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 125 | def test_p_tag_is_never_empty_element(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 135 | def test_unclosed_tags_get_closed(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 145 | def test_br_is_always_empty_element_tag(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 155 | def test_nested_formatting_elements(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 216 | def test_deeply_nested_multivalued_attribute(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 224 | def test_angle_brackets_in_attribute_values_are_escaped(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 227 | def test_entities_in_attributes_converted_to_unicode(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 234 | def test_entities_in_text_converted_to_unicode(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 241 | def test_quot_entity_converted_to_quotation_mark(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 299 | def test_single_quote_attribute_values_become_double_quotes(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 303 | def test_attribute_values_with_nested_quotes_are_left_alone(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 307 | def test_attribute_values_with_double_nested_quotes_get_quoted(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 315 | def test_ampersand_in_attribute_value_gets_escaped(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 323 | def test_escaped_ampersand_in_attribute_value_is_left_alone(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 326 | def test_entities_in_strings_converted_during_parsing(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 333 | def test_smart_quotes_converted_on_the_way_in(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 342 | def test_non_breaking_spaces_converted_on_the_way_in(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 346 | def test_entities_converted_on_the_way_out(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 352 | def test_real_iso_latin_document(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 521 | def test_tags_are_empty_element_if_and_only_if_they_are_empty(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 525 | def test_namespaces_are_preserved(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 532 | def test_closing_namespaced_tag(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 537 | def test_namespaced_attributes(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 542 | def test_namespaced_attributes_xml_namespace(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 555 | def test_html_tags_have_namespace(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 560 | def test_svg_tags_have_namespace(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 568 | def test_mathml_tags_have_namespace(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 575 | def test_xml_declaration_becomes_comment(self): | CODE |
| LOW | web/lib/bs4/testing.py | 173 | def test_preserved_whitespace_in_pre_and_textarea(self): | CODE |
| LOW | web/lib/bs4/testing.py | 178 | def test_nested_inline_elements(self): | CODE |
| LOW | web/lib/bs4/testing.py | 189 | def test_nested_block_level_elements(self): | CODE |
| LOW | web/lib/bs4/testing.py | 196 | def test_correctly_nested_tables(self): | CODE |
| LOW | web/lib/bs4/testing.py | 272 | def test_multivalued_attribute_value_becomes_list(self): | CODE |
| LOW | web/lib/bs4/testing.py | 284 | def test_can_parse_unicode_document(self): | CODE |
| LOW | web/lib/bs4/testing.py | 379 | def test_real_shift_jis_document(self): | CODE |
| LOW | web/lib/bs4/testing.py | 396 | def test_real_hebrew_document(self): | CODE |
| LOW | web/lib/bs4/testing.py | 407 | def test_meta_tag_reflects_current_encoding(self): | CODE |
| LOW | web/lib/bs4/testing.py | 459 | def test_tag_with_no_attributes_can_have_attributes_added(self): | CODE |
| LOW | web/lib/bs4/testing.py | 483 | def test_formatter_processes_script_tag_for_xml_documents(self): | CODE |
| LOW⚡ | web/lib/bs4/testing.py | 495 | def test_can_parse_unicode_document(self): | STRING |
| LOW⚡ | web/lib/bs4/testing.py | 500 | def test_popping_namespaced_tag(self): | STRING |
| LOW⚡ | web/lib/bs4/testing.py | 506 | def test_docstring_includes_correct_encoding(self): | STRING |
| LOW | web/lib/bs4/builder/__init__.py | 129 | def test_fragment_to_document(self, fragment): | CODE |
| LOW | web/lib/bs4/builder/__init__.py | 145 | def _replace_cdata_list_attribute_values(self, tag_name, attrs): | CODE |
| LOW | web/lib/bs4/builder/__init__.py | 288 | def register_treebuilders_from(module): | CODE |
| LOW | web/lib/bs4/builder/_html5lib.py | 52 | def test_fragment_to_document(self, fragment): | CODE |
| LOW | web/lib/bs4/builder/_lxml.py | 208 | def test_fragment_to_document(self, fragment): | CODE |
| LOW | web/lib/bs4/builder/_lxml.py | 231 | def test_fragment_to_document(self, fragment): | CODE |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ava/com/google/android/apps/muzei/api/MuzeiContract.kt | 206 | com.google.android.apps.muzei.api.Artwork.fromCursor(cursor) | CODE |
| CRITICAL | …le/android/apps/muzei/api/provider/ProviderContract.kt | 127 | com.google.android.apps.muzei.api.provider.Artwork.fromCursor(data) | CODE |
| CRITICAL | …/google/android/apps/muzei/wearable/ArtworkTransfer.kt | 50 | return com.google.android.apps.muzei.api.provider.Artwork( | CODE |
| CRITICAL | …om/google/android/apps/muzei/sync/ArtworkLoadWorker.kt | 276 | val providerArtwork = com.google.android.apps.muzei.api.provider.Artwork.fromCursor(data) | CODE |
| CRITICAL | …oogle/android/apps/muzei/sync/ProviderChangedWorker.kt | 280 | val providerArtwork = com.google.android.apps.muzei.api.provider.Artwork.fromCursor(data) | CODE |
| CRITICAL | …e/android/apps/muzei/browse/BrowseProviderViewModel.kt | 77 | com.google.android.apps.muzei.api.provider.Artwork.fromCursor(data) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | web/lib/cloudstorage/cloudstorage_api.py | 35 | Opens a Google Cloud Storage file and returns it as a File-like object. Args: filename: A Google Cloud Storage fi | STRING |
| HIGH | web/lib/cloudstorage/cloudstorage_api.py | 106 | Get GCSFileStat of a Google Cloud storage file. Args: filename: A Google Cloud Storage filename of form '/bucket/ | STRING |
| HIGH | web/lib/cloudstorage/cloudstorage_api.py | 165 | Returns a GCSFileStat iterator over a bucket. Optional arguments can limit the result to a subset of files under buck | STRING |
| HIGH | web/lib/cloudstorage/common.py | 215 | Validate and process a Google Cloud Stoarge path prefix. Args: path_prefix: a Google Cloud Storage path prefix of | STRING |
| HIGH | web/lib/cloudstorage/storage_api.py | 241 | Read one line delimited by '\n' from the file. A trailing newline character is kept in the string. It may be absent | STRING |
| HIGH | web/lib/cloudstorage/storage_api.py | 283 | Read data from RAW file. Args: size: Number of bytes to read as integer. Actual number of bytes read | STRING |
| HIGH | web/lib/cloudstorage/storage_api.py | 373 | Get a segment of the file from Google Storage. Args: start: start offset of the segment. Inclusive. Have to b | STRING |
| HIGH | web/lib/cloudstorage/api_utils.py | 145 | Check init arguments. Args: name: name of the argument. For logging purpose. val: value. Value has to b | STRING |
| HIGH | web/lib/cloudstorage/api_utils.py | 198 | A blocking fetch function similar to urlfetch.fetch. This function should be used when a urlfetch has timed out or th | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | web/lib/bs4/dammit.py | 42 | except ImportError: | CODE |
| HIGH | web/lib/bs4/dammit.py | 454 | except (LookupError, ValueError): | CODE |
| HIGH | web/lib/bs4/builder/__init__.py | 313 | except ImportError: | CODE |
| HIGH | web/lib/bs4/builder/__init__.py | 319 | except ImportError: | CODE |
| HIGH | web/handlers/backroomarthelper.py | 60 | except: | CODE |
| HIGH | web/handlers/backroomarthelper.py | 71 | except: | CODE |
| HIGH | web/handlers/backroomarthelper.py | 77 | except: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/lib/cloudstorage/cloudstorage_api.py | 7 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 6 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 7 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 8 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 9 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 10 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 11 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 12 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 13 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 14 | CODE | |
| LOW | web/lib/cloudstorage/__init__.py | 15 | CODE | |
| LOW | web/lib/bs4/dammit.py | 14 | CODE | |
| LOW | web/lib/bs4/dammit.py | 41 | CODE | |
| LOW | web/lib/bs4/testing.py | 4 | CODE | |
| LOW | web/lib/bs4/builder/__init__.py | 2 | CODE | |
| LOW | web/handlers/randomizer.py | 15 | CODE | |
| LOW | web/handlers/randomizer.py | 20 | CODE | |
| LOW | web/handlers/randomizer.py | 25 | CODE | |
| LOW | web/handlers/randomizer.py | 26 | CODE | |
| LOW | web/handlers/backroom.py | 16 | CODE | |
| LOW | web/handlers/backroom.py | 17 | CODE | |
| LOW | web/handlers/backroom.py | 19 | CODE | |
| LOW | web/handlers/backroom.py | 22 | CODE | |
| LOW | web/handlers/backroom.py | 25 | CODE | |
| LOW | web/handlers/backroomarthelper.py | 28 | CODE | |
| LOW | web/handlers/featuredart.py | 18 | CODE | |
| LOW | web/handlers/common.py | 21 | CODE | |
| LOW | web/handlers/archive.py | 30 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | wearable/proguard-project.txt | 1 | # To enable ProGuard in your project, edit project.properties | COMMENT |
| LOW | web/app.yaml | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/models.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/index.yaml | 1 | indexes: | COMMENT |
| LOW | web/lib/bs4/element.py | 121 | (either a tag or a piece of text)""" | COMMENT |
| LOW | web/lib/bs4/builder/__init__.py | 261 | content = tag.get('content') | COMMENT |
| LOW | web/handlers/tasks.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/handlers/randomizer.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/handlers/backroom.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/handlers/__init__.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/handlers/backroomarthelper.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/handlers/featuredart.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/handlers/common.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/handlers/archive.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | web/handlers/main.py | 1 | # Copyright 2014 Google Inc. | COMMENT |
| LOW | gradle/libs.versions.toml | 1 | # | COMMENT |
| LOW | main/proguard-project.txt | 1 | # To enable ProGuard in your project, edit project.properties | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/lib/cloudstorage/cloudstorage_api.py | 11 | __all__ = ['delete', | CODE |
| LOW | web/lib/cloudstorage/common.py | 9 | __all__ = ['CS_XML_NS', | CODE |
| LOW | web/lib/cloudstorage/errors.py | 9 | __all__ = ['AuthorizationError', | CODE |
| LOW | web/lib/cloudstorage/storage_api.py | 9 | __all__ = ['ReadBuffer', | CODE |
| LOW | web/lib/cloudstorage/api_utils.py | 7 | __all__ = ['set_default_retry_params', | CODE |
| LOW | web/lib/cloudstorage/rest_api.py | 9 | __all__ = ['add_sync_methods'] | CODE |
| LOW | web/lib/bs4/__init__.py | 24 | __all__ = ['BeautifulSoup'] | CODE |
| LOW | web/lib/bs4/builder/_htmlparser.py | 3 | __all__ = [ | CODE |
| LOW | web/lib/bs4/builder/__init__.py | 10 | __all__ = [ | CODE |
| LOW | web/lib/bs4/builder/_html5lib.py | 1 | __all__ = [ | CODE |
| LOW | web/lib/bs4/builder/_lxml.py | 1 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/lib/cloudstorage/cloudstorage_api.py | 285 | CODE | |
| LOW | web/lib/cloudstorage/cloudstorage_api.py | 335 | CODE | |
| LOW | web/lib/cloudstorage/errors.py | 74 | CODE | |
| LOW | web/lib/bs4/dammit.py | 266 | CODE | |
| LOW | web/lib/bs4/dammit.py | 768 | CODE | |
| LOW | web/lib/bs4/builder/__init__.py | 145 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/lib/bs4/builder/_html5lib.py | 156 | # Create a brand new NavigableString from this string. | COMMENT |
| MEDIUM | web/handlers/randomizer.py | 63 | # Create a blacklist of keys to avoid repeats | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …om/google/android/apps/muzei/render/GLTextureView.java | 1617 | // TODO: implement a fairness policy. Currently | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/lib/bs4/builder/_html5lib.py | 193 | # but we just set/changed the attributes, so call it again. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/lib/bs4/dammit.py | 418 | except Exception as e: | CODE |