Native local development environment for Windows, macOS & Linux. A modern alternative to XAMPP, MAMP, Laragon and Laravel Herd, with runtimes, databases, web servers, local sites, HTTPS, AI coding tools and MCP.
This report summarizes scanner evidence for xpf0000/FlyEnv, a TypeScript project with 3,326 GitHub stars. SynthScan examined 411,135 lines of code across 3740 source files, recording 279 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 1.4 (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? 226 finding(s).
Are imports declared and package/API names verified? 29 finding(s).
Are wrappers, guards, and repeated structures necessary? 176 finding(s).
Which changes need focused human review? 279 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 279 distinct pattern matches across 11 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 | plugins/dameng/tests/windows.test.ts | 338 | function selectedDirectoryInstallPolicy( | CODE |
| LOW | plugins/mariadb-cluster/render/installations.ts | 31 | export async function refreshMariadbInstallations() { | CODE |
| LOW | …gins/mariadb-cluster/render/installationsController.ts | 155 | export function requireStaticInstallationSuccess(response: { | CODE |
| LOW | plugins/mariadb-cluster/render/startup/register.ts | 10 | export function registerMariadbClusterStartup(descriptor: AppModuleItem) { | CODE |
| LOW | plugins/mysql-cluster/render/installations.ts | 31 | export async function refreshMysqlInstallations() { | CODE |
| LOW | plugins/mysql-cluster/render/installationsController.ts | 155 | export function requireStaticInstallationSuccess(response: { | CODE |
| LOW | plugins/mysql-cluster/render/startup/register.ts | 10 | export function registerMysqlClusterStartup(descriptor: AppModuleItem) { | CODE |
| LOW | plugins/kafka/fork/Kafka/WindowsRunClass.ts | 2 | export function patchKafkaWindowsRunClass(content: string): string { | CODE |
| LOW | plugins/kafka/fork/Kafka/kraft.ts | 2 | export function kafkaClusterUuidFromOutput(stdout: string): string { | CODE |
| LOW | plugins/kafka/render/policy.ts | 58 | export function filterKafkaJavaCandidates(installed: SoftInstalled[]): KafkaJavaCandidate[] { | CODE |
| LOW⚡ | plugins/mssql/fork/Mssql/windows.ts | 8 | export function windowsConfigurationManagerPath(version: string, systemRoot: string): string { | CODE |
| LOW⚡ | plugins/mssql/fork/Mssql/windows.ts | 17 | export function windowsConfigurationManagerScript(mmc: string, consoleFile: string): string { | CODE |
| LOW⚡ | plugins/mssql/fork/Mssql/windows.ts | 27 | export function windowsEncodeElevationScript(): string { | CODE |
| LOW | plugins/mssql/fork/Mssql/windows.ts | 43 | export function windowsServiceControlBody( | CODE |
| LOW | plugins/mssql/fork/Mssql/Permissions.ts | 182 | export function windowsServiceAccessCheckScript(service: string): string { | CODE |
| LOW | plugins/mssql/fork/Mssql/Permissions.ts | 216 | export function canRepairWindowsPermissions(version: { | CODE |
| LOW | plugins/command-shortcuts/fork/terminal.ts | 45 | export function directoryTerminalBootstrap(path: string, powershell: string): string { | CODE |
| LOW | scripts/helper-contract-check.ts | 292 | function checkContractAgainstTypes(contract: Contract) { | CODE |
| LOW | scripts/helper-contract-check.ts | 310 | function checkContractAgainstDispatch(contract: Contract) { | CODE |
| LOW | src/fork/util/ServiceStart.win.ts | 90 | export function buildWindowsCmdServiceStartCommand( | CODE |
| LOW | src/fork/util/ServiceStart.win.ts | 109 | export function buildWindowsCustomerServiceStartScript( | CODE |
| LOW | src/fork/util/ServiceStart.ts | 99 | export function serviceStartSpawnLogParam( | CODE |
| LOW | src/fork/util/ServiceStart.ts | 134 | export function buildUnixCustomerServiceStartScript( | CODE |
| LOW | src/fork/util/PowerShell.ts | 142 | export function powershellExecWithUnblock(file: string, options: any = {}): ForkPromise<string> { | CODE |
| LOW | src/fork/util/AiCli.ts | 103 | export function resolveAiCliTerminalCommand(binName: string, deps: ResolveAiCliDeps = {}): string { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 85 | export function pgAdminPrivateDirectories(paths: PgAdminPaths, windows: boolean): string[] { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 105 | function validPgAdminServerIdentityId(value: unknown): value is string { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 114 | export function parsePgAdminServerIdentity(content: string): PgAdminServerIdentity { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 145 | export async function pgAdminInitializationState( | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 168 | export async function completePgAdminInitialization( | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 268 | export async function verifyPgAdminPidPersistence( | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 309 | export function pgAdminPackageRootUnversionedProbe(): string { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 313 | export function pgAdminDesktopBootstrapContent(): string { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 376 | export function pgAdminDesktopInitializationVerificationContent(): string { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 420 | export function pgAdminDesktopServerIdentityContent(): string { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 466 | export function pgAdminDesktopServerReconciliationContent(): string { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 576 | function pgAdminMetadataIndependentScriptPattern(paths: PgAdminPaths, windows: boolean): string { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 589 | export function pgAdminCommandOwnedWithoutPackageMetadata( | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 610 | export function pgAdminPortOwnedByProcessTree( | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 635 | export function pgAdminWindowsKillCommand(pids: readonly string[]): string { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 668 | export function pgAdminOwnedPidsWithoutPackageMetadata( | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 692 | export function validPgAdminRegistrationPort(port: number): boolean { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 696 | export function assertPgAdminRegistrationPort(port: number): void { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 726 | export function validPgAdminPythonVersion(version: string | null | undefined): boolean { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 752 | export function validatePgAdminPythonVersionInfo(info: PythonVersionInfo | null): boolean { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 761 | export function assertPgAdminPythonVersion(versionStr: string, source: string): void { | CODE |
| LOW | src/fork/module/Postgresql/pgAdmin.ts | 799 | function postgresqlProcessOwnsDataDirectory( | CODE |
| LOW | src/fork/module/Host/UnixHosts.ts | 83 | export function assertGenericUnixFileWrite(file: string): void { | CODE |
| LOW | src/fork/module/Tool.win/GitBashIntegration.ts | 54 | export async function installGitBashIntegration( | CODE |
| LOW | src/fork/module/Python/index.ts | 38 | export function renderWindowsPythonInstallScript( | CODE |
| LOW | src/fork/module/Python/index.ts | 49 | export function renderWindowsPipInstallScript( | CODE |
| LOW | src/fork/module/Python/index.ts | 56 | async function runWindowsPowerShellInline(script: string) { | CODE |
| LOW | src/fork/module/Redis/RedisCommander.ts | 133 | export function redisCommanderInstallManifest() { | CODE |
| LOW | src/fork/module/Redis/RedisCommander.ts | 218 | export function redisCommanderAutoLoginUrl( | CODE |
| LOW | src/fork/module/Redis/RedisCommander.ts | 229 | export function redisCommanderSsoEnvironment( | CODE |
| LOW | src/fork/module/Redis/RedisCommander.ts | 239 | export function redisCommanderCommandOwned( | CODE |
| LOW | src/fork/module/Rust/index.ts | 34 | export async function installRustWindowsArchive(zip: string, appDir: string) { | CODE |
| LOW | src/fork/module/Code/index.ts | 43 | function shellDoubleQuotedPathPrefix(paths: string[]): string { | CODE |
| LOW | src/fork/module/DotNet/version.ts | 3 | export function getDotNetVersionFromInfoOutput(output: string): string { | CODE |
| LOW | src/fork/module/DotNet/version.ts | 11 | export function getDotNetVersionFromOutput(output: string): string { | CODE |
| 92 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | plugins/dameng/tests/renderer.test.ts | 342 | harness.app.config.setup.dameng.dirs.push(null, 'c:/dm/owned/') | CODE |
| CRITICAL⚡ | plugins/dameng/tests/renderer.test.ts | 345 | harness.app.config.setup.dameng.dirs.filter((path: string) => /owned/i.test(path)).length, | CODE |
| CRITICAL⚡ | plugins/dameng/tests/renderer.test.ts | 351 | const removedRegistration = harness.app.config.setup.dameng.dirs.indexOf('/chosen/DM') | CODE |
| CRITICAL⚡ | plugins/dameng/tests/renderer.test.ts | 356 | harness.app.config.setup.dameng.dirs.splice(removedRegistration, 1) | CODE |
| CRITICAL | plugins/dameng/tests/renderer.test.ts | 383 | assert.equal(harness.app.config.setup.dameng.dirs.includes('/chosen/DM'), true) | CODE |
| CRITICAL | plugins/dameng/tests/renderer.test.ts | 399 | assert.equal(harness.app.config.setup.dameng.dirs.includes(hungRegistration.appDir), false) | CODE |
| CRITICAL | plugins/mariadb-cluster/render/startup/ClusterModule.ts | 48 | return this.owner.controller.catalog.clusters.find((group) => group.id === this.id) | CODE |
| CRITICAL | plugins/mysql-cluster/render/startup/ClusterModule.ts | 48 | return this.owner.controller.catalog.clusters.find((group) => group.id === this.id) | CODE |
| CRITICAL | src/shared/WindowsActionPipe.ts | 83 | return System.Threading.Tasks.Task.Factory.StartNew(delegate { | CODE |
| CRITICAL | src/shared/WindowsActionPipe.ts | 138 | System.Threading.Tasks.Task.Factory.StartNew(delegate { | CODE |
| CRITICAL | src/main/ui/SiteSucker/PageTask.ts | 30 | this.window.webContents.session.webRequest.onBeforeRequest((details, callback) => { | CODE |
| CRITICAL | src/main/ui/SiteSucker/PageTask.ts | 39 | this.window.webContents.session.webRequest.onHeadersReceived((details, callback) => { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | static/tmpl/cliproxyapi.yaml | 36 | - "your-api-key-1" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.yaml | 37 | - "your-api-key-2" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.yaml | 38 | - "your-api-key-3" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.yaml | 196 | - "your-api-key-1" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.yaml | 197 | - "your-api-key-2" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.yaml | 200 | - "your-api-key-3" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.zh.yaml | 36 | - "your-api-key-1" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.zh.yaml | 37 | - "your-api-key-2" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.zh.yaml | 38 | - "your-api-key-3" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.zh.yaml | 194 | - "your-api-key-1" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.zh.yaml | 195 | - "your-api-key-2" | CODE |
| HIGH⚡ | static/tmpl/cliproxyapi.zh.yaml | 198 | - "your-api-key-3" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/fork/module/N8N/index.ts | 367 | // ── User management methods (delegated to database.ts) ──────────────────── | COMMENT |
| MEDIUM | src/fork/module/N8N/index.ts | 455 | // ── Fixed / env-based candidates ───────────────────────────────────── | COMMENT |
| MEDIUM | src/fork/module/N8N/index.ts | 469 | // ── Filesystem search ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/fork/module/N8N/index.ts | 521 | // ── Deduplicate and return only paths with database.sqlite ──────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 283 | // ── Data directory ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 347 | // ── User list ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 370 | // ── Action dispatcher ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 380 | // ── Toggle disabled ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 395 | // ── Edit name ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 429 | // ── Change role ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 459 | // ── Reset password ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 495 | // ── Delete user ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 521 | // ── Add user ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 581 | // ── Change owner password ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/N8N/Users.vue | 611 | // ── Lifecycle ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/Flutter/General.vue | 461 | // ── SDK info ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/Flutter/General.vue | 476 | // ── Doctor snapshot ─────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/Flutter/General.vue | 480 | // ── Android / Env ───────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/Flutter/General.vue | 492 | // ── Commands ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/Flutter/General.vue | 501 | // ── Computed ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/Flutter/General.vue | 571 | // ── IPC helper ──────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/Flutter/General.vue | 580 | // ── Loaders ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/Flutter/General.vue | 626 | // ── Commands ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/render/components/Flutter/General.vue | 702 | // ── Init ────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | static/tmpl/cliproxyapi.yaml | 241 | # fork: true # when true, keep original and also add the alias as an extra model (default: fa | COMMENT |
| LOW | static/tmpl/macOS/meilisearch.toml | 1 | # This file shows the default configuration of Meilisearch. | COMMENT |
| LOW | static/tmpl/macOS/meilisearch.toml | 21 | # All gathered data is used solely for the purpose of improving Meilisearch, and can be deleted at any time. | COMMENT |
| LOW | static/tmpl/macOS/meilisearch.toml | 41 | COMMENT | |
| LOW | static/tmpl/macOS/meilisearch.toml | 61 | COMMENT | |
| LOW | static/tmpl/macOS/meilisearch.toml | 81 | # Prevents a Meilisearch instance from throwing an error when `import_snapshot` does not point to a valid snapshot file. | COMMENT |
| LOW | static/tmpl/macOS/meilisearch.toml | 101 | COMMENT | |
| LOW | static/tmpl/macOS/meilisearch.toml | 121 | COMMENT | |
| LOW | static/tmpl/All/qdrant-config.yaml | 1 | log_level: INFO | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 21 | # Where to store snapshots | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 61 | # Useful for setting up a dedicated backup node | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 81 | # The same value should be used on all nodes in a cluster. | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 101 | # The minimal number of vectors in a segment, required to perform segment optimization | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 121 | # If not set, will be automatically selected considering the number of available CPUs. | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 141 | # optimizers configs regardless of the config above and the options specified at collection creation. | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 161 | # When the maximum estimated amount of points that a condition satisfies is smaller than | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 201 | # More info: https://qdrant.tech/documentation/guides/quantization | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 221 | # Max HNSW value allowed in search parameters. | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 261 | COMMENT | |
| LOW | static/tmpl/All/qdrant-config.yaml | 281 | # (Either above or via an external service like nginx.) | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 321 | # to detect disconnected nodes earlier, but too frequent | COMMENT |
| LOW | static/tmpl/All/qdrant-config.yaml | 341 | COMMENT | |
| LOW | static/tmpl/Linux/meilisearch.toml | 1 | # This file shows the default configuration of Meilisearch. | COMMENT |
| LOW | static/tmpl/Linux/meilisearch.toml | 21 | # All gathered data is used solely for the purpose of improving Meilisearch, and can be deleted at any time. | COMMENT |
| LOW | static/tmpl/Linux/meilisearch.toml | 41 | COMMENT | |
| LOW | static/tmpl/Linux/meilisearch.toml | 61 | COMMENT | |
| LOW | static/tmpl/Linux/meilisearch.toml | 81 | # Prevents a Meilisearch instance from throwing an error when `import_snapshot` does not point to a valid snapshot file. | COMMENT |
| LOW | static/tmpl/Linux/meilisearch.toml | 101 | COMMENT | |
| LOW | static/tmpl/Linux/meilisearch.toml | 121 | COMMENT | |
| LOW | static/tmpl/Windows/meilisearch.toml | 1 | # This file shows the default configuration of Meilisearch. | COMMENT |
| LOW | static/tmpl/Windows/meilisearch.toml | 21 | # All gathered data is used solely for the purpose of improving Meilisearch, and can be deleted at any time. | COMMENT |
| LOW | static/tmpl/Windows/meilisearch.toml | 41 | COMMENT | |
| LOW | static/tmpl/Windows/meilisearch.toml | 61 | COMMENT | |
| LOW | static/tmpl/Windows/meilisearch.toml | 81 | # Prevents a Meilisearch instance from throwing an error when `import_snapshot` does not point to a valid snapshot file. | COMMENT |
| LOW | static/tmpl/Windows/meilisearch.toml | 101 | COMMENT | |
| LOW | static/tmpl/Windows/meilisearch.toml | 121 | COMMENT | |
| LOW | tmp/flutter-flow-check/flow_test_app/lib/main.dart | 61 | // This call to setState tells the Flutter framework that something has | COMMENT |
| LOW | tmp/flutter-flow-check/flow_test_app/lib/main.dart | 81 | // Colors.amber, perhaps?) and trigger a hot reload to see the AppBar | COMMENT |
| LOW | src/fork/module/Rnacos/index.ts | 61 | COMMENT | |
| LOW | src/fork/module/CliProxyAPI/index.ts | 61 | COMMENT | |
| LOW | src/render/components/AI/AIOllama.ts | 41 | // parameters: { | COMMENT |
| LOW | src/shared/Sudo-Raw.js | 161 | '"' | COMMENT |
| LOW | src/shared/Sudo-Raw.js | 501 | } | COMMENT |
| LOW | src/shared/Sudo-Raw.js | 541 | // Set code page to UTF-8: | COMMENT |
| LOW | src/shared/Sudo-Raw.js | 601 | // | COMMENT |
| LOW | src/shared/AppHelperCheck.ts | 21 | const Helper_Check_Timeout = 3000 | COMMENT |
| LOW | src/helper-go/darwin_acl.go | 1 | //go:build darwin && cgo | COMMENT |
| LOW | src/helper-go/main.go | 21 | "time" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AGENTS.md | 240 | ### Step 1: Define Module Type | COMMENT |
| LOW | AGENTS.md | 251 | ### Step 2: Create Fork Module | COMMENT |
| LOW | AGENTS.md | 277 | ### Step 3: Create Renderer Components | COMMENT |
| LOW | AGENTS.md | 285 | ### Step 4: Add Translations | COMMENT |
| LOW | docs/deepwiki/SYSTEM_PROMPT_FINAL.md | 65 | ### Step 1: 入口定位 + 功能域发现 (核心新增) | COMMENT |
| LOW⚡ | docs/deepwiki/SYSTEM_PROMPT_FINAL.md | 81 | ### Step 2: 核心类识别 | COMMENT |
| LOW⚡ | docs/deepwiki/SYSTEM_PROMPT_FINAL.md | 87 | ### Step 3: 调用链构建 | COMMENT |
| LOW⚡ | docs/deepwiki/SYSTEM_PROMPT_FINAL.md | 96 | ### Step 4: IPC 映射 | COMMENT |
| LOW⚡ | docs/deepwiki/SYSTEM_PROMPT_FINAL.md | 104 | ### Step 5: 平台差异比对 | COMMENT |
| LOW⚡ | docs/deepwiki/SYSTEM_PROMPT_FINAL.md | 114 | ### Step 6: 数据清洗点分析 | COMMENT |
| LOW | docs/deepwiki/gemini.md | 109 | ### Step 1: 扫描核心资产 | COMMENT |
| LOW | docs/deepwiki/gemini.md | 116 | ### Step 2: 追踪核心数据流 | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 19 | ### Step 1: 识别模块入口文件 | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 43 | ### Step 2: UI 层组件分析 | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 62 | ### Step 3: 功能域发现(必须最先完成) | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 84 | ### Step 4: IPC 通信映射 | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 102 | ### Step 5: 调用链还原(按功能域分组) | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 141 | ### Step 6: 平台差异代码提取 | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 156 | ### Step 7: 数据清洗点分析 | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 182 | ### Step 8: 按规范生成文档 | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 247 | ### Step 9: 自检清单(强制执行) | COMMENT |
| LOW | docs/deepwiki/TASK_MODULE_ANALYSIS.md | 285 | ### Step 10: 修正与完善 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/fork/module/Postgresql/pgAdmin.ts | 462 | print(json.dumps({'userId': str(user.id), 'serverId': str(server.id)})) | CODE |
| HIGH | src/main/core/AppHelper.ts | 189 | elif [ "$mode" = development ]; then | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/windows-version-build.yml | 78 | # 第 1 阶段:编译并生成 win-unpacked。portable 目标会先把 elevate.exe 放入 app 目录, | COMMENT |
| MEDIUM | .github/workflows/windows-version-build.yml | 144 | # 第 2 阶段:使用已签名 app 目录生成安装包。NSIS 禁止复制 elevate.exe, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/render/components/Tools/Encryption/store.ts | 6 | cypherInput: 'Lorem ipsum dolor sit amet', | CODE |
| LOW | src/render/components/Tools/Encryption/store.ts | 6 | cypherInput: 'Lorem ipsum dolor sit amet', | CODE |
| LOW | src/render/components/Tools/KeycodeInfo/index.vue | 86 | <el-input :model-value="value" readonly :placeholder="placeholder" class="mb-1"> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | static/sh/Linux/brew-install-en.sh | 55 | # Check if Homebrew is already installed (Linux version) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/shared/requestTimer/index.ts | 395 | // Example usage | COMMENT |