Build, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more.
This report presents the forensic synthetic code analysis of Kiln-AI/Kiln, a Python project with 5,037 GitHub stars. SynthScan v2.0 examined 520,432 lines of code across 2261 source files, recording 7622 pattern matches distributed across 25 syntactic categories. The overall adjusted score of 17.2 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 7622 distinct pattern matches across 25 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | conftest.py | 139 | def pytest_collection_modifyitems(config, items): | CODE |
| LOW | app/desktop/test_start_background_syncs.py | 40 | async def test_start_background_syncs_passes_oauth_token(tmp_path: Path): | CODE |
| LOW | app/desktop/test_start_background_syncs.py | 88 | async def test_start_background_syncs_passes_pat_token(tmp_path: Path): | CODE |
| LOW | app/desktop/test_dev_server.py | 107 | def test_launcher_does_not_import_the_app_tree(): | STRING |
| LOW | app/desktop/test_dev_server.py | 122 | def test_serves_the_app_from_the_dev_app_module(run_dev_server_main): | STRING |
| LOW⚡ | app/desktop/test_dev_server.py | 142 | def test_kiln_port_is_exported_for_reload_workers(run_dev_server_main): | STRING |
| LOW⚡ | app/desktop/test_dev_server.py | 151 | def test_no_kiln_port_leaves_the_configured_port_alone(run_dev_server_main): | STRING |
| LOW⚡ | app/desktop/test_dev_server.py | 160 | def test_launcher_sets_the_dev_env_vars(run_dev_server_main): | STRING |
| LOW⚡ | app/desktop/test_dev_server.py | 169 | def test_dev_app_sets_dev_env_vars_before_importing_the_app(env_when_app_built): | STRING |
| LOW⚡ | app/desktop/test_dev_server.py | 178 | def test_set_dev_env_vars_keeps_an_explicit_skip_remote_model_list(): | STRING |
| LOW⚡ | app/desktop/test_dev_server.py | 188 | def test_set_dev_env_vars_overrides_the_dev_mode_flags(env_var): | STRING |
| LOW | app/desktop/test_desktop.py | 103 | def test_quit_app_with_tray_and_root(self, mock_tk_root, mock_kiln_tray): | CODE |
| LOW | app/desktop/test_desktop.py | 133 | def test_on_quit_without_root(self, mock_tk_root): | CODE |
| LOW | app/desktop/test_desktop.py | 152 | def test_resource_path_with_meipass(self, mock_tk_root): | CODE |
| LOW | app/desktop/test_desktop.py | 162 | def test_resource_path_without_meipass(self, mock_tk_root): | CODE |
| LOW | app/desktop/test_desktop.py | 200 | def test_run_tray_already_exists(self, mock_tk_root, mock_kiln_tray): | CODE |
| LOW | app/desktop/test_desktop.py | 212 | def test_run_tray_windows_default( | CODE |
| LOW | app/desktop/test_desktop.py | 226 | def test_run_tray_macos_no_default( | CODE |
| LOW | app/desktop/test_desktop.py | 239 | def test_close_splash_with_pyi_splash(self, mock_tk_root): | CODE |
| LOW | app/desktop/test_desktop.py | 249 | def test_close_splash_without_pyi_splash(self, mock_tk_root): | CODE |
| LOW | app/desktop/test_desktop.py | 270 | def test_run_in_thread_calls_app_on_quit(self, mock_tk_root): | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 190 | async def _get_data_guide_job_status(client: AuthenticatedClient, job_id: str) -> str: | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 245 | async def _get_data_guide_job_result(client: AuthenticatedClient, job_id: str) -> str: | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 374 | def _validate_structured_examples(input_json_schema: str, examples: list[str]) -> None: | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 143 | def test_validate_input_transform_template_valid(client): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 154 | def test_validate_input_transform_template_invalid(client): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 167 | def test_validate_input_transform_template_empty(client): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 178 | def test_validate_mcp_input_schema_plaintext_success(mock_task): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 203 | def test_validate_mcp_input_schema_plaintext_fails(mock_task, tool_schema, error_match): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 209 | def test_validate_mcp_input_schema_structured_success(mock_task): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 221 | def test_validate_mcp_input_schema_structured_fails(mock_task): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 230 | def test_validate_mcp_output_schema_success(mock_task): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 258 | def test_validate_mcp_output_schema_fails(mock_task): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 267 | def test_load_mcp_tool_success(mock_task): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 285 | def test_load_mcp_tool_fails_not_mcp_tool_id(mock_task): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 297 | def test_load_mcp_tool_fails_wrong_type(mock_task): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 314 | async def test_load_mcp_input_schema_success(): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 325 | async def test_load_mcp_input_schema_fails(): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 338 | async def test_load_mcp_output_schema_success(): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 352 | async def test_load_mcp_output_schema_fails(): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 360 | def test_create_task_from_tool_plaintext(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 417 | def test_create_task_from_tool_structured(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 483 | def test_create_task_from_tool_sanitizes_names(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 549 | def test_create_task_from_tool_invalid_tool(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 580 | def test_create_mcp_run_config_success(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 634 | def test_create_mcp_run_config_plaintext_success(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 699 | def test_create_mcp_run_config_input_schema_mismatch(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 757 | def test_tasks_compatible_with_tool_mixed_results(client, project_and_tasks): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 812 | def test_tasks_compatible_with_tool_invalid_tool(client, project_and_tasks): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 832 | def test_tasks_compatible_with_tool_empty_project(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 936 | def test_schemas_compatible_true(task_schema, tool_schema, description): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 977 | def test_schemas_compatible_false(task_schema, tool_schema, description): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 981 | def test_resolve_mcp_tool_from_id_success(): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 1006 | def test_resolve_mcp_tool_from_id_not_mcp(): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 1014 | def test_create_mcp_run_config_properties(): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 1038 | def test_create_mcp_run_config_properties_no_output_schema(): | CODE |
| LOW | app/desktop/studio_server/test_repair_api.py | 100 | def mock_repair_task_run_human_edited(improvement_task, data_source): | CODE |
| LOW | app/desktop/studio_server/test_repair_api.py | 192 | def test_repair_run_missing_model_info( | CODE |
| LOW | app/desktop/studio_server/test_repair_api.py | 215 | def test_repair_run_human_source( | CODE |
| LOW | app/desktop/studio_server/test_repair_api.py | 268 | async def mock_acompletion_checking_response(self, **kwargs): | CODE |
| 5518 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | checks.sh | 40 | # ── Parallel check runner ──────────────────────────────────────────── | COMMENT |
| MEDIUM | checks.sh | 135 | # ── Kick off all checks ────────────────────────────────────────────── | COMMENT |
| MEDIUM | checks.sh | 171 | # ── Wait and summarize ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 71 | # ── Containers only ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 117 | # ── Locate the checkout ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 157 | # ── Was this machine provisioned by setup_env.sh? ───────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 184 | # ── Hard dependencies ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 215 | # ── Agent configuration ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 238 | # ── Pin the Python version ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 263 | # ── Seed node_modules from the VM's warm tree ───────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 400 | # ── Sync this branch ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 463 | # ── Verify what the environment setup was supposed to provide ───────────────── | COMMENT |
| MEDIUM | .config/utils/setup_startup.sh | 501 | # ── Playwright ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 31 | # ── CONFIGURATION ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 43 | # ────────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 73 | # ── Project root discovery ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 186 | # ── uv version ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 259 | # ── Python ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 269 | # ── Warm this machine's caches ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 382 | # ── Run setup_startup.sh from a Claude Code SessionStart hook ───────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 612 | # ── Playwright ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 856 | # ── Everything below here needs a checkout ──────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 900 | # ── Dependencies ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 936 | # ── Agent configuration ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 956 | # ── Optional workspace tooling ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | app/desktop/git_sync/integration_tests/conftest.py | 226 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | app/desktop/git_sync/integration_tests/conftest.py | 228 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 47 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 49 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 67 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 69 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 271 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 273 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 389 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 391 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 406 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 408 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 451 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | app/desktop/git_sync/integration_tests/conftest.py | 453 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 128 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 198 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 200 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 276 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 278 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 326 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 328 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 391 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 393 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 507 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 509 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ktop/git_sync/integration_tests/test_crash_recovery.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ktop/git_sync/integration_tests/test_crash_recovery.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ktop/git_sync/integration_tests/test_crash_recovery.py | 463 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ktop/git_sync/integration_tests/test_crash_recovery.py | 465 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | app/desktop/git_sync/integration_tests/test_fixtures.py | 107 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | app/desktop/git_sync/integration_tests/test_fixtures.py | 109 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | app/desktop/git_sync/integration_tests/test_fixtures.py | 166 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | app/desktop/git_sync/integration_tests/test_fixtures.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | app/desktop/git_sync/integration_tests/test_fixtures.py | 230 | # --------------------------------------------------------------------------- | COMMENT |
| 234 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/desktop/linux_installer.sh | 190 | # Create the desktop entry file | COMMENT |
| MEDIUM | …ktop/studio_server/test_prompt_optimization_job_api.py | 2611 | # Create a target run config | COMMENT |
| MEDIUM | …ktop/studio_server/test_prompt_optimization_job_api.py | 2886 | # Create a prompt | COMMENT |
| MEDIUM | …ktop/studio_server/test_prompt_optimization_job_api.py | 2925 | # Create a run config | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3647 | # Create an MCP tool server to trigger the RAG set inclusion | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3713 | # Create a RAG config | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4295 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4304 | # Create a run config with ID "default" for the task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4381 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4390 | # Create a run config with ID "default" for the task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4431 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4440 | # Create a run config with ID "default" for the task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4553 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4562 | # Create a run config with ID "default" for the task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4620 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4629 | # Create a run config for the task | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 387 | # Create the tool with empty tools | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 443 | # Create the tool with successful validation | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 583 | # Create the tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 723 | # Create a mapping of server URLs to their tools | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 815 | # Create a tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 829 | # Create the tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1299 | # Create a mock ExternalToolServer | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1332 | # Create a mock ExternalToolServer | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1354 | # Create a mock ExternalToolServer | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1376 | # Create a mock ExternalToolServer | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1400 | # Create a mock ExternalToolServer with kiln_task type | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1665 | # Create a tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1803 | # Create the tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1927 | # Create a tool server with secret headers | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1947 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2032 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2077 | # Create a tool server first | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2093 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2137 | # Create a tool server with secret headers | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2157 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2600 | # Create a local MCP tool server with secret env vars | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2621 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2668 | # Create a local MCP tool server without secret env vars | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2685 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2728 | # Create a local MCP tool server with secret env vars | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2749 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2790 | # Create a local MCP tool server first | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2807 | # Create the local tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2866 | # Create the tool with successful validation | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2942 | # Create the tool with successful validation | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3013 | # Create the tool with successful validation | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3095 | # Create the local MCP tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3170 | # Create a test task | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3188 | # Create a Kiln task tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3322 | # Create the local MCP tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3420 | # Create the local MCP tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3661 | # Create the MCP server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3727 | # Create an MCP tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3741 | # Create the MCP server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3987 | # Create a mock KilnTaskTool | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 4019 | # Create a mock KilnTaskTool with minimal fields | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 4104 | # Create a non-kiln task server to ensure it's filtered out | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 4159 | # Create a non-kiln task server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 4192 | # Create a valid task first | COMMENT |
| 210 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …_client/api/chat/list_sessions_v1_chat_sessions_get.py | 132 | List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. Rais | STRING |
| HIGH | …_client/api/chat/list_sessions_v1_chat_sessions_get.py | 173 | List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. Rais | STRING |
| HIGH | …_client/api/chat/list_sessions_v1_chat_sessions_get.py | 208 | List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. Rais | STRING |
| HIGH | …_client/api/chat/list_sessions_v1_chat_sessions_get.py | 247 | List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. Rais | STRING |
| HIGH | …t/delete_session_v1_chat_sessions_session_id_delete.py | 124 | Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns | STRING |
| HIGH | …t/delete_session_v1_chat_sessions_session_id_delete.py | 162 | Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns | STRING |
| HIGH | …t/delete_session_v1_chat_sessions_session_id_delete.py | 194 | Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns | STRING |
| HIGH | …t/delete_session_v1_chat_sessions_session_id_delete.py | 230 | Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns | STRING |
| HIGH | …pi/chat/get_session_v1_chat_sessions_session_id_get.py | 126 | Get Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns an | STRING |
| HIGH | …pi/chat/get_session_v1_chat_sessions_session_id_get.py | 164 | Get Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns an | STRING |
| HIGH | …pi/chat/get_session_v1_chat_sessions_session_id_get.py | 196 | Get Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns an | STRING |
| HIGH | …pi/chat/get_session_v1_chat_sessions_session_id_get.py | 232 | Get Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns an | STRING |
| HIGH | …_ai_server_client/api/chat/handle_chat_v1_chat_post.py | 121 | Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns a | STRING |
| HIGH | …_ai_server_client/api/chat/handle_chat_v1_chat_post.py | 159 | Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns a | STRING |
| HIGH | …_ai_server_client/api/chat/handle_chat_v1_chat_post.py | 191 | Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns a | STRING |
| HIGH | …_ai_server_client/api/chat/handle_chat_v1_chat_post.py | 227 | Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns a | STRING |
| HIGH | …i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py | 74 | Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.Unex | STRING |
| HIGH | …i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py | 105 | Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.Unex | STRING |
| HIGH | …i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py | 131 | Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.Unex | STRING |
| HIGH | …i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py | 160 | Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.Unex | STRING |
| HIGH | …copilot/question_spec_v1_copilot_question_spec_post.py | 74 | Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput) | STRING |
| HIGH | …copilot/question_spec_v1_copilot_question_spec_post.py | 105 | Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput) | STRING |
| HIGH | …copilot/question_spec_v1_copilot_question_spec_post.py | 131 | Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput) | STRING |
| HIGH | …copilot/question_spec_v1_copilot_question_spec_post.py | 160 | Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput) | STRING |
| HIGH | …th_answers_v1_copilot_refine_spec_with_answers_post.py | 74 | Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): Requ | STRING |
| HIGH | …th_answers_v1_copilot_refine_spec_with_answers_post.py | 105 | Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): Requ | STRING |
| HIGH | …th_answers_v1_copilot_refine_spec_with_answers_post.py | 131 | Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): Requ | STRING |
| HIGH | …th_answers_v1_copilot_refine_spec_with_answers_post.py | 160 | Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): Requ | STRING |
| HIGH | …pilot/generate_batch_v1_copilot_generate_batch_post.py | 74 | Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation | STRING |
| HIGH | …pilot/generate_batch_v1_copilot_generate_batch_post.py | 106 | Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation | STRING |
| HIGH | …pilot/generate_batch_v1_copilot_generate_batch_post.py | 133 | Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation | STRING |
| HIGH | …pilot/generate_batch_v1_copilot_generate_batch_post.py | 163 | Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation | STRING |
| HIGH | …t/api/copilot/batch_plan_v1_copilot_batch_plan_post.py | 74 | Batch Plan Plan a synthetic batch: turn batch guidance + count into one tailored generation prompt per input, | STRING |
| HIGH | …t/api/copilot/batch_plan_v1_copilot_batch_plan_post.py | 106 | Batch Plan Plan a synthetic batch: turn batch guidance + count into one tailored generation prompt per input, | STRING |
| HIGH | …t/api/copilot/batch_plan_v1_copilot_batch_plan_post.py | 133 | Batch Plan Plan a synthetic batch: turn batch guidance + count into one tailored generation prompt per input, | STRING |
| HIGH | …t/api/copilot/batch_plan_v1_copilot_batch_plan_post.py | 163 | Batch Plan Plan a synthetic batch: turn batch guidance + count into one tailored generation prompt per input, | STRING |
| HIGH | …t_data_guide_v1_copilot_draft_input_data_guide_post.py | 74 | Draft Input Data Guide Draft an input data guide from a heterogeneous list of input examples (manual entries, | STRING |
| HIGH | …t_data_guide_v1_copilot_draft_input_data_guide_post.py | 108 | Draft Input Data Guide Draft an input data guide from a heterogeneous list of input examples (manual entries, | STRING |
| HIGH | …t_data_guide_v1_copilot_draft_input_data_guide_post.py | 137 | Draft Input Data Guide Draft an input data guide from a heterogeneous list of input examples (manual entries, | STRING |
| HIGH | …t_data_guide_v1_copilot_draft_input_data_guide_post.py | 169 | Draft Input Data Guide Draft an input data guide from a heterogeneous list of input examples (manual entries, | STRING |
| HIGH | …api/copilot/refine_spec_v1_copilot_refine_spec_post.py | 74 | Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.Unexpec | STRING |
| HIGH | …api/copilot/refine_spec_v1_copilot_refine_spec_post.py | 105 | Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.Unexpec | STRING |
| HIGH | …api/copilot/refine_spec_v1_copilot_refine_spec_post.py | 131 | Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.Unexpec | STRING |
| HIGH | …api/copilot/refine_spec_v1_copilot_refine_spec_post.py | 160 | Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.Unexpec | STRING |
| HIGH | …i/auth/check_entitlements_v1_check_entitlements_get.py | 91 | Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code( | STRING |
| HIGH | …i/auth/check_entitlements_v1_check_entitlements_get.py | 129 | Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code( | STRING |
| HIGH | …i/auth/check_entitlements_v1_check_entitlements_get.py | 161 | Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code( | STRING |
| HIGH | …i/auth/check_entitlements_v1_check_entitlements_get.py | 197 | Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code( | STRING |
| HIGH | …job_result_v1_jobs_data_guide_job_job_id_result_get.py | 69 | Get Data Guide Job Result Get the result of a data guide job. Returns: The job result including the d | STRING |
| HIGH | …job_result_v1_jobs_data_guide_job_job_id_result_get.py | 106 | Get Data Guide Job Result Get the result of a data guide job. Returns: The job result including the d | STRING |
| HIGH | …job_result_v1_jobs_data_guide_job_job_id_result_get.py | 138 | Get Data Guide Job Result Get the result of a data guide job. Returns: The job result including the d | STRING |
| HIGH | …job_result_v1_jobs_data_guide_job_job_id_result_get.py | 173 | Get Data Guide Job Result Get the result of a data guide job. Returns: The job result including the d | STRING |
| HIGH | …t_v1_jobs_prompt_optimization_job_job_id_result_get.py | 69 | Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If the | STRING |
| HIGH | …t_v1_jobs_prompt_optimization_job_job_id_result_get.py | 98 | Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If the | STRING |
| HIGH | …t_v1_jobs_prompt_optimization_job_job_id_result_get.py | 122 | Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If the | STRING |
| HIGH | …t_v1_jobs_prompt_optimization_job_job_id_result_get.py | 149 | Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If the | STRING |
| HIGH | …rt_data_guide_job_v1_jobs_data_guide_job_start_post.py | 74 | Start Data Guide Job Start a new data guide job. Accepts the same request body as the synchronous `/copil | STRING |
| HIGH | …rt_data_guide_job_v1_jobs_data_guide_job_start_post.py | 113 | Start Data Guide Job Start a new data guide job. Accepts the same request body as the synchronous `/copil | STRING |
| HIGH | …rt_data_guide_job_v1_jobs_data_guide_job_start_post.py | 147 | Start Data Guide Job Start a new data guide job. Accepts the same request body as the synchronous `/copil | STRING |
| HIGH | …rt_data_guide_job_v1_jobs_data_guide_job_start_post.py | 184 | Start Data Guide Job Start a new data guide job. Accepts the same request body as the synchronous `/copil | STRING |
| 38 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/desktop/desktop.py | 19 | CODE | |
| LOW | …io_server/api_client/kiln_ai_server_client/__init__.py | 3 | CODE | |
| LOW | …io_server/api_client/kiln_ai_server_client/__init__.py | 3 | CODE | |
| LOW | …ion_v1_chat_sessions_session_id_delete_response_426.py | 1 | CODE | |
| LOW | …client/models/handle_chat_v1_chat_post_response_500.py | 1 | CODE | |
| LOW | …_ai_server_client/models/examples_for_feedback_item.py | 1 | CODE | |
| LOW | …ient/models/mcp_tool_reference_output_schema_type_0.py | 1 | CODE | |
| LOW | …r/api_client/kiln_ai_server_client/models/task_info.py | 1 | CODE | |
| LOW | …t/kiln_ai_server_client/models/question_with_answer.py | 1 | CODE | |
| LOW | …lient/kiln_ai_server_client/models/tools_run_config.py | 1 | CODE | |
| LOW | …api_client/kiln_ai_server_client/models/data_source.py | 1 | CODE | |
| LOW | …server_client/models/data_guide_job_result_response.py | 1 | CODE | |
| LOW | …ient/models/chat_completion_developer_message_param.py | 1 | CODE | |
| LOW | …er_client/models/chat_completion_user_message_param.py | 1 | CODE | |
| LOW | …kiln_ai_server_client/models/chat_session_list_item.py | 1 | CODE | |
| LOW | …ent/kiln_ai_server_client/models/requirement_rating.py | 1 | CODE | |
| LOW | …server_client/models/spec_spec_field_current_values.py | 1 | CODE | |
| LOW | …client/models/handle_chat_v1_chat_post_response_404.py | 1 | CODE | |
| LOW | …ent/kiln_ai_server_client/models/task_output_rating.py | 1 | CODE | |
| LOW | …kiln_ai_server_client/models/data_source_properties.py | 1 | CODE | |
| LOW | …n_ai_server_client/models/mcp_run_config_properties.py | 1 | CODE | |
| LOW | …i_client/kiln_ai_server_client/models/chat_snapshot.py | 1 | CODE | |
| LOW | …lient/kiln_ai_server_client/models/validation_error.py | 1 | CODE | |
| LOW | …ai_server_client/models/api_key_verification_result.py | 1 | CODE | |
| LOW | …ient/kiln_ai_server_client/models/sample_job_output.py | 1 | CODE | |
| LOW | …_server_client/models/draft_input_data_guide_output.py | 1 | CODE | |
| LOW | …client/kiln_ai_server_client/models/kiln_base_model.py | 1 | CODE | |
| LOW | …client/models/handle_chat_v1_chat_post_response_400.py | 1 | CODE | |
| LOW | …lient/kiln_ai_server_client/models/spec_spec_fields.py | 1 | CODE | |
| LOW | …ient/kiln_ai_server_client/models/refine_spec_input.py | 1 | CODE | |
| LOW | …erver_client/models/specification_input_spec_fields.py | 1 | CODE | |
| LOW | …iln_ai_server_client/models/create_api_key_response.py | 1 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/task_run.py | 1 | CODE | |
| LOW | …kiln_ai_server_client/models/submit_answers_request.py | 1 | CODE | |
| LOW | …dels/synthetic_data_generation_session_config_input.py | 1 | CODE | |
| LOW | …ient/kiln_ai_server_client/models/batch_plan_output.py | 1 | CODE | |
| LOW | …rver_client/models/kiln_agent_run_config_properties.py | 1 | CODE | |
| LOW | …ent/kiln_ai_server_client/models/mcp_tool_reference.py | 1 | CODE | |
| LOW | …ession_v1_chat_sessions_session_id_get_response_426.py | 1 | CODE | |
| LOW | …ls/chat_completion_message_function_tool_call_param.py | 1 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/question.py | 1 | CODE | |
| LOW | …i_client/kiln_ai_server_client/models/task_metadata.py | 1 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 3 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 4 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 5 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 6 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 7 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 8 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 9 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 12 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 13 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 14 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 15 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 16 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 17 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 18 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 19 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 20 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 21 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/__init__.py | 22 | CODE | |
| 387 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .config/utils/setup_env.sh | 449 | # Capped, because this text is spent from the session's context window rather than | COMMENT |
| MEDIUM | .config/utils/setup_env.sh | 557 | # spent from the context window. Re-running it on every compaction of a long | COMMENT |
| MEDIUM | app/desktop/studio_server/prompt_api.py | 40 | # the UI can render the chain of thought as a separate, editable field. | COMMENT |
| MEDIUM | app/desktop/studio_server/test_provider_api.py | 3653 | # Should map to built-in embedding model by name | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3614 | # RAG-specific tests | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3618 | # Create some RAG configs | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3643 | # Save the RAG configs | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3647 | # Create an MCP tool server to trigger the RAG set inclusion | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3713 | # Create a RAG config | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3565 | # Create some RAG configs | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3590 | # Save the RAG configs | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3676 | # Built-in AI Models set + RAG set. | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3682 | # Verify RAG tool details | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3763 | # Built-in AI Models + RAG + MCP sets. | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3785 | # Verify RAG tools | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3833 | # Create active and archived RAG configs | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3901 | # Built-in AI Models + RAG + Kiln task sets. | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3915 | # Only the active RAG config should be present | COMMENT |
| MEDIUM | app/desktop/studio_server/eval_api.py | 123 | # Treat empty-string and missing chain-of-thought instructions as equivalent | COMMENT |
| MEDIUM | app/desktop/studio_server/tool_api.py | 330 | # Add search tools (RAG) | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_eval_api.py | 4654 | # Only RAG template allows eval_configs_filter_id to be None | COMMENT |
| MEDIUM | app/desktop/studio_server/api_models/copilot_models.py | 165 | # 200k chars stays well under the model's context window even for prose. The | COMMENT |
| MEDIUM | app/desktop/studio_server/jobs/models.py | 133 | # (e.g. RAG's four-phase breakdown). Kept as a dict on the wire so the core | COMMENT |
| MEDIUM | specs/projects/deep-cr-cleanup/project_overview.md | 30 | - Re-check Batch-1 #2's target (`_filter_output_to_score_keys`) — it may have been removed with the RAG templates. | CODE |
| MEDIUM | specs/projects/deep-cr-cleanup/phase_plans/phase_1.md | 5 | # Phase 1: Verify the RAG Punt | COMMENT |
| MEDIUM | specs/projects/deep-cr-cleanup/phase_plans/phase_1.md | 29 | ### 3. No RAG references remain across `libs/`, `app/`, `specs/` -- PASS | COMMENT |
| MEDIUM | …ects/evals_v2/components/40_template_and_extraction.md | 370 | - **Few-shot examples:** users can author few-shot examples directly into their Jinja2 `prompt_template` or `system_prom | STRING |
| MEDIUM | …jects/evals_v2/components/80_extensibility_contract.md | 156 | ### 4.2 First-party RAG templates as starting points | COMMENT |
| MEDIUM | specs/projects/evals_v2/components/90_open_risks.md | 182 | ### 2.11 RAG judge templates + continuous scoring (punted from V2.0) | COMMENT |
| MEDIUM | …projects/evals_v2/components/45_runner_architecture.md | 188 | ## 4. Multi-config orchestration and candidate calibration (C.9) | COMMENT |
| MEDIUM⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 439 | ### Step 3: Calculate the hallucination score | COMMENT |
| MEDIUM | …projects/evals_v2/components/29_rag_judge_templates.md | 11 | # RAG Judge Templates -- Stage 5 Design | COMMENT |
| MEDIUM | specs/projects/evals_v2/phase_plans/phase_4.md | 5 | # Phase 4: Enhanced `llm_judge` + RAG Judge Templates | COMMENT |
| MEDIUM⚡ | specs/projects/evals_v2/phase_plans/phase_4.md | 311 | ### Step 7: Create RAG judge template library | COMMENT |
| MEDIUM | specs/projects/evals_v2/phase_plans/phase_2.md | 181 | ### Step 5: Two-level adapter dispatch scaffolding (`libs/core/kiln_ai/adapters/eval/registry.py`) | COMMENT |
| MEDIUM | specs/projects/evals_v2/reference/ALIGNMENT.md | 1332 | **Implementation detail deferred to Stage 5 `design/21_type_llm_judge.md`:** exact Jinja2 wrapping shape (which reserved | CODE |
| MEDIUM | …cs/projects/playwright_seed_project/functional_spec.md | 229 | ### RAG indexes | COMMENT |
| MEDIUM | …rojects/playwright_seed_project/phase_plans/phase_4.md | 5 | # Phase 4: Skills, the RAG chain, and the index-rebuild proof | COMMENT |
| MEDIUM | specs/projects/rag_templates/project_overview.md | 5 | # Project: RAG Judge Templates + Continuous Scoring | COMMENT |
| MEDIUM | specs/projects/git_sync_write_locks/architecture.md | 222 | ### Threading `save_context` Through RAG Construction | COMMENT |
| MEDIUM | libs/core/README.md | 364 | ## Taking Kiln RAG to production | COMMENT |
| MEDIUM | libs/core/README.md | 377 | # Load your project and RAG configuration | COMMENT |
| MEDIUM | libs/core/README.md | 432 | ### Deploy RAG without LlamaIndex | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/tools/test_tool_registry.py | 240 | # Create mock RAG config | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/tools/test_tool_registry.py | 247 | # Setup mock RAG config | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/tools/test_tool_registry.py | 252 | # Setup mock RAG tool | COMMENT |
| MEDIUM | libs/core/kiln_ai/tools/test_tool_registry.py | 265 | # Test with RAG tool ID | COMMENT |
| MEDIUM | libs/core/kiln_ai/utils/dataset_import.py | 19 | # context window serializes to <10 MiB of text) while still bounding memory | COMMENT |
| MEDIUM | libs/core/kiln_ai/adapters/ml_model_list.py | 410 | # models have rate limits, which become very relevant when doing heavy processing like in RAG | COMMENT |
| MEDIUM | libs/core/kiln_ai/adapters/ml_model_list.py | 9218 | # and let Kiln drive chain-of-thought via the multi-turn COT strategy. | COMMENT |
| MEDIUM | libs/core/kiln_ai/adapters/test_ollama_tools.py | 257 | # Check that embedding model aliases are recognized | COMMENT |
| MEDIUM | libs/core/kiln_ai/adapters/test_ollama_tools.py | 260 | # Check that embedding model aliases are NOT in the main model lists | COMMENT |
| MEDIUM | libs/core/kiln_ai/adapters/test_prompt_builders.py | 471 | # Should match regular prompt since no chain of thought | COMMENT |
| MEDIUM | libs/core/kiln_ai/adapters/test_prompt_builders.py | 475 | # Test chain of thought prompt builder | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/adapters/test_remote_config.py | 662 | # Create a fully valid embedding model as baseline | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/adapters/test_remote_config.py | 665 | # Case 1: Invalid embedding model - missing required field 'family' | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/adapters/test_remote_config.py | 671 | # Case 2: Invalid embedding model - invalid data type for required field | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/adapters/test_remote_config.py | 677 | # Case 3: Invalid embedding model - completely malformed | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/adapters/test_remote_config.py | 680 | # Case 4: Valid embedding model with one invalid provider (should keep model, skip invalid provider) | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/adapters/test_remote_config.py | 752 | # Check the first embedding model is fully intact | COMMENT |
| 41 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/desktop/custom_tray.py | 15 | except Exception: | CODE |
| LOW | app/desktop/custom_tray.py | 50 | except Exception: | CODE |
| LOW | app/desktop/desktop.py | 138 | except Exception: | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 856 | except Exception: | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 861 | except Exception: | CODE |
| LOW | app/desktop/studio_server/webhost.py | 25 | except Exception: | CODE |
| LOW | app/desktop/studio_server/webhost.py | 74 | except Exception as e: | CODE |
| MEDIUM | app/desktop/studio_server/webhost.py | 20 | def studio_path(): | CODE |
| LOW | app/desktop/studio_server/settings_api.py | 75 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/settings_api.py | 98 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/prompt_api.py | 43 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/finetune_api.py | 444 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/finetune_api.py | 784 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 83 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 100 | except Exception: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1127 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1167 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1222 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1248 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1282 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1321 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1344 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1376 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1408 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1442 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1481 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1519 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1552 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1604 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1633 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1683 | except Exception: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 2249 | except Exception: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 498 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 512 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 551 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 565 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 1408 | except Exception: | CODE |
| LOW | app/desktop/studio_server/tool_api.py | 364 | except Exception: | CODE |
| LOW | app/desktop/studio_server/tool_api.py | 1052 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 303 | except Exception as cleanup_error: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 373 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 428 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 496 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 604 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 716 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 784 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 832 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 873 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 921 | except Exception as e: | CODE |
| LOW⚡ | app/desktop/studio_server/run_config_api.py | 218 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/run_config_api.py | 383 | except Exception: | CODE |
| LOW | app/desktop/studio_server/chat/stream_session.py | 285 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/jobs/registry.py | 247 | except Exception as exc: | CODE |
| LOW | app/desktop/studio_server/jobs/registry.py | 430 | except Exception: | CODE |
| LOW | app/desktop/studio_server/jobs/registry.py | 466 | except Exception: | CODE |
| LOW | app/desktop/studio_server/jobs/error_log.py | 31 | except Exception: | CODE |
| LOW | app/desktop/studio_server/jobs/error_log.py | 57 | except Exception: | CODE |
| LOW | app/desktop/studio_server/jobs/error_log.py | 66 | except Exception: | CODE |
| LOW | app/desktop/util/resource_limits.py | 29 | except Exception as e: | CODE |
| LOW | app/desktop/git_sync/git_sync_manager.py | 73 | except Exception: | CODE |
| 163 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .config/legacy_guides/Fine Tuning LLM Models Guide.md | 42 | ### Step 1: Define your Task and Goals | COMMENT |
| LOW | .config/legacy_guides/Fine Tuning LLM Models Guide.md | 50 | ### Step 2: Generate Training Data with Synthetic Data Generation | COMMENT |
| LOW | .config/legacy_guides/Fine Tuning LLM Models Guide.md | 62 | ### Step 3: Select Models to Fine Tune | COMMENT |
| LOW | .config/legacy_guides/Fine Tuning LLM Models Guide.md | 74 | ### Step 4: Dispatch Training Jobs | COMMENT |
| LOW | .config/legacy_guides/Fine Tuning LLM Models Guide.md | 82 | ### Step 5: Deploy and Run Your Models | COMMENT |
| LOW | app/desktop/studio_server/test_repair_api.py | 302 | # Step 1: original Run. | COMMENT |
| LOW | app/desktop/studio_server/test_repair_api.py | 317 | # Step 2: Repair, hitting the real endpoint with the persisted run. | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_tool_api.py | 1090 | # Step 1: Create a tool server | COMMENT |
| LOW | app/desktop/studio_server/test_tool_api.py | 1104 | # Step 1: Create the tool server | COMMENT |
| LOW | app/desktop/studio_server/test_tool_api.py | 1115 | # Step 2: Verify it appears in the list | COMMENT |
| LOW | specs/projects/mcp_sessions/implementation_plan.md | 15 | ## Step 1: Create `mcp_session_context.py` | COMMENT |
| LOW | specs/projects/mcp_sessions/implementation_plan.md | 58 | ## Step 2: Add session caching to `MCPSessionManager` | COMMENT |
| LOW | specs/projects/mcp_sessions/implementation_plan.md | 272 | ## Step 3: Update `BaseAdapter.invoke_returning_run_output()` | COMMENT |
| LOW | specs/projects/mcp_sessions/implementation_plan.md | 338 | ## Step 4: Update `MCPServerTool` to use session context | COMMENT |
| LOW | specs/projects/mcp_sessions/implementation_plan.md | 419 | ## Step 5: Write comprehensive tests | COMMENT |
| LOW | specs/projects/mcp_sessions/implementation_plan.md | 460 | ## Step 6: Verification & quality checks | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 13 | ### Step 1: Task paths — singular → plural (3 endpoints) | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 19 | ### Step 2: Prompt paths — `/task` → `/tasks` (3 endpoints) | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 26 | ### Step 3: Spec path — singular → plural (1 endpoint) | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 30 | ### Step 4: Eval paths — `/eval` → `/evals` (all eval endpoints + sub-paths) | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 47 | ### Step 5: Run config path unification (3 endpoints) | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 55 | ### Step 6: Repair endpoint path renames (2 endpoints) | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 60 | ### Step 7: GET → POST for provider connect (2 endpoints) | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 65 | ### Step 8: Update backend tests | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 75 | ### Step 9: Update frontend TypeScript/Svelte | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 81 | ### Step 10: Regenerate api_schema.d.ts | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_4.md | 84 | ### Step 11: Run lint, format, tests | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_3.md | 15 | ### Step 1: Core models in `basemodel.py` | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_3.md | 18 | ### Step 2: High-value domain models | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_3.md | 25 | ### Step 3: Extraction and document models | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_3.md | 33 | ### Step 4: Spec and prompt models | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_3.md | 41 | ### Step 5: Remaining datamodel files | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_3.md | 50 | ### Step 6: Server API request/response models | COMMENT |
| LOW⚡ | specs/projects/document_api/phase_plans/phase_3.md | 57 | ### Step 7: Desktop server API request/response models | COMMENT |
| LOW | specs/projects/document_api/phase_plans/phase_3.md | 72 | ### Step 8: Run lint, format, typecheck, tests | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 121 | ### Step 1: Extract claims | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 124 | ### Step 2: Verify each claim | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 131 | ### Step 3: Calculate the faithfulness score | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 192 | ### Step 1: Identify the user's intent | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 195 | ### Step 2: Assess relevance dimensions | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 202 | ### Step 3: Assign a score | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 266 | ### Step 1: Identify the information need | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 269 | ### Step 2: Evaluate each chunk | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 276 | ### Step 3: Calculate the context relevance score | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 345 | ### Step 1: Understand the ideal answer | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 352 | ### Step 2: Evaluate each retrieved chunk for usefulness | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 362 | ### Step 3: Calculate the precision score | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 426 | ### Step 1: Extract claims | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 431 | ### Step 2: Classify each claim | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 439 | ### Step 3: Calculate the hallucination score | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 506 | ### Step 1: Extract key facts from the reference answer | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 511 | ### Step 2: Check the response against each fact | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 517 | ### Step 3: Check for fabricated content | COMMENT |
| LOW⚡ | …projects/evals_v2/components/29_rag_judge_templates.md | 522 | ### Step 4: Calculate the correctness score | COMMENT |
| LOW⚡ | specs/projects/evals_v2/phase_plans/phase_1.md | 19 | ### Step 1: Fix `validate_template_properties` bug (eval.py) | COMMENT |
| LOW⚡ | specs/projects/evals_v2/phase_plans/phase_1.md | 31 | ### Step 2: Thinking formatter fix (chat_formatter.py) | COMMENT |
| LOW⚡ | specs/projects/evals_v2/phase_plans/phase_1.md | 41 | ### Step 3: V2 enum + properties types (eval.py) | COMMENT |
| LOW⚡ | specs/projects/evals_v2/phase_plans/phase_1.md | 55 | ### Step 4: EvalConfig schema changes (eval.py) | COMMENT |
| LOW⚡ | specs/projects/evals_v2/phase_plans/phase_1.md | 64 | ### Step 5: Eval schema changes (eval.py) | COMMENT |
| LOW⚡ | specs/projects/evals_v2/phase_plans/phase_1.md | 71 | ### Step 6: EvalRun schema changes (eval.py) | COMMENT |
| 67 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/desktop/studio_server/finetune_api.py | 213 | CODE | |
| LOW | app/desktop/studio_server/finetune_api.py | 283 | CODE | |
| LOW | app/desktop/studio_server/finetune_api.py | 308 | CODE | |
| LOW | app/desktop/studio_server/finetune_api.py | 413 | CODE | |
| LOW | app/desktop/studio_server/test_generate_docs.py | 37 | CODE | |
| LOW | app/desktop/studio_server/test_tool_api.py | 852 | CODE | |
| LOW | app/desktop/studio_server/test_server.py | 274 | CODE | |
| LOW | app/desktop/studio_server/agent_api.py | 228 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 257 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 1694 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 1771 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 1806 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 1898 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 1921 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 2085 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 277 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 422 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 489 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 690 | CODE | |
| LOW | app/desktop/studio_server/eval_api.py | 1409 | CODE | |
| LOW | app/desktop/studio_server/eval_api.py | 2419 | CODE | |
| LOW | app/desktop/studio_server/eval_api.py | 2566 | CODE | |
| LOW | app/desktop/studio_server/tool_api.py | 288 | CODE | |
| LOW | app/desktop/studio_server/tool_api.py | 523 | CODE | |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 436 | CODE | |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 736 | CODE | |
| LOW | …er_client/models/chat_completion_user_message_param.py | 46 | CODE | |
| LOW | …er_client/models/chat_completion_user_message_param.py | 88 | CODE | |
| LOW | …er_client/models/chat_completion_user_message_param.py | 96 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/task_run.py | 108 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/task_run.py | 279 | CODE | |
| LOW | …er/api_client/kiln_ai_server_client/models/task_run.py | 425 | CODE | |
| LOW | …els/chat_completion_assistant_message_param_wrapper.py | 59 | CODE | |
| LOW | …els/chat_completion_assistant_message_param_wrapper.py | 164 | CODE | |
| LOW | …els/chat_completion_assistant_message_param_wrapper.py | 194 | CODE | |
| LOW | app/desktop/studio_server/chat/test_routes.py | 1039 | CODE | |
| LOW | app/desktop/studio_server/chat/test_integration.py | 58 | CODE | |
| LOW | app/desktop/studio_server/chat/test_integration.py | 178 | CODE | |
| LOW | app/desktop/studio_server/chat/test_integration.py | 235 | CODE | |
| LOW | app/desktop/studio_server/chat/test_integration.py | 335 | CODE | |
| LOW | app/desktop/studio_server/chat/stream_session.py | 101 | CODE | |
| LOW | app/desktop/studio_server/jobs/events.py | 87 | CODE | |
| LOW | app/desktop/studio_server/jobs/error_log.py | 35 | CODE | |
| LOW | app/desktop/git_sync/git_sync_api.py | 438 | CODE | |
| LOW | app/desktop/git_sync/git_sync_api.py | 704 | CODE | |
| LOW | app/desktop/git_sync/clone.py | 61 | CODE | |
| LOW | app/desktop/git_sync/clone.py | 274 | CODE | |
| LOW | app/desktop/git_sync/clone.py | 78 | CODE | |
| LOW | app/desktop/git_sync/integration_tests/conftest.py | 486 | CODE | |
| LOW | …/desktop/git_sync/integration_tests/test_decorators.py | 163 | CODE | |
| LOW | .agents/scripts/provider_utils.py | 188 | CODE | |
| LOW | …n-check-finetune-deprecation/scripts/check_finetune.py | 120 | CODE | |
| LOW | …kills/kiln-check-deprecation/scripts/check_provider.py | 68 | CODE | |
| LOW | …kills/kiln-check-deprecation/scripts/check_provider.py | 149 | CODE | |
| LOW | libs/core/kiln_ai/tools/test_mcp_session_manager.py | 836 | CODE | |
| LOW | libs/core/kiln_ai/tools/sandbox_bridge.py | 499 | CODE | |
| LOW | libs/core/kiln_ai/tools/mcp_session_manager.py | 341 | CODE | |
| LOW | libs/core/kiln_ai/tools/tool_registry.py | 31 | CODE | |
| LOW | libs/core/kiln_ai/utils/logging.py | 98 | CODE | |
| LOW | libs/core/kiln_ai/utils/test_import_layering.py | 93 | CODE | |
| 72 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app/desktop/git_sync/registry.py | 0 | singleton registry of gitsyncmanager instances, keyed by repo path. | STRING |
| HIGH | …/projects/desktop_lint_config_scope/functional_spec.md | 0 | singleton registry of gitsyncmanager instances, keyed by repo path. | STRING |
| HIGH | specs/projects/git_auto_sync/architecture.md | 0 | singleton registry of gitsyncmanager instances, keyed by repo path. | STRING |
| HIGH | app/desktop/git_sync/errors.py | 0 | git authentication failed or expired (bad/expired token, 401/403). | STRING |
| HIGH | specs/projects/git_auth_recovery/architecture.md | 0 | git authentication failed or expired (bad/expired token, 401/403). | STRING |
| HIGH | specs/projects/git_auth_recovery/phase_plans/phase_1.md | 0 | git authentication failed or expired (bad/expired token, 401/403). | STRING |
| HIGH | specs/projects/agent_approvals/architecture.md | 0 | raised when an endpoint has no known policy (fail-safe block). | STRING |
| HIGH | specs/projects/agent_approvals/functional_spec.md | 0 | raised when an endpoint has no known policy (fail-safe block). | STRING |
| HIGH | …server/kiln_server/utils/agent_checks/policy_lookup.py | 0 | raised when an endpoint has no known policy (fail-safe block). | STRING |
| HIGH | specs/projects/templates/architecture.md | 0 | validate that the template compiles. raises valueerror on syntax error. | STRING |
| HIGH | specs/projects/templates/functional_spec.md | 0 | validate that the template compiles. raises valueerror on syntax error. | STRING |
| HIGH | libs/core/kiln_ai/utils/jinja_engine.py | 0 | validate that the template compiles. raises valueerror on syntax error. | STRING |
| HIGH | specs/projects/templates/architecture.md | 0 | validate that a jinja2 expression compiles. raises valueerror on syntax error. | STRING |
| HIGH | specs/projects/templates/functional_spec.md | 0 | validate that a jinja2 expression compiles. raises valueerror on syntax error. | STRING |
| HIGH | libs/core/kiln_ai/utils/jinja_engine.py | 0 | validate that a jinja2 expression compiles. raises valueerror on syntax error. | STRING |
| HIGH | libs/core/kiln_ai/adapters/repair/test_repair_task.py | 0 | { "type": "object", "properties": { "setup": { "description": "the setup of the joke", "title": "setup", "type": "string | STRING |
| HIGH | libs/core/kiln_ai/datamodel/test_model_perf.py | 0 | { "type": "object", "properties": { "setup": { "description": "the setup of the joke", "title": "setup", "type": "string | STRING |
| HIGH | libs/core/kiln_ai/datamodel/test_json_schema.py | 0 | { "type": "object", "properties": { "setup": { "description": "the setup of the joke", "title": "setup", "type": "string | STRING |
| HIGH | libs/core/kiln_ai/datamodel/test_extraction_model.py | 0 | we added discriminated union and the store_type in the properties, but older configs did not have the store_type in the | STRING |
| HIGH | libs/core/kiln_ai/datamodel/test_chunk_models.py | 0 | we added discriminated union and the store_type in the properties, but older configs did not have the store_type in the | STRING |
| HIGH | libs/core/kiln_ai/datamodel/test_vector_store.py | 0 | we added discriminated union and the store_type in the properties, but older configs did not have the store_type in the | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/desktop/desktop_server.py | 52 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/custom_tray.py | 6 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/dev_env.py | 6 | def set_dev_env_vars() -> None: | CODE |
| LOW | app/desktop/desktop.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 110 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/code_tool_api.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/finetune_api.py | 64 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/skill_api.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 60 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/eval_api.py | 107 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/tool_api.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 63 | logger = logging.getLogger(__name__) | CODE |
| LOW | …tudio_server/api_client/kiln_ai_server_client/types.py | 54 | __all__ = ["UNSET", "File", "FileTypes", "RequestFiles", "Response", "Unset"] | CODE |
| LOW | …udio_server/api_client/kiln_ai_server_client/errors.py | 16 | __all__ = ["UnexpectedStatus"] | CODE |
| LOW | app/desktop/studio_server/chat/sse_parser.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/chat/tool_metadata.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/chat/__init__.py | 16 | __all__ = [ | CODE |
| LOW | app/desktop/studio_server/chat/test_integration.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/chat/stream_session.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/jobs/registry.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/jobs/events.py | 75 | def set_snapshot_provider(self, provider: SnapshotProvider) -> None: | CODE |
| LOW | app/desktop/util/resource_limits.py | 4 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/git_sync/git_sync_manager.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/git_sync/registry.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/git_sync/background_sync.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/git_sync/git_sync_api.py | 57 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | app/desktop/git_sync/test_sse_invariants.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/git_sync/middleware.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/git_sync/oauth.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/git_sync/clone.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/git_sync/integration_tests/conftest.py | 34 | __all__ = [ | CODE |
| LOW | libs/core/kiln_ai/run_context.py | 20 | def set_agent_run_id(run_id: str) -> None: | CODE |
| LOW | libs/core/kiln_ai/tools/sandbox_bridge.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/tools/mcp_session_manager.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/tools/__init__.py | 4 | __all__ = [ | CODE |
| LOW | libs/core/kiln_ai/tools/code_tool.py | 36 | __all__ = [ | CODE |
| LOW | libs/core/kiln_ai/tools/code_tool.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/tools/built_in_tools/__init__.py | 9 | __all__ = [ | CODE |
| LOW | libs/core/kiln_ai/utils/dataset_import.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/utils/async_job_runner.py | 6 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/utils/filesystem_cache.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/utils/__init__.py | 10 | __all__ = [ | CODE |
| LOW | libs/core/kiln_ai/utils/test_dataset_import.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/cli/__init__.py | 3 | __all__ = ["app"] | CODE |
| LOW | libs/core/kiln_ai/adapters/ollama_tools.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/adapters/__init__.py | 45 | __all__ = [ | CODE |
| LOW | libs/core/kiln_ai/adapters/provider_tools.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/adapters/remote_config.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/adapters/test_prompt_builders.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/adapters/fine_tune/__init__.py | 9 | __all__ = [ | CODE |
| LOW | …/core/kiln_ai/adapters/fine_tune/fireworks_finetune.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …e/kiln_ai/adapters/fine_tune/test_dataset_formatter.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/adapters/fine_tune/vertex_finetune.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ore/kiln_ai/adapters/model_adapters/litellm_adapter.py | 71 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/adapters/model_adapters/__init__.py | 13 | __all__ = [ | CODE |
| LOW | …pters/model_adapters/test_litellm_adapter_streaming.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | …core/kiln_ai/adapters/model_adapters/adapter_stream.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | …s/core/kiln_ai/adapters/model_adapters/base_adapter.py | 788 | def update_run_config_unknown_structured_output_mode(self) -> None: | CODE |
| LOW | libs/core/kiln_ai/adapters/parsers/__init__.py | 10 | __all__ = ["base_parser", "json_parser", "r1_parser"] | CODE |
| 42 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app/desktop/studio_server/data_gen_api.py | 786 | # we do not save the TaskRun to disk, so the ID is null, but we need | COMMENT |
| HIGH | app/desktop/studio_server/test_eval_api.py | 5557 | # save_to_file writes the migrated shape (splits populated, legacy fields null). | COMMENT |
| HIGH | app/desktop/git_sync/conftest.py | 86 | remote.push([f"refs/heads/{branch}"]) | CODE |
| HIGH | app/desktop/git_sync/git_sync_manager.py | 460 | remote.push([f"refs/heads/{branch_name}"], callbacks=callbacks) | CODE |
| HIGH | app/desktop/git_sync/clone.py | 400 | remote.push([f"refs/heads/{branch_name}"], callbacks=push_cb) | CODE |
| HIGH | app/desktop/git_sync/clone.py | 462 | remote.push([f"refs/heads/{branch_name}"], callbacks=push_cb) | CODE |
| HIGH⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 125 | remote.push([f"+refs/heads/{branch}"]) | CODE |
| HIGH | libs/core/kiln_ai/adapters/parsers/test_json_parser.py | 66 | "null": null, | CODE |
| HIGH | libs/core/kiln_ai/adapters/repair/test_repair_task.py | 48 | "default": null, | CODE |
| HIGH | libs/core/kiln_ai/adapters/repair/test_repair_task.py | 92 | output='{"setup": "Why did the chicken cross the road?", "punchline": "To get to the other side", "rating": | STRING |
| HIGH | libs/core/kiln_ai/adapters/repair/test_repair_task.py | 126 | == '{"setup": "Why did the chicken cross the road?", "punchline": "To get to the other side", "rating": null}' | STRING |
| HIGH | libs/core/kiln_ai/datamodel/test_example_models.py | 1097 | set (typically to null). It must still load — Pydantic's default | STRING |
| HIGH | libs/core/kiln_ai/datamodel/test_model_perf.py | 37 | "default": null, | CODE |
| HIGH | libs/core/kiln_ai/datamodel/test_json_schema.py | 45 | "default": null, | CODE |
| HIGH | libs/core/kiln_ai/datamodel/eval.py | 1260 | the eval saves with both fields null, and re-running the validator — which | STRING |
| HIGH | libs/server/kiln_server/test_run_api.py | 2040 | '{"train": null, "test": 0.5}', | CODE |
| HIGH | libs/server/kiln_server/run_api.py | 665 | # Testing for the key rather than a set value also refuses `{"eval_source": null}`, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | conftest.py | 121 | # Check if we're running manually (eg, in vscode) | COMMENT |
| LOW⚡ | conftest.py | 130 | # Check if all of the items are the same prefix, expluding a.b.c[param] | COMMENT |
| LOW | app/desktop/linux_installer.sh | 32 | # Check if we're on a supported platform | COMMENT |
| LOW | app/desktop/linux_installer.sh | 105 | # Check if we can write to current directory | COMMENT |
| LOW | app/desktop/linux_installer.sh | 239 | # Check if the Kiln executable exists | COMMENT |
| LOW | app/desktop/linux_installer.sh | 245 | # Check if this is an upgrade | COMMENT |
| LOW | app/desktop/studio_server/finetune_api.py | 874 | # Check if the model supports tools via 'supportTools' | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 1327 | # Check if all built-in models are present in the response | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 1333 | # Check if the number of models in the response matches the number of built-in models | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 3484 | # Check if all built-in embedding models are present in the response | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 3490 | # Check if the number of models in the response matches the number of built-in embedding models | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 3751 | # Check if all built-in reranker models are present in the response | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 3757 | # Check if the number of models in the response matches the number of built-in reranker models | COMMENT |
| LOW | app/desktop/studio_server/provider_api.py | 699 | # Check if provider is configured | COMMENT |
| LOW | app/desktop/studio_server/eval_api.py | 2472 | # Check if we should count this eval_run. Not every eval_run has to go into the stats: | COMMENT |
| LOW | app/desktop/studio_server/eval_api.py | 2664 | # Check if this item is expected for this eval | COMMENT |
| LOW | app/desktop/studio_server/data_gen_api.py | 714 | # Set parent to task to ensure the correct path is used | COMMENT |
| LOW | app/desktop/studio_server/tool_api.py | 573 | # Check if the tool server has missing secrets (e.g. new user syncing existing project) | COMMENT |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 526 | # Check if eval has a default config | COMMENT |
| LOW | libs/core/kiln_ai/tools/mcp_session_manager.py | 347 | # Check if the exception itself is of the target type | COMMENT |
| LOW | libs/core/kiln_ai/tools/tool_registry.py | 73 | # Check if this looks like an MCP or Kiln Task tool ID that requires a project | COMMENT |
| LOW⚡ | libs/core/kiln_ai/utils/logging.py | 71 | # Print the messages for the request in LiteLLM Message list, pretty print | COMMENT |
| LOW⚡ | libs/core/kiln_ai/utils/logging.py | 137 | # Check if we already have a custom litellm logger | COMMENT |
| LOW⚡ | libs/core/kiln_ai/utils/logging.py | 155 | # Set formatter to match the default formatting | COMMENT |
| LOW⚡ | libs/core/kiln_ai/utils/dataset_import.py | 159 | # Assign tags to runs | COMMENT |
| LOW | libs/core/kiln_ai/utils/dataset_import.py | 239 | # Check if we have headers | COMMENT |
| LOW | libs/core/kiln_ai/utils/validation.py | 57 | # Check if name is None or empty | COMMENT |
| LOW | libs/core/kiln_ai/utils/validation.py | 64 | # Check if name contains only lowercase letters, numbers, and underscores | COMMENT |
| LOW | libs/core/kiln_ai/adapters/prompt_builders.py | 494 | # Check if the prompt_id matches any enum value | COMMENT |
| LOW⚡ | libs/core/kiln_ai/adapters/test_prompt_adaptors.py | 62 | # Check if Ollama API is running | COMMENT |
| LOW⚡ | libs/core/kiln_ai/adapters/test_prompt_adaptors.py | 71 | # Check if Ollama API is running | COMMENT |
| LOW⚡ | libs/core/kiln_ai/adapters/test_prompt_adaptors.py | 80 | # Check if Ollama API is running | COMMENT |
| LOW⚡ | libs/core/kiln_ai/adapters/test_prompt_adaptors.py | 89 | # Check if Ollama API is running | COMMENT |
| LOW | libs/core/kiln_ai/adapters/test_remote_config.py | 1415 | # Check if uv is available | COMMENT |
| LOW | libs/core/kiln_ai/adapters/test_remote_config.py | 1487 | # Check if the test passed | STRING |
| LOW | …/core/kiln_ai/adapters/fine_tune/fireworks_finetune.py | 440 | # Check if the model is already deployed | COMMENT |
| LOW | …e/kiln_ai/adapters/fine_tune/test_together_finetune.py | 43 | # Check if any status is missing from categorization | COMMENT |
| LOW | …e/kiln_ai/adapters/fine_tune/test_together_finetune.py | 49 | # Check if any status appears in multiple categories | COMMENT |
| LOW | libs/core/kiln_ai/adapters/fine_tune/vertex_finetune.py | 178 | # Check if bucket exists and create it if it doesn't | COMMENT |
| LOW | …ore/kiln_ai/adapters/model_adapters/litellm_adapter.py | 320 | # Check if we were interrupted by tool calls | COMMENT |
| LOW | libs/core/kiln_ai/adapters/eval/test_eval_runner.py | 689 | # Set filter to match the task | COMMENT |
| LOW | libs/core/kiln_ai/datamodel/external_tool_server.py | 414 | # Check if secrets are already saved | COMMENT |
| LOW | libs/core/kiln_ai/datamodel/task_output.py | 78 | # Check if we have the old format (dict of floats) | COMMENT |
| LOW | …bs/core/kiln_ai/datamodel/test_external_tool_server.py | 713 | # Set ID to test retrieval from config | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 21 | # Importing litellm costs several seconds, and pytest imports this conftest on | COMMENT |
| LOW | .config/utils/claude_code_vm_setup.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .config/utils/claude_code_vm_setup.sh | 21 | # | COMMENT |
| LOW | .config/utils/setup_startup.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .config/utils/setup_startup.sh | 181 | EOF | COMMENT |
| LOW | .config/utils/setup_startup.sh | 221 | # CLAUDE.md, .claude/skills/ and .mcp.json into a session's working copy. | COMMENT |
| LOW | .config/utils/setup_startup.sh | 261 | fi | COMMENT |
| LOW | .config/utils/setup_startup.sh | 281 | # one `rm -rf` unlinks entries out of the other's tree mid-`cp -al` and the survivors | COMMENT |
| LOW | .config/utils/setup_startup.sh | 301 | # It is specifically *not* safe because of the age filter. `cp -al` implies | COMMENT |
| LOW | .config/utils/setup_startup.sh | 321 | # Only this run's own path — a PID can be reused after a reboot, and cp -al onto | COMMENT |
| LOW | .config/utils/setup_startup.sh | 401 | branch="$(git -C "$PROJECT_ROOT" branch --show-current 2>/dev/null)" | COMMENT |
| LOW | .config/utils/setup_startup.sh | 501 | # ── Playwright ──────────────────────────────────────────────────────────────── | COMMENT |
| LOW | .config/utils/setup_startup.sh | 541 | # where it looked. Naming the revision here turns that into one clear line. | COMMENT |
| LOW | .config/utils/setup_env.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .config/utils/setup_env.sh | 41 | CREATE_STARTUP_SCRIPT=false # true: run setup_startup.sh from a Claude Code SessionStart hook (cloud VMs) | COMMENT |
| LOW | .config/utils/setup_env.sh | 61 | WARM_NODE_MODULES="$VM_SETUP_DIR/node_modules" | COMMENT |
| LOW | .config/utils/setup_env.sh | 261 | # test modules and both OpenAPI schema scripts. uv-managed CPython bundles Tk. | COMMENT |
| LOW | .config/utils/setup_env.sh | 361 | # inside the clone, the move and delete above invalidated it, and the very next | COMMENT |
| LOW | .config/utils/setup_env.sh | 381 | COMMENT | |
| LOW | .config/utils/setup_env.sh | 421 | # Claude Code SessionStart hook. Written by Kiln's .config/utils/setup_env.sh | COMMENT |
| LOW | .config/utils/setup_env.sh | 621 | # named anywhere below. It is whatever the checkout's own playwright asks | COMMENT |
| LOW | .config/utils/setup_env.sh | 661 | COMMENT | |
| LOW | app/desktop/dev_server.py | 1 | # Run a desktop server for development: | COMMENT |
| LOW | app/desktop/dev_app.py | 1 | # The dev server's ASGI app object, in a module of its own. | COMMENT |
| LOW | app/desktop/studio_server/copilot_api.py | 141 | task_description: str = "" | COMMENT |
| LOW | …ktop/studio_server/test_prompt_optimization_job_api.py | 61 | COMMENT | |
| LOW | app/desktop/studio_server/jobs/registry.py | 81 | self._cancel_intent: set[str] = set() | COMMENT |
| LOW | app/web_ui/playwright.config.ts | 61 | // name: 'webkit', | COMMENT |
| LOW | app/web_ui/src/lib/ui/data_guide_progress_widget.svelte | 1 | <script lang="ts"> | COMMENT |
| LOW | app/web_ui/src/lib/ui/callout_card.svelte | 1 | <script lang="ts"> | COMMENT |
| LOW | …_ui/src/lib/ui/animations/questioning_animation.svelte | 101 | /* ========== CONTAINER 1 - Visible on initial load ========== */ | COMMENT |
| LOW | …_ui/src/lib/ui/animations/questioning_animation.svelte | 121 | #c2-connector-3, | COMMENT |
| LOW | app/web_ui/src/lib/utils/built_in_tool_ids.ts | 1 | // Kiln's built-in tool IDs, mirroring KilnBuiltInToolId on the server. They are not | COMMENT |
| LOW | app/web_ui/src/lib/components/extractor_picker.svelte | 21 | // Document-id allow-list scoping the run. When set, only these documents are | COMMENT |
| LOW | …p/web_ui/src/lib/components/run_eval.component.test.ts | 1 | // @vitest-environment jsdom | COMMENT |
| LOW | …/[task_id]/spec_builder/create_spec_judge_form.test.ts | 221 | }) | COMMENT |
| LOW | …p)/docs/library/[project_id]/upload_file_dialog.svelte | 21 | // without a second dialog. Opt-in; other callers keep the existing behavior. | COMMENT |
| LOW | …project_id]/[task_id]/synth_data_guidance_datamodel.ts | 281 | store.set(guidance) | COMMENT |
| LOW | …generate/[project_id]/[task_id]/data_gen_intro.test.ts | 241 | // split, and a test split that isn't tag-shaped — and this dialog picks its message | COMMENT |
| LOW | …ct_id]/[task_id]/data_guide_setup_copilot/+page.svelte | 101 | COMMENT | |
| LOW | …d]/[task_id]/data_guide_setup/guide_refine_view.svelte | 81 | // Verify Changes (and the settings widget above it) are always shown but | COMMENT |
| LOW | …ct_id]/[task_id]/data_guide_setup/guide_preview.svelte | 21 | export let guide: string = "" | COMMENT |
| LOW | …ct_id]/[task_id]/data_guide_setup/guide_preview.svelte | 41 | export let show_restart: boolean = false | COMMENT |
| LOW | …cs/projects/eval_splits_v1_v2/phase2_mutation_sweep.py | 181 | # set_split". Its pattern still matches, but with one home set_split and | COMMENT |
| LOW | …cs/projects/eval_splits_v1_v2/phase3_mutation_sweep.py | 61 | # direct-dict-assignment, homes-test-only, and does-nothing shapes. That function | COMMENT |
| LOW | …ects/evals_v2/components/85_observability_and_audit.md | 81 | """Why an (input x config) combination was permanently skipped. | COMMENT |
| LOW | …ects/evals_v2/components/85_observability_and_audit.md | 101 | # - Future: image-gen EvalInput under a text-only EvalConfig, etc. | COMMENT |
| LOW | …ects/evals_v2/components/85_observability_and_audit.md | 121 | # project_trust_granted() before execution; untrusted -> skip. | COMMENT |
| LOW | .agents/scripts/playwright_server.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .agents/scripts/playwright_server.sh | 61 | # behaves exactly as it always has, with nothing connected. | COMMENT |
| LOW | .agents/scripts/playwright_server.sh | 101 | COMMENT | |
| LOW | .agents/scripts/playwright_server.sh | 261 | # change to how the datamodel serializes cannot break it. | COMMENT |
| LOW | .agents/scripts/playwright_server.sh | 381 | # get_projects catches every per-project load exception and continues, so a project | COMMENT |
| LOW | .agents/scripts/playwright_server.sh | 421 | } | COMMENT |
| LOW | .agents/scripts/playwright_server.sh | 441 | # Gated on verify_seed_loaded having confirmed the project with the backend, not on | COMMENT |
| LOW | .agents/scripts/playwright_server.sh | 621 | # The only path that re-seeds. There is deliberately no drift detection on `start`: | COMMENT |
| LOW | .agents/scripts/playwright_server.sh | 701 | COMMENT | |
| LOW | libs/core/setup.cfg | 1 | # empty, but needed by setuptools | COMMENT |
| LOW | libs/core/kiln_ai/tools/sandbox_bridge.py | 41 | side effect of unifying the pool (arch §3.4).""" | COMMENT |
| LOW | libs/core/kiln_ai/adapters/ml_model_list.py | 401 | # some models on siliconflow allow dynamically disabling thinking | COMMENT |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/desktop/studio_server/test_tool_api.py | 3083 | "DATABASE_PASSWORD": "placeholder", | CODE |
| LOW | app/desktop/studio_server/test_tool_api.py | 3122 | "DATABASE_PASSWORD": "placeholder", | CODE |
| LOW⚡ | app/desktop/git_sync/integration_tests/test_fixtures.py | 155 | sig = pygit2.Signature("Test", "test@test.com") | CODE |
| LOW | app/web_ui/src/lib/utils/code_tool_helpers.test.ts | 283 | expect(isCodeUnmodified("", "placeholder")).toBe(true) | CODE |
| LOW | app/web_ui/src/lib/utils/code_tool_helpers.test.ts | 287 | expect(isCodeUnmodified(" \n ", "placeholder")).toBe(true) | CODE |
| LOW | app/web_ui/src/lib/git_sync/url_utils.test.ts | 51 | expect(try_convert_ssh_to_https("user@example.com")).toBe( | CODE |
| LOW | app/web_ui/src/lib/git_sync/url_utils.test.ts | 52 | "user@example.com", | CODE |
| LOW | libs/core/README.md | 200 | properties={"created_by": "John Doe"}, | CODE |
| LOW | libs/core/README.md | 206 | properties={"created_by": "Jane Doe"}, | CODE |
| LOW | …i/adapters/vector_store_loaders/test_lancedb_loader.py | 37 | ["Lorem ipsum dolor sit amet, consectetur adipiscing elit." for _ in range(n)] | CODE |
| LOW | …i/adapters/vector_store_loaders/test_lancedb_loader.py | 37 | ["Lorem ipsum dolor sit amet, consectetur adipiscing elit." for _ in range(n)] | CODE |
| LOW | …pters/vector_store_loaders/test_vector_store_loader.py | 31 | ["Lorem ipsum dolor sit amet, consectetur adipiscing elit." for _ in range(n)] | CODE |
| LOW | …pters/vector_store_loaders/test_vector_store_loader.py | 31 | ["Lorem ipsum dolor sit amet, consectetur adipiscing elit." for _ in range(n)] | CODE |
| LOW | …s/core/kiln_ai/adapters/eval/test_v2_eval_llm_judge.py | 817 | mock_config_obj.open_ai_api_key = "fake-key" | CODE |
| LOW | libs/core/kiln_ai/adapters/repair/test_repair_task.py | 89 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | STRING |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 40 | properties={"created_by": "John Doe"}, | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 46 | properties={"created_by": "John Doe"}, | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 58 | assert task_run.input_source.properties == {"created_by": "John Doe"} | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 61 | assert task_run.output.source.properties == {"created_by": "John Doe"} | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 90 | properties={"created_by": "John Doe"}, | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 96 | properties={"wrong_key": "John Doe"}, | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 240 | == '{"name": "John Doe", "age": 31}' | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 408 | valid_task_output.input = '{"name": "John Doe", "age": "thirty"}' | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 414 | loaded_task_output.input = '{"name": "John Doe", "age": "thirty"}' | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 420 | input='{"name": "John Doe", "age": "thirty"}', | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 442 | properties={"created_by": "John Doe"}, | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_example_models.py | 446 | assert output.source.properties["created_by"] == "John Doe" | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 169 | output='{"name": "John Doe", "age": 30}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 188 | output='{"name": "John Doe", "age": 31}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 196 | output='{"name": "John Doe", "age": 31}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 321 | output='{"name": "John Doe", "age": 30}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 335 | task_output.output.output = '{"name": "John Doe", "age": "thirty"}' | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 344 | loaded_task_output.output.output = '{"name": "John Doe", "age": "forty"}' | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 357 | output='{"name": "John Doe", "age": "thirty"}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 390 | input='{"name": "John Doe", "age": 30}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 683 | output='{"name": "John Doe", "age": 30}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 691 | output='{"name": "John Doe", "age": 30}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 711 | output='{"name": "John Doe", "age": 30}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 719 | output='{"name": "John Doe", "age": 30', # missing closing brace | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 737 | output='{"name": "John Doe", "age": 30}', | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_example_models.py | 745 | output='{"name": "John Doe", "age": "thirty"}', # invalid schema | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_datasource.py | 9 | type=DataSourceType.human, properties={"created_by": "John Doe"} | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_datasource.py | 12 | assert data_source.properties["created_by"] == "John Doe" | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_datasource.py | 86 | "created_by": "John Doe", | CODE |
| LOW | libs/core/kiln_ai/datamodel/test_datasource.py | 102 | "created_by": "John Doe", | CODE |
| LOW⚡ | libs/server/kiln_server/test_run_api.py | 977 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW⚡ | libs/server/kiln_server/test_run_api.py | 982 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW⚡ | libs/server/kiln_server/test_run_api.py | 989 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 421 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 426 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 464 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 469 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 585 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 590 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/web_ui/src/routes/(app)/sidebar_rail_item.test.ts | 8 | // `container` so the assertions are robust to portaling. Also explicitly | COMMENT |
| MEDIUM | …cs/projects/eval_splits_v1_v2/phase3_mutation_sweep.py | 168 | # lines away, and this harness applies one edit. It is covered by | COMMENT |
| MEDIUM | libs/core/kiln_ai/tools/test_rag_tools.py | 900 | multiline_description = """This is a comprehensive search tool that: | CODE |
| LOW | libs/core/kiln_ai/utils/dataset_import.py | 184 | # note that we don't persist the run yet, we just create and validate it | COMMENT |
| LOW | libs/core/kiln_ai/utils/filesystem_cache.py | 26 | # worst case we just return None | COMMENT |
| MEDIUM | libs/core/kiln_ai/adapters/test_adapter_registry.py | 534 | """Mock all config values for comprehensive testing.""" | STRING |
| MEDIUM⚡ | libs/core/kiln_ai/adapters/test_remote_config.py | 519 | """Test comprehensive handling of invalid models and providers during deserialization.""" | STRING |
| MEDIUM⚡ | libs/core/kiln_ai/adapters/test_remote_config.py | 660 | """Test comprehensive handling of invalid embedding models and providers during deserialization.""" | STRING |
| LOW | …e/kiln_ai/adapters/fine_tune/test_dataset_formatter.py | 759 | # It should just use the reasoning output if both thinking and chain_of_thought are present | COMMENT |
| LOW | …e/kiln_ai/adapters/fine_tune/test_dataset_formatter.py | 812 | # It should just use the reasoning output if both thinking and chain_of_thought are present | COMMENT |
| LOW⚡ | …/adapters/model_adapters/test_litellm_adapter_tools.py | 236 | # Usage should add up, not just return the last one. | COMMENT |
| LOW | …/adapters/model_adapters/test_litellm_adapter_tools.py | 325 | # Usage should add up, not just return the last one. | COMMENT |
| LOW | libs/core/kiln_ai/adapters/parsers/r1_parser.py | 29 | # If they do it already, great just return. If not we parse it ourselves. Not ideal, but better than upstream ch | COMMENT |
| LOW | …/kiln_ai/adapters/vector_store/test_lancedb_adapter.py | 950 | # before inserting data, we should simply return an empty list | COMMENT |
| LOW⚡ | libs/core/kiln_ai/adapters/eval/test_eval_helpers.py | 260 | # Invalid regex should not raise, just return False | COMMENT |
| MEDIUM | libs/core/kiln_ai/datamodel/strict_mode.py | 8 | # Strict mode enables extra validations that we want to enforce in Kiln App (and any other client that wants best practi | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | …iln_ai/tools/built_in_tools/test_kiln_api_call_tool.py | 145 | query = route.calls.last.request.url.query.decode() | CODE |
| CRITICAL | …iln_ai/tools/built_in_tools/test_kiln_api_call_tool.py | 721 | query = route.calls.last.request.url.query.decode() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …_guide_setup_copilot/existing_run_picker_dialog.svelte | 3 | // by tag; the union of the chosen tags is added. Synthetic (AI-generated) runs | COMMENT |
| HIGH | …_guide_setup_copilot/existing_run_picker_dialog.svelte | 78 | // Warn when any selected run (pulled in via a chosen tag) is AI-generated. | COMMENT |
| HIGH | …ore/kiln_ai/adapters/chunkers/test_semantic_chunker.py | 284 | # random paragraphs generated by ChatGPT - the idea is they are about very different topics so should | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …op/studio_server/api_client/test_kiln_server_client.py | 167 | async def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | …i/src/lib/utils/eval_types/reference_data_gate.test.ts | 77 | def helper(): | CODE |
| LOW | libs/core/kiln_ai/adapters/eval/base_eval.py | 573 | async def run_task( | CODE |
| LOW | libs/core/kiln_ai/sandbox/test_code_tool_execution.py | 194 | async def helper(): | CODE |
| LOW | libs/core/kiln_ai/sandbox/test_code_tool_execution.py | 304 | def helper(): | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_eval_model.py | 3216 | CodeEvalProperties(code="def helper():\n pass\n") | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_eval_model.py | 4642 | "def helper():\n pass\n", encoding="utf-8" | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_code_tool.py | 51 | _make_code_tool(code="def helper():\n pass\n") | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_code_tool.py | 309 | "def helper():\n pass\n", encoding="utf-8" | CODE |
| LOW | libs/server/kiln_server/run_api.py | 433 | async def run_task( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/desktop/studio_server/test_repair_api.py | 302 | # Step 1: original Run. | COMMENT |
| LOW | app/desktop/studio_server/test_repair_api.py | 317 | # Step 2: Repair, hitting the real endpoint with the persisted run. | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_tool_api.py | 1090 | # Step 1: Create a tool server | COMMENT |
| LOW | app/desktop/studio_server/test_tool_api.py | 1104 | # Step 1: Create the tool server | COMMENT |
| LOW | app/desktop/studio_server/test_tool_api.py | 1115 | # Step 2: Verify it appears in the list | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …project_id]/add_tools/local_mcp/edit_local_tool.svelte | 352 | info_description="The value of the environment variable, such as 'your-api-key-here'" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/desktop/studio_server/test_eval_api.py | 1173 | CODE | |
| MEDIUM | app/desktop/studio_server/chat/test_stream_session.py | 89 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | specs/projects/code_tools/ui_design.md | 57 | # TODO: implement | COMMENT |
| LOW | specs/projects/code_tools/phase_plans/phase_4.md | 16 | - `generateCodeToolPlaceholder(schema, toolDescription)`: generates a typed `def run(...)` stub from `parameters_schema` | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/core/kiln_ai/utils/pdf_utils.py | 81 | CODE | |
| LOW | libs/core/kiln_ai/utils/test_wandb_utils.py | 16 | CODE | |
| LOW | libs/server/kiln_server/document_api.py | 215 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/core/kiln_ai/datamodel/basemodel.py | 293 | # Usage: | COMMENT |