AI Slop Code Risk Monitor

photoprism/photoprism

SlopCodeMonitor badge for photoprism/photoprism Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

AI-Powered Photos App 🌈💎✨

0.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for photoprism/photoprism, a Go project with 40,378 GitHub stars. SynthScan examined 807,815 lines of code across 4101 source files, recording 483 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 0.8 (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.

0.8
Adjusted Signal
0.8
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
40.4K
Stars
Go
Language
807.8K
Lines of Code
4.1K
Files
483
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 1.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.1/100 · LOW

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

Agent Over-Engineering Ratio 0.5/100 · LOW

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

PR Review Velocity Impact 3.8/100 · LOW

Which changes need focused human review? 483 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 7HIGH 4MEDIUM 29LOW 443

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 483 distinct pattern matches across 15 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.

Fake / Example Data224 hits · 277 pts
SeverityFileLineSnippetContext
LOW.ldap.cfg58 displayName = "John Doe"CODE
LOWdocker/dummy/oidc/app/mock/identities.go72 Email: "ola@example.org",CODE
LOWdocker/ddns/config/ddns.yml53 user: "foo@bar.com"CODE
LOWfrontend/tests/vitest/fixtures.js141 user: { ID: 1, UID: "urjysof3b9v7lgex", Name: "test", Email: "test@test.com" },CODE
LOWfrontend/tests/vitest/fixtures.js155 user: { ID: 1, UID: "urjysof3b9v7lgex", Name: "test", Email: "test@test.com" },CODE
LOWfrontend/tests/vitest/fixtures.js168 user: { ID: 1, UID: "urjysof3b9v7lgex", Name: "test", Email: "test@test.com" },CODE
LOWfrontend/tests/vitest/fixtures.js181 user: { ID: 1, UID: "urjysof3b9v7lgex", Name: "test", Email: "test@test.com" },CODE
LOWfrontend/tests/vitest/page/people-new.items.test.js12 { UID: "js6sg6b2h8njw0sx", Name: "John Doe" },CODE
LOWfrontend/tests/vitest/page/people-new.naming.test.js16 { UID: "js6sg6b2h8njw0sx", Name: "John Doe" },CODE
LOWfrontend/tests/vitest/page/people-new.naming.test.js181 expect(setName).toHaveBeenCalledWith("John Doe");CODE
LOWfrontend/tests/vitest/component/settings/webdav.test.js39 const wrapper = mountWebdavDialog({ userName: "user@example.com" });CODE
LOWfrontend/tests/vitest/component/settings/webdav.test.js40 const expected = `${window.location.protocol}//${encodeURIComponent("user@example.com")}@${window.location.host}/oriCODE
LOW…ntend/tests/vitest/component/meta/face/markers.test.js107 { UID: "m1", Name: "Jane Doe", X: 0.1, Y: 0.1, W: 0.2, H: 0.2 },CODE
LOW…ntend/tests/vitest/component/meta/face/markers.test.js117 expect(namedTitle.textContent).toBe("Jane Doe");CODE
LOW…end/tests/vitest/component/meta/location/input.test.js51 expect(input.attributes("placeholder")).toBe(placeholder);CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js194 { UID: "m1", CropID: "crop1", Name: "Jane Doe", SubjUID: "subj1", thumbnailUrl: () => "/t/thumb1/public/tile_160CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js298 expect(w.find(".meta-person__name bdi").text()).toBe("Jane Doe");CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js515 expect(wrapper.vm.people[0].Name).toBe("Jane Doe");CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js578 expect(wrapper.html()).toContain("Jane Doe");CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js885 w.vm.onClearSubject({ UID: "m1", SubjUID: "subj1", Name: "Jane Doe" });CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js955 expect(w.vm.markerInputValue("m1")).toBe("Jane Doe");CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js1364 const marker = { UID: "m1", Name: "Jane Doe", SubjUID: "subj1", thumbnailUrl: () => "/t/x/p/tile_160" };CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js2388 w.vm.navigateToPerson({ UID: "m1", Name: "Jane Doe", SubjUID: "subj1" });CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js3593 expect(html).not.toContain("Jane Doe");CODE
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js3774 namedMarker: "Jane Doe",CODE
LOW…ontend/tests/vitest/component/photo/people-tab.test.js19 Name: "John Doe",CODE
LOW…ontend/tests/vitest/component/photo/people-tab.test.js44 Name: "John Doe",CODE
LOWfrontend/tests/vitest/common/typeahead-cache.test.js206 const models = [{ Name: "Jane Doe", UID: "ps-1" }];CODE
LOWfrontend/tests/vitest/common/session.test.js82 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/common/session.test.js125 expect(result.Email).toBe("test@test.com");CODE
LOW⚡frontend/tests/vitest/common/session.test.js146 Email: "test@test.com",CODE
LOW⚡frontend/tests/vitest/common/session.test.js153 expect(result).toBe("test@test.com");CODE
LOW⚡frontend/tests/vitest/common/session.test.js158 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/common/session.test.js176 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/common/session.test.js192 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/common/session.test.js210 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/common/session.test.js221 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/common/session.test.js261 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/common/session.test.js279 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/common/session.test.js297 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/common/form.test.js134 "user@example.com",CODE
LOWfrontend/tests/vitest/common/form.test.js234 expect(requiredEmail[1]("user@example.com")).toBe(true);CODE
LOWfrontend/tests/vitest/model/user.test.js17 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js29 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js43 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js55 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js69 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js81 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js93 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js109 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js127 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js139 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js145 expect(result2).toBe("test@test.com");CODE
LOWfrontend/tests/vitest/model/user.test.js192 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js216 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/user.test.js318 Email: "test@test.com",CODE
LOWfrontend/tests/vitest/model/subject.test.js49 Name: "Jane Doe",CODE
LOWfrontend/tests/vitest/model/subject.test.js63 Name: "Jane Doe",CODE
LOWfrontend/tests/vitest/model/subject.test.js83 Name: "Jane Doe",CODE
LOWfrontend/tests/vitest/model/subject.test.js104 Name: "Jane Doe",CODE
164 more matches not shown…
Over-Commented Block192 hits · 192 pts
SeverityFileLineSnippetContext
LOW.ldap.cfg1## Dummy LDAP Directory Server - development and test fixture data.COMMENT
LOW.ldap.cfg21## characters other than ASCII. visitor is an ordinary login name, and cs5cpu17n6gj2qo5 is shaped like aCOMMENT
LOW.golangci.yml61 - nolintCOMMENT
LOWcompose.yaml321 OLLAMA_KV_CACHE_TYPE: "f16" # cache precision: f16 (default), q8_0, q4_0COMMENT
LOW.qdrant.yaml1log_level: INFOCOMMENT
LOW.qdrant.yaml21 snapshots_path: ./snapshotsCOMMENT
LOW.qdrant.yaml61 # node_type: "Listener"COMMENT
LOW.qdrant.yaml81 # If null - auto selection.COMMENT
LOW.qdrant.yaml101 optimizers:COMMENT
LOW.qdrant.yaml121 #COMMENT
LOW.qdrant.yaml141 indexing_threshold_kb: 20000COMMENT
LOW.qdrant.yaml161 # flush_interval_sec: 5COMMENT
LOW.qdrant.yaml261 # If enabled, browsers would be allowed to query REST endpoints regardless of query origin.COMMENT
LOW.qdrant.yaml281 # api_key: your_secret_api_key_hereCOMMENT
LOW.qdrant.yaml321 # Setting this parameter to lower value will allow consensusCOMMENT
LOWdocker/demo/setup.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/demo/jobs.ini1# See https://github.com/mcuadros/ofelia/blob/master/docs/jobs.md for job settings!COMMENT
LOWdocker/demo/traefik.yaml1# Uncomment to enable debug mode:COMMENT
LOWdocker/ddns/config/ddns.yml1# DigitalOcean DynDNS ConfigCOMMENT
LOWfrontend/tests/vitest/component/lightbox.basic.test.js201 });COMMENT
LOWfrontend/tests/vitest/component/lightbox.basic.test.js421 context: contexts.Default,COMMENT
LOW…tend/tests/vitest/component/file/chip-selector.test.js241 });COMMENT
LOW…ontend/tests/vitest/component/lightbox/sidebar.test.js41 videoFormat: () => "avc",COMMENT
LOWfrontend/tests/vitest/common/view.test.js181 // using PhotoSwipe's pan/swipe gestures), so regressions are silentCOMMENT
LOWfrontend/tests/vitest/common/form.test.js281 // Defensive-input regression for the centralized rules.textCOMMENT
LOWfrontend/tests/vitest/model/thumb.test.js381 // in fixtures.js plus Mock.history for the request log.COMMENT
LOWfrontend/tests/vitest/model/photo.test.js2841COMMENT
LOWfrontend/tests/acceptance/page-model/helpers.js441COMMENT
LOWfrontend/src/options/face-marker.js1// Face-marker UI state-machine values. Shared between the lightboxCOMMENT
LOWfrontend/src/component/lightbox.vue841 // zoom via the PDF viewer, and videos and animations are never flatly zoomable;COMMENT
LOWfrontend/src/component/lightbox.vue1441COMMENT
LOWfrontend/src/component/photo/batch-edit.vue741 }COMMENT
LOWfrontend/src/component/photo/batch-edit.vue1581COMMENT
LOWfrontend/src/component/photo/edit/labels.vue201 newLabel: "",COMMENT
LOWfrontend/src/common/event.js41// kept in sync with EntityCreated / EntityUpdated / EntityDeleted /COMMENT
LOWfrontend/src/common/sphere.js21Additional information can be found in our Developer Guide:COMMENT
LOWfrontend/src/common/map.js21 if (Array.isArray(p) && p.length >= 2) {COMMENT
LOWfrontend/src/model/rest.js41 // Returns a new instance of the same subclass populated with theCOMMENT
LOWfrontend/src/model/model-cache.js41 }COMMENT
LOWsetup/podman/docker-compose.yml1# Example Podman Compose config file for PhotoPrism (RedHat, CentOS, Fedora, and AlmaLinux)COMMENT
LOWsetup/podman/docker-compose.yml21# Logs | podman-compose logs --tail=25 -fCOMMENT
LOWsetup/podman/docker-compose.yml101 PHOTOPRISM_INIT: "https" # common options: update https intel gpu davfs yt-dlpCOMMENT
LOWsetup/podman/docker-compose.yml141 MARIADB_USER: "photoprism"COMMENT
LOWsetup/docker/compose.yaml1# Example Docker Compose config file for PhotoPrism (Linux / AMD64)COMMENT
LOWsetup/docker/compose.yaml101 OLLAMA_API_KEY: "" # API key required to access Ollama (optional)COMMENT
LOWsetup/docker/compose.yaml121 working_dir: "/photoprism" # do not change or removeCOMMENT
LOWsetup/docker/compose.yaml161 ## When specified, the container will connect to this host and replicate from it (for advanced users only):COMMENT
LOWsetup/docker/compose.yaml201 HF_HUB_DISABLE_TELEMETRY: "1"COMMENT
LOWsetup/docker/macos/compose.yaml1# Example Docker Compose config file for PhotoPrism (Apple macOS)COMMENT
LOWsetup/docker/macos/compose.yaml121 environment:COMMENT
LOWsetup/docker/scheduler/jobs.ini1# See https://github.com/mcuadros/ofelia/blob/master/docs/jobs.md for job settings!COMMENT
LOWsetup/docker/scheduler/compose.yaml1# Example Docker Compose config file for PhotoPrism (Linux / AMD64)COMMENT
LOWsetup/docker/scheduler/compose.yaml101 # PHOTOPRISM_FFMPEG_SIZE: "1920" # video size limit in pixels (720-15360) (default: 3840)COMMENT
LOWsetup/docker/scheduler/compose.yaml141COMMENT
LOWsetup/docker/scheduler/compose.yaml161 # volumes:COMMENT
LOWsetup/docker/armv7/compose.yaml1# Example Docker Compose config file for PhotoPrism (ARMv7-based, 32-bit devices)COMMENT
LOWsetup/docker/armv7/compose.yaml21# - https://docs.photoprism.app/getting-started/troubleshooting/docker/COMMENT
LOWsetup/docker/armv7/compose.yaml101 # PHOTOPRISM_FFMPEG_BITRATE: "32" # transcoding bitrate threshold in Mbps, also NVIDIA peak limit (deCOMMENT
LOWsetup/docker/armv7/compose.yaml141 MYSQL_CHARSET: "utf8mb4"COMMENT
LOWsetup/docker/sqlite/compose.yaml1# Example Docker Compose config file for PhotoPrism (Linux / AMD64)COMMENT
132 more matches not shown…
Hallucination Indicators7 hits · 70 pts
SeverityFileLineSnippetContext
CRITICAL…ontend/tests/vitest/component/lightbox/sidebar.test.js2989 expect(w.vm.chipState.albums.options.some((a) => a.UID === "alb-created")).toBe(true);CODE
CRITICAL…ontend/tests/vitest/component/lightbox/sidebar.test.js3199 expect(w.vm.chipState.labels.options.map((l) => l.Name)).toEqual(["apple", "Beach", "Mountain"]);CODE
CRITICAL…ontend/tests/vitest/component/lightbox/sidebar.test.js3216 expect(w.vm.chipState.albums.options.map((a) => a.Title)).toEqual(["alpha", "Mango", "Zebra"]);CODE
CRITICAL…tend/tests/vitest/component/photo/edit/details.test.js312 wrapper.vm.view.model.localDate.mockReturnValue(mockLocalDate);CODE
CRITICAL…tend/tests/vitest/component/photo/edit/details.test.js327 wrapper.vm.view.model.localDate.mockReturnValue(mockInvalidDate);CODE
CRITICALfrontend/src/page/places.vue1004 this.map.setLanguage(this.$config.values.settings.ui.language.split("-")[0]);CODE
CRITICALfrontend/src/common/maplibregl.js144 this.setLanguage($config.values.settings.ui.language.split("-")[0] || opt_fallback || "native");CODE
Decorative Section Separators23 hits · 69 pts
SeverityFileLineSnippetContext
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js103 // ─── Rendering ────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js131 // ─── v-file-upload props ──────────────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js190 // ─── onFilesSelected — append / remove / dedup ────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js237 // ─── hasFiles computed ─────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js265 // ─── Upload button enabled/disabled ───────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js286 // ─── onUpload() guards ────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js322 // ─── onUpload() — starts upload ───────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js350 // ─── reset() ─────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js382 // ─── onClose() ───────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js441 // ─── onUploadProgress() ───────────────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js469 // ─── onUploadComplete() ───────────────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js493 // ─── visible watcher ─────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/tests/vitest/component/upload/dialog.test.js512 // ─── title computed ───────────────────────────────────────────────────────COMMENT
MEDIUMsetup/podman/docker-compose.yml17# --------------------------------------------------------------------------COMMENT
MEDIUMsetup/cloud/digitalocean/setup.sh4# =============================COMMENT
MEDIUMsetup/cloud/digitalocean/compose.yaml1# ========================================================================COMMENT
MEDIUMsetup/cloud/digitalocean/compose.yaml3# ========================================================================COMMENT
MEDIUMsetup/cloud/digitalocean/compose.yaml42# ------------------------------------------------------------------------COMMENT
MEDIUMsetup/cloud/digitalocean/compose.yaml53# ------------------------------------------------------------------------COMMENT
MEDIUMsetup/cloud/digitalocean/compose.yaml74# ------------------------------------------------------------------------COMMENT
MEDIUMsetup/cloud/digitalocean/install_photoprism.sh4# ============================COMMENT
MEDIUMsetup/cloud/digitalocean/traefik.yaml2# -------------------------------------------------------------------------COMMENT
MEDIUMsetup/cloud/digitalocean/traefik.yaml16# -------------------------------------------------------------------------COMMENT
Synthetic Comment Markers3 hits · 22 pts
SeverityFileLineSnippetContext
HIGHfrontend/tests/acceptance/page-model/helpers.js486// as requested by the helperRemove and helperRevert functions.COMMENT
HIGHfrontend/src/model/label.js16// Label models user-defined keywords and AI-generated tags.COMMENT
HIGHinternal/api/session_create.go66 // Protection against AI-generated vulnerability reports.COMMENT
Hyper-Verbose Identifiers12 hits · 10 pts
SeverityFileLineSnippetContext
LOWfrontend/tests/vitest/common/sphere.test.js21 EquirectangularVideoAdapter: function EquirectangularVideoAdapter() {},CODE
LOWfrontend/tests/acceptance/acceptance-api/cleanup.js11function cleanAlbumsFilesAndLabels(jsonBody) {CODE
LOWfrontend/src/common/typeahead-cache.js178function evictPeopleUnlessSelfEcho(data, action) {CODE
LOWfrontend/src/common/albums.js45export function createAlbumSelectionWatcher(albumsProperty) {CODE
LOWfrontend/src/common/view.js388export function preventNavigationTouchEvent(ev) {CODE
LOWscripts/lint/check-cuda-install.py240 def test_first_install_success(self):STRING
LOW⚡scripts/lint/check-cuda-install.py260 def test_private_prefix_ldconfig_failure(self):STRING
LOW⚡scripts/lint/check-cuda-install.py268 def test_preparation_failures(self):STRING
LOW⚡scripts/lint/check-cuda-install.py278 def test_publication_failures(self):STRING
LOW⚡scripts/lint/check-cuda-install.py288 def test_first_install_failure(self):STRING
LOWscripts/lint/check-cuda-install.py306 def test_first_install_signal(self):STRING
LOWscripts/lint/check-cuda-install.py324 def test_directory_destination(self):STRING
AI Slop Vocabulary4 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMcompose.intel.yaml71 PHOTOPRISM_OIDC_PROMPT: "" # authorization prompt: login, select_account, or consent (eCODE
MEDIUMcompose.nvidia.yaml74 PHOTOPRISM_OIDC_PROMPT: "" # authorization prompt: login, select_account, or consent (eCODE
MEDIUMcompose.yaml78 PHOTOPRISM_OIDC_PROMPT: "" # authorization prompt: login, select_account, or consent (eCODE
MEDIUMinternal/commands/show_metadata.go67 // Documentation links for those who want to delve deeper.COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMcompose.yaml544## Create a shared bridge network for connecting with services in other compose.yaml files.COMMENT
MEDIUMscripts/setup/nas/raspberry-pi/build.sh85# Create the final SD card image.COMMENT
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWsetup/charts/plus/values.yaml97# Set scheme to HTTPS only if PhotoPrism terminates TLS itself.COMMENT
LOWsetup/cloud/digitalocean/init/check.sh93 # Check if there are log archives or log files that have not been recently cleared.COMMENT
LOWscripts/render/svg-icon.sh14 # Check if source file exists.COMMENT
LOWscripts/render/svg-icon.sh31 # Check if source file exists.COMMENT
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHscripts/ai/export-nsfw-models.py532except importlib.metadata.PackageNotFoundError:CODE
Verbosity Indicators3 hits · 4 pts
SeverityFileLineSnippetContext
LOWinternal/api/oidc_redirect.go265 // Step 1: Create user account if it does not exist yet.COMMENT
LOWinternal/api/oidc_redirect.go578 // Step 2: Create user session.COMMENT
LOWinternal/api/oidc_redirect.go640 // Step 3: Render HTML template to set the access token in localStorage.COMMENT
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWinternal/api/oidc_redirect.go265 // Step 1: Create user account if it does not exist yet.COMMENT
LOWinternal/api/oidc_redirect.go578 // Step 2: Create user session.COMMENT
LOWinternal/api/oidc_redirect.go640 // Step 3: Render HTML template to set the access token in localStorage.COMMENT
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWdocker/demo/setup.sh5# Usage:COMMENT
LOWscripts/dav-probe.sh6# Usage:COMMENT
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/ai/export-nsfw-models.py4CODE
LOWscripts/ai/export-label-models.py4CODE
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/lint/check-cuda-install.py293CODE