Open-source VPN for speed, privacy, and censorship circumvention. Free to download on Android, iOS, Windows, macOS, and Linux.
This report summarizes scanner evidence for getlantern/lantern, a Dart project with 16,592 GitHub stars. SynthScan examined 155,350 lines of code across 849 source files, recording 486 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 4.3 (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? 384 finding(s).
Are imports declared and package/API names verified? 33 finding(s).
Are wrappers, guards, and repeated structures necessary? 331 finding(s).
Which changes need focused human review? 486 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 486 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …n/kotlin/org/getlantern/lantern/apps/AppDataHandler.kt | 61 | internal class AppDataHandler( | CODE |
| LOW | scripts/ci/verify_android_version_test.py | 45 | def test_full_version_matches_both_apks(self) -> None: | STRING |
| LOW | scripts/ci/verify_android_version_test.py | 60 | def test_missing_beta_suffix_in_either_apk_fails(self) -> None: | STRING |
| LOW⚡ | scripts/ci/verify_android_version_test.py | 73 | def test_empty_manifest_version_fails(self) -> None: | STRING |
| LOW⚡ | scripts/ci/verify_android_version_test.py | 78 | def test_missing_arguments_or_empty_expected_version_fail_before_inspection(self) -> None: | STRING |
| LOW⚡ | scripts/ci/verify_android_version_test.py | 86 | def test_failed_analyzer_cannot_pass_with_matching_partial_output(self) -> None: | STRING |
| LOW⚡ | scripts/ci/verify_android_version_test.py | 94 | def test_missing_analyzer_fails(self) -> None: | STRING |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 162 | def test_both_architectures_in_each_artifact(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 167 | def test_either_removed_architecture_fails(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 173 | def test_wrong_elf_under_correct_directory_fails(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 177 | def test_partial_flutter_or_go_packaging_fails(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 183 | def test_plugin_library_must_support_both_abis(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 188 | def test_debug_does_not_require_aot_library(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 227 | def test_unexpected_architecture_is_rejected(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 234 | def test_corrupt_native_library_is_rejected(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 241 | def test_aab_requires_native_libraries_in_base_module(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 250 | def test_cli_requires_aar_libraries_to_survive_app_packaging(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 267 | def test_cli_per_abi_apk_checked_against_both_abi_aar(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 276 | def test_cli_per_abi_apk_rejects_the_other_abi(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 283 | def test_cli_per_abi_apk_still_requires_aar_libraries(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 291 | def test_cli_app_abis_must_narrow_expected(self) -> None: | CODE |
| LOW⚡ | scripts/ci/verify_android_abis_test.py | 297 | def test_bad_abi_selection_fails(self) -> None: | CODE |
| LOW | scripts/ci/verify_android_abis_test.py | 28 | def test_default_maps_gomobile_and_flutter_to_both_abis(self) -> None: | CODE |
| LOW | scripts/ci/verify_android_abis_test.py | 34 | def test_individual_target_overrides_cannot_drop_one_architecture(self) -> None: | CODE |
| LOW | scripts/ci/verify_android_abis_test.py | 75 | def test_standalone_release_preserves_native_build_after_stealth_stamp_refresh(self) -> None: | CODE |
| LOW | scripts/ci/verify_android_abis_test.py | 201 | def test_release_keeps_strict_vulkan_validation_library_parity(self) -> None: | CODE |
| LOW | scripts/ci/verify_android_abis_test.py | 209 | def test_debug_optional_vulkan_layer_still_requires_matching_elf(self) -> None: | CODE |
| LOW | scripts/ci/resolve_desktop_update_target_test.py | 44 | def test_parse_target_accepts_signed_numeric_macos_release(self) -> None: | STRING |
| LOW | scripts/ci/resolve_desktop_update_target_test.py | 54 | def test_parse_target_accepts_signed_numeric_windows_release(self) -> None: | STRING |
| LOW⚡ | scripts/ci/resolve_desktop_update_target_test.py | 69 | def test_parse_target_rejects_non_numeric_sparkle_version(self) -> None: | STRING |
| LOW⚡ | scripts/ci/resolve_desktop_update_target_test.py | 77 | def test_parse_target_requires_display_version(self) -> None: | STRING |
| LOW⚡ | scripts/ci/resolve_desktop_update_target_test.py | 87 | def test_parse_target_requires_macos_dmg(self) -> None: | STRING |
| LOW | scripts/ci/resolve_desktop_update_target_test.py | 98 | def test_parse_target_requires_https(self) -> None: | STRING |
| LOW | scripts/ci/resolve_desktop_update_target_test.py | 106 | def test_parse_target_requires_valid_signature(self) -> None: | STRING |
| LOW | scripts/ci/resolve_desktop_update_target_test.py | 117 | def test_parse_target_rejects_unsafe_xml(self) -> None: | STRING |
| LOW | scripts/ci/resolve_desktop_update_target_test.py | 125 | def test_write_fixture_pubspec_only_replaces_version(self) -> None: | STRING |
| LOW | scripts/ci/generate_update_metadata_test.py | 18 | def test_release_channel_maps_build_types(self) -> None: | CODE |
| LOW | scripts/ci/generate_update_metadata_test.py | 40 | def test_artifact_info_matches_update_service_artifacts(self) -> None: | CODE |
| LOW | scripts/ci/generate_update_metadata_test.py | 60 | def test_sidecar_for_builds_json_shape(self) -> None: | CODE |
| LOW | scripts/ci/generate_update_metadata_test.py | 94 | def test_sidecar_for_normalizes_channel_without_changing_release_path(self) -> None: | CODE |
| LOW | scripts/ci/generate_update_metadata_test.py | 116 | def test_sidecar_for_skips_unknown_artifacts(self) -> None: | CODE |
| LOW | scripts/ci/generate_update_metadata_test.py | 130 | def test_sidecar_for_adds_sparkle_signature_for_desktop(self) -> None: | CODE |
| LOW | scripts/ci/generate_update_metadata_test.py | 158 | def test_sidecar_can_point_at_a_fixture_release(self) -> None: | CODE |
| LOW | scripts/ci/generate_update_metadata_test.py | 200 | def test_updater_signature_rejects_wrong_eddsa_length(self) -> None: | CODE |
| LOW | scripts/ci/generate_update_metadata_test.py | 216 | def test_updater_signature_requires_native_runner_output(self) -> None: | CODE |
| LOW | scripts/ci/android_version_test.py | 15 | def test_all_android_builds_preserve_the_release_version(self) -> None: | CODE |
| LOW | scripts/ci/macos_sparkle_handoff_test.py | 58 | def test_install_buttons_and_process_exit(self): | CODE |
| LOW | scripts/ci/macos_sparkle_handoff_test.py | 69 | def test_disabled_and_unrelated_buttons_are_not_pressed(self): | CODE |
| LOW | scripts/ci/macos_sparkle_handoff_test.py | 78 | def test_process_without_window_does_not_count_as_relaunch(self): | CODE |
| LOW⚡ | scripts/ci/release_workflow_test.py | 178 | def test_same_base_beta_migration_fails_before_metadata_output(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 186 | def test_backwards_beta_tag_fails_before_metadata_output(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 192 | def test_only_full_production_release_becomes_latest(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 203 | def test_failed_publication_does_not_report_success(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 208 | def test_cleanup_preserves_published_release_after_api_error(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 214 | def test_cleanup_can_delete_an_unpublished_draft(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 219 | def test_cleanup_stops_when_release_state_cannot_be_read(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 225 | def test_alias_copy_failure_stops_verification(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 232 | def test_alias_verification_failure_reports_an_error(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 238 | def test_unpublished_release_reports_an_error(self) -> None: | STRING |
| LOW⚡ | scripts/ci/release_workflow_test.py | 243 | def test_alias_promotion_preserves_metadata_and_verifies_public_release(self) -> None: | STRING |
| 202 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/radiance-env.sh | 47 | # ─── platform-specific socket path ────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/ci/sign_macos_app.sh | 19 | # ── Signing identity resolution ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 178 | # ── Security: no tools:node stubs ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 184 | # ── Forbidden permissions absent ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 204 | # ── Forbidden features absent ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 209 | # ── Forbidden activities absent ──────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 225 | # ── Forbidden services absent ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 240 | # ── Forbidden providers absent ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 246 | # ── Forbidden receivers absent ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 255 | # ── Forbidden metadata absent ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 262 | # ── queries block removed ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 267 | # ── Launcher activity preserved, deep-links stripped ────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 331 | # ── Class-name rewrite applied ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 349 | # ── cleartext traffic disabled ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/stealth/android_manifest_filter_test.py | 356 | # ── Idempotency ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 12 | // ── Text ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 38 | // ── Background ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 67 | // ── Border ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 87 | // ── Status ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 161 | // ── Action / Primary ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 183 | // ── Action / Secondary ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 210 | // ── Action / Tertiary ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 222 | // ── Action / Tonal ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 248 | // ── Action / Toggle ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_semantic_colors.dart | 267 | // ── Action / Tabbar ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 194 | // ── Bottom Sheet ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 204 | // ── ListTile (used by AppTile) ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 212 | // ── TextButton (used by AppTextButton) ─────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 219 | // ── Radio ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 226 | // ── ElevatedButton (PrimaryButton) ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 422 | // ── Bottom Sheet ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 432 | // ── ListTile (used by AppTile) ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 440 | // ── TextButton (used by AppTextButton) ─────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 447 | // ── Radio ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/core/common/app_theme.dart | 454 | // ── ElevatedButton (PrimaryButton) ─────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 8 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 12 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 27 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 30 | // ── Light ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 79 | // ── Text ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 103 | // ── AppBar ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 123 | // ── Card ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 135 | // ── Divider ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 141 | // ── Input / TextField ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 181 | // ── Dialog ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 249 | // ── Dark ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 301 | // ── Text ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 328 | // ── AppBar ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 348 | // ── Card ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 360 | // ── Divider ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 366 | // ── Input / TextField ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/common/app_theme.dart | 407 | // ── Dialog ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/services/local_storage_service.dart | 32 | // ── AppSetting ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/services/local_storage_service.dart | 52 | // ── PlansData ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/services/local_storage_service.dart | 70 | // ── ServerLocation ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/services/local_storage_service.dart | 90 | // ── DeveloperMode ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/services/local_storage_service.dart | 108 | // ── Referrals ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/core/services/local_storage_service.dart | 117 | // ── Split tunneling ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | lib/features/action_mode/provider/share_notifier.dart | 36 | // ─── Consent ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | lib/features/action_mode/provider/share_notifier.dart | 51 | // ─── Sharing session ─────────────────────────────────────────────────────── | COMMENT |
| 7 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pubspec.yaml | 1 | name: lantern | COMMENT |
| LOW | pubspec.yaml | 181 | # Opt this project out of Flutter's Swift Package Manager auto-migration | COMMENT |
| LOW | analysis_options.yaml | 1 | # This file configures the analyzer, which statically analyzes Dart code to | COMMENT |
| LOW | analysis_options.yaml | 21 | # and their documentation is published at https://dart.dev/lints. | COMMENT |
| LOW | integration_test/android_all_e2e_test.dart | 1 | import 'package:integration_test/integration_test.dart'; | COMMENT |
| LOW | …egration_test/auth/auth_smoke_credentials.example.dart | 1 | /// Template for providing the auth smoke credentials. | COMMENT |
| LOW | integration_test/auth/auth_smoke_env.dart | 1 | import 'auth_smoke_credentials.dart'; | COMMENT |
| LOW | integration_test/auth/auth_smoke_credentials.dart | 1 | /// Auth smoke credentials, sourced from --dart-define at build time. | COMMENT |
| LOW | macos/PacketTunnel/SingBox/Extension+RunBlocking.swift | 1 | // | COMMENT |
| LOW | macos/PacketTunnel/SingBox/ExtensionProvider.swift | 1 | // | COMMENT |
| LOW | macos/PacketTunnel/SingBox/ExtensionProvider.swift | 21 | #endif | COMMENT |
| LOW | …/PacketTunnel/SingBox/ExtensionPlatformInterface.swift | 1 | // | COMMENT |
| LOW | macos/Runner/VPN/VPNBase.swift | 181 | return | COMMENT |
| LOW | macos/Runner/VPN/VPNManager.swift | 121 | /// Throws rather than logging: every caller starts a tunnel immediately | COMMENT |
| LOW | macos/Runner/Utils/HelperTags.swift | 1 | import Foundation | COMMENT |
| LOW | macos/Runner/Handlers/MethodHandler.swift | 341 | // override — caller bugs would silently wipe the user's | COMMENT |
| LOW | macos/Shared/Logger.swift | 1 | // | COMMENT |
| LOW | test/features/action_mode/share_notifier_test.dart | 21 | import 'package:lantern/features/home/provider/radiance_settings_providers.dart'; | COMMENT |
| LOW | ios/Classes/native_add.c | 1 | // Relative import to be able to reuse the C sources. | COMMENT |
| LOW | ios/Shared/VPNWidgetState.swift | 1 | // | COMMENT |
| LOW | ios/Shared/Logger.swift | 1 | // | COMMENT |
| LOW | ios/Shared/VPNWidgetIntents.swift | 1 | // | COMMENT |
| LOW | ios/Shared/HelperTags.swift | 1 | import Foundation | COMMENT |
| LOW | ios/LanternWidget/WidgetTunnelController.swift | 1 | // | COMMENT |
| LOW | ios/Tunnel/PacketTunnelProvider.swift | 21 | // footprint climbing toward the jetsam cap was indistinguishable from a flat | COMMENT |
| LOW | ios/Tunnel/Tunnel-Bridging-Header.h | 1 | // vpn_bridging.h | COMMENT |
| LOW | ios/Tunnel/SingBox/Extension+RunBlocking.swift | 1 | // | COMMENT |
| LOW | ios/Tunnel/SingBox/ExtensionProvider.swift | 1 | // | COMMENT |
| LOW | ios/Tunnel/SingBox/ExtensionProvider.swift | 81 | // Bringing the VPN up now waits for the first config, which takes seconds | COMMENT |
| LOW | ios/Tunnel/SingBox/ExtensionPlatformInterface.swift | 1 | // | COMMENT |
| LOW | linux/flutter/generated_plugin_registrant.h | 1 | // | COMMENT |
| LOW | scripts/radiance-env.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/ci/choco-retry.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/ci/version.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/ci/generate-release-notes.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/ci/sign_macos_app.sh | 21 | # name "Developer ID Application: <org> (<TEAM>)". Passing that name to codesign | COMMENT |
| LOW | scripts/ci/format.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/ci/publish-to-s3.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/android/ftl-run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/android/runtime-seccomp/launcher.c | 1 | // A synthetic old-kernel seccomp environment for the Go 32-bit runtime. | COMMENT |
| LOW | scripts/stealth/sanitize_android_artifact.py | 21 | COMMENT | |
| LOW | scripts/stealth/run_flutter_build.py | 141 | if is_novpn: | COMMENT |
| LOW | lib/core/desktop/desktop_window.dart | 21 | maximumSize: size, | COMMENT |
| LOW | lib/core/utils/helper_tags.dart | 1 | /// Helper outbound tags are client-side pseudonyms for the user's helper | COMMENT |
| LOW | lib/core/models/available_servers.dart | 161 | /// True once a probe has returned a verdict for this server — either a | COMMENT |
| LOW | lib/core/models/feature_flags.dart | 1 | enum FeatureFlag { | COMMENT |
| LOW | lib/core/models/app_setting.dart | 21 | // Lifetime running total of peers this device has helped. Survives | COMMENT |
| LOW | lib/core/common/app_theme.dart | 1 | import 'package:flutter/material.dart'; | COMMENT |
| LOW | lib/core/services/stripe_service.dart | 61 | /// Presents the payment sheet using Stripe's deferred-intent flow: no | COMMENT |
| LOW | lib/core/services/app_purchase.dart | 181 | appLogger.info('[AppPurchase] Purchase stream ready=$ready'); | COMMENT |
| LOW | lib/core/services/app_purchase.dart | 801 | appLogger.error('[AppPurchase] Purchase stream error: $error'); | COMMENT |
| LOW | lib/core/services/logger_service.dart | 141 | printer.onLog(record); | COMMENT |
| LOW | …ures/split_tunneling/utils/split_tunnel_app_utils.dart | 121 | String _windowsDisplayDedupeKey(AppData app) { | COMMENT |
| LOW | lib/features/home/home.dart | 61 | }); | COMMENT |
| LOW | lib/features/home/home.dart | 181 | // reconcileLaunch then holds the resumed session to the user's | COMMENT |
| LOW | lib/features/home/home.dart | 201 | // while a Start is in flight, and skip the disclosure dialog | COMMENT |
| LOW | …tures/home/provider/radiance_settings_providers.g.dart | 1 | // GENERATED CODE - DO NOT MODIFY BY HAND | COMMENT |
| LOW | …tures/home/provider/radiance_settings_providers.g.dart | 21 | /// Holds radiance-backed VPN preferences in memory. | COMMENT |
| LOW | lib/features/home/provider/app_event_notifier.g.dart | 1 | // GENERATED CODE - DO NOT MODIFY BY HAND | COMMENT |
| LOW | …es/developer/notifier/developer_daemon_notifier.g.dart | 1 | // GENERATED CODE - DO NOT MODIFY BY HAND | COMMENT |
| 40 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/ci/verify_android_version_test.py | 1 | CODE | |
| LOW | scripts/ci/verify_android_abis_test.py | 1 | CODE | |
| LOW | scripts/ci/generate_update_metadata.py | 4 | CODE | |
| LOW | scripts/ci/resolve_desktop_update_target_test.py | 3 | CODE | |
| LOW | scripts/ci/generate_update_metadata_test.py | 3 | CODE | |
| LOW | scripts/ci/android_version_test.py | 1 | CODE | |
| LOW | scripts/ci/verify_release_alignment.py | 4 | CODE | |
| LOW | scripts/ci/release_workflow_test.py | 1 | CODE | |
| LOW | scripts/ci/verify_fixture_update_artifacts.py | 4 | CODE | |
| LOW | scripts/ci/resolve_desktop_update_target.py | 4 | CODE | |
| LOW | scripts/ci/verify_update_service.py | 4 | CODE | |
| LOW | scripts/ci/render_windows_installer_fixture.py | 4 | CODE | |
| LOW | scripts/ci/version_test.py | 3 | CODE | |
| LOW | scripts/ci/verify_release_alignment_test.py | 3 | CODE | |
| LOW | scripts/ci/verify_update_service_test.py | 3 | CODE | |
| LOW | scripts/ci/verify_android_abis.py | 9 | CODE | |
| LOW | scripts/ci/render_windows_installer.py | 4 | CODE | |
| LOW | scripts/stealth/debrand_kotlin.py | 23 | CODE | |
| LOW | scripts/stealth/sanitize_android_artifact.py | 4 | CODE | |
| LOW | scripts/stealth/generate_profile_test.py | 218 | CODE | |
| LOW | scripts/stealth/run_flutter_build.py | 18 | CODE | |
| LOW | scripts/stealth/android_manifest_filter_test.py | 27 | CODE | |
| LOW | scripts/stealth/generate_android_identity_test.py | 3 | CODE | |
| LOW | scripts/stealth/generate_android_identity.py | 4 | CODE | |
| LOW | scripts/stealth/generate_android_icons.py | 4 | CODE | |
| LOW | scripts/stealth/android_manifest_filter.py | 17 | CODE | |
| LOW | scripts/stealth/generate_profile.py | 4 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/ci/verify_android_abis_test.py | 75 | CODE | |
| LOW | scripts/ci/verify_android_abis_test.py | 144 | CODE | |
| LOW | scripts/ci/android_version_test.py | 15 | CODE | |
| LOW | scripts/ci/release_workflow_test.py | 290 | CODE | |
| LOW | scripts/ci/desktop_update_scenario_test.py | 46 | CODE | |
| LOW | scripts/ci/desktop_update_scenario_test.py | 176 | CODE | |
| LOW | scripts/ci/verify_android_abis.py | 90 | CODE | |
| LOW | scripts/android/test-runtime-seccomp.py | 27 | CODE | |
| LOW | scripts/stealth/sanitize_android_artifact.py | 233 | CODE | |
| LOW | scripts/stealth/android_manifest_filter_test.py | 286 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | lib/lantern/lantern_ffi_service.dart | 1928 | // TODO: implement openSystemExtension | COMMENT |
| LOW⚡ | lib/lantern/lantern_ffi_service.dart | 1934 | // TODO: implement watchSystemExtensionStatus | COMMENT |
| LOW⚡ | lib/lantern/lantern_ffi_service.dart | 1940 | // TODO: implement isSystemExtensionInstalled | COMMENT |
| LOW | lib/lantern/lantern_ffi_service.dart | 2060 | // TODO: implement diagnosticLogFiles | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pubspec.yaml | 105 | # dependency injection | COMMENT |
| MEDIUM | scripts/stealth/sanitize_android_artifact_test.py | 183 | # turn "getlantern" → "foundation" but leave the URL scaffold intact, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/core/services/stripe_service_test.dart | 84 | email: 'user@example.com', | CODE |
| LOW | test/core/services/stripe_service_test.dart | 122 | email: 'user@example.com', | CODE |
| LOW | test/core/services/stripe_service_test.dart | 153 | email: 'user@example.com', | CODE |
| LOW | test/features/report_issue/report_issue_test.dart | 347 | 'user@example.com', | CODE |
| LOW | test/features/report_issue/report_issue_test.dart | 358 | expect(submitter.calls.single.email, 'user@example.com'); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/stealth/sanitize_android_artifact_test.py | 38 | n_shdrs = 3 # null, named section, .shstrtab | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pubspec.yaml | 179 | # The following section is specific to Flutter packages. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pubspec.yaml | 198 | # included with your application, so that you can use the icons in | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/radiance-env.sh | 9 | # Usage: | COMMENT |
| LOW | scripts/ci/version.sh | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/build-linux.yml | 265 | # is the only IPC client in this harness, so the daemon's info-level | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/ci/verify_update_service.py | 372 | except Exception as err: # noqa: BLE001 | CODE |
| LOW | .github/workflows/firebase-test-lab.yml | 271 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/ci/format.sh | 51 | # Check if a platform should be included | COMMENT |