Build, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more.
This report summarizes scanner evidence for Kiln-AI/Kiln, a Python project with 5,187 GitHub stars. SynthScan examined 621,843 lines of code across 2616 source files, recording 9511 pattern matches distributed across 26 syntactic categories. The legacy adjusted pattern signal is 18.0 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 7967 finding(s).
Are imports declared and package/API names verified? 650 finding(s).
Are wrappers, guards, and repeated structures necessary? 7865 finding(s).
Which changes need focused human review? 9511 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 9511 distinct pattern matches across 26 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | 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 | 114 | def test_quit_app_with_tray_and_root(self, mock_tk_root, mock_kiln_tray): | CODE |
| LOW | app/desktop/test_desktop.py | 144 | def test_on_quit_without_root(self, mock_tk_root): | CODE |
| LOW | app/desktop/test_desktop.py | 163 | def test_resource_path_with_meipass(self, mock_tk_root): | CODE |
| LOW | app/desktop/test_desktop.py | 173 | def test_resource_path_without_meipass(self, mock_tk_root): | CODE |
| LOW | app/desktop/test_desktop.py | 211 | def test_run_tray_already_exists(self, mock_tk_root, mock_kiln_tray): | CODE |
| LOW | app/desktop/test_desktop.py | 223 | def test_run_tray_windows_default( | CODE |
| LOW | app/desktop/test_desktop.py | 237 | def test_run_tray_macos_no_default( | CODE |
| LOW | app/desktop/test_desktop.py | 251 | def test_run_tray_linux_uses_sni_tray_when_available( | CODE |
| LOW | app/desktop/test_desktop.py | 265 | def test_run_tray_linux_falls_back_to_pystray( | CODE |
| LOW | app/desktop/test_desktop.py | 283 | def test_run_tray_other_platforms_skip_sni_tray( | CODE |
| LOW | app/desktop/test_desktop.py | 304 | def test_run_tray_linux_pystray_failure_is_not_fatal( | CODE |
| LOW | app/desktop/test_desktop.py | 316 | def test_start_linux_sni_tray_passes_menu_and_icons(self, mock_tk_root): | CODE |
| LOW⚡ | app/desktop/test_desktop.py | 338 | def test_start_linux_sni_tray_never_raises(self, mock_tk_root): | CODE |
| LOW⚡ | app/desktop/test_desktop.py | 344 | def test_linux_tray_icon_dir_is_bundled(self): | CODE |
| LOW⚡ | app/desktop/test_desktop.py | 351 | def test_close_splash_with_pyi_splash(self, mock_tk_root): | CODE |
| LOW⚡ | app/desktop/test_desktop.py | 361 | def test_close_splash_without_pyi_splash(self, mock_tk_root): | CODE |
| LOW | app/desktop/test_desktop.py | 382 | def test_run_in_thread_calls_app_on_quit(self, mock_tk_root): | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 159 | async def copilot_passthrough_payload( | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 343 | def splits_must_name_test_once( | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 429 | async def _get_data_guide_job_status(client: AuthenticatedClient, job_id: str) -> str: | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 484 | async def _get_data_guide_job_result(client: AuthenticatedClient, job_id: str) -> str: | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 613 | def _validate_structured_examples(input_json_schema: str, examples: list[str]) -> None: | CODE |
| LOW | app/desktop/studio_server/multiturn_sdg_api.py | 176 | def _exactly_one_target_config(self) -> Self: | CODE |
| LOW | app/desktop/studio_server/multiturn_sdg_api.py | 236 | def resolve_target_run_config( | CODE |
| LOW⚡ | app/desktop/studio_server/multiturn_sdg_api.py | 388 | def _case_dict_at_plan_offset(case: SdkCase, start: int) -> SyntheticUserCaseDict: | CODE |
| LOW⚡ | app/desktop/studio_server/multiturn_sdg_api.py | 399 | def connect_multiturn_sdg_api(app: FastAPI) -> 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_with_provenance(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 679 | def test_create_task_from_tool_stamps_provenance(client, tmp_path): | CODE |
| LOW | app/desktop/studio_server/test_run_config_api.py | 721 | def test_create_task_from_tool_rejects_derived_from_ids_before_any_write( | CODE |
| 6907 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/studio_server/multiturn_sdg_api.py | 95 | # ───────────────────────── Pydantic API models ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/multiturn_sdg_api.py | 214 | # ───────────────────────── helpers ───────────────────────── | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/multiturn_sdg_api.py | 396 | # ───────────────────────── route registration ───────────────────────── | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_eval_builder_api.py | 1897 | # ───────────────────────── judge_traces (SSE) ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_api.py | 163 | # ───────────────────────── run_judge_for_trace ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_api.py | 373 | # ───────────────────────── build_claims primitive ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_api.py | 549 | # ───────────────────────── author_judge ────────────────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_api.py | 903 | # ───────────────────────── refine_judge ────────────────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_api.py | 1045 | # ───────────────────────── multi_turn_pipeline (SSE) ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_api.py | 2355 | # ───────────────────────── single_turn_pipeline (SSE) ───────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_api.py | 2898 | # ───────────────────────── preflight_model ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_api.py | 2987 | # ─────────────── both pipelines in a git auto-synced project ─────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 433 | # ── Step 4a — PLAN (UI: on_plan_multi_turn) ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 447 | # ── Step 4b — SU CASES (UI: on_drive_multi_turn, part 1) ──────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 658 | # ── Step 6 — SAVE (UI: on_save, multi-turn branch) ────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 720 | # ── Persisted answer key — what the builder leaves behind ─────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 873 | # ── Step 7 — RUN THE SAVED EVAL (the evals UI's own endpoints) ────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 1166 | # ─────────────────── tool-calling leg (saved run config) ─────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 1268 | # ── SU CASES — one batch call from the hand-written scenarios. ────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 1286 | # ── PIPELINE — the drive references the SAVED run config by id. ───── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 1302 | # ── Tool invocations in the DRIVEN trace, on disk. ────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 1335 | # ── Tool activity reached the judge. ──────────────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_multiturn_sdg_api.py | 55 | # ───────────────────────── fixtures ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_multiturn_sdg_api.py | 212 | # ───────────────────────── generate_cases ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_multiturn_sdg_api.py | 339 | # ─────────────── generate_cases with per-case prompts (batch plan) ─────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_multiturn_sdg_api.py | 416 | # ─────────────── generate_cases chunking (plans over one call) ─────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_multiturn_sdg_api.py | 637 | # ───────────────────────── run_cases_batch (SSE) ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/test_multiturn_sdg_api.py | 1006 | # ───────────────────── target run config resolution ───────────────────── | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/utils/test_copilot_utils.py | 916 | # ───────────────── delete_multi_turn_batch_chains ───────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/utils/test_copilot_utils.py | 1064 | # ───────────── single-turn drive tags + delete_single_turn_batch_runs ─────── | COMMENT |
| MEDIUM | app/desktop/studio_server/utils/test_copilot_utils.py | 1168 | # ───────────────── multi-turn eval slice (EvalInput writer) ───────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/synthetic_user/test_client.py | 76 | # ───────────────────────── happy path ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/synthetic_user/test_client.py | 123 | # ───────────────────────── 502 ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/synthetic_user/test_client.py | 160 | # ───────────────────────── 500 ───────────────────────── | COMMENT |
| MEDIUM | app/desktop/studio_server/synthetic_user/test_client.py | 199 | # ───────────────────────── 401 ───────────────────────── | COMMENT |
| 347 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 | 2614 | # Create a target run config | COMMENT |
| MEDIUM | …ktop/studio_server/test_prompt_optimization_job_api.py | 2889 | # Create a prompt | COMMENT |
| MEDIUM | …ktop/studio_server/test_prompt_optimization_job_api.py | 2928 | # Create a run config | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3703 | # Create an MCP tool server to trigger the RAG set inclusion | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3766 | # Create a RAG config | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4349 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4358 | # Create a run config with ID "default" for the task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4435 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4444 | # Create a run config with ID "default" for the task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4485 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4494 | # Create a run config with ID "default" for the task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4607 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4616 | # Create a run config with ID "default" for the task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4674 | # Create a test task | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 4683 | # Create a run config for the task | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 388 | # Create the tool with empty tools | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 444 | # Create the tool with successful validation | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 584 | # Create the tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 724 | # Create a mapping of server URLs to their tools | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 816 | # Create a tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 830 | # Create the tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1353 | # Create a mock ExternalToolServer | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1386 | # Create a mock ExternalToolServer | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1408 | # Create a mock ExternalToolServer | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1430 | # Create a mock ExternalToolServer | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1454 | # Create a mock ExternalToolServer with kiln_task type | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1721 | # Create a tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1859 | # Create the tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 1983 | # Create a tool server with secret headers | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2003 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2088 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2133 | # Create a tool server first | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2149 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2193 | # Create a tool server with secret headers | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2213 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2656 | # Create a local MCP tool server with secret env vars | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2677 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2724 | # Create a local MCP tool server without secret env vars | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2741 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2784 | # Create a local MCP tool server with secret env vars | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2805 | # Create the tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2846 | # Create a local MCP tool server first | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2863 | # Create the local tool server first (without mocking Config to avoid interference) | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2922 | # Create the tool with successful validation | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 2998 | # Create the tool with successful validation | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3069 | # Create the tool with successful validation | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3151 | # Create the local MCP tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3226 | # Create a test task | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3244 | # Create a Kiln task tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3378 | # Create the local MCP tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3476 | # Create the local MCP tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3717 | # Create the MCP server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3780 | # Create an MCP tool server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3794 | # Create the MCP server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 4041 | # Create a mock KilnTaskTool | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 4073 | # Create a mock KilnTaskTool with minimal fields | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 4158 | # Create a non-kiln task server to ensure it's filtered out | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 4213 | # Create a non-kiln task server | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 4246 | # Create a valid task first | COMMENT |
| 208 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 | …_judge_prompt_v1_copilot_generate_judge_prompt_post.py | 74 | Generate Judge Prompt Author a judge prompt from a spec. The judge model is the caller's choice. Args: | STRING |
| HIGH | …_judge_prompt_v1_copilot_generate_judge_prompt_post.py | 106 | Generate Judge Prompt Author a judge prompt from a spec. The judge model is the caller's choice. Args: | STRING |
| HIGH | …_judge_prompt_v1_copilot_generate_judge_prompt_post.py | 133 | Generate Judge Prompt Author a judge prompt from a spec. The judge model is the caller's choice. Args: | STRING |
| HIGH | …_judge_prompt_v1_copilot_generate_judge_prompt_post.py | 163 | Generate Judge Prompt Author a judge prompt from a spec. The judge model is the caller's choice. Args: | STRING |
| HIGH | …ne_judge_prompt_v1_copilot_refine_judge_prompt_post.py | 74 | Refine Judge Prompt Refine a judge prompt from human grades on reviewed traces. Returns a proposed revision p | STRING |
| HIGH | …ne_judge_prompt_v1_copilot_refine_judge_prompt_post.py | 108 | Refine Judge Prompt Refine a judge prompt from human grades on reviewed traces. Returns a proposed revision p | STRING |
| HIGH | …ne_judge_prompt_v1_copilot_refine_judge_prompt_post.py | 137 | Refine Judge Prompt Refine a judge prompt from human grades on reviewed traces. Returns a proposed revision p | STRING |
| HIGH | …ne_judge_prompt_v1_copilot_refine_judge_prompt_post.py | 169 | Refine Judge Prompt Refine a judge prompt from human grades on reviewed traces. Returns a proposed revision p | STRING |
| HIGH | …claim_evidence_v1_copilot_build_claim_evidence_post.py | 74 | Build Claim Evidence Build a review card (overview plus claims) for one eval trace + judge decision. Args: | STRING |
| HIGH | …claim_evidence_v1_copilot_build_claim_evidence_post.py | 105 | Build Claim Evidence Build a review card (overview plus claims) for one eval trace + judge decision. Args: | STRING |
| HIGH | …claim_evidence_v1_copilot_build_claim_evidence_post.py | 131 | Build Claim Evidence Build a review card (overview plus claims) for one eval trace + judge decision. Args: | STRING |
| HIGH | …claim_evidence_v1_copilot_build_claim_evidence_post.py | 160 | Build Claim Evidence Build a review card (overview plus claims) for one eval trace + judge decision. Args: | STRING |
| HIGH | …th_answers_v1_copilot_refine_spec_with_answers_post.py | 74 | Refine Spec With Answers Refine a specification with answers. Deprecated: use /refine_spec_with_answers_and_n | STRING |
| HIGH | …th_answers_v1_copilot_refine_spec_with_answers_post.py | 110 | Refine Spec With Answers Refine a specification with answers. Deprecated: use /refine_spec_with_answers_and_n | STRING |
| HIGH | …th_answers_v1_copilot_refine_spec_with_answers_post.py | 141 | Refine Spec With Answers Refine a specification with answers. Deprecated: use /refine_spec_with_answers_and_n | STRING |
| HIGH | …th_answers_v1_copilot_refine_spec_with_answers_post.py | 175 | Refine Spec With Answers Refine a specification with answers. Deprecated: use /refine_spec_with_answers_and_n | 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 | …e_v1_copilot_refine_spec_with_answers_and_name_post.py | 74 | Refine Spec With Answers And Name Refine a specification with answers, also returning a suggested eval name. | STRING |
| HIGH | …e_v1_copilot_refine_spec_with_answers_and_name_post.py | 110 | Refine Spec With Answers And Name Refine a specification with answers, also returning a suggested eval name. | STRING |
| HIGH | …e_v1_copilot_refine_spec_with_answers_and_name_post.py | 141 | Refine Spec With Answers And Name Refine a specification with answers, also returning a suggested eval name. | STRING |
| HIGH | …e_v1_copilot_refine_spec_with_answers_and_name_post.py | 175 | Refine Spec With Answers And Name Refine a specification with answers, also returning a suggested eval name. | 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 |
| 58 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/desktop/desktop.py | 21 | 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 | …ent/models/refine_spec_from_answers_and_name_output.py | 1 | 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 | …client/kiln_ai_server_client/models/task_skill_info.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 | …/api_client/kiln_ai_server_client/models/citation_1.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/api_client/kiln_ai_server_client/models/citation.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 | …_client/kiln_ai_server_client/models/task_tool_info.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 | …erver_client/models/generate_judge_prompt_api_input.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 | |
| 503 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app/desktop/desktop.py | 189 | except ModuleNotFoundError: | CODE |
| HIGH | app/desktop/studio_server/provider_api.py | 104 | except Exception: | CODE |
| HIGH | …r/api_client/kiln_ai_server_client/models/task_info.py | 113 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …r/api_client/kiln_ai_server_client/models/task_info.py | 135 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …api_client/kiln_ai_server_client/models/data_source.py | 128 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …api_client/kiln_ai_server_client/models/data_source.py | 136 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …server_client/models/data_guide_job_result_response.py | 88 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …ient/models/chat_completion_developer_message_param.py | 81 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er_client/models/chat_completion_user_message_param.py | 157 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er_client/models/chat_completion_user_message_param.py | 128 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er_client/models/chat_completion_user_message_param.py | 136 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er_client/models/chat_completion_user_message_param.py | 144 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 340 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 366 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 383 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 402 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 419 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 511 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 549 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 466 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 474 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 482 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 490 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …er/api_client/kiln_ai_server_client/models/task_run.py | 498 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …rver_client/models/kiln_agent_run_config_properties.py | 177 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …rver_client/models/kiln_agent_run_config_properties.py | 194 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …ent/kiln_ai_server_client/models/mcp_tool_reference.py | 126 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …ent/kiln_ai_server_client/models/mcp_tool_reference.py | 143 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …erver_client/models/generate_judge_prompt_api_input.py | 111 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …erver_client/models/generate_judge_prompt_api_input.py | 133 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …ient/models/prompt_optimization_job_result_response.py | 88 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …api_client/kiln_ai_server_client/models/task_output.py | 170 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …api_client/kiln_ai_server_client/models/task_output.py | 187 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …els/chat_completion_assistant_message_param_wrapper.py | 188 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …els/chat_completion_assistant_message_param_wrapper.py | 230 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …els/chat_completion_assistant_message_param_wrapper.py | 259 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …els/chat_completion_assistant_message_param_wrapper.py | 305 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …els/chat_completion_assistant_message_param_wrapper.py | 217 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …t/models/chat_completion_tool_message_param_wrapper.py | 107 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …_ai_server_client/models/sample_job_result_response.py | 88 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | …_client/models/chat_completion_system_message_param.py | 81 | except (TypeError, ValueError, AttributeError, KeyError): | CODE |
| HIGH | app/desktop/studio_server/chat/stream_session.py | 125 | except json.JSONDecodeError: | CODE |
| HIGH | app/desktop/studio_server/utils/response_utils.py | 25 | except json.JSONDecodeError: | CODE |
| HIGH | app/desktop/studio_server/jobs/test_registry.py | 586 | except asyncio.CancelledError: | CODE |
| HIGH | app/desktop/studio_server/jobs/test_registry.py | 863 | except asyncio.CancelledError: | CODE |
| HIGH | app/desktop/studio_server/jobs/test_registry.py | 483 | except asyncio.CancelledError: | CODE |
| HIGH | app/desktop/studio_server/jobs/registry.py | 67 | except ValueError: | CODE |
| HIGH | app/desktop/studio_server/jobs/registry.py | 502 | except asyncio.CancelledError: | CODE |
| HIGH | app/desktop/studio_server/jobs/registry.py | 528 | except ValueError: | CODE |
| HIGH | app/desktop/studio_server/jobs/error_log.py | 31 | except Exception: | CODE |
| HIGH | app/desktop/studio_server/jobs/error_log.py | 66 | except Exception: | CODE |
| HIGH | app/desktop/studio_server/jobs/test_api.py | 59 | except JobOperationError: | CODE |
| HIGH | app/desktop/git_sync/git_sync_manager.py | 73 | except Exception: | CODE |
| HIGH | app/desktop/git_sync/git_sync_manager.py | 624 | except Exception: | CODE |
| HIGH | app/desktop/git_sync/test_middleware.py | 1218 | except Exception: | CODE |
| HIGH | app/desktop/git_sync/clone.py | 418 | except Exception: | CODE |
| HIGH | app/desktop/git_sync/clone.py | 514 | except Exception: | CODE |
| HIGH | app/desktop/git_sync/integration_tests/conftest.py | 221 | except Exception: | CODE |
| HIGH | .agents/scripts/provider_utils.py | 340 | except ValueError: | CODE |
| HIGH | libs/core/kiln_ai/tools/sandbox_bridge.py | 613 | except Exception: | CODE |
| 12 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 | 3666 | # Should map to built-in embedding model by name | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3670 | # RAG-specific tests | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3674 | # Create some RAG configs | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3699 | # Save the RAG configs | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3703 | # Create an MCP tool server to trigger the RAG set inclusion | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_tool_api.py | 3766 | # Create a RAG config | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3621 | # Create some RAG configs | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3646 | # Save the RAG configs | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3732 | # Built-in AI Models set + RAG set. | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3738 | # Verify RAG tool details: name is the display name, function_name | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3816 | # Built-in AI Models + RAG + MCP sets. | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3838 | # Verify RAG tools | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3886 | # Create active and archived RAG configs | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3954 | # Built-in AI Models + RAG + Kiln task sets. | COMMENT |
| MEDIUM | app/desktop/studio_server/test_tool_api.py | 3968 | # Only the active RAG config should be present | COMMENT |
| MEDIUM | app/desktop/studio_server/eval_builder_api.py | 447 | # frames); this catches orchestration bugs only. | COMMENT |
| MEDIUM | app/desktop/studio_server/eval_builder_api.py | 940 | # orchestration error surfaced by the job runner). The retryable wrapper | COMMENT |
| MEDIUM | app/desktop/studio_server/eval_api.py | 140 | # Treat empty-string and missing chain-of-thought instructions as equivalent | COMMENT |
| MEDIUM | app/desktop/studio_server/tool_api.py | 333 | # Add search tools (RAG) | COMMENT |
| MEDIUM⚡ | app/desktop/studio_server/test_eval_api.py | 5554 | # Only RAG template allows eval_configs_filter_id to be None | COMMENT |
| MEDIUM | app/desktop/studio_server/api_models/copilot_models.py | 336 | # 200k chars stays well under the model's context window even for prose. The | COMMENT |
| MEDIUM | app/desktop/studio_server/jobs/models.py | 163 | # (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 | 241 | # Create mock RAG config | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/tools/test_tool_registry.py | 248 | # Setup mock RAG config | COMMENT |
| MEDIUM⚡ | libs/core/kiln_ai/tools/test_tool_registry.py | 253 | # Setup mock RAG tool | COMMENT |
| MEDIUM | libs/core/kiln_ai/tools/test_tool_registry.py | 266 | # Test with RAG tool ID | COMMENT |
| MEDIUM | libs/core/kiln_ai/utils/dataset_import.py | 28 | # context window serializes to <10 MiB of text) while still bounding memory | COMMENT |
| MEDIUM | libs/core/kiln_ai/synthetic_user/runner.py | 199 | # orchestration layer and injected via AdapterConfig — the adapter | COMMENT |
| MEDIUM | libs/core/kiln_ai/synthetic_user/runner.py | 314 | # ───────────────────────── per-case orchestration ───────────────────────── | COMMENT |
| MEDIUM | libs/core/kiln_ai/synthetic_user/runner.py | 339 | # orchestration error surfaced by the job runner). The retryable wrapper | COMMENT |
| MEDIUM | libs/core/kiln_ai/adapters/ml_model_list.py | 452 | # 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 | 10621 | # and let Kiln drive chain-of-thought via the multi-turn COT strategy. | COMMENT |
| MEDIUM | …s/core/kiln_ai/adapters/pytest_prerelease_whitelist.py | 50 | # Default embedding for most RAG templates, and its model id tracks a | 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 |
| 51 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 | 152 | except Exception: | CODE |
| LOW | app/desktop/desktop.py | 180 | except Exception: | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 730 | except Exception: | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 740 | except Exception: | CODE |
| LOW | app/desktop/studio_server/multiturn_sdg_api.py | 516 | except Exception as exc: | CODE |
| LOW | app/desktop/studio_server/multiturn_sdg_api.py | 553 | except Exception as e: | CODE |
| MEDIUM | app/desktop/studio_server/multiturn_sdg_api.py | 531 | def event_generator(): | 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 | 446 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/finetune_api.py | 810 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 359 | except Exception: | CODE |
| LOW | app/desktop/studio_server/eval_builder_api.py | 172 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/eval_builder_api.py | 445 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/eval_builder_api.py | 509 | except Exception: | CODE |
| LOW | app/desktop/studio_server/eval_builder_api.py | 556 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/eval_builder_api.py | 1202 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/eval_builder_api.py | 1240 | except Exception: | CODE |
| LOW | app/desktop/studio_server/eval_builder_api.py | 1310 | except Exception as exc: | CODE |
| LOW | app/desktop/studio_server/eval_builder_api.py | 1545 | except Exception as e: | CODE |
| LOW⚡ | app/desktop/studio_server/provider_api.py | 1638 | except Exception: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 87 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 104 | except Exception: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1140 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1180 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1235 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1259 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1290 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1328 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1351 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1383 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1415 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1449 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1488 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1526 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1559 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1611 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1726 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1766 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1795 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 1845 | except Exception: | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 2419 | except Exception: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 493 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 507 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 546 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 560 | except Exception as e: | CODE |
| LOW | app/desktop/studio_server/data_gen_api.py | 1403 | except Exception: | CODE |
| LOW | app/desktop/studio_server/tool_api.py | 367 | except Exception: | CODE |
| LOW | app/desktop/studio_server/tool_api.py | 1053 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 378 | except Exception as cleanup_error: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 448 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 503 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 571 | except Exception as e: | CODE |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 679 | except Exception as e: | CODE |
| 208 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 | 1144 | # Step 1: Create a tool server | COMMENT |
| LOW | app/desktop/studio_server/test_tool_api.py | 1158 | # Step 1: Create the tool server | COMMENT |
| LOW | app/desktop/studio_server/test_tool_api.py | 1169 | # Step 2: Verify it appears in the list | COMMENT |
| LOW | …p)/tools/[project_id]/add_tools/code_tool/page.test.ts | 134 | // Step 2: create | 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 |
| 68 more matches not shown… | ||||
| 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 | 381 | ) | COMMENT |
| LOW | app/desktop/studio_server/multiturn_sdg_api.py | 81 | # Persona cases asked for per kiln_server call. kiln_server accepts at most | COMMENT |
| LOW | …ktop/studio_server/test_prompt_optimization_job_api.py | 61 | prompt_optimization_job_from_id, | COMMENT |
| LOW | app/desktop/studio_server/eval_builder_api.py | 141 | # model client's per-request timeout), and a pathologically slow run is | COMMENT |
| LOW | app/desktop/studio_server/eval_builder_api.py | 1021 | # Each case's (input, output) pair, recorded by the producer for the | COMMENT |
| LOW | …esktop/studio_server/api_models/eval_builder_models.py | 241 | # One stream runs [drive → judge] (multi-turn multi_turn_pipeline) or | COMMENT |
| LOW | app/desktop/studio_server/api_models/copilot_models.py | 321 | title="target_specification", | COMMENT |
| LOW | app/desktop/studio_server/jobs/registry.py | 81 | self._max_concurrent = _resolve_max_concurrent(max_concurrent) | COMMENT |
| LOW | app/web_ui/playwright.config.ts | 61 | // name: 'webkit', | COMMENT |
| LOW | app/web_ui/src/lib/ui/json_span_map.ts | 1 | // Map a character span from one rendering of a JSON document onto another. | COMMENT |
| LOW | app/web_ui/src/lib/ui/callout_card.svelte | 1 | <script lang="ts"> | COMMENT |
| LOW | app/web_ui/src/lib/ui/trace/chat_trace.svelte | 21 | export let truncate_at_trace_index: number | null = null | COMMENT |
| LOW | app/web_ui/src/lib/ui/trace/chat_trace.svelte | 201 | // Keyed by `${trace_index}-${tool_call_index}` so each tool call within an | 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 | …b_ui/src/lib/ui/conversation/multiturn_composer.svelte | 61 | let run_error: KilnError | null = null | 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/utils/task_response_tool.ts | 1 | // The synthetic tool a model calls to hand back a structured answer. The user | COMMENT |
| LOW | app/web_ui/src/lib/components/add_example_dialog.svelte | 41 | export let include_output: boolean = true | 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 | app/web_ui/src/lib/eval/default_judge.ts | 1 | // The judge-config shapes shared across the eval builder. The judge MODEL | COMMENT |
| LOW | …/[task_id]/spec_builder/create_spec_judge_form.test.ts | 221 | }) | COMMENT |
| LOW | …cs/[project_id]/[task_id]/select_template/+page.svelte | 121 | goto(judge_only_builder_url(project_id, task_id, id as V2EvalType)) | COMMENT |
| LOW | …specs/[project_id]/[task_id]/builder/claim_card.svelte | 1 | <script lang="ts"> | COMMENT |
| LOW | …specs/[project_id]/[task_id]/builder/claim_card.svelte | 81 | : verdict.agrees === null | COMMENT |
| LOW | …s/[project_id]/[task_id]/builder/progress_count.svelte | 1 | <script lang="ts"> | COMMENT |
| LOW | …app)/specs/[project_id]/[task_id]/builder/+page.svelte | 61 | // Claim/Evidence replaces the read-the-trace pass/fail review: the reviewer | COMMENT |
| LOW | …app)/specs/[project_id]/[task_id]/builder/+page.svelte | 281 | function is_abort_error(error: unknown): boolean { | COMMENT |
| LOW | …app)/specs/[project_id]/[task_id]/builder/+page.svelte | 321 | // are about making the eval that now exists. Back leaves the wizard | COMMENT |
| LOW | …app)/specs/[project_id]/[task_id]/builder/+page.svelte | 381 | COMMENT | |
| LOW | …app)/specs/[project_id]/[task_id]/builder/+page.svelte | 821 | // The builder authors issue specs only, end to end: save hardcodes the | COMMENT |
| LOW | …app)/specs/[project_id]/[task_id]/builder/+page.svelte | 1001 | } | COMMENT |
| LOW | …app)/specs/[project_id]/[task_id]/builder/+page.svelte | 1041 | // the judge the user calibrated against is the judge that ships. Both | COMMENT |
| LOW | …app)/specs/[project_id]/[task_id]/builder/+page.svelte | 1061 | // The summary isn't regenerated when the user edits/deletes prompts — flag | COMMENT |
| LOW | …app)/specs/[project_id]/[task_id]/builder/+page.svelte | 1181 | minting_total = 0 | COMMENT |
| 81 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/desktop/studio_server/finetune_api.py | 215 | CODE | |
| LOW | app/desktop/studio_server/finetune_api.py | 285 | CODE | |
| LOW | app/desktop/studio_server/finetune_api.py | 310 | CODE | |
| LOW | app/desktop/studio_server/finetune_api.py | 415 | CODE | |
| LOW | app/desktop/studio_server/test_generate_docs.py | 37 | CODE | |
| LOW | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 241 | CODE | |
| LOW | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 429 | CODE | |
| LOW | app/desktop/studio_server/test_tool_api.py | 853 | CODE | |
| LOW | app/desktop/studio_server/eval_builder_api.py | 688 | 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 | 262 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 1856 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 1935 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 1970 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 2064 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 2087 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 2253 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 282 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 428 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 495 | CODE | |
| LOW | app/desktop/studio_server/provider_api.py | 696 | CODE | |
| LOW | app/desktop/studio_server/eval_api.py | 1771 | CODE | |
| LOW | app/desktop/studio_server/eval_api.py | 3033 | CODE | |
| LOW | app/desktop/studio_server/eval_api.py | 3186 | CODE | |
| LOW | app/desktop/studio_server/tool_api.py | 291 | CODE | |
| LOW | app/desktop/studio_server/tool_api.py | 524 | CODE | |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 511 | CODE | |
| LOW | …p/desktop/studio_server/prompt_optimization_job_api.py | 811 | 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/linux_tray/generate_icons.py | 55 | CODE | |
| LOW | app/desktop/linux_tray/sni_tray.py | 185 | CODE | |
| LOW | app/desktop/linux_tray/sni_tray.py | 262 | CODE | |
| LOW | app/desktop/git_sync/git_sync_api.py | 448 | CODE | |
| LOW | app/desktop/git_sync/git_sync_api.py | 714 | 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 | 208 | CODE | |
| LOW | .agents/scripts/provider_utils.py | 316 | CODE | |
| LOW | …ts/skills/kiln-conventions/scripts/conventions_gate.py | 144 | CODE | |
| LOW | …ts/skills/kiln-conventions/scripts/conventions_gate.py | 197 | CODE | |
| 90 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app/desktop/studio_server/multiturn_sdg_api.py | 106 | "scenario_index?: int | null}. The synthetic_user_info value is an " | CODE |
| HIGH | app/desktop/studio_server/test_eval_builder_api.py | 978 | # claim with its grade (a blank why as an explicit null), and the | COMMENT |
| HIGH | app/desktop/studio_server/data_gen_api.py | 781 | # 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 | 6462 | # save_to_file writes the migrated shape (splits populated, legacy fields null). | COMMENT |
| HIGH | app/desktop/studio_server/test_eval_api.py | 2776 | synthetic-user field null, so the sum must be a no-op for them.""" | STRING |
| 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 | app/desktop/git_sync/clone.py | 509 | # a value that was never set. `or ""` covers null, missing and empty | COMMENT |
| HIGH⚡ | …ktop/git_sync/integration_tests/test_crash_recovery.py | 125 | remote.push([f"+refs/heads/{branch}"]) | CODE |
| HIGH | libs/core/kiln_ai/tools/test_memory_tools.py | 103 | # schemas do not allow null, so a null the model was told to send ends the run. | COMMENT |
| HIGH | libs/core/kiln_ai/adapters/parsers/test_json_parser.py | 66 | "null": null, | CODE |
| HIGH | …s/core/kiln_ai/adapters/eval/test_v2_eval_code_eval.py | 305 | save time (pydantic serializes NaN as null, so the saved file won't load).""" | STRING |
| 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_eval_model.py | 4018 | checks; pydantic then serialized it as null, making the saved EvalRun file | 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/memory.py | 84 | "the whole memory (leave content null). No newlines.", | CODE |
| 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 | 1438 | the eval saves with both fields null, and re-running the validator — which | STRING |
| HIGH | libs/server/kiln_server/test_run_api.py | 2106 | '{"train": null, "test": 0.5}', | CODE |
| HIGH | libs/server/kiln_server/run_api.py | 1024 | # runner sets it. Checking the key also refuses `{"eval_source": null}`, which | COMMENT |
| HIGH | libs/server/kiln_server/memory_api.py | 44 | "(leave content null). No newlines.", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/desktop/desktop_server.py | 58 | 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 | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/copilot_api.py | 156 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/multiturn_sdg_api.py | 78 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/code_tool_api.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/finetune_api.py | 62 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/skill_api.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 139 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/eval_builder_api.py | 126 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/provider_api.py | 64 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/eval_api.py | 124 | 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 | 64 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/world_api.py | 26 | 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/utils/copilot_utils.py | 69 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/synthetic_user/client.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/studio_server/synthetic_user/__init__.py | 12 | __all__ = [ | CODE |
| LOW | app/desktop/studio_server/jobs/registry.py | 29 | 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/linux_tray/sni_tray.py | 62 | logger = logging.getLogger(__name__) | CODE |
| LOW | app/desktop/linux_tray/sni_tray.py | 142 | def set_icon(self, icon: TrayIcon) -> None: | 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 | 24 | 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/memory/memory_store.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/memory/__init__.py | 12 | __all__ = [ | CODE |
| LOW | libs/core/kiln_ai/worlds/session_manager.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/utils/torn_read.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/utils/config.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/utils/dataset_import.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/utils/async_job_runner.py | 7 | 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/slow_operation.py | 13 | 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 | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | libs/core/kiln_ai/cli/__init__.py | 3 | __all__ = ["app"] | CODE |
| 62 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⚡ | 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 | 900 | # Check if the model supports tools via 'supportTools' | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 1335 | # Check if all built-in models are present in the response | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 1341 | # 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 | 3497 | # Check if all built-in embedding models are present in the response | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 3503 | # 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 | 3764 | # Check if all built-in reranker models are present in the response | COMMENT |
| LOW⚡ | app/desktop/studio_server/test_provider_api.py | 3770 | # 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 | 704 | # Check if provider is configured | COMMENT |
| LOW | app/desktop/studio_server/eval_api.py | 3092 | # 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 | 3284 | # Check if this item is expected for this eval | COMMENT |
| LOW | app/desktop/studio_server/data_gen_api.py | 709 | # Set parent to task to ensure the correct path is used | COMMENT |
| LOW | app/desktop/studio_server/tool_api.py | 574 | # 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 | 601 | # 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 | 115 | # 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/dataset_import.py | 241 | # Assign tags to runs | COMMENT |
| LOW | libs/core/kiln_ai/utils/dataset_import.py | 360 | # 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 | 73 | # Check if Ollama API is running | COMMENT |
| LOW⚡ | libs/core/kiln_ai/adapters/test_prompt_adaptors.py | 82 | # Check if Ollama API is running | COMMENT |
| LOW⚡ | libs/core/kiln_ai/adapters/test_prompt_adaptors.py | 91 | # Check if Ollama API is running | COMMENT |
| LOW⚡ | libs/core/kiln_ai/adapters/test_prompt_adaptors.py | 100 | # 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 | 346 | # Check if we were interrupted by tool calls | COMMENT |
| LOW | libs/core/kiln_ai/adapters/eval/test_eval_runner.py | 710 | # Set filter to match the task | COMMENT |
| LOW | libs/core/kiln_ai/datamodel/task_output.py | 87 | # 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 | app/desktop/studio_server/test_tool_api.py | 3139 | "DATABASE_PASSWORD": "placeholder", | CODE |
| LOW | app/desktop/studio_server/test_tool_api.py | 3178 | "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 | 339 | expect(isCodeUnmodified("", "placeholder")).toBe(true) | CODE |
| LOW | app/web_ui/src/lib/utils/code_tool_helpers.test.ts | 343 | 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 | …ate/[project_id]/[task_id]/kiln_pro_batch_form.test.ts | 73 | expect(guidance_box.getAttribute("placeholder")).toBe("Guidance") | CODE |
| LOW | …ate/[project_id]/[task_id]/kiln_pro_batch_form.test.ts | 82 | expect(guidance_box.getAttribute("placeholder")).toBe( | CODE |
| LOW | …up/(setup)/connect_providers/connect_providers.test.ts | 244 | ).map((input) => input.getAttribute("placeholder")) | 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 | …re/kiln_ai/adapters/model_adapters/test_jev_adapter.py | 108 | super().__init__(api_key="fake-key") | 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 | 855 | 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 | 1041 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW⚡ | libs/server/kiln_server/test_run_api.py | 1046 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW⚡ | libs/server/kiln_server/test_run_api.py | 1053 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 485 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 490 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 528 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 533 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 649 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| LOW | libs/server/kiln_server/test_run_api.py | 654 | type=DataSourceType.human, properties={"created_by": "Jane Doe"} | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/desktop/studio_server/test_eval_builder_e2e_paid.py | 142 | # harness shrinks them without touching any code. Nine keeps the run cheap | COMMENT |
| 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 | 266 | # 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 | 588 | """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 | …/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 | 281 | # 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 | 3875 | CodeEvalProperties(code="def helper():\n pass\n") | CODE |
| LOW⚡ | libs/core/kiln_ai/datamodel/test_eval_model.py | 5304 | "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 | 363 | "def helper():\n pass\n", encoding="utf-8" | CODE |
| LOW | libs/server/kiln_server/run_api.py | 751 | 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 | 1144 | # Step 1: Create a tool server | COMMENT |
| LOW | app/desktop/studio_server/test_tool_api.py | 1158 | # Step 1: Create the tool server | COMMENT |
| LOW | app/desktop/studio_server/test_tool_api.py | 1169 | # Step 2: Verify it appears in the list | COMMENT |
| LOW | …p)/tools/[project_id]/add_tools/code_tool/page.test.ts | 134 | // Step 2: create | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/desktop/studio_server/test_multiturn_sdg_api.py | 805 | CODE | |
| MEDIUM | app/desktop/studio_server/test_eval_api.py | 1513 | CODE | |
| MEDIUM | app/desktop/studio_server/chat/test_stream_session.py | 89 | CODE | |
| MEDIUM | libs/core/kiln_ai/adapters/eval/test_eval_runner.py | 2567 | CODE |
| 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 |
|---|---|---|---|---|
| LOW | app/desktop/studio_server/eval_builder_api.py | 1498 | CODE | |
| 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 | 217 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/kiln-ui/ui_gate.sh | 4 | # Usage: | COMMENT |
| LOW | libs/core/kiln_ai/datamodel/basemodel.py | 293 | # Usage: | COMMENT |
| 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 |