Custom GeForce Now Client Named OpenNOW
This report summarizes scanner evidence for OpenCloudGaming/OpenNOW, a Rust project with 3,547 GitHub stars. SynthScan examined 296,712 lines of code across 556 source files, recording 421 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 1.5 (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? 417 finding(s).
Are imports declared and package/API names verified? 4 finding(s).
Are wrappers, guards, and repeated structures necessary? 245 finding(s).
Which changes need focused human review? 421 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 421 distinct pattern matches across 7 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 | opennow-qt/packaging/test_macos_awdl.py | 23 | def test_both_workflows_check_the_packaged_helper(self): | CODE |
| LOW | opennow-qt/packaging/test_macos_awdl.py | 36 | def test_launch_daemon_has_fixed_root_only_contract(self): | CODE |
| LOW | opennow-qt/packaging/test_macos_awdl.py | 51 | def test_helper_build_and_install_follow_architecture_and_profile(self): | CODE |
| LOW | opennow-qt/packaging/test_macos_awdl.py | 72 | def test_debug_helper_uses_debug_profile(self): | CODE |
| LOW | opennow-qt/packaging/test_macos_awdl.py | 84 | def test_adhoc_signing_seals_helper_before_app(self): | CODE |
| LOW | opennow-qt/packaging/test_macos_awdl.py | 93 | def test_developer_id_signing_includes_helper_without_app_entitlements(self): | CODE |
| LOW | opennow-qt/tests/test_macos_build.py | 12 | def test_public_dmg_is_copied_before_relocated_smoke(self): | CODE |
| LOW | opennow-qt/tests/test_macos_build.py | 31 | def test_architecture_validation_places_input_before_architecture_list(self): | CODE |
| LOW | opennow-qt/tests/test_macos_build.py | 89 | def test_rust_target_follows_qt_architecture(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_macos_build.py | 103 | def test_matching_explicit_rust_target_is_accepted(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_macos_build.py | 107 | def test_mismatched_rust_target_is_rejected(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_macos_build.py | 112 | def test_ffi_requests_relocatable_install_name(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_macos_build.py | 120 | def test_bundle_explicitly_installs_native_helpers(self): | STRING |
| LOW | opennow-qt/tests/test_macos_build.py | 136 | def test_deployment_scans_helper_dependencies(self): | STRING |
| LOW | opennow-qt/tests/test_macos_build.py | 143 | def test_nightly_deployment_explicitly_seals_bundle_with_adhoc_identity(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_ci_release_trust.py | 32 | def test_dispatched_revision_is_accepted(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_ci_release_trust.py | 36 | def test_independent_revision_is_rejected(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_ci_release_trust.py | 41 | def test_non_sha_revision_is_rejected(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_ci_release_trust.py | 45 | def test_windows_signing_mode_is_explicit_and_validated(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_ci_release_trust.py | 53 | def test_release_checkouts_do_not_use_input_refs(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_ci_release_trust.py | 61 | def test_windows_unsigned_default_keeps_signing_explicit_and_separate(self): | CODE |
| LOW | opennow-qt/tests/test_ci_release_trust.py | 84 | def test_windows_artifact_names_and_inventory_record_platform_signing_mode(self): | CODE |
| LOW | opennow-qt/tests/test_ci_release_trust.py | 95 | def test_candidate_update_key_is_isolated_in_a_blacksmith_signing_job(self): | CODE |
| LOW | opennow-qt/tests/test_linux_package.py | 13 | def test_debian_packages_require_svg_image_plugin(self): | CODE |
| LOW | opennow-qt/tests/test_linux_package.py | 60 | def test_missing_or_nonexecutable_helper_is_rejected(self): | STRING |
| LOW | opennow-qt/tests/test_linux_package.py | 98 | def test_driverless_runner_can_validate_compiled_vaapi(self): | STRING |
| LOW | opennow-qt/tests/test_linux_package.py | 107 | def test_missing_vaapi_feature_is_rejected(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_linux_package.py | 122 | def test_missing_ffmpeg_fallback_is_rejected(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_linux_package.py | 131 | def test_missing_hevc_software_decoder_is_rejected(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_linux_package.py | 136 | def test_software_codec_contract_must_be_complete(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_linux_package.py | 144 | def test_software_codec_availability_must_be_boolean(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_linux_package.py | 153 | def test_non_ready_response_is_rejected(self): | STRING |
| LOW⚡ | opennow-qt/tests/test_stable_release.py | 14 | def test_stable_version_uses_project_version_without_nightly_suffix(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_stable_release.py | 19 | def test_channels_cannot_relabel_each_others_versions(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_stable_release.py | 27 | def test_complete_stable_inventory_is_unsigned_with_manual_updates(self): | CODE |
| LOW | opennow-qt/tests/test_stable_release.py | 55 | def test_publication_requires_main_checks_and_complete_packages(self): | CODE |
| LOW | opennow-qt/tests/test_update_helper_driver.py | 12 | def test_fixture_compiler_uses_cargo_host_linker(self, run): | CODE |
| LOW | opennow-qt/tests/test_update_helper_driver.py | 25 | def test_fixture_compiler_keeps_default_without_host_override(self, run): | CODE |
| LOW⚡ | opennow-qt/tests/test_update_helper_driver.py | 37 | def test_fixture_compiler_propagates_cargo_failures(self, run): | CODE |
| LOW⚡ | opennow-qt/tests/test_update_helper_driver.py | 43 | def test_ci_target_directory_reuses_the_restored_core_cache(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_update_helper_driver.py | 50 | def test_local_target_directory_stays_temporary(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_update_helper_driver.py | 56 | def test_cached_helper_build_cleans_workspace_crate_before_recompiling(self, run): | CODE |
| LOW | opennow-qt/tests/test_update_helper_driver.py | 73 | def test_local_helper_build_preserves_fully_isolated_target(self, run): | CODE |
| LOW | opennow-qt/tests/test_update_helper_driver.py | 82 | def test_cached_helper_build_stops_when_clean_fails(self, run): | CODE |
| LOW⚡ | opennow-qt/tests/test_vaapi_launcher.py | 60 | def test_host_libva_is_used_with_its_own_driver_search(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_vaapi_launcher.py | 68 | def test_host_libva_keeps_explicit_settings(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_vaapi_launcher.py | 74 | def test_incomplete_foreign_or_unreadable_host_cache_uses_the_bundled_libva(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_vaapi_launcher.py | 84 | def test_bundled_libva_paths_cover_arch_fedora_and_matching_debian_architecture(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_vaapi_launcher.py | 94 | def test_bundled_libva_keeps_explicit_paths_and_driver_selection(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_vaapi_launcher.py | 102 | def test_repeated_sourcing_does_not_duplicate_paths(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_vaapi_launcher.py | 105 | def test_unknown_architecture_uses_the_bundled_libva_with_generic_paths(self): | CODE |
| LOW⚡ | opennow-qt/tests/test_vaapi_launcher.py | 110 | def test_both_release_workflows_install_and_verify_the_hook(self): | CODE |
| LOW | opennow-qt/tests/test_vaapi_launcher.py | 128 | def test_package_verifier_requires_current_hook_and_launcher_registration(self): | CODE |
| LOW | opennow-qt/tests/test_supporter_build.py | 26 | def test_supporter_identity_uses_project_and_run_numbers(self): | CODE |
| LOW | opennow-qt/tests/test_supporter_build.py | 43 | def test_supporter_inventory_and_checksums(self): | CODE |
| LOW | opennow-qt/tests/test_supporter_build.py | 77 | def test_inventory_rejects_wrong_channel_and_malformed_versions(self): | CODE |
| LOW | opennow-qt/tests/test_supporter_build.py | 89 | def test_cmake_preserves_supporter_identity_and_debian_ordering(self): | CODE |
| LOW | opennow-qt/tests/test_supporter_build.py | 102 | def test_supporter_workflow_is_removed_and_shared_build_has_no_publishing_path(self): | CODE |
| LOW | opennow-qt/tests/test_ci_build_cache.py | 18 | def test_nightly_version_only_rebuilds_version_consumers(self): | CODE |
| LOW | opennow-qt/tests/test_macos_release.py | 105 | def test_inside_out_signing_precedes_notarization_and_final_packaging(self): | CODE |
| 185 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …amer/crates/opennow-streamer-platform-macos/src/lib.rs | 1 | //! Native macOS media backend for OpenNOW. | COMMENT |
| LOW | …er/crates/opennow-streamer-core/src/nvst_rtsp_color.rs | 1 | use opennow_streamer_platform::MediaStreamConfig; | COMMENT |
| LOW | …r/crates/opennow-streamer-platform-linux/src/format.rs | 221 | /// Number of luma rows an NV12/P010 DMA-BUF is coded at, which may exceed the | COMMENT |
| LOW | …/opennow-streamer-platform-linux/src/frame_producer.rs | 541 | /// The producer and every prepared frame must be dropped before Qt destroys | COMMENT |
| LOW | …es/opennow-streamer-platform-linux/src/presentation.rs | 101 | /// | COMMENT |
| LOW | …opennow-streamer-platform-windows/src/decoder_order.rs | 1 | /// Where a hardware-mode decoder search looks for Media Foundation activations. | COMMENT |
| LOW | …s/opennow-streamer-platform-windows/src/windows/mod.rs | 741 | } | COMMENT |
| LOW | …w-streamer/crates/opennow-streamer-protocol/src/log.rs | 1 | //! Minimal file logger for the in-process streamer. | COMMENT |
| LOW | …es/opennow-streamer-ffi/include/opennow_streamer_ffi.h | 1 | #ifndef OPENNOW_STREAMER_FFI_H | COMMENT |
| LOW | …es/opennow-streamer-ffi/include/opennow_streamer_ffi.h | 21 | #define OPENNOW_STREAMER_GRAPHICS_CONTEXT_VERSION 3u | COMMENT |
| LOW | …pennow-streamer/crates/opennow-streamer-ffi/src/lib.rs | 861 | catch_unwind(AssertUnwindSafe(body)).unwrap_or(OpenNowStreamerStatus::Panic) | COMMENT |
| LOW | …pennow-streamer/crates/opennow-streamer-ffi/src/lib.rs | 1601 | } | COMMENT |
| LOW | …pennow-streamer/crates/opennow-streamer-ffi/src/lib.rs | 1841 | } | COMMENT |
| LOW | opennow-qt/tests/tst_frameinterpolator.cpp | 1 | #include "streaming/rendering/StreamFrameInterpolator.h" | COMMENT |
| LOW | opennow-qt/tests/tst_windowtheme.cpp | 1 | #include "app/platform/WindowTheme.h" | COMMENT |
| LOW | opennow-qt/tests/tst_streamvideoitem.cpp | 1 | #include "streaming/StreamVideoItem.h" | COMMENT |
| LOW | opennow-qt/tests/tst_streamvideoitem.cpp | 21 | #include <QSGSimpleRectNode> | COMMENT |
| LOW | opennow-qt/tests/tst_macpointercapture.cpp | 1 | #include "input/platform/MacPointerCapture.h" | COMMENT |
| LOW | opennow-qt/tests/tst_hdrcolor.cpp | 1 | #include <QFile> | COMMENT |
| LOW | opennow-qt/tests/tst_nativeframegeneration.cpp | 1 | #include "streaming/NativeStreamRuntime.h" | COMMENT |
| LOW | opennow-qt/tests/tst_nativestreamruntime.cpp | 1 | #include "streaming/NativeStreamRuntime.h" | COMMENT |
| LOW | opennow-qt/tests/tst_sonychain.cpp | 1 | #include "input/ControllerInput.h" | COMMENT |
| LOW | opennow-qt/tests/tst_streamcolor.cpp | 1 | #include "streaming/rendering/StreamVideoTextureRenderer.h" | COMMENT |
| LOW | opennow-qt/tests/tst_fsrupscaler.cpp | 1 | #include "streaming/rendering/StreamFsrUpscaler.h" | COMMENT |
| LOW | opennow-qt/tests/tst_coreclient.cpp | 1 | #include "core/CoreClient.h" | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 1 | //_____________________________________________________________/\_______________________________________________________ | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 21 | // The above copyright notice and this permission notice shall be included in | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 41 | // [RCAS] Robust Contrast Adaptive Sharpening .... A non-scaling variation on CAS. | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 61 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 81 | //---------------------------------------------------------------------------------------------------------------------- | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 101 | // #include "ffx_a.h" | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 121 | // #define A_HLSL 1 | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 141 | // To use FsrEasuCon() on the CPU, define A_CPU before including ffx_a and ffx_fsr1. | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 181 | // | | | | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 321 | AU4 con3){ | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 401 | // Anisotropic length after rotation, | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 601 | // | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 621 | // Then chooses the 'w' which results in no clipping, limits 'w', and multiplies by the 'sharp' amount. | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 641 | // Including a GPU example here, the 'con' value would be stored out to a constant buffer. | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 661 | // Call to setup required constant values (works on CPU or GPU). | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 761 | #ifdef FSR_RCAS_DENOISE | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 861 | #endif | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 981 | AH2 rcpL=APrxMedRcpH2(AH2_(4.0)*lobe+AH2_(1.0)); | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 1001 | // Grain application should be done in a linear colorspace. | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 1021 | // Packed half precision version (faster). | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 1041 | //====================================================================================================================== | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 1061 | //_____________________________________________________________/\_______________________________________________________ | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_fsr1.h | 1081 | //====================================================================================================================== | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 1 | //====================================================================================================================== | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 41 | //---------------------------------------------------------------------------------------------------------------------- | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 61 | // A_WAVE .... Support wave-wide operations. | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 81 | // - Make sure 'ALerp*(a,b,m)' does 'b*m+(-a*m+a)' (2 ops). | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 101 | //_____________________________________________________________/\_______________________________________________________ | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 141 | A_STATIC AU1 AU1_AF1(AF1 a){union{AF1 f;AU1 u;}bits;bits.f=a;return bits.u;} | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 161 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 181 | #define inAD3 AD1 *A_RESTRICT | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 201 | #define inoutAL4 AL1 *A_RESTRICT | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 221 | #define varAD4(x) AD1 x[4] | COMMENT |
| LOW | opennow-qt/shaders/fsr1/ffx_a.h | 241 | #define initAU2(x,y) {x,y} | COMMENT |
| 94 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …tes/opennow-streamer-platform-linux/src/video/vaapi.rs | 504 | #[ignore = "requires the isolated VA-API mock driver harness"] | COMMENT |
| MEDIUM⚡ | …tes/opennow-streamer-platform-linux/src/video/vaapi.rs | 511 | #[ignore = "requires the isolated VA-API mock driver harness"] | COMMENT |
| MEDIUM⚡ | …tes/opennow-streamer-platform-linux/src/video/vaapi.rs | 519 | #[ignore = "requires the isolated VA-API mock driver harness"] | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/streamer-comparison/scripts/_scan_gfn_type10.py | 118 | CODE | |
| LOW | opennow-qt/packaging/macos_release.py | 56 | CODE | |
| LOW | opennow-qt/packaging/macos_release.py | 100 | CODE | |
| LOW | opennow-qt/tests/test_linux_package.py | 144 | CODE | |
| LOW | opennow-qt/tests/test_ci_build_cache.py | 18 | CODE | |
| LOW | opennow-qt/tests/test_macos_release.py | 54 | CODE | |
| LOW | opennow-qt/tests/test_ci_workflow.py | 75 | CODE | |
| LOW | opennow-qt/tests/test_ubuntu_apt_https.py | 60 | CODE | |
| LOW | opennow-qt/tests/test_ubuntu_apt_https.py | 85 | CODE | |
| LOW | opennow-qt/tests/test_linux_install_layout.py | 20 | CODE | |
| LOW | opennow-qt/tests/test_candidate_promotion.py | 130 | CODE | |
| LOW | opennow-qt/tests/test_ffmpeg_build.py | 80 | CODE | |
| LOW | scripts/audit-gfn-archive.py | 9 | CODE | |
| LOW | .github/scripts/prepare-ubuntu-apt-https.py | 30 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | native/opennow-core/src/diagnostics.rs | 935 | assert!(!text.contains("user@example.com")); | CODE |
| LOW | native/opennow-core/src/diagnostics.rs | 965 | assert!(!text.contains("user@example.com")); | CODE |
| LOW | native/opennow-core/src/diagnostics.rs | 1215 | assert!(!snapshot.to_string().contains("user@example.com")); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/codeql.yml | 56 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/streamer-comparison/scripts/_scan_gfn_type10.py | 3 | CODE |