Cloud-Native distributed storage built on and for Kubernetes
This report summarizes scanner evidence for longhorn/longhorn, a Shell project with 8,052 GitHub stars. SynthScan examined 79,403 lines of code across 321 source files, recording 45 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 0.7 (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? 39 finding(s).
Are imports declared and package/API names verified? 1 finding(s).
Are wrappers, guards, and repeated structures necessary? 7 finding(s).
Which changes need focused human review? 45 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 45 distinct pattern matches across 8 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 | chart/values.yaml | 161 | nodePort: null | COMMENT |
| LOW | chart/values.yaml | 321 | # -- Maximum number of failed support bundles that can exist in the cluster. When the value is "0", Longhorn automatic | COMMENT |
| LOW | chart/values.yaml | 381 | # -- Number of minutes that Longhorn waits before cleaning up the backing image file when no replicas in the disk are | COMMENT |
| LOW | chart/values.yaml | 521 | log: | COMMENT |
| LOW | chart/values.yaml | 541 | ## and uncomment this example block | COMMENT |
| LOW | chart/values.yaml | 581 | ## If you want to set topology spread constraints for the global manager Deployment, delete the `[]` in the line above | COMMENT |
| LOW | chart/values.yaml | 601 | # -- Minimum number or percentage of global manager pods that must remain available during a disruption. Mutually ex | COMMENT |
| LOW | chart/values.yaml | 641 | - longhorn-ui | COMMENT |
| LOW | chart/values.yaml | 661 | # -- Resource requests and limits for Longhorn UI pods. | COMMENT |
| LOW | chart/values.yaml | 681 | # ingressClassName can replace the kubernetes.io/ingress.class annotation used in earlier Kubernetes releases. | COMMENT |
| LOW | chart/values.yaml | 701 | ## If you're using kube-lego, you will want to add: | COMMENT |
| LOW | chart/values.yaml | 721 | ## | COMMENT |
| LOW | chart/values.yaml | 741 | ## Example: | COMMENT |
| LOW | chart/values.yaml | 781 | annotations: {} | COMMENT |
| LOW | chart/templates/validate-psp-install.yaml | 1 | #{{- if gt (len (lookup "rbac.authorization.k8s.io/v1" "ClusterRole" "" "")) 0 -}} | COMMENT |
| LOW | examples/storageclass.yaml | 21 | # nodeSelector: "storage,fast" | COMMENT |
| LOW | …crypto/secret-crypto-customized-rhel-FIPS-enabled.yaml | 21 | # (e.g., replica rebuild, engine restart, volume attach paths) | COMMENT |
| LOW | examples/v2/replication/storageclass.yaml | 21 | # fromBackup: "" | COMMENT |
| LOW | .github/workflows/enforce-issue-requirements.yml | 141 | // [BUG FIX] -> valid | COMMENT |
| LOW | .github/workflows/scorecards.yml | 41 | # - you want to enable the Branch-Protection check on a *public* repository, or | COMMENT |
| LOW | enhancements/20220420-longhorn-snapshot-crd.md | 61 | ```yaml | COMMENT |
| LOW | enhancements/20220420-longhorn-snapshot-crd.md | 81 | // +optional | COMMENT |
| LOW | enhancements/20260519-v2-sharding.md | 2601 | # Why the sequence here too: engine and ShardGroup are co-located on one | COMMENT |
| LOW | …nts/20260819-age-based-retention-for-recurring-jobs.md | 121 | // The retention age of the snapshot/backup, specified as a Go duration string, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | deploy/longhorn-okd.yaml | 6890 | # Create a proxy service account and ensure it will use the route "proxy" | COMMENT |
| MEDIUM | deploy/longhorn-okd.yaml | 6891 | # Create a secure connection to the proxy via a route | COMMENT |
| MEDIUM | chart/templates/deployment-ui.yaml | 4 | # Create a proxy service account and ensure it will use the route "proxy" | COMMENT |
| MEDIUM | chart/templates/deployment-ui.yaml | 5 | # Create a secure connection to the proxy via a route | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …and-sizing-guidelines/public-cloud/medium-node-spec.md | 4374 | print(f"Error getting engine: {e}") | CODE |
| LOW | scripts/update-uninstall-manifest.py | 64 | except Exception as e: | CODE |
| MEDIUM | scripts/update-uninstall-manifest.py | 65 | print(f"Error: {str(e)}") | CODE |
| MEDIUM | scripts/update-uninstall-manifest.py | 54 | def main(): | CODE |
| LOW | .github/workflows/pr-review-reminder.py | 177 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/update-uninstall-manifest.py | 12 | CODE | |
| LOW | .github/workflows/scan-and-notify-testing-items.py | 110 | CODE | |
| LOW | .github/workflows/scan-and-notify-testing-items.py | 193 | CODE | |
| LOW | .github/workflows/pr-review-reminder.py | 20 | CODE | |
| LOW | .github/workflows/pr-review-reminder.py | 105 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deploy/upgrade_responder_server/chart-values.yaml | 14 | # Set this to false if you don't want to manage these secrets with helm | COMMENT |
| LOW | .github/workflows/pr-review-reminder.py | 126 | # Check if the command was successful | COMMENT |
| LOW | .github/workflows/pr-review-reminder.py | 135 | # Check if there's any output to parse | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | enhancements/20260519-v2-sharding.md | 1844 | # Aggregated EC orchestration state | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/check-sprint-last-day.py | 95 | def is_today_is_in_last_day_of_current_sprint(github_token, project_id): | STRING |
| LOW | .github/workflows/scan-and-notify-testing-items.py | 98 | def is_today_is_in_last_day_of_current_sprint(github_token, project_id): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/scan-and-notify-testing-items.py | 4 | CODE |