Automatic CPU speed & power optimizer for Linux
This report summarizes scanner evidence for AdnanHodzic/auto-cpufreq, a Python project with 7,834 GitHub stars. SynthScan examined 9,328 lines of code across 32 source files, recording 106 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 16.5 (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? 57 finding(s).
Are imports declared and package/API names verified? 9 finding(s).
Are wrappers, guards, and repeated structures necessary? 69 finding(s).
Which changes need focused human review? 106 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 106 distinct pattern matches across 9 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 |
|---|---|---|---|---|
| HIGH | auto_cpufreq/power_helper.py | 116 | except (OSError, FileNotFoundError, PermissionError): | CODE |
| HIGH | auto_cpufreq/power_helper.py | 124 | except (OSError, FileNotFoundError, PermissionError): | CODE |
| HIGH | auto_cpufreq/power_helper.py | 132 | except (OSError, FileNotFoundError, PermissionError): | CODE |
| HIGH | auto_cpufreq/power_helper.py | 139 | except (OSError, FileNotFoundError, PermissionError): | CODE |
| HIGH | auto_cpufreq/power_helper.py | 328 | except (OSError, FileNotFoundError, PermissionError): | CODE |
| HIGH | auto_cpufreq/power_helper.py | 111 | except (OSError, FileNotFoundError, PermissionError): | CODE |
| HIGH | auto_cpufreq/bin/auto_cpufreq.py | 134 | except Exception: | CODE |
| HIGH | auto_cpufreq/modules/system_monitor.py | 135 | except OSError: | CODE |
| HIGH | auto_cpufreq/modules/system_monitor.py | 467 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | auto_cpufreq/power_helper.py | 184 | except Exception: | CODE |
| LOW | auto_cpufreq/power_helper.py | 227 | except Exception: | CODE |
| MEDIUM | auto_cpufreq/core.py | 170 | print("Error fetching recent release!") | CODE |
| MEDIUM | auto_cpufreq/core.py | 177 | print("Error Connecting to server!") | CODE |
| MEDIUM | auto_cpufreq/core.py | 194 | print("Error retrieving current version!") | CODE |
| MEDIUM | auto_cpufreq/core.py | 261 | def get_literal_version(package_name): | CODE |
| LOW | auto_cpufreq/core.py | 129 | except Exception as e: print(repr(e)) | CODE |
| LOW | auto_cpufreq/core.py | 1419 | except Exception as e: print(repr(e)) | CODE |
| LOW | auto_cpufreq/bin/auto_cpufreq.py | 134 | except Exception: | CODE |
| LOW | auto_cpufreq/gui/app.py | 987 | except Exception as error: | CODE |
| LOW | auto_cpufreq/gui/app.py | 1012 | except Exception as error: | CODE |
| MEDIUM | auto_cpufreq/gui/app.py | 883 | def _run_update(self): | CODE |
| LOW | auto_cpufreq/gui/objects.py | 37 | except Exception as e: | CODE |
| LOW | auto_cpufreq/gui/objects.py | 61 | except Exception: | CODE |
| LOW | auto_cpufreq/gui/objects.py | 424 | except Exception: | CODE |
| LOW | auto_cpufreq/gui/objects.py | 482 | except Exception: | CODE |
| LOW | auto_cpufreq/gui/objects.py | 579 | except Exception: | CODE |
| LOW | auto_cpufreq/gui/objects.py | 695 | except Exception as e: | CODE |
| LOW | auto_cpufreq/gui/objects.py | 932 | except Exception as error: | CODE |
| LOW | auto_cpufreq/gui/objects.py | 1108 | except Exception as e: | CODE |
| MEDIUM | auto_cpufreq/gui/objects.py | 65 | def worker(): | CODE |
| MEDIUM | auto_cpufreq/gui/objects.py | 456 | def refresh(self): | CODE |
| MEDIUM | auto_cpufreq/gui/objects.py | 530 | def refresh(self): | CODE |
| MEDIUM | auto_cpufreq/gui/objects.py | 915 | def _refresh(self): | CODE |
| LOW | auto_cpufreq/battery_scripts/battery.py | 47 | except Exception as e: | CODE |
| LOW | auto_cpufreq/battery_scripts/shared.py | 168 | except Exception as e: | CODE |
| LOW | auto_cpufreq/battery_scripts/shared.py | 177 | except Exception as e: | CODE |
| LOW | auto_cpufreq/modules/system_monitor.py | 121 | except Exception as exc: | CODE |
| MEDIUM | auto_cpufreq/modules/system_monitor.py | 104 | def _collect_report(self): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | auto_cpufreq/power_helper.py | 75 | def gnome_power_detect_install(): | CODE |
| LOW | auto_cpufreq/power_helper.py | 176 | def set_bluetooth_auto_enable(value: bool) -> bool: | CODE |
| LOW | auto_cpufreq/power_helper.py | 271 | def gnome_power_rm_reminder_snap(): | CODE |
| LOW | auto_cpufreq/power_helper.py | 284 | def disable_power_profiles_daemon(): | CODE |
| LOW | auto_cpufreq/core.py | 209 | def _install_update_from_staging(source_dir, target_tag): | CODE |
| LOW | auto_cpufreq/core.py | 329 | def get_power_supply_ignore_list(): | CODE |
| LOW | auto_cpufreq/core.py | 415 | def deploy_daemon_performance(): | CODE |
| LOW | auto_cpufreq/core.py | 574 | def get_frequency_request_state(freq_type, target): | CODE |
| LOW | auto_cpufreq/core.py | 607 | def format_frequency_effective(values): | CODE |
| LOW | auto_cpufreq/core.py | 760 | def is_platform_profile_enforced(): | CODE |
| LOW | auto_cpufreq/core.py | 886 | def set_energy_perf_preference(epp): | CODE |
| LOW | auto_cpufreq/core.py | 925 | def get_configured_hwp_dynamic_boost(conf, profile): | CODE |
| LOW | auto_cpufreq/core.py | 940 | def get_hwp_dynamic_boost_target(conf, profile): | CODE |
| LOW | auto_cpufreq/gui/app.py | 117 | def _configuration_label_text(): | CODE |
| LOW | auto_cpufreq/gui/app.py | 723 | def _release_power_state_apply(self, key): | CODE |
| LOW | auto_cpufreq/gui/app.py | 743 | def _add_refresh_interval_menu(self): | CODE |
| LOW | auto_cpufreq/gui/app.py | 785 | def _on_refresh_interval_selected( | CODE |
| LOW | auto_cpufreq/gui/objects.py | 41 | def get_bluetooth_boot_status(): | CODE |
| LOW | auto_cpufreq/gui/objects.py | 83 | def _privileged_command_error(result, error): | CODE |
| LOW | auto_cpufreq/battery_scripts/ideapad_laptop.py | 14 | def _find_conservation_mode_path(self) -> str | None: | CODE |
| LOW | auto_cpufreq/battery_scripts/ideapad_laptop.py | 66 | def _parse_ideapad_conservation_mode(self, param: None | str) -> None | bool: | CODE |
| LOW | auto_cpufreq/battery_scripts/ideapad_laptop.py | 77 | def apply_threshold_settings_to_bat(self, bat: str, config: dict[str, Any]): | CODE |
| LOW | auto_cpufreq/battery_scripts/shared.py | 131 | def _parse_ideapad_conservation_mode(self, param: None | str) -> None | bool: | CODE |
| LOW | auto_cpufreq/battery_scripts/shared.py | 209 | def apply_threshold_settings_to_bat(self, bat: str, config: dict[str, Any]): | CODE |
| LOW | auto_cpufreq/modules/platform_profile.py | 70 | def summarize_platform_profile_devices( | CODE |
| LOW | auto_cpufreq/modules/platform_profile.py | 125 | def _without_aggregate_custom( | CODE |
| LOW | auto_cpufreq/modules/platform_profile.py | 203 | def _available_choices_state_for( | CODE |
| LOW | auto_cpufreq/modules/system_info.py | 860 | def format_platform_profile_choices( | CODE |
| LOW | auto_cpufreq/modules/system_info.py | 877 | def format_platform_profile_summary( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | auto_cpufreq/power_helper.py | 176 | CODE | |
| LOW | auto_cpufreq/power_helper.py | 348 | CODE | |
| LOW | auto_cpufreq/core.py | 282 | CODE | |
| LOW | auto_cpufreq/core.py | 620 | CODE | |
| LOW | auto_cpufreq/core.py | 998 | CODE | |
| LOW | auto_cpufreq/core.py | 1102 | CODE | |
| LOW | auto_cpufreq/core.py | 1219 | CODE | |
| LOW | auto_cpufreq/core.py | 1334 | CODE | |
| LOW | auto_cpufreq/bin/auto_cpufreq.py | 43 | CODE | |
| LOW | auto_cpufreq/gui/app.py | 903 | CODE | |
| LOW | auto_cpufreq/gui/objects.py | 41 | CODE | |
| LOW | auto_cpufreq/battery_scripts/battery.py | 13 | CODE | |
| LOW | auto_cpufreq/battery_scripts/battery.py | 56 | CODE | |
| LOW | auto_cpufreq/battery_scripts/ideapad_laptop.py | 14 | CODE | |
| LOW | auto_cpufreq/modules/system_monitor.py | 430 | CODE | |
| LOW | auto_cpufreq/modules/system_info.py | 234 | CODE | |
| LOW | auto_cpufreq/modules/system_info.py | 545 | CODE | |
| LOW | auto_cpufreq/modules/system_info.py | 591 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | auto_cpufreq/power_helper.py | 10 | CODE | |
| LOW | auto_cpufreq/core.py | 18 | CODE | |
| LOW | auto_cpufreq/core.py | 22 | CODE | |
| LOW | auto_cpufreq/bin/auto_cpufreq.py | 11 | CODE | |
| LOW | auto_cpufreq/bin/auto_cpufreq.py | 13 | CODE | |
| LOW | auto_cpufreq/bin/auto_cpufreq.py | 22 | CODE | |
| LOW | auto_cpufreq/gui/objects.py | 5 | CODE | |
| LOW | auto_cpufreq/gui/objects.py | 15 | CODE | |
| LOW | auto_cpufreq/gui/objects.py | 15 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | README.md | 401 | # see available governors by running: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors | COMMENT |
| LOW | README.md | 421 | # the default value is `balance_performance` (for charger) | COMMENT |
| LOW | README.md | 441 | # see conversion info: https://www.rapidtables.com/convert/frequency/mhz-to-hz.html | COMMENT |
| LOW | README.md | 461 | #energy_performance_preference = balance_power | COMMENT |
| LOW | README.md | 481 | # auto-cpufreq prefers the per-handler /sys/class/platform-profile interface | COMMENT |
| LOW | README.md | 501 | # see conversion info: https://www.rapidtables.com/convert/frequency/mhz-to-hz.html | COMMENT |
| LOW | scripts/snapdaemon.sh | 1 | #!/usr/bin/env bash | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | auto_cpufreq/config/config.py | 33 | # Check if the config file path points to a valid file | COMMENT |
| LOW | auto_cpufreq/modules/system_info.py | 593 | # Check if user has specified a custom battery device in config | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | auto_cpufreq/modules/system_monitor.py | 45 | # Create a columns widget with a vertical line (using box drawing character) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | auto_cpufreq/config/config.py | 52 | def set_path(self, path: str) -> None: | CODE |
| LOW | auto_cpufreq/config/config.py | 62 | def update_config(self) -> None: | CODE |