🪅 Windows & Linux userspace emulator
This report summarizes scanner evidence for momo5502/sogen, a C++ project with 3,872 GitHub stars. SynthScan examined 256,100 lines of code across 800 source files, recording 280 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 1.2 (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? 267 finding(s).
Are imports declared and package/API names verified? 9 finding(s).
Are wrappers, guards, and repeated structures necessary? 27 finding(s).
Which changes need focused human review? 280 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 280 distinct pattern matches across 13 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 | page/src/vite-env.d.ts | 1 | /// <reference types="vite/client" /> | COMMENT |
| LOW | app/pubspec.yaml | 1 | name: sogen_app | COMMENT |
| LOW | app/pubspec.yaml | 61 | COMMENT | |
| LOW | app/pubspec.yaml | 81 | # To add custom fonts to your application, add a fonts section here, | COMMENT |
| LOW | .github/workflows/claude.yml | 41 | actions: read | COMMENT |
| LOW | src/backend-selection/backend_selection.cpp | 1 | #include "backend_selection.hpp" | COMMENT |
| LOW | src/python-bindings/sogen_bindings.hpp | 1 | #pragma once | COMMENT |
| LOW | src/linux-emulator-test/path_port_mapping_test.cpp | 1 | #include <gtest/gtest.h> | COMMENT |
| LOW | src/linux-emulator-test/linux_emulation_test_utils.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/port.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/file_management.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/file_management.hpp | 21 | #define FILE_CREATE 0x00000002 | COMMENT |
| LOW | src/emulator-platform/platform/file_management.hpp | 41 | #define FILE_READ_DATA 0x0001 /* file & pipe */ | COMMENT |
| LOW | src/emulator-platform/platform/file_management.hpp | 61 | #define FILE_DIRECTORY_FILE 0x00000001 | COMMENT |
| LOW | src/emulator-platform/platform/file_management.hpp | 81 | #define FILE_64_BYTE_ALIGNMENT ((1 << (7 - 1)) - 1) | COMMENT |
| LOW | src/emulator-platform/platform/file_management.hpp | 101 | #define FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE (0x00000010) | COMMENT |
| LOW | src/emulator-platform/platform/file_management.hpp | 121 | #define SEC_NOCACHE 0x10000000 | COMMENT |
| LOW | src/emulator-platform/platform/primitives.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/primitives.hpp | 101 | // NOLINTEND(modernize-use-using,cppcoreguidelines-use-enum-class,cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays, | COMMENT |
| LOW | src/emulator-platform/platform/kernel_mapped.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/kernel_mapped.hpp | 21 | #define PROCESSOR_FEATURE_MAX 64 | COMMENT |
| LOW | src/emulator-platform/platform/kernel_mapped.hpp | 41 | #define PF_PPC_MOVEMEM_64BIT_OK 4 | COMMENT |
| LOW | src/emulator-platform/platform/kernel_mapped.hpp | 61 | #define PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE 24 | COMMENT |
| LOW | src/emulator-platform/platform/kernel_mapped.hpp | 81 | #define PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE 44 | COMMENT |
| LOW | src/emulator-platform/platform/kernel_mapped.hpp | 101 | #define PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE 64 | COMMENT |
| LOW | src/emulator-platform/platform/kernel_mapped.hpp | 341 | COMMENT | |
| LOW | src/emulator-platform/platform/platform.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/platform.hpp | 21 | #include "user.hpp" | COMMENT |
| LOW | src/emulator-platform/platform/user.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/user.hpp | 21 | #define FNID_DIALOG 0x2A4 | COMMENT |
| LOW | …c/emulator-platform/platform/crypt_protect_backend.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 221 | #ifndef OS_WINDOWS | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 241 | #define WS_EX_TRANSPARENT 0x00000020L | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 261 | #define SW_SHOWMINNOACTIVE 7 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 281 | #define WM_GETMINMAXINFO 0x0024 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 301 | #define WM_MBUTTONDBLCLK 0x0209 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 321 | #define WM_NCLBUTTONDBLCLK 0x00A3 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 341 | #define RIM_TYPEHID 2 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 361 | #define RI_MOUSE_RIGHT_BUTTON_UP 0x0008 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 381 | #define MK_MBUTTON 0x0010 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 401 | #define VK_CONTROL 0x11 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 421 | #define VK_NUMPAD2 0x62 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 441 | #define VK_F7 0x76 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 461 | #define VK_OEM_3 0xC0 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 481 | #define QS_KEY 0x0001 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 501 | #define RDW_VALIDATE 0x0008 | COMMENT |
| LOW | src/emulator-platform/platform/window.hpp | 521 | #define MIIM_CHECKMARKS 0x0008 | COMMENT |
| LOW | src/emulator-platform/platform/status.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/status.hpp | 21 | COMMENT | |
| LOW | src/emulator-platform/platform/status.hpp | 41 | #define STATUS_NO_MORE_ENTRIES ((NTSTATUS)0x8000001AL) | COMMENT |
| LOW | src/emulator-platform/platform/status.hpp | 61 | #define STATUS_OBJECT_NAME_INVALID ((NTSTATUS)0xC0000033L) | COMMENT |
| LOW | src/emulator-platform/platform/status.hpp | 81 | #define STATUS_PIPE_BUSY ((NTSTATUS)0xC00000AAL) | COMMENT |
| LOW | src/emulator-platform/platform/status.hpp | 101 | #define STATUS_INVALID_PARAMETER_8 ((NTSTATUS)0xC00000F6L) | COMMENT |
| LOW | src/emulator-platform/platform/status.hpp | 121 | #define STATUS_PORT_NOT_SET ((NTSTATUS)0xC0000353L) | COMMENT |
| LOW | src/emulator-platform/platform/win_pefile.hpp | 1 | #pragma once | COMMENT |
| LOW | src/emulator-platform/platform/win_pefile.hpp | 21 | #define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory | COMMENT |
| LOW | src/emulator-platform/platform/win_pefile.hpp | 41 | #define IMAGE_SCN_MEM_EXECUTE 0x20000000 // Section is executable. | COMMENT |
| LOW | src/emulator-platform/platform/win_pefile.hpp | 61 | #define IMAGE_REL_BASED_MIPS_JMPADDR16 9 | COMMENT |
| LOW | src/emulator-platform/platform/win_pefile.hpp | 81 | #define IMAGE_FILE_MACHINE_SH3DSP 0x01a3 | COMMENT |
| LOW | src/emulator-platform/platform/win_pefile.hpp | 101 | #define IMAGE_FILE_MACHINE_M32R 0x9041 // M32R little-endian | COMMENT |
| 169 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | page/src/filesystem-explorer.tsx | 79 | function relativePathToWindowsPath(fullPath: string) { | CODE |
| LOW | page/src/filesystem-explorer.tsx | 90 | function makeRelativePathWithState( | CODE |
| LOW | page/src/filesystem-explorer.tsx | 244 | function generateBreadcrumbElements(path: string[]): BreadcrumbElement[] { | CODE |
| LOW | page/src/web-ui-host.ts | 433 | function computeViewportAxisOffset( | CODE |
| LOW | page/src/Installer.ts | 26 | async function hasBeenRegisteredPreviously() { | CODE |
| LOW | page/src/filesystem.ts | 9 | async function fetchOptionalFilesystemZip(path: string) { | CODE |
| LOW | page/src/download.ts | 81 | export function downloadBinaryFilePercent( | CODE |
| LOW | page/src/emulator.ts | 79 | function createDefaultEmulationStatus(): EmulationStatus { | CODE |
| LOW | docs/python/README.md | 518 | def on_get_current_process_id(call, params): | CODE |
| LOW | src/python-bindings/test_linux.py | 435 | def on_self_removing_memory_violate(address, size, operation, violation_type): | CODE |
| LOW | src/python-bindings/test_linux.py | 453 | def rip_relative_memory_instruction(opcode, instruction_address, target_address): | CODE |
| LOW | src/python-bindings/test_linux.py | 517 | def on_resume_map_memory_violate(address, size, operation, violation_type): | CODE |
| LOW | src/python-bindings/test_linux.py | 546 | def on_restart_memory_violate(address, size, operation, violation_type): | CODE |
| LOW | src/python-bindings/test_linux.py | 1121 | def restore_before_writeonly_read(syscall_id, syscall_name): | STRING |
| LOW | src/python-bindings/test_linux.py | 1481 | def unsupported_symbol_signature(call, params): | STRING |
| LOW | src/python-bindings/test.py | 163 | def on_temp_get_current_process_id(call, params): | CODE |
| LOW | src/python-bindings/test_arm64.py | 26 | def test_single_step_and_saved_registers(self): | CODE |
| LOW | src/python-bindings/test_arm64.py | 41 | def test_python_svc_callback_returns_a_result(self): | CODE |
| LOW | src/python-bindings/test_arm64.py | 61 | def test_python_callback_exception_propagates_and_can_retry(self): | CODE |
| LOW | src/python-bindings/test_arm64.py | 75 | def test_invalid_arguments_and_unmapped_memory_fail(self): | CODE |
| LOW | src/python-bindings/test_arm64.py | 89 | def test_existing_namespaces_remain_but_unavailable_personalities_fail(self): | CODE |
| LOW | src/python-bindings/test_arm64.py | 141 | def run_hello_crt_with_write_file_hook(self, root, intercept): | CODE |
| LOW | src/tools/steam-bridge-generator/generate.py | 539 | def infer_conventional_buffers(types: Types, params: list[Param]) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/python-bindings/test_linux.py | 939 | if (count != 6 || memcmp(buffer, "locked", 6) != 0) { | CODE |
| HIGH | src/python-bindings/test_linux.py | 1316 | if (peer.sin_family != AF_INET || ntohs(peer.sin_port) != 40000 || ntohl(peer.sin_addr.s_addr) != 0x7f00 | CODE |
| HIGH | src/tools/steam-bridge-generator/generate.py | 1003 | L.append(f" if (!{v}_real && reinterpret_cast<uint64_t>({v}) != 0) return steam_h | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/python-bindings/test_linux.py | 1486 | except RuntimeError: | CODE |
| HIGH | src/python-bindings/test.py | 54 | except expected_error: | CODE |
| HIGH | src/tools/steam-bridge-generator/generate.py | 1142 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | page/src/landing-page.tsx | 71 | print(f"Sleep({params[0]})") | CODE |
| HIGH | page/src/debugger/scripting.ts | 122 | print( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/python-bindings/test_arm64.py | 117 | CODE | |
| LOW | src/tools/vulkan-bridge-generator/generate.py | 91 | CODE | |
| LOW | src/tools/vulkan-bridge-generator/generate.py | 116 | CODE | |
| LOW | src/tools/steam-bridge-generator/generate.py | 53 | CODE | |
| LOW | src/tools/steam-bridge-generator/generate.py | 174 | CODE | |
| LOW | src/tools/steam-bridge-generator/generate.py | 663 | CODE | |
| LOW | src/tools/steam-bridge-generator/generate.py | 820 | CODE | |
| LOW | src/tools/steam-bridge-generator/generate.py | 927 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | page/src/components/script-console.tsx | 259 | and don't forget to `await`. | CODE |
| MEDIUM | app/pubspec.yaml | 66 | # included with your application, so that you can use the icons in | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/python/basic_usage.py | 7 | CODE | |
| LOW | examples/python/linux_true.py | 3 | CODE | |
| LOW | examples/python/arm64_application.py | 9 | CODE | |
| LOW | src/tools/steam-bridge-generator/generate.py | 25 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/pubspec.yaml | 62 | # The following section is specific to Flutter packages. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AGENTS.md | 65 | - Section headers or banners inside a function (`// --- setup ---`, `// Step 3: cleanup`). | CODE |
| LOW | CLAUDE.md | 65 | - Section headers or banners inside a function (`// --- setup ---`, `// Step 3: cleanup`). | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …kends/icicle-emulator/icicle-bridge/.cargo/config.toml | 9 | git-fetch-with-cli = true # fetch git deps via the system git — more robust than libgit2, honors git's http config | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | page/src/download.ts | 54 | function processData( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/python-bindings/test_linux.py | 276 | except Exception as exc: | CODE |