Menu-driven Proxmox VE toolkit — post-install, backup/restore and a live web dashboard for the homelab.
This report summarizes scanner evidence for MacRimi/ProxMenux, a TypeScript project with 3,136 GitHub stars. SynthScan examined 405,188 lines of code across 837 source files, recording 3548 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 18.3 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1048 finding(s).
Are imports declared and package/API names verified? 85 finding(s).
Are wrappers, guards, and repeated structures necessary? 2644 finding(s).
Which changes need focused human review? 3548 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 3548 distinct pattern matches across 20 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 |
|---|---|---|---|---|
| MEDIUM⚡ | install_proxmenux.sh | 3 | # ========================================================== | COMMENT |
| MEDIUM⚡ | install_proxmenux.sh | 5 | # ========================================================== | COMMENT |
| MEDIUM⚡ | install_proxmenux.sh | 13 | # ========================================================== | COMMENT |
| MEDIUM | install_proxmenux.sh | 40 | # ========================================================== | COMMENT |
| MEDIUM | install_proxmenux.sh | 269 | # ========================================================== | COMMENT |
| MEDIUM | install_proxmenux.sh | 293 | # ========================================================== | COMMENT |
| MEDIUM | install_proxmenux.sh | 448 | # ── AppImage runtime extraction ──────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux.sh | 895 | # ── Legacy gpu-guard hookscript auto-cleanup ────────────── | COMMENT |
| MEDIUM⚡ | install_proxmenux_beta.sh | 3 | # ========================================================== | COMMENT |
| MEDIUM⚡ | install_proxmenux_beta.sh | 5 | # ========================================================== | COMMENT |
| MEDIUM⚡ | install_proxmenux_beta.sh | 13 | # ========================================================== | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 32 | # ========================================================== | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 34 | # ── Configuration ────────────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 57 | # ── Colors ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 80 | # ── Spinner ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 148 | # ── Cleanup ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 156 | # ── Logo ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 227 | # ── Beta welcome message ─────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 267 | # ── Helpers ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 334 | # ── AppImage runtime extraction ──────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 380 | # ── Monitor install ──────────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 545 | # ── Main install ─────────────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 593 | # ── Step 1: Language selection ──────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 610 | # ── Step 2: Dependencies ────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 658 | # ── Step 3: Clone develop branch ───────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 677 | # ── Step 4: Files ───────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 744 | # ── Step 5: Monitor ─────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 763 | # ── Stable transition notice ─────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 778 | # ── Entry point ──────────────────────────────────────────── | COMMENT |
| MEDIUM | install_proxmenux_beta.sh | 806 | # ── Legacy gpu-guard hookscript auto-cleanup ────────────── | COMMENT |
| MEDIUM⚡ | CONTRIBUTING.md | 42 | # ========================================================== | COMMENT |
| MEDIUM⚡ | CONTRIBUTING.md | 44 | # ========================================================== | COMMENT |
| MEDIUM⚡ | CONTRIBUTING.md | 53 | # ========================================================== | COMMENT |
| MEDIUM⚡ | CONTRIBUTING.md | 60 | # ========================================================== | COMMENT |
| MEDIUM | CONTRIBUTING.md | 225 | # ── PHASE 2 — EXECUTION ─────────────────────────────────── | COMMENT |
| MEDIUM | web/messages/es/docs/about/contributing.json | 100 | "phase2Code": "# ── PHASE 2 — EXECUTION ─────────────────────────────\nshow_proxmenux_logo\nmsg_title \"$(translate | CODE |
| MEDIUM | web/messages/en/docs/about/contributing.json | 100 | "phase2Code": "# ── PHASE 2 — EXECUTION ─────────────────────────────\nshow_proxmenux_logo\nmsg_title \"$(translate | CODE |
| MEDIUM | …app/[locale]/docs/hardware/gpu-vm-passthrough/page.tsx | 456 | # ─── OPTIONAL — not required ────────────────────────────────────── | COMMENT |
| MEDIUM | …app/[locale]/docs/hardware/gpu-vm-passthrough/page.tsx | 461 | # ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/app/[locale]/docs/hardware/coral-tpu-lxc/page.tsx | 290 | # ─── OPTIONAL — fallback path ──────────────────────────────────── | COMMENT |
| MEDIUM | web/app/[locale]/docs/hardware/coral-tpu-lxc/page.tsx | 294 | # ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/02.GUIA_MODIFICACION_OFFLINE.md | 566 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM | docs/02.GUIA_MODIFICACION_OFFLINE.md | 568 | # -------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/help_info_menu.sh | 2 | # ========================================================== | COMMENT |
| MEDIUM⚡ | scripts/help_info_menu.sh | 4 | # ========================================================== | COMMENT |
| MEDIUM⚡ | scripts/help_info_menu.sh | 10 | # ========================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 29 | # ========================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 42 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 63 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 65 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 169 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 171 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 285 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 287 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 563 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 565 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 644 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 646 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 686 | # =============================================================== | COMMENT |
| MEDIUM | scripts/help_info_menu.sh | 688 | # =============================================================== | COMMENT |
| 1547 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .github/scripts/generate_app_tracking_catalog.py | 1103 | except (OSError, json.JSONDecodeError): | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 515 | except OSError: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 699 | except Exception as e: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 264 | except Exception: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 268 | except Exception: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 405 | except: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 410 | except: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 426 | except Exception: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 430 | except Exception: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 631 | except Exception as e: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 713 | except: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 725 | except: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 68 | except StopIteration: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 719 | except: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 376 | except Exception: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 400 | except: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 708 | except: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 354 | except: | CODE |
| HIGH | AppImage/scripts/flask_terminal_routes.py | 573 | except Exception as e: | CODE |
| HIGH | AppImage/scripts/mount_monitor.py | 83 | except OSError: | CODE |
| HIGH | AppImage/scripts/mount_monitor.py | 368 | except (subprocess.TimeoutExpired, OSError): | CODE |
| HIGH | AppImage/scripts/notification_events.py | 180 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 408 | except (OSError, IOError): | CODE |
| HIGH | AppImage/scripts/notification_events.py | 717 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 2127 | except (OSError, IOError): | CODE |
| HIGH | AppImage/scripts/notification_events.py | 2481 | except (IOError, PermissionError): | CODE |
| HIGH | AppImage/scripts/notification_events.py | 3380 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 3509 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 3918 | except ImportError: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 4028 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 475 | except (subprocess.TimeoutExpired, FileNotFoundError, OSError): | CODE |
| HIGH | AppImage/scripts/notification_events.py | 730 | except OSError: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 1504 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 1724 | except (OSError, IOError): | CODE |
| HIGH | AppImage/scripts/notification_events.py | 2070 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 3017 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 3411 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 3421 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 464 | except OSError: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 2831 | except (ValueError, TypeError): | CODE |
| HIGH | AppImage/scripts/notification_events.py | 679 | except Exception: | CODE |
| HIGH | AppImage/scripts/notification_events.py | 2961 | except (json.JSONDecodeError, TypeError): | CODE |
| HIGH | AppImage/scripts/notification_events.py | 2125 | except (ValueError, ProcessLookupError, PermissionError): | CODE |
| HIGH | AppImage/scripts/notification_events.py | 1030 | except Exception: | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 286 | except OSError: | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 305 | except (FileNotFoundError, json.JSONDecodeError, OSError): | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 2758 | except OSError: | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 3643 | except (TypeError, ValueError): | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 4325 | except (TypeError, ValueError): | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 231 | except OSError: | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 360 | except OSError: | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 2597 | except OSError: | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 3323 | except (ValueError, TypeError): | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 4433 | except (TypeError, ValueError): | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 1022 | except (subprocess.TimeoutExpired, OSError): | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 2732 | except OSError: | CODE |
| HIGH | AppImage/scripts/lxc_apps.py | 1018 | except (ProcessLookupError, OSError): | CODE |
| HIGH | AppImage/scripts/post_install_versions.py | 157 | except OSError: | CODE |
| HIGH | AppImage/scripts/post_install_versions.py | 428 | except OSError: | CODE |
| HIGH | AppImage/scripts/flask_notification_routes.py | 259 | except Exception: | CODE |
| 155 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/global/remove-banner-pve-v3.sh | 191 | except Exception as e: | CODE |
| LOW | .github/scripts/generate_helpers_cache_back.py | 69 | except Exception as e: | CODE |
| LOW | .github/scripts/generate_helpers_cache_back.py | 90 | except Exception: | CODE |
| MEDIUM | .github/scripts/generate_helpers_cache_back.py | 66 | def main() -> int: | CODE |
| LOW | .github/scripts/build_i18n_messages.py | 305 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | .github/scripts/build_translation_cache.py | 131 | except Exception: | CODE |
| LOW | .github/scripts/build_translation_cache.py | 157 | except Exception as exc: | CODE |
| LOW | .github/scripts/build_translation_cache.py | 300 | except Exception: | CODE |
| LOW | .github/scripts/build_translation_cache.py | 448 | except Exception as exc: | CODE |
| LOW | .github/scripts/generate_helpers_cache.py | 129 | except Exception as e: | CODE |
| MEDIUM | .github/scripts/generate_helpers_cache.py | 125 | def main() -> int: | CODE |
| LOW | .github/scripts/build_web_docs_i18n.py | 362 | except Exception as exc: # network/provider errors are retried together | CODE |
| LOW | .github/scripts/build_web_docs_i18n.py | 567 | except Exception as exc: | CODE |
| LOW | .github/scripts/generate_app_tracking_catalog.py | 197 | except Exception: | CODE |
| MEDIUM⚡ | AppImage/scripts/flask_terminal_routes.py | 383 | print(f"Error writing to PTY: {e}") | CODE |
| MEDIUM | AppImage/scripts/flask_terminal_routes.py | 232 | print(f"Error setting window size: {e}") | CODE |
| MEDIUM | AppImage/scripts/flask_terminal_routes.py | 250 | print(f"Error reading from PTY: {e}") | CODE |
| LOW⚡ | AppImage/scripts/flask_terminal_routes.py | 376 | except Exception: | CODE |
| LOW⚡ | AppImage/scripts/flask_terminal_routes.py | 390 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 99 | except Exception: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 134 | except Exception as exc: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 220 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 231 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 249 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 264 | except Exception: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 268 | except Exception: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 344 | except Exception: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 426 | except Exception: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 430 | except Exception: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 481 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 573 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 577 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 599 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 604 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 631 | except Exception as e: | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 699 | except Exception as e: | CODE |
| LOW | AppImage/scripts/notification_events.py | 180 | except Exception: | CODE |
| LOW | AppImage/scripts/notification_events.py | 191 | except Exception: | CODE |
| LOW | AppImage/scripts/notification_events.py | 263 | except Exception as e: | CODE |
| LOW | AppImage/scripts/notification_events.py | 343 | except Exception as e: | CODE |
| LOW | AppImage/scripts/notification_events.py | 477 | except Exception: | CODE |
| LOW⚡ | AppImage/scripts/notification_events.py | 666 | except Exception: | STRING |
| LOW⚡ | AppImage/scripts/notification_events.py | 676 | except Exception: | STRING |
| LOW⚡ | AppImage/scripts/notification_events.py | 679 | except Exception: | STRING |
| LOW⚡ | AppImage/scripts/notification_events.py | 687 | except Exception as e: | STRING |
| LOW⚡ | AppImage/scripts/notification_events.py | 3411 | except Exception: | STRING |
| LOW⚡ | AppImage/scripts/notification_events.py | 3421 | except Exception: | STRING |
| LOW⚡ | AppImage/scripts/notification_events.py | 3429 | except Exception: | STRING |
| LOW⚡ | AppImage/scripts/notification_events.py | 3509 | except Exception: | STRING |
| LOW | AppImage/scripts/notification_events.py | 605 | except Exception as e: | STRING |
| LOW | AppImage/scripts/notification_events.py | 631 | except Exception as e: | STRING |
| LOW | AppImage/scripts/notification_events.py | 717 | except Exception: | STRING |
| LOW | AppImage/scripts/notification_events.py | 1030 | except Exception: | STRING |
| LOW | AppImage/scripts/notification_events.py | 1171 | except Exception: | STRING |
| LOW | AppImage/scripts/notification_events.py | 1445 | except Exception: | STRING |
| LOW | AppImage/scripts/notification_events.py | 1466 | except Exception: | STRING |
| LOW | AppImage/scripts/notification_events.py | 1504 | except Exception: | STRING |
| LOW | AppImage/scripts/notification_events.py | 1515 | except Exception as e: | STRING |
| LOW | AppImage/scripts/notification_events.py | 1951 | except Exception as e: | STRING |
| LOW | AppImage/scripts/notification_events.py | 1996 | except Exception: | STRING |
| 531 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | install_proxmenux.sh | 1 | #!/bin/bash | COMMENT |
| LOW | install_proxmenux.sh | 21 | # • whiptail (interactive terminal menus) | COMMENT |
| LOW | install_proxmenux.sh | 441 | # to three segments and dropped both the fourth segment AND the | COMMENT |
| LOW | install_proxmenux.sh | 821 | # offer a "Beta update available" prompt on top of the legitimate | COMMENT |
| LOW | install_proxmenux.sh | 901 | if [ -x "$LOCAL_SCRIPTS/global/cleanup_gpu_hookscripts.sh" ]; then | COMMENT |
| LOW | install_proxmenux_beta.sh | 1 | #!/bin/bash | COMMENT |
| LOW | install_proxmenux_beta.sh | 21 | # | COMMENT |
| LOW | install_proxmenux_beta.sh | 321 | } | COMMENT |
| LOW | install_proxmenux_beta.sh | 801 | install_beta | COMMENT |
| LOW | CONTRIBUTING.md | 41 | COMMENT | |
| LOW | web/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | web/components/ui/doc-navigation.tsx | 101 | // sections (Post-Install, GPUs, Create VM, Disk Manager, …) have a | COMMENT |
| LOW | scripts/help_info_menu.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/utils.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/utils.sh | 21 | # - Loads language settings from a configuration file. | COMMENT |
| LOW | scripts/emergency_repair.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/security/fail2ban_installer.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/security/fail2ban_installer.sh | 21 | # the reliable file backend instead of systemd journal (avoids | COMMENT |
| LOW | scripts/security/lynis_installer.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/security/lynis_installer.sh | 21 | # before invoking ./lynis (Lynis requires being run from its own | COMMENT |
| LOW | scripts/backup_restore/run_scheduled_backup.sh | 401 | # created without one (the wizard delegates trust to PVE's storage | COMMENT |
| LOW | scripts/backup_restore/backup_scheduler.sh | 621 | hb_select_pbs_repository || return 1 | COMMENT |
| LOW | scripts/backup_restore/backup_scheduler.sh | 721 | COMMENT | |
| LOW | scripts/backup_restore/apply_cluster_postboot.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/backup_restore/apply_cluster_postboot.sh | 61 | else | COMMENT |
| LOW | scripts/backup_restore/apply_cluster_postboot.sh | 421 | # - update-initramfs -u -k all → so /etc/modules /etc/modprobe.d | COMMENT |
| LOW | scripts/backup_restore/apply_cluster_postboot.sh | 481 | # .deb files, DKMS source trees, etc. For each component the | COMMENT |
| LOW | scripts/backup_restore/backup_host.sh | 1941 | return 0 | COMMENT |
| LOW | scripts/backup_restore/backup_host.sh | 2101 | local unit_file="/etc/systemd/system/proxmenux-restore-onboot.service" | COMMENT |
| LOW | scripts/backup_restore/backup_host.sh | 2201 | # auto-reinstall path does. | COMMENT |
| LOW | scripts/backup_restore/backup_host.sh | 2421 | } | COMMENT |
| LOW | scripts/backup_restore/backup_host.sh | 2801 | export RS_SKIP_PATHS | COMMENT |
| LOW | scripts/backup_restore/backup_host.sh | 2841 | # verified empirically on multiple 9.2 → 9.1 restores with GPU | COMMENT |
| LOW | scripts/backup_restore/backup_host.sh | 2881 | RS_SKIP_PATHS="${RS_SKIP_PATHS%$'\n'}" | COMMENT |
| LOW | scripts/backup_restore/backup_host.sh | 3321 | _rs_collect_stats_for_paths "${selected_paths[@]}" | COMMENT |
| LOW | scripts/backup_restore/backup_host.sh | 3661 | # target can wreck it in two ways: | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 181 | etc/network|etc/network/*) | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 761 | # * zpool.guids → pool name + GUID. Same pool name on a fresh | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 1061 | # 1. After creating the keyfile, ask the operator for a recovery | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 1101 | # ========================================================== | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 1141 | # ========================================================== | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 1221 | # No → mode='none': ProxMenux keeps the keyfile ONLY at the | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 1281 | # | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 1861 | rm -f "$recovery_enc" 2>/dev/null || true | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 1881 | # if found, use it silently; if not, prompt | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 1961 | # Empty selection from dialog — treat as cancel. | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 2141 | # exactly what's at stake. | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 2181 | fi | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 2801 | value="${value#"${value%%[![:space:]]*}"}" | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 3321 | du -sh "$path" 2>/dev/null | awk '{print $1}' | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 3441 | # After running hb_compat_check, the caller can read: | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 3541 | done | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 3681 | # restore that skips kernel-tied paths | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 3701 | # major.minor drift goes: | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 3841 | fi | COMMENT |
| LOW | scripts/backup_restore/lib_host_backup_common.sh | 4061 | # .tar.zst to whatever they want and the sidecar travels with it | COMMENT |
| LOW | scripts/backup_restore/vzdump-hook.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/backup_restore/collectors/collect_guests.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/backup_restore/collectors/collect_storage.sh | 1 | #!/usr/bin/env bash | COMMENT |
| 247 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/app/[locale]/changelog/page.tsx | 38 | function readLatestChangelogVersion(locale: string): { version: string; date: string } | null { | CODE |
| LOW | web/app/[locale]/changelog/page.tsx | 167 | function wrapCodeBlocksWithCopyable(content: string) { | CODE |
| LOW | …ocale]/docs/settings/show-version-information/page.tsx | 29 | export default async function ShowVersionInformationPage({ | CODE |
| LOW | web/app/[locale]/docs/backup-restore/page.tsx | 49 | export default async function BackupRestoreOverviewPage({ | CODE |
| LOW | web/app/[locale]/docs/about/code-of-conduct/page.tsx | 56 | function wrapCodeBlocksWithCopyable(content: string) { | CODE |
| LOW | …app/[locale]/docs/post-install/virtualization/page.tsx | 22 | export default async function PostInstallVirtualizationPage({ | CODE |
| LOW | …/app/[locale]/docs/post-install/customization/page.tsx | 20 | export default async function PostInstallCustomizationPage({ | CODE |
| LOW | …app/[locale]/docs/post-install/basic-settings/page.tsx | 33 | export default async function PostInstallBasicSettingsPage({ | CODE |
| LOW | web/app/[locale]/docs/post-install/uninstall/page.tsx | 30 | export default async function UninstallOptimizationsPage({ | CODE |
| LOW | web/app/[locale]/docs/post-install/monitoring/page.tsx | 21 | export default async function PostInstallMonitoringPage({ | CODE |
| LOW | web/app/[locale]/docs/post-install/performance/page.tsx | 21 | export default async function PostInstallPerformancePage({ | CODE |
| LOW | web/components/ui/chart.tsx | 320 | function getPayloadConfigFromPayload( | CODE |
| LOW | .github/scripts/generate_helpers_cache_back.py | 36 | def guess_os_from_script_path(script_path: str) -> str | None: | CODE |
| LOW | .github/scripts/generate_app_tracking_catalog.py | 410 | def select_install_only_release( | CODE |
| LOW | .github/scripts/generate_app_tracking_catalog.py | 920 | def demote_generic_helper_markers( | CODE |
| LOW | .github/scripts/generate_app_tracking_catalog.py | 1037 | def merge_existing_as_runtime_candidates(v2: dict[str, Any], existing_path: Path | None) -> dict[str, Any]: | CODE |
| LOW | .github/scripts/tests/test_build_web_docs_i18n.py | 41 | def test_protected_contract_round_trip(self): | CODE |
| LOW | .github/scripts/tests/test_build_web_docs_i18n.py | 58 | def test_human_translation_is_not_pending(self): | CODE |
| LOW | .github/scripts/tests/test_build_web_docs_i18n.py | 63 | def test_changed_source_text_is_pending_even_with_existing_translation(self): | CODE |
| LOW | .github/scripts/tests/test_build_web_docs_i18n.py | 75 | def test_source_fingerprints_change_per_leaf(self): | CODE |
| LOW⚡ | .github/scripts/tests/test_build_web_docs_i18n.py | 87 | def test_schema_mismatch_detects_removed_keys(self): | CODE |
| LOW⚡ | .github/scripts/tests/test_build_web_docs_i18n.py | 95 | def test_schema_mismatch_detects_changed_structural_values(self): | CODE |
| LOW⚡ | .github/scripts/tests/test_build_web_docs_i18n.py | 103 | def test_schema_allows_localized_string_values(self): | CODE |
| LOW⚡ | .github/scripts/tests/test_build_web_docs_i18n.py | 111 | def test_translatable_rich_tags_use_opaque_names(self): | CODE |
| LOW | .github/scripts/tests/test_build_web_docs_i18n.py | 122 | def test_source_schema_drives_output(self): | CODE |
| LOW | .github/scripts/tests/test_build_web_docs_i18n.py | 138 | def test_translation_memory_ignores_conflicts(self): | CODE |
| LOW | .github/scripts/tests/test_build_web_docs_i18n.py | 160 | def test_source_state_retranslates_an_existing_changed_leaf(self): | CODE |
| LOW | .github/scripts/tests/test_build_web_docs_i18n.py | 187 | def test_new_leaf_preserves_translation_supplied_with_source_change(self): | CODE |
| LOW | AppImage/components/disk-temperature-detail-modal.tsx | 79 | export function DiskTemperatureDetailModal({ | CODE |
| LOW | AppImage/components/host-backup.tsx | 5980 | function ConfigureDestinationWizard({ | CODE |
| LOW | AppImage/components/storage-overview.tsx | 2343 | async function fetchTempHistoryForReport(diskName: string): Promise<DiskTempHistoryPayload | undefined> { | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 115 | def set_script_completion_hook(callback): | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 122 | def _run_script_completion_hook(script_path, params, exit_code, duration_seconds): | CODE |
| LOW | AppImage/scripts/flask_terminal_routes.py | 145 | def issue_terminal_ticket_route(): | CODE |
| LOW | AppImage/scripts/mount_monitor.py | 508 | def _check_reachable_from_host(host_pid: str, ct_target: str, | CODE |
| LOW | AppImage/scripts/smartctl_resolver.py | 63 | def smartctl_result_is_standby(returncode: int, stdout: str = "", stderr: str = "") -> bool: | CODE |
| LOW | AppImage/scripts/notification_events.py | 67 | def get_and_clear_startup_vms(self) -> list: | CODE |
| LOW | AppImage/scripts/notification_events.py | 199 | def _new_post_install_update_versions( | CODE |
| LOW | AppImage/scripts/notification_events.py | 275 | def _record_smartd_observation_impl(title: str, message: str): | CODE |
| LOW⚡ | AppImage/scripts/notification_events.py | 3514 | def _check_post_install_updates(self): | STRING |
| LOW | AppImage/scripts/notification_events.py | 634 | def _get_disk_io_cooldown_from_db(self, device: str) -> Optional[float]: | STRING |
| LOW | AppImage/scripts/notification_events.py | 1469 | def _record_disk_io_observation(self, resolved: str, msg: str): | STRING |
| LOW | AppImage/scripts/notification_events.py | 1518 | def _record_smartd_observation(self, title: str, message: str): | STRING |
| LOW | AppImage/scripts/notification_events.py | 3147 | def _check_startup_aggregation(self): | STRING |
| LOW | AppImage/scripts/notification_events.py | 3584 | def _check_managed_installs_updates(self): | STRING |
| LOW | AppImage/scripts/notification_events.py | 3779 | def _build_managed_install_event(self, item: dict) -> tuple[str, dict]: | STRING |
| LOW | AppImage/scripts/notification_events.py | 3883 | def _check_ai_model_availability(self): | STRING |
| LOW | AppImage/scripts/notification_events.py | 4289 | def _extract_replication_context(self, fields: dict, title: str, | STRING |
| LOW | AppImage/scripts/notification_events.py | 4342 | def _resolve_replication_guest_name(vmid: str) -> str: | STRING |
| LOW | AppImage/scripts/lxc_apps.py | 1248 | def _select_working_hint_detector(vmid, hint: dict) -> tuple[dict, Optional[str], str, Optional[str]]: | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1308 | def fetch_latest_upstream_details(config: dict) -> tuple[Optional[str], Optional[str], Optional[str]]: | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1337 | def _fetch_github_latest_details(config: dict) -> tuple[Optional[str], Optional[str], Optional[str]]: | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1538 | def _normalise_docker_display_version(value: Any) -> Optional[str]: | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1549 | def _docker_version_from_image_inspect(parsed: dict, inspected: dict) -> tuple[Optional[str], Optional[str]]: | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1588 | def _docker_hub_version_for_digest(records: list[dict], digest: Optional[str]) -> Optional[str]: | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1708 | def _normalise_docker_container_reference(reference: str) -> str: | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1772 | def _fetch_registry_manifest_digest(parsed: dict) -> tuple[Optional[str], Optional[str]]: | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1782 | def _parse_compose_depends_on(value: Any) -> list[str]: | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1800 | def _docker_compose_update_command( | CODE |
| LOW | AppImage/scripts/lxc_apps.py | 1820 | def _build_docker_update_units(images: list[dict]) -> list[dict]: | CODE |
| 167 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/generate_helpers_cache.py | 125 | CODE | |
| LOW | .github/scripts/build_web_docs_i18n.py | 157 | CODE | |
| LOW | .github/scripts/build_web_docs_i18n.py | 528 | CODE | |
| LOW | .github/scripts/build_web_docs_i18n.py | 625 | CODE | |
| LOW | .github/scripts/generate_app_tracking_catalog.py | 524 | CODE | |
| LOW | .github/scripts/generate_app_tracking_catalog.py | 959 | CODE | |
| LOW | .github/scripts/generate_app_tracking_catalog.py | 1085 | CODE | |
| LOW | .github/scripts/generate_app_tracking_catalog.py | 1160 | CODE | |
| LOW | AppImage/scripts/flask_terminal_routes.py | 161 | CODE | |
| LOW | AppImage/scripts/flask_terminal_routes.py | 234 | CODE | |
| LOW | AppImage/scripts/flask_terminal_routes.py | 254 | CODE | |
| LOW | AppImage/scripts/flask_terminal_routes.py | 417 | CODE | |
| LOW | AppImage/scripts/flask_terminal_routes.py | 525 | CODE | |
| LOW | AppImage/scripts/flask_terminal_routes.py | 584 | CODE | |
| LOW | AppImage/scripts/mount_monitor.py | 57 | CODE | |
| LOW | AppImage/scripts/mount_monitor.py | 251 | CODE | |
| LOW | AppImage/scripts/mount_monitor.py | 278 | CODE | |
| LOW | AppImage/scripts/mount_monitor.py | 296 | CODE | |
| LOW | AppImage/scripts/mount_monitor.py | 538 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 367 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 432 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 789 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 852 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 1109 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 1251 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 1267 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 1469 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 1569 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 1703 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 1888 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 1955 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 2050 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 2080 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 2135 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 2164 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 2224 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 2440 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 2470 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 2752 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 3280 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 3390 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 4091 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 4342 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 192 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 679 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 987 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 1337 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 1820 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 2018 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 2714 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 2887 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 3230 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 3297 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 3367 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 3596 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 3779 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 4011 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 4041 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 4075 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 4218 | CODE | |
| 142 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/emergency_repair.sh | 643 | # Step 4: Apply changes | COMMENT |
| LOW⚡ | scripts/emergency_repair.sh | 652 | # Step 5: Verification | COMMENT |
| LOW | scripts/emergency_repair.sh | 353 | # Step 2: Show current configuration | COMMENT |
| LOW | scripts/emergency_repair.sh | 367 | # Step 3: Identify specific changes needed | COMMENT |
| LOW | scripts/emergency_repair.sh | 400 | # Step 4: Apply changes with verification | COMMENT |
| LOW | scripts/emergency_repair.sh | 429 | # Step 5: Verification | COMMENT |
| LOW | scripts/emergency_repair.sh | 591 | # Step 2: Identify interfaces to remove | COMMENT |
| LOW | scripts/emergency_repair.sh | 615 | # Step 3: Show what will be removed | COMMENT |
| LOW | scripts/emergency_repair.sh | 802 | # Step 1: Update package lists | COMMENT |
| LOW | scripts/emergency_repair.sh | 816 | # Step 2: Reinstall core Proxmox packages | COMMENT |
| LOW | scripts/emergency_repair.sh | 832 | # Step 3: Regenerate certificates and restart services | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 641 | # Step 1: pick the OVA/OVF file (dialog) | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 644 | # Step 2: extract + parse (terminal output) | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 673 | # Step 3: configure the new VM (dialogs) | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 676 | # Step 4: confirm (dialog) | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 679 | # Step 5: do the import (terminal output only) | COMMENT |
| LOW⚡ | scripts/menus/network_menu.sh | 712 | # Step 4: Apply changes | COMMENT |
| LOW⚡ | scripts/menus/network_menu.sh | 721 | # Step 5: Verification | COMMENT |
| LOW | scripts/menus/network_menu.sh | 415 | # Step 2: Show current configuration | COMMENT |
| LOW | scripts/menus/network_menu.sh | 429 | # Step 3: Identify specific changes needed | COMMENT |
| LOW | scripts/menus/network_menu.sh | 462 | # Step 4: Apply changes with verification | COMMENT |
| LOW | scripts/menus/network_menu.sh | 491 | # Step 5: Verification | COMMENT |
| LOW | scripts/menus/network_menu.sh | 660 | # Step 2: Identify interfaces to remove | COMMENT |
| LOW | scripts/menus/network_menu.sh | 684 | # Step 3: Show what will be removed | COMMENT |
| LOW⚡ | scripts/share/disk_host.sh | 758 | # Step 1: Select disk | COMMENT |
| LOW⚡ | scripts/share/disk_host.sh | 761 | # Step 2: Inspect and choose action | COMMENT |
| LOW⚡ | scripts/share/disk_host.sh | 764 | # Step 3: Filesystem selection (only if formatting) | COMMENT |
| LOW | scripts/share/disk_host.sh | 782 | # Step 4: Configure storage options | COMMENT |
| LOW | scripts/share/disk_host.sh | 803 | # Step 5: Format/mount | COMMENT |
| LOW | scripts/share/disk_host.sh | 831 | # Step 6: Register in Proxmox (only if the user opted in) | COMMENT |
| LOW | scripts/share/disk_host.sh | 1018 | # Step 1: Remove from Proxmox | COMMENT |
| LOW | scripts/share/disk_host.sh | 1029 | # Step 2: Unmount if mounted (dir-backed storages only) | COMMENT |
| LOW | scripts/share/disk_host.sh | 1043 | # Step 3: Remove /etc/fstab entry | COMMENT |
| LOW | scripts/share/disk_host.sh | 1063 | # Step 4: Reboot prompt | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 801 | # Step 1: Select container | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 806 | # Step 2: Select host directory | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 811 | # Step 3: Select container mount point | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 816 | # Step 4: Get container type info (for display only) | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 829 | # Step 5: Active fix for network storage (before confirmation, while we know container type) | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 835 | # Step 6: Confirmation | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 863 | # Step 7: Add bind mount | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 871 | # Step 8: Host permission check for local dirs (only if not already handled above for CIFS/NFS) | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 876 | # Step 9: Summary | COMMENT |
| LOW | scripts/share/lxc-mount-manager_minimal.sh | 889 | # Step 10: Activate the mount and verify it's WRITABLE from inside | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 279 | # Step 1: Enter portal | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 282 | # Step 2: Discover targets | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 285 | # Step 3: Select target | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 293 | # Step 4: Configure storage | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 296 | # Step 5: Add to Proxmox | COMMENT |
| LOW⚡ | scripts/share/samba_client.sh | 732 | # Step 0: | COMMENT |
| LOW⚡ | scripts/share/samba_client.sh | 735 | # Step 1: | COMMENT |
| LOW⚡ | scripts/share/samba_client.sh | 738 | # Step 2: | COMMENT |
| LOW⚡ | scripts/share/samba_client.sh | 741 | # Step 3: | COMMENT |
| LOW | scripts/share/samba_client.sh | 752 | # Step 4: | COMMENT |
| LOW | scripts/share/samba_client.sh | 755 | # Step 5: | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 370 | # Step 0: Install NFS client first | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 373 | # Step 1: Select server | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 379 | # Step 2: Select export | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 392 | # Step 3: Select mount point | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 395 | # Step 4: Configure mount options | COMMENT |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | install_proxmenux.sh | 289 | # Set trap to ensure cleanup on exit | COMMENT |
| LOW | web/app/[locale]/docs/settings/change-language/page.tsx | 105 | <pre className="rounded-md bg-gray-100 p-4 overflow-x-auto text-xs font-mono text-gray-800 leading-relaxed border | CODE |
| LOW | scripts/shutdown-notify.sh | 20 | # Check if this is a real system shutdown/reboot or just a service stop | COMMENT |
| LOW | scripts/emergency_repair.sh | 168 | # Check if NetworkManager is running (shouldn't be on Proxmox) | COMMENT |
| LOW | scripts/emergency_repair.sh | 509 | # Check if interface exists physically | COMMENT |
| LOW | scripts/emergency_repair.sh | 517 | # Check if it's a bridge or bond (these are virtual, so it's normal they exist) | COMMENT |
| LOW⚡ | scripts/oci/oci_manager.sh | 69 | # Check if version >= 9.1 | COMMENT |
| LOW⚡ | scripts/oci/oci_manager.sh | 122 | # Check if already installed | COMMENT |
| LOW | scripts/storage/disk-passthrough_ct.sh | 509 | # Check if already the right FS — otherwise need partition + format | COMMENT |
| LOW⚡ | scripts/gpu_tpu/amd_gpu_tools.sh | 57 | # Check if amdgpu_top is installed | COMMENT |
| LOW | scripts/gpu_tpu/amd_gpu_tools.sh | 195 | # Check if already installed | COMMENT |
| LOW | scripts/gpu_tpu/nvidia_installer.sh | 623 | # Check if unload succeeded | COMMENT |
| LOW⚡ | scripts/gpu_tpu/intel_gpu_tools.sh | 60 | # Check if intel-gpu-tools is installed | COMMENT |
| LOW | scripts/gpu_tpu/intel_gpu_tools.sh | 136 | # Check if already installed | COMMENT |
| LOW | scripts/vm/zimaos.sh | 794 | # Check if there are any images in the directory | COMMENT |
| LOW | scripts/vm/zimaos.sh | 852 | # Check if file already exists | COMMENT |
| LOW | scripts/vm/zimaos.sh | 1077 | # Check if UEFI (OVMF) is being used =================== | COMMENT |
| LOW | scripts/vm/synology.sh | 794 | # Check if there are any images in the directory | COMMENT |
| LOW | scripts/vm/synology.sh | 1041 | # Check if UEFI (OVMF) is being used =================== | COMMENT |
| LOW | scripts/menus/network_menu.sh | 227 | # Check if NetworkManager is running (shouldn't be on Proxmox) | COMMENT |
| LOW | scripts/menus/network_menu.sh | 577 | # Check if interface exists physically | COMMENT |
| LOW | scripts/menus/network_menu.sh | 585 | # Check if it's a bridge or bond (these are virtual, so it's normal they exist) | COMMENT |
| LOW | scripts/global/remove-banner-pve-v3.sh | 103 | # Check if already patched - look for our marker | COMMENT |
| LOW | scripts/global/remove-banner-pve-v3.sh | 119 | # Set trap to restore on error | COMMENT |
| LOW | scripts/global/remove-banner-pve-v3.sh | 161 | # Check if this line ends with "}," which is the function closure | COMMENT |
| LOW | scripts/global/remove-banner-pve-v3.sh | 237 | # Check if already patched | COMMENT |
| LOW | scripts/global/remove-banner-pve-v3.sh | 245 | # Set trap to restore on error | COMMENT |
| LOW | scripts/post_install/customizable_post_install.sh | 1482 | # Check if zfs-auto-snapshot is already installed | COMMENT |
| LOW | scripts/post_install/customizable_post_install.sh | 2077 | # Check if the custom message already exists | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 723 | # Check if 'others' already have r+x (minimum to traverse and read) | COMMENT |
| LOW | scripts/share/lxc-mount-manager_minimal.sh | 326 | # Check if path is already used as a mount point in this CT | COMMENT |
| LOW | scripts/share/lxc-mount-manager_minimal.sh | 376 | # Check if this host path is already mounted in this CT | COMMENT |
| LOW | scripts/share/nfs_client.sh | 525 | # Check if currently mounted | COMMENT |
| LOW | scripts/share/nfs_client.sh | 607 | # Check if NFS client is installed | COMMENT |
| LOW⚡ | AppImage/scripts/flask_terminal_routes.py | 386 | # Check if process is still alive | COMMENT |
| LOW | AppImage/scripts/notification_events.py | 1014 | # Check if USB via sysfs | STRING |
| LOW | AppImage/scripts/notification_events.py | 2275 | # Check if task failed or completed with warnings | STRING |
| LOW | AppImage/scripts/notification_events.py | 2736 | # Check if startup period ended and we have aggregated VMs to report | STRING |
| LOW | AppImage/scripts/notification_events.py | 2845 | # Check if user dismissed this - clears DB cooldown | STRING |
| LOW | AppImage/scripts/flask_notification_routes.py | 1308 | # Check if our blocks actually exist before doing anything | STRING |
| LOW | AppImage/scripts/security_manager.py | 180 | # Check if pve-firewall service exists | COMMENT |
| LOW | AppImage/scripts/security_manager.py | 195 | # Check if firewall is enabled at cluster level | COMMENT |
| LOW | AppImage/scripts/security_manager.py | 225 | # Check if port 8008 is allowed | COMMENT |
| LOW | AppImage/scripts/security_manager.py | 615 | # Check if rule already exists | COMMENT |
| LOW⚡ | AppImage/scripts/health_monitor.py | 3184 | # Check if important interface is down | COMMENT |
| LOW⚡ | AppImage/scripts/health_monitor.py | 3189 | # Check if it's a bridge interface (always important for VMs/LXCs) | COMMENT |
| LOW⚡ | AppImage/scripts/health_monitor.py | 3194 | # Check if physical interface has configuration or traffic | COMMENT |
| LOW⚡ | AppImage/scripts/health_monitor.py | 3196 | # Check if interface has IP address (configured) | COMMENT |
| LOW⚡ | AppImage/scripts/health_monitor.py | 3204 | # Check if interface has traffic (has been used) | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 1545 | # Check if temperature >80°C for more than 3 minutes (180 seconds) | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 1551 | # Check if temperature ≤80°C for last 30 seconds (recovery) | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 1584 | # Check if we already have an active error | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 1773 | # Check if read-only | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 1985 | # Check if this is a disk device entry (e.g., /Dev/Sda, /dev/sda, sda) | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 2023 | # Check if this part's core content exists in any existing part | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 2119 | # Check if USB via sysfs | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 2276 | # Check if lvs command is available | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 2311 | # Check if any VGs exist to determine if LVM is truly unconfigured or just inactive | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 2464 | # Check if 'ataX' appears in the device path | COMMENT |
| LOW | AppImage/scripts/health_monitor.py | 2841 | # Check if this specific line is a known transient pattern | COMMENT |
| 41 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/emergency_repair.sh | 643 | # Step 4: Apply changes | COMMENT |
| LOW⚡ | scripts/emergency_repair.sh | 652 | # Step 5: Verification | COMMENT |
| LOW | scripts/emergency_repair.sh | 353 | # Step 2: Show current configuration | COMMENT |
| LOW | scripts/emergency_repair.sh | 367 | # Step 3: Identify specific changes needed | COMMENT |
| LOW | scripts/emergency_repair.sh | 400 | # Step 4: Apply changes with verification | COMMENT |
| LOW | scripts/emergency_repair.sh | 429 | # Step 5: Verification | COMMENT |
| LOW | scripts/emergency_repair.sh | 591 | # Step 2: Identify interfaces to remove | COMMENT |
| LOW | scripts/emergency_repair.sh | 615 | # Step 3: Show what will be removed | COMMENT |
| LOW | scripts/emergency_repair.sh | 802 | # Step 1: Update package lists | COMMENT |
| LOW | scripts/emergency_repair.sh | 816 | # Step 2: Reinstall core Proxmox packages | COMMENT |
| LOW | scripts/emergency_repair.sh | 832 | # Step 3: Regenerate certificates and restart services | COMMENT |
| LOW⚡ | scripts/lxc/lxc-unprivileged-to-privileged.sh | 15 | # WARNING: This reduces security. Use only when necessary. | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 641 | # Step 1: pick the OVA/OVF file (dialog) | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 644 | # Step 2: extract + parse (terminal output) | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 673 | # Step 3: configure the new VM (dialogs) | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 676 | # Step 4: confirm (dialog) | COMMENT |
| LOW⚡ | scripts/utilities/import_vm_ova_ovf.sh | 679 | # Step 5: do the import (terminal output only) | COMMENT |
| LOW⚡ | scripts/menus/network_menu.sh | 712 | # Step 4: Apply changes | COMMENT |
| LOW⚡ | scripts/menus/network_menu.sh | 721 | # Step 5: Verification | COMMENT |
| LOW | scripts/menus/network_menu.sh | 415 | # Step 2: Show current configuration | COMMENT |
| LOW | scripts/menus/network_menu.sh | 429 | # Step 3: Identify specific changes needed | COMMENT |
| LOW | scripts/menus/network_menu.sh | 462 | # Step 4: Apply changes with verification | COMMENT |
| LOW | scripts/menus/network_menu.sh | 491 | # Step 5: Verification | COMMENT |
| LOW | scripts/menus/network_menu.sh | 660 | # Step 2: Identify interfaces to remove | COMMENT |
| LOW | scripts/menus/network_menu.sh | 684 | # Step 3: Show what will be removed | COMMENT |
| LOW⚡ | scripts/share/disk_host.sh | 758 | # Step 1: Select disk | COMMENT |
| LOW⚡ | scripts/share/disk_host.sh | 761 | # Step 2: Inspect and choose action | COMMENT |
| LOW⚡ | scripts/share/disk_host.sh | 764 | # Step 3: Filesystem selection (only if formatting) | COMMENT |
| LOW | scripts/share/disk_host.sh | 782 | # Step 4: Configure storage options | COMMENT |
| LOW | scripts/share/disk_host.sh | 803 | # Step 5: Format/mount | COMMENT |
| LOW | scripts/share/disk_host.sh | 831 | # Step 6: Register in Proxmox (only if the user opted in) | COMMENT |
| LOW | scripts/share/disk_host.sh | 1018 | # Step 1: Remove from Proxmox | COMMENT |
| LOW | scripts/share/disk_host.sh | 1029 | # Step 2: Unmount if mounted (dir-backed storages only) | COMMENT |
| LOW | scripts/share/disk_host.sh | 1043 | # Step 3: Remove /etc/fstab entry | COMMENT |
| LOW | scripts/share/disk_host.sh | 1063 | # Step 4: Reboot prompt | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 801 | # Step 1: Select container | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 806 | # Step 2: Select host directory | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 811 | # Step 3: Select container mount point | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 816 | # Step 4: Get container type info (for display only) | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 829 | # Step 5: Active fix for network storage (before confirmation, while we know container type) | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 835 | # Step 6: Confirmation | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 863 | # Step 7: Add bind mount | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 871 | # Step 8: Host permission check for local dirs (only if not already handled above for CIFS/NFS) | COMMENT |
| LOW⚡ | scripts/share/lxc-mount-manager_minimal.sh | 876 | # Step 9: Summary | COMMENT |
| LOW | scripts/share/lxc-mount-manager_minimal.sh | 889 | # Step 10: Activate the mount and verify it's WRITABLE from inside | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 279 | # Step 1: Enter portal | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 282 | # Step 2: Discover targets | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 285 | # Step 3: Select target | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 293 | # Step 4: Configure storage | COMMENT |
| LOW⚡ | scripts/share/iscsi_host.sh | 296 | # Step 5: Add to Proxmox | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 370 | # Step 0: Install NFS client first | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 373 | # Step 1: Select server | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 379 | # Step 2: Select export | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 392 | # Step 3: Select mount point | COMMENT |
| LOW⚡ | scripts/share/nfs_client.sh | 395 | # Step 4: Configure mount options | COMMENT |
| LOW⚡ | scripts/share/nfs_host.sh | 490 | # Step 1: Select server | COMMENT |
| LOW⚡ | scripts/share/nfs_host.sh | 493 | # Step 2: Select export | COMMENT |
| LOW⚡ | scripts/share/nfs_host.sh | 496 | # Step 3: Validate export | COMMENT |
| LOW⚡ | scripts/share/nfs_host.sh | 505 | # Step 4: Pick mount method(s) — pvesm, fstab, or both | COMMENT |
| LOW | scripts/share/nfs_host.sh | 519 | # Step 6: Apply | COMMENT |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/components/testimonials.tsx | 4 | author: "Jane Doe", | CODE |
| LOW | oci/catalog.json | 89 | "placeholder": "tskey-auth-xxxxx", | CODE |
| LOW | oci/catalog.json | 100 | "placeholder": "proxmox-gateway", | CODE |
| LOW | json/helpers_cache_back.json | 6699 | "username": "admin@example.com", | CODE |
| LOW | json/helpers_cache2.json | 3137 | "username": "admin@example.com", | CODE |
| LOW | json/helpers_cache2.json | 3230 | "username": "admin@example.org", | CODE |
| LOW | scripts/oci/catalog.json | 89 | "placeholder": "tskey-auth-xxxxx", | CODE |
| LOW | scripts/oci/catalog.json | 100 | "placeholder": "proxmox-gateway", | CODE |
| LOW | AppImage/messages/sk/common.json | 1649 | "placeholder": "Vyberte úložisko...", | CODE |
| LOW | AppImage/messages/sk/common.json | 2543 | "placeholder": "192.168.1.25 alebo 192.168.1.0/24", | CODE |
| LOW | AppImage/messages/sk/common.json | 2916 | "placeholder": "tskey-auth-xxxxx", | CODE |
| LOW | AppImage/messages/sk/common.json | 2922 | "placeholder": "proxmox-brána" | CODE |
| LOW | AppImage/messages/sk/common.json | 4554 | "placeholder": "Zobrazované meno", | CODE |
| LOW | AppImage/messages/sv/common.json | 1650 | "placeholder": "Välj en lagring...", | CODE |
| LOW | AppImage/messages/sv/common.json | 2544 | "placeholder": "192.168.1.25 eller 192.168.1.0/24", | CODE |
| LOW | AppImage/messages/sv/common.json | 2917 | "placeholder": "tskey-auth-xxxxx", | CODE |
| LOW | AppImage/messages/sv/common.json | 2923 | "placeholder": "proxmox-gateway" | CODE |
| LOW | AppImage/messages/sv/common.json | 4555 | "placeholder": "Visningsnamn", | CODE |
| LOW | AppImage/messages/it/common.json | 1650 | "placeholder": "Scegli un deposito...", | CODE |
| LOW | AppImage/messages/it/common.json | 2544 | "placeholder": "192.168.1.25 o 192.168.1.0/24", | CODE |
| LOW | AppImage/messages/it/common.json | 2917 | "placeholder": "tskey-auth-xxxxx", | CODE |
| LOW | AppImage/messages/it/common.json | 2923 | "placeholder": "proxmox-gateway" | CODE |
| LOW | AppImage/messages/it/common.json | 4554 | "placeholder": "Nome da visualizzare", | CODE |
| LOW | AppImage/messages/pt/common.json | 1650 | "placeholder": "Escolha um armazenamento...", | CODE |
| LOW | AppImage/messages/pt/common.json | 2544 | "placeholder": "192.168.1.25 ou 192.168.1.0/24", | CODE |
| LOW | AppImage/messages/pt/common.json | 2917 | "placeholder": "tskey-auth-xxxx", | CODE |
| LOW | AppImage/messages/pt/common.json | 2923 | "placeholder": "gateway proxmox" | CODE |
| LOW | AppImage/messages/pt/common.json | 4554 | "placeholder": "Nome de exibição", | CODE |
| LOW | AppImage/messages/de/common.json | 1650 | "placeholder": "Wählen Sie einen Speicher...", | CODE |
| LOW | AppImage/messages/de/common.json | 2544 | "placeholder": "192.168.1.25 oder 192.168.1.0/24", | CODE |
| LOW | AppImage/messages/de/common.json | 2917 | "placeholder": "tskey-auth-xxxxx", | CODE |
| LOW | AppImage/messages/de/common.json | 2923 | "placeholder": "proxmox-gateway" | CODE |
| LOW | AppImage/messages/de/common.json | 4554 | "placeholder": "Anzeigename", | CODE |
| LOW | AppImage/messages/fr/common.json | 1650 | "placeholder": "Choisissez un stockage...", | CODE |
| LOW | AppImage/messages/fr/common.json | 2544 | "placeholder": "192.168.1.25 ou 192.168.1.0/24", | CODE |
| LOW | AppImage/messages/fr/common.json | 2917 | "placeholder": "tskey-auth-xxxx", | CODE |
| LOW | AppImage/messages/fr/common.json | 2923 | "placeholder": "passerelle proxmox" | CODE |
| LOW | AppImage/messages/fr/common.json | 4554 | "placeholder": "Nom d'affichage", | CODE |
| LOW | AppImage/messages/es/common.json | 1650 | "placeholder": "Elija un almacenamiento...", | CODE |
| LOW | AppImage/messages/es/common.json | 2544 | "placeholder": "192.168.1.25 o 192.168.1.0/24", | CODE |
| LOW | AppImage/messages/es/common.json | 2917 | "placeholder": "tskey-auth-xxxxx", | CODE |
| LOW | AppImage/messages/es/common.json | 2923 | "placeholder": "puerta de enlace proxmox" | CODE |
| LOW | AppImage/messages/es/common.json | 4554 | "placeholder": "Nombre para mostrar", | CODE |
| LOW | AppImage/messages/en/common.json | 1649 | "placeholder": "Pick a storage...", | CODE |
| LOW | AppImage/messages/en/common.json | 2543 | "placeholder": "192.168.1.25 or 192.168.1.0/24", | CODE |
| LOW | AppImage/messages/en/common.json | 2916 | "placeholder": "tskey-auth-xxxxx", | CODE |
| LOW | AppImage/messages/en/common.json | 2922 | "placeholder": "proxmox-gateway" | CODE |
| LOW | AppImage/messages/en/common.json | 4554 | "placeholder": "Display name", | CODE |
| LOW | AppImage/components/notification-settings.tsx | 1824 | placeholder="user@example.com" | CODE |
| LOW | AppImage/components/secure-gateway-setup.tsx | 515 | const translatedPlaceholder = fieldText(fieldName, "placeholder", field.placeholder) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/messages/es/guides/nvidia-manual.json | 74 | "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\n# Create /dev/nvidia0, /dev/nvidia1 ... and /dev/nvidiactl wh | CODE |
| MEDIUM | web/messages/en/guides/nvidia-manual.json | 74 | "udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\n# Create /dev/nvidia0, /dev/nvidia1 ... and /dev/nvidiactl wh | CODE |
| MEDIUM | scripts/security/fail2ban_installer.sh | 133 | # Create a drop-in so we don't break other Proxmox settings | COMMENT |
| MEDIUM⚡ | scripts/vm/zimaos.sh | 764 | # Create the loader selection menu for ZimaOS | COMMENT |
| MEDIUM⚡ | scripts/vm/zimaos.sh | 1066 | # Create the VM | COMMENT |
| MEDIUM | scripts/vm/zimaos.sh | 95 | # Define the header_info function at the beginning of the script | COMMENT |
| MEDIUM | scripts/vm/zimaos.sh | 802 | # Create an array of image options for whiptail | COMMENT |
| MEDIUM⚡ | scripts/vm/synology.sh | 749 | # Create the loader selection menu | COMMENT |
| MEDIUM⚡ | scripts/vm/synology.sh | 1030 | # Create the VM | COMMENT |
| MEDIUM | scripts/vm/synology.sh | 102 | # Define the header_info function at the beginning of the script | COMMENT |
| MEDIUM | scripts/vm/synology.sh | 802 | # Create an array of image options for whiptail | COMMENT |
| MEDIUM⚡ | scripts/global/remove-banner-pve-v3.sh | 78 | # Create the patch script that will be called by APT hook | COMMENT |
| MEDIUM | scripts/global/remove-banner-pve-v3.sh | 174 | # Create the replacement function (simple version that just calls orig_cmd) | COMMENT |
| MEDIUM | scripts/post_install/customizable_post_install.sh | 272 | # Create a temporary configuration | COMMENT |
| MEDIUM | scripts/post_install/uninstall-tools.sh | 387 | # This file is part of systemd. | COMMENT |
| MEDIUM | AppImage/scripts/security_manager.py | 1283 | # Create the auth logger service if not present | COMMENT |
| MEDIUM | AppImage/scripts/health_monitor.py | 2328 | # This function is no longer used in get_detailed_status, but kept for reference if needed. | COMMENT |
| MEDIUM | AppImage/scripts/oci_manager.py | 618 | # Create a safe filename from the image reference | COMMENT |
| MEDIUM | AppImage/scripts/test_real_events.sh | 404 | # Create a marker for cleanup | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | AppImage/scripts/ai_providers/__init__.py | 68 | Factory function to get provider instance. Args: name: Provider name (groq, openai, anthropic, gemini, | STRING |
| HIGH | AppImage/scripts/ai_providers/openai_provider.py | 162 | Generate a response using OpenAI's API or compatible endpoint. Args: system_prompt: System | STRING |
| HIGH | AppImage/scripts/ai_providers/ollama_provider.py | 32 | Generate a response using local Ollama server. Args: system_prompt: System instructions | STRING |
| HIGH | AppImage/scripts/ai_providers/openrouter_provider.py | 82 | Generate a response using OpenRouter's API. OpenRouter uses OpenAI-compatible format with additional | STRING |
| HIGH | AppImage/scripts/ai_providers/groq_provider.py | 80 | Generate a response using Groq's API. Args: system_prompt: System instructions | STRING |
| HIGH | AppImage/scripts/ai_providers/anthropic_provider.py | 45 | Generate a response using Anthropic's API. Note: Anthropic uses a different API format than OpenAI. | STRING |
| HIGH | AppImage/scripts/ai_providers/gemini_provider.py | 116 | Generate a response using Google's Gemini API. Note: Gemini uses a different API format. System instruc | STRING |
| HIGH | AppImage/scripts/ai_providers/base.py | 74 | Generate a response from the AI model. Args: system_prompt: System instructions for the mod | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | AppImage/scripts/managed_installs.py | 1372 | cmd_age = "stat -c '%Y' /var/cache/apt/pkgcache.bin 2>/dev/null || echo 0" | CODE |
| HIGH | AppImage/scripts/managed_installs.py | 1385 | "|| stat -c '%Y' /etc/apk/world 2>/dev/null || echo 0" | CODE |
| HIGH | AppImage/scripts/oci_manager.py | 1621 | "apk update && apk upgrade --no-cache"], | CODE |
| HIGH | AppImage/scripts/proxmox_known_errors.py | 311 | "solution_detailed": "1. Check interface: ip link show <iface>\n2. Check cable connection\n3. Check switch port | CODE |
| HIGH | AppImage/scripts/notification_channels.py | 723 | # if the user previously saved an empty string or null, we'd end up | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/backup_restore/lib_host_backup_common.sh | 4064 | # Usage: | COMMENT |
| LOW⚡ | scripts/backup_restore/collectors/build_manifest.sh | 10 | # Usage: | COMMENT |
| LOW | scripts/backup_restore/restore/remap_network.sh | 18 | # Usage: | COMMENT |
| LOW | scripts/backup_restore/restore/compute_rollback_plan.sh | 27 | # Usage: | COMMENT |
| LOW | scripts/backup_restore/restore/reinstall_drivers.sh | 17 | # Usage: | COMMENT |
| LOW⚡ | scripts/backup_restore/restore/list_paths.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/backup_restore/restore/run_restore.sh | 19 | # Usage: | COMMENT |
| LOW⚡ | scripts/backup_restore/restore/validate_storage.sh | 10 | # Usage: | COMMENT |
| LOW | scripts/backup_restore/restore/parse_manifest.sh | 15 | # Usage: | COMMENT |
| LOW | scripts/backup_restore/restore/preflight_checks.sh | 16 | # Usage: | COMMENT |
| LOW⚡ | scripts/utilities/proxmenux_debug.sh | 34 | # Usage: | COMMENT |
| LOW⚡ | scripts/global/utils-install-functions.sh | 8 | # Usage: | COMMENT |
| LOW⚡ | AppImage/scripts/test_all_notifications.sh | 6 | # Usage: | COMMENT |
| LOW⚡ | AppImage/scripts/test_real_events.sh | 13 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/package-lock.json | 7657 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM⚡ | scripts/utils.sh | 14 | # ProxMenux to facilitate Proxmox VE management. | COMMENT |
| MEDIUM⚡ | scripts/utils.sh | 23 | # These utilities ensure a streamlined and uniform user experience | COMMENT |
| MEDIUM⚡ | scripts/utilities/upgrade_pve8_to_pve9.sh | 14 | # Trixie + PVE 8 -> 9) with comprehensive safeguards, repository | COMMENT |
| MEDIUM | AppImage/components/script-terminal-modal.tsx | 402 | // sent with the PTY output and is therefore a robust fallback when a | COMMENT |
| MEDIUM | AppImage/scripts/notification_events.py | 3148 | """Check if startup period ended and emit comprehensive startup report. | STRING |
| MEDIUM | AppImage/scripts/notification_events.py | 3178 | # Collect comprehensive startup report | STRING |
| MEDIUM | AppImage/scripts/notification_events.py | 4448 | # prefix is robust and won't accidentally catch smartd or | STRING |
| LOW | AppImage/scripts/lxc_apps.py | 2626 | # positives here would just add noise. When community-scripts publishes | COMMENT |
| MEDIUM | AppImage/scripts/build_appimage.sh | 200 | # pipeline. curl -L --retry 3 is more robust and falls back to wget | COMMENT |
| LOW | AppImage/scripts/health_persistence.py | 2585 | # so just return None and let the serial-based consolidation | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/build_i18n_messages.py | 24 | CODE | |
| LOW | .github/scripts/build_translation_cache.py | 15 | CODE | |
| LOW | .github/scripts/build_web_docs_i18n.py | 4 | CODE | |
| LOW | .github/scripts/generate_app_tracking_catalog.py | 19 | CODE | |
| LOW | AppImage/scripts/mount_monitor.py | 25 | CODE | |
| LOW | AppImage/scripts/notification_events.py | 25 | CODE | |
| LOW | AppImage/scripts/lxc_apps.py | 26 | CODE | |
| LOW | AppImage/scripts/post_install_versions.py | 23 | CODE | |
| LOW | AppImage/scripts/lxc_mount_points.py | 30 | CODE | |
| LOW | AppImage/scripts/lxc_mount_points.py | 34 | CODE | |
| LOW | AppImage/scripts/disk_temperature_history.py | 27 | CODE | |
| LOW | AppImage/scripts/security_headers.py | 4 | CODE | |
| LOW | AppImage/scripts/managed_installs.py | 37 | CODE | |
| LOW | AppImage/scripts/health_monitor.py | 16 | CODE | |
| LOW | AppImage/scripts/health_monitor.py | 16 | CODE | |
| LOW | AppImage/scripts/health_monitor.py | 17 | CODE | |
| LOW | AppImage/scripts/recreate_docker_container.py | 13 | CODE | |
| LOW | AppImage/scripts/test_disk_observation.py | 28 | CODE | |
| LOW | AppImage/scripts/notification_templates.py | 14 | CODE | |
| LOW | AppImage/scripts/notification_templates.py | 18 | CODE | |
| LOW | AppImage/scripts/notification_templates.py | 19 | CODE | |
| LOW | AppImage/scripts/ai_context_enrichment.py | 20 | CODE | |
| LOW | AppImage/scripts/ai_context_enrichment.py | 27 | CODE | |
| LOW | AppImage/scripts/custom_links.py | 34 | CODE | |
| LOW | AppImage/scripts/health_thresholds.py | 34 | CODE | |
| LOW | AppImage/scripts/notification_manager.py | 42 | CODE | |
| LOW | AppImage/scripts/notification_manager.py | 42 | CODE | |
| LOW | AppImage/scripts/proxmox_storage_monitor.py | 12 | CODE | |
| LOW | AppImage/scripts/update_docker_engine.py | 12 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/gpu_tpu/install_coral.sh | 210 | # Design guardrails: | COMMENT |
| MEDIUM | AppImage/scripts/lxc_apps.py | 248 | # Cheap guardrails on user input. Not exhaustive — the point is to | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | AppImage/scripts/flask_notification_routes.py | 443 | "api_key": "your-api-key", // Not needed for ollama | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AppImage/scripts/notification_manager.py | 999 | def set_guest_lifecycle_callback(self, callback) -> None: | STRING |
| LOW | AppImage/scripts/ai_providers/__init__.py | 99 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AppImage/scripts/security_manager.py | 320 | CODE | |
| LOW | AppImage/scripts/security_manager.py | 429 | CODE |