AI Slop Code RIsk Monitor

tconbeer/harlequin

The SQL IDE for Your Terminal. Now with hsql, your agent's favorite sql client.

24.6 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for tconbeer/harlequin, a Python project with 6,454 GitHub stars. SynthScan examined 72,219 lines of code across 242 source files, recording 1758 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 24.6 (Elevated 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.

24.6
Adjusted Signal
24.6
Raw Pattern Score
100%
Time Factor
2026-10-05
Last Push
6.5K
Stars
Python
Language
72.2K
Lines of Code
242
Files
1.8K
Pattern Hits
2026-10-12
Scan Date
0.20
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 58.4/100 · HIGH

Can maintainers explain intent, assumptions, and trade-offs? 1407 finding(s).

Hallucinated Dependency & Supply Chain Risk 22.7/100 · LOW

Are imports declared and package/API names verified? 281 finding(s).

Agent Over-Engineering Ratio 60.9/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 1442 finding(s).

PR Review Velocity Impact 75.0/100 · HIGH

Which changes need focused human review? 1758 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 48MEDIUM 2LOW 1708

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 1758 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.

Hyper-Verbose Identifiers1364 hits · 1207 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py263def app_all_adapters_small_db(CODE
LOWtests/conftest.py284def _create_sqlite_db_from_data_dir(data_dir: Path, db_path: Path) -> None:CODE
LOWtests/unit_tests/test_completers.py27def test_completer_fixed_first(iris_completer: WordCompleter) -> None:CODE
LOWtests/unit_tests/test_completers.py32def test_completer_fuzzy_match(iris_completer: WordCompleter) -> None:CODE
LOWtests/unit_tests/test_completers.py59def test_extend_catalog_merges_by_default(parent_item: CatalogItem) -> None:CODE
LOWtests/unit_tests/test_completers.py65def test_extend_catalog_defer_merge(parent_item: CatalogItem) -> None:CODE
LOW⚡tests/unit_tests/test_completers.py115def test_buffer_symbol_is_offered(word_completer: WordCompleter) -> None:CODE
LOW⚡tests/unit_tests/test_completers.py121def test_buffer_symbol_does_not_complete_to_itself(CODE
LOW⚡tests/unit_tests/test_completers.py130def test_buffer_symbol_is_not_duplicated(word_completer: WordCompleter) -> None:CODE
LOW⚡tests/unit_tests/test_completers.py135def test_catalog_item_in_buffer_ranks_first(word_completer: WordCompleter) -> None:CODE
LOW⚡tests/unit_tests/test_completers.py141def test_completion_whose_context_is_in_buffer_ranks_higher(CODE
LOWtests/unit_tests/test_completers.py152def test_member_completions_come_from_the_buffer(CODE
LOWtests/unit_tests/test_completers.py162def test_member_completions_from_the_buffer_are_not_duplicated(CODE
LOW⚡tests/unit_tests/test_completers.py173def test_buffer_symbols_survive_a_catalog_update(CODE
LOW⚡tests/unit_tests/test_completers.py181def test_numbers_do_not_complete(word_completer: WordCompleter) -> None:CODE
LOW⚡tests/unit_tests/test_completers.py188def test_unquoted_numeric_members_do_not_complete(CODE
LOWtests/unit_tests/test_completers.py200def test_fuzzy_matches_start_at_a_word_boundary(CODE
LOWtests/unit_tests/test_completers.py207def test_one_character_does_not_fuzzy_match(word_completer: WordCompleter) -> None:CODE
LOW⚡tests/unit_tests/test_editor_cache.py48def test_write_cache_round_trips(mock_user_cache_dir: Path, cache: Cache) -> None:CODE
LOW⚡tests/unit_tests/test_editor_cache.py53def test_write_cache_leaves_no_temp_file(CODE
LOW⚡tests/unit_tests/test_editor_cache.py63def test_a_failed_write_leaves_the_last_cache_alone(CODE
LOWtests/unit_tests/test_editor_cache.py78def test_write_cache_returns_false_when_the_cache_dir_is_unwritable(CODE
LOWtests/unit_tests/test_editor_cache.py86def test_write_recovery_does_not_touch_the_shared_cache(CODE
LOW⚡tests/unit_tests/test_editor_cache.py103def test_clear_recovery_when_there_is_nothing_to_clear(CODE
LOW⚡tests/unit_tests/test_editor_cache.py109def test_adopt_recovery_finds_nothing(mock_user_cache_dir: Path, cache: Cache) -> None:CODE
LOW⚡tests/unit_tests/test_editor_cache.py114def test_adopt_recovery_replays_a_crash_handlers_file(CODE
LOWtests/unit_tests/test_editor_cache.py126def test_adopt_recovery_replays_each_file_once(CODE
LOWtests/unit_tests/test_editor_cache.py136def test_adopt_recovery_consumes_a_file_it_cannot_unpickle(CODE
LOWtests/unit_tests/test_editor_cache.py150def test_adopt_recovery_leaves_a_live_sessions_file_alone(CODE
LOWtests/unit_tests/test_editor_cache.py160def test_adopt_recovery_takes_over_a_stale_file(CODE
LOWtests/unit_tests/test_editor_cache.py176def test_adopt_recovery_prefers_the_newest_crash(CODE
LOW⚡tests/unit_tests/test_config_wizard.py352 def test_a_fresh_profile_is_not_given_a_limit(CODE
LOW⚡tests/unit_tests/test_config_wizard.py362 def test_an_existing_limit_is_offered_and_kept(CODE
LOW⚡tests/unit_tests/test_config_wizard.py372 def test_blank_removes_an_existing_limit(CODE
LOWtests/unit_tests/test_config_wizard.py89 def test_choosing_no_default_removes_it_from_the_file(CODE
LOWtests/unit_tests/test_config_wizard.py110 def test_setting_a_default_writes_it(CODE
LOWtests/unit_tests/test_config_wizard.py138 def test_a_secret_is_written_to_the_file_and_not_to_the_screen(CODE
LOWtests/unit_tests/test_config_wizard.py165 def test_a_variable_the_file_reads_a_secret_from_is_written_back_unresolved(CODE
LOWtests/unit_tests/test_config_wizard.py206 def test_saying_yes_writes_the_key(CODE
LOWtests/unit_tests/test_config_wizard.py222 def test_a_profile_that_is_not_read_only_says_nothing(CODE
LOWtests/unit_tests/test_config_wizard.py239 def test_saying_no_turns_off_a_profile_that_was_read_only(CODE
LOWtests/unit_tests/test_config_wizard.py256 def test_the_question_is_not_put_to_an_adapter_that_cannot_answer_it(CODE
LOWtests/unit_tests/test_config_wizard.py295 def test_the_prompt_offers_what_the_profile_already_says(CODE
LOWtests/unit_tests/test_config_wizard.py309 def test_the_wizard_keeps_the_comments_in_a_profile_it_did_not_touch(CODE
LOWtests/unit_tests/test_config_wizard.py388 def test_a_typed_limit_is_written(CODE
LOWtests/unit_tests/test_config_wizard.py404 def test_minus_one_is_accepted_and_omitted(CODE
LOWtests/unit_tests/test_config_wizard.py421 def test_the_limit_prompt_offers_blank_and_says_so(CODE
LOWtests/unit_tests/test_config_wizard.py447 def test_a_blank_secret_option_is_not_written(CODE
LOWtests/unit_tests/test_config_wizard.py465 def test_a_blank_text_option_is_not_written(CODE
LOWtests/unit_tests/test_config_wizard.py484 def test_a_blank_list_option_is_not_written(CODE
LOWtests/unit_tests/test_config_wizard.py502 def test_blank_clears_an_existing_adapter_option(CODE
LOWtests/unit_tests/test_config_wizard.py519 def test_an_explicit_false_on_a_flag_is_written(CODE
LOWtests/unit_tests/test_config_wizard.py562 def test_saying_no_writes_no_ssh_keys(CODE
LOWtests/unit_tests/test_config_wizard.py579 def test_the_question_defaults_to_no(CODE
LOWtests/unit_tests/test_config_wizard.py596 def test_saying_yes_writes_the_tunnel(CODE
LOWtests/unit_tests/test_config_wizard.py620 def test_a_forward_the_ssh_config_supplies_is_left_out(CODE
LOWtests/unit_tests/test_config_wizard.py645 def test_several_forwards_are_written_as_a_list(CODE
LOWtests/unit_tests/test_config_wizard.py666 def test_an_existing_tunnel_is_offered_back(CODE
LOWtests/unit_tests/test_config_wizard.py693 def test_the_wizard_never_writes_the_key_a_config_file_may_not_answer(CODE
LOWtests/unit_tests/test_config_wizard.py714 def test_the_tunnel_is_asked_about_before_the_adapter_options(CODE
1304 more matches not shown…
Unused Imports252 hits · 242 pts
SeverityFileLineSnippetContext
LOWtests/tunnels.py3CODE
LOWtests/conftest.py1CODE
LOWtests/hsql_sessions.py7CODE
LOWtests/waiting.py8CODE
LOWtests/unit_tests/test_editor_cache.py1CODE
LOWtests/unit_tests/test_config_wizard.py1CODE
LOWtests/unit_tests/test_statements.py8CODE
LOWtests/unit_tests/conftest.py1CODE
LOWtests/unit_tests/test_redact.py9CODE
LOWtests/unit_tests/test_packaging.py14CODE
LOWtests/unit_tests/test_plugins.py1CODE
LOWtests/unit_tests/test_navigate.py13CODE
LOWtests/unit_tests/test_options.py9CODE
LOWtests/unit_tests/test_plugin.py15CODE
LOWtests/unit_tests/test_hsql_session.py10CODE
LOWtests/unit_tests/test_config_schema.py10CODE
LOWtests/unit_tests/test_import_hygiene.py9CODE
LOWtests/unit_tests/test_skill.py13CODE
LOWtests/unit_tests/test_cli_reference.py13CODE
LOWtests/unit_tests/test_ssh.py8CODE
LOWtests/unit_tests/test_external.py1CODE
LOWtests/unit_tests/test_s3_tree.py1CODE
LOWtests/unit_tests/test_crash.py1CODE
LOWtests/unit_tests/test_core_options.py4CODE
LOWtests/unit_tests/test_exception.py1CODE
LOWtests/unit_tests/test_config.py1CODE
LOWtests/unit_tests/test_publish_artifacts.py14CODE
LOWtests/unit_tests/test_hsql_serve.py13CODE
LOWtests/unit_tests/test_golden_formats.py17CODE
LOWtests/unit_tests/test_symbols.py1CODE
LOWtests/unit_tests/test_query.py1CODE
LOWtests/unit_tests/test_query_log.py8CODE
LOWtests/unit_tests/test_documented_flags.py17CODE
LOWtests/unit_tests/test_layout.py1CODE
LOWtests/unit_tests/test_history.py9CODE
LOWtests/unit_tests/test_hsql.py9CODE
LOWtests/unit_tests/test_hsql_equivalence.py16CODE
LOWtests/unit_tests/test_export.py1CODE
LOWtests/unit_tests/test_environment.py1CODE
LOWtests/unit_tests/test_windows_timezone.py1CODE
LOWtests/unit_tests/test_bindings.py9CODE
LOWtests/functional_tests/test_ssh_recovery.py8CODE
LOWtests/functional_tests/test_keys_app.py1CODE
LOWtests/functional_tests/test_results_viewer.py1CODE
LOWtests/functional_tests/test_keymap_vscode.py1CODE
LOWtests/functional_tests/test_run_query_bar.py1CODE
LOWtests/functional_tests/test_query_editor.py1CODE
LOWtests/functional_tests/test_crash.py9CODE
LOWtests/functional_tests/test_command_palette.py1CODE
LOWtests/functional_tests/test_history_screen.py1CODE
LOWtests/functional_tests/helpers.py3CODE
LOWtests/functional_tests/test_app.py1CODE
LOWtests/functional_tests/test_windows_timezone.py1CODE
LOWtests/functional_tests/test_keymap_from_config.py1CODE
LOWtests/adapter_tests/test_duckdb.py1CODE
LOWtests/adapter_tests/test_sqlite.py1CODE
LOWscripts/catalog_lag.py14CODE
LOWscripts/write_legacy_cache.py14CODE
LOWscripts/write_config_schema.py16CODE
LOWscripts/publish_artifacts.py23CODE
192 more matches not shown…
Cross-Language Confusion25 hits · 124 pts
SeverityFileLineSnippetContext
HIGH⚡tests/unit_tests/test_options.py73 """A key that does not apply is null, not a key that is missing.STRING
HIGHtests/unit_tests/test_golden_formats.py52 2, 'a value considerably wider than its column name', null, null, false,CODE
HIGHtests/unit_tests/test_golden_formats.py53 null, null, null, null, null, null, null, nullCODE
HIGH⚡tests/unit_tests/test_layout.py470 "select * from (values (1, null), (22, 'a value')) t(id, note)"CODE
HIGHtests/unit_tests/test_hsql.py1128 """A key nothing defines is null, not a key that is missing.STRING
HIGH⚡tests/unit_tests/test_export.py100 b'[\n\t{"a":1,"b":"x,y"},\n\t{"a":2,"b":null}\n]\n'CODE
HIGH⚡tests/unit_tests/test_export.py104 assert to_bytes(data, "jsonl") == b'{"a":1,"b":"x,y"}\n{"a":2,"b":null}\n'CODE
HIGHsrc/harlequin_sqlite/adapter.py53select m.name, m.type, null, nullCODE
HIGH⚡src/harlequin/query_log.py55 run_at text not null,STRING
HIGH⚡src/harlequin/query_log.py56 program text not null,STRING
HIGH⚡src/harlequin/query_log.py60 sql text not null,STRING
HIGH⚡src/harlequin/query_log.py61 status text not null,STRING
HIGHsrc/harlequin/query_log.py74 migrated_at text not null,STRING
HIGHsrc/harlequin/query.py11null, how a nested struct comes out) in two places, and the disagreement wouldSTRING
HIGHsrc/harlequin/layout.py167 """A value, rendered, styled if it is a null, and padded to `width`.STRING
HIGHsrc/harlequin/layout.py232 widths = _column_widths(headers, rows, self.null)CODE
HIGHsrc/harlequin/layout.py309 self.null = _escape(self.null)CODE
HIGHsrc/harlequin/layout.py319 for width in _column_widths(headers, rows, self.null)CODE
HIGHsrc/harlequin/layout.py365 rule_width = name_width + len(separator) + _widest(rows, self.null)CODE
HIGHsrc/harlequin/config_schema.py309 null, which TOML cannot write: the schema says the same thing by leaving theSTRING
HIGHsrc/harlequin/hsql/modes/config.py212 # TOML has no null, so a key with no value is a key the file cannotCOMMENT
HIGH⚡src/harlequin_duckdb/adapter.py58select d.database_name, null, null, null, null, nullCODE
HIGH⚡src/harlequin_duckdb/adapter.py64select s.catalog_name, s.schema_name, null, null, null, nullCODE
HIGH⚡src/harlequin_duckdb/adapter.py72select t.table_catalog, t.table_schema, t.table_name, t.table_type, null, nullCODE
HIGHsrc/harlequin_duckdb/adapter.py101null, so `all` is every level of the catalog rather than the two at the bottom.CODE
Empty Error Handlers13 hits · 65 pts
SeverityFileLineSnippetContext
HIGHsrc/harlequin/config.py248except OSError:CODE
HIGHsrc/harlequin/crash.py197except OSError:CODE
HIGHsrc/harlequin/cli.py333except HarlequinConfigError:CODE
HIGHsrc/harlequin/app_base.py121except BaseException:CODE
HIGHsrc/harlequin/app_base.py129except BaseException:CODE
HIGHsrc/harlequin/app.py1355except Exception:CODE
HIGHsrc/harlequin/app.py1347except OSError:CODE
HIGHsrc/harlequin/editor_cache.py132except OSError:CODE
HIGHsrc/harlequin/editor_cache.py105except OSError:CODE
HIGHsrc/harlequin/hsql/client.py293except (KeyboardInterrupt, UnsafeRuntimeDir, protocol.ProtocolError, OSError):CODE
HIGHsrc/harlequin/hsql/__init__.py89except BaseException:CODE
HIGHsrc/harlequin/components/text_modal.py97except pyperclip.PyperclipException:CODE
HIGHsrc/harlequin_duckdb/adapter.py141except duckdb.Error:CODE
Cross-File Repetition6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHsrc/harlequin/hsql/protocol.py0every annotation here is a string (pep 563), so `typing` stays off this path.STRING
HIGHsrc/harlequin/hsql/client.py0every annotation here is a string (pep 563), so `typing` stays off this path.STRING
HIGHsrc/harlequin/hsql/session.py0every annotation here is a string (pep 563), so `typing` stays off this path.STRING
HIGHsrc/harlequin/hsql/modes/config.py0the one `--format` a document mode answers to. `none` writes nothing.STRING
HIGHsrc/harlequin/hsql/modes/spec.py0the one `--format` a document mode answers to. `none` writes nothing.STRING
HIGHsrc/harlequin/hsql/modes/info.py0the one `--format` a document mode answers to. `none` writes nothing.STRING
Modern Structural Boilerplate24 hits · 24 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py77def set_locale_to_enUS() -> None:CODE
LOWtests/functional_tests/conftest.py177 def set_paste(x: str) -> None:CODE
LOWsrc/harlequin/keys_app.py396 def update_binding(new_binding: HarlequinKeyBinding | None) -> None:CODE
LOWsrc/harlequin/keys_app.py427 def update_keymap_name(self, message: ActiveKeymapFound) -> None:CODE
LOWsrc/harlequin/locale_manager.py6def set_locale(locale_config: str) -> None:CODE
LOWsrc/harlequin/catalog_cache.py24__all__ = [CODE
LOWsrc/harlequin/cache.py9__all__ = ["BufferState", "Cache"]CODE
LOWsrc/harlequin/__init__.py38__all__ = [CODE
LOW⚡src/harlequin/app.py1080 def update_transaction_button_label(self, message: TransactionModeChanged) -> None:CODE
LOWsrc/harlequin/app.py724 def update_limit_tooltip(self, message: Input.Changed) -> None:CODE
LOWsrc/harlequin/app.py1102 def update_editor_completers(self, message: CompletersReady) -> None:CODE
LOWsrc/harlequin/app.py1916 def update_completers(self, catalog: Catalog) -> None:CODE
LOWsrc/harlequin/app.py1957 def update_schema_data(self) -> None:CODE
LOWsrc/harlequin/autocomplete/__init__.py9__all__ = [CODE
LOWsrc/harlequin/autocomplete/completers.py76 def update_catalog(self, catalog: Catalog) -> None:CODE
LOWsrc/harlequin/autocomplete/completers.py93 def update_buffer_symbols(self, symbols: BufferSymbols) -> None:CODE
LOWsrc/harlequin/hsql/__init__.py22__all__ = ["main"]CODE
LOWsrc/harlequin/components/__init__.py12__all__ = [CODE
LOWsrc/harlequin/components/code_editor.py401 def update_completer_symbols(self, message: CodeEditor.SymbolsFound) -> None:CODE
LOWsrc/harlequin/components/run_query_bar.py106 def set_not_responsive(self) -> None:CODE
LOWsrc/harlequin/components/run_query_bar.py113 def set_responsive(self) -> None:CODE
LOW⚡src/harlequin/components/data_catalog/__init__.py235 def update_database_tree(self, catalog: Catalog) -> None:CODE
LOW⚡src/harlequin/components/data_catalog/__init__.py238 def update_file_tree(self) -> None:CODE
LOW⚡src/harlequin/components/data_catalog/__init__.py242 def update_s3_tree(self) -> None:CODE
Excessive Try-Catch Wrapping27 hits · 22 pts
SeverityFileLineSnippetContext
LOWtests/functional_tests/test_crash.py51 except Exception as caught:CODE
LOWsrc/harlequin/options.py252 except Exception as e:CODE
LOWsrc/harlequin/query.py167 except Exception as e: # noqa: BLE001CODE
LOWsrc/harlequin/query.py253 except Exception as e:CODE
LOWsrc/harlequin/windows_timezone.py133 except Exception as e:CODE
LOWsrc/harlequin/copy_widgets.py36 except Exception as e:CODE
LOWsrc/harlequin/bindings.py70 except Exception as e:CODE
LOWsrc/harlequin/app.py1341 except Exception:CODE
LOWsrc/harlequin/app.py1355 except Exception:CODE
LOWsrc/harlequin/app.py1388 except Exception:CODE
LOWsrc/harlequin/app.py1714 except Exception as e:CODE
LOWsrc/harlequin/app.py1939 except Exception:CODE
LOWsrc/harlequin/app.py2011 except Exception as e:CODE
LOWsrc/harlequin/app.py2037 except Exception as e:CODE
LOWsrc/harlequin/app.py2063 except Exception as e:CODE
LOWsrc/harlequin/app.py2085 except Exception as e:CODE
LOWsrc/harlequin/editor_cache.py155 except Exception:CODE
LOWsrc/harlequin/hsql/server.py863 except Exception as e: # noqa: BLE001 -- the server outlives a requestCODE
LOWsrc/harlequin/hsql/server.py886 except Exception: # noqa: BLE001 -- the server outlives a requestCODE
LOWsrc/harlequin/hsql/server.py941 except Exception as e: # noqa: BLE001 -- the server outlives a requestCODE
LOWsrc/harlequin/hsql/server.py1066 except Exception:CODE
LOWsrc/harlequin/hsql/__init__.py109 except Exception:CODE
LOWsrc/harlequin/hsql/cli.py1724 except Exception as e: # noqa: BLE001 -- adapters are third-party codeCODE
LOWsrc/harlequin/hsql/cli.py1775 except Exception as e: # noqa: BLE001 -- adapters are third-party codeCODE
LOWsrc/harlequin/hsql/cli.py2363 except Exception as e: # noqa: BLE001 -- adapters are third-party codeCODE
LOWsrc/harlequin/components/debug_info.py81 except Exception:CODE
LOWsrc/harlequin/components/debug_info.py85 except Exception:CODE
Deep Nesting24 hits · 22 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py284CODE
LOWtests/waiting.py184CODE
LOWtests/unit_tests/test_hsql_session.py386CODE
LOWtests/unit_tests/test_hsql_serve.py1062CODE
LOWtests/functional_tests/test_crash.py263CODE
LOWscripts/export_screenshots.py34CODE
LOWsrc/harlequin_sqlite/adapter.py361CODE
LOWsrc/harlequin_sqlite/adapter.py482CODE
LOWsrc/harlequin/layout.py260CODE
LOWsrc/harlequin/redact.py65CODE
LOWsrc/harlequin/app.py768CODE
LOWsrc/harlequin/app.py955CODE
LOWsrc/harlequin/app.py1112CODE
LOWsrc/harlequin/ssh.py371CODE
LOWsrc/harlequin/ssh.py843CODE
LOWsrc/harlequin/editor_cache.py161CODE
LOWsrc/harlequin/hsql/client.py265CODE
LOWsrc/harlequin/hsql/client.py312CODE
LOWsrc/harlequin/hsql/client.py338CODE
LOWsrc/harlequin/components/help_screen.py68CODE
LOWsrc/harlequin/components/debug_info.py262CODE
LOWsrc/harlequin/components/debug_info.py272CODE
LOWsrc/harlequin/components/data_catalog/s3_tree.py96CODE
LOWsrc/harlequin_duckdb/adapter.py481CODE
Docstring Block Structure4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHsrc/harlequin/adapter.py84 Executes query and returns a cursor (for a select stmt) or None. Raises HarlequinQueryError if the dataSTRING
HIGHsrc/harlequin/adapter.py119 Returns every catalog item whose label contains term, matched case-insensitively, without walking the cSTRING
HIGHsrc/harlequin/adapter.py157 Exports data returned by query to a file or directory at path, using options. Args: STRING
HIGHsrc/harlequin/adapter.py175 Parses text as one or more queries; returns text if parsing does not result in an error; otherwise retuSTRING
AI Slop Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml110 # parses the skill's frontmatter the way a harness loading it would. Not aCOMMENT
LOWsrc/harlequin/query_log.py542 # Never raise a TypeError, just use the reprCOMMENT
MEDIUMsrc/harlequin/hsql/diagnostics.py493 # sys.stderr is resolved on each call, not bound at import: a test harnessCOMMENT
AI Structural Patterns8 hits · 8 pts
SeverityFileLineSnippetContext
LOWsrc/harlequin_sqlite/adapter.py422CODE
LOWsrc/harlequin/options.py393CODE
LOWsrc/harlequin/export.py236CODE
LOWsrc/harlequin/cli.py252CODE
LOWsrc/harlequin/app.py310CODE
LOWsrc/harlequin/hsql/server.py297CODE
LOWsrc/harlequin/components/results_viewer.py37CODE
LOWsrc/harlequin_duckdb/adapter.py436CODE
Fake / Example Data4 hits · 5 pts
SeverityFileLineSnippetContext
LOW⚡tests/functional_tests/test_history_screen.py562 one_liner = "select '" + "lorem ipsum dolor sit amet " * 200 + "';"CODE
LOW⚡tests/functional_tests/test_history_screen.py562 one_liner = "select '" + "lorem ipsum dolor sit amet " * 200 + "';"CODE
LOWsrc/harlequin/options.py212 placeholder = self.placeholder or getattr(other, "placeholder", None)CODE
LOWsrc/harlequin/options.py450 placeholder = self.placeholder or getattr(other, "placeholder", None)CODE
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippetContext
LOWsrc/harlequin/hsql/diagnostics.py481 if message is not None:COMMENT
LOWsrc/harlequin/hsql/cli.py241 # `profile`, `config_path` and the mode flags are named rather than leftCOMMENT
LOWsrc/harlequin/hsql/cli.py541 # a typed -P, -a or CONN_STR names one database and narrows theCOMMENT
LOWsrc/harlequin/components/data_catalog/database_tree.py541 # scrolled or collapsed out of view before we got to it, soCOMMENT