25 MB lightweight cross-platform database client for 100+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 100+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP。
This report summarizes scanner evidence for t8y2/dbx, a Rust project with 28,358 GitHub stars. SynthScan examined 2,378,042 lines of code across 6593 source files, recording 7709 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 3.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? 7572 finding(s).
Are imports declared and package/API names verified? 55 finding(s).
Are wrappers, guards, and repeated structures necessary? 7044 finding(s).
Which changes need focused human review? 7709 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 7709 distinct pattern matches across 17 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 | agents/drivers/argo-go/bench/agent_compare.py | 578 | def summarize_process_metrics(samples: list[dict]) -> dict: | CODE |
| LOW | agents/drivers/hive-go/bench/agent_compare.py | 578 | def summarize_process_metrics(samples: list[dict]) -> dict: | CODE |
| LOW | agents/scripts/validate_windows_pe_dependencies.py | 104 | def forbidden_msvc_runtime_dlls(imports: list[str]) -> list[str]: | CODE |
| LOW | agents/scripts/build_driver_zips.py | 47 | def release_url_with_filename(url: str, filename: str) -> str: | CODE |
| LOW | agents/scripts/build_driver_zips.py | 258 | def remove_raw_driver_artifacts(release_dir: Path) -> list[Path]: | CODE |
| LOW | agents/scripts/validate_agents_test.py | 13 | def test_versions_must_match_included_agent_modules(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 35 | def test_versions_support_driver_modules_variable(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 51 | def test_versions_accept_crate_native_sqlite_worker(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 69 | def test_source_scan_rejects_old_execute_query_patterns(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 97 | def test_jdbc_architecture_requires_shared_base_for_new_agents(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 148 | def test_versions_include_native_only_modules(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 180 | def test_authoring_template_must_use_shared_foundation(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 209 | def test_jdbc_pool_coverage_requires_every_jdbc_module(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 222 | def test_jdbc_pool_coverage_rejects_non_jdbc_modules(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 235 | def test_manifest_validation_requires_registry_fields(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 274 | def test_manifest_validation_requires_main_class_source(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 312 | def test_manifest_validation_supports_drivers_directory(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 341 | def test_kotlin_residue_scan_rejects_kt_and_kts_files_outside_build_dirs(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 450 | def test_agent_jar_validation_requires_main_class_entry(self): | CODE |
| LOW | agents/scripts/validate_agents_test.py | 473 | def test_agent_jar_validation_supports_drivers_directory(self): | CODE |
| LOW | agents/scripts/validate_agents.py | 137 | def validate_no_kotlin_residue(root: Path) -> list[str]: | CODE |
| LOW | agents/scripts/validate_agents.py | 191 | def validate_jdbc_architecture(root: Path, modules: set[str]) -> list[str]: | CODE |
| LOW | agents/scripts/validate_agents.py | 213 | def validate_jdbc_pool_coverage(root: Path, modules: set[str]) -> list[str]: | CODE |
| LOW | agents/scripts/validate_agents.py | 232 | def validate_authoring_template(root: Path) -> list[str]: | CODE |
| LOW | agents/scripts/validate_agents.py | 257 | def validate_release_runtime_keys(root: Path) -> list[str]: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 42 | def test_lists_every_native_only_module(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 57 | def test_every_listed_module_has_a_version(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 64 | def test_versions_platform_limited_native_artifacts(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 83 | def test_builds_java_and_platform_specific_native_driver_tar_zstd_packages(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 362 | def test_versions_nebula_native_artifacts(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 376 | def test_versions_iotdb_native_artifacts(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 391 | def test_versions_hive_native_artifacts(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 406 | def test_versions_zookeeper_native_artifacts(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 421 | def test_versions_sqlite_worker_native_artifacts(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 440 | def test_full_offline_bundle_includes_supported_windows_artifacts(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 524 | def test_delta_patch_generated_and_registry_annotated(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 563 | def test_delta_skipped_when_ratio_exceeds_threshold(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 579 | def test_delta_skipped_for_unchanged_version(self) -> None: | CODE |
| LOW | agents/scripts/driver_release_packages_test.py | 592 | def test_cleanup_keeps_delta_files(self) -> None: | CODE |
| LOW⚡ | agents/scripts/validate_windows_pe_dependencies_test.py | 49 | def test_reads_imported_dll_names(self) -> None: | CODE |
| LOW⚡ | agents/scripts/validate_windows_pe_dependencies_test.py | 56 | def test_rejects_dynamic_visual_cpp_runtime(self) -> None: | CODE |
| LOW⚡ | agents/scripts/validate_windows_pe_dependencies_test.py | 66 | def test_rejects_non_pe_files(self) -> None: | CODE |
| LOW | docs/app/[lang]/drivers/DriversClient.tsx | 150 | async function refineBundlePlatformWithHints(): Promise<string | null> { | CODE |
| LOW | docs/components/DocsSidebarFooter.tsx | 62 | export function DocsSidebarLanguageButton() { | CODE |
| LOW | docs/lib/agentRegistrySource.ts | 18 | export async function fetchAgentDownloadCatalog(): Promise<AgentDownloadCatalog | null> { | CODE |
| LOW | docs/lib/agentRegistrySource.ts | 23 | export async function fetchAgentDownloadCatalogWithRegistry(): Promise<{ catalog: AgentDownloadCatalog; registry: AgentR | CODE |
| LOW | docs/lib/structuredData.ts | 79 | export function buildSoftwareApplicationStructuredData(lang: DocsLang, version: string) { | CODE |
| LOW | docs/lib/agentRegistry.ts | 77 | export function selectNativeAgentPlatform(options: ReadonlyArray<Pick<NativeAgentDisplayEntry, "platformKey">>, detected | CODE |
| LOW | docs/lib/agentRegistry.ts | 248 | export function buildAgentDownloadCatalogFromRegistry(registry: AgentRegistry): AgentDownloadCatalog { | CODE |
| LOW | docs/lib/agentRegistry.ts | 259 | export function buildAgentDownloadCatalog(assets: GitHubReleaseAsset[]): AgentDownloadCatalog { | CODE |
| LOW | docs/lib/agentRegistry.ts | 269 | export function buildJdbcPluginDownloadEntry(): JdbcPluginDownloadEntry { | CODE |
| LOW | docs/lib/agentRegistry.ts | 319 | function buildDriverEntriesFromRegistry(registry: AgentRegistry): DriverDisplayEntry[] { | CODE |
| LOW | docs/lib/agentRegistry.ts | 373 | export function buildOfflineBundleEntries(assets: GitHubReleaseAsset[]): OfflineBundleEntry[] { | CODE |
| LOW | docs/lib/issueSubmission.ts | 402 | async function getGitHubInstallationToken(config: GitHubIssueConfig): Promise<{ token: string; repository: string }> { | CODE |
| LOW | packages/mongo-shell/src/json.ts | 92 | function replaceMongoRegexLiterals(source: string): string | null { | CODE |
| LOW | packages/mongo-shell/src/json.ts | 136 | function isMongoRegexValuePosition(source: string, index: number): boolean { | CODE |
| LOW | packages/mongo-shell/src/json.ts | 196 | export function parseCollectionMethodTarget(source: string, method: string): { collection: string; methodCallIndex: numb | CODE |
| LOW | packages/mongo-shell/src/json.ts | 214 | export function findChainedMethodCallIndex(source: string, method: string): number { | CODE |
| LOW | packages/mongo-shell/src/json.ts | 306 | export function hasUnclosedMongoDelimiters(source: string): boolean { | CODE |
| LOW | packages/mongo-shell/src/json.ts | 503 | function replaceMongoEjsonDeserialize(source: string): string { | CODE |
| 6902 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 21 | # Windows bindings otherwise import COMBASE or WinRT APIs unavailable on Win7. | COMMENT |
| LOW | crates/dbx-mcp/tests/session_transactions_mysql.rs | 1 | //! Native MySQL 5.7 contention evidence for MCP fixed-session transactions. | COMMENT |
| LOW | crates/dbx-mcp/tests/plugin_tools_server.rs | 1 | //! End-to-end external plugin-tools test against a real `.dbxp` package: | COMMENT |
| LOW | crates/dbx-mcp/tests/live_batch.rs | 1 | //! Live regression for `dbx_execute_batch` transaction semantics against real | COMMENT |
| LOW | crates/dbx-mcp/src/products.rs | 1 | //! Product providers (design §5): MCP tools for non-SQL products, one | COMMENT |
| LOW | crates/dbx-mcp/src/session.rs | 81 | } | COMMENT |
| LOW | crates/dbx-mcp/src/backend.rs | 121 | } | COMMENT |
| LOW | crates/dbx-mcp/src/transport.rs | 1 | //! Compatibility shim for the `server/discover` probe used by agents that | COMMENT |
| LOW | crates/dbx-mcp/src/server.rs | 381 | #[schemars(description = "Optional routine signature for databases that overload routine names (e.g. Oracle)")] | COMMENT |
| LOW | crates/dbx-mcp/src/server.rs | 521 | pub struct SendMessageRequest { | COMMENT |
| LOW | crates/dbx-mcp/src/server.rs | 541 | #[schemars(extend("type" = "object"))] | COMMENT |
| LOW | crates/dbx-mcp/src/server.rs | 621 | /// Per-cell character window for every rendered statement. Flattened from | COMMENT |
| LOW | crates/dbx-mcp/src/server.rs | 701 | /// Field rows shown in a confirmation summary before it collapses the rest into | COMMENT |
| LOW | crates/dbx-mcp/src/http.rs | 61 | if let Some(cancellation) = cancellation { | COMMENT |
| LOW | crates/dbx-mcp/src/plugin_tools.rs | 1 | //! External exposure of plugin MCP tools on the `dbx` MCP server. | COMMENT |
| LOW | crates/dbx-mcp/src/approval.rs | 1 | //! Desktop confirmation for high-risk non-SQL MCP tool calls. | COMMENT |
| LOW | crates/dbx-platform/src/ssh_prompt.rs | 1 | //! Interactive SSH prompt bridge between the backend (russh handshake / | COMMENT |
| LOW | crates/dbx-platform/src/ssh_prompt.rs | 61 | pub host: String, | COMMENT |
| LOW | crates/dbx-platform/src/ssh_prompt.rs | 81 | #[serde(default)] | COMMENT |
| LOW | crates/dbx-platform/src/ssh_prompt.rs | 301 | /// see even when the connection ultimately fails (e.g. the key changed => a | COMMENT |
| LOW | crates/dbx-platform/src/nanosleep_stub.rs | 1 | /// 为 WinLibs MinGW-w64 (POSIX UCRT) 提供 nanosleep64 桩实现。 | COMMENT |
| LOW | crates/dbx-platform/src/download.rs | 181 | /// failures that kill a single-connection download: connect/send errors, | COMMENT |
| LOW | crates/dbx-platform/src/relaunch.rs | 1 | //! Relaunching the desktop app on macOS. | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai_cli_agent.rs | 1061 | /// cancellation, and a zero exit status. Both the CLI's own `end` marker and the | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai_cli_agent.rs | 1161 | } | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 61 | } | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 341 | #[serde(default)] | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 421 | pub models: Vec<AiModelListItem>, | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 441 | /// persist this field; it is attached to a runtime config clone. | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 541 | /// Tool calls made by the assistant (role="assistant"). Used to | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 641 | #[serde(default, skip_serializing_if = "Option::is_none")] | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 661 | #[serde(default, skip_serializing_if = "Option::is_none")] | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 681 | /// Immutable plugin data retained independently of sent and pending messages. | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 701 | pub schema: Option<String>, | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 821 | pub session_ids: Vec<String>, | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 881 | COMMENT | |
| LOW | crates/dbx-ai-provider/src/ai.rs | 921 | /// Temporary Agens compatibility workaround. Agens' OpenAI-compatible gateway | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 4281 | .await | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 9241 | assert_eq!(classify_error("AI request failed: model not found"), "modelNotFound"); | COMMENT |
| LOW | crates/dbx-ai-provider/src/ai.rs | 9721 | COMMENT | |
| LOW | crates/dbx-web/src/demo.rs | 1 | //! `DBX_DEMO_MODE` 守卫:面向公网演示部署封锁会改变服务器状态、或让服务器向 | COMMENT |
| LOW | crates/dbx-driver-support/src/ddl_scan.rs | 1 | //! Structural, quote-and-parenthesis-aware scanning helpers for | COMMENT |
| LOW | crates/dbx-driver-support/src/ssh_host_key.rs | 1 | //! Host-key verification for the SSH tunnel client. | COMMENT |
| LOW | crates/dbx-driver-support/src/ssh_host_key.rs | 21 | //! (the `check_server_key` handler) then performs an **explicit TOFU** flow: | COMMENT |
| LOW | crates/dbx-driver-support/src/file_validator.rs | 1 | use std::path::Path; | COMMENT |
| LOW | crates/dbx-driver-support/src/db.rs | 81 | /// | COMMENT |
| LOW | crates/dbx-driver-support/src/db.rs | 201 | } | COMMENT |
| LOW | crates/dbx-driver-support/src/ssh_config.rs | 81 | /// Fills an empty `key_path` when the connection is set up for key auth, using | COMMENT |
| LOW | crates/dbx-driver-support/src/ssh_config.rs | 281 | /// Accumulates `Host` entries while walking a config file and, in place, the | COMMENT |
| LOW | crates/dbx-sql-schema/src/table_structure_sql.rs | 141 | /// diverge: IRIS supports `%DESCRIPTION` while *defining* a table or column, | COMMENT |
| LOW | crates/dbx-sql-schema/src/schema_diff.rs | 321 | /// commonly coexist as separate rows with independently chosen targets — so | COMMENT |
| LOW | crates/dbx-sql-schema/src/schema_diff.rs | 341 | /// known-correct length with a possibly wrong one. | COMMENT |
| LOW | crates/dbx-sql-schema/src/schema_diff.rs | 3061 | /// literal. | COMMENT |
| LOW | crates/dbx-sql-schema/src/schema_diff.rs | 4481 | /// exist on the target connection. | COMMENT |
| LOW | crates/dbx-sql-schema/src/schema_diff.rs | 4741 | | DatabaseType::Vertica | COMMENT |
| LOW | crates/dbx-sql-schema/src/schema_diff.rs | 5001 | /// Drivers hand `column_default` back verbatim and they do not agree on its | COMMENT |
| LOW | crates/dbx-sql-schema/src/schema_diff.rs | 6261 | pub const MYSQL_DISABLE_FOREIGN_KEY_CHECKS: &str = "SET FOREIGN_KEY_CHECKS = 0;"; | COMMENT |
| LOW | crates/dbx-sql-schema/src/schema_diff.rs | 15421 | // column, DATE and NUMBER included (issue #8011 review round 2). | COMMENT |
| LOW | crates/dbx-sql-schema/src/db_admin_sql.rs | 241 | pub schema: Option<String>, | COMMENT |
| LOW | crates/dbx-sql-schema/src/table_structure_sql/types.rs | 41 | pub identity: Option<ColumnIdentity>, | COMMENT |
| 513 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/dbx-web/src/routes/connection.rs | 1338 | // ── Salesforce OAuth ────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-sql-schema/src/schema_diff.rs | 14314 | // ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/dbx-sql-schema/src/schema_diff.rs | 14316 | // ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/dbx-core/src/connection/connection_secrets.rs | 728 | // ── Salesforce OAuth 密钥持久化 ───────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-core/src/connection/connection_secrets.rs | 818 | // ── MQTT 密钥持久化 ────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-core/src/connection/connection_secrets.rs | 1653 | // ── MQTT 密钥持久化测试 ──────────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-core/src/ai/agent_tools.rs | 2988 | // ── SQL confirmation binding tests ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-core/src/ai/agent_tools.rs | 3146 | // ── get_current_time tests ──────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-core/src/skills/mod.rs | 336 | // ── Roots, name resolution and referencing files ────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-core/src/skills/mod.rs | 944 | // ── name resolution and referencing files (agent tools) ──────────────── | COMMENT |
| MEDIUM | crates/dbx-core/src/skills/mod.rs | 1168 | // ── Windows reparse-point equivalents ────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-drivers/src/db/turso_driver.rs | 155 | // ─── Public API ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-drivers/src/db/turso_driver.rs | 493 | // ─── Internal helpers ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-drivers/src/db/proxy_tunnel.rs | 705 | // ── HTTP CONNECT response parsing ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-drivers/src/db/proxy_tunnel.rs | 900 | // ── test_target parsing ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-drivers/src/db/proxy_tunnel.rs | 947 | // ── SOCKS5 CONNECT header parsing ───────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-drivers/src/db/proxy_tunnel.rs | 969 | // ── Existing tunnel lifecycle tests ──────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-drivers/src/db/proxy_tunnel.rs | 990 | // ── I/O-layer 1xx response handling ──────────────────────────────────── | COMMENT |
| MEDIUM | crates/dbx-driver-agent/src/agent_service.rs | 2799 | // ──────────── Offline import ──────────── | COMMENT |
| MEDIUM | crates/dbx-driver-agent/src/agent_service.rs | 4526 | // ──────────── Tests ──────────── | COMMENT |
| MEDIUM | …on/src/test/java/com/dbx/agent/EwkbWktDecoderTest.java | 23 | // ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/test/java/com/dbx/agent/EwkbWktDecoderTest.java | 26 | // ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …common/src/main/java/com/dbx/agent/EwkbWktDecoder.java | 286 | // ── EWKB parser ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …common/src/main/java/com/dbx/agent/EwkbWktDecoder.java | 487 | // ── WKT formatting ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …common/src/main/java/com/dbx/agent/EwkbWktDecoder.java | 608 | // ── helper structs ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .cargo/config.toml | 14 | # =================================================================================== | COMMENT |
| MEDIUM | …ps/desktop/src/components/config/DriverStoreDialog.vue | 85 | // ──────────── Driver store path ──────────── | COMMENT |
| MEDIUM | …ps/desktop/src/components/config/DriverStoreDialog.vue | 195 | // ──────────── Agent drivers ──────────── | COMMENT |
| MEDIUM | …ps/desktop/src/components/config/DriverStoreDialog.vue | 909 | // ──────────── JDBC drivers ──────────── | COMMENT |
| MEDIUM | …ps/desktop/src/components/config/DriverStoreDialog.vue | 1456 | // ──────────── Lifecycle ──────────── | COMMENT |
| MEDIUM | apps/desktop/src/components/layout/AppToolbar.vue | 191 | // ──────────── Right-side overflow detection ──────────── | COMMENT |
| MEDIUM | apps/desktop/src/components/layout/AppToolbar.vue | 437 | // ──────────── Resize observer ──────────── | COMMENT |
| MEDIUM | apps/desktop/src/components/layout/AppToolbar.vue | 457 | // ──────────── Left-side "More" items ──────────── | COMMENT |
| MEDIUM | apps/desktop/src/components/grid/LayerPreviewDialog.vue | 33 | // ── Effective SRID (detected default + manual override) ───────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/components/grid/LayerPreviewDialog.vue | 47 | // ── Resize / maximise ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/components/grid/LayerPreviewDialog.vue | 109 | // ── Leaflet ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/components/grid/LayerPreviewDialog.vue | 229 | // ── Label property ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/components/grid/LayerPreviewDialog.vue | 323 | // ── Map ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/lib/dataGrid/geometryPreview.ts | 345 | // ── GeoJSON conversion helpers ───────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/lib/diagram/explainPlan.ts | 664 | // ── DM (达梦) tabular explain parser ────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/lib/diagram/explainPlan.ts | 800 | // ── PostgreSQL JSON explain parser ──────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/lib/diagram/explainPlan.ts | 866 | // ── MySQL JSON explain parser ───────────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/lib/diagram/explainPlan.ts | 933 | // ── QuestDB explain parser ───────────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/lib/diagram/explainPlan.ts | 934 | // ── openGauss explain parser ──────────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/lib/diagram/explainPlan.ts | 990 | // ── Doris explain parser ──────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/desktop/src/lib/diagram/explainPlan.ts | 1013 | // ── Helpers ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …op/src/lib/__tests__/ai/aiWriteSqlConfirmation.spec.ts | 6 | // ── looksLikeWriteSqlProposal ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …op/src/lib/__tests__/ai/aiWriteSqlConfirmation.spec.ts | 107 | // ── shouldGrantWriteSqlOnShortAffirmative ────────────────────────────────── | COMMENT |
| MEDIUM | …op/src/lib/__tests__/ai/aiWriteSqlConfirmation.spec.ts | 214 | // ── negative — write keyword in earlier line, NOT the proposal line ───── | COMMENT |
| MEDIUM | …op/src/lib/__tests__/ai/aiWriteSqlConfirmation.spec.ts | 238 | // ── guard conditions ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …op/src/lib/__tests__/ai/aiWriteSqlConfirmation.spec.ts | 257 | // ── containsWriteSql regex ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …op/src/lib/__tests__/ai/aiWriteSqlConfirmation.spec.ts | 280 | // ── Button-confirmation flow (looksLikeActionProposal) ────────────────────── | COMMENT |
| MEDIUM | …op/src/lib/__tests__/ai/aiWriteSqlConfirmation.spec.ts | 302 | // ── executeAndExplain skill prompt ────────────────────────────────────────── | COMMENT |
| MEDIUM | …op/src/lib/__tests__/ai/aiWriteSqlConfirmation.spec.ts | 322 | // ── extractFirstSqlCodeBlock (SQL binding) ───────────────────────────────── | COMMENT |
| MEDIUM | …op/src/lib/__tests__/ai/aiWriteSqlConfirmation.spec.ts | 350 | // ── countSqlCodeBlocks ────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | crates/dbx-driver-agent/src/agent_driver.rs | 5159 | stderr_tail.push_line("\tat com.dbx.agent.hive.HiveAgent.connect(HiveAgent.kt:21)".to_string()); | CODE |
| CRITICAL | …jdbc/src/test/java/app/dbx/jdbc/DbxJdbcPluginTest.java | 252 | org.junit.jupiter.api.Assertions.assertThrows(SQLException.class, () -> reader.source(" Owner ", " Trigger " | STRING |
| CRITICAL | …st/java/com/dbx/agent/ignite3/Ignite3AgentUrlTest.java | 83 | org.apache.ignite.jdbc.IgniteJdbcDriver.class.getProtectionDomain().getCodeSource().getLocation().toURI() | CODE |
| CRITICAL | agents/drivers/cassandra-go/config_test.go | 146 | "com.datastax.oss.driver.internal.core.connection.ExponentialReconnectionPolicy((long)1,(long)8)", | CODE |
| CRITICAL | …/src/test/java/com/dbx/agent/kafka/KafkaAgentTest.java | 230 | offsets.completeExceptionally(new org.apache.kafka.common.errors.TimeoutException("o | CODE |
| CRITICAL | …/src/test/java/com/dbx/agent/kafka/KafkaAgentTest.java | 440 | Map.of(new TopicPartition("events", 1), new org.apache.kafka.clients.consumer.OffsetAndMetadata(42L)), | STRING |
| CRITICAL | …/src/test/java/com/dbx/agent/kafka/KafkaAgentTest.java | 889 | var error = org.junit.jupiter.api.Assertions.assertThrows(IllegalArgumentException.class, | STRING |
| CRITICAL | …/src/test/java/com/dbx/agent/kafka/KafkaAgentTest.java | 1000 | var error = org.junit.jupiter.api.Assertions.assertThrows(IllegalArgumentException.class, | STRING |
| CRITICAL | …/dbx/agent/oceanbaseoracle/OceanBaseLobValuesTest.java | 23 | @org.junit.jupiter.params.provider.ValueSource(strings = {"query", "page", "table"}) | CODE |
| CRITICAL | …/dbx/agent/oceanbaseoracle/PlDebugResultCacheTest.java | 16 | var normalized=PlDebugTemporalJson.normalize(new StringReader(source),cache.remaining(),System.nanoTime()+java.u | CODE |
| CRITICAL | agents/go-common/go-gssapi/krb5/krb5.go | 490 | gssInToken.aPReq.Ticket.DecryptedEncPart.CName.PrincipalNameString(), | CODE |
| CRITICAL | apps/desktop/src/components/admin/DatabaseJobAdmin.vue | 271 | const dispatchedRun = computed(() => !native.previousExecution.value && native.execution.value?.status.state === "runnin | CODE |
| CRITICAL | …transfer/__tests__/DataTransferDialog.packages.spec.ts | 295 | result.oraclePackages.input.source.objects.push({ | CODE |
| CRITICAL | apps/desktop/src/lib/database/oracleConstraints.ts | 807 | !!oldIndexName && (plan.change.target === null || plan.change.target?.kind !== "unique" || plan.change.target.defini | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | agents/drivers/cassandra-go/bench/agent_compare.py | 108 | except Exception: | CODE |
| HIGH | agents/drivers/argo-go/bench/agent_compare.py | 136 | except Exception: | CODE |
| HIGH | agents/drivers/argo-go/bench/agent_compare.py | 172 | except (OSError, subprocess.SubprocessError, ValueError): | CODE |
| HIGH | agents/drivers/argo-go/bench/agent_compare.py | 461 | except Exception: | CODE |
| HIGH | agents/drivers/hive-go/bench/agent_compare.py | 136 | except Exception: | CODE |
| HIGH | agents/drivers/hive-go/bench/agent_compare.py | 172 | except (OSError, subprocess.SubprocessError, ValueError): | CODE |
| HIGH | agents/drivers/hive-go/bench/agent_compare.py | 461 | except Exception: | CODE |
| HIGH | scripts/ai-proxy-12277/remote_mock.py | 27 | except (ValueError, UnicodeDecodeError): | CODE |
| HIGH | .github/scripts/ci-install-system-deps.test.py | 318 | except ProcessLookupError: | CODE |
| HIGH | .github/scripts/ci-gradle.test.py | 214 | except ProcessLookupError: | CODE |
| HIGH | .github/scripts/ci-gradle.py | 39 | except ProcessLookupError: | CODE |
| HIGH | .github/scripts/ci-install-system-deps.py | 124 | except ProcessLookupError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/dbx-mcp/src/server.rs | 13505 | name: "Jane Doe".to_string(), | CODE |
| LOW | crates/dbx-mcp/src/server.rs | 13723 | "Jane Doe", | CODE |
| LOW | crates/dbx-mcp/src/server.rs | 13976 | assert!(text.contains("Jane Doe"), "{text}"); | CODE |
| LOW | crates/dbx-core/src/data/csv_export.rs | 404 | "username": "user@example.com", | CODE |
| LOW | crates/dbx-drivers/src/db/salesforce_driver.rs | 1630 | assert!(!ropc_debug.contains("user@example.com"), "{ropc_debug}"); | CODE |
| LOW | crates/dbx-plugin-runtime/src/plugins/manifest.rs | 3697 | for key in ["default", "binding", "description", "placeholder"] { | CODE |
| LOW | plugins/README.md | 412 | "host": { "label": "主机", "placeholder": "请输入主机" }, | CODE |
| LOW | plugins/manifest.schema.json | 162 | "placeholder": { "type": "string" }, | CODE |
| LOW | plugins/manifest.schema.json | 258 | "placeholder": { "type": ["string", "null"] }, | CODE |
| LOW | agents/drivers/cassandra-go/kerberos_test.go | 39 | cachePath := writeTestFile(t, "alice.ccache", "placeholder") | CODE |
| LOW | agents/drivers/cassandra-go/kerberos_test.go | 40 | keytabPath := writeTestFile(t, "alice.keytab", "placeholder") | CODE |
| LOW | agents/drivers/cassandra-go/kerberos_test.go | 76 | cachePath := writeTestFile(t, "alice.ccache", "placeholder") | CODE |
| LOW | agents/go-common/gohive/dsn_test.go | 20 | if value.Username != "user@example.com" || value.Password != "p@ss:word" || value.Auth != "LDAP" || value.TransportMode | CODE |
| LOW | agents/go-common/gohive/http_auth_test.go | 31 | Username: "user@example.com", | CODE |
| LOW | packages/app-tests/insertValueHints.test.ts | 289 | " 'Acme Corp' as company_name,", | CODE |
| LOW | packages/app-tests/insertValueHints.test.ts | 306 | " 'Acme Corp' as company_name,", | CODE |
| LOW | …ests__/ConnectionDialog.salesforcePasswordMode.spec.ts | 215 | const username = [...document.querySelectorAll("input")].find((input) => input.getAttribute("placeholder") === "user | CODE |
| LOW | …ests__/ConnectionDialog.salesforcePasswordMode.spec.ts | 215 | const username = [...document.querySelectorAll("input")].find((input) => input.getAttribute("placeholder") === "user | CODE |
| LOW | …ection/__tests__/ConnectionDialog.sshLocalPort.spec.ts | 236 | expect(localPortInput()?.getAttribute("placeholder")).toBe("Auto"); | CODE |
| LOW | …on/__tests__/ConnectionDialog.h2UrlPlaceholder.spec.ts | 198 | return [...document.querySelectorAll("input")].find((input) => input.getAttribute("placeholder")?.includes("jdbc:h2:") | CODE |
| LOW⚡ | …on/__tests__/ConnectionDialog.h2UrlPlaceholder.spec.ts | 220 | expect(input?.getAttribute("placeholder")).toBe("jdbc:h2:file:/path/to/database"); | CODE |
| LOW⚡ | …on/__tests__/ConnectionDialog.h2UrlPlaceholder.spec.ts | 227 | expect(input?.getAttribute("placeholder")).toBe("jdbc:h2:tcp://host:9092/database"); | CODE |
| LOW⚡ | …on/__tests__/ConnectionDialog.h2UrlPlaceholder.spec.ts | 234 | expect(input?.getAttribute("placeholder")).toBe("jdbc:h2:file:/path/to/database"); | CODE |
| LOW | …ktop/src/components/redis/RedisPluginCodecView.spec.ts | 25 | SelectValue: defineComponent({ props: ["placeholder"], setup: (props) => () => props.placeholder }), | CODE |
| LOW | …/desktop/src/components/generate/params/TextParams.vue | 15 | "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna ali | CODE |
| LOW | …/desktop/src/components/generate/params/TextParams.vue | 15 | "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna ali | CODE |
| LOW | apps/desktop/src/components/mq/shared/MqSearchInput.vue | 14 | <input type="search" class="mq-search-input" :value="modelValue" :placeholder="placeholder" :disabled="disabled" @inpu | CODE |
| LOW | …rc/components/structure/StructureIndexColumnPicker.vue | 62 | <Button type="button" variant="outline" :class="[triggerClass, 'w-full min-w-0 justify-between gap-2']" :aria-labe | CODE |
| LOW | …rc/components/structure/StructureIndexColumnPicker.vue | 74 | :aria-label="placeholder" | CODE |
| LOW | …rc/components/structure/StructureIndexColumnPicker.vue | 102 | <div class="index-column-options min-h-0 overflow-y-auto overscroll-contain p-1" :aria-label="placeholder" role="g | CODE |
| LOW | …ents/grid/__tests__/DataGridGoToColumnShortcut.spec.ts | 425 | expect(document.activeElement?.getAttribute("placeholder")).toBe("Search column/comment..."); | CODE |
| LOW | …s/desktop/src/components/dolt/DoltRevisionSelector.vue | 143 | :placeholder="placeholder" | CODE |
| LOW | apps/desktop/src/lib/dataGrid/dataGenerate.ts | 1729 | "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna | CODE |
| LOW | apps/desktop/src/lib/dataGrid/dataGenerate.ts | 1729 | "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna | CODE |
| LOW | …desktop/src/lib/ai/__tests__/aiImportSelection.spec.ts | 10 | apiKey: "dummy-key", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | apps/desktop/src/lib/redis/redisCommandPreview.ts | 378 | " if not line: return None", | CODE |
| HIGH⚡ | apps/desktop/src/lib/redis/redisCommandPreview.ts | 386 | " if length == -1: return None", | CODE |
| HIGH⚡ | apps/desktop/src/lib/redis/redisCommandPreview.ts | 392 | " if count == -1: return None", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/dbx-core/src/schema/agent_metadata_fixture.py | 28 | CODE | |
| LOW | agents/drivers/argo-go/bench/agent_compare.py | 184 | CODE | |
| LOW | agents/drivers/hive-go/bench/agent_compare.py | 184 | CODE | |
| LOW | agents/scripts/build_driver_zips.py | 189 | CODE | |
| LOW | agents/scripts/validate_agents.py | 124 | CODE | |
| LOW | agents/scripts/validate_agents.py | 191 | CODE | |
| LOW | agents/scripts/driver_release_packages_test.py | 83 | CODE | |
| LOW | agents/scripts/validate_agent_jars.py | 24 | CODE | |
| LOW | scripts/ai-proxy-12277/remote_mock.py | 15 | CODE | |
| LOW | scripts/ai-proxy-12277/run_proof.py | 32 | CODE | |
| LOW | .github/scripts/ci-gradle-repositories.test.py | 28 | CODE | |
| LOW | .github/scripts/ci-install-system-deps.test.py | 206 | CODE | |
| LOW | .github/scripts/ci-gradle.test.py | 160 | CODE | |
| LOW | .github/scripts/ci-gradle.py | 122 | CODE | |
| LOW | .github/scripts/ci-install-system-deps.py | 162 | CODE | |
| LOW | .github/scripts/configure-docker-mirror.py | 16 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/dbx-core/tests/mongodb_column_metadata.rs | 86 | except Exception as error: | CODE |
| LOW | crates/dbx-core/src/data/transfer/iris_tests.rs | 201 | except Exception as error: | CODE |
| LOW | agents/drivers/cassandra-go/bench/agent_compare.py | 108 | except Exception: | CODE |
| LOW | agents/drivers/argo-go/bench/functional_probe.py | 83 | except Exception as error: | CODE |
| LOW | agents/drivers/argo-go/bench/functional_probe.py | 142 | except Exception as error: | CODE |
| LOW | agents/drivers/argo-go/bench/agent_compare.py | 136 | except Exception: | CODE |
| LOW | agents/drivers/argo-go/bench/agent_compare.py | 461 | except Exception: | CODE |
| LOW | agents/drivers/hive-go/bench/functional_probe.py | 83 | except Exception as error: | CODE |
| LOW | agents/drivers/hive-go/bench/functional_probe.py | 142 | except Exception as error: | CODE |
| LOW | agents/drivers/hive-go/bench/agent_compare.py | 136 | except Exception: | CODE |
| LOW | agents/drivers/hive-go/bench/agent_compare.py | 461 | except Exception: | CODE |
| LOW | agents/scripts/build_driver_zips.py | 116 | except Exception as error: # noqa: BLE001 - any fetch failure just skips the delta | CODE |
| LOW | .github/scripts/ci-install-system-deps.py | 206 | except Exception as error: | CODE |
| MEDIUM | .github/scripts/ci-install-system-deps.py | 121 | def dispose(process): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/dbx-driver-mongodb/src/mongo_driver.rs | 2708 | /// document (before or after the change, as requested) or nothing. | COMMENT |
| HIGH | apps/desktop/src/components/editor/AiAssistant.vue | 400 | // active tab, so AI-generated SQL could be written into, and executed on, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/desktop/src/components/objects/ObjectBrowser.vue | 5191 | // True when we are revalidating on top of visible rows (a stale-cache scaffold, or a | COMMENT |
| MEDIUM | apps/desktop/src/components/objects/ObjectBrowser.vue | 5222 | // No scaffold: first load in this scope, cache invalidated by a DDL mutation, | COMMENT |
| MEDIUM | apps/desktop/src/components/objects/ObjectBrowser.vue | 5245 | // banner rather than replacing the scaffold (or same-instance refresh) list. | COMMENT |
| MEDIUM | …sktop/src/lib/elasticsearch/elasticsearchCompletion.ts | 102 | // Value scaffold inserted after a completed key so the matching brackets come | COMMENT |
| MEDIUM | …sktop/src/lib/elasticsearch/elasticsearchCompletion.ts | 368 | // Only an object key without its own `:` yet may pull the value scaffold in; | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/cache-keepalive.yml | 34 | # Deep async export tests exceed the Rust test harness's default thread stack on Linux. | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 1020 | # Deep async export tests exceed the Rust test harness's default thread stack on Linux. | COMMENT |
| MEDIUM | …ps/desktop/src/components/plugins/PluginBottomDock.vue | 385 | // currently rendered pixel height, so the transition is seamless. The | COMMENT |
| MEDIUM | …ps/desktop/src/components/plugins/PluginBottomDock.vue | 400 | // transition stays seamless. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | apps/desktop/src/composables/useDataGridExport.ts | 2724 | // Step 1: table-data context — existing backend table export | COMMENT |
| LOW⚡ | apps/desktop/src/composables/useDataGridExport.ts | 2733 | // Step 2: query-result context — NEW backend streaming with background task | COMMENT |
| LOW | apps/desktop/src/composables/useDataGridExport.ts | 2745 | // Step 3: fallback — local export (Web and edge-case scenarios) | COMMENT |
| LOW⚡ | apps/desktop/src/lib/ai/aiProposalDetect.ts | 213 | // Step 1: last line must be an action proposal (ask + action + question mark). | COMMENT |
| LOW⚡ | apps/desktop/src/lib/ai/aiProposalDetect.ts | 223 | // Step 2: the full message must contain write/DDL SQL keywords somewhere | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | apps/desktop/src/composables/useDataGridExport.ts | 2724 | // Step 1: table-data context — existing backend table export | COMMENT |
| LOW⚡ | apps/desktop/src/composables/useDataGridExport.ts | 2733 | // Step 2: query-result context — NEW backend streaming with background task | COMMENT |
| LOW | apps/desktop/src/composables/useDataGridExport.ts | 2745 | // Step 3: fallback — local export (Web and edge-case scenarios) | COMMENT |
| LOW⚡ | apps/desktop/src/lib/ai/aiProposalDetect.ts | 213 | // Step 1: last line must be an action proposal (ask + action + question mark). | COMMENT |
| LOW⚡ | apps/desktop/src/lib/ai/aiProposalDetect.ts | 223 | // Step 2: the full message must contain write/DDL SQL keywords somewhere | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .github/scripts/ci-gradle-repositories.test.py | 63 | assert repository.url.toString() == '{expected_url}' | CODE |
| HIGH | .github/scripts/ci-gradle-repositories.test.py | 119 | assert repository.url.toString() == 'https://maven-central.storage-download.googleapis.com/maven2/' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/mq-quick-start.md | 129 | "value": "your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agents/scripts/build_driver_zips.py | 60 | def update_release_artifact(artifact: dict, output: Path) -> None: | CODE |