From 36608ac36828d7e881a880e5fd23aac61314148b Mon Sep 17 00:00:00 2001 From: busya Date: Wed, 20 May 2026 14:34:43 +0300 Subject: [PATCH] fix(semantics): upgrade complexity tiers, add missing relation edge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LanguageDetectService: C2→C3 (has @RELATION, requires C3) - LanguageDetectServiceTests: C2→C3 (has @RELATION, requires C3) - preview.py: add @RELATION DEPENDS_ON -> [LanguageDetectService] --- .axiom/semantic_index/index.json | 23893 ++++++---------- .../translate/__tests__/test_lang_detect.py | 2 +- backend/src/plugins/translate/_lang_detect.py | 2 +- backend/src/plugins/translate/preview.py | 1 + 4 files changed, 8696 insertions(+), 15202 deletions(-) diff --git a/.axiom/semantic_index/index.json b/.axiom/semantic_index/index.json index 2ad33e76..726d553e 100644 --- a/.axiom/semantic_index/index.json +++ b/.axiom/semantic_index/index.json @@ -1,9 +1,9 @@ { - "generated_at": "2026-05-19T17:00:10.682233670Z", + "generated_at": "2026-05-20T11:33:23.118965041Z", "root_path": "/home/busya/dev/ss-tools", - "contract_count": 2614, - "edge_count": 1946, - "file_count": 632, + "contract_count": 2663, + "edge_count": 1968, + "file_count": 643, "contracts": [ { "contract_id": "DeleteRunningTasksUtil", @@ -391,15 +391,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "SIDE_EFFECT", @@ -583,17 +574,7 @@ "target_ref": "[AssistantApiTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _run_async [TYPE Function]\n# @RELATION BINDS_TO -> [AssistantApiTests]\ndef _run_async(coro):\n return asyncio.run(coro)\n# #endregion _run_async\n" @@ -615,17 +596,7 @@ "target_ref": "[AssistantApiTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _clear_assistant_state [TYPE Function]\n# @RELATION BINDS_TO -> [AssistantApiTests]\ndef _clear_assistant_state():\n assistant_routes.CONVERSATIONS.clear()\n assistant_routes.USER_ACTIVE_CONVERSATION.clear()\n assistant_routes.CONFIRMATIONS.clear()\n assistant_routes.ASSISTANT_AUDIT.clear()\n# #endregion _clear_assistant_state\n" @@ -649,17 +620,7 @@ "target_ref": "[AssistantApiTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_unknown_command_returns_needs_clarification [TYPE Function]\n# @RELATION BINDS_TO -> [AssistantApiTests]\n# @BRIEF Unknown command should return clarification state and unknown intent.\ndef test_unknown_command_returns_needs_clarification(monkeypatch):\n _clear_assistant_state()\n req = assistant_routes.AssistantMessageRequest(message=\"some random gibberish\")\n # We mock LLM planner to return low confidence\n monkeypatch.setattr(assistant_routes, \"_plan_intent_with_llm\", lambda *a, **k: None)\n resp = _run_async(\n assistant_routes.send_message(\n req,\n current_user=_admin_user(),\n task_manager=_FakeTaskManager(),\n config_manager=_FakeConfigManager(),\n db=_FakeDb(),\n )\n )\n assert resp.state == \"needs_clarification\"\n assert \"уточните\" in resp.text.lower() or \"неоднозначна\" in resp.text.lower()\n# #endregion test_unknown_command_returns_needs_clarification\n" @@ -683,17 +644,7 @@ "target_ref": "[AssistantApiTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_capabilities_question_returns_successful_help [TYPE Function]\n# @RELATION BINDS_TO -> [AssistantApiTests]\n# @BRIEF Capability query should return deterministic help response.\ndef test_capabilities_question_returns_successful_help(monkeypatch):\n _clear_assistant_state()\n req = assistant_routes.AssistantMessageRequest(message=\"что ты умеешь?\")\n resp = _run_async(\n assistant_routes.send_message(\n req,\n current_user=_admin_user(),\n task_manager=_FakeTaskManager(),\n config_manager=_FakeConfigManager(),\n db=_FakeDb(),\n )\n )\n assert resp.state == \"success\"\n assert \"я могу сделать\" in resp.text.lower()\n# #endregion test_capabilities_question_returns_successful_help\n" @@ -717,17 +668,7 @@ "target_ref": "[AssistantApiTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_assistant_message_request_accepts_dataset_review_session_binding [TYPE Function]\n# @RELATION BINDS_TO -> [AssistantApiTests]\n# @BRIEF Assistant request schema should accept active dataset review session binding for scoped orchestration.\ndef test_assistant_message_request_accepts_dataset_review_session_binding():\n request = assistant_routes.AssistantMessageRequest(\n message=\"approve mappings\",\n dataset_review_session_id=\"sess-1\",\n )\n assert request.dataset_review_session_id == \"sess-1\"\n# #endregion test_assistant_message_request_accepts_dataset_review_session_binding\n" @@ -751,17 +692,7 @@ "target_ref": "[AssistantApiTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_dataset_review_scoped_message_uses_masked_filter_context [TYPE Function]\n# @RELATION BINDS_TO -> [AssistantApiTests]\n# @BRIEF Session-scoped assistant context should mask imported-filter raw values before assistant-visible metadata is persisted.\ndef test_dataset_review_scoped_message_uses_masked_filter_context(monkeypatch):\n _clear_assistant_state()\n db = _FakeDb()\n db.dataset_sessions[\"sess-1\"] = _dataset_review_session()\n req = assistant_routes.AssistantMessageRequest(\n message=\"show filters\",\n dataset_review_session_id=\"sess-1\",\n )\n assistant_routes._plan_intent_with_llm = _await_none\n async def _fake_dispatch_dataset_review_intent(\n intent, current_user, config_manager, db\n ):\n return str(intent[\"entities\"][\"summary\"]), None, []\n monkeypatch.setattr(\n assistant_routes,\n \"_dispatch_dataset_review_intent\",\n _fake_dispatch_dataset_review_intent,\n )\n resp = _run_async(\n assistant_routes.send_message(\n req,\n current_user=_admin_user(),\n task_manager=_FakeTaskManager(),\n config_manager=_FakeConfigManager(),\n db=db,\n )\n )\n assert resp.state == \"success\"\n persisted_assistant = [\n item for item in db.added if getattr(item, \"role\", None) == \"assistant\"\n ][-1]\n imported_filters = persisted_assistant.payload[\"dataset_review_context\"][\n \"imported_filters\"\n ]\n assert imported_filters[0][\"raw_value\"] == \"***@example.com\"\n assert imported_filters[0][\"raw_value_masked\"] is True\n# #endregion test_dataset_review_scoped_message_uses_masked_filter_context\n" @@ -785,17 +716,7 @@ "target_ref": "[AssistantApiTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_dataset_review_scoped_command_returns_confirmation_for_mapping_approval [TYPE Function]\n# @RELATION BINDS_TO -> [AssistantApiTests]\n# @BRIEF Session-scoped assistant commands should route dataset-review mapping approvals into confirmation workflow with bound session metadata.\ndef test_dataset_review_scoped_command_returns_confirmation_for_mapping_approval():\n _clear_assistant_state()\n db = _FakeDb()\n db.dataset_sessions[\"sess-1\"] = _dataset_review_session()\n req = assistant_routes.AssistantMessageRequest(\n message=\"approve mappings\",\n dataset_review_session_id=\"sess-1\",\n )\n assistant_routes._plan_intent_with_llm = _await_none\n resp = _run_async(\n assistant_routes.send_message(\n req,\n current_user=_admin_user(),\n task_manager=_FakeTaskManager(),\n config_manager=_FakeConfigManager(),\n db=db,\n )\n )\n assert resp.state == \"needs_confirmation\"\n assert resp.intent[\"operation\"] == \"dataset_review_approve_mappings\"\n assert resp.intent[\"entities\"][\"dataset_review_session_id\"] == \"sess-1\"\n assert resp.intent[\"entities\"][\"session_version\"] == 3\n assert resp.intent[\"entities\"][\"mapping_ids\"] == [\"map-1\"]\n# #endregion test_dataset_review_scoped_command_returns_confirmation_for_mapping_approval\n" @@ -819,17 +740,7 @@ "target_ref": "[AssistantApiTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_dataset_review_scoped_command_routes_field_semantics_update [TYPE Function]\n# @RELATION BINDS_TO -> [AssistantApiTests]\n# @BRIEF Session-scoped assistant commands should route semantic field updates through explicit confirmation metadata.\ndef test_dataset_review_scoped_command_routes_field_semantics_update():\n _clear_assistant_state()\n db = _FakeDb()\n db.dataset_sessions[\"sess-1\"] = _dataset_review_session()\n req = assistant_routes.AssistantMessageRequest(\n message='set field semantics target=field:field-1 desc=\"Approved semantic wording\" lock',\n dataset_review_session_id=\"sess-1\",\n )\n assistant_routes._plan_intent_with_llm = _await_none\n resp = _run_async(\n assistant_routes.send_message(\n req,\n current_user=_admin_user(),\n task_manager=_FakeTaskManager(),\n config_manager=_FakeConfigManager(),\n db=db,\n )\n )\n assert resp.state == \"needs_confirmation\"\n assert resp.intent[\"operation\"] == \"dataset_review_set_field_semantics\"\n assert resp.intent[\"entities\"][\"dataset_review_session_id\"] == \"sess-1\"\n assert resp.intent[\"entities\"][\"field_id\"] == \"field-1\"\n assert resp.intent[\"entities\"][\"description\"] == \"Approved semantic wording\"\n assert resp.intent[\"entities\"][\"lock_field\"] is True\n# #endregion test_dataset_review_scoped_command_routes_field_semantics_update\n" @@ -873,15 +784,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -927,15 +829,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -981,15 +874,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -1015,17 +899,7 @@ "target_ref": "TestCleanReleaseApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_start_check_and_get_status_contract [TYPE Function]\n# @RELATION BINDS_TO -> TestCleanReleaseApi\n# @BRIEF Validate checks start endpoint returns expected identifiers and status endpoint reflects the same run.\ndef test_start_check_and_get_status_contract():\n repo = _repo_with_seed_data()\n app.dependency_overrides[get_clean_release_repository] = lambda: repo\n try:\n client = TestClient(app)\n start = client.post(\n \"/api/clean-release/checks\",\n json={\n \"candidate_id\": \"2026.03.03-rc1\",\n \"profile\": \"enterprise-clean\",\n \"execution_mode\": \"tui\",\n \"triggered_by\": \"tester\",\n },\n )\n assert start.status_code == 202\n payload = start.json()\n assert set([\"check_run_id\", \"candidate_id\", \"status\", \"started_at\"]).issubset(\n payload.keys()\n )\n check_run_id = payload[\"check_run_id\"]\n status_resp = client.get(f\"/api/clean-release/checks/{check_run_id}\")\n assert status_resp.status_code == 200\n status_payload = status_resp.json()\n assert status_payload[\"check_run_id\"] == check_run_id\n assert \"final_status\" in status_payload\n assert \"checks\" in status_payload\n finally:\n app.dependency_overrides.clear()\n# #endregion test_start_check_and_get_status_contract\n" @@ -1049,17 +923,7 @@ "target_ref": "TestCleanReleaseApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_report_not_found_returns_404 [TYPE Function]\n# @RELATION BINDS_TO -> TestCleanReleaseApi\n# @BRIEF Validate reports endpoint returns 404 for an unknown report identifier.\ndef test_get_report_not_found_returns_404():\n repo = _repo_with_seed_data()\n app.dependency_overrides[get_clean_release_repository] = lambda: repo\n try:\n client = TestClient(app)\n resp = client.get(\"/api/clean-release/reports/unknown-report\")\n assert resp.status_code == 404\n finally:\n app.dependency_overrides.clear()\n# #endregion test_get_report_not_found_returns_404\n" @@ -1083,17 +947,7 @@ "target_ref": "TestCleanReleaseApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_report_success [TYPE Function]\n# @RELATION BINDS_TO -> TestCleanReleaseApi\n# @BRIEF Validate reports endpoint returns persisted report payload for an existing report identifier.\ndef test_get_report_success():\n repo = _repo_with_seed_data()\n report = ComplianceReport(\n report_id=\"rep-1\",\n check_run_id=\"run-1\",\n candidate_id=\"2026.03.03-rc1\",\n generated_at=datetime.now(UTC),\n final_status=CheckFinalStatus.COMPLIANT,\n operator_summary=\"all systems go\",\n structured_payload_ref=\"manifest-1\",\n violations_count=0,\n blocking_violations_count=0,\n )\n repo.save_report(report)\n app.dependency_overrides[get_clean_release_repository] = lambda: repo\n try:\n client = TestClient(app)\n resp = client.get(\"/api/clean-release/reports/rep-1\")\n assert resp.status_code == 200\n assert resp.json()[\"report_id\"] == \"rep-1\"\n finally:\n app.dependency_overrides.clear()\n# #endregion test_get_report_success\n" @@ -1117,17 +971,7 @@ "target_ref": "TestCleanReleaseApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_prepare_candidate_api_success [TYPE Function]\n# @RELATION BINDS_TO -> TestCleanReleaseApi\n# @BRIEF Validate candidate preparation endpoint returns prepared status and manifest identifier on valid input.\ndef test_prepare_candidate_api_success():\n repo = _repo_with_seed_data()\n app.dependency_overrides[get_clean_release_repository] = lambda: repo\n try:\n client = TestClient(app)\n response = client.post(\n \"/api/clean-release/candidates/prepare\",\n json={\n \"candidate_id\": \"2026.03.03-rc1\",\n \"artifacts\": [\n {\"path\": \"file1.txt\", \"category\": \"system-init\", \"reason\": \"core\"}\n ],\n \"sources\": [\"repo.intra.company.local\"],\n \"operator_id\": \"operator-1\",\n },\n )\n assert response.status_code == 200\n data = response.json()\n assert data[\"status\"] == \"prepared\"\n assert \"manifest_id\" in data\n finally:\n app.dependency_overrides.clear()\n# #endregion test_prepare_candidate_api_success\n" @@ -1171,15 +1015,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -1205,17 +1040,7 @@ "target_ref": "TestCleanReleaseLegacyCompat" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_legacy_prepare_endpoint_still_available [TYPE Function]\n# @RELATION BINDS_TO -> TestCleanReleaseLegacyCompat\n# @BRIEF Verify legacy prepare endpoint remains reachable and returns a status payload.\ndef test_legacy_prepare_endpoint_still_available() -> None:\n repo = _seed_legacy_repo()\n app.dependency_overrides[get_clean_release_repository] = lambda: repo\n try:\n client = TestClient(app)\n response = client.post(\n \"/api/clean-release/candidates/prepare\",\n json={\n \"candidate_id\": \"legacy-rc-001\",\n \"artifacts\": [\n {\"path\": \"src/main.py\", \"category\": \"core\", \"reason\": \"required\"}\n ],\n \"sources\": [\"repo.intra.company.local\"],\n \"operator_id\": \"compat-tester\",\n },\n )\n assert response.status_code == 200\n payload = response.json()\n assert \"status\" in payload\n assert payload[\"status\"] in {\"prepared\", \"blocked\", \"PREPARED\", \"BLOCKED\"}\n finally:\n app.dependency_overrides.clear()\n# #endregion test_legacy_prepare_endpoint_still_available\n" @@ -1239,17 +1064,7 @@ "target_ref": "TestCleanReleaseLegacyCompat" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_legacy_checks_endpoints_still_available [TYPE Function]\n# @RELATION BINDS_TO -> TestCleanReleaseLegacyCompat\n# @BRIEF Verify legacy checks start/status endpoints remain available during v2 transition.\ndef test_legacy_checks_endpoints_still_available() -> None:\n repo = _seed_legacy_repo()\n app.dependency_overrides[get_clean_release_repository] = lambda: repo\n try:\n client = TestClient(app)\n start_response = client.post(\n \"/api/clean-release/checks\",\n json={\n \"candidate_id\": \"legacy-rc-001\",\n \"profile\": \"enterprise-clean\",\n \"execution_mode\": \"api\",\n \"triggered_by\": \"compat-tester\",\n },\n )\n assert start_response.status_code == 202\n start_payload = start_response.json()\n assert \"check_run_id\" in start_payload\n assert start_payload[\"candidate_id\"] == \"legacy-rc-001\"\n status_response = client.get(\n f\"/api/clean-release/checks/{start_payload['check_run_id']}\"\n )\n assert status_response.status_code == 200\n status_payload = status_response.json()\n assert status_payload[\"check_run_id\"] == start_payload[\"check_run_id\"]\n assert \"final_status\" in status_payload\n assert \"checks\" in status_payload\n finally:\n app.dependency_overrides.clear()\n# #endregion test_legacy_checks_endpoints_still_available\n" @@ -1273,17 +1088,7 @@ "target_ref": "TestCleanReleaseSourcePolicy" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _repo_with_seed_data [TYPE Function]\n# @RELATION BINDS_TO -> TestCleanReleaseSourcePolicy\n# @BRIEF Seed repository with candidate, registry, and active policy for source isolation test flow.\ndef _repo_with_seed_data() -> CleanReleaseRepository:\n repo = CleanReleaseRepository()\n repo.save_candidate(\n ReleaseCandidate(\n candidate_id=\"2026.03.03-rc1\",\n version=\"2026.03.03\",\n profile=ProfileType.ENTERPRISE_CLEAN,\n created_at=datetime.now(UTC),\n created_by=\"tester\",\n source_snapshot_ref=\"git:abc123\",\n status=ReleaseCandidateStatus.DRAFT,\n )\n )\n repo.save_registry(\n ResourceSourceRegistry(\n registry_id=\"registry-internal-v1\",\n name=\"Internal\",\n entries=[\n ResourceSourceEntry(\n source_id=\"src-1\",\n host=\"repo.intra.company.local\",\n protocol=\"https\",\n purpose=\"artifact-repo\",\n enabled=True,\n )\n ],\n updated_at=datetime.now(UTC),\n updated_by=\"tester\",\n status=\"active\",\n )\n )\n repo.save_policy(\n CleanProfilePolicy(\n policy_id=\"policy-enterprise-clean-v1\",\n policy_version=\"1.0.0\",\n active=True,\n prohibited_artifact_categories=[\"test-data\"],\n required_system_categories=[\"system-init\"],\n external_source_forbidden=True,\n internal_source_registry_ref=\"registry-internal-v1\",\n effective_from=datetime.now(UTC),\n profile=ProfileType.ENTERPRISE_CLEAN,\n )\n )\n return repo\n# #endregion _repo_with_seed_data\n" @@ -1307,17 +1112,7 @@ "target_ref": "TestCleanReleaseSourcePolicy" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_prepare_candidate_blocks_external_source [TYPE Function]\n# @RELATION BINDS_TO -> TestCleanReleaseSourcePolicy\n# @BRIEF Verify candidate preparation is blocked when at least one source host is external to the trusted registry.\ndef test_prepare_candidate_blocks_external_source():\n repo = _repo_with_seed_data()\n app.dependency_overrides[get_clean_release_repository] = lambda: repo\n try:\n client = TestClient(app)\n response = client.post(\n \"/api/clean-release/candidates/prepare\",\n json={\n \"candidate_id\": \"2026.03.03-rc1\",\n \"artifacts\": [\n {\n \"path\": \"cfg/system.yaml\",\n \"category\": \"system-init\",\n \"reason\": \"required\",\n }\n ],\n \"sources\": [\"repo.intra.company.local\", \"pypi.org\"],\n \"operator_id\": \"release-manager\",\n },\n )\n assert response.status_code == 200\n data = response.json()\n assert data[\"status\"] == \"blocked\"\n assert any(v[\"category\"] == \"external-source\" for v in data[\"violations\"])\n finally:\n app.dependency_overrides.clear()\n# #endregion test_prepare_candidate_blocks_external_source\n" @@ -1341,17 +1136,7 @@ "target_ref": "CleanReleaseV2ApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_candidate_registration_contract [TYPE Function]\n# @RELATION BINDS_TO -> CleanReleaseV2ApiTests\n# @BRIEF Validate candidate registration endpoint creates a draft candidate with expected identifier contract.\ndef test_candidate_registration_contract():\n \"\"\"\n @TEST_SCENARIO: candidate_registration -> Should return 201 and candidate DTO.\n @TEST_CONTRACT: POST /api/v2/clean-release/candidates -> CandidateDTO\n \"\"\"\n payload = {\n \"id\": \"rc-test-001\",\n \"version\": \"1.0.0\",\n \"source_snapshot_ref\": \"git:sha123\",\n \"created_by\": \"test-user\",\n }\n response = client.post(\"/api/v2/clean-release/candidates\", json=payload)\n assert response.status_code == 201\n data = response.json()\n assert data[\"id\"] == \"rc-test-001\"\n assert data[\"status\"] == CandidateStatus.DRAFT.value\n# #endregion test_candidate_registration_contract\n" @@ -1375,17 +1160,7 @@ "target_ref": "CleanReleaseV2ApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_artifact_import_contract [TYPE Function]\n# @RELATION BINDS_TO -> CleanReleaseV2ApiTests\n# @BRIEF Validate artifact import endpoint accepts candidate artifacts and returns success status payload.\ndef test_artifact_import_contract():\n \"\"\"\n @TEST_SCENARIO: artifact_import -> Should return 200 and success status.\n @TEST_CONTRACT: POST /api/v2/clean-release/candidates/{id}/artifacts -> SuccessDTO\n \"\"\"\n candidate_id = \"rc-test-001-art\"\n bootstrap_candidate = {\n \"id\": candidate_id,\n \"version\": \"1.0.0\",\n \"source_snapshot_ref\": \"git:sha123\",\n \"created_by\": \"test-user\",\n }\n create_response = client.post(\n \"/api/v2/clean-release/candidates\", json=bootstrap_candidate\n )\n assert create_response.status_code == 201\n payload = {\n \"artifacts\": [\n {\"id\": \"art-1\", \"path\": \"bin/app.exe\", \"sha256\": \"hash123\", \"size\": 1024}\n ]\n }\n response = client.post(\n f\"/api/v2/clean-release/candidates/{candidate_id}/artifacts\", json=payload\n )\n assert response.status_code == 200\n assert response.json()[\"status\"] == \"success\"\n# #endregion test_artifact_import_contract\n" @@ -1409,17 +1184,7 @@ "target_ref": "CleanReleaseV2ApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_manifest_build_contract [TYPE Function]\n# @RELATION BINDS_TO -> CleanReleaseV2ApiTests\n# @BRIEF Validate manifest build endpoint produces manifest payload linked to the target candidate.\ndef test_manifest_build_contract():\n \"\"\"\n @TEST_SCENARIO: manifest_build -> Should return 201 and manifest DTO.\n @TEST_CONTRACT: POST /api/v2/clean-release/candidates/{id}/manifests -> ManifestDTO\n \"\"\"\n candidate_id = \"rc-test-001-manifest\"\n bootstrap_candidate = {\n \"id\": candidate_id,\n \"version\": \"1.0.0\",\n \"source_snapshot_ref\": \"git:sha123\",\n \"created_by\": \"test-user\",\n }\n create_response = client.post(\n \"/api/v2/clean-release/candidates\", json=bootstrap_candidate\n )\n assert create_response.status_code == 201\n response = client.post(f\"/api/v2/clean-release/candidates/{candidate_id}/manifests\")\n assert response.status_code == 201\n data = response.json()\n assert \"manifest_digest\" in data\n assert data[\"candidate_id\"] == candidate_id\n# #endregion test_manifest_build_contract\n" @@ -1443,17 +1208,7 @@ "target_ref": "CleanReleaseV2ReleaseApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _seed_candidate_and_passed_report [TYPE Function]\n# @RELATION BINDS_TO -> CleanReleaseV2ReleaseApiTests\n# @BRIEF Seed repository with approvable candidate and passed report for release endpoint contracts.\ndef _seed_candidate_and_passed_report() -> tuple[str, str]:\n repository = get_clean_release_repository()\n candidate_id = f\"api-release-candidate-{uuid4()}\"\n report_id = f\"api-release-report-{uuid4()}\"\n repository.save_candidate(\n ReleaseCandidate(\n id=candidate_id,\n version=\"1.0.0\",\n source_snapshot_ref=\"git:sha-api-release\",\n created_by=\"api-test\",\n created_at=datetime.now(UTC),\n status=CandidateStatus.CHECK_PASSED.value,\n )\n )\n repository.save_report(\n ComplianceReport(\n id=report_id,\n run_id=f\"run-{uuid4()}\",\n candidate_id=candidate_id,\n final_status=ComplianceDecision.PASSED.value,\n summary_json={\n \"operator_summary\": \"ok\",\n \"violations_count\": 0,\n \"blocking_violations_count\": 0,\n },\n generated_at=datetime.now(UTC),\n immutable=True,\n )\n )\n return candidate_id, report_id\n# #endregion _seed_candidate_and_passed_report\n" @@ -1477,17 +1232,7 @@ "target_ref": "CleanReleaseV2ReleaseApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_release_approve_and_publish_revoke_contract [TYPE Function]\n# @RELATION BINDS_TO -> CleanReleaseV2ReleaseApiTests\n# @BRIEF Verify approve, publish, and revoke endpoints preserve expected release lifecycle contract.\ndef test_release_approve_and_publish_revoke_contract() -> None:\n \"\"\"Contract for approve -> publish -> revoke lifecycle endpoints.\"\"\"\n candidate_id, report_id = _seed_candidate_and_passed_report()\n approve_response = client.post(\n f\"/api/v2/clean-release/candidates/{candidate_id}/approve\",\n json={\"report_id\": report_id, \"decided_by\": \"api-test\", \"comment\": \"approved\"},\n )\n assert approve_response.status_code == 200\n approve_payload = approve_response.json()\n assert approve_payload[\"status\"] == \"ok\"\n assert approve_payload[\"decision\"] == \"APPROVED\"\n publish_response = client.post(\n f\"/api/v2/clean-release/candidates/{candidate_id}/publish\",\n json={\n \"report_id\": report_id,\n \"published_by\": \"api-test\",\n \"target_channel\": \"stable\",\n \"publication_ref\": \"rel-api-001\",\n },\n )\n assert publish_response.status_code == 200\n publish_payload = publish_response.json()\n assert publish_payload[\"status\"] == \"ok\"\n assert publish_payload[\"publication\"][\"status\"] == \"ACTIVE\"\n publication_id = publish_payload[\"publication\"][\"id\"]\n revoke_response = client.post(\n f\"/api/v2/clean-release/publications/{publication_id}/revoke\",\n json={\"revoked_by\": \"api-test\", \"comment\": \"rollback\"},\n )\n assert revoke_response.status_code == 200\n revoke_payload = revoke_response.json()\n assert revoke_payload[\"status\"] == \"ok\"\n assert revoke_payload[\"publication\"][\"status\"] == \"REVOKED\"\n# #endregion test_release_approve_and_publish_revoke_contract\n" @@ -1511,17 +1256,7 @@ "target_ref": "CleanReleaseV2ReleaseApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_release_reject_contract [TYPE Function]\n# @RELATION BINDS_TO -> CleanReleaseV2ReleaseApiTests\n# @BRIEF Verify reject endpoint returns successful rejection decision payload.\ndef test_release_reject_contract() -> None:\n \"\"\"Contract for reject endpoint.\"\"\"\n candidate_id, report_id = _seed_candidate_and_passed_report()\n reject_response = client.post(\n f\"/api/v2/clean-release/candidates/{candidate_id}/reject\",\n json={\"report_id\": report_id, \"decided_by\": \"api-test\", \"comment\": \"rejected\"},\n )\n assert reject_response.status_code == 200\n payload = reject_response.json()\n assert payload[\"status\"] == \"ok\"\n assert payload[\"decision\"] == \"REJECTED\"\n# #endregion test_release_reject_contract\n" @@ -1545,17 +1280,7 @@ "target_ref": "ConnectionsRoutesTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_list_connections_bootstraps_missing_table [TYPE Function]\n# @RELATION BINDS_TO -> ConnectionsRoutesTests\n# @BRIEF Ensure listing connections auto-creates missing table and returns empty payload.\ndef test_list_connections_bootstraps_missing_table(db_session):\n from src.api.routes.connections import list_connections\n result = asyncio.run(list_connections(db=db_session))\n inspector = inspect(db_session.get_bind())\n assert result == []\n assert \"connection_configs\" in inspector.get_table_names()\n# #endregion test_list_connections_bootstraps_missing_table\n" @@ -1579,17 +1304,7 @@ "target_ref": "ConnectionsRoutesTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_create_connection_bootstraps_missing_table [TYPE Function]\n# @RELATION BINDS_TO -> ConnectionsRoutesTests\n# @BRIEF Ensure connection creation bootstraps table and persists returned connection fields.\ndef test_create_connection_bootstraps_missing_table(db_session):\n from src.api.routes.connections import ConnectionCreate, create_connection\n payload = ConnectionCreate(\n name=\"Analytics Warehouse\",\n type=\"postgres\",\n host=\"warehouse.internal\",\n port=5432,\n database=\"analytics\",\n username=\"reporter\",\n password=\"secret\",\n )\n created = asyncio.run(create_connection(connection=payload, db=db_session))\n inspector = inspect(db_session.get_bind())\n assert created.name == \"Analytics Warehouse\"\n assert created.host == \"warehouse.internal\"\n assert \"connection_configs\" in inspector.get_table_names()\n# #endregion test_create_connection_bootstraps_missing_table\n" @@ -1661,15 +1376,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -1722,15 +1428,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -1757,17 +1454,7 @@ "target_ref": "DashboardsApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_dashboards_empty [TYPE Function]\n# @RELATION BINDS_TO -> DashboardsApiTests\n# @BRIEF Validate dashboards listing returns an empty payload for an environment without dashboards.\n# @TEST_EDGE: empty_dashboards -> {env_id: 'empty_env', expected_total: 0}\ndef test_get_dashboards_empty(mock_deps):\n \"\"\"@TEST_EDGE: empty_dashboards -> {env_id: 'empty_env', expected_total: 0}\"\"\"\n mock_env = MagicMock()\n mock_env.id = \"empty_env\"\n mock_deps[\"config\"].get_environments.return_value = [mock_env]\n mock_deps[\"task\"].get_all_tasks.return_value = []\n mock_deps[\"resource\"].get_dashboards_with_status = AsyncMock(return_value=[])\n response = client.get(\"/api/dashboards?env_id=empty_env\")\n assert response.status_code == 200\n data = response.json()\n assert data[\"total\"] == 0\n assert len(data[\"dashboards\"]) == 0\n assert data[\"total_pages\"] == 1\n DashboardsResponse(**data)\n# #endregion test_get_dashboards_empty\n" @@ -1792,17 +1479,7 @@ "target_ref": "DashboardsApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_dashboards_superset_failure [TYPE Function]\n# @RELATION BINDS_TO -> DashboardsApiTests\n# @BRIEF Validate dashboards listing surfaces a 503 contract when Superset access fails.\n# @TEST_EDGE: external_superset_failure -> {env_id: 'bad_conn', status: 503}\ndef test_get_dashboards_superset_failure(mock_deps):\n \"\"\"@TEST_EDGE: external_superset_failure -> {env_id: 'bad_conn', status: 503}\"\"\"\n mock_env = MagicMock()\n mock_env.id = \"bad_conn\"\n mock_deps[\"config\"].get_environments.return_value = [mock_env]\n mock_deps[\"task\"].get_all_tasks.return_value = []\n mock_deps[\"resource\"].get_dashboards_with_status = AsyncMock(\n side_effect=Exception(\"Connection refused\")\n )\n response = client.get(\"/api/dashboards?env_id=bad_conn\")\n assert response.status_code == 503\n assert \"Failed to fetch dashboards\" in response.json()[\"detail\"]\n# #endregion test_get_dashboards_superset_failure\n" @@ -1853,15 +1530,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -1914,15 +1582,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -1955,15 +1614,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -1996,15 +1646,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2057,15 +1698,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2118,15 +1750,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2162,15 +1785,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2223,15 +1837,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2267,15 +1872,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2328,15 +1924,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2372,15 +1959,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2413,15 +1991,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2454,15 +2023,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2508,15 +2068,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2562,15 +2113,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2623,15 +2165,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2684,15 +2217,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2745,15 +2269,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2806,15 +2321,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2867,15 +2373,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2928,15 +2425,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -2960,17 +2448,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_user [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\ndef _make_user():\n permissions = [\n SimpleNamespace(resource=\"dataset:session\", action=\"READ\"),\n SimpleNamespace(resource=\"dataset:session\", action=\"MANAGE\"),\n SimpleNamespace(resource=\"dataset:execution:launch\", action=\"EXECUTE\"),\n ]\n dataset_review_role = SimpleNamespace(\n name=\"DatasetReviewOperator\", permissions=permissions\n )\n return SimpleNamespace(id=\"user-1\", username=\"tester\", roles=[dataset_review_role])\n# #endregion _make_user\n" @@ -2992,17 +2470,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_config_manager [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\ndef _make_config_manager():\n env = Environment(\n id=\"env-1\",\n name=\"DEV\",\n url=\"http://superset.local\",\n username=\"demo\",\n password=\"secret\",\n )\n config = AppConfig(environments=[env], settings=GlobalSettings())\n manager = MagicMock()\n manager.get_environment.side_effect = (\n lambda env_id: env if env_id == \"env-1\" else None\n )\n manager.get_config.return_value = config\n return manager\n# #endregion _make_config_manager\n" @@ -3024,17 +2492,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_session [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\ndef _make_session():\n now = datetime.now(UTC)\n return DatasetReviewSession(\n session_id=\"sess-1\",\n user_id=\"user-1\",\n environment_id=\"env-1\",\n source_kind=\"superset_link\",\n source_input=\"http://superset.local/dashboard/10\",\n dataset_ref=\"public.sales\",\n dataset_id=42,\n dashboard_id=10,\n version=0,\n readiness_state=ReadinessState.REVIEW_READY,\n recommended_action=RecommendedAction.REVIEW_DOCUMENTATION,\n status=SessionStatus.ACTIVE,\n current_phase=SessionPhase.REVIEW,\n created_at=now,\n updated_at=now,\n last_activity_at=now,\n )\n# #endregion _make_session\n" @@ -3056,17 +2514,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_us2_session [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\ndef _make_us2_session():\n now = datetime.now(UTC)\n session = _make_session()\n session.readiness_state = ReadinessState.CLARIFICATION_NEEDED\n session.recommended_action = RecommendedAction.START_CLARIFICATION\n session.current_phase = SessionPhase.CLARIFICATION\n field = SemanticFieldEntry(\n field_id=\"field-1\",\n session_id=\"sess-1\",\n field_name=\"revenue\",\n field_kind=FieldKind.COLUMN,\n verbose_name=\"Revenue\",\n description=\"AI-generated revenue description\",\n display_format=\"$,.2f\",\n provenance=FieldProvenance.AI_GENERATED,\n source_id=\"source-ai\",\n source_version=None,\n confidence_rank=1,\n is_locked=False,\n has_conflict=True,\n needs_review=True,\n last_changed_by=\"agent\",\n user_feedback=None,\n created_at=now,\n updated_at=now,\n )\n candidate = SemanticCandidate(\n candidate_id=\"cand-1\",\n field_id=\"field-1\",\n source_id=\"dict-1\",\n candidate_rank=1,\n match_type=CandidateMatchType.EXACT,\n confidence_score=1.0,\n proposed_verbose_name=\"Recognized Revenue\",\n proposed_description=\"Trusted dictionary description\",\n proposed_display_format=\"$,.2f\",\n status=CandidateStatus.PROPOSED,\n created_at=now,\n )\n field.candidates = [candidate]\n clarification_session = ClarificationSession(\n clarification_session_id=\"clar-1\",\n session_id=\"sess-1\",\n status=ClarificationStatus.PENDING,\n current_question_id=None,\n resolved_count=0,\n remaining_count=1,\n summary_delta=None,\n started_at=now,\n updated_at=now,\n completed_at=None,\n )\n question = ClarificationQuestion(\n question_id=\"q-1\",\n clarification_session_id=\"clar-1\",\n topic_ref=\"dataset.business_purpose\",\n question_text=\"Which business concept does this dataset represent?\",\n why_it_matters=\"This determines how downstream users interpret revenue KPIs.\",\n current_guess=\"Revenue reporting\",\n priority=100,\n state=QuestionState.OPEN,\n created_at=now,\n updated_at=now,\n )\n question.options = [\n ClarificationOption(\n option_id=\"opt-1\",\n question_id=\"q-1\",\n label=\"Revenue reporting\",\n value=\"Revenue reporting\",\n is_recommended=True,\n display_order=1,\n ),\n ClarificationOption(\n option_id=\"opt-2\",\n question_id=\"q-1\",\n label=\"Margin analysis\",\n value=\"Margin analysis\",\n is_recommended=False,\n display_order=2,\n ),\n ]\n question.answer = None\n clarification_session.questions = [question]\n session.findings = []\n session.collaborators = []\n session.semantic_sources = [\n SemanticSource(\n source_id=\"dict-1\",\n session_id=\"sess-1\",\n source_type=SemanticSourceType.CONNECTED_DICTIONARY,\n source_ref=\"dict://finance\",\n source_version=\"2026.03\",\n display_name=\"Finance Dictionary\",\n trust_level=TrustLevel.TRUSTED,\n schema_overlap_score=1.0,\n status=SemanticSourceStatus.AVAILABLE,\n created_at=now,\n )\n ]\n session.semantic_fields = [field]\n session.imported_filters = []\n session.template_variables = []\n session.execution_mappings = []\n session.clarification_sessions = [clarification_session]\n session.previews = []\n session.run_contexts = []\n return session\n# #endregion _make_us2_session\n" @@ -3088,17 +2536,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_us3_session [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\ndef _make_us3_session():\n \"\"\"Fake session factory for US3 flow tests.\n `imported_filter` and `template_variable` are bare MagicMocks without spec;\n ORM attribute access is unchecked.\n \"\"\"\n now = datetime.now(UTC)\n session = _make_session()\n session.readiness_state = ReadinessState.MAPPING_REVIEW_NEEDED\n session.recommended_action = RecommendedAction.APPROVE_MAPPING\n session.current_phase = SessionPhase.MAPPING_REVIEW\n imported_filter = MagicMock() # @RISK: No spec= guard — enum/field contract changes are undetectable at test time.\n imported_filter.filter_id = \"filter-1\"\n imported_filter.session_id = \"sess-1\"\n imported_filter.filter_name = \"country\"\n imported_filter.display_name = \"Country\"\n imported_filter.raw_value = \"DE\"\n imported_filter.normalized_value = \"DE\"\n imported_filter.source = \"superset_url\"\n imported_filter.confidence_state = \"imported\"\n imported_filter.requires_confirmation = False\n imported_filter.recovery_status = \"recovered\"\n imported_filter.notes = \"Recovered from URL state\"\n template_variable = MagicMock() # @RISK: No spec= guard — enum/field contract changes are undetectable at test time.\n template_variable.variable_id = \"var-1\"\n template_variable.session_id = \"sess-1\"\n template_variable.variable_name = \"country\"\n template_variable.expression_source = \"{{ filter_values('country') }}\"\n template_variable.variable_kind = \"native_filter\"\n template_variable.is_required = True\n template_variable.default_value = None\n template_variable.mapping_status = \"unmapped\"\n mapping = ExecutionMapping(\n mapping_id=\"map-1\",\n session_id=\"sess-1\",\n filter_id=\"filter-1\",\n variable_id=\"var-1\",\n mapping_method=\"direct_match\",\n raw_input_value=\"DE\",\n effective_value=\"DE\",\n transformation_note=\"Trimmed imported value\",\n warning_level=\"medium\",\n requires_explicit_approval=True,\n approval_state=ApprovalState.PENDING,\n approved_by_user_id=None,\n approved_at=None,\n created_at=now,\n updated_at=now,\n )\n session.findings = []\n session.collaborators = []\n session.semantic_sources = []\n session.semantic_fields = []\n session.imported_filters = [imported_filter]\n session.template_variables = [template_variable]\n session.execution_mappings = [mapping]\n session.clarification_sessions = []\n session.previews = []\n session.run_contexts = []\n return session\n# #endregion _make_us3_session\n" @@ -3120,17 +2558,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_preview_ready_session [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\ndef _make_preview_ready_session():\n session = _make_us3_session()\n session.readiness_state = ReadinessState.COMPILED_PREVIEW_READY\n session.recommended_action = RecommendedAction.GENERATE_SQL_PREVIEW\n session.current_phase = SessionPhase.PREVIEW\n return session\n# #endregion _make_preview_ready_session\n" @@ -3152,17 +2580,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region dataset_review_api_dependencies [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n@pytest.fixture(autouse=True)\ndef dataset_review_api_dependencies():\n mock_user = _make_user()\n config_manager = _make_config_manager()\n task_manager = MagicMock()\n app.dependency_overrides[get_current_user] = lambda: mock_user\n app.dependency_overrides[get_config_manager] = lambda: config_manager\n app.dependency_overrides[get_task_manager] = lambda: task_manager\n yield {\n \"user\": mock_user,\n \"config_manager\": config_manager,\n \"task_manager\": task_manager,\n }\n app.dependency_overrides.clear()\n# #endregion dataset_review_api_dependencies\n" @@ -3186,17 +2604,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_superset_link_dashboard_partial_recovery [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify dashboard links recover dataset context and preserve explicit partial-recovery markers.\ndef test_parse_superset_link_dashboard_partial_recovery():\n env = Environment(\n id=\"env-1\",\n name=\"DEV\",\n url=\"http://superset.local\",\n username=\"demo\",\n password=\"secret\",\n )\n fake_client = MagicMock()\n fake_client.get_dashboard_detail.return_value = {\n \"id\": 10,\n \"datasets\": [{\"id\": 42}, {\"id\": 77}],\n }\n fake_client.get_dataset_detail.return_value = {\n \"table_name\": \"sales\",\n \"schema\": \"public\",\n }\n extractor = SupersetContextExtractor(environment=env, client=fake_client)\n result = extractor.parse_superset_link(\n \"http://superset.local/dashboard/10/?native_filters=%5B%7B%22name%22%3A%22country%22%2C%22value%22%3A%22DE%22%7D%5D\"\n )\n assert result.dataset_id == 42\n assert result.dashboard_id == 10\n assert result.dataset_ref == \"public.sales\"\n assert result.partial_recovery is True\n assert \"multiple_dashboard_datasets\" in result.unresolved_references\n assert result.imported_filters[0][\"filter_name\"] == \"country\"\n# #endregion test_parse_superset_link_dashboard_partial_recovery\n" @@ -3220,17 +2628,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_superset_link_dashboard_slug_recovery [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify dashboard slug links resolve through dashboard detail endpoints and recover dataset context.\ndef test_parse_superset_link_dashboard_slug_recovery():\n env = Environment(\n id=\"env-1\",\n name=\"DEV\",\n url=\"http://superset.local\",\n username=\"demo\",\n password=\"secret\",\n )\n fake_client = MagicMock()\n fake_client.get_dashboard_detail.return_value = {\n \"id\": 15,\n \"datasets\": [{\"id\": 42}],\n }\n fake_client.get_dataset_detail.return_value = {\n \"table_name\": \"sales\",\n \"schema\": \"public\",\n }\n extractor = SupersetContextExtractor(environment=env, client=fake_client)\n result = extractor.parse_superset_link(\n \"https://ss-dev.bebesh.ru/superset/dashboard/slack/?native_filters_key=8ZLV4M-UXOM\"\n )\n assert result.dataset_id == 42\n assert result.dashboard_id == 15\n assert result.dataset_ref == \"public.sales\"\n assert result.partial_recovery is False\n assert result.query_state[\"native_filters_key\"] == \"8ZLV4M-UXOM\"\n fake_client.get_dashboard_detail.assert_called_once_with(\"slack\")\n# #endregion test_parse_superset_link_dashboard_slug_recovery\n" @@ -3254,17 +2652,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_superset_link_dashboard_permalink_partial_recovery [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify dashboard permalink links no longer fail parsing and preserve permalink filter state for partial recovery.\ndef test_parse_superset_link_dashboard_permalink_partial_recovery():\n env = Environment(\n id=\"env-1\",\n name=\"DEV\",\n url=\"http://superset.local\",\n username=\"demo\",\n password=\"secret\",\n )\n fake_client = MagicMock()\n fake_client.get_dashboard_permalink_state.return_value = {\n \"state\": {\n \"dataMask\": {\n \"NATIVE_FILTER-1\": {\n \"id\": \"country\",\n \"filterState\": {\n \"label\": \"Country\",\n \"value\": [\"DE\"],\n },\n \"extraFormData\": {\n \"filters\": [{\"col\": \"country\", \"op\": \"IN\", \"val\": [\"DE\"]}],\n },\n }\n }\n }\n }\n extractor = SupersetContextExtractor(environment=env, client=fake_client)\n result = extractor.parse_superset_link(\n \"http://ss-dev.bebesh.ru/superset/dashboard/p/QabXy6wG30Z/\"\n )\n assert result.resource_type == \"dashboard\"\n assert result.dataset_id is None\n assert result.dashboard_id is None\n assert result.dataset_ref == \"dashboard_permalink:QabXy6wG30Z\"\n assert result.partial_recovery is True\n assert (\n \"dashboard_permalink_dataset_binding_unresolved\" in result.unresolved_references\n )\n assert result.imported_filters[0][\"filter_name\"] == \"country\"\n assert result.imported_filters[0][\"raw_value\"] == [\"DE\"]\n fake_client.get_dashboard_permalink_state.assert_called_once_with(\"QabXy6wG30Z\")\n# #region test_parse_superset_link_dashboard_permalink_recovers_dataset_from_nested_dashboard_state [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify permalink state with nested dashboard id recovers dataset binding and keeps imported filters.\ndef test_parse_superset_link_dashboard_permalink_recovers_dataset_from_nested_dashboard_state():\n env = Environment(\n id=\"env-1\",\n name=\"DEV\",\n url=\"http://superset.local\",\n username=\"demo\",\n password=\"secret\",\n )\n fake_client = MagicMock()\n fake_client.get_dashboard_permalink_state.return_value = {\n \"state\": {\n \"form_data\": {\"dashboardId\": 22},\n \"dataMask\": {\n \"NATIVE_FILTER-1\": {\n \"id\": \"country\",\n \"filterState\": {\"label\": \"Country\", \"value\": [\"DE\"]},\n }\n },\n }\n }\n fake_client.get_dashboard_detail.return_value = {\"id\": 22, \"datasets\": [{\"id\": 42}]}\n fake_client.get_dataset_detail.return_value = {\n \"table_name\": \"sales\",\n \"schema\": \"public\",\n }\n extractor = SupersetContextExtractor(environment=env, client=fake_client)\n result = extractor.parse_superset_link(\n \"http://ss-dev.bebesh.ru/superset/dashboard/p/QabXy6wG30Z/\"\n )\n assert result.dashboard_id == 22\n assert result.dataset_id == 42\n assert result.dataset_ref == \"public.sales\"\n assert (\n \"dashboard_permalink_dataset_binding_unresolved\"\n not in result.unresolved_references\n )\n assert result.imported_filters[0][\"filter_name\"] == \"country\"\n# #endregion test_parse_superset_link_dashboard_permalink_recovers_dataset_from_nested_dashboard_state\n# #endregion test_parse_superset_link_dashboard_permalink_partial_recovery\n" @@ -3288,17 +2676,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_superset_link_dashboard_permalink_recovers_dataset_from_nested_dashboard_state [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify permalink state with nested dashboard id recovers dataset binding and keeps imported filters.\ndef test_parse_superset_link_dashboard_permalink_recovers_dataset_from_nested_dashboard_state():\n env = Environment(\n id=\"env-1\",\n name=\"DEV\",\n url=\"http://superset.local\",\n username=\"demo\",\n password=\"secret\",\n )\n fake_client = MagicMock()\n fake_client.get_dashboard_permalink_state.return_value = {\n \"state\": {\n \"form_data\": {\"dashboardId\": 22},\n \"dataMask\": {\n \"NATIVE_FILTER-1\": {\n \"id\": \"country\",\n \"filterState\": {\"label\": \"Country\", \"value\": [\"DE\"]},\n }\n },\n }\n }\n fake_client.get_dashboard_detail.return_value = {\"id\": 22, \"datasets\": [{\"id\": 42}]}\n fake_client.get_dataset_detail.return_value = {\n \"table_name\": \"sales\",\n \"schema\": \"public\",\n }\n extractor = SupersetContextExtractor(environment=env, client=fake_client)\n result = extractor.parse_superset_link(\n \"http://ss-dev.bebesh.ru/superset/dashboard/p/QabXy6wG30Z/\"\n )\n assert result.dashboard_id == 22\n assert result.dataset_id == 42\n assert result.dataset_ref == \"public.sales\"\n assert (\n \"dashboard_permalink_dataset_binding_unresolved\"\n not in result.unresolved_references\n )\n assert result.imported_filters[0][\"filter_name\"] == \"country\"\n# #endregion test_parse_superset_link_dashboard_permalink_recovers_dataset_from_nested_dashboard_state\n" @@ -3322,17 +2700,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_resolve_from_dictionary_prefers_exact_match [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify trusted dictionary exact matches outrank fuzzy candidates and unresolved fields stay explicit.\ndef test_resolve_from_dictionary_prefers_exact_match():\n resolver = SemanticSourceResolver()\n result = resolver.resolve_from_dictionary(\n {\n \"source_ref\": \"dict://finance\",\n \"rows\": [\n {\n \"field_name\": \"revenue\",\n \"verbose_name\": \"Revenue\",\n \"description\": \"Recognized revenue amount\",\n \"display_format\": \"$,.2f\",\n },\n {\n \"field_name\": \"revnue\",\n \"verbose_name\": \"Revenue typo\",\n \"description\": \"Fuzzy variant\",\n },\n ],\n },\n [\n {\"field_name\": \"revenue\", \"is_locked\": False},\n {\"field_name\": \"margin\", \"is_locked\": False},\n ],\n )\n resolved_exact = next(\n item for item in result.resolved_fields if item[\"field_name\"] == \"revenue\"\n )\n unresolved = next(\n item for item in result.resolved_fields if item[\"field_name\"] == \"margin\"\n )\n assert resolved_exact[\"applied_candidate\"][\"match_type\"] == \"exact\"\n assert resolved_exact[\"provenance\"] == \"dictionary_exact\"\n assert unresolved[\"status\"] == \"unresolved\"\n assert \"margin\" in result.unresolved_fields\n assert result.partial_recovery is True\n# #endregion test_resolve_from_dictionary_prefers_exact_match\n" @@ -3356,17 +2724,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_orchestrator_start_session_preserves_partial_recovery [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify session start persists usable recovery-required state when Superset intake is partial.\ndef test_orchestrator_start_session_preserves_partial_recovery(\n dataset_review_api_dependencies,\n):\n repository = MagicMock()\n created_session = _make_session()\n created_session.readiness_state = ReadinessState.RECOVERY_REQUIRED\n created_session.current_phase = SessionPhase.RECOVERY\n repository.create_session.return_value = created_session\n repository.save_profile_and_findings.return_value = created_session\n repository.save_recovery_state.return_value = created_session\n repository.db = MagicMock()\n orchestrator = DatasetReviewOrchestrator(\n repository=repository,\n config_manager=dataset_review_api_dependencies[\"config_manager\"],\n # WARNING: task_manager=None — all async task dispatch paths are bypassed.\n # Task dispatch failures are invisible to this test.\n task_manager=None,\n )\n parsed_context = SimpleNamespace(\n dataset_ref=\"public.sales\",\n dataset_id=42,\n dashboard_id=10,\n chart_id=None,\n partial_recovery=True,\n unresolved_references=[\"dashboard_dataset_binding_missing\"],\n imported_filters=[],\n )\n fake_extractor = MagicMock()\n fake_extractor.parse_superset_link.return_value = parsed_context\n fake_extractor.recover_imported_filters.return_value = []\n fake_extractor.client.get_dataset_detail.return_value = {\n \"id\": 42,\n \"sql\": \"\",\n \"columns\": [],\n \"metrics\": [],\n }\n fake_extractor.discover_template_variables.return_value = []\n with patch(\n \"src.services.dataset_review.orchestrator.SupersetContextExtractor\",\n side_effect=[fake_extractor, fake_extractor],\n ):\n result = orchestrator.start_session(\n StartSessionCommand(\n user=dataset_review_api_dependencies[\"user\"],\n environment_id=\"env-1\",\n source_kind=\"superset_link\",\n source_input=\"http://superset.local/dashboard/10\",\n )\n )\n assert result.session.readiness_state == ReadinessState.RECOVERY_REQUIRED\n assert result.findings\n assert result.findings[0].severity.value == \"warning\"\n repository.create_session.assert_called_once()\n repository.save_profile_and_findings.assert_called_once()\n# #endregion test_orchestrator_start_session_preserves_partial_recovery\n" @@ -3390,17 +2748,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_orchestrator_start_session_bootstraps_recovery_state [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify session start persists recovered filters, template variables, and initial execution mappings for review workspace bootstrap.\ndef test_orchestrator_start_session_bootstraps_recovery_state(\n dataset_review_api_dependencies,\n):\n repository = MagicMock()\n created_session = _make_session()\n created_session.readiness_state = ReadinessState.RECOVERY_REQUIRED\n created_session.current_phase = SessionPhase.RECOVERY\n repository.create_session.return_value = created_session\n repository.save_profile_and_findings.return_value = created_session\n repository.save_recovery_state.return_value = created_session\n repository.db = MagicMock()\n orchestrator = DatasetReviewOrchestrator(\n repository=repository,\n config_manager=dataset_review_api_dependencies[\"config_manager\"],\n # WARNING: task_manager=None — all async task dispatch paths are bypassed.\n # Task dispatch failures are invisible to this test.\n task_manager=None,\n )\n parsed_context = SimpleNamespace(\n dataset_ref=\"public.sales\",\n dataset_id=42,\n dashboard_id=10,\n chart_id=None,\n partial_recovery=True,\n unresolved_references=[\"dashboard_dataset_binding_missing\"],\n imported_filters=[{\"filter_name\": \"country\", \"raw_value\": [\"DE\"]}],\n dataset_payload=None,\n )\n fake_extractor = MagicMock()\n fake_extractor.parse_superset_link.return_value = parsed_context\n fake_extractor.recover_imported_filters.return_value = [\n {\n \"filter_name\": \"country\",\n \"display_name\": \"Country\",\n \"raw_value\": [\"DE\"],\n \"normalized_value\": {\n \"filter_clauses\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]}],\n \"extra_form_data\": {\n \"filters\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]}]\n },\n \"value_origin\": \"extra_form_data.filters\",\n },\n \"source\": \"superset_url\",\n \"confidence_state\": \"imported\",\n \"requires_confirmation\": False,\n \"recovery_status\": \"recovered\",\n \"notes\": \"Recovered from permalink state\",\n }\n ]\n fake_extractor.client.get_dataset_detail.return_value = {\n \"id\": 42,\n \"sql\": \"select * from sales where country in {{ filter_values('country') }}\",\n \"columns\": [],\n \"metrics\": [],\n }\n fake_extractor.discover_template_variables.return_value = [\n {\n \"variable_name\": \"country\",\n \"expression_source\": \"{{ filter_values('country') }}\",\n \"variable_kind\": \"native_filter\",\n \"is_required\": True,\n \"default_value\": None,\n \"mapping_status\": \"unmapped\",\n }\n ]\n with patch(\n \"src.services.dataset_review.orchestrator.SupersetContextExtractor\",\n side_effect=[fake_extractor, fake_extractor],\n ):\n result = orchestrator.start_session(\n StartSessionCommand(\n user=dataset_review_api_dependencies[\"user\"],\n environment_id=\"env-1\",\n source_kind=\"superset_link\",\n source_input=\"http://superset.local/dashboard/10\",\n )\n )\n assert result.session.readiness_state == ReadinessState.RECOVERY_REQUIRED\n repository.save_recovery_state.assert_called_once()\n saved_filters = repository.save_recovery_state.call_args.args[2]\n saved_variables = repository.save_recovery_state.call_args.args[3]\n saved_mappings = repository.save_recovery_state.call_args.args[4]\n assert len(saved_filters) == 1\n assert saved_filters[0].filter_name == \"country\"\n assert saved_filters[0].normalized_value == {\n \"filter_clauses\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]}],\n \"extra_form_data\": {\n \"filters\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]}]\n },\n \"value_origin\": \"extra_form_data.filters\",\n }\n assert len(saved_variables) == 1\n assert saved_variables[0].variable_name == \"country\"\n assert len(saved_mappings) == 1\n assert saved_mappings[0].raw_input_value == [\"DE\"]\n# #endregion test_orchestrator_start_session_bootstraps_recovery_state\n" @@ -3424,17 +2772,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_start_session_endpoint_returns_created_summary [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify POST session lifecycle endpoint returns a persisted ownership-scoped summary.\ndef test_start_session_endpoint_returns_created_summary(\n dataset_review_api_dependencies,\n):\n session = _make_session()\n orchestrator = MagicMock()\n orchestrator.start_session.return_value = SimpleNamespace(\n session=session, findings=[], parsed_context=None\n )\n app.dependency_overrides[_get_orchestrator] = lambda: orchestrator\n response = client.post(\n \"/api/dataset-orchestration/sessions\",\n json={\n \"source_kind\": \"superset_link\",\n \"source_input\": \"http://superset.local/dashboard/10\",\n \"environment_id\": \"env-1\",\n },\n )\n assert response.status_code == 201\n payload = response.json()\n assert payload[\"session_id\"] == \"sess-1\"\n assert payload[\"dataset_ref\"] == \"public.sales\"\n assert payload[\"environment_id\"] == \"env-1\"\n# #endregion test_start_session_endpoint_returns_created_summary\n" @@ -3458,17 +2796,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_session_detail_export_and_lifecycle_endpoints [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Verify lifecycle get/patch/delete plus documentation and validation exports remain ownership-scoped and usable.\ndef test_get_session_detail_export_and_lifecycle_endpoints(\n dataset_review_api_dependencies,\n):\n now = datetime.now(UTC)\n session = MagicMock(spec=DatasetReviewSession)\n session.session_id = \"sess-1\"\n session.user_id = \"user-1\"\n session.environment_id = \"env-1\"\n session.source_kind = \"superset_link\"\n session.source_input = \"http://superset.local/dashboard/10\"\n session.dataset_ref = \"public.sales\"\n session.dataset_id = 42\n session.dashboard_id = 10\n session.readiness_state = ReadinessState.REVIEW_READY\n session.recommended_action = RecommendedAction.REVIEW_DOCUMENTATION\n session.status = SessionStatus.ACTIVE\n session.current_phase = SessionPhase.REVIEW\n session.created_at = now\n session.updated_at = now\n session.last_activity_at = now\n session.profile = SimpleNamespace(\n dataset_name=\"sales\",\n business_summary=\"Summary text\",\n confidence_state=ConfidenceState.MOSTLY_CONFIRMED,\n dataset_type=\"unknown\",\n schema_name=None,\n database_name=None,\n business_summary_source=BusinessSummarySource.IMPORTED,\n description=None,\n is_sqllab_view=False,\n completeness_score=None,\n has_blocking_findings=False,\n has_warning_findings=True,\n manual_summary_locked=False,\n created_at=now,\n updated_at=now,\n profile_id=\"profile-1\",\n session_id=\"sess-1\",\n )\n session.findings = [\n SimpleNamespace(\n finding_id=\"f-1\",\n session_id=\"sess-1\",\n area=FindingArea.SOURCE_INTAKE,\n severity=FindingSeverity.WARNING,\n code=\"PARTIAL_SUPERSET_RECOVERY\",\n title=\"Partial\",\n message=\"Some filters require review\",\n resolution_state=ResolutionState.OPEN,\n resolution_note=None,\n caused_by_ref=None,\n created_at=now,\n resolved_at=None,\n )\n ]\n session.collaborators = []\n session.semantic_sources = []\n session.semantic_fields = []\n session.imported_filters = []\n session.template_variables = []\n session.execution_mappings = []\n session.clarification_sessions = []\n session.previews = []\n session.run_contexts = []\n repository = MagicMock()\n repository.load_session_detail.return_value = session\n repository.list_sessions_for_user.return_value = [session]\n repository.require_session_version.side_effect = lambda current, expected: current\n repository.bump_session_version.side_effect = lambda current: setattr(\n current, \"version\", int(getattr(current, \"version\", 0) or 0) + 1\n ) or getattr(current, \"version\", 0)\n repository.db = MagicMock()\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n repository.event_logger.log_for_session.return_value = SimpleNamespace(\n session_event_id=\"evt-0\"\n )\n app.dependency_overrides[_get_repository] = lambda: repository\n detail_response = client.get(\"/api/dataset-orchestration/sessions/sess-1\")\n assert detail_response.status_code == 200\n assert detail_response.json()[\"session_id\"] == \"sess-1\"\n patch_response = client.patch(\n \"/api/dataset-orchestration/sessions/sess-1\",\n json={\"status\": \"paused\"},\n headers={\"X-Session-Version\": \"0\"},\n )\n assert patch_response.status_code == 200\n assert patch_response.json()[\"status\"] == \"paused\"\n doc_response = client.get(\n \"/api/dataset-orchestration/sessions/sess-1/exports/documentation?format=json\"\n )\n assert doc_response.status_code == 200\n assert doc_response.json()[\"artifact_type\"] == \"documentation\"\n validation_response = client.get(\n \"/api/dataset-orchestration/sessions/sess-1/exports/validation?format=markdown\"\n )\n assert validation_response.status_code == 200\n assert validation_response.json()[\"artifact_type\"] == \"validation_report\"\n assert \"Validation Report\" in validation_response.json()[\"content\"][\"markdown\"]\n delete_response = client.delete(\n \"/api/dataset-orchestration/sessions/sess-1\",\n headers={\"X-Session-Version\": \"1\"},\n )\n assert delete_response.status_code == 204\n# #endregion test_get_session_detail_export_and_lifecycle_endpoints\n" @@ -3509,17 +2837,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_us2_clarification_endpoints_persist_answer_and_feedback [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Clarification endpoints should expose one current question, persist the answer before advancement, and store feedback on the answer audit record.\ndef test_us2_clarification_endpoints_persist_answer_and_feedback(\n dataset_review_api_dependencies,\n):\n session = _make_us2_session()\n repository = MagicMock()\n repository.load_session_detail.return_value = session\n repository.require_session_version.side_effect = lambda current, expected: current\n repository.db = MagicMock()\n repository.db.commit.side_effect = lambda: None\n repository.db.refresh.side_effect = lambda obj: None\n def _add_side_effect(obj):\n if obj.__class__.__name__ == \"ClarificationAnswer\":\n session.clarification_sessions[0].questions[0].answer = obj\n repository.db.add.side_effect = _add_side_effect\n repository.db.flush.side_effect = lambda: None\n app.dependency_overrides[_get_repository] = lambda: repository\n state_response = client.get(\n \"/api/dataset-orchestration/sessions/sess-1/clarification\"\n )\n assert state_response.status_code == 200\n state_payload = state_response.json()\n assert (\n state_payload[\"current_question\"][\"why_it_matters\"]\n == \"This determines how downstream users interpret revenue KPIs.\"\n )\n assert state_payload[\"current_question\"][\"current_guess\"] == \"Revenue reporting\"\n assert len(state_payload[\"current_question\"][\"options\"]) == 2\n answer_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/clarification/answers\",\n json={\n \"question_id\": \"q-1\",\n \"answer_kind\": \"selected\",\n \"answer_value\": \"Revenue reporting\",\n },\n headers={\"X-Session-Version\": \"0\"},\n )\n assert answer_response.status_code == 200\n answer_payload = answer_response.json()\n assert answer_payload[\"session\"][\"readiness_state\"] == \"review_ready\"\n assert answer_payload[\"clarification_state\"][\"current_question\"] is None\n assert answer_payload[\"changed_findings\"][0][\"resolution_state\"] == \"resolved\"\n assert (\n session.clarification_sessions[0].questions[0].answer.answer_value\n == \"Revenue reporting\"\n )\n feedback_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/clarification/questions/q-1/feedback\",\n json={\"feedback\": \"up\"},\n headers={\"X-Session-Version\": \"0\"},\n )\n assert feedback_response.status_code == 200\n assert feedback_response.json() == {\"target_id\": \"q-1\", \"feedback\": \"up\"}\n assert session.clarification_sessions[0].questions[0].answer.user_feedback == \"up\"\n# #endregion test_us2_clarification_endpoints_persist_answer_and_feedback\n" @@ -3543,17 +2861,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_us2_field_semantic_override_lock_unlock_and_feedback [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Semantic field endpoints should apply manual overrides with lock/provenance invariants and persist feedback independently.\ndef test_us2_field_semantic_override_lock_unlock_and_feedback(\n dataset_review_api_dependencies,\n):\n session = _make_us2_session()\n repository = MagicMock()\n repository.load_session_detail.return_value = session\n repository.require_session_version.side_effect = lambda current, expected: current\n repository.bump_session_version.side_effect = lambda current: setattr(\n current, \"version\", int(getattr(current, \"version\", 0) or 0) + 1\n ) or getattr(current, \"version\", 0)\n repository.db = MagicMock()\n repository.db.commit.side_effect = lambda: None\n repository.db.refresh.side_effect = lambda obj: None\n repository.db.add.side_effect = lambda obj: None\n repository.db.flush.side_effect = lambda: None\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n repository.event_logger.log_for_session.return_value = SimpleNamespace(\n session_event_id=\"evt-1\"\n )\n app.dependency_overrides[_get_repository] = lambda: repository\n override_response = client.patch(\n \"/api/dataset-orchestration/sessions/sess-1/fields/field-1/semantic\",\n json={\n \"verbose_name\": \"Confirmed Revenue\",\n \"description\": \"Manual business-approved description\",\n \"display_format\": \"$,.0f\",\n },\n headers={\"X-Session-Version\": \"0\"},\n )\n assert override_response.status_code == 200\n override_payload = override_response.json()\n assert override_payload[\"provenance\"] == \"manual_override\"\n assert override_payload[\"is_locked\"] is True\n unlock_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/fields/field-1/unlock\",\n headers={\"X-Session-Version\": \"1\"},\n )\n assert unlock_response.status_code == 200\n assert unlock_response.json()[\"is_locked\"] is False\n candidate_response = client.patch(\n \"/api/dataset-orchestration/sessions/sess-1/fields/field-1/semantic\",\n json={\"candidate_id\": \"cand-1\", \"lock_field\": True},\n headers={\"X-Session-Version\": \"2\"},\n )\n assert candidate_response.status_code == 200\n candidate_payload = candidate_response.json()\n assert candidate_payload[\"verbose_name\"] == \"Recognized Revenue\"\n assert candidate_payload[\"provenance\"] == \"dictionary_exact\"\n assert candidate_payload[\"is_locked\"] is True\n batch_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/fields/semantic/approve-batch\",\n json={\n \"items\": [\n {\"field_id\": \"field-1\", \"candidate_id\": \"cand-1\", \"lock_field\": False}\n ]\n },\n headers={\"X-Session-Version\": \"3\"},\n )\n assert batch_response.status_code == 200\n assert batch_response.json()[0][\"field_id\"] == \"field-1\"\n feedback_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/fields/field-1/feedback\",\n json={\"feedback\": \"down\"},\n headers={\"X-Session-Version\": \"4\"},\n )\n assert feedback_response.status_code == 200\n assert feedback_response.json() == {\"target_id\": \"field-1\", \"feedback\": \"down\"}\n assert session.semantic_fields[0].user_feedback == \"down\"\n# #endregion test_us2_field_semantic_override_lock_unlock_and_feedback\n" @@ -3577,17 +2885,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_us3_mapping_patch_approval_preview_and_launch_endpoints [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF US3 execution endpoints should persist manual overrides, preserve explicit approval semantics, return contract-shaped preview truth, and expose audited launch handoff.\ndef test_us3_mapping_patch_approval_preview_and_launch_endpoints(\n dataset_review_api_dependencies,\n):\n session = _make_us3_session()\n latest_preview = CompiledPreview(\n preview_id=\"preview-old\",\n session_id=\"sess-1\",\n preview_status=PreviewStatus.READY,\n compiled_sql=\"SELECT * FROM sales WHERE country = 'FR'\",\n preview_fingerprint=\"fingerprint-old\",\n compiled_by=\"superset\",\n error_code=None,\n error_details=None,\n compiled_at=datetime.now(UTC),\n created_at=datetime.now(UTC),\n )\n session.previews = [latest_preview]\n repository = MagicMock()\n repository.load_session_detail.return_value = session\n repository.require_session_version.side_effect = lambda current, expected: current\n repository.bump_session_version.side_effect = lambda current: setattr(\n current, \"version\", int(getattr(current, \"version\", 0) or 0) + 1\n ) or getattr(current, \"version\", 0)\n repository.db = MagicMock()\n repository.db.commit.side_effect = lambda: None\n repository.db.refresh.side_effect = lambda obj: None\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n repository.event_logger.log_for_session.return_value = SimpleNamespace(\n session_event_id=\"evt-2\"\n )\n preview = SimpleNamespace(\n preview_id=\"preview-1\",\n session_id=\"sess-1\",\n preview_status=PreviewStatus.READY,\n compiled_sql=\"SELECT * FROM sales WHERE country = 'DE'\",\n preview_fingerprint=\"fingerprint-1\",\n compiled_by=\"superset\",\n error_code=None,\n error_details=None,\n compiled_at=datetime.now(UTC),\n created_at=datetime.now(UTC),\n )\n run_context = SimpleNamespace(\n run_context_id=\"run-1\",\n session_id=\"sess-1\",\n dataset_ref=\"public.sales\",\n environment_id=\"env-1\",\n preview_id=\"preview-1\",\n sql_lab_session_ref=\"sql-lab-77\",\n effective_filters=[{\"mapping_id\": \"map-1\", \"effective_value\": \"EU\"}],\n template_params={\"country\": \"EU\"},\n approved_mapping_ids=[\"map-1\"],\n semantic_decision_refs=[],\n open_warning_refs=[],\n launch_status=LaunchStatus.STARTED,\n launch_error=None,\n created_at=datetime.now(UTC),\n )\n orchestrator = MagicMock()\n orchestrator.prepare_launch_preview.return_value = PreparePreviewResult(\n session=session,\n preview=preview,\n blocked_reasons=[],\n )\n orchestrator.launch_dataset.return_value = LaunchDatasetResult(\n session=session,\n run_context=run_context,\n blocked_reasons=[],\n )\n def _assert_expected_preview_version(command):\n assert command.expected_version == 3\n return PreparePreviewResult(\n session=session, preview=preview, blocked_reasons=[]\n )\n def _assert_expected_launch_version(command):\n assert command.expected_version == 5\n return LaunchDatasetResult(\n session=session, run_context=run_context, blocked_reasons=[]\n )\n orchestrator.prepare_launch_preview.side_effect = _assert_expected_preview_version\n orchestrator.launch_dataset.side_effect = _assert_expected_launch_version\n app.dependency_overrides[_get_repository] = lambda: repository\n app.dependency_overrides[_get_orchestrator] = lambda: orchestrator\n patch_response = client.patch(\n \"/api/dataset-orchestration/sessions/sess-1/mappings/map-1\",\n json={\n \"effective_value\": \"EU\",\n \"mapping_method\": \"manual_override\",\n \"transformation_note\": \"Manual override for SQL Lab launch\",\n },\n headers={\"X-Session-Version\": \"0\"},\n )\n assert patch_response.status_code == 200\n patch_payload = patch_response.json()\n assert patch_payload[\"mapping_id\"] == \"map-1\"\n assert patch_payload[\"mapping_method\"] == \"manual_override\"\n assert patch_payload[\"effective_value\"] == \"EU\"\n assert patch_payload[\"approval_state\"] == \"approved\"\n assert patch_payload[\"approved_by_user_id\"] == \"user-1\"\n assert session.execution_mappings[0].mapping_method == MappingMethod.MANUAL_OVERRIDE\n assert (\n session.execution_mappings[0].transformation_note\n == \"Manual override for SQL Lab launch\"\n )\n assert session.execution_mappings[0].effective_value == \"EU\"\n assert session.recommended_action == RecommendedAction.GENERATE_SQL_PREVIEW\n assert latest_preview.preview_status == PreviewStatus.STALE\n approve_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/mappings/map-1/approve\",\n json={\"approval_note\": \"Approved after reviewing transformation\"},\n headers={\"X-Session-Version\": \"1\"},\n )\n assert approve_response.status_code == 200\n approve_payload = approve_response.json()\n assert approve_payload[\"mapping_id\"] == \"map-1\"\n assert approve_payload[\"approval_state\"] == \"approved\"\n assert approve_payload[\"approved_by_user_id\"] == \"user-1\"\n assert (\n session.execution_mappings[0].transformation_note\n == \"Approved after reviewing transformation\"\n )\n batch_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/mappings/approve-batch\",\n json={\"mapping_ids\": [\"map-1\"]},\n headers={\"X-Session-Version\": \"2\"},\n )\n assert batch_response.status_code == 200\n assert batch_response.json()[0][\"mapping_id\"] == \"map-1\"\n list_response = client.get(\"/api/dataset-orchestration/sessions/sess-1/mappings\")\n assert list_response.status_code == 200\n assert list_response.json()[\"items\"][0][\"mapping_id\"] == \"map-1\"\n preview_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/preview\",\n headers={\"X-Session-Version\": \"3\"},\n )\n assert preview_response.status_code == 200\n preview_payload = preview_response.json()\n assert preview_payload[\"preview_id\"] == \"preview-1\"\n assert preview_payload[\"preview_status\"] == \"ready\"\n assert preview_payload[\"compiled_by\"] == \"superset\"\n assert \"SELECT * FROM sales\" in preview_payload[\"compiled_sql\"]\n def _assert_expected_pending_preview_version(command):\n assert command.expected_version == 4\n return PreparePreviewResult(\n session=session,\n preview=SimpleNamespace(\n preview_id=\"preview-pending\",\n session_id=\"sess-1\",\n preview_status=PreviewStatus.PENDING,\n compiled_sql=None,\n preview_fingerprint=\"fingerprint-pending\",\n compiled_by=\"superset\",\n error_code=None,\n error_details=None,\n compiled_at=None,\n created_at=datetime.now(UTC),\n ),\n blocked_reasons=[],\n )\n orchestrator.prepare_launch_preview.side_effect = (\n _assert_expected_pending_preview_version\n )\n preview_enqueue_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/preview\",\n headers={\"X-Session-Version\": \"4\"},\n )\n assert preview_enqueue_response.status_code == 202\n assert preview_enqueue_response.json() == {\n \"session_id\": \"sess-1\",\n \"session_version\": 3,\n \"preview_status\": \"pending\",\n \"task_id\": None,\n }\n launch_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/launch\",\n headers={\"X-Session-Version\": \"5\"},\n )\n assert launch_response.status_code == 201\n launch_payload = launch_response.json()\n assert launch_payload[\"run_context\"][\"run_context_id\"] == \"run-1\"\n assert launch_payload[\"run_context\"][\"sql_lab_session_ref\"] == \"sql-lab-77\"\n assert launch_payload[\"run_context\"][\"launch_status\"] == \"started\"\n assert (\n launch_payload[\"redirect_url\"]\n == \"http://superset.local/superset/sqllab?queryId=sql-lab-77\"\n )\n# #endregion test_us3_mapping_patch_approval_preview_and_launch_endpoints\n" @@ -3611,17 +2909,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_us3_preview_response_propagates_refreshed_session_version_for_launch_follow_up [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Preview response should expose the refreshed session version so the normal preview-then-launch UI flow can satisfy optimistic locking without a forced full reload.\ndef test_us3_preview_response_propagates_refreshed_session_version_for_launch_follow_up(\n dataset_review_api_dependencies,\n):\n session = _make_us3_session()\n session.version = 4\n repository = MagicMock()\n repository.load_session_detail.return_value = session\n def _require_session_version(current, expected):\n if int(getattr(current, \"version\", 0) or 0) != expected:\n raise DatasetReviewSessionVersionConflictError(\n current.session_id,\n expected,\n int(getattr(current, \"version\", 0) or 0),\n )\n return current\n repository.require_session_version.side_effect = _require_session_version\n repository.db = MagicMock()\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n preview = SimpleNamespace(\n preview_id=\"preview-2\",\n session_id=\"sess-1\",\n preview_status=PreviewStatus.READY,\n compiled_sql=\"SELECT * FROM sales WHERE country = 'FR'\",\n preview_fingerprint=\"fingerprint-2\",\n compiled_by=\"superset\",\n error_code=None,\n error_details=None,\n compiled_at=datetime.now(UTC),\n created_at=datetime.now(UTC),\n )\n run_context = SimpleNamespace(\n run_context_id=\"run-2\",\n session_id=\"sess-1\",\n dataset_ref=\"public.sales\",\n environment_id=\"env-1\",\n preview_id=\"preview-2\",\n sql_lab_session_ref=\"sql-lab-88\",\n effective_filters=[{\"mapping_id\": \"map-1\", \"effective_value\": \"FR\"}],\n template_params={\"country\": \"FR\"},\n approved_mapping_ids=[],\n semantic_decision_refs=[],\n open_warning_refs=[],\n launch_status=LaunchStatus.STARTED,\n launch_error=None,\n created_at=datetime.now(UTC),\n )\n orchestrator = MagicMock()\n def _prepare_preview(command):\n assert command.expected_version == 4\n session.version = 5\n return PreparePreviewResult(\n session=session,\n preview=preview,\n blocked_reasons=[],\n )\n def _launch_dataset(command):\n assert command.expected_version == 5\n return LaunchDatasetResult(\n session=session,\n run_context=run_context,\n blocked_reasons=[],\n )\n orchestrator.prepare_launch_preview.side_effect = _prepare_preview\n orchestrator.launch_dataset.side_effect = _launch_dataset\n app.dependency_overrides[_get_repository] = lambda: repository\n app.dependency_overrides[_get_orchestrator] = lambda: orchestrator\n preview_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/preview\",\n headers={\"X-Session-Version\": \"4\"},\n )\n assert preview_response.status_code == 200\n preview_payload = preview_response.json()\n assert preview_payload[\"session_version\"] == 5\n launch_response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/launch\",\n headers={\"X-Session-Version\": str(preview_payload[\"session_version\"])},\n )\n assert launch_response.status_code == 201\n assert launch_response.json()[\"run_context\"][\"run_context_id\"] == \"run-2\"\n# #endregion test_us3_preview_response_propagates_refreshed_session_version_for_launch_follow_up\n" @@ -3645,17 +2933,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_us3_preview_endpoint_returns_failed_preview_without_false_dashboard_not_found_contract_drift [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Preview endpoint should preserve API contract and surface generic upstream preview failures without fabricating dashboard-not-found semantics for non-dashboard 404s.\ndef test_us3_preview_endpoint_returns_failed_preview_without_false_dashboard_not_found_contract_drift(\n dataset_review_api_dependencies,\n):\n session = _make_us3_session()\n repository = MagicMock()\n repository.load_session_detail.return_value = session\n repository.db = MagicMock()\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n failed_preview = SimpleNamespace(\n preview_id=\"preview-failed\",\n session_id=\"sess-1\",\n preview_status=PreviewStatus.FAILED,\n compiled_sql=None,\n preview_fingerprint=\"fingerprint-failed\",\n compiled_by=\"superset\",\n error_code=\"superset_preview_failed\",\n error_details=\"RuntimeError: [API_FAILURE] API resource not found at endpoint '/chart/data' | Context: {'status_code': 404, 'endpoint': '/chart/data', 'subtype': 'not_found'}\",\n compiled_at=None,\n created_at=datetime.now(UTC),\n )\n orchestrator = MagicMock()\n orchestrator.prepare_launch_preview.return_value = PreparePreviewResult(\n session=session,\n preview=failed_preview,\n blocked_reasons=[],\n )\n app.dependency_overrides[_get_repository] = lambda: repository\n app.dependency_overrides[_get_orchestrator] = lambda: orchestrator\n response = client.post(\n \"/api/dataset-orchestration/sessions/sess-1/preview\",\n headers={\"X-Session-Version\": \"0\"},\n )\n assert response.status_code == 200\n payload = response.json()\n assert payload[\"preview_id\"] == \"preview-failed\"\n assert payload[\"preview_status\"] == \"failed\"\n assert payload[\"compiled_sql\"] is None\n assert payload[\"compiled_by\"] == \"superset\"\n assert payload[\"error_code\"] == \"superset_preview_failed\"\n assert \"/chart/data\" in payload[\"error_details\"]\n assert \"API resource not found\" in payload[\"error_details\"]\n assert \"Dashboard not found\" not in payload[\"error_details\"]\n# #endregion test_us3_preview_endpoint_returns_failed_preview_without_false_dashboard_not_found_contract_drift\n" @@ -3679,17 +2957,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_mutation_endpoints_surface_session_version_conflict_payload [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Dataset review mutation endpoints should return deterministic 409 conflict semantics when optimistic-lock versions are stale.\ndef test_mutation_endpoints_surface_session_version_conflict_payload(\n dataset_review_api_dependencies,\n):\n session = _make_us3_session()\n repository = MagicMock()\n repository.load_session_detail.return_value = session\n repository.require_session_version.side_effect = (\n DatasetReviewSessionVersionConflictError(\n session_id=\"sess-1\",\n expected_version=2,\n actual_version=5,\n )\n )\n repository.db = MagicMock()\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n app.dependency_overrides[_get_repository] = lambda: repository\n response = client.patch(\n \"/api/dataset-orchestration/sessions/sess-1/mappings/map-1\",\n json={\n \"effective_value\": \"EU\",\n \"mapping_method\": \"manual_override\",\n },\n headers={\"X-Session-Version\": \"2\"},\n )\n assert response.status_code == 409\n payload = response.json()[\"detail\"]\n assert payload[\"error_code\"] == \"session_version_conflict\"\n assert payload[\"expected_version\"] == 2\n assert payload[\"actual_version\"] == 5\n# #endregion test_mutation_endpoints_surface_session_version_conflict_payload\n" @@ -3713,17 +2981,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_update_session_surfaces_commit_time_session_version_conflict_payload [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Session lifecycle mutation should return deterministic 409 conflict semantics when commit-time optimistic locking rejects a stale write.\ndef test_update_session_surfaces_commit_time_session_version_conflict_payload(\n dataset_review_api_dependencies,\n):\n session = _make_session()\n repository = MagicMock()\n repository.load_session_detail.return_value = session\n repository.require_session_version.return_value = session\n repository.commit_session_mutation.side_effect = (\n DatasetReviewSessionVersionConflictError(\n session_id=\"sess-1\",\n expected_version=0,\n actual_version=1,\n )\n )\n repository.db = MagicMock()\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n app.dependency_overrides[_get_repository] = lambda: repository\n response = client.patch(\n \"/api/dataset-orchestration/sessions/sess-1\",\n json={\"status\": \"paused\"},\n headers={\"X-Session-Version\": \"0\"},\n )\n assert response.status_code == 409\n payload = response.json()[\"detail\"]\n assert payload[\"error_code\"] == \"session_version_conflict\"\n assert payload[\"expected_version\"] == 0\n assert payload[\"actual_version\"] == 1\n# #endregion test_update_session_surfaces_commit_time_session_version_conflict_payload\n" @@ -3747,17 +3005,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_execution_snapshot_includes_recovered_imported_filters_without_template_mapping [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Recovered imported filters with values should flow into preview filter context even when no template variable mapping exists.\ndef test_execution_snapshot_includes_recovered_imported_filters_without_template_mapping(\n dataset_review_api_dependencies,\n):\n repository = MagicMock()\n repository.db = MagicMock()\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n orchestrator = DatasetReviewOrchestrator(\n repository=repository,\n config_manager=dataset_review_api_dependencies[\"config_manager\"],\n # WARNING: task_manager=None — all async task dispatch paths are bypassed.\n # Task dispatch failures are invisible to this test.\n task_manager=None,\n )\n session = _make_preview_ready_session()\n recovered_filter = MagicMock()\n recovered_filter.filter_id = \"filter-country\"\n recovered_filter.filter_name = \"country\"\n recovered_filter.display_name = \"Country\"\n recovered_filter.raw_value = [\"DE\", \"FR\"]\n recovered_filter.normalized_value = [\"DE\", \"FR\"]\n recovered_filter.requires_confirmation = False\n recovered_filter.recovery_status = \"recovered\"\n session.imported_filters = [recovered_filter]\n session.template_variables = []\n session.execution_mappings = []\n session.semantic_fields = []\n snapshot = build_execution_snapshot(session)\n assert snapshot[\"template_params\"] == {}\n assert snapshot[\"preview_blockers\"] == []\n recovered_filter.normalized_value = {\n \"filter_clauses\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}],\n \"extra_form_data\": {\n \"filters\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}]\n },\n \"value_origin\": \"extra_form_data.filters\",\n }\n snapshot = build_execution_snapshot(session)\n assert snapshot[\"template_params\"] == {}\n assert snapshot[\"preview_blockers\"] == []\n assert snapshot[\"effective_filters\"] == [\n {\n \"filter_id\": \"filter-country\",\n \"filter_name\": \"country\",\n \"display_name\": \"Country\",\n \"effective_value\": [\"DE\", \"FR\"],\n \"raw_input_value\": [\"DE\", \"FR\"],\n \"normalized_filter_payload\": {\n \"filter_clauses\": [\n {\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}\n ],\n \"extra_form_data\": {\n \"filters\": [\n {\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}\n ]\n },\n \"value_origin\": \"extra_form_data.filters\",\n },\n }\n ]\n# #endregion test_execution_snapshot_includes_recovered_imported_filters_without_template_mapping\n" @@ -3781,17 +3029,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_execution_snapshot_preserves_mapped_template_variables_and_filter_context [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Mapped template variables should still populate template params while contributing their effective filter context.\ndef test_execution_snapshot_preserves_mapped_template_variables_and_filter_context(\n dataset_review_api_dependencies,\n):\n repository = MagicMock()\n repository.db = MagicMock()\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n orchestrator = DatasetReviewOrchestrator(\n repository=repository,\n config_manager=dataset_review_api_dependencies[\"config_manager\"],\n # WARNING: task_manager=None — all async task dispatch paths are bypassed.\n # Task dispatch failures are invisible to this test.\n task_manager=None,\n )\n session = _make_preview_ready_session()\n snapshot = build_execution_snapshot(session)\n assert snapshot[\"template_params\"] == {\"country\": \"DE\"}\n assert snapshot[\"preview_blockers\"] == []\n assert snapshot[\"effective_filters\"] == [\n {\n \"mapping_id\": \"map-1\",\n \"filter_id\": \"filter-1\",\n \"filter_name\": \"country\",\n \"variable_id\": \"var-1\",\n \"variable_name\": \"country\",\n \"effective_value\": \"DE\",\n \"raw_input_value\": \"DE\",\n }\n ]\n assert snapshot[\"open_warning_refs\"] == [\"map-1\"]\n# #endregion test_execution_snapshot_preserves_mapped_template_variables_and_filter_context\n" @@ -3815,17 +3053,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_execution_snapshot_skips_partial_imported_filters_without_values [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Partial imported filters without raw or normalized values must not emit bogus active preview filters.\ndef test_execution_snapshot_skips_partial_imported_filters_without_values(\n dataset_review_api_dependencies,\n):\n repository = MagicMock()\n repository.db = MagicMock()\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n orchestrator = DatasetReviewOrchestrator(\n repository=repository,\n config_manager=dataset_review_api_dependencies[\"config_manager\"],\n # WARNING: task_manager=None — all async task dispatch paths are bypassed.\n # Task dispatch failures are invisible to this test.\n task_manager=None,\n )\n session = _make_preview_ready_session()\n unresolved_filter = MagicMock()\n unresolved_filter.filter_id = \"filter-region\"\n unresolved_filter.filter_name = \"region\"\n unresolved_filter.display_name = \"Region\"\n unresolved_filter.raw_value = None\n unresolved_filter.normalized_value = None\n unresolved_filter.requires_confirmation = True\n unresolved_filter.recovery_status = \"partial\"\n session.imported_filters = [unresolved_filter]\n session.template_variables = []\n session.execution_mappings = []\n session.semantic_fields = []\n snapshot = build_execution_snapshot(session)\n assert snapshot[\"template_params\"] == {}\n assert snapshot[\"effective_filters\"] == []\n assert snapshot[\"preview_blockers\"] == []\n# #endregion test_execution_snapshot_skips_partial_imported_filters_without_values\n" @@ -3849,17 +3077,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_us3_launch_endpoint_requires_launch_permission [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Launch endpoint should enforce the contract RBAC permission instead of the generic session-manage permission.\ndef test_us3_launch_endpoint_requires_launch_permission(\n dataset_review_api_dependencies,\n):\n session = _make_us3_session()\n repository = MagicMock()\n repository.load_session_detail.return_value = session\n repository.db = MagicMock()\n repository.event_logger = MagicMock(spec=SessionEventLogger)\n run_context = SimpleNamespace(\n run_context_id=\"run-1\",\n session_id=\"sess-1\",\n dataset_ref=\"public.sales\",\n environment_id=\"env-1\",\n preview_id=\"preview-1\",\n sql_lab_session_ref=\"sql-lab-77\",\n effective_filters=[],\n template_params={},\n approved_mapping_ids=[\"map-1\"],\n semantic_decision_refs=[],\n open_warning_refs=[],\n launch_status=LaunchStatus.STARTED,\n launch_error=None,\n created_at=datetime.now(UTC),\n )\n orchestrator = MagicMock()\n orchestrator.launch_dataset.return_value = LaunchDatasetResult(\n session=session,\n run_context=run_context,\n blocked_reasons=[],\n )\n app.dependency_overrides[_get_repository] = lambda: repository\n app.dependency_overrides[_get_orchestrator] = lambda: orchestrator\n dataset_review_api_dependencies[\"user\"].roles = [\n SimpleNamespace(\n name=\"SessionManager\",\n permissions=[SimpleNamespace(resource=\"dataset:session\", action=\"MANAGE\")],\n )\n ]\n response = client.post(\"/api/dataset-orchestration/sessions/sess-1/launch\")\n assert response.status_code == 403\n assert (\n response.json()[\"detail\"]\n == \"Permission denied for dataset:execution:launch:EXECUTE\"\n )\n# #endregion test_us3_launch_endpoint_requires_launch_permission\n" @@ -3883,17 +3101,7 @@ "target_ref": "DatasetReviewApiTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_semantic_source_version_propagation_preserves_locked_fields [TYPE Function]\n# @RELATION BINDS_TO -> DatasetReviewApiTests\n# @BRIEF Updated semantic source versions should mark unlocked fields reviewable while preserving locked manual values.\ndef test_semantic_source_version_propagation_preserves_locked_fields():\n resolver = SemanticSourceResolver()\n source = SimpleNamespace(source_id=\"src-1\", source_version=\"2026.04\")\n unlocked_field = SimpleNamespace(\n source_id=\"src-1\",\n source_version=\"2026.03\",\n is_locked=False,\n provenance=FieldProvenance.DICTIONARY_EXACT,\n needs_review=False,\n has_conflict=False,\n )\n locked_field = SimpleNamespace(\n source_id=\"src-1\",\n source_version=\"2026.03\",\n is_locked=True,\n provenance=FieldProvenance.MANUAL_OVERRIDE,\n needs_review=False,\n has_conflict=False,\n )\n result = resolver.propagate_source_version_update(\n source, [unlocked_field, locked_field]\n )\n assert result[\"propagated\"] == 1\n assert result[\"preserved_locked\"] == 1\n assert unlocked_field.source_version == \"2026.04\"\n assert unlocked_field.needs_review is True\n assert locked_field.source_version == \"2026.03\"\n assert locked_field.needs_review is False\n# #endregion test_semantic_source_version_propagation_preserves_locked_fields\n" @@ -3944,15 +3152,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4005,15 +3204,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4066,15 +3256,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4127,15 +3308,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4188,15 +3360,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4249,15 +3412,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4310,15 +3464,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4371,15 +3516,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4432,15 +3568,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4477,15 +3604,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4511,17 +3629,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_git_configs_masks_pat [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate listing git configs masks stored PAT values in API-facing responses.\ndef test_get_git_configs_masks_pat():\n \"\"\"\n @PRE: Database session `db` is available.\n @POST: Returns a list of all GitServerConfig objects from the database with PAT masked.\n \"\"\"\n db = DbMock(\n [\n GitServerConfig(\n id=\"config-1\",\n name=\"Test Server\",\n provider=GitProvider.GITHUB,\n url=\"https://github.com\",\n pat=\"secret-token\",\n status=GitStatus.CONNECTED,\n last_validated=\"2026-03-08T00:00:00Z\",\n )\n ]\n )\n result = asyncio.run(git_routes.get_git_configs(db=db))\n assert len(result) == 1\n assert result[0].pat == \"********\"\n assert result[0].name == \"Test Server\"\n# #endregion test_get_git_configs_masks_pat\n" @@ -4545,17 +3653,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_create_git_config_persists_config [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate creating git config persists supplied server attributes in backing session.\ndef test_create_git_config_persists_config():\n \"\"\"\n @PRE: `config` contains valid GitServerConfigCreate data.\n @POST: A new GitServerConfig record is created in the database.\n \"\"\"\n from src.api.routes.git_schemas import GitServerConfigCreate\n db = DbMock()\n config = GitServerConfigCreate(\n name=\"New Server\",\n provider=GitProvider.GITLAB,\n url=\"https://gitlab.com\",\n pat=\"new-token\",\n default_branch=\"master\",\n )\n result = asyncio.run(git_routes.create_git_config(config=config, db=db))\n assert len(db._added) == 1\n assert db._added[0].name == \"New Server\"\n assert db._added[0].pat == \"new-token\"\n assert result.name == \"New Server\"\n assert (\n result.pat == \"new-token\"\n ) # Note: route returns unmasked until serialized by FastAPI usually, but in tests schema might catch it or not.\n# #endregion test_create_git_config_persists_config\n" @@ -4579,17 +3677,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_update_git_config_modifies_record [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate updating git config modifies mutable fields while preserving masked PAT semantics.\ndef test_update_git_config_modifies_record():\n \"\"\"\n @PRE: `config_id` corresponds to an existing configuration.\n @POST: The configuration record is updated in the database, preserving PAT if masked is sent.\n \"\"\"\n existing_config = GitServerConfig(\n id=\"config-1\",\n name=\"Old Server\",\n provider=GitProvider.GITHUB,\n url=\"https://github.com\",\n pat=\"old-token\",\n status=GitStatus.CONNECTED,\n last_validated=\"2026-03-08T00:00:00Z\",\n )\n # The monkeypatched query will return existing_config as it's the only one in the list\n # #region SingleConfigDbMock [TYPE Class]\n class SingleConfigDbMock:\n def query(self, *args):\n return self\n def filter(self, *args):\n return self\n def first(self):\n return existing_config\n def commit(self):\n pass\n def refresh(self, config):\n pass\n # #endregion SingleConfigDbMock\n db = SingleConfigDbMock()\n update_data = GitServerConfigUpdate(name=\"Updated Server\", pat=\"********\")\n result = asyncio.run(\n git_routes.update_git_config(\n config_id=\"config-1\", config_update=update_data, db=db\n )\n )\n assert existing_config.name == \"Updated Server\"\n assert (\n existing_config.pat == \"old-token\"\n ) # Ensure PAT is not overwritten with asterisks\n assert result.pat == \"********\"\n# #endregion test_update_git_config_modifies_record\n" @@ -4628,17 +3716,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_update_git_config_raises_404_if_not_found [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate updating non-existent git config raises HTTP 404 contract response.\ndef test_update_git_config_raises_404_if_not_found():\n \"\"\"\n @PRE: `config_id` corresponds to a missing configuration.\n @THROW: HTTPException 404\n \"\"\"\n db = DbMock([]) # Empty db\n update_data = GitServerConfigUpdate(name=\"Updated Server\", pat=\"new-token\")\n with pytest.raises(HTTPException) as exc_info:\n asyncio.run(\n git_routes.update_git_config(\n config_id=\"config-1\", config_update=update_data, db=db\n )\n )\n assert exc_info.value.status_code == 404\n assert exc_info.value.detail == \"Configuration not found\"\n# #endregion test_update_git_config_raises_404_if_not_found\n" @@ -4662,17 +3740,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_delete_git_config_removes_record [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate deleting existing git config removes record and returns success payload.\ndef test_delete_git_config_removes_record():\n \"\"\"\n @PRE: `config_id` corresponds to an existing configuration.\n @POST: The configuration record is removed from the database.\n \"\"\"\n existing_config = GitServerConfig(id=\"config-1\")\n # #region SingleConfigDbMock [TYPE Class]\n class SingleConfigDbMock:\n def query(self, *args):\n return self\n def filter(self, *args):\n return self\n def first(self):\n return existing_config\n def delete(self, config):\n self.deleted = config\n def commit(self):\n pass\n # #endregion SingleConfigDbMock\n db = SingleConfigDbMock()\n result = asyncio.run(git_routes.delete_git_config(config_id=\"config-1\", db=db))\n assert db.deleted == existing_config\n assert result[\"status\"] == \"success\"\n# #endregion test_delete_git_config_removes_record\n" @@ -4696,17 +3764,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_test_git_config_validates_connection_successfully [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate test-connection endpoint returns success when provider connectivity check passes.\ndef test_test_git_config_validates_connection_successfully(monkeypatch):\n \"\"\"\n @PRE: `config` contains provider, url, and pat.\n @POST: Returns success if the connection is validated via GitService.\n \"\"\"\n # #region MockGitService [TYPE Class]\n class MockGitService:\n async def test_connection(self, provider, url, pat):\n return True\n # #endregion MockGitService\n monkeypatch.setattr(git_routes, \"git_service\", MockGitService())\n from src.api.routes.git_schemas import GitServerConfigCreate\n config = GitServerConfigCreate(\n name=\"Test Server\",\n provider=GitProvider.GITHUB,\n url=\"https://github.com\",\n pat=\"test-pat\",\n )\n db = DbMock([])\n result = asyncio.run(git_routes.test_git_config(config=config, db=db))\n assert result[\"status\"] == \"success\"\n# #endregion test_test_git_config_validates_connection_successfully\n" @@ -4745,17 +3803,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_test_git_config_fails_validation [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate test-connection endpoint raises HTTP 400 when provider connectivity check fails.\ndef test_test_git_config_fails_validation(monkeypatch):\n \"\"\"\n @PRE: `config` contains provider, url, and pat BUT connection fails.\n @THROW: HTTPException 400\n \"\"\"\n # #region MockGitService [TYPE Class]\n class MockGitService:\n async def test_connection(self, provider, url, pat):\n return False\n # #endregion MockGitService\n monkeypatch.setattr(git_routes, \"git_service\", MockGitService())\n from src.api.routes.git_schemas import GitServerConfigCreate\n config = GitServerConfigCreate(\n name=\"Test Server\",\n provider=GitProvider.GITHUB,\n url=\"https://github.com\",\n pat=\"bad-pat\",\n )\n db = DbMock([])\n with pytest.raises(HTTPException) as exc_info:\n asyncio.run(git_routes.test_git_config(config=config, db=db))\n assert exc_info.value.status_code == 400\n assert exc_info.value.detail == \"Connection failed\"\n# #endregion test_test_git_config_fails_validation\n" @@ -4779,17 +3827,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_list_gitea_repositories_returns_payload [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate gitea repositories endpoint returns normalized list for GITEA provider configs.\ndef test_list_gitea_repositories_returns_payload(monkeypatch):\n \"\"\"\n @PRE: config_id exists and provider is GITEA.\n @POST: Returns repositories visible to PAT user.\n \"\"\"\n # #region MockGitService [TYPE Class]\n class MockGitService:\n async def list_gitea_repositories(self, url, pat):\n return [\n {\"name\": \"test-repo\", \"full_name\": \"owner/test-repo\", \"private\": True}\n ]\n # #endregion MockGitService\n monkeypatch.setattr(git_routes, \"git_service\", MockGitService())\n existing_config = GitServerConfig(\n id=\"config-1\",\n name=\"Gitea Server\",\n provider=GitProvider.GITEA,\n url=\"https://gitea.local\",\n pat=\"gitea-token\",\n )\n db = DbMock([existing_config])\n result = asyncio.run(\n git_routes.list_gitea_repositories(config_id=\"config-1\", db=db)\n )\n assert len(result) == 1\n assert result[0].name == \"test-repo\"\n assert result[0].private is True\n# #endregion test_list_gitea_repositories_returns_payload\n" @@ -4813,17 +3851,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_list_gitea_repositories_rejects_non_gitea [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate gitea repositories endpoint rejects non-GITEA providers with HTTP 400.\ndef test_list_gitea_repositories_rejects_non_gitea(monkeypatch):\n \"\"\"\n @PRE: config_id exists and provider is NOT GITEA.\n @THROW: HTTPException 400\n \"\"\"\n existing_config = GitServerConfig(\n id=\"config-1\",\n name=\"GitHub Server\",\n provider=GitProvider.GITHUB,\n url=\"https://github.com\",\n pat=\"token\",\n )\n db = DbMock([existing_config])\n with pytest.raises(HTTPException) as exc_info:\n asyncio.run(git_routes.list_gitea_repositories(config_id=\"config-1\", db=db))\n assert exc_info.value.status_code == 400\n assert \"GITEA provider only\" in exc_info.value.detail\n# #endregion test_list_gitea_repositories_rejects_non_gitea\n" @@ -4847,17 +3875,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_create_remote_repository_creates_provider_repo [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate remote repository creation endpoint maps provider response into normalized payload.\ndef test_create_remote_repository_creates_provider_repo(monkeypatch):\n \"\"\"\n @PRE: config_id exists and PAT has creation permissions.\n @POST: Returns normalized remote repository payload.\n \"\"\"\n # #region MockGitService [TYPE Class]\n class MockGitService:\n async def create_gitlab_repository(\n self, server_url, pat, name, private, description, auto_init, default_branch\n ):\n return {\n \"name\": name,\n \"full_name\": f\"user/{name}\",\n \"private\": private,\n \"clone_url\": f\"{server_url}/user/{name}.git\",\n }\n # #endregion MockGitService\n monkeypatch.setattr(git_routes, \"git_service\", MockGitService())\n from src.api.routes.git_schemas import RemoteRepoCreateRequest\n existing_config = GitServerConfig(\n id=\"config-1\",\n name=\"GitLab Server\",\n provider=GitProvider.GITLAB,\n url=\"https://gitlab.com\",\n pat=\"token\",\n )\n db = DbMock([existing_config])\n request = RemoteRepoCreateRequest(name=\"new-repo\", private=True, description=\"desc\")\n result = asyncio.run(\n git_routes.create_remote_repository(\n config_id=\"config-1\", request=request, db=db\n )\n )\n assert result.provider == GitProvider.GITLAB\n assert result.name == \"new-repo\"\n assert result.full_name == \"user/new-repo\"\n# #endregion test_create_remote_repository_creates_provider_repo\n" @@ -4881,17 +3899,7 @@ "target_ref": "[TestGitApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_init_repository_initializes_and_saves_binding [TYPE Function]\n# @RELATION BINDS_TO -> [TestGitApi]\n# @BRIEF Validate repository initialization endpoint creates local repo and persists dashboard binding.\ndef test_init_repository_initializes_and_saves_binding(monkeypatch):\n \"\"\"\n @PRE: `dashboard_ref` exists and `init_data` contains valid config_id and remote_url.\n @POST: Repository is initialized on disk and a GitRepository record is saved in DB.\n \"\"\"\n from src.api.routes.git_schemas import RepoInitRequest\n # #region MockGitService [TYPE Class]\n class MockGitService:\n def init_repo(self, dashboard_id, remote_url, pat, repo_key, default_branch):\n self.init_called = True\n def _get_repo_path(self, dashboard_id, repo_key):\n return f\"/tmp/repos/{repo_key}\"\n # #endregion MockGitService\n git_service_mock = MockGitService()\n monkeypatch.setattr(git_routes, \"git_service\", git_service_mock)\n monkeypatch.setattr(\n git_routes, \"_resolve_dashboard_id_from_ref\", lambda *args, **kwargs: 123\n )\n monkeypatch.setattr(\n git_routes,\n \"_resolve_repo_key_from_ref\",\n lambda *args, **kwargs: \"dashboard-123\",\n )\n existing_config = GitServerConfig(\n id=\"config-1\",\n name=\"GitLab Server\",\n provider=GitProvider.GITLAB,\n url=\"https://gitlab.com\",\n pat=\"token\",\n default_branch=\"main\",\n )\n db = DbMock([existing_config])\n init_data = RepoInitRequest(\n config_id=\"config-1\", remote_url=\"https://git.local/repo.git\"\n )\n result = asyncio.run(\n git_routes.init_repository(\n dashboard_ref=\"123\", init_data=init_data, config_manager=MagicMock(), db=db\n )\n )\n assert result[\"status\"] == \"success\"\n assert git_service_mock.init_called is True\n assert len(db._added) == 1\n assert isinstance(db._added[0], GitRepository)\n assert db._added[0].dashboard_id == 123\n# #endregion test_init_repository_initializes_and_saves_binding\n" @@ -4935,15 +3943,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -4989,15 +3988,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5043,15 +4033,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5097,15 +4078,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5151,15 +4123,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5205,15 +4168,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5259,15 +4213,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5313,15 +4258,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5367,15 +4303,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5421,15 +4348,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5475,15 +4393,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5529,15 +4438,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5583,15 +4483,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5637,15 +4528,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5669,17 +4551,7 @@ "target_ref": "TestMigrationRoutes" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _mock_env [TYPE Function]\n# @RELATION BINDS_TO -> TestMigrationRoutes\ndef _mock_env():\n \"\"\"Creates a mock config environment object.\"\"\"\n env = MagicMock()\n env.id = \"test-env-1\"\n env.name = \"Test Env\"\n env.url = \"http://superset.test\"\n env.username = \"admin\"\n env.password = \"admin\"\n env.verify_ssl = False\n env.timeout = 30\n return env\n# #endregion _mock_env\n" @@ -5701,17 +4573,7 @@ "target_ref": "TestMigrationRoutes" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_sync_config_manager [TYPE Function]\n# @RELATION BINDS_TO -> TestMigrationRoutes\ndef _make_sync_config_manager(environments):\n \"\"\"Creates a mock config manager with environments list.\"\"\"\n settings = MagicMock()\n settings.migration_sync_cron = \"0 2 * * *\"\n config = MagicMock()\n config.settings = settings\n config.environments = environments\n cm = MagicMock()\n cm.get_config.return_value = config\n cm.get_environments.return_value = environments\n return cm\n# #endregion _make_sync_config_manager\n" @@ -5755,15 +4617,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5809,15 +4662,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5863,15 +4707,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5917,15 +4752,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -5971,15 +4797,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -6025,15 +4842,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -6079,15 +4887,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -6133,15 +4932,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -6187,15 +4977,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -6221,17 +5002,7 @@ "target_ref": "TestReportsApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_task [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsApi\n# @BRIEF Build Task fixture with controlled timestamps/status for reports list/detail normalization.\ndef _make_task(\n task_id: str,\n plugin_id: str,\n status: TaskStatus,\n started_at: datetime,\n finished_at: datetime = None,\n result=None,\n):\n return Task(\n id=task_id,\n plugin_id=plugin_id,\n status=status,\n started_at=started_at,\n finished_at=finished_at,\n params={\"environment_id\": \"env-1\"},\n result=result or {\"summary\": f\"{plugin_id} {status.value.lower()}\"},\n )\n# #endregion _make_task\n" @@ -6255,17 +5026,7 @@ "target_ref": "TestReportsApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_reports_default_pagination_contract [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsApi\n# @BRIEF Validate reports list endpoint default pagination and contract keys for mixed task statuses.\ndef test_get_reports_default_pagination_contract():\n now = datetime.utcnow()\n tasks = [\n _make_task(\n \"t-1\",\n \"superset-backup\",\n TaskStatus.SUCCESS,\n now - timedelta(minutes=10),\n now - timedelta(minutes=9),\n ),\n _make_task(\n \"t-2\",\n \"superset-migration\",\n TaskStatus.FAILED,\n now - timedelta(minutes=8),\n now - timedelta(minutes=7),\n ),\n _make_task(\n \"t-3\",\n \"llm_dashboard_validation\",\n TaskStatus.RUNNING,\n now - timedelta(minutes=6),\n None,\n ),\n ]\n app.dependency_overrides[get_current_user] = lambda: _admin_user()\n app.dependency_overrides[get_task_manager] = lambda: _FakeTaskManager(tasks)\n try:\n client = TestClient(app)\n response = client.get(\"/api/reports\")\n assert response.status_code == 200\n data = response.json()\n assert set(\n [\"items\", \"total\", \"page\", \"page_size\", \"has_next\", \"applied_filters\"]\n ).issubset(data.keys())\n assert data[\"page\"] == 1\n assert data[\"page_size\"] == 20\n assert data[\"total\"] == 3\n assert isinstance(data[\"items\"], list)\n assert data[\"applied_filters\"][\"sort_by\"] == \"updated_at\"\n assert data[\"applied_filters\"][\"sort_order\"] == \"desc\"\n finally:\n app.dependency_overrides.clear()\n# #endregion test_get_reports_default_pagination_contract\n" @@ -6289,17 +5050,7 @@ "target_ref": "TestReportsApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_reports_filter_and_pagination [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsApi\n# @BRIEF Validate reports list endpoint applies task-type/status filters and pagination boundaries.\ndef test_get_reports_filter_and_pagination():\n now = datetime.utcnow()\n tasks = [\n _make_task(\n \"t-1\",\n \"superset-backup\",\n TaskStatus.SUCCESS,\n now - timedelta(minutes=30),\n now - timedelta(minutes=29),\n ),\n _make_task(\n \"t-2\",\n \"superset-backup\",\n TaskStatus.FAILED,\n now - timedelta(minutes=20),\n now - timedelta(minutes=19),\n ),\n _make_task(\n \"t-3\",\n \"superset-migration\",\n TaskStatus.FAILED,\n now - timedelta(minutes=10),\n now - timedelta(minutes=9),\n ),\n ]\n app.dependency_overrides[get_current_user] = lambda: _admin_user()\n app.dependency_overrides[get_task_manager] = lambda: _FakeTaskManager(tasks)\n try:\n client = TestClient(app)\n response = client.get(\n \"/api/reports?task_types=backup&statuses=failed&page=1&page_size=1\"\n )\n assert response.status_code == 200\n data = response.json()\n assert data[\"total\"] == 1\n assert data[\"page\"] == 1\n assert data[\"page_size\"] == 1\n assert data[\"has_next\"] is False\n assert len(data[\"items\"]) == 1\n assert data[\"items\"][0][\"task_type\"] == \"backup\"\n assert data[\"items\"][0][\"status\"] == \"failed\"\n finally:\n app.dependency_overrides.clear()\n# #endregion test_get_reports_filter_and_pagination\n" @@ -6323,17 +5074,7 @@ "target_ref": "TestReportsApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_reports_handles_mixed_naive_and_aware_datetimes [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsApi\n# @BRIEF Validate reports sorting remains stable when task timestamps mix naive and timezone-aware datetimes.\ndef test_get_reports_handles_mixed_naive_and_aware_datetimes():\n naive_now = datetime.utcnow()\n aware_now = datetime.now(UTC)\n tasks = [\n _make_task(\n \"t-naive\",\n \"superset-backup\",\n TaskStatus.SUCCESS,\n naive_now - timedelta(minutes=5),\n naive_now - timedelta(minutes=4),\n ),\n _make_task(\n \"t-aware\",\n \"superset-migration\",\n TaskStatus.FAILED,\n aware_now - timedelta(minutes=3),\n aware_now - timedelta(minutes=2),\n ),\n ]\n app.dependency_overrides[get_current_user] = lambda: _admin_user()\n app.dependency_overrides[get_task_manager] = lambda: _FakeTaskManager(tasks)\n try:\n client = TestClient(app)\n response = client.get(\"/api/reports?sort_by=updated_at&sort_order=desc\")\n assert response.status_code == 200\n data = response.json()\n assert data[\"total\"] == 2\n assert len(data[\"items\"]) == 2\n finally:\n app.dependency_overrides.clear()\n# #endregion test_get_reports_handles_mixed_naive_and_aware_datetimes\n" @@ -6357,17 +5098,7 @@ "target_ref": "TestReportsApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_reports_invalid_filter_returns_400 [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsApi\n# @BRIEF Validate reports list endpoint rejects unsupported task type filters with HTTP 400.\ndef test_get_reports_invalid_filter_returns_400():\n now = datetime.utcnow()\n tasks = [\n _make_task(\n \"t-1\",\n \"superset-backup\",\n TaskStatus.SUCCESS,\n now - timedelta(minutes=5),\n now - timedelta(minutes=4),\n )\n ]\n app.dependency_overrides[get_current_user] = lambda: _admin_user()\n app.dependency_overrides[get_task_manager] = lambda: _FakeTaskManager(tasks)\n try:\n client = TestClient(app)\n response = client.get(\"/api/reports?task_types=bad_type\")\n assert response.status_code == 400\n body = response.json()\n assert \"detail\" in body\n finally:\n app.dependency_overrides.clear()\n# #endregion test_get_reports_invalid_filter_returns_400\n" @@ -6391,17 +5122,7 @@ "target_ref": "TestReportsDetailApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_report_detail_success [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsDetailApi\n# @BRIEF Validate report detail endpoint returns report body with diagnostics and next actions for existing task.\ndef test_get_report_detail_success():\n task = _make_task(\n \"detail-1\",\n \"superset-migration\",\n TaskStatus.FAILED,\n result={\n \"error\": {\n \"message\": \"Step failed\",\n \"next_actions\": [\"Check mapping\", \"Retry\"],\n }\n },\n )\n app.dependency_overrides[get_current_user] = lambda: _admin_user()\n app.dependency_overrides[get_task_manager] = lambda: _FakeTaskManager([task])\n try:\n client = TestClient(app)\n response = client.get(\"/api/reports/detail-1\")\n assert response.status_code == 200\n data = response.json()\n assert \"report\" in data\n assert data[\"report\"][\"report_id\"] == \"detail-1\"\n assert \"diagnostics\" in data\n assert \"next_actions\" in data\n finally:\n app.dependency_overrides.clear()\n# #endregion test_get_report_detail_success\n" @@ -6425,17 +5146,7 @@ "target_ref": "TestReportsDetailApi" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_report_detail_not_found [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsDetailApi\n# @BRIEF Validate report detail endpoint returns 404 when requested report identifier is absent.\ndef test_get_report_detail_not_found():\n task = _make_task(\"detail-2\", \"superset-backup\", TaskStatus.SUCCESS)\n app.dependency_overrides[get_current_user] = lambda: _admin_user()\n app.dependency_overrides[get_task_manager] = lambda: _FakeTaskManager([task])\n try:\n client = TestClient(app)\n response = client.get(\"/api/reports/unknown-id\")\n assert response.status_code == 404\n finally:\n app.dependency_overrides.clear()\n# #endregion test_get_report_detail_not_found\n" @@ -6459,17 +5170,7 @@ "target_ref": "TestReportsOpenapiConformance" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _admin_user [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsOpenapiConformance\n# @BRIEF Provide admin principal fixture required by reports routes in conformance tests.\ndef _admin_user():\n role = SimpleNamespace(name=\"Admin\", permissions=[])\n return SimpleNamespace(username=\"test-admin\", roles=[role])\n# #endregion _admin_user\n" @@ -6493,17 +5194,7 @@ "target_ref": "TestReportsOpenapiConformance" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _task [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsOpenapiConformance\n# @BRIEF Construct deterministic task fixture consumed by reports list/detail payload assertions.\ndef _task(task_id: str, plugin_id: str, status: TaskStatus):\n now = datetime.utcnow()\n return Task(\n id=task_id,\n plugin_id=plugin_id,\n status=status,\n started_at=now,\n finished_at=now if status != TaskStatus.RUNNING else None,\n params={\"environment_id\": \"env-1\"},\n result={\"summary\": f\"{plugin_id} {status.value.lower()}\"},\n )\n# #endregion _task\n" @@ -6527,17 +5218,7 @@ "target_ref": "TestReportsOpenapiConformance" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_reports_list_openapi_required_keys [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsOpenapiConformance\n# @BRIEF Verify reports list endpoint includes all required OpenAPI top-level keys.\ndef test_reports_list_openapi_required_keys():\n tasks = [\n _task(\"r-1\", \"superset-backup\", TaskStatus.SUCCESS),\n _task(\"r-2\", \"superset-migration\", TaskStatus.FAILED),\n ]\n app.dependency_overrides[get_current_user] = lambda: _admin_user()\n app.dependency_overrides[get_task_manager] = lambda: _FakeTaskManager(tasks)\n try:\n client = TestClient(app)\n response = client.get(\"/api/reports\")\n assert response.status_code == 200\n body = response.json()\n required = {\n \"items\",\n \"total\",\n \"page\",\n \"page_size\",\n \"has_next\",\n \"applied_filters\",\n }\n assert required.issubset(body.keys())\n finally:\n app.dependency_overrides.clear()\n# #endregion test_reports_list_openapi_required_keys\n" @@ -6561,17 +5242,7 @@ "target_ref": "TestReportsOpenapiConformance" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_reports_detail_openapi_required_keys [TYPE Function]\n# @RELATION BINDS_TO -> TestReportsOpenapiConformance\n# @BRIEF Verify reports detail endpoint returns payload containing the report object key.\ndef test_reports_detail_openapi_required_keys():\n tasks = [_task(\"r-3\", \"llm_dashboard_validation\", TaskStatus.SUCCESS)]\n app.dependency_overrides[get_current_user] = lambda: _admin_user()\n app.dependency_overrides[get_task_manager] = lambda: _FakeTaskManager(tasks)\n try:\n client = TestClient(app)\n response = client.get(\"/api/reports/r-3\")\n assert response.status_code == 200\n body = response.json()\n assert \"report\" in body\n finally:\n app.dependency_overrides.clear()\n# #endregion test_reports_detail_openapi_required_keys\n" @@ -6595,17 +5266,7 @@ "target_ref": "test_tasks_logs_module" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_task_logs_success [TYPE Function]\n# @RELATION BINDS_TO -> test_tasks_logs_module\n# @BRIEF Validate task logs endpoint returns filtered logs for an existing task.\ndef test_get_task_logs_success(client):\n tc, tm = client\n # Setup mock task\n mock_task = MagicMock()\n tm.get_task.return_value = mock_task\n tm.get_task_logs.return_value = [{\"level\": \"INFO\", \"message\": \"msg1\"}]\n response = tc.get(\"/tasks/task-1/logs?level=INFO\")\n assert response.status_code == 200\n assert response.json() == [{\"level\": \"INFO\", \"message\": \"msg1\"}]\n tm.get_task.assert_called_with(\"task-1\")\n # Verify filter construction inside route\n args = tm.get_task_logs.call_args\n assert args[0][0] == \"task-1\"\n assert args[0][1].level == \"INFO\"\n# @TEST_EDGE: task_not_found\n# #endregion test_get_task_logs_success\n" @@ -6630,17 +5291,7 @@ "target_ref": "test_tasks_logs_module" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_task_logs_not_found [TYPE Function]\n# @RELATION BINDS_TO -> test_tasks_logs_module\n# @BRIEF Validate task logs endpoint returns 404 when the task identifier is missing.\ndef test_get_task_logs_not_found(client):\n tc, tm = client\n tm.get_task.return_value = None\n response = tc.get(\"/tasks/missing/logs\")\n assert response.status_code == 404\n assert response.json()[\"detail\"] == \"Task not found\"\n# @TEST_EDGE: invalid_limit\n# #endregion test_get_task_logs_not_found\n" @@ -6664,17 +5315,7 @@ "target_ref": "test_tasks_logs_module" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_task_logs_invalid_limit [TYPE Function]\n# @RELATION BINDS_TO -> test_tasks_logs_module\n# @BRIEF Validate task logs endpoint enforces query validation for limit lower bound.\ndef test_get_task_logs_invalid_limit(client):\n tc, tm = client\n # limit=0 is ge=1 in Query\n response = tc.get(\"/tasks/task-1/logs?limit=0\")\n assert response.status_code == 422\n# @TEST_INVARIANT: response_purity\n# #endregion test_get_task_logs_invalid_limit\n" @@ -6698,17 +5339,7 @@ "target_ref": "test_tasks_logs_module" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_task_log_stats_success [TYPE Function]\n# @RELATION BINDS_TO -> test_tasks_logs_module\n# @BRIEF Validate log stats endpoint returns success payload for an existing task.\ndef test_get_task_log_stats_success(client):\n tc, tm = client\n tm.get_task.return_value = MagicMock()\n tm.get_task_log_stats.return_value = {\"INFO\": 5, \"ERROR\": 1}\n response = tc.get(\"/tasks/task-1/logs/stats\")\n assert response.status_code == 200\n# response_model=LogStats might wrap this, but let's check basic structure\n# assuming tm.get_task_log_stats returns something compatible with LogStats\n# #endregion test_get_task_log_stats_success\n" @@ -6748,15 +5379,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -7223,17 +5845,7 @@ "target_ref": "[has_permission:Function]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region create_ad_mapping [C:2] [TYPE Function]\n# @RELATION DEPENDS_ON -> [ADGroupMapping:Class]\n# @RELATION DEPENDS_ON -> [get_auth_db:Function]\n# @RELATION DEPENDS_ON -> [has_permission:Function]\n# @BRIEF Creates a new AD Group mapping.\n@router.post(\"/ad-mappings\", response_model=ADGroupMappingSchema)\nasync def create_ad_mapping(\n mapping_in: ADGroupMappingCreate,\n db: Session = Depends(get_auth_db),\n _=Depends(has_permission(\"admin:settings\", \"WRITE\")),\n):\n with belief_scope(\"api.admin.create_ad_mapping\"):\n new_mapping = ADGroupMapping(\n ad_group=mapping_in.ad_group, role_id=mapping_in.role_id\n )\n db.add(new_mapping)\n db.commit()\n db.refresh(new_mapping)\n return new_mapping\n\n\n# #endregion create_ad_mapping\n" @@ -7273,15 +5885,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -7491,15 +6094,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -7572,15 +6166,6 @@ "actual_complexity": 4, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -7622,15 +6207,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -7833,15 +6409,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -7961,15 +6528,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -8142,26 +6700,7 @@ "target_ref": "[AssistantSchemas]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region AssistantHistory [C:2] [TYPE Module] [SEMANTICS assistant, history, audit, persistence, conversation]\n# @BRIEF Conversation history, audit trail, and confirmation persistence helpers for the assistant API.\n# @LAYER: API\n# @RELATION DEPENDS_ON -> [AssistantSchemas]\n# @INVARIANT: Failed persistence attempts always rollback before returning.\n\nfrom __future__ import annotations\n\nimport uuid\nfrom datetime import datetime, timedelta\nfrom typing import Any\n\nfrom sqlalchemy.orm import Session\n\nfrom src.core.logger import logger\nfrom src.models.assistant import (\n AssistantAuditRecord,\n AssistantConfirmationRecord,\n AssistantMessageRecord,\n)\n\nfrom ._schemas import (\n ASSISTANT_ARCHIVE_AFTER_DAYS,\n ASSISTANT_AUDIT,\n ASSISTANT_MESSAGE_TTL_DAYS,\n CONVERSATIONS,\n ConfirmationRecord,\n)\n\nlogger = logger\n\n\n# #region _append_history [C:2] [TYPE Function]\n# @BRIEF Append conversation message to in-memory history buffer.\n# @DATA_CONTRACT: Input[user_id,conversation_id,role,text,state?,task_id?,confirmation_id?] -> Output[None]\n# @RELATION UPDATES -> [CONVERSATIONS]\n# @SIDE_EFFECT: Mutates in-memory CONVERSATIONS store for user conversation history.\n# @PRE: user_id and conversation_id identify target conversation bucket.\n# @POST: Message entry is appended to CONVERSATIONS key list.\n# @INVARIANT: every appended entry includes generated message_id and created_at timestamp.\ndef _append_history(\n user_id: str,\n conversation_id: str,\n role: str,\n text: str,\n state: str | None = None,\n task_id: str | None = None,\n confirmation_id: str | None = None,\n):\n key = (user_id, conversation_id)\n if key not in CONVERSATIONS:\n CONVERSATIONS[key] = []\n CONVERSATIONS[key].append(\n {\n \"message_id\": str(uuid.uuid4()),\n \"conversation_id\": conversation_id,\n \"role\": role,\n \"text\": text,\n \"state\": state,\n \"task_id\": task_id,\n \"confirmation_id\": confirmation_id,\n \"created_at\": datetime.utcnow(),\n }\n )\n\n\n# #endregion _append_history\n\n\n# #region _persist_message [C:2] [TYPE Function]\n# @BRIEF Persist assistant/user message record to database.\n# @DATA_CONTRACT: Input[Session,user_id,conversation_id,role,text,state?,task_id?,confirmation_id?,metadata?] -> Output[None]\n# @RELATION DEPENDS_ON -> [AssistantMessageRecord]\n# @SIDE_EFFECT: Writes AssistantMessageRecord rows and commits or rollbacks the DB session.\n# @PRE: db session is writable and message payload is serializable.\n# @POST: Message row is committed or persistence failure is logged.\n# @INVARIANT: failed persistence attempts always rollback before returning.\ndef _persist_message(\n db: Session,\n user_id: str,\n conversation_id: str,\n role: str,\n text: str,\n state: str | None = None,\n task_id: str | None = None,\n confirmation_id: str | None = None,\n metadata: dict[str, Any] | None = None,\n):\n try:\n row = AssistantMessageRecord(\n id=str(uuid.uuid4()),\n user_id=user_id,\n conversation_id=conversation_id,\n role=role,\n text=text,\n state=state,\n task_id=task_id,\n confirmation_id=confirmation_id,\n payload=metadata,\n )\n db.add(row)\n db.commit()\n except Exception as exc:\n db.rollback()\n logger.warning(f\"[assistant.message][persist_failed] {exc}\")\n\n\n# #endregion _persist_message\n\n\n# #region _audit [C:2] [TYPE Function]\n# @BRIEF Append in-memory audit record for assistant decision trace.\n# @DATA_CONTRACT: Input[user_id,payload:Dict[str,Any]] -> Output[None]\n# @RELATION UPDATES -> [ASSISTANT_AUDIT]\n# @SIDE_EFFECT: Mutates in-memory ASSISTANT_AUDIT store and emits structured log event.\n# @PRE: payload describes decision/outcome fields.\n# @POST: ASSISTANT_AUDIT list for user contains new timestamped entry.\n# @INVARIANT: persisted in-memory audit entry always contains created_at in ISO format.\ndef _audit(user_id: str, payload: dict[str, Any]):\n if user_id not in ASSISTANT_AUDIT:\n ASSISTANT_AUDIT[user_id] = []\n ASSISTANT_AUDIT[user_id].append(\n {**payload, \"created_at\": datetime.utcnow().isoformat()}\n )\n logger.info(f\"[assistant.audit] {payload}\")\n\n\n# #endregion _audit\n\n\n# #region _persist_audit [C:2] [TYPE Function]\n# @BRIEF Persist structured assistant audit payload in database.\n# @PRE: db session is writable and payload is JSON-serializable.\n# @POST: Audit row is committed or failure is logged with rollback.\ndef _persist_audit(\n db: Session, user_id: str, payload: dict[str, Any], conversation_id: str | None\n):\n try:\n row = AssistantAuditRecord(\n id=str(uuid.uuid4()),\n user_id=user_id,\n conversation_id=conversation_id,\n decision=payload.get(\"decision\"),\n task_id=payload.get(\"task_id\"),\n message=payload.get(\"message\"),\n payload=payload,\n )\n db.add(row)\n db.commit()\n except Exception as exc:\n db.rollback()\n logger.warning(f\"[assistant.audit][persist_failed] {exc}\")\n\n\n# #endregion _persist_audit\n\n\n# #region _persist_confirmation [C:2] [TYPE Function]\n# @BRIEF Persist confirmation token record to database.\n# @PRE: record contains id/user/intent/dispatch/expiry fields.\n# @POST: Confirmation row exists in persistent storage.\ndef _persist_confirmation(db: Session, record: ConfirmationRecord):\n try:\n row = AssistantConfirmationRecord(\n id=record.id,\n user_id=record.user_id,\n conversation_id=record.conversation_id,\n state=record.state,\n intent=record.intent,\n dispatch=record.dispatch,\n expires_at=record.expires_at,\n created_at=record.created_at,\n consumed_at=None,\n )\n db.merge(row)\n db.commit()\n except Exception as exc:\n db.rollback()\n logger.warning(f\"[assistant.confirmation][persist_failed] {exc}\")\n\n\n# #endregion _persist_confirmation\n\n\n# #region _update_confirmation_state [C:2] [TYPE Function]\n# @BRIEF Update persistent confirmation token lifecycle state.\n# @PRE: confirmation_id references existing row.\n# @POST: State and consumed_at fields are updated when applicable.\ndef _update_confirmation_state(db: Session, confirmation_id: str, state: str):\n try:\n row = (\n db.query(AssistantConfirmationRecord)\n .filter(AssistantConfirmationRecord.id == confirmation_id)\n .first()\n )\n if not row:\n return\n row.state = state\n if state in {\"consumed\", \"expired\", \"cancelled\"}:\n row.consumed_at = datetime.utcnow()\n db.commit()\n except Exception as exc:\n db.rollback()\n logger.warning(f\"[assistant.confirmation][update_failed] {exc}\")\n\n\n# #endregion _update_confirmation_state\n\n\n# #region _load_confirmation_from_db [C:2] [TYPE Function]\n# @BRIEF Load confirmation token from database into in-memory model.\n# @PRE: confirmation_id may or may not exist in storage.\n# @POST: Returns ConfirmationRecord when found, otherwise None.\ndef _load_confirmation_from_db(\n db: Session, confirmation_id: str\n) -> ConfirmationRecord | None:\n row = (\n db.query(AssistantConfirmationRecord)\n .filter(AssistantConfirmationRecord.id == confirmation_id)\n .first()\n )\n if not row:\n return None\n return ConfirmationRecord(\n id=row.id,\n user_id=row.user_id,\n conversation_id=row.conversation_id,\n intent=row.intent or {},\n dispatch=row.dispatch or {},\n expires_at=row.expires_at,\n state=row.state,\n created_at=row.created_at,\n )\n\n\n# #endregion _load_confirmation_from_db\n\n\n# #region _ensure_conversation [C:2] [TYPE Function]\n# @BRIEF Resolve active conversation id in memory or create a new one.\n# @PRE: user_id identifies current actor.\n# @POST: Returns stable conversation id and updates USER_ACTIVE_CONVERSATION.\ndef _ensure_conversation(user_id: str, conversation_id: str | None) -> str:\n if conversation_id:\n from ._schemas import USER_ACTIVE_CONVERSATION\n USER_ACTIVE_CONVERSATION[user_id] = conversation_id\n return conversation_id\n\n from ._schemas import USER_ACTIVE_CONVERSATION\n active = USER_ACTIVE_CONVERSATION.get(user_id)\n if active:\n return active\n\n new_id = str(uuid.uuid4())\n USER_ACTIVE_CONVERSATION[user_id] = new_id\n return new_id\n\n\n# #endregion _ensure_conversation\n\n\n# #region _resolve_or_create_conversation [C:2] [TYPE Function]\n# @BRIEF Resolve active conversation using explicit id, memory cache, or persisted history.\n# @PRE: user_id and db session are available.\n# @POST: Returns conversation id and updates USER_ACTIVE_CONVERSATION cache.\ndef _resolve_or_create_conversation(\n user_id: str, conversation_id: str | None, db: Session\n) -> str:\n from ._schemas import USER_ACTIVE_CONVERSATION\n\n if conversation_id:\n USER_ACTIVE_CONVERSATION[user_id] = conversation_id\n return conversation_id\n\n active = USER_ACTIVE_CONVERSATION.get(user_id)\n if active:\n return active\n\n from sqlalchemy import desc\n\n last_message = (\n db.query(AssistantMessageRecord)\n .filter(AssistantMessageRecord.user_id == user_id)\n .order_by(desc(AssistantMessageRecord.created_at))\n .first()\n )\n if last_message:\n USER_ACTIVE_CONVERSATION[user_id] = last_message.conversation_id\n return last_message.conversation_id\n\n new_id = str(uuid.uuid4())\n USER_ACTIVE_CONVERSATION[user_id] = new_id\n return new_id\n\n\n# #endregion _resolve_or_create_conversation\n\n\n# #region _cleanup_history_ttl [C:2] [TYPE Function]\n# @BRIEF Enforce assistant message retention window by deleting expired rows and in-memory records.\n# @PRE: db session is available and user_id references current actor scope.\n# @POST: Messages older than ASSISTANT_MESSAGE_TTL_DAYS are removed from persistence and memory mirrors.\ndef _cleanup_history_ttl(db: Session, user_id: str):\n cutoff = datetime.utcnow() - timedelta(days=ASSISTANT_MESSAGE_TTL_DAYS)\n try:\n query = db.query(AssistantMessageRecord).filter(\n AssistantMessageRecord.user_id == user_id,\n AssistantMessageRecord.created_at < cutoff,\n )\n if hasattr(query, \"delete\"):\n query.delete(synchronize_session=False)\n db.commit()\n except Exception as exc:\n db.rollback()\n logger.warning(\n f\"[assistant.history][ttl_cleanup_failed] user={user_id} error={exc}\"\n )\n\n stale_keys: list[tuple[str, str]] = []\n for key, items in CONVERSATIONS.items():\n if key[0] != user_id:\n continue\n kept = []\n for item in items:\n created_at = item.get(\"created_at\")\n if isinstance(created_at, datetime) and created_at < cutoff:\n continue\n kept.append(item)\n if kept:\n CONVERSATIONS[key] = kept\n else:\n stale_keys.append(key)\n for key in stale_keys:\n CONVERSATIONS.pop(key, None)\n\n\n# #endregion _cleanup_history_ttl\n\n\n# #region _is_conversation_archived [C:2] [TYPE Function]\n# @BRIEF Determine archived state for a conversation based on last update timestamp.\n# @PRE: updated_at can be null for empty conversations.\n# @POST: Returns True when conversation inactivity exceeds archive threshold.\ndef _is_conversation_archived(updated_at: datetime | None) -> bool:\n if not updated_at:\n return False\n cutoff = datetime.utcnow() - timedelta(days=ASSISTANT_ARCHIVE_AFTER_DAYS)\n return updated_at < cutoff\n\n\n# #endregion _is_conversation_archived\n\n\n# #region _coerce_query_bool [C:2] [TYPE Function]\n# @BRIEF Normalize bool-like query values for compatibility in direct handler invocations/tests.\n# @PRE: value may be bool, string, or FastAPI Query metadata object.\n# @POST: Returns deterministic boolean flag.\ndef _coerce_query_bool(value: Any) -> bool:\n if isinstance(value, bool):\n return value\n if isinstance(value, str):\n return value.strip().lower() in {\"1\", \"true\", \"yes\", \"on\"}\n return False\n\n\n# #endregion _coerce_query_bool\n\n\n# #endregion AssistantHistory\n" @@ -8201,15 +6740,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -8237,15 +6767,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -8305,15 +6826,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -8340,15 +6852,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -8390,15 +6893,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -8426,15 +6920,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -9159,26 +7644,7 @@ "target_ref": "[SupersetClient]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region AssistantResolvers [C:2] [TYPE Module] [SEMANTICS assistant, resolver, lookup, environment, mapper]\n# @BRIEF Environment, dashboard, provider, and task resolution utilities for the assistant API.\n# @LAYER: API\n# @RELATION DEPENDS_ON -> [ConfigManager]\n# @RELATION DEPENDS_ON -> [SupersetClient]\n# @INVARIANT: Resolution functions never raise; they return None on failure.\n\nfrom __future__ import annotations\n\nimport re\nfrom typing import Any, cast\n\nfrom sqlalchemy.orm import Session\n\nfrom src.core.config_manager import ConfigManager\nfrom src.core.logger import logger\nfrom src.core.superset_client import SupersetClient\nfrom src.services.llm_prompt_templates import resolve_bound_provider_id\nfrom src.services.llm_provider import LLMProviderService\n\nlogger = cast(Any, logger)\n\n\n# #region _extract_id [C:2] [TYPE Function]\n# @BRIEF Extract first regex match group from text by ordered pattern list.\n# @PRE: patterns contain at least one capture group.\n# @POST: Returns first matched token or None.\ndef _extract_id(text: str, patterns: list[str]) -> str | None:\n for p in patterns:\n m = re.search(p, text, flags=re.IGNORECASE)\n if m:\n return m.group(1)\n return None\n\n\n# #endregion _extract_id\n\n# #region _resolve_env_id [C:2] [TYPE Function]\n# @BRIEF Resolve environment identifier/name token to canonical environment id.\n# @PRE: config_manager provides environment list.\n# @POST: Returns matched environment id or None.\ndef _resolve_env_id(\n token: str | None, config_manager: ConfigManager\n) -> str | None:\n if not token:\n return None\n\n normalized = token.strip().lower()\n envs = config_manager.get_environments()\n for env in envs:\n if env.id.lower() == normalized or env.name.lower() == normalized:\n return env.id\n return None\n\n\n# #endregion _resolve_env_id\n\n# #region _is_production_env [C:2] [TYPE Function]\n# @BRIEF Determine whether environment token resolves to production-like target.\n# @PRE: config_manager provides environments or token text is provided.\n# @POST: Returns True for production/prod synonyms, else False.\ndef _is_production_env(token: str | None, config_manager: ConfigManager) -> bool:\n env_id = _resolve_env_id(token, config_manager)\n if not env_id:\n return (token or \"\").strip().lower() in {\"prod\", \"production\", \"прод\"}\n\n env = next((e for e in config_manager.get_environments() if e.id == env_id), None)\n if not env:\n return False\n target = f\"{env.id} {env.name}\".lower()\n return \"prod\" in target or \"production\" in target or \"прод\" in target\n\n\n# #endregion _is_production_env\n\n# #region _resolve_provider_id [C:2] [TYPE Function]\n# @BRIEF Resolve provider token to provider id with active/default fallback.\n# @PRE: db session can load provider list through LLMProviderService.\n# @POST: Returns provider id or None when no providers configured.\ndef _resolve_provider_id(\n provider_token: str | None,\n db: Session,\n config_manager: ConfigManager | None = None,\n task_key: str | None = None,\n) -> str | None:\n service = LLMProviderService(db)\n providers = service.get_all_providers()\n if not providers:\n return None\n\n if provider_token:\n needle = provider_token.strip().lower()\n for p in providers:\n if p.id.lower() == needle or p.name.lower() == needle:\n return p.id\n\n if config_manager and task_key:\n try:\n llm_settings = config_manager.get_config().settings.llm\n bound_provider_id = resolve_bound_provider_id(llm_settings, task_key)\n if bound_provider_id and any(p.id == bound_provider_id for p in providers):\n return bound_provider_id\n except Exception:\n pass\n\n active = next((p for p in providers if p.is_active), None)\n return active.id if active else providers[0].id\n\n\n# #endregion _resolve_provider_id\n\n# #region _get_default_environment_id [C:2] [TYPE Function]\n# @BRIEF Resolve default environment id from settings or first configured environment.\n# @PRE: config_manager returns environments list.\n# @POST: Returns default environment id or None when environment list is empty.\ndef _get_default_environment_id(config_manager: ConfigManager) -> str | None:\n configured = config_manager.get_environments()\n if not configured:\n return None\n preferred = None\n if hasattr(config_manager, \"get_config\"):\n try:\n preferred = config_manager.get_config().settings.default_environment_id\n except Exception:\n preferred = None\n if preferred and any(env.id == preferred for env in configured):\n return preferred\n explicit_default = next(\n (env.id for env in configured if getattr(env, \"is_default\", False)), None\n )\n return explicit_default or configured[0].id\n\n\n# #endregion _get_default_environment_id\n\n# #region _resolve_dashboard_id_by_ref [C:2] [TYPE Function]\n# @BRIEF Resolve dashboard id by title or slug reference in selected environment.\n# @PRE: dashboard_ref is a non-empty string-like token.\n# @POST: Returns dashboard id when uniquely matched, otherwise None.\ndef _resolve_dashboard_id_by_ref(\n dashboard_ref: str | None,\n env_id: str | None,\n config_manager: ConfigManager,\n) -> int | None:\n if not dashboard_ref or not env_id:\n return None\n env = next(\n (item for item in config_manager.get_environments() if item.id == env_id), None\n )\n if not env:\n return None\n\n needle = dashboard_ref.strip().lower()\n try:\n client = SupersetClient(env)\n _, dashboards = client.get_dashboards(query={\"page_size\": 200})\n except Exception as exc:\n logger.warning(\n f\"[assistant.dashboard_resolve][failed] ref={dashboard_ref} env={env_id} error={exc}\"\n )\n return None\n\n exact = next(\n (\n d\n for d in dashboards\n if str(d.get(\"slug\", \"\")).lower() == needle\n or str(d.get(\"dashboard_title\", \"\")).lower() == needle\n or str(d.get(\"title\", \"\")).lower() == needle\n ),\n None,\n )\n if exact:\n return int(exact.get(\"id\"))\n\n partial = [\n d\n for d in dashboards\n if needle in str(d.get(\"dashboard_title\", d.get(\"title\", \"\"))).lower()\n ]\n if len(partial) == 1 and partial[0].get(\"id\") is not None:\n return int(partial[0][\"id\"])\n return None\n\n\n# #endregion _resolve_dashboard_id_by_ref\n\n# #region _resolve_dashboard_id_entity [C:2] [TYPE Function]\n# @BRIEF Resolve dashboard id from intent entities using numeric id or dashboard_ref fallback.\n# @PRE: entities may contain dashboard_id as int/str and optional dashboard_ref.\n# @POST: Returns resolved dashboard id or None when ambiguous/unresolvable.\ndef _resolve_dashboard_id_entity(\n entities: dict[str, Any],\n config_manager: ConfigManager,\n env_hint: str | None = None,\n) -> int | None:\n raw_dashboard_id = entities.get(\"dashboard_id\")\n dashboard_ref = entities.get(\"dashboard_ref\")\n\n if isinstance(raw_dashboard_id, int):\n return raw_dashboard_id\n\n if isinstance(raw_dashboard_id, str):\n token = raw_dashboard_id.strip()\n if token.isdigit():\n return int(token)\n if token and not dashboard_ref:\n dashboard_ref = token\n\n if not dashboard_ref:\n return None\n\n env_token = (\n env_hint\n or entities.get(\"environment\")\n or entities.get(\"source_env\")\n or entities.get(\"target_env\")\n )\n env_id = (\n _resolve_env_id(env_token, config_manager)\n if env_token\n else _get_default_environment_id(config_manager)\n )\n return _resolve_dashboard_id_by_ref(str(dashboard_ref), env_id, config_manager)\n\n\n# #endregion _resolve_dashboard_id_entity\n\n# #region _get_environment_name_by_id [C:2] [TYPE Function]\n# @BRIEF Resolve human-readable environment name by id.\n# @PRE: environment id may be None.\n# @POST: Returns matching environment name or fallback id.\ndef _get_environment_name_by_id(\n env_id: str | None, config_manager: ConfigManager\n) -> str:\n if not env_id:\n return \"unknown\"\n env = next(\n (item for item in config_manager.get_environments() if item.id == env_id), None\n )\n return env.name if env else env_id\n\n\n# #endregion _get_environment_name_by_id\n\n# #region _extract_result_deep_links [C:2] [TYPE Function]\n# @BRIEF Build deep-link actions to verify task result from assistant chat.\n# @PRE: task object is available.\n# @POST: Returns zero or more assistant actions for dashboard open/diff.\ndef _extract_result_deep_links(\n task: Any, config_manager: ConfigManager\n) -> list:\n from ._schemas import AssistantAction\n\n plugin_id = getattr(task, \"plugin_id\", None)\n params = getattr(task, \"params\", {}) or {}\n result = getattr(task, \"result\", {}) or {}\n actions: list = []\n dashboard_id: int | None = None\n env_id: str | None = None\n\n if plugin_id == \"superset-migration\":\n migrated = (\n result.get(\"migrated_dashboards\") if isinstance(result, dict) else None\n )\n if isinstance(migrated, list) and migrated:\n first = migrated[0]\n if isinstance(first, dict) and first.get(\"id\") is not None:\n dashboard_id = int(first.get(\"id\"))\n if (\n dashboard_id is None\n and isinstance(params.get(\"selected_ids\"), list)\n and params[\"selected_ids\"]\n ):\n dashboard_id = int(params[\"selected_ids\"][0])\n env_id = params.get(\"target_env_id\")\n elif plugin_id == \"superset-backup\":\n dashboards = result.get(\"dashboards\") if isinstance(result, dict) else None\n if isinstance(dashboards, list) and dashboards:\n first = dashboards[0]\n if isinstance(first, dict) and first.get(\"id\") is not None:\n dashboard_id = int(first.get(\"id\"))\n if (\n dashboard_id is None\n and isinstance(params.get(\"dashboard_ids\"), list)\n and params[\"dashboard_ids\"]\n ):\n dashboard_id = int(params[\"dashboard_ids\"][0])\n env_id = params.get(\"environment_id\") or _resolve_env_id(\n result.get(\"environment\"), config_manager\n )\n elif plugin_id == \"llm_dashboard_validation\":\n if params.get(\"dashboard_id\") is not None:\n dashboard_id = int(params[\"dashboard_id\"])\n env_id = params.get(\"environment_id\")\n\n if dashboard_id is not None and env_id:\n env_name = _get_environment_name_by_id(env_id, config_manager)\n actions.append(\n AssistantAction(\n type=\"open_route\",\n label=f\"Открыть дашборд в {env_name}\",\n target=f\"/dashboards/{dashboard_id}?env_id={env_id}\",\n )\n )\n if dashboard_id is not None:\n actions.append(\n AssistantAction(\n type=\"open_diff\",\n label=\"Показать Diff\",\n target=str(dashboard_id),\n )\n )\n return actions\n\n\n# #endregion _extract_result_deep_links\n\n# #region _build_task_observability_summary [C:2] [TYPE Function]\n# @BRIEF Build compact textual summary for completed tasks to reduce \"black box\" effect.\n# @PRE: task may contain plugin-specific result payload.\n# @POST: Returns non-empty summary line for known task types or empty string fallback.\ndef _build_task_observability_summary(task: Any, config_manager: ConfigManager) -> str:\n plugin_id = getattr(task, \"plugin_id\", None)\n status = str(getattr(task, \"status\", \"\")).upper()\n params = getattr(task, \"params\", {}) or {}\n result = getattr(task, \"result\", {}) or {}\n\n if plugin_id == \"superset-migration\" and isinstance(result, dict):\n migrated = len(result.get(\"migrated_dashboards\") or [])\n failed_rows = result.get(\"failed_dashboards\") or []\n failed = len(failed_rows)\n selected = result.get(\"selected_dashboards\", migrated + failed)\n mappings = result.get(\"mapping_count\", 0)\n target_env_id = params.get(\"target_env_id\")\n target_env_name = _get_environment_name_by_id(target_env_id, config_manager)\n warning = \"\"\n if failed_rows:\n first = failed_rows[0]\n warning = (\n f\" Внимание: {first.get('title') or first.get('id')}: \"\n f\"{first.get('error') or 'ошибка'}.\"\n )\n return (\n f\"Сводка миграции: выбрано {selected}, перенесено {migrated}, \"\n f\"с ошибками {failed}, маппингов {mappings}, целевая среда {target_env_name}.\"\n f\"{warning}\"\n )\n\n if plugin_id == \"superset-backup\" and isinstance(result, dict):\n total = int(result.get(\"total_dashboards\", 0) or 0)\n ok = int(result.get(\"backed_up_dashboards\", 0) or 0)\n failed = int(result.get(\"failed_dashboards\", 0) or 0)\n env_id = params.get(\"environment_id\") or _resolve_env_id(\n result.get(\"environment\"), config_manager\n )\n env_name = _get_environment_name_by_id(env_id, config_manager)\n failures = result.get(\"failures\") or []\n warning = \"\"\n if failures:\n first = failures[0]\n warning = (\n f\" Внимание: {first.get('title') or first.get('id')}: \"\n f\"{first.get('error') or 'ошибка'}.\"\n )\n return (\n f\"Сводка бэкапа: среда {env_name}, всего {total}, успешно {ok}, \"\n f\"с ошибками {failed}. {status}.{warning}\"\n )\n\n if plugin_id == \"llm_dashboard_validation\" and isinstance(result, dict):\n report_status = result.get(\"status\") or status\n report_summary = result.get(\"summary\") or \"Итог недоступен.\"\n issues = result.get(\"issues\") or []\n return f\"Сводка валидации: статус {report_status}, проблем {len(issues)}. {report_summary}\"\n\n # Fallback for unknown task payloads.\n if status in {\"SUCCESS\", \"FAILED\"}:\n return f\"Задача завершена со статусом {status}.\"\n return \"\"\n\n\n# #endregion _build_task_observability_summary\n\n# #endregion AssistantResolvers\n" @@ -9632,15 +8098,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -9840,24 +8297,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -9936,15 +8375,6 @@ "contract_type": "Class" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -9972,15 +8402,6 @@ "contract_type": "Class" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -10040,15 +8461,6 @@ "contract_type": "Class" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -10076,15 +8488,6 @@ "contract_type": "Class" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -10156,15 +8559,6 @@ "contract_type": "Class" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -10192,15 +8586,6 @@ "contract_type": "Class" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -10310,15 +8695,6 @@ "contract_type": "Class" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -10346,15 +8722,6 @@ "contract_type": "Class" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -10448,17 +8815,7 @@ "target_ref": "[PreparationService]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region CleanReleaseApi [C:4] [TYPE Module] [SEMANTICS fastapi, clean-release, api, compliance, candidate, release]\n# @BRIEF Expose clean release endpoints for candidate preparation and subsequent compliance flow.\n# @LAYER: API\n# @RELATION DEPENDS_ON -> [get_clean_release_repository]\n# @RELATION DEPENDS_ON -> [PreparationService]\n# @PRE: Clean release repository and preparation service dependencies are configured for the current request scope.\n# @POST: Candidate preparation, manifest, and compliance routes expose deterministic API payloads without reporting prepared state on failed preparation.\n# @SIDE_EFFECT: Persists candidate/compliance lifecycle state and triggers clean-release orchestration services.\n# @INVARIANT: API never reports prepared status if preparation errors are present.\n\nfrom __future__ import annotations\n\nfrom datetime import UTC, datetime\nfrom typing import Any\n\nfrom fastapi import APIRouter, Depends, HTTPException, status\nfrom pydantic import BaseModel, Field\n\nfrom ...core.logger import belief_scope, logger\nfrom ...dependencies import get_clean_release_repository\nfrom ...models.clean_release import (\n CandidateArtifact,\n ComplianceStageRun,\n ComplianceViolation,\n ReleaseCandidate,\n)\nfrom ...services.clean_release.compliance_orchestrator import (\n CleanComplianceOrchestrator,\n)\nfrom ...services.clean_release.dto import (\n CandidateDTO,\n CandidateOverviewDTO,\n ManifestDTO,\n)\nfrom ...services.clean_release.enums import (\n CandidateStatus,\n ComplianceDecision,\n ComplianceStageName,\n RunStatus,\n ViolationSeverity,\n)\nfrom ...services.clean_release.preparation_service import prepare_candidate\nfrom ...services.clean_release.report_builder import ComplianceReportBuilder\nfrom ...services.clean_release.repository import CleanReleaseRepository\n\nrouter = APIRouter(prefix=\"/api/clean-release\", tags=[\"Clean Release\"])\n\n\n# #region PrepareCandidateRequest [TYPE Class]\n# @BRIEF Request schema for candidate preparation endpoint.\nclass PrepareCandidateRequest(BaseModel):\n candidate_id: str = Field(min_length=1)\n artifacts: list[dict[str, Any]] = Field(default_factory=list)\n sources: list[str] = Field(default_factory=list)\n operator_id: str = Field(min_length=1)\n\n\n# #endregion PrepareCandidateRequest\n\n\n# #region StartCheckRequest [TYPE Class]\n# @BRIEF Request schema for clean compliance check run startup.\nclass StartCheckRequest(BaseModel):\n candidate_id: str = Field(min_length=1)\n profile: str = Field(default=\"enterprise-clean\")\n execution_mode: str = Field(default=\"tui\")\n triggered_by: str = Field(default=\"system\")\n\n\n# #endregion StartCheckRequest\n\n\n# #region RegisterCandidateRequest [TYPE Class]\n# @BRIEF Request schema for candidate registration endpoint.\nclass RegisterCandidateRequest(BaseModel):\n id: str = Field(min_length=1)\n version: str = Field(min_length=1)\n source_snapshot_ref: str = Field(min_length=1)\n created_by: str = Field(min_length=1)\n\n\n# #endregion RegisterCandidateRequest\n\n\n# #region ImportArtifactsRequest [TYPE Class]\n# @BRIEF Request schema for candidate artifact import endpoint.\nclass ImportArtifactsRequest(BaseModel):\n artifacts: list[dict[str, Any]] = Field(default_factory=list)\n\n\n# #endregion ImportArtifactsRequest\n\n\n# #region BuildManifestRequest [TYPE Class]\n# @BRIEF Request schema for manifest build endpoint.\nclass BuildManifestRequest(BaseModel):\n created_by: str = Field(default=\"system\")\n\n\n# #endregion BuildManifestRequest\n\n\n# #region CreateComplianceRunRequest [TYPE Class]\n# @BRIEF Request schema for compliance run creation with optional manifest pinning.\nclass CreateComplianceRunRequest(BaseModel):\n requested_by: str = Field(min_length=1)\n manifest_id: str | None = None\n\n\n# #endregion CreateComplianceRunRequest\n\n\n# #region register_candidate_v2_endpoint [TYPE Function]\n# @BRIEF Register a clean-release candidate for headless lifecycle.\n# @PRE: Candidate identifier is unique.\n# @POST: Candidate is persisted in DRAFT status.\n@router.post(\n \"/candidates\", response_model=CandidateDTO, status_code=status.HTTP_201_CREATED\n)\nasync def register_candidate_v2_endpoint(\n payload: RegisterCandidateRequest,\n repository: CleanReleaseRepository = Depends(get_clean_release_repository),\n):\n existing = repository.get_candidate(payload.id)\n if existing is not None:\n raise HTTPException(\n status_code=409,\n detail={\"message\": \"Candidate already exists\", \"code\": \"CANDIDATE_EXISTS\"},\n )\n\n candidate = ReleaseCandidate(\n id=payload.id,\n version=payload.version,\n source_snapshot_ref=payload.source_snapshot_ref,\n created_by=payload.created_by,\n created_at=datetime.now(UTC),\n status=CandidateStatus.DRAFT.value,\n )\n repository.save_candidate(candidate)\n\n return CandidateDTO(\n id=candidate.id,\n version=candidate.version,\n source_snapshot_ref=candidate.source_snapshot_ref,\n created_at=candidate.created_at,\n created_by=candidate.created_by,\n status=CandidateStatus(candidate.status),\n )\n\n\n# #endregion register_candidate_v2_endpoint\n\n\n# #region import_candidate_artifacts_v2_endpoint [TYPE Function]\n# @BRIEF Import candidate artifacts in headless flow.\n# @PRE: Candidate exists and artifacts array is non-empty.\n# @POST: Artifacts are persisted and candidate advances to PREPARED if it was DRAFT.\n@router.post(\"/candidates/{candidate_id}/artifacts\")\nasync def import_candidate_artifacts_v2_endpoint(\n candidate_id: str,\n payload: ImportArtifactsRequest,\n repository: CleanReleaseRepository = Depends(get_clean_release_repository),\n):\n candidate = repository.get_candidate(candidate_id)\n if candidate is None:\n raise HTTPException(\n status_code=404,\n detail={\"message\": \"Candidate not found\", \"code\": \"CANDIDATE_NOT_FOUND\"},\n )\n if not payload.artifacts:\n raise HTTPException(\n status_code=400,\n detail={\"message\": \"Artifacts list is required\", \"code\": \"ARTIFACTS_EMPTY\"},\n )\n\n for artifact in payload.artifacts:\n required = (\"id\", \"path\", \"sha256\", \"size\")\n for field_name in required:\n if field_name not in artifact:\n raise HTTPException(\n status_code=400,\n detail={\n \"message\": f\"Artifact missing field '{field_name}'\",\n \"code\": \"ARTIFACT_INVALID\",\n },\n )\n\n artifact_model = CandidateArtifact(\n id=str(artifact[\"id\"]),\n candidate_id=candidate_id,\n path=str(artifact[\"path\"]),\n sha256=str(artifact[\"sha256\"]),\n size=int(artifact[\"size\"]),\n detected_category=artifact.get(\"detected_category\"),\n declared_category=artifact.get(\"declared_category\"),\n source_uri=artifact.get(\"source_uri\"),\n source_host=artifact.get(\"source_host\"),\n metadata_json=artifact.get(\"metadata_json\", {}),\n )\n repository.save_artifact(artifact_model)\n\n if candidate.status == CandidateStatus.DRAFT.value:\n candidate.transition_to(CandidateStatus.PREPARED)\n repository.save_candidate(candidate)\n\n return {\"status\": \"success\"}\n\n\n# #endregion import_candidate_artifacts_v2_endpoint\n\n\n# #region build_candidate_manifest_v2_endpoint [TYPE Function]\n# @BRIEF Build immutable manifest snapshot for prepared candidate.\n# @PRE: Candidate exists and has imported artifacts.\n# @POST: Returns created ManifestDTO with incremented version.\n@router.post(\n \"/candidates/{candidate_id}/manifests\",\n response_model=ManifestDTO,\n status_code=status.HTTP_201_CREATED,\n)\nasync def build_candidate_manifest_v2_endpoint(\n candidate_id: str,\n payload: BuildManifestRequest,\n repository: CleanReleaseRepository = Depends(get_clean_release_repository),\n):\n from ...services.clean_release.manifest_service import build_manifest_snapshot\n\n try:\n manifest = build_manifest_snapshot(\n repository=repository,\n candidate_id=candidate_id,\n created_by=payload.created_by,\n )\n except ValueError as exc:\n raise HTTPException(\n status_code=400,\n detail={\"message\": str(exc), \"code\": \"MANIFEST_BUILD_ERROR\"},\n )\n\n return ManifestDTO(\n id=manifest.id,\n candidate_id=manifest.candidate_id,\n manifest_version=manifest.manifest_version,\n manifest_digest=manifest.manifest_digest,\n artifacts_digest=manifest.artifacts_digest,\n created_at=manifest.created_at,\n created_by=manifest.created_by,\n source_snapshot_ref=manifest.source_snapshot_ref,\n content_json=manifest.content_json,\n )\n\n\n# #endregion build_candidate_manifest_v2_endpoint\n\n\n# #region get_candidate_overview_v2_endpoint [TYPE Function]\n# @BRIEF Return expanded candidate overview DTO for headless lifecycle visibility.\n# @PRE: Candidate exists.\n# @POST: Returns CandidateOverviewDTO built from the same repository state used by headless US1 endpoints.\n@router.get(\"/candidates/{candidate_id}/overview\", response_model=CandidateOverviewDTO)\nasync def get_candidate_overview_v2_endpoint(\n candidate_id: str,\n repository: CleanReleaseRepository = Depends(get_clean_release_repository),\n):\n candidate = repository.get_candidate(candidate_id)\n if candidate is None:\n raise HTTPException(\n status_code=404,\n detail={\"message\": \"Candidate not found\", \"code\": \"CANDIDATE_NOT_FOUND\"},\n )\n\n manifests = repository.get_manifests_by_candidate(candidate_id)\n latest_manifest = (\n sorted(manifests, key=lambda m: m.manifest_version, reverse=True)[0]\n if manifests\n else None\n )\n\n runs = [\n run\n for run in repository.check_runs.values()\n if run.candidate_id == candidate_id\n ]\n latest_run = (\n sorted(\n runs,\n key=lambda run: run.requested_at\n or datetime.min.replace(tzinfo=UTC),\n reverse=True,\n )[0]\n if runs\n else None\n )\n\n latest_report = None\n if latest_run is not None:\n latest_report = next(\n (r for r in repository.reports.values() if r.run_id == latest_run.id), None\n )\n\n latest_policy_snapshot = (\n repository.get_policy(latest_run.policy_snapshot_id) if latest_run else None\n )\n latest_registry_snapshot = (\n repository.get_registry(latest_run.registry_snapshot_id) if latest_run else None\n )\n\n approval_decisions = getattr(repository, \"approval_decisions\", [])\n latest_approval = (\n sorted(\n [item for item in approval_decisions if item.candidate_id == candidate_id],\n key=lambda item: item.decided_at\n or datetime.min.replace(tzinfo=UTC),\n reverse=True,\n )[0]\n if approval_decisions\n and any(item.candidate_id == candidate_id for item in approval_decisions)\n else None\n )\n\n publication_records = getattr(repository, \"publication_records\", [])\n latest_publication = (\n sorted(\n [item for item in publication_records if item.candidate_id == candidate_id],\n key=lambda item: item.published_at\n or datetime.min.replace(tzinfo=UTC),\n reverse=True,\n )[0]\n if publication_records\n and any(item.candidate_id == candidate_id for item in publication_records)\n else None\n )\n\n return CandidateOverviewDTO(\n candidate_id=candidate.id,\n version=candidate.version,\n source_snapshot_ref=candidate.source_snapshot_ref,\n status=CandidateStatus(candidate.status),\n latest_manifest_id=latest_manifest.id if latest_manifest else None,\n latest_manifest_digest=latest_manifest.manifest_digest\n if latest_manifest\n else None,\n latest_run_id=latest_run.id if latest_run else None,\n latest_run_status=RunStatus(latest_run.status) if latest_run else None,\n latest_report_id=latest_report.id if latest_report else None,\n latest_report_final_status=ComplianceDecision(latest_report.final_status)\n if latest_report\n else None,\n latest_policy_snapshot_id=latest_policy_snapshot.id\n if latest_policy_snapshot\n else None,\n latest_policy_version=latest_policy_snapshot.policy_version\n if latest_policy_snapshot\n else None,\n latest_registry_snapshot_id=latest_registry_snapshot.id\n if latest_registry_snapshot\n else None,\n latest_registry_version=latest_registry_snapshot.registry_version\n if latest_registry_snapshot\n else None,\n latest_approval_decision=latest_approval.decision if latest_approval else None,\n latest_publication_id=latest_publication.id if latest_publication else None,\n latest_publication_status=latest_publication.status\n if latest_publication\n else None,\n )\n\n\n# #endregion get_candidate_overview_v2_endpoint\n\n\n# #region prepare_candidate_endpoint [TYPE Function]\n# @BRIEF Prepare candidate with policy evaluation and deterministic manifest generation.\n# @PRE: Candidate and active policy exist in repository.\n# @POST: Returns preparation result including manifest reference and violations.\n@router.post(\"/candidates/prepare\")\nasync def prepare_candidate_endpoint(\n payload: PrepareCandidateRequest,\n repository: CleanReleaseRepository = Depends(get_clean_release_repository),\n):\n try:\n result = prepare_candidate(\n repository=repository,\n candidate_id=payload.candidate_id,\n artifacts=payload.artifacts,\n sources=payload.sources,\n operator_id=payload.operator_id,\n )\n legacy_status = result.get(\"status\")\n if isinstance(legacy_status, str):\n normalized_status = legacy_status.lower()\n if normalized_status == \"check_blocked\":\n normalized_status = \"blocked\"\n result[\"status\"] = normalized_status\n return result\n except ValueError as exc:\n raise HTTPException(\n status_code=status.HTTP_400_BAD_REQUEST,\n detail={\"message\": str(exc), \"code\": \"CLEAN_PREPARATION_ERROR\"},\n )\n\n\n# #endregion prepare_candidate_endpoint\n\n\n# #region start_check [TYPE Function]\n# @BRIEF Start and finalize a clean compliance check run and persist report artifacts.\n# @PRE: Active policy and candidate exist.\n# @POST: Returns accepted payload with check_run_id and started_at.\n@router.post(\"/checks\", status_code=status.HTTP_202_ACCEPTED)\nasync def start_check(\n payload: StartCheckRequest,\n repository: CleanReleaseRepository = Depends(get_clean_release_repository),\n):\n with belief_scope(\"clean_release.start_check\"):\n logger.reason(\"Starting clean-release compliance check run\")\n policy = repository.get_active_policy()\n if policy is None:\n raise HTTPException(\n status_code=409,\n detail={\n \"message\": \"Active policy not found\",\n \"code\": \"POLICY_NOT_FOUND\",\n },\n )\n\n candidate = repository.get_candidate(payload.candidate_id)\n if candidate is None:\n raise HTTPException(\n status_code=409,\n detail={\n \"message\": \"Candidate not found\",\n \"code\": \"CANDIDATE_NOT_FOUND\",\n },\n )\n\n manifests = repository.get_manifests_by_candidate(payload.candidate_id)\n if not manifests:\n logger.explore(\n \"No manifest found for candidate; bootstrapping legacy empty manifest for compatibility\"\n )\n from ...services.clean_release.manifest_builder import (\n build_distribution_manifest,\n )\n\n boot_manifest = build_distribution_manifest(\n manifest_id=f\"manifest-{payload.candidate_id}\",\n candidate_id=payload.candidate_id,\n policy_id=getattr(policy, \"policy_id\", None)\n or getattr(policy, \"id\", \"\"),\n generated_by=payload.triggered_by,\n artifacts=[],\n )\n repository.save_manifest(boot_manifest)\n manifests = [boot_manifest]\n latest_manifest = sorted(\n manifests, key=lambda m: m.manifest_version, reverse=True\n )[0]\n\n orchestrator = CleanComplianceOrchestrator(repository)\n run = orchestrator.start_check_run(\n candidate_id=payload.candidate_id,\n policy_id=policy.id,\n requested_by=payload.triggered_by,\n manifest_id=latest_manifest.id,\n )\n\n forced = [\n ComplianceStageRun(\n id=f\"stage-{run.id}-1\",\n run_id=run.id,\n stage_name=ComplianceStageName.DATA_PURITY.value,\n status=RunStatus.SUCCEEDED.value,\n decision=ComplianceDecision.PASSED.value,\n details_json={\"message\": \"ok\"},\n ),\n ComplianceStageRun(\n id=f\"stage-{run.id}-2\",\n run_id=run.id,\n stage_name=ComplianceStageName.INTERNAL_SOURCES_ONLY.value,\n status=RunStatus.SUCCEEDED.value,\n decision=ComplianceDecision.PASSED.value,\n details_json={\"message\": \"ok\"},\n ),\n ComplianceStageRun(\n id=f\"stage-{run.id}-3\",\n run_id=run.id,\n stage_name=ComplianceStageName.NO_EXTERNAL_ENDPOINTS.value,\n status=RunStatus.SUCCEEDED.value,\n decision=ComplianceDecision.PASSED.value,\n details_json={\"message\": \"ok\"},\n ),\n ComplianceStageRun(\n id=f\"stage-{run.id}-4\",\n run_id=run.id,\n stage_name=ComplianceStageName.MANIFEST_CONSISTENCY.value,\n status=RunStatus.SUCCEEDED.value,\n decision=ComplianceDecision.PASSED.value,\n details_json={\"message\": \"ok\"},\n ),\n ]\n run = orchestrator.execute_stages(run, forced_results=forced)\n run = orchestrator.finalize_run(run)\n\n if str(run.final_status) in {\n ComplianceDecision.BLOCKED.value,\n \"CheckFinalStatus.BLOCKED\",\n \"BLOCKED\",\n }:\n logger.explore(\n \"Run ended as BLOCKED, persisting synthetic external-source violation\"\n )\n violation = ComplianceViolation(\n id=f\"viol-{run.id}\",\n run_id=run.id,\n stage_name=ComplianceStageName.NO_EXTERNAL_ENDPOINTS.value,\n code=\"EXTERNAL_SOURCE_DETECTED\",\n severity=ViolationSeverity.CRITICAL.value,\n message=\"Replace with approved internal server\",\n evidence_json={\"location\": \"external.example.com\"},\n )\n repository.save_violation(violation)\n\n builder = ComplianceReportBuilder(repository)\n report = builder.build_report_payload(\n run, repository.get_violations_by_run(run.id)\n )\n builder.persist_report(report)\n logger.reflect(f\"Compliance report persisted for run_id={run.id}\")\n\n return {\n \"check_run_id\": run.id,\n \"candidate_id\": run.candidate_id,\n \"status\": \"running\",\n \"started_at\": run.started_at.isoformat() if run.started_at else None,\n }\n\n\n# #endregion start_check\n\n\n# #region get_check_status [TYPE Function]\n# @BRIEF Return terminal/intermediate status payload for a check run.\n# @PRE: check_run_id references an existing run.\n# @POST: Deterministic payload shape includes checks and violations arrays.\n@router.get(\"/checks/{check_run_id}\")\nasync def get_check_status(\n check_run_id: str,\n repository: CleanReleaseRepository = Depends(get_clean_release_repository),\n):\n with belief_scope(\"clean_release.get_check_status\"):\n run = repository.get_check_run(check_run_id)\n if run is None:\n raise HTTPException(\n status_code=404,\n detail={\"message\": \"Check run not found\", \"code\": \"CHECK_NOT_FOUND\"},\n )\n\n logger.reflect(f\"Returning check status for check_run_id={check_run_id}\")\n checks = [\n {\n \"stage_name\": stage.stage_name,\n \"status\": stage.status,\n \"decision\": stage.decision,\n \"details\": stage.details_json,\n }\n for stage in repository.stage_runs.values()\n if stage.run_id == run.id\n ]\n violations = [\n {\n \"violation_id\": violation.id,\n \"category\": violation.stage_name,\n \"code\": violation.code,\n \"message\": violation.message,\n \"evidence\": violation.evidence_json,\n }\n for violation in repository.get_violations_by_run(run.id)\n ]\n return {\n \"check_run_id\": run.id,\n \"candidate_id\": run.candidate_id,\n \"final_status\": getattr(run.final_status, \"value\", run.final_status),\n \"started_at\": run.started_at.isoformat() if run.started_at else None,\n \"finished_at\": run.finished_at.isoformat() if run.finished_at else None,\n \"checks\": checks,\n \"violations\": violations,\n }\n\n\n# #endregion get_check_status\n\n\n# #region get_report [TYPE Function]\n# @BRIEF Return persisted compliance report by report_id.\n# @PRE: report_id references an existing report.\n# @POST: Returns serialized report object.\n@router.get(\"/reports/{report_id}\")\nasync def get_report(\n report_id: str,\n repository: CleanReleaseRepository = Depends(get_clean_release_repository),\n):\n with belief_scope(\"clean_release.get_report\"):\n report = repository.get_report(report_id)\n if report is None:\n raise HTTPException(\n status_code=404,\n detail={\"message\": \"Report not found\", \"code\": \"REPORT_NOT_FOUND\"},\n )\n\n logger.reflect(f\"Returning compliance report report_id={report_id}\")\n return {\n \"report_id\": report.id,\n \"check_run_id\": report.run_id,\n \"candidate_id\": report.candidate_id,\n \"final_status\": getattr(report.final_status, \"value\", report.final_status),\n \"generated_at\": report.generated_at.isoformat()\n if getattr(report, \"generated_at\", None)\n else None,\n \"operator_summary\": getattr(report, \"operator_summary\", \"\"),\n \"structured_payload_ref\": getattr(report, \"structured_payload_ref\", None),\n \"violations_count\": getattr(report, \"violations_count\", 0),\n \"blocking_violations_count\": getattr(\n report, \"blocking_violations_count\", 0\n ),\n }\n\n\n# #endregion get_report\n# #endregion CleanReleaseApi\n" @@ -11585,17 +9942,7 @@ "target_ref": "[DashboardSchemas]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardActionRoutes [C:2] [TYPE Module] [SEMANTICS fastapi, dashboard, api, backup]\n# @BRIEF Dashboard action route handlers — migrate, backup.\n# @LAYER: API\n# @RELATION DEPENDS_ON -> [DashboardRouter]\n# @RELATION DEPENDS_ON -> [DashboardSchemas]\n\nfrom fastapi import Depends, HTTPException\n\nfrom src.core.logger import belief_scope, logger\nfrom src.dependencies import (\n get_config_manager,\n get_task_manager,\n has_permission,\n)\n\nfrom ._router import router\nfrom ._schemas import (\n BackupRequest,\n MigrateRequest,\n TaskResponse,\n)\n\n\n# #region migrate_dashboards [C:2] [TYPE Function]\n# @BRIEF Trigger bulk migration of dashboards from source to target environment\n# @PRE: User has permission plugin:migration:execute\n# @PRE: source_env_id and target_env_id are valid environment IDs\n# @PRE: dashboard_ids is a non-empty list\n# @POST: Returns task_id for tracking migration progress\n# @POST: Task is created and queued for execution\n# @RELATION DISPATCHES -> [MigrationPlugin:execute]\n# @RELATION CALLS -> [TaskManager]\n@router.post(\"/migrate\", response_model=TaskResponse)\nasync def migrate_dashboards(\n request: MigrateRequest,\n config_manager=Depends(get_config_manager),\n task_manager=Depends(get_task_manager),\n _=Depends(has_permission(\"plugin:migration\", \"EXECUTE\")),\n):\n with belief_scope(\n \"migrate_dashboards\",\n f\"source={request.source_env_id}, target={request.target_env_id}, count={len(request.dashboard_ids)}\",\n ):\n if not request.dashboard_ids:\n logger.error(\n \"[migrate_dashboards][Coherence:Failed] No dashboard IDs provided\"\n )\n raise HTTPException(\n status_code=400, detail=\"At least one dashboard ID must be provided\"\n )\n\n environments = config_manager.get_environments()\n source_env = next(\n (e for e in environments if e.id == request.source_env_id), None\n )\n target_env = next(\n (e for e in environments if e.id == request.target_env_id), None\n )\n\n if not source_env:\n logger.error(\n f\"[migrate_dashboards][Coherence:Failed] Source environment not found: {request.source_env_id}\"\n )\n raise HTTPException(status_code=404, detail=\"Source environment not found\")\n if not target_env:\n logger.error(\n f\"[migrate_dashboards][Coherence:Failed] Target environment not found: {request.target_env_id}\"\n )\n raise HTTPException(status_code=404, detail=\"Target environment not found\")\n\n try:\n task_params = {\n \"source_env_id\": request.source_env_id,\n \"target_env_id\": request.target_env_id,\n \"selected_ids\": request.dashboard_ids,\n \"replace_db_config\": request.replace_db_config,\n \"db_mappings\": request.db_mappings or {},\n }\n\n task_obj = await task_manager.create_task(\n plugin_id=\"superset-migration\", params=task_params\n )\n\n logger.info(\n f\"[migrate_dashboards][Coherence:OK] Migration task created: {task_obj.id} for {len(request.dashboard_ids)} dashboards\"\n )\n\n return TaskResponse(task_id=str(task_obj.id))\n\n except Exception as e:\n logger.error(\n f\"[migrate_dashboards][Coherence:Failed] Failed to create migration task: {e}\"\n )\n raise HTTPException(\n status_code=503, detail=f\"Failed to create migration task: {e!s}\"\n )\n\n\n# #endregion migrate_dashboards\n\n\n# #region backup_dashboards [C:2] [TYPE Function]\n# @BRIEF Trigger bulk backup of dashboards with optional cron schedule\n# @PRE: User has permission plugin:backup:execute\n# @PRE: env_id is a valid environment ID\n# @PRE: dashboard_ids is a non-empty list\n# @POST: Returns task_id for tracking backup progress\n# @POST: Task is created and queued for execution\n# @POST: If schedule is provided, a scheduled task is created\n# @RELATION DISPATCHES -> [BackupPlugin:execute]\n# @RELATION CALLS -> [TaskManager]\n@router.post(\"/backup\", response_model=TaskResponse)\nasync def backup_dashboards(\n request: BackupRequest,\n config_manager=Depends(get_config_manager),\n task_manager=Depends(get_task_manager),\n _=Depends(has_permission(\"plugin:backup\", \"EXECUTE\")),\n):\n with belief_scope(\n \"backup_dashboards\",\n f\"env={request.env_id}, count={len(request.dashboard_ids)}, schedule={request.schedule}\",\n ):\n if not request.dashboard_ids:\n logger.error(\n \"[backup_dashboards][Coherence:Failed] No dashboard IDs provided\"\n )\n raise HTTPException(\n status_code=400, detail=\"At least one dashboard ID must be provided\"\n )\n\n environments = config_manager.get_environments()\n env = next((e for e in environments if e.id == request.env_id), None)\n\n if not env:\n logger.error(\n f\"[backup_dashboards][Coherence:Failed] Environment not found: {request.env_id}\"\n )\n raise HTTPException(status_code=404, detail=\"Environment not found\")\n\n try:\n task_params = {\n \"env\": request.env_id,\n \"dashboards\": request.dashboard_ids,\n \"schedule\": request.schedule,\n }\n\n task_obj = await task_manager.create_task(\n plugin_id=\"superset-backup\", params=task_params\n )\n\n logger.info(\n f\"[backup_dashboards][Coherence:OK] Backup task created: {task_obj.id} for {len(request.dashboard_ids)} dashboards\"\n )\n\n return TaskResponse(task_id=str(task_obj.id))\n\n except Exception as e:\n logger.error(\n f\"[backup_dashboards][Coherence:Failed] Failed to create backup task: {e}\"\n )\n raise HTTPException(\n status_code=503, detail=f\"Failed to create backup task: {e!s}\"\n )\n\n\n# #endregion backup_dashboards\n# #endregion DashboardActionRoutes\n" @@ -11646,15 +9993,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -11707,15 +10045,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -11806,15 +10135,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -11861,15 +10181,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -12006,15 +10317,6 @@ ], "value": "Infra" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -12418,15 +10720,6 @@ ], "value": "Infra" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -12608,17 +10901,7 @@ "target_ref": "[DashboardsApi]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Block' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Block" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardsRouter [C:1] [TYPE Block] [SEMANTICS dashboard, api, router]\n# @BRIEF Single APIRouter instance for all dashboard endpoints.\n# @RELATION BINDS_TO -> [DashboardsApi]\nfrom fastapi import APIRouter\n\nrouter = APIRouter(prefix=\"/api/dashboards\", tags=[\"Dashboards\"])\n# #endregion DashboardsRouter\n" @@ -12662,15 +10945,6 @@ ], "value": "Infra" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -16270,15 +14544,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -16538,15 +14803,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -16712,17 +14968,7 @@ "PURPOSE": "Shared dependency wiring for monkeypatch-safe git_service access and constants." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region GitDeps [C:1] [TYPE Module] [SEMANTICS git, dependency, service, provider]\n# @BRIEF Shared dependency wiring for monkeypatch-safe git_service access and constants.\n# @LAYER: API\n# @INVARIANT: get_git_service() resolves from sys.modules at call time so test monkeypatching\n# of git_routes.git_service (the __init__ attribute) takes effect across all submodules.\n\nimport sys\n\n# Batch limit for repository status queries\nMAX_REPOSITORY_STATUS_BATCH: int = 50\n\n\ndef get_git_service():\n \"\"\"Resolve git_service from the git package root at call time.\n\n This indirection ensures that test monkeypatching via\n ``monkeypatch.setattr(git_routes, 'git_service', mock)``\n is visible to every submodule function, because each call\n re-resolves ``sys.modules['src.api.routes.git'].git_service``.\n \"\"\"\n return sys.modules[\"src.api.routes.git\"].git_service\n# #endregion GitDeps\n" @@ -17663,26 +15909,7 @@ "target_ref": "backend.src.models.git" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region GitSchemas [C:1] [TYPE Module] [SEMANTICS fastapi, git, api, git-server-config-base]\n#\n# @BRIEF Defines Pydantic models for the Git integration API layer.\n# @LAYER: API\n# @RELATION DEPENDS_ON -> backend.src.models.git\n#\n# @INVARIANT: All schemas must be compatible with the FastAPI router.\n\nfrom datetime import datetime\nfrom typing import Any\n\nfrom pydantic import BaseModel, Field\n\nfrom src.models.git import GitProvider, GitStatus, SyncStatus\n\n\n# #region GitServerConfigBase [C:1] [TYPE Class]\n# @BRIEF Base schema for Git server configuration attributes.\nclass GitServerConfigBase(BaseModel):\n name: str = Field(..., description=\"Display name for the Git server\")\n provider: GitProvider = Field(..., description=\"Git provider (GITHUB, GITLAB, GITEA)\")\n url: str = Field(..., description=\"Server base URL\")\n pat: str = Field(..., description=\"Personal Access Token\")\n pat: str = Field(..., description=\"Personal Access Token\")\n default_repository: str | None = Field(None, description=\"Default repository path (org/repo)\")\n default_branch: str | None = Field(\"main\", description=\"Default branch logic/name\")\n# #endregion GitServerConfigBase\n\n# #region GitServerConfigUpdate [TYPE Class]\n# @BRIEF Schema for updating an existing Git server configuration.\nclass GitServerConfigUpdate(BaseModel):\n name: str | None = Field(None, description=\"Display name for the Git server\")\n provider: GitProvider | None = Field(None, description=\"Git provider (GITHUB, GITLAB, GITEA)\")\n url: str | None = Field(None, description=\"Server base URL\")\n pat: str | None = Field(None, description=\"Personal Access Token\")\n default_repository: str | None = Field(None, description=\"Default repository path (org/repo)\")\n default_branch: str | None = Field(None, description=\"Default branch logic/name\")\n# #endregion GitServerConfigUpdate\n\n# #region GitServerConfigCreate [TYPE Class]\n# @BRIEF Schema for creating a new Git server configuration.\nclass GitServerConfigCreate(GitServerConfigBase):\n \"\"\"Schema for creating a new Git server configuration.\"\"\"\n config_id: str | None = Field(None, description=\"Optional config ID, useful for testing an existing config without sending its full PAT\")\n# #endregion GitServerConfigCreate\n\n# #region GitServerConfigSchema [TYPE Class]\n# @BRIEF Schema for representing a Git server configuration with metadata.\nclass GitServerConfigSchema(GitServerConfigBase):\n \"\"\"Schema for representing a Git server configuration with metadata.\"\"\"\n id: str\n status: GitStatus\n last_validated: datetime\n\n class Config:\n from_attributes = True\n# #endregion GitServerConfigSchema\n\n# #region GitRepositorySchema [TYPE Class]\n# @BRIEF Schema for tracking a local Git repository linked to a dashboard.\nclass GitRepositorySchema(BaseModel):\n \"\"\"Schema for tracking a local Git repository linked to a dashboard.\"\"\"\n id: str\n dashboard_id: int\n config_id: str\n remote_url: str\n local_path: str\n current_branch: str\n sync_status: SyncStatus\n\n class Config:\n from_attributes = True\n# #endregion GitRepositorySchema\n\n# #region BranchSchema [TYPE Class]\n# @BRIEF Schema for representing a Git branch metadata.\nclass BranchSchema(BaseModel):\n \"\"\"Schema for representing a Git branch.\"\"\"\n name: str\n commit_hash: str\n is_remote: bool\n last_updated: datetime\n# #endregion BranchSchema\n\n# #region CommitSchema [TYPE Class]\n# @BRIEF Schema for representing Git commit details.\nclass CommitSchema(BaseModel):\n \"\"\"Schema for representing a Git commit.\"\"\"\n hash: str\n author: str\n email: str\n timestamp: datetime\n message: str\n files_changed: list[str]\n# #endregion CommitSchema\n\n# #region BranchCreate [TYPE Class]\n# @BRIEF Schema for branch creation requests.\nclass BranchCreate(BaseModel):\n \"\"\"Schema for branch creation requests.\"\"\"\n name: str\n from_branch: str\n# #endregion BranchCreate\n\n# #region BranchCheckout [TYPE Class]\n# @BRIEF Schema for branch checkout requests.\nclass BranchCheckout(BaseModel):\n \"\"\"Schema for branch checkout requests.\"\"\"\n name: str\n# #endregion BranchCheckout\n\n# #region CommitCreate [TYPE Class]\n# @BRIEF Schema for staging and committing changes.\nclass CommitCreate(BaseModel):\n \"\"\"Schema for staging and committing changes.\"\"\"\n message: str\n files: list[str]\n# #endregion CommitCreate\n\n# #region ConflictResolution [TYPE Class]\n# @BRIEF Schema for resolving merge conflicts.\nclass ConflictResolution(BaseModel):\n \"\"\"Schema for resolving merge conflicts.\"\"\"\n file_path: str\n resolution: str = Field(pattern=\"^(mine|theirs|manual)$\")\n content: str | None = None\n# #endregion ConflictResolution\n\n\n# #region MergeStatusSchema [TYPE Class]\n# @BRIEF Schema representing unfinished merge status for repository.\nclass MergeStatusSchema(BaseModel):\n has_unfinished_merge: bool\n repository_path: str\n git_dir: str\n current_branch: str\n merge_head: str | None = None\n merge_message_preview: str | None = None\n conflicts_count: int = 0\n# #endregion MergeStatusSchema\n\n\n# #region MergeConflictFileSchema [TYPE Class]\n# @BRIEF Schema describing one conflicted file with optional side snapshots.\nclass MergeConflictFileSchema(BaseModel):\n file_path: str\n mine: str | None = None\n theirs: str | None = None\n# #endregion MergeConflictFileSchema\n\n\n# #region MergeResolveRequest [TYPE Class]\n# @BRIEF Request schema for resolving one or multiple merge conflicts.\nclass MergeResolveRequest(BaseModel):\n resolutions: list[ConflictResolution] = Field(default_factory=list)\n# #endregion MergeResolveRequest\n\n\n# #region MergeContinueRequest [TYPE Class]\n# @BRIEF Request schema for finishing merge with optional explicit commit message.\nclass MergeContinueRequest(BaseModel):\n message: str | None = None\n# #endregion MergeContinueRequest\n\n# #region DeploymentEnvironmentSchema [TYPE Class]\n# @BRIEF Schema for representing a target deployment environment.\nclass DeploymentEnvironmentSchema(BaseModel):\n \"\"\"Schema for representing a target deployment environment.\"\"\"\n id: str\n name: str\n superset_url: str\n is_active: bool\n\n class Config:\n from_attributes = True\n# #endregion DeploymentEnvironmentSchema\n\n# #region DeployRequest [TYPE Class]\n# @BRIEF Schema for dashboard deployment requests.\nclass DeployRequest(BaseModel):\n \"\"\"Schema for deployment requests.\"\"\"\n environment_id: str\n# #endregion DeployRequest\n\n# #region RepoInitRequest [TYPE Class]\n# @BRIEF Schema for repository initialization requests.\nclass RepoInitRequest(BaseModel):\n \"\"\"Schema for repository initialization requests.\"\"\"\n config_id: str\n remote_url: str\n# #endregion RepoInitRequest\n\n\n# #region RepositoryBindingSchema [TYPE Class]\n# @BRIEF Schema describing repository-to-config binding and provider metadata.\nclass RepositoryBindingSchema(BaseModel):\n dashboard_id: int\n config_id: str\n provider: GitProvider\n remote_url: str\n local_path: str\n# #endregion RepositoryBindingSchema\n\n# #region RepoStatusBatchRequest [TYPE Class]\n# @BRIEF Schema for requesting repository statuses for multiple dashboards in a single call.\nclass RepoStatusBatchRequest(BaseModel):\n dashboard_ids: list[int] = Field(default_factory=list, description=\"Dashboard IDs to resolve repository statuses for\")\n# #endregion RepoStatusBatchRequest\n\n\n# #region RepoStatusBatchResponse [TYPE Class]\n# @BRIEF Schema for returning repository statuses keyed by dashboard ID.\nclass RepoStatusBatchResponse(BaseModel):\n statuses: dict[str, dict[str, Any]]\n# #endregion RepoStatusBatchResponse\n\n\n# #region GiteaRepoSchema [TYPE Class]\n# @BRIEF Schema describing a Gitea repository.\nclass GiteaRepoSchema(BaseModel):\n name: str\n full_name: str\n private: bool = False\n clone_url: str | None = None\n html_url: str | None = None\n ssh_url: str | None = None\n default_branch: str | None = None\n# #endregion GiteaRepoSchema\n\n\n# #region GiteaRepoCreateRequest [TYPE Class]\n# @BRIEF Request schema for creating a Gitea repository.\nclass GiteaRepoCreateRequest(BaseModel):\n name: str = Field(..., min_length=1, max_length=255)\n private: bool = True\n description: str | None = None\n auto_init: bool = True\n default_branch: str | None = \"main\"\n# #endregion GiteaRepoCreateRequest\n\n\n# #region RemoteRepoSchema [TYPE Class]\n# @BRIEF Provider-agnostic remote repository payload.\nclass RemoteRepoSchema(BaseModel):\n provider: GitProvider\n name: str\n full_name: str\n private: bool = False\n clone_url: str | None = None\n html_url: str | None = None\n ssh_url: str | None = None\n default_branch: str | None = None\n# #endregion RemoteRepoSchema\n\n\n# #region RemoteRepoCreateRequest [TYPE Class]\n# @BRIEF Provider-agnostic repository creation request.\nclass RemoteRepoCreateRequest(BaseModel):\n name: str = Field(..., min_length=1, max_length=255)\n private: bool = True\n description: str | None = None\n auto_init: bool = True\n default_branch: str | None = \"main\"\n# #endregion RemoteRepoCreateRequest\n\n\n# #region PromoteRequest [TYPE Class]\n# @BRIEF Request schema for branch promotion workflow.\nclass PromoteRequest(BaseModel):\n from_branch: str = Field(..., min_length=1, max_length=255)\n to_branch: str = Field(..., min_length=1, max_length=255)\n mode: str = Field(default=\"mr\", pattern=\"^(mr|direct)$\")\n title: str | None = None\n description: str | None = None\n reason: str | None = None\n draft: bool = False\n remove_source_branch: bool = False\n# #endregion PromoteRequest\n\n\n# #region PromoteResponse [TYPE Class]\n# @BRIEF Response schema for promotion operation result.\nclass PromoteResponse(BaseModel):\n mode: str\n from_branch: str\n to_branch: str\n status: str\n url: str | None = None\n reference_id: str | None = None\n policy_violation: bool = False\n# #endregion PromoteResponse\n\n# #endregion GitSchemas\n" @@ -18231,15 +16458,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -18285,15 +16503,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -19584,15 +17793,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -19636,15 +17836,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "SIDE_EFFECT", @@ -19698,15 +17889,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -19752,15 +17934,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -19806,15 +17979,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -19860,15 +18024,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -19964,15 +18119,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -20032,15 +18178,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -20087,15 +18224,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -20691,15 +18819,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -21010,15 +19129,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -21065,15 +19175,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -21120,15 +19221,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -21717,17 +19809,7 @@ "target_ref": "[models.translate]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TranslateHelpersModule [C:2] [TYPE Module] [SEMANTICS sqlalchemy, translate, helper, query, mapping]\n# @BRIEF Shared helper functions for translate route handlers.\n# @LAYER API\n# @RELATION DEPENDS_ON -> [models.translate]\n\nfrom typing import Any\n\nfrom sqlalchemy.orm import Session\n\n\n# #region _run_to_response [C:2] [TYPE Function]\n# @BRIEF Convert TranslationRun ORM to response dict.\ndef _run_to_response(run: Any) -> dict:\n return {\n \"id\": run.id,\n \"job_id\": run.job_id,\n \"status\": run.status,\n \"trigger_type\": run.trigger_type,\n \"started_at\": run.started_at.isoformat() if run.started_at else None,\n \"completed_at\": run.completed_at.isoformat() if run.completed_at else None,\n \"error_message\": run.error_message,\n \"total_records\": run.total_records or 0,\n \"successful_records\": run.successful_records or 0,\n \"failed_records\": run.failed_records or 0,\n \"skipped_records\": run.skipped_records or 0,\n \"insert_status\": run.insert_status,\n \"superset_execution_id\": run.superset_execution_id,\n \"config_snapshot\": run.config_snapshot,\n \"key_hash\": run.key_hash,\n \"config_hash\": run.config_hash,\n \"dict_snapshot_hash\": run.dict_snapshot_hash,\n \"created_by\": run.created_by,\n \"created_at\": run.created_at.isoformat() if run.created_at else None,\n }\n# #endregion _run_to_response\n\n\n# #region _dict_to_response [C:2] [TYPE Function]\n# @BRIEF Convert a TerminologyDictionary ORM model to a response dict with computed entry_count.\ndef _dict_to_response(d: Any, entry_count: int = 0) -> dict:\n return {\n \"id\": d.id,\n \"name\": d.name,\n \"description\": d.description,\n \"source_dialect\": d.source_dialect,\n \"target_dialect\": d.target_dialect,\n \"is_active\": d.is_active,\n \"created_by\": d.created_by,\n \"created_at\": d.created_at,\n \"updated_at\": d.updated_at,\n \"entry_count\": entry_count,\n }\n# #endregion _dict_to_response\n\n\n# #region _get_dictionary_entry_counts [C:2] [TYPE Function]\n# @BRIEF Get entry counts for a list of dictionary IDs.\ndef _get_dictionary_entry_counts(db: Session, dict_ids: list[str]) -> dict[str, int]:\n from sqlalchemy import func\n\n from ....models.translate import DictionaryEntry\n counts = (\n db.query(DictionaryEntry.dictionary_id, func.count(DictionaryEntry.id))\n .filter(DictionaryEntry.dictionary_id.in_(dict_ids))\n .group_by(DictionaryEntry.dictionary_id)\n .all()\n )\n return {row[0]: row[1] for row in counts}\n# #endregion _get_dictionary_entry_counts\n\n# #endregion TranslateHelpersModule\n" @@ -21791,7 +19873,7 @@ "contract_type": "Module", "file_path": "backend/src/api/routes/translate/_job_routes.py", "start_line": 1, - "end_line": 249, + "end_line": 287, "tier": "TIER_2", "complexity": 3, "metadata": { @@ -21813,14 +19895,14 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region TranslateJobRoutesModule [C:3] [TYPE Module] [SEMANTICS fastapi, translate, api, search]\n# @BRIEF Translation Job CRUD and datasource column routes.\n# @LAYER: API\n\n\nfrom fastapi import Depends, HTTPException, Query, status\nfrom sqlalchemy.orm import Session\n\nfrom ....core.config_manager import ConfigManager\nfrom ....core.database import get_db\nfrom ....core.logger import belief_scope, logger\nfrom ....dependencies import get_config_manager, get_current_user, has_permission\nfrom ....plugins.translate.service import (\n TranslateJobService,\n job_to_response,\n)\nfrom ....plugins.translate.service import (\n get_datasource_columns as fetch_datasource_columns_service,\n)\nfrom ....schemas.auth import User\nfrom ....schemas.translate import (\n DatasourceColumnsResponse,\n DuplicateJobResponse,\n TranslateJobCreate,\n TranslateJobResponse,\n TranslateJobUpdate,\n)\nfrom ._router import router\n\n# ============================================================\n# Translation Job CRUD\n# ============================================================\n\n# #region list_jobs [C:4] [TYPE Function]\n# @BRIEF List all translation jobs.\n# @PRE: User has translate.job.view permission.\n# @POST: Returns list of translation jobs.\n@router.get(\"/jobs\", response_model=list[TranslateJobResponse])\nasync def list_jobs(\n page: int = Query(1, ge=1),\n page_size: int = Query(20, ge=1, le=100),\n status: str | None = Query(None),\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"List all translation jobs.\"\"\"\n logger.reason(f\"list_jobs — User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n total, jobs = service.list_jobs(\n page=page,\n page_size=page_size,\n status_filter=status,\n )\n results = []\n for job in jobs:\n dict_ids = service.get_job_dictionary_ids(job.id)\n results.append(job_to_response(job, dict_ids))\n return results\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))\n# #endregion list_jobs\n\n\n# #region get_job [C:4] [TYPE Function]\n# @BRIEF Get a single translation job by ID.\n# @PRE: User has translate.job.view permission.\n# @POST: Returns the translation job.\n@router.get(\"/jobs/{job_id}\", response_model=TranslateJobResponse)\nasync def get_job(\n job_id: str,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Get a translation job by ID.\"\"\"\n logger.reason(f\"get_job — Job: {job_id}, User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n job = service.get_job(job_id)\n dict_ids = service.get_job_dictionary_ids(job.id)\n return job_to_response(job, dict_ids)\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e))\n# #endregion get_job\n\n\n# #region create_job [C:4] [TYPE Function]\n# @BRIEF Create a new translation job.\n# @PRE: User has translate.job.create permission.\n# @POST: Returns the created translation job.\n# @SIDE_EFFECT: Validates columns via SupersetClient; caches database_dialect.\n@router.post(\"/jobs\", response_model=TranslateJobResponse, status_code=status.HTTP_201_CREATED)\nasync def create_job(\n payload: TranslateJobCreate,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"CREATE\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Create a new translation job.\"\"\"\n logger.reason(f\"create_job — User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n job = service.create_job(payload)\n dict_ids = service.get_job_dictionary_ids(job.id)\n return job_to_response(job, dict_ids)\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, detail=str(e))\n# #endregion create_job\n\n\n# #region update_job [C:4] [TYPE Function]\n# @BRIEF Update an existing translation job.\n# @PRE: User has translate.job.edit permission.\n# @POST: Returns the updated translation job.\n# @SIDE_EFFECT: Re-detects database_dialect if datasource changed.\n@router.put(\"/jobs/{job_id}\", response_model=TranslateJobResponse)\nasync def update_job(\n job_id: str,\n payload: TranslateJobUpdate,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"EDIT\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Update a translation job.\"\"\"\n logger.reason(f\"update_job — Job: {job_id}, User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n job = service.update_job(job_id, payload)\n dict_ids = service.get_job_dictionary_ids(job.id)\n return job_to_response(job, dict_ids)\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e))\n# #endregion update_job\n\n\n# #region delete_job [C:4] [TYPE Function]\n# @BRIEF Delete a translation job.\n# @PRE: User has translate.job.delete permission.\n# @POST: Job is deleted.\n@router.delete(\"/jobs/{job_id}\", status_code=status.HTTP_204_NO_CONTENT)\nasync def delete_job(\n job_id: str,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"DELETE\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Delete a translation job.\"\"\"\n logger.reason(f\"delete_job — Job: {job_id}, User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n service.delete_job(job_id)\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e))\n# #endregion delete_job\n\n\n# #region duplicate_job [C:4] [TYPE Function]\n# @BRIEF Duplicate a translation job.\n# @PRE: User has translate.job.create permission.\n# @POST: Returns the duplicated job with status DRAFT.\n@router.post(\"/jobs/{job_id}/duplicate\", response_model=DuplicateJobResponse, status_code=status.HTTP_201_CREATED)\nasync def duplicate_job(\n job_id: str,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"CREATE\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Duplicate a translation job.\"\"\"\n logger.reason(f\"duplicate_job — Job: {job_id}, User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n new_job = service.duplicate_job(job_id)\n return DuplicateJobResponse(\n id=new_job.id,\n name=new_job.name,\n message=\"Job duplicated successfully\",\n )\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e))\n# #endregion duplicate_job\n\n\n# #region get_datasource_columns [C:4] [TYPE Function]\n# @BRIEF Get column metadata and database dialect for a Superset datasource.\n# @PRE User has translate.job.view permission.\n# @POST Returns column list with metadata and database_dialect.\n# @SIDE_EFFECT Queries Superset API for dataset detail and database info.\n# @RATIONALE Dialect detection from Superset connection cached on TranslationJob at save time.\n# @REJECTED Hardcoding dialect list per database — would drift from actual Superset config.\n# @COMPLEXITY 4\n\n@router.get(\"/datasources\")\nasync def list_datasources(\n env_id: str = Query(..., description=\"Superset environment ID\"),\n search: str | None = Query(None, description=\"Search by table name\"),\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"List all Superset datasets available for translation jobs.\"\"\"\n with belief_scope(\"list_datasources\"):\n try:\n service = TranslateJobService(db, config_manager)\n datasets = service.fetch_available_datasources(env_id, search)\n return datasets\n except Exception as e:\n logger.explore(\"list_datasources failed\", extra={\"src\": \"translate_routes\", \"error\": str(e)})\n raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail=str(e))\n\n@router.get(\"/datasources/{datasource_id}/columns\", response_model=DatasourceColumnsResponse)\nasync def get_datasource_columns(\n datasource_id: int,\n env_id: str = Query(..., description=\"Superset environment ID\"),\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Get column metadata and database dialect for a Superset datasource.\"\"\"\n logger.reason(\n f\"get_datasource_columns — Datasource: {datasource_id}, Env: {env_id}, User: {current_user.username}\",\n extra={\"src\": \"translate_routes\"}\n )\n try:\n result = fetch_datasource_columns_service(\n datasource_id=datasource_id,\n env_id=env_id,\n config_manager=config_manager,\n )\n return result\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))\n except Exception as e:\n logger.explore(\"get_datasource_columns failed\", extra={\"src\": \"translate_routes\", \"error\": str(e)})\n raise HTTPException(\n status_code=status.HTTP_502_BAD_GATEWAY,\n detail=f\"Failed to fetch datasource columns from Superset: {e}\",\n )\n# #endregion get_datasource_columns\n\n# #endregion TranslateJobRoutesModule\n" + "body": "# #region TranslateJobRoutesModule [C:3] [TYPE Module] [SEMANTICS fastapi, translate, api, search]\n# @BRIEF Translation Job CRUD and datasource column routes.\n# @LAYER: API\n\n\nfrom fastapi import Depends, HTTPException, Query, status\nfrom sqlalchemy.orm import Session\n\nfrom ....core.config_manager import ConfigManager\nfrom ....core.database import get_db\nfrom ....core.logger import belief_scope, logger\nfrom ....dependencies import get_config_manager, get_current_user, has_permission\nfrom ....plugins.translate.service import (\n TranslateJobService,\n job_to_response,\n)\nfrom ....plugins.translate.service import (\n get_datasource_columns as fetch_datasource_columns_service,\n)\nfrom ....schemas.auth import User\nfrom ....plugins.translate.service_target_schema import validate_target_table_schema\nfrom ....schemas.translate import (\n DatasourceColumnsResponse,\n DuplicateJobResponse,\n TargetSchemaValidationRequest,\n TargetSchemaValidationResponse,\n TranslateJobCreate,\n TranslateJobResponse,\n TranslateJobUpdate,\n)\nfrom ._router import router\n\n# ============================================================\n# Translation Job CRUD\n# ============================================================\n\n# #region list_jobs [C:4] [TYPE Function]\n# @BRIEF List all translation jobs.\n# @PRE: User has translate.job.view permission.\n# @POST: Returns list of translation jobs.\n@router.get(\"/jobs\", response_model=list[TranslateJobResponse])\nasync def list_jobs(\n page: int = Query(1, ge=1),\n page_size: int = Query(20, ge=1, le=100),\n status: str | None = Query(None),\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"List all translation jobs.\"\"\"\n logger.reason(f\"list_jobs — User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n total, jobs = service.list_jobs(\n page=page,\n page_size=page_size,\n status_filter=status,\n )\n results = []\n for job in jobs:\n dict_ids = service.get_job_dictionary_ids(job.id)\n results.append(job_to_response(job, dict_ids))\n return results\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))\n# #endregion list_jobs\n\n\n# #region get_job [C:4] [TYPE Function]\n# @BRIEF Get a single translation job by ID.\n# @PRE: User has translate.job.view permission.\n# @POST: Returns the translation job.\n@router.get(\"/jobs/{job_id}\", response_model=TranslateJobResponse)\nasync def get_job(\n job_id: str,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Get a translation job by ID.\"\"\"\n logger.reason(f\"get_job — Job: {job_id}, User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n job = service.get_job(job_id)\n dict_ids = service.get_job_dictionary_ids(job.id)\n return job_to_response(job, dict_ids)\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e))\n# #endregion get_job\n\n\n# #region create_job [C:4] [TYPE Function]\n# @BRIEF Create a new translation job.\n# @PRE: User has translate.job.create permission.\n# @POST: Returns the created translation job.\n# @SIDE_EFFECT: Validates columns via SupersetClient; caches database_dialect.\n@router.post(\"/jobs\", response_model=TranslateJobResponse, status_code=status.HTTP_201_CREATED)\nasync def create_job(\n payload: TranslateJobCreate,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"CREATE\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Create a new translation job.\"\"\"\n logger.reason(f\"create_job — User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n job = service.create_job(payload)\n dict_ids = service.get_job_dictionary_ids(job.id)\n return job_to_response(job, dict_ids)\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, detail=str(e))\n# #endregion create_job\n\n\n# #region update_job [C:4] [TYPE Function]\n# @BRIEF Update an existing translation job.\n# @PRE: User has translate.job.edit permission.\n# @POST: Returns the updated translation job.\n# @SIDE_EFFECT: Re-detects database_dialect if datasource changed.\n@router.put(\"/jobs/{job_id}\", response_model=TranslateJobResponse)\nasync def update_job(\n job_id: str,\n payload: TranslateJobUpdate,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"EDIT\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Update a translation job.\"\"\"\n logger.reason(f\"update_job — Job: {job_id}, User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n job = service.update_job(job_id, payload)\n dict_ids = service.get_job_dictionary_ids(job.id)\n return job_to_response(job, dict_ids)\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e))\n# #endregion update_job\n\n\n# #region delete_job [C:4] [TYPE Function]\n# @BRIEF Delete a translation job.\n# @PRE: User has translate.job.delete permission.\n# @POST: Job is deleted.\n@router.delete(\"/jobs/{job_id}\", status_code=status.HTTP_204_NO_CONTENT)\nasync def delete_job(\n job_id: str,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"DELETE\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Delete a translation job.\"\"\"\n logger.reason(f\"delete_job — Job: {job_id}, User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n service.delete_job(job_id)\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e))\n# #endregion delete_job\n\n\n# #region duplicate_job [C:4] [TYPE Function]\n# @BRIEF Duplicate a translation job.\n# @PRE: User has translate.job.create permission.\n# @POST: Returns the duplicated job with status DRAFT.\n@router.post(\"/jobs/{job_id}/duplicate\", response_model=DuplicateJobResponse, status_code=status.HTTP_201_CREATED)\nasync def duplicate_job(\n job_id: str,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"CREATE\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Duplicate a translation job.\"\"\"\n logger.reason(f\"duplicate_job — Job: {job_id}, User: {current_user.username}\", extra={\"src\": \"translate_routes\"})\n try:\n service = TranslateJobService(db, config_manager, current_user.username)\n new_job = service.duplicate_job(job_id)\n return DuplicateJobResponse(\n id=new_job.id,\n name=new_job.name,\n message=\"Job duplicated successfully\",\n )\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e))\n# #endregion duplicate_job\n\n\n# #region get_datasource_columns [C:4] [TYPE Function]\n# @BRIEF Get column metadata and database dialect for a Superset datasource.\n# @PRE User has translate.job.view permission.\n# @POST Returns column list with metadata and database_dialect.\n# @SIDE_EFFECT Queries Superset API for dataset detail and database info.\n# @RATIONALE Dialect detection from Superset connection cached on TranslationJob at save time.\n# @REJECTED Hardcoding dialect list per database — would drift from actual Superset config.\n# @COMPLEXITY 4\n\n@router.get(\"/datasources\")\nasync def list_datasources(\n env_id: str = Query(..., description=\"Superset environment ID\"),\n search: str | None = Query(None, description=\"Search by table name\"),\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"List all Superset datasets available for translation jobs.\"\"\"\n with belief_scope(\"list_datasources\"):\n try:\n service = TranslateJobService(db, config_manager)\n datasets = service.fetch_available_datasources(env_id, search)\n return datasets\n except Exception as e:\n logger.explore(\"list_datasources failed\", extra={\"src\": \"translate_routes\", \"error\": str(e)})\n raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail=str(e))\n\n@router.get(\"/datasources/{datasource_id}/columns\", response_model=DatasourceColumnsResponse)\nasync def get_datasource_columns(\n datasource_id: int,\n env_id: str = Query(..., description=\"Superset environment ID\"),\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Get column metadata and database dialect for a Superset datasource.\"\"\"\n logger.reason(\n f\"get_datasource_columns — Datasource: {datasource_id}, Env: {env_id}, User: {current_user.username}\",\n extra={\"src\": \"translate_routes\"}\n )\n try:\n result = fetch_datasource_columns_service(\n datasource_id=datasource_id,\n env_id=env_id,\n config_manager=config_manager,\n )\n return result\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))\n except Exception as e:\n logger.explore(\"get_datasource_columns failed\", extra={\"src\": \"translate_routes\", \"error\": str(e)})\n raise HTTPException(\n status_code=status.HTTP_502_BAD_GATEWAY,\n detail=f\"Failed to fetch datasource columns from Superset: {e}\",\n )\n# #endregion get_datasource_columns\n\n\n# #region check_target_schema [C:3] [TYPE Function] [SEMANTICS api,translate,validate]\n# @BRIEF Проверяет схему целевой таблицы: какие колонки ожидаются, какие есть, каких не хватает.\n# @RELATION DEPENDS_ON -> [validate_target_table_schema]\n# @RELATION DEPENDS_ON -> [TargetSchemaValidationRequest]\n# @RELATION DEPENDS_ON -> [TargetSchemaValidationResponse]\n# @RATIONALE Позволяет UI показать пользователю подсказку о недостающих колонках\n# на этапе настройки джобы, до запуска перевода.\n@router.post(\"/check-target-schema\", response_model=TargetSchemaValidationResponse)\nasync def check_target_schema(\n payload: TargetSchemaValidationRequest,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Check target table schema — validate expected vs actual columns for translation inserts.\"\"\"\n logger.reason(\n f\"check_target_schema — Table: {payload.target_schema}.{payload.target_table}, \"\n f\"Env: {payload.environment_id}, User: {current_user.username}\",\n extra={\"src\": \"translate_routes\"},\n )\n try:\n result = validate_target_table_schema(payload, config_manager)\n return result\n except Exception as e:\n logger.explore(\"check_target_schema failed\",\n extra={\"src\": \"translate_routes\", \"error\": str(e)})\n return TargetSchemaValidationResponse(\n table_exists=False,\n error=str(e),\n all_present=False,\n )\n# #endregion check_target_schema\n\n\n# #endregion TranslateJobRoutesModule\n" }, { "contract_id": "list_jobs", "contract_type": "Function", "file_path": "backend/src/api/routes/translate/_job_routes.py", - "start_line": 34, - "end_line": 64, + "start_line": 37, + "end_line": 67, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -21858,8 +19940,8 @@ "contract_id": "get_job", "contract_type": "Function", "file_path": "backend/src/api/routes/translate/_job_routes.py", - "start_line": 67, - "end_line": 88, + "start_line": 70, + "end_line": 91, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -21897,8 +19979,8 @@ "contract_id": "create_job", "contract_type": "Function", "file_path": "backend/src/api/routes/translate/_job_routes.py", - "start_line": 91, - "end_line": 113, + "start_line": 94, + "end_line": 116, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -21928,8 +20010,8 @@ "contract_id": "update_job", "contract_type": "Function", "file_path": "backend/src/api/routes/translate/_job_routes.py", - "start_line": 116, - "end_line": 139, + "start_line": 119, + "end_line": 142, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -21959,8 +20041,8 @@ "contract_id": "delete_job", "contract_type": "Function", "file_path": "backend/src/api/routes/translate/_job_routes.py", - "start_line": 142, - "end_line": 161, + "start_line": 145, + "end_line": 164, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -21998,8 +20080,8 @@ "contract_id": "duplicate_job", "contract_type": "Function", "file_path": "backend/src/api/routes/translate/_job_routes.py", - "start_line": 164, - "end_line": 188, + "start_line": 167, + "end_line": 191, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -22037,8 +20119,8 @@ "contract_id": "get_datasource_columns", "contract_type": "Function", "file_path": "backend/src/api/routes/translate/_job_routes.py", - "start_line": 191, - "end_line": 247, + "start_line": 194, + "end_line": 250, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -22066,6 +20148,44 @@ "tier_source": "AutoCalculated", "body": "# #region get_datasource_columns [C:4] [TYPE Function]\n# @BRIEF Get column metadata and database dialect for a Superset datasource.\n# @PRE User has translate.job.view permission.\n# @POST Returns column list with metadata and database_dialect.\n# @SIDE_EFFECT Queries Superset API for dataset detail and database info.\n# @RATIONALE Dialect detection from Superset connection cached on TranslationJob at save time.\n# @REJECTED Hardcoding dialect list per database — would drift from actual Superset config.\n# @COMPLEXITY 4\n\n@router.get(\"/datasources\")\nasync def list_datasources(\n env_id: str = Query(..., description=\"Superset environment ID\"),\n search: str | None = Query(None, description=\"Search by table name\"),\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n db: Session = Depends(get_db),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"List all Superset datasets available for translation jobs.\"\"\"\n with belief_scope(\"list_datasources\"):\n try:\n service = TranslateJobService(db, config_manager)\n datasets = service.fetch_available_datasources(env_id, search)\n return datasets\n except Exception as e:\n logger.explore(\"list_datasources failed\", extra={\"src\": \"translate_routes\", \"error\": str(e)})\n raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY, detail=str(e))\n\n@router.get(\"/datasources/{datasource_id}/columns\", response_model=DatasourceColumnsResponse)\nasync def get_datasource_columns(\n datasource_id: int,\n env_id: str = Query(..., description=\"Superset environment ID\"),\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Get column metadata and database dialect for a Superset datasource.\"\"\"\n logger.reason(\n f\"get_datasource_columns — Datasource: {datasource_id}, Env: {env_id}, User: {current_user.username}\",\n extra={\"src\": \"translate_routes\"}\n )\n try:\n result = fetch_datasource_columns_service(\n datasource_id=datasource_id,\n env_id=env_id,\n config_manager=config_manager,\n )\n return result\n except ValueError as e:\n raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))\n except Exception as e:\n logger.explore(\"get_datasource_columns failed\", extra={\"src\": \"translate_routes\", \"error\": str(e)})\n raise HTTPException(\n status_code=status.HTTP_502_BAD_GATEWAY,\n detail=f\"Failed to fetch datasource columns from Superset: {e}\",\n )\n# #endregion get_datasource_columns\n" }, + { + "contract_id": "check_target_schema", + "contract_type": "Function", + "file_path": "backend/src/api/routes/translate/_job_routes.py", + "start_line": 253, + "end_line": 284, + "tier": "TIER_2", + "complexity": 3, + "metadata": { + "COMPLEXITY": 3, + "PURPOSE": "Проверяет схему целевой таблицы: какие колонки ожидаются, какие есть, каких не хватает.", + "RATIONALE": "Позволяет UI показать пользователю подсказку о недостающих колонках" + }, + "relations": [ + { + "source_id": "check_target_schema", + "relation_type": "DEPENDS_ON", + "target_id": "validate_target_table_schema", + "target_ref": "[validate_target_table_schema]" + }, + { + "source_id": "check_target_schema", + "relation_type": "DEPENDS_ON", + "target_id": "TargetSchemaValidationRequest", + "target_ref": "[TargetSchemaValidationRequest]" + }, + { + "source_id": "check_target_schema", + "relation_type": "DEPENDS_ON", + "target_id": "TargetSchemaValidationResponse", + "target_ref": "[TargetSchemaValidationResponse]" + } + ], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region check_target_schema [C:3] [TYPE Function] [SEMANTICS api,translate,validate]\n# @BRIEF Проверяет схему целевой таблицы: какие колонки ожидаются, какие есть, каких не хватает.\n# @RELATION DEPENDS_ON -> [validate_target_table_schema]\n# @RELATION DEPENDS_ON -> [TargetSchemaValidationRequest]\n# @RELATION DEPENDS_ON -> [TargetSchemaValidationResponse]\n# @RATIONALE Позволяет UI показать пользователю подсказку о недостающих колонках\n# на этапе настройки джобы, до запуска перевода.\n@router.post(\"/check-target-schema\", response_model=TargetSchemaValidationResponse)\nasync def check_target_schema(\n payload: TargetSchemaValidationRequest,\n current_user: User = Depends(get_current_user),\n _ = Depends(has_permission(\"translate.job\", \"VIEW\")),\n config_manager: ConfigManager = Depends(get_config_manager),\n):\n \"\"\"Check target table schema — validate expected vs actual columns for translation inserts.\"\"\"\n logger.reason(\n f\"check_target_schema — Table: {payload.target_schema}.{payload.target_table}, \"\n f\"Env: {payload.environment_id}, User: {current_user.username}\",\n extra={\"src\": \"translate_routes\"},\n )\n try:\n result = validate_target_table_schema(payload, config_manager)\n return result\n except Exception as e:\n logger.explore(\"check_target_schema failed\",\n extra={\"src\": \"translate_routes\", \"error\": str(e)})\n return TargetSchemaValidationResponse(\n table_exists=False,\n error=str(e),\n all_present=False,\n )\n# #endregion check_target_schema\n" + }, { "contract_id": "TranslateMetricsRoutesModule", "contract_type": "Module", @@ -24027,17 +22147,7 @@ "target_ref": "TestConfigManagerCompat" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_get_payload_preserves_legacy_sections [TYPE Function]\n# @RELATION BINDS_TO -> TestConfigManagerCompat\n# @BRIEF Ensure get_payload merges typed config into raw payload without dropping legacy sections.\ndef test_get_payload_preserves_legacy_sections():\n manager = ConfigManager.__new__(ConfigManager)\n manager.raw_payload = {\"notifications\": {\"smtp\": {\"host\": \"mail.local\"}}}\n manager.config = AppConfig(environments=[], settings=GlobalSettings())\n payload = manager.get_payload()\n assert payload[\"settings\"][\"migration_sync_cron\"] == \"0 2 * * *\"\n assert payload[\"notifications\"][\"smtp\"][\"host\"] == \"mail.local\"\n# #endregion test_get_payload_preserves_legacy_sections\n" @@ -24061,17 +22171,7 @@ "target_ref": "TestConfigManagerCompat" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_save_config_accepts_raw_payload_and_keeps_extras [TYPE Function]\n# @RELATION BINDS_TO -> TestConfigManagerCompat\n# @BRIEF Ensure save_config accepts raw dict payload, refreshes typed config, and preserves extra sections.\ndef test_save_config_accepts_raw_payload_and_keeps_extras(monkeypatch):\n manager = ConfigManager.__new__(ConfigManager)\n manager.raw_payload = {}\n manager.config = AppConfig(environments=[], settings=GlobalSettings())\n persisted = {}\n def _capture_save(config, session=None):\n persisted[\"payload\"] = manager.get_payload()\n monkeypatch.setattr(manager, \"_save_config_to_db\", _capture_save)\n manager.save_config(\n {\n \"environments\": [],\n \"settings\": GlobalSettings().model_dump(),\n \"notifications\": {\"telegram\": {\"bot_token\": \"secret\"}},\n }\n )\n assert manager.raw_payload[\"notifications\"][\"telegram\"][\"bot_token\"] == \"secret\"\n assert manager.config.settings.migration_sync_cron == \"0 2 * * *\"\n assert persisted[\"payload\"][\"notifications\"][\"telegram\"][\"bot_token\"] == \"secret\"\n# #endregion test_save_config_accepts_raw_payload_and_keeps_extras\n" @@ -24095,17 +22195,7 @@ "target_ref": "TestConfigManagerCompat" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_save_config_syncs_environment_records_for_fk_backed_flows [TYPE Function]\n# @RELATION BINDS_TO -> TestConfigManagerCompat\n# @BRIEF Ensure saving config mirrors typed environments into relational records required by FK-backed session persistence.\n# Deletion of stale records is tested separately in test_save_config_syncs_deletions_to_persistence.\ndef test_save_config_syncs_environment_records_for_fk_backed_flows():\n manager = ConfigManager.__new__(ConfigManager)\n manager.raw_payload = {}\n manager.config = AppConfig(environments=[], settings=GlobalSettings())\n added_records = []\n deleted_records = []\n existing_record = SimpleNamespace(\n id=\"legacy-env\",\n name=\"Legacy\",\n url=\"http://legacy.local\",\n credentials_id=\"legacy-user\",\n )\n # #region _FakeQuery [TYPE Class] [C:1]\n # @RELATION: BINDS_TO -> [test_save_config_syncs_environment_records_for_fk_backed_flows]\n # @PURPOSE: Minimal query stub returning hardcoded existing environment record list for sync tests.\n # @INVARIANT: all() always returns [existing_record]; no parameterization or filtering.\n class _FakeQuery:\n def all(self):\n return [existing_record]\n # #endregion _FakeQuery\n # #region _FakeSession [TYPE Class] [C:1]\n # @RELATION: BINDS_TO -> [test_save_config_syncs_environment_records_for_fk_backed_flows]\n # @PURPOSE: Minimal SQLAlchemy session stub that captures add/delete calls for environment sync assertions.\n # @INVARIANT: query() always returns _FakeQuery; no real DB interaction.\n class _FakeSession:\n def query(self, model):\n return _FakeQuery()\n def add(self, value):\n added_records.append(value)\n def delete(self, value):\n deleted_records.append(value)\n # #endregion _FakeSession\n session = _FakeSession()\n config = AppConfig(\n environments=[\n Environment(\n id=\"dev\",\n name=\"DEV\",\n url=\"http://superset.local\",\n username=\"demo\",\n password=\"secret\",\n )\n ],\n settings=GlobalSettings(),\n )\n manager._sync_environment_records(session, config)\n assert len(added_records) == 1\n assert added_records[0].id == \"dev\"\n assert added_records[0].name == \"DEV\"\n assert added_records[0].url == \"http://superset.local\"\n assert added_records[0].credentials_id == \"demo\"\n # Sync does NOT delete; deletion is in _delete_stale_environment_records\n assert len(deleted_records) == 0\n# #endregion test_save_config_syncs_environment_records_for_fk_backed_flows\n" @@ -24129,17 +22219,7 @@ "target_ref": "TestConfigManagerCompat" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_save_config_syncs_deletions_to_persistence [TYPE Function]\n# @RELATION BINDS_TO -> TestConfigManagerCompat\n# @BRIEF Ensure stale environment records are deleted during save (in _delete_stale_environment_records)\n# and NOT during _load_config → _sync_environment_records (which would violate FK constraints\n# from task_records, database_mappings, etc.).\ndef test_save_config_syncs_deletions_to_persistence():\n manager = ConfigManager.__new__(ConfigManager)\n manager.raw_payload = {}\n manager.config = AppConfig(environments=[], settings=GlobalSettings())\n added_records = []\n deleted_records = []\n existing_record = SimpleNamespace(\n id=\"legacy-env\",\n name=\"Legacy\",\n url=\"http://legacy.local\",\n credentials_id=\"legacy-user\",\n )\n # #region _FakeQueryDel [TYPE Class] [C:1]\n # @RELATION: BINDS_TO -> [test_save_config_syncs_deletions_to_persistence]\n # @PURPOSE: Minimal query stub for deletion test.\n class _FakeQuery:\n def all(self):\n return [existing_record]\n # #endregion _FakeQueryDel\n # #region _FakeSessionDel [TYPE Class] [C:1]\n # @RELATION: BINDS_TO -> [test_save_config_syncs_deletions_to_persistence]\n # @PURPOSE: Minimal session stub that captures add/delete for deletion assertions.\n class _FakeSession:\n def query(self, model):\n return _FakeQuery()\n def add(self, value):\n added_records.append(value)\n def delete(self, value):\n deleted_records.append(value)\n # #endregion _FakeSessionDel\n session = _FakeSession()\n config = AppConfig(\n environments=[\n Environment(\n id=\"dev\",\n name=\"DEV\",\n url=\"http://superset.local\",\n username=\"demo\",\n password=\"secret\",\n )\n ],\n settings=GlobalSettings(),\n )\n # Step 1: sync creates/updates (no deletion)\n manager._sync_environment_records(session, config)\n assert len(added_records) == 1\n assert added_records[0].id == \"dev\"\n assert len(deleted_records) == 0\n # Step 2: stale deletion removes envs not in the configured set\n manager._delete_stale_environment_records(session, config)\n assert len(deleted_records) == 1\n assert deleted_records[0] == existing_record\n assert deleted_records[0].id == \"legacy-env\"\n# #endregion test_save_config_syncs_deletions_to_persistence\n" @@ -24163,17 +22243,7 @@ "target_ref": "TestConfigManagerCompat" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_load_config_syncs_environment_records_from_existing_db_payload [TYPE Function]\n# @RELATION BINDS_TO -> TestConfigManagerCompat\n# @BRIEF Ensure loading an existing DB-backed config also mirrors environment rows required by FK-backed runtime flows.\ndef test_load_config_syncs_environment_records_from_existing_db_payload(monkeypatch):\n manager = ConfigManager.__new__(ConfigManager)\n manager.config_path = None\n manager.raw_payload = {}\n manager.config = AppConfig(environments=[], settings=GlobalSettings())\n sync_calls = []\n closed = {\"value\": False}\n committed = {\"value\": False}\n # #region _FakeSession [TYPE Class] [C:1]\n # @RELATION: BINDS_TO -> [test_load_config_syncs_environment_records_from_existing_db_payload]\n # @PURPOSE: Minimal session stub tracking commit/close signals for config load lifecycle assertions.\n # @INVARIANT: No query or add semantics; only lifecycle signal tracking.\n class _FakeSession:\n def commit(self):\n committed[\"value\"] = True\n def close(self):\n closed[\"value\"] = True\n # #endregion _FakeSession\n fake_session = _FakeSession()\n fake_record = SimpleNamespace(\n id=\"global\",\n payload={\n \"environments\": [\n {\n \"id\": \"dev\",\n \"name\": \"DEV\",\n \"url\": \"http://superset.local\",\n \"username\": \"demo\",\n \"password\": \"secret\",\n }\n ],\n \"settings\": GlobalSettings().model_dump(),\n },\n )\n monkeypatch.setattr(\"src.core.config_manager.SessionLocal\", lambda: fake_session)\n monkeypatch.setattr(manager, \"_get_record\", lambda session: fake_record)\n monkeypatch.setattr(\n manager,\n \"_sync_environment_records\",\n lambda session, config: sync_calls.append((session, config)),\n )\n config = manager._load_config()\n assert config.environments[0].id == \"dev\"\n assert len(sync_calls) == 1\n assert sync_calls[0][0] is fake_session\n assert sync_calls[0][1].environments[0].id == \"dev\"\n assert committed[\"value\"] is True\n assert closed[\"value\"] is True\n# #endregion test_load_config_syncs_environment_records_from_existing_db_payload\n" @@ -24195,17 +22265,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_environment [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\ndef _make_environment() -> Environment:\n return Environment(\n id=\"env-1\",\n name=\"DEV\",\n url=\"http://superset.local\",\n username=\"demo\",\n password=\"secret\",\n )\n# #endregion _make_environment\n" @@ -24229,17 +22289,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_extract_native_filters_from_permalink [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Extract native filters from a permalink key.\ndef test_extract_native_filters_from_permalink():\n client = SupersetClient(_make_environment())\n client.get_dashboard_permalink_state = MagicMock(\n return_value={\n \"result\": {\n \"state\": {\n \"dataMask\": {\n \"filter_country\": {\n \"extraFormData\": {\n \"filters\": [\n {\"col\": \"country\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}\n ]\n },\n \"filterState\": {\"value\": [\"DE\", \"FR\"]},\n \"ownState\": {},\n },\n \"filter_date\": {\n \"extraFormData\": {\"time_range\": \"2020-01-01 : 2024-12-31\"},\n \"filterState\": {\"value\": \"2020-01-01 : 2024-12-31\"},\n \"ownState\": {},\n },\n },\n \"activeTabs\": [\"tab1\", \"tab2\"],\n \"anchor\": \"SECTION1\",\n \"chartStates\": {\"chart_1\": {}},\n }\n }\n }\n )\n result = client.extract_native_filters_from_permalink(\"test-permalink-key\")\n assert result[\"permalink_key\"] == \"test-permalink-key\"\n assert \"dataMask\" in result\n assert \"filter_country\" in result[\"dataMask\"]\n assert \"filter_date\" in result[\"dataMask\"]\n assert result[\"dataMask\"][\"filter_country\"][\"extraFormData\"][\"filters\"][0][\n \"val\"\n ] == [\"DE\", \"FR\"]\n assert result[\"activeTabs\"] == [\"tab1\", \"tab2\"]\n assert result[\"anchor\"] == \"SECTION1\"\n# #endregion test_extract_native_filters_from_permalink\n" @@ -24263,17 +22313,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_extract_native_filters_from_permalink_direct_response [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Handle permalink response without result wrapper.\ndef test_extract_native_filters_from_permalink_direct_response():\n client = SupersetClient(_make_environment())\n client.get_dashboard_permalink_state = MagicMock(\n return_value={\n \"state\": {\n \"dataMask\": {\n \"filter_1\": {\n \"extraFormData\": {\"filters\": []},\n \"filterState\": {},\n \"ownState\": {},\n }\n }\n }\n }\n )\n result = client.extract_native_filters_from_permalink(\"direct-key\")\n assert result[\"permalink_key\"] == \"direct-key\"\n assert \"filter_1\" in result[\"dataMask\"]\n# #endregion test_extract_native_filters_from_permalink_direct_response\n" @@ -24297,17 +22337,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_extract_native_filters_from_key [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Extract native filters from a native_filters_key.\ndef test_extract_native_filters_from_key():\n client = SupersetClient(_make_environment())\n client.get_native_filter_state = MagicMock(\n return_value={\n \"result\": {\n \"value\": json.dumps(\n {\n \"filter_region\": {\n \"id\": \"filter_region\",\n \"extraFormData\": {\n \"filters\": [\n {\"col\": \"region\", \"op\": \"IN\", \"val\": [\"EMEA\"]}\n ]\n },\n \"filterState\": {\"value\": [\"EMEA\"]},\n }\n }\n )\n }\n }\n )\n result = client.extract_native_filters_from_key(123, \"filter-state-key\")\n assert result[\"dashboard_id\"] == 123\n assert result[\"filter_state_key\"] == \"filter-state-key\"\n assert \"dataMask\" in result\n assert \"filter_region\" in result[\"dataMask\"]\n assert result[\"dataMask\"][\"filter_region\"][\"extraFormData\"][\"filters\"][0][\n \"val\"\n ] == [\"EMEA\"]\n# #endregion test_extract_native_filters_from_key\n" @@ -24331,17 +22361,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_extract_native_filters_from_key_single_filter [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Handle single filter format in native filter state.\ndef test_extract_native_filters_from_key_single_filter():\n client = SupersetClient(_make_environment())\n client.get_native_filter_state = MagicMock(\n return_value={\n \"result\": {\n \"value\": json.dumps(\n {\n \"id\": \"single_filter\",\n \"extraFormData\": {\n \"filters\": [{\"col\": \"status\", \"op\": \"==\", \"val\": \"active\"}]\n },\n \"filterState\": {\"value\": \"active\"},\n }\n )\n }\n }\n )\n result = client.extract_native_filters_from_key(456, \"single-key\")\n assert \"dataMask\" in result\n assert \"single_filter\" in result[\"dataMask\"]\n assert (\n result[\"dataMask\"][\"single_filter\"][\"extraFormData\"][\"filters\"][0][\"col\"]\n == \"status\"\n )\n# #endregion test_extract_native_filters_from_key_single_filter\n" @@ -24365,17 +22385,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_extract_native_filters_from_key_dict_value [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Handle filter state value as dict instead of JSON string.\ndef test_extract_native_filters_from_key_dict_value():\n client = SupersetClient(_make_environment())\n client.get_native_filter_state = MagicMock(\n return_value={\n \"result\": {\n \"value\": {\n \"filter_id\": {\n \"extraFormData\": {\"filters\": []},\n \"filterState\": {},\n }\n }\n }\n }\n )\n result = client.extract_native_filters_from_key(789, \"dict-key\")\n assert \"dataMask\" in result\n assert \"filter_id\" in result[\"dataMask\"]\n# #endregion test_extract_native_filters_from_key_dict_value\n" @@ -24399,17 +22409,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_dashboard_url_for_filters_permalink [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Parse permalink URL format.\ndef test_parse_dashboard_url_for_filters_permalink():\n client = SupersetClient(_make_environment())\n client.extract_native_filters_from_permalink = MagicMock(\n return_value={\"dataMask\": {\"f1\": {}}, \"permalink_key\": \"abc123\"}\n )\n result = client.parse_dashboard_url_for_filters(\n \"http://superset.local/superset/dashboard/p/abc123/\"\n )\n assert result[\"filter_type\"] == \"permalink\"\n assert result[\"filters\"][\"dataMask\"][\"f1\"] == {}\n# #endregion test_parse_dashboard_url_for_filters_permalink\n" @@ -24433,17 +22433,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_dashboard_url_for_filters_native_key [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Parse native_filters_key URL format with numeric dashboard ID.\ndef test_parse_dashboard_url_for_filters_native_key():\n client = SupersetClient(_make_environment())\n client.extract_native_filters_from_key = MagicMock(\n return_value={\n \"dataMask\": {\"f2\": {}},\n \"dashboard_id\": 42,\n \"filter_state_key\": \"xyz\",\n }\n )\n result = client.parse_dashboard_url_for_filters(\n \"http://superset.local/dashboard/42/?native_filters_key=xyz\"\n )\n assert result[\"filter_type\"] == \"native_filters_key\"\n assert result[\"dashboard_id\"] == 42\n assert result[\"filters\"][\"dataMask\"][\"f2\"] == {}\n# #endregion test_parse_dashboard_url_for_filters_native_key\n" @@ -24467,17 +22457,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_dashboard_url_for_filters_native_key_slug [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Parse native_filters_key URL format when dashboard reference is a slug, not a numeric ID.\ndef test_parse_dashboard_url_for_filters_native_key_slug():\n client = SupersetClient(_make_environment())\n # Simulate slug resolution: get_dashboard returns the dashboard with numeric ID\n client.get_dashboard = MagicMock(\n return_value={\n \"result\": {\"id\": 99, \"dashboard_title\": \"COVID Dashboard\", \"slug\": \"covid\"}\n }\n )\n client.extract_native_filters_from_key = MagicMock(\n return_value={\n \"dataMask\": {\"f_slug\": {}},\n \"dashboard_id\": 99,\n \"filter_state_key\": \"abc123\",\n }\n )\n result = client.parse_dashboard_url_for_filters(\n \"http://superset.local/superset/dashboard/covid/?native_filters_key=abc123\"\n )\n assert result[\"filter_type\"] == \"native_filters_key\"\n assert result[\"dashboard_id\"] == 99\n assert result[\"filters\"][\"dataMask\"][\"f_slug\"] == {}\n client.get_dashboard.assert_called_once_with(\"covid\")\n client.extract_native_filters_from_key.assert_called_once_with(99, \"abc123\")\n# #endregion test_parse_dashboard_url_for_filters_native_key_slug\n" @@ -24501,17 +22481,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Gracefully handle slug resolution failure for native_filters_key URL.\ndef test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails():\n client = SupersetClient(_make_environment())\n client.get_dashboard = MagicMock(side_effect=Exception(\"Not found\"))\n result = client.parse_dashboard_url_for_filters(\n \"http://superset.local/dashboard/unknownslug/?native_filters_key=key1\"\n )\n assert result[\"filter_type\"] is None\n assert result[\"dashboard_id\"] is None\n# #endregion test_parse_dashboard_url_for_filters_native_key_slug_resolution_fails\n" @@ -24535,17 +22505,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_dashboard_url_for_filters_native_filters_direct [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Parse native_filters direct query param.\ndef test_parse_dashboard_url_for_filters_native_filters_direct():\n client = SupersetClient(_make_environment())\n result = client.parse_dashboard_url_for_filters(\n \"http://superset.local/dashboard/1/?native_filters=\"\n + json.dumps({\"filter_1\": {\"col\": \"x\", \"op\": \"==\", \"val\": \"y\"}})\n )\n assert result[\"filter_type\"] == \"native_filters\"\n assert \"dataMask\" in result[\"filters\"]\n# #endregion test_parse_dashboard_url_for_filters_native_filters_direct\n" @@ -24569,17 +22529,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parse_dashboard_url_for_filters_no_filters [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Return empty result when no filters present.\ndef test_parse_dashboard_url_for_filters_no_filters():\n client = SupersetClient(_make_environment())\n result = client.parse_dashboard_url_for_filters(\n \"http://superset.local/dashboard/1/\"\n )\n assert result[\"filter_type\"] is None\n assert result[\"filters\"] == {}\n# #endregion test_parse_dashboard_url_for_filters_no_filters\n" @@ -24603,17 +22553,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_extra_form_data_merge [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Test ExtraFormDataMerge correctly merges dictionaries.\ndef test_extra_form_data_merge():\n merger = ExtraFormDataMerge()\n original = {\n \"filters\": [{\"col\": \"a\", \"op\": \"IN\", \"val\": [1, 2]}],\n \"time_range\": \"2020-01-01 : 2021-01-01\",\n \"extras\": {\"where\": \"x > 0\"},\n }\n new = {\n \"filters\": [{\"col\": \"b\", \"op\": \"==\", \"val\": \"test\"}],\n \"time_range\": \"2022-01-01 : 2023-01-01\",\n \"columns\": [\"col1\", \"col2\"],\n }\n result = merger.merge(original, new)\n # Filters should be appended\n assert len(result[\"filters\"]) == 2\n assert result[\"filters\"][0][\"col\"] == \"a\"\n assert result[\"filters\"][1][\"col\"] == \"b\"\n # Time range should be overridden\n assert result[\"time_range\"] == \"2022-01-01 : 2023-01-01\"\n # Extras should remain\n assert result[\"extras\"] == {\"where\": \"x > 0\"}\n # New columns should be added\n assert result[\"columns\"] == [\"col1\", \"col2\"]\n# #endregion test_extra_form_data_merge\n" @@ -24637,17 +22577,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_filter_state_model [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Test FilterState Pydantic model.\ndef test_filter_state_model():\n state = FilterState(\n extraFormData={\"filters\": [{\"col\": \"x\", \"op\": \"==\", \"val\": \"y\"}]},\n filterState={\"value\": \"y\"},\n ownState={\"selectedValues\": [\"y\"]},\n )\n assert state.extraFormData[\"filters\"][0][\"col\"] == \"x\"\n assert state.filterState[\"value\"] == \"y\"\n assert state.ownState[\"selectedValues\"] == [\"y\"]\n# #endregion test_filter_state_model\n" @@ -24671,17 +22601,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parsed_native_filters_model [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Test ParsedNativeFilters Pydantic model.\ndef test_parsed_native_filters_model():\n filters = ParsedNativeFilters(\n dataMask={\"f1\": {\"extraFormData\": {}, \"filterState\": {}}},\n filter_type=\"permalink\",\n dashboard_id=\"42\",\n permalink_key=\"abc\",\n )\n assert filters.has_filters() is True\n assert filters.get_filter_count() == 1\n assert filters.filter_type == \"permalink\"\n# #endregion test_parsed_native_filters_model\n" @@ -24705,17 +22625,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_parsed_native_filters_empty [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Test ParsedNativeFilters with no filters.\ndef test_parsed_native_filters_empty():\n filters = ParsedNativeFilters()\n assert filters.has_filters() is False\n assert filters.get_filter_count() == 0\n# #endregion test_parsed_native_filters_empty\n" @@ -24739,17 +22649,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_native_filter_data_mask_model [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Test NativeFilterDataMask model.\ndef test_native_filter_data_mask_model():\n data_mask = NativeFilterDataMask(\n filters={\n \"filter_1\": FilterState(extraFormData={\"filters\": []}, filterState={}),\n \"filter_2\": FilterState(\n extraFormData={\"time_range\": \"...\"}, filterState={}\n ),\n }\n )\n assert data_mask.get_filter_ids() == [\"filter_1\", \"filter_2\"]\n assert data_mask.get_extra_form_data(\"filter_1\") == {\"filters\": []}\n assert data_mask.get_extra_form_data(\"nonexistent\") == {}\n# #endregion test_native_filter_data_mask_model\n" @@ -24773,17 +22673,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_recover_imported_filters_reconciles_raw_native_filter_ids_to_metadata_names [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Reconcile raw native filter ids from state to canonical metadata filter names.\ndef test_recover_imported_filters_reconciles_raw_native_filter_ids_to_metadata_names():\n client = MagicMock()\n client.get_dashboard.return_value = {\n \"result\": {\n \"json_metadata\": json.dumps(\n {\n \"native_filter_configuration\": [\n {\n \"id\": \"NATIVE_FILTER-EWNH3M70z\",\n \"name\": \"Country\",\n \"label\": \"Country\",\n }\n ]\n }\n )\n }\n }\n extractor = SupersetContextExtractor(_make_environment(), client=client)\n parsed_context = SupersetParsedContext(\n source_url=\"http://superset.local/dashboard/42/?native_filters_key=abc\",\n dataset_ref=\"dataset:42\",\n dashboard_id=42,\n imported_filters=[\n {\n \"filter_name\": \"NATIVE_FILTER-EWNH3M70z\",\n \"display_name\": \"NATIVE_FILTER-EWNH3M70z\",\n \"raw_value\": [\"DE\", \"FR\"],\n \"normalized_value\": {\n \"filter_clauses\": [\n {\"col\": \"country\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}\n ],\n \"extra_form_data\": {\n \"filters\": [{\"col\": \"country\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}]\n },\n \"value_origin\": \"filter_state\",\n },\n \"source\": \"superset_native_filters_key\",\n \"recovery_status\": \"recovered\",\n \"requires_confirmation\": False,\n \"notes\": \"Recovered from Superset native_filters_key state\",\n }\n ],\n )\n result = extractor.recover_imported_filters(parsed_context)\n assert len(result) == 1\n assert result[0][\"filter_name\"] == \"Country\"\n assert result[0][\"display_name\"] == \"Country\"\n assert result[0][\"raw_value\"] == [\"DE\", \"FR\"]\n assert result[0][\"source\"] == \"superset_native_filters_key\"\n assert result[0][\"normalized_value\"] == {\n \"filter_clauses\": [{\"col\": \"country\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}],\n \"extra_form_data\": {\n \"filters\": [{\"col\": \"country\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}]\n },\n \"value_origin\": \"filter_state\",\n }\n# #endregion test_recover_imported_filters_reconciles_raw_native_filter_ids_to_metadata_names\n" @@ -24807,17 +22697,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_recover_imported_filters_collapses_state_and_metadata_duplicates_into_one_canonical_filter [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Collapse raw-id state entries and metadata entries into one canonical filter.\ndef test_recover_imported_filters_collapses_state_and_metadata_duplicates_into_one_canonical_filter():\n client = MagicMock()\n client.get_dashboard.return_value = {\n \"result\": {\n \"json_metadata\": json.dumps(\n {\n \"native_filter_configuration\": [\n {\n \"id\": \"NATIVE_FILTER-EWNH3M70z\",\n \"name\": \"Country\",\n \"label\": \"Country\",\n },\n {\n \"id\": \"NATIVE_FILTER-vv123\",\n \"name\": \"Region\",\n \"label\": \"Region\",\n },\n ]\n }\n )\n }\n }\n extractor = SupersetContextExtractor(_make_environment(), client=client)\n parsed_context = SupersetParsedContext(\n source_url=\"http://superset.local/dashboard/42/?native_filters_key=abc\",\n dataset_ref=\"dataset:42\",\n dashboard_id=42,\n imported_filters=[\n {\n \"filter_name\": \"NATIVE_FILTER-EWNH3M70z\",\n \"display_name\": \"Country\",\n \"raw_value\": [\"DE\", \"FR\"],\n \"source\": \"superset_native_filters_key\",\n \"recovery_status\": \"recovered\",\n \"requires_confirmation\": False,\n \"notes\": \"Recovered from Superset native_filters_key state\",\n }\n ],\n )\n result = extractor.recover_imported_filters(parsed_context)\n assert len(result) == 2\n country_filter = next(item for item in result if item[\"filter_name\"] == \"Country\")\n region_filter = next(item for item in result if item[\"filter_name\"] == \"Region\")\n assert country_filter[\"raw_value\"] == [\"DE\", \"FR\"]\n assert country_filter[\"recovery_status\"] == \"recovered\"\n assert region_filter[\"raw_value\"] is None\n assert region_filter[\"recovery_status\"] == \"partial\"\n# #endregion test_recover_imported_filters_collapses_state_and_metadata_duplicates_into_one_canonical_filter\n" @@ -24841,17 +22721,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_recover_imported_filters_preserves_unmatched_raw_native_filter_ids [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Preserve unmatched raw native filter ids as fallback diagnostics when metadata mapping is unavailable.\ndef test_recover_imported_filters_preserves_unmatched_raw_native_filter_ids():\n client = MagicMock()\n client.get_dashboard.return_value = {\n \"result\": {\n \"json_metadata\": json.dumps(\n {\n \"native_filter_configuration\": [\n {\n \"id\": \"NATIVE_FILTER-EWNH3M70z\",\n \"name\": \"Country\",\n \"label\": \"Country\",\n }\n ]\n }\n )\n }\n }\n extractor = SupersetContextExtractor(_make_environment(), client=client)\n parsed_context = SupersetParsedContext(\n source_url=\"http://superset.local/dashboard/42/?native_filters_key=abc\",\n dataset_ref=\"dataset:42\",\n dashboard_id=42,\n imported_filters=[\n {\n \"filter_name\": \"UNKNOWN_NATIVE_FILTER\",\n \"display_name\": \"UNKNOWN_NATIVE_FILTER\",\n \"raw_value\": [\"orphan\"],\n \"source\": \"superset_native_filters_key\",\n \"recovery_status\": \"recovered\",\n \"requires_confirmation\": False,\n \"notes\": \"Recovered from Superset native_filters_key state\",\n }\n ],\n )\n result = extractor.recover_imported_filters(parsed_context)\n assert len(result) == 2\n assert any(\n item[\"filter_name\"] == \"Country\" and item[\"recovery_status\"] == \"partial\"\n for item in result\n )\n assert any(\n item[\"filter_name\"] == \"UNKNOWN_NATIVE_FILTER\"\n and item[\"raw_value\"] == [\"orphan\"]\n and item[\"source\"] == \"superset_native_filters_key\"\n for item in result\n )\n# #endregion test_recover_imported_filters_preserves_unmatched_raw_native_filter_ids\n" @@ -24875,17 +22745,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_extract_imported_filters_preserves_clause_level_native_filter_payload_for_preview [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Recovered native filter state should preserve exact Superset clause payload and time extras for preview compilation.\ndef test_extract_imported_filters_preserves_clause_level_native_filter_payload_for_preview():\n extractor = SupersetContextExtractor(_make_environment(), client=MagicMock())\n imported_filters = extractor._extract_imported_filters(\n {\n \"native_filter_state\": {\n \"NATIVE_FILTER-1\": {\n \"id\": \"NATIVE_FILTER-1\",\n \"filterState\": {\"label\": \"Country\", \"value\": [\"DE\"]},\n \"extraFormData\": {\n \"filters\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]}],\n \"time_range\": \"Last month\",\n },\n }\n }\n }\n )\n assert imported_filters == [\n {\n \"filter_name\": \"NATIVE_FILTER-1\",\n \"raw_value\": [\"DE\"],\n \"display_name\": \"Country\",\n \"normalized_value\": {\n \"filter_clauses\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]}],\n \"extra_form_data\": {\n \"filters\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]}],\n \"time_range\": \"Last month\",\n },\n \"value_origin\": \"filter_state\",\n },\n \"source\": \"superset_native_filters_key\",\n \"recovery_status\": \"recovered\",\n \"requires_confirmation\": False,\n \"notes\": \"Recovered from Superset native_filters_key state\",\n }\n ]\n# #endregion test_extract_imported_filters_preserves_clause_level_native_filter_payload_for_preview\n" @@ -24909,17 +22769,7 @@ "target_ref": "NativeFilterExtractionTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_sanitize_imported_filter_for_assistant_masks_sensitive_raw_values [TYPE Function]\n# @RELATION BINDS_TO -> NativeFilterExtractionTests\n# @BRIEF Assistant-facing imported-filter payload should redact likely PII while preserving structure metadata.\ndef test_sanitize_imported_filter_for_assistant_masks_sensitive_raw_values():\n result = sanitize_imported_filter_for_assistant(\n {\n \"filter_name\": \"customer_email\",\n \"raw_value\": [\"alice@example.com\", \"1234567890\"],\n \"normalized_value\": {\"filter_clauses\": []},\n \"source\": \"manual\",\n }\n )\n assert result[\"raw_value\"] == [\"***@example.com\", \"********90\"]\n assert result[\"raw_value_masked\"] is True\n assert result[\"normalized_value\"] == {\"filter_clauses\": []}\n# #endregion test_sanitize_imported_filter_for_assistant_masks_sensitive_raw_values\n" @@ -24941,17 +22791,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_requests_http_error [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\ndef _make_requests_http_error(\n status_code: int, url: str\n) -> requests.exceptions.HTTPError:\n response = requests.Response()\n response.status_code = status_code\n response.url = url\n response._content = b'{\"message\":\"not found\"}'\n request = requests.Request(\"GET\", url).prepare()\n response.request = request\n return requests.exceptions.HTTPError(response=response, request=request)\n# #endregion _make_requests_http_error\n" @@ -24973,17 +22813,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region _make_httpx_status_error [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\ndef _make_httpx_status_error(status_code: int, url: str) -> httpx.HTTPStatusError:\n request = httpx.Request(\"GET\", url)\n response = httpx.Response(\n status_code=status_code, request=request, text='{\"message\":\"not found\"}'\n )\n return httpx.HTTPStatusError(\"upstream error\", request=request, response=response)\n# #endregion _make_httpx_status_error\n" @@ -25007,17 +22837,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Superset preview compilation should prefer the legacy form_data transport inferred from browser traffic before falling back to chart-data.\ndef test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy():\n client = SupersetClient(_make_environment())\n client.get_dataset = MagicMock(\n return_value={\n \"result\": {\n \"id\": 42,\n \"schema\": \"public\",\n \"datasource\": {\"id\": 42, \"type\": \"table\"},\n \"result_format\": \"json\",\n \"result_type\": \"full\",\n }\n }\n )\n client.network = MagicMock()\n client.network.request.return_value = {\n \"result\": {\n \"query\": \"SELECT count(*) FROM public.sales WHERE country IN ('DE')\",\n }\n }\n result = client.compile_dataset_preview(\n dataset_id=42,\n template_params={\"country\": \"DE\"},\n effective_filters=[{\"filter_name\": \"country\", \"effective_value\": [\"DE\"]}],\n )\n assert (\n result[\"compiled_sql\"]\n == \"SELECT count(*) FROM public.sales WHERE country IN ('DE')\"\n )\n client.network.request.assert_called_once()\n request_call = client.network.request.call_args\n assert request_call.kwargs[\"method\"] == \"POST\"\n assert request_call.kwargs[\"endpoint\"] == \"/explore_json/form_data\"\n assert request_call.kwargs[\"params\"] is not None\n assert request_call.kwargs[\"params\"].keys() == {\"form_data\"}\n legacy_form_data = json.loads(request_call.kwargs[\"params\"][\"form_data\"])\n assert \"datasource\" not in legacy_form_data\n assert legacy_form_data[\"datasource_id\"] == 42\n assert legacy_form_data[\"datasource_type\"] == \"table\"\n assert legacy_form_data[\"extra_filters\"] == [\n {\"col\": \"country\", \"op\": \"IN\", \"val\": [\"DE\"]}\n ]\n assert legacy_form_data[\"extra_form_data\"] == {\n \"filters\": [{\"col\": \"country\", \"op\": \"IN\", \"val\": [\"DE\"]}]\n }\n assert legacy_form_data[\"url_params\"] == {\"country\": \"DE\"}\n assert legacy_form_data[\"result_type\"] == \"query\"\n assert legacy_form_data[\"result_format\"] == \"json\"\n assert legacy_form_data[\"force\"] is True\n assert result[\"endpoint\"] == \"/explore_json/form_data\"\n assert result[\"endpoint_kind\"] == \"legacy_explore_form_data\"\n assert result[\"dataset_id\"] == 42\n assert result[\"response_diagnostics\"] == [\n {\"source\": \"query\", \"has_query\": False},\n {\"source\": \"sql\", \"has_query\": False},\n {\"source\": \"compiled_sql\", \"has_query\": False},\n {\"source\": \"result.query\", \"has_query\": True},\n ]\n assert result[\"legacy_form_data\"][\"extra_filters\"] == [\n {\"col\": \"country\", \"op\": \"IN\", \"val\": [\"DE\"]}\n ]\n assert result[\"query_context\"][\"datasource\"] == {\"id\": 42, \"type\": \"table\"}\n assert result[\"strategy_attempts\"] == [\n {\n \"endpoint\": \"/explore_json/form_data\",\n \"endpoint_kind\": \"legacy_explore_form_data\",\n \"request_transport\": \"query_param_form_data\",\n \"contains_root_datasource\": False,\n \"contains_form_datasource\": False,\n \"contains_query_object_datasource\": False,\n \"request_param_keys\": [\"form_data\"],\n \"request_payload_keys\": [],\n \"success\": True,\n }\n ]\n# #endregion test_compile_dataset_preview_prefers_legacy_explore_form_data_strategy\n" @@ -25041,17 +22861,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_compile_dataset_preview_falls_back_to_chart_data_after_legacy_failures [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Superset preview compilation should fall back to chart-data when legacy form_data strategies are rejected.\ndef test_compile_dataset_preview_falls_back_to_chart_data_after_legacy_failures():\n client = SupersetClient(_make_environment())\n client.get_dataset = MagicMock(\n return_value={\n \"result\": {\n \"id\": 42,\n \"schema\": \"public\",\n \"datasource\": {\"id\": 42, \"type\": \"table\"},\n }\n }\n )\n client.network = MagicMock()\n client.network.request.side_effect = [\n SupersetAPIError(\"legacy explore failed\"),\n SupersetAPIError(\"legacy data failed\"),\n {\n \"result\": [\n {\n \"query\": \"SELECT count(*) FROM public.sales\",\n }\n ]\n },\n ]\n result = client.compile_dataset_preview(dataset_id=42)\n assert client.network.request.call_count == 3\n first_call = client.network.request.call_args_list[0]\n second_call = client.network.request.call_args_list[1]\n third_call = client.network.request.call_args_list[2]\n assert first_call.kwargs[\"endpoint\"] == \"/explore_json/form_data\"\n assert second_call.kwargs[\"endpoint\"] == \"/data\"\n assert third_call.kwargs[\"endpoint\"] == \"/chart/data\"\n assert third_call.kwargs[\"headers\"] == {\"Content-Type\": \"application/json\"}\n first_legacy_form_data = json.loads(first_call.kwargs[\"params\"][\"form_data\"])\n second_legacy_form_data = json.loads(second_call.kwargs[\"params\"][\"form_data\"])\n assert \"datasource\" not in first_legacy_form_data\n assert \"datasource\" not in second_legacy_form_data\n query_context = json.loads(third_call.kwargs[\"data\"])\n assert query_context[\"datasource\"] == {\"id\": 42, \"type\": \"table\"}\n assert result[\"endpoint\"] == \"/chart/data\"\n assert result[\"endpoint_kind\"] == \"v1_chart_data\"\n assert len(result[\"strategy_attempts\"]) == 3\n assert result[\"strategy_attempts\"][0][\"endpoint\"] == \"/explore_json/form_data\"\n assert result[\"strategy_attempts\"][0][\"endpoint_kind\"] == \"legacy_explore_form_data\"\n assert (\n result[\"strategy_attempts\"][0][\"request_transport\"] == \"query_param_form_data\"\n )\n assert result[\"strategy_attempts\"][0][\"contains_root_datasource\"] is False\n assert result[\"strategy_attempts\"][0][\"contains_form_datasource\"] is False\n assert result[\"strategy_attempts\"][0][\"contains_query_object_datasource\"] is False\n assert result[\"strategy_attempts\"][0][\"request_param_keys\"] == [\"form_data\"]\n assert result[\"strategy_attempts\"][0][\"request_payload_keys\"] == []\n assert result[\"strategy_attempts\"][0][\"success\"] is False\n assert \"legacy explore failed\" in result[\"strategy_attempts\"][0][\"error\"]\n assert result[\"strategy_attempts\"][1][\"endpoint\"] == \"/data\"\n assert result[\"strategy_attempts\"][1][\"endpoint_kind\"] == \"legacy_data_form_data\"\n assert (\n result[\"strategy_attempts\"][1][\"request_transport\"] == \"query_param_form_data\"\n )\n assert result[\"strategy_attempts\"][1][\"contains_root_datasource\"] is False\n assert result[\"strategy_attempts\"][1][\"contains_form_datasource\"] is False\n assert result[\"strategy_attempts\"][1][\"contains_query_object_datasource\"] is False\n assert result[\"strategy_attempts\"][1][\"request_param_keys\"] == [\"form_data\"]\n assert result[\"strategy_attempts\"][1][\"request_payload_keys\"] == []\n assert result[\"strategy_attempts\"][1][\"success\"] is False\n assert \"legacy data failed\" in result[\"strategy_attempts\"][1][\"error\"]\n assert result[\"strategy_attempts\"][2] == {\n \"endpoint\": \"/chart/data\",\n \"endpoint_kind\": \"v1_chart_data\",\n \"request_transport\": \"json_body\",\n \"contains_root_datasource\": True,\n \"contains_form_datasource\": False,\n \"contains_query_object_datasource\": False,\n \"request_param_keys\": [],\n \"request_payload_keys\": [\n \"datasource\",\n \"force\",\n \"form_data\",\n \"queries\",\n \"result_format\",\n \"result_type\",\n ],\n \"success\": True,\n }\n# #endregion test_compile_dataset_preview_falls_back_to_chart_data_after_legacy_failures\n" @@ -25075,17 +22885,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_build_dataset_preview_query_context_places_recovered_filters_in_chart_style_form_data [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Preview query context should mirror chart-style filter transport so recovered native filters reach Superset compilation.\ndef test_build_dataset_preview_query_context_places_recovered_filters_in_chart_style_form_data():\n client = SupersetClient(_make_environment())\n query_context = client.build_dataset_preview_query_context(\n dataset_id=7,\n dataset_record={\n \"id\": 7,\n \"schema\": \"public\",\n \"datasource\": {\"id\": 7, \"type\": \"table\"},\n \"default_time_range\": \"Last year\",\n },\n template_params={\"country\": \"DE\"},\n effective_filters=[\n {\n \"filter_name\": \"country\",\n \"display_name\": \"Country\",\n \"effective_value\": [\"DE\"],\n \"normalized_filter_payload\": {\n \"filter_clauses\": [\n {\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]}\n ],\n \"extra_form_data\": {\n \"filters\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]}]\n },\n \"value_origin\": \"extra_form_data.filters\",\n },\n },\n {\"filter_name\": \"status\", \"effective_value\": \"active\"},\n ],\n )\n assert query_context[\"force\"] is True\n assert query_context[\"result_type\"] == \"query\"\n assert query_context[\"datasource\"] == {\"id\": 7, \"type\": \"table\"}\n assert \"datasource\" not in query_context[\"queries\"][0]\n assert query_context[\"queries\"][0][\"result_type\"] == \"query\"\n assert query_context[\"queries\"][0][\"filters\"] == [\n {\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]},\n {\"col\": \"status\", \"op\": \"==\", \"val\": \"active\"},\n ]\n assert query_context[\"form_data\"][\"datasource\"] == \"7__table\"\n assert query_context[\"form_data\"][\"datasource_id\"] == 7\n assert query_context[\"form_data\"][\"datasource_type\"] == \"table\"\n assert query_context[\"form_data\"][\"extra_filters\"] == [\n {\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]},\n {\"col\": \"status\", \"op\": \"==\", \"val\": \"active\"},\n ]\n assert query_context[\"form_data\"][\"extra_form_data\"] == {\n \"filters\": [\n {\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\"]},\n {\"col\": \"status\", \"op\": \"==\", \"val\": \"active\"},\n ],\n \"time_range\": \"Last year\",\n }\n assert query_context[\"form_data\"][\"url_params\"] == {\"country\": \"DE\"}\n# #endregion test_build_dataset_preview_query_context_places_recovered_filters_in_chart_style_form_data\n" @@ -25109,17 +22909,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_build_dataset_preview_query_context_merges_dataset_template_params_and_preserves_user_values [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Preview query context should merge dataset template params for parity with real dataset definitions while preserving explicit session overrides.\ndef test_build_dataset_preview_query_context_merges_dataset_template_params_and_preserves_user_values():\n client = SupersetClient(_make_environment())\n query_context = client.build_dataset_preview_query_context(\n dataset_id=8,\n dataset_record={\n \"id\": 8,\n \"schema\": \"public\",\n \"datasource\": {\"id\": 8, \"type\": \"table\"},\n \"template_params\": json.dumps({\"region\": \"EMEA\", \"country\": \"FR\"}),\n },\n template_params={\"country\": \"DE\"},\n effective_filters=[],\n )\n assert query_context[\"queries\"][0][\"url_params\"] == {\n \"region\": \"EMEA\",\n \"country\": \"DE\",\n }\n assert query_context[\"form_data\"][\"url_params\"] == {\n \"region\": \"EMEA\",\n \"country\": \"DE\",\n }\n# #endregion test_build_dataset_preview_query_context_merges_dataset_template_params_and_preserves_user_values\n" @@ -25143,17 +22933,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_build_dataset_preview_query_context_preserves_time_range_from_native_filter_payload [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Preview query context should preserve time-range native filter extras even when dataset defaults differ.\ndef test_build_dataset_preview_query_context_preserves_time_range_from_native_filter_payload():\n client = SupersetClient(_make_environment())\n query_context = client.build_dataset_preview_query_context(\n dataset_id=9,\n dataset_record={\n \"id\": 9,\n \"schema\": \"public\",\n \"datasource\": {\"id\": 9, \"type\": \"table\"},\n \"default_time_range\": \"Last year\",\n },\n template_params={},\n effective_filters=[\n {\n \"filter_name\": \"Order Date\",\n \"display_name\": \"Order Date\",\n \"effective_value\": \"2020-01-01 : 2020-12-31\",\n \"normalized_filter_payload\": {\n \"filter_clauses\": [],\n \"extra_form_data\": {\"time_range\": \"2020-01-01 : 2020-12-31\"},\n \"value_origin\": \"extra_form_data.time_range\",\n },\n }\n ],\n )\n assert query_context[\"queries\"][0][\"time_range\"] == \"2020-01-01 : 2020-12-31\"\n assert query_context[\"form_data\"][\"extra_form_data\"] == {\n \"time_range\": \"2020-01-01 : 2020-12-31\"\n }\n assert query_context[\"queries\"][0][\"filters\"] == []\n# #endregion test_build_dataset_preview_query_context_preserves_time_range_from_native_filter_payload\n" @@ -25177,17 +22957,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_build_dataset_preview_legacy_form_data_preserves_native_filter_clauses [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Legacy preview form_data should preserve recovered native filter clauses in browser-style fields without duplicating datasource for QueryObjectFactory.\ndef test_build_dataset_preview_legacy_form_data_preserves_native_filter_clauses():\n client = SupersetClient(_make_environment())\n legacy_form_data = client.build_dataset_preview_legacy_form_data(\n dataset_id=11,\n dataset_record={\n \"id\": 11,\n \"schema\": \"public\",\n \"datasource\": {\"id\": 11, \"type\": \"table\"},\n \"default_time_range\": \"No filter\",\n },\n template_params={\"country\": \"DE\"},\n effective_filters=[\n {\n \"filter_name\": \"Country\",\n \"display_name\": \"Country\",\n \"effective_value\": [\"DE\", \"FR\"],\n \"normalized_filter_payload\": {\n \"filter_clauses\": [\n {\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}\n ],\n \"extra_form_data\": {\n \"filters\": [\n {\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}\n ],\n \"time_range\": \"Last quarter\",\n },\n \"value_origin\": \"extra_form_data.filters\",\n },\n }\n ],\n )\n assert \"datasource\" not in legacy_form_data\n assert legacy_form_data[\"datasource_id\"] == 11\n assert legacy_form_data[\"datasource_type\"] == \"table\"\n assert legacy_form_data[\"extra_filters\"] == [\n {\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}\n ]\n assert legacy_form_data[\"extra_form_data\"] == {\n \"filters\": [{\"col\": \"country_code\", \"op\": \"IN\", \"val\": [\"DE\", \"FR\"]}],\n \"time_range\": \"Last quarter\",\n }\n assert legacy_form_data[\"time_range\"] == \"Last quarter\"\n assert legacy_form_data[\"url_params\"] == {\"country\": \"DE\"}\n assert legacy_form_data[\"result_type\"] == \"query\"\n# #endregion test_build_dataset_preview_legacy_form_data_preserves_native_filter_clauses\n" @@ -25211,17 +22981,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_sync_network_404_mapping_keeps_non_dashboard_endpoints_generic [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Sync network client should reserve dashboard-not-found translation for dashboard endpoints only.\ndef test_sync_network_404_mapping_keeps_non_dashboard_endpoints_generic():\n client = APIClient(\n config={\n \"base_url\": \"http://superset.local\",\n \"auth\": {\"username\": \"demo\", \"password\": \"secret\"},\n }\n )\n with pytest.raises(SupersetAPIError) as exc_info:\n client._handle_http_error(\n _make_requests_http_error(404, \"http://superset.local/api/v1/chart/data\"),\n \"/chart/data\",\n )\n assert not isinstance(exc_info.value, DashboardNotFoundError)\n assert \"API resource not found at endpoint '/chart/data'\" in str(exc_info.value)\n# #endregion test_sync_network_404_mapping_keeps_non_dashboard_endpoints_generic\n" @@ -25245,17 +23005,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_sync_network_404_mapping_translates_dashboard_endpoints [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Sync network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors.\ndef test_sync_network_404_mapping_translates_dashboard_endpoints():\n client = APIClient(\n config={\n \"base_url\": \"http://superset.local\",\n \"auth\": {\"username\": \"demo\", \"password\": \"secret\"},\n }\n )\n with pytest.raises(DashboardNotFoundError) as exc_info:\n client._handle_http_error(\n _make_requests_http_error(404, \"http://superset.local/api/v1/dashboard/10\"),\n \"/dashboard/10\",\n )\n assert \"Dashboard '/dashboard/10' Dashboard not found\" in str(exc_info.value)\n# #endregion test_sync_network_404_mapping_translates_dashboard_endpoints\n" @@ -25279,17 +23029,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_async_network_404_mapping_keeps_non_dashboard_endpoints_generic [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Async network client should reserve dashboard-not-found translation for dashboard endpoints only.\n@pytest.mark.asyncio\nasync def test_async_network_404_mapping_keeps_non_dashboard_endpoints_generic():\n client = AsyncAPIClient(\n config={\n \"base_url\": \"http://superset.local\",\n \"auth\": {\"username\": \"demo\", \"password\": \"secret\"},\n }\n )\n try:\n with pytest.raises(SupersetAPIError) as exc_info:\n client._handle_http_error(\n _make_httpx_status_error(\n 404, \"http://superset.local/api/v1/chart/data\"\n ),\n \"/chart/data\",\n )\n assert not isinstance(exc_info.value, DashboardNotFoundError)\n assert \"API resource not found at endpoint '/chart/data'\" in str(exc_info.value)\n finally:\n await client.aclose()\n# #endregion test_async_network_404_mapping_keeps_non_dashboard_endpoints_generic\n" @@ -25313,17 +23053,7 @@ "target_ref": "SupersetPreviewPipelineTests" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_async_network_404_mapping_translates_dashboard_endpoints [TYPE Function]\n# @RELATION BINDS_TO -> SupersetPreviewPipelineTests\n# @BRIEF Async network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors.\n@pytest.mark.asyncio\nasync def test_async_network_404_mapping_translates_dashboard_endpoints():\n client = AsyncAPIClient(\n config={\n \"base_url\": \"http://superset.local\",\n \"auth\": {\"username\": \"demo\", \"password\": \"secret\"},\n }\n )\n try:\n with pytest.raises(DashboardNotFoundError) as exc_info:\n client._handle_http_error(\n _make_httpx_status_error(\n 404, \"http://superset.local/api/v1/dashboard/10\"\n ),\n \"/dashboard/10\",\n )\n assert \"Dashboard '/dashboard/10' Dashboard not found\" in str(exc_info.value)\n finally:\n await client.aclose()\n# #endregion test_async_network_404_mapping_translates_dashboard_endpoints\n" @@ -25367,15 +23097,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -25421,15 +23142,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -25475,15 +23187,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -25509,17 +23212,7 @@ "target_ref": "test_throttled_scheduler" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_calculate_schedule_even_distribution [TYPE Function]\n# @RELATION BINDS_TO -> test_throttled_scheduler\n# @BRIEF Validate even spacing across a two-hour scheduling window for three tasks.\ndef test_calculate_schedule_even_distribution():\n \"\"\"\n @TEST_SCENARIO: 3 tasks in a 2-hour window should be spaced 1 hour apart.\n \"\"\"\n start = time(1, 0)\n end = time(3, 0)\n dashboards = [\"d1\", \"d2\", \"d3\"]\n today = date(2024, 1, 1)\n schedule = ThrottledSchedulerConfigurator.calculate_schedule(\n start, end, dashboards, today\n )\n assert len(schedule) == 3\n assert schedule[0] == datetime(2024, 1, 1, 1, 0)\n assert schedule[1] == datetime(2024, 1, 1, 2, 0)\n assert schedule[2] == datetime(2024, 1, 1, 3, 0)\n# #endregion test_calculate_schedule_even_distribution\n" @@ -25543,17 +23236,7 @@ "target_ref": "test_throttled_scheduler" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_calculate_schedule_midnight_crossing [TYPE Function]\n# @RELATION BINDS_TO -> test_throttled_scheduler\n# @BRIEF Validate scheduler correctly rolls timestamps into the next day across midnight.\ndef test_calculate_schedule_midnight_crossing():\n \"\"\"\n @TEST_SCENARIO: Window from 23:00 to 01:00 (next day).\n \"\"\"\n start = time(23, 0)\n end = time(1, 0)\n dashboards = [\"d1\", \"d2\", \"d3\"]\n today = date(2024, 1, 1)\n schedule = ThrottledSchedulerConfigurator.calculate_schedule(\n start, end, dashboards, today\n )\n assert len(schedule) == 3\n assert schedule[0] == datetime(2024, 1, 1, 23, 0)\n assert schedule[1] == datetime(2024, 1, 2, 0, 0)\n assert schedule[2] == datetime(2024, 1, 2, 1, 0)\n# #endregion test_calculate_schedule_midnight_crossing\n" @@ -25577,17 +23260,7 @@ "target_ref": "test_throttled_scheduler" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_calculate_schedule_single_task [TYPE Function]\n# @RELATION BINDS_TO -> test_throttled_scheduler\n# @BRIEF Validate single-task schedule returns only the window start timestamp.\ndef test_calculate_schedule_single_task():\n \"\"\"\n @TEST_SCENARIO: Single task should be scheduled at start time.\n \"\"\"\n start = time(1, 0)\n end = time(2, 0)\n dashboards = [\"d1\"]\n today = date(2024, 1, 1)\n schedule = ThrottledSchedulerConfigurator.calculate_schedule(\n start, end, dashboards, today\n )\n assert len(schedule) == 1\n assert schedule[0] == datetime(2024, 1, 1, 1, 0)\n# #endregion test_calculate_schedule_single_task\n" @@ -25611,17 +23284,7 @@ "target_ref": "test_throttled_scheduler" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_calculate_schedule_empty_list [TYPE Function]\n# @RELATION BINDS_TO -> test_throttled_scheduler\n# @BRIEF Validate empty dashboard list produces an empty schedule.\ndef test_calculate_schedule_empty_list():\n \"\"\"\n @TEST_SCENARIO: Empty dashboard list returns empty schedule.\n \"\"\"\n start = time(1, 0)\n end = time(2, 0)\n dashboards = []\n today = date(2024, 1, 1)\n schedule = ThrottledSchedulerConfigurator.calculate_schedule(\n start, end, dashboards, today\n )\n assert schedule == []\n# #endregion test_calculate_schedule_empty_list\n" @@ -25645,17 +23308,7 @@ "target_ref": "test_throttled_scheduler" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_calculate_schedule_zero_window [TYPE Function]\n# @RELATION BINDS_TO -> test_throttled_scheduler\n# @BRIEF Validate zero-length window schedules all tasks at identical start timestamp.\ndef test_calculate_schedule_zero_window():\n \"\"\"\n @TEST_SCENARIO: Window start == end. All tasks at start time.\n \"\"\"\n start = time(1, 0)\n end = time(1, 0)\n dashboards = [\"d1\", \"d2\"]\n today = date(2024, 1, 1)\n schedule = ThrottledSchedulerConfigurator.calculate_schedule(\n start, end, dashboards, today\n )\n assert len(schedule) == 2\n assert schedule[0] == datetime(2024, 1, 1, 1, 0)\n assert schedule[1] == datetime(2024, 1, 1, 1, 0)\n# #endregion test_calculate_schedule_zero_window\n" @@ -25679,17 +23332,7 @@ "target_ref": "test_throttled_scheduler" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_calculate_schedule_very_small_window [TYPE Function]\n# @RELATION BINDS_TO -> test_throttled_scheduler\n# @BRIEF Validate sub-second interpolation when task count exceeds near-zero window granularity.\ndef test_calculate_schedule_very_small_window():\n \"\"\"\n @TEST_SCENARIO: Window smaller than number of tasks (in seconds).\n \"\"\"\n start = time(1, 0, 0)\n end = time(1, 0, 1) # 1 second window\n dashboards = [\"d1\", \"d2\", \"d3\"]\n today = date(2024, 1, 1)\n schedule = ThrottledSchedulerConfigurator.calculate_schedule(\n start, end, dashboards, today\n )\n assert len(schedule) == 3\n assert schedule[0] == datetime(2024, 1, 1, 1, 0, 0)\n assert schedule[1] == datetime(2024, 1, 1, 1, 0, 0, 500000) # 0.5s\n assert schedule[2] == datetime(2024, 1, 1, 1, 0, 1)\n# #endregion test_calculate_schedule_very_small_window\n" @@ -25824,17 +23467,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_create_user [TYPE Function]\n# @BRIEF Verifies that a persisted user can be retrieved with intact credential hash.\n# @RELATION BINDS_TO -> test_auth\ndef test_create_user(auth_repo):\n \"\"\"Test user creation\"\"\"\n user = User(\n username=\"testuser\",\n email=\"test@example.com\",\n password_hash=get_password_hash(\"testpassword123\"),\n auth_source=\"LOCAL\",\n )\n auth_repo.db.add(user)\n auth_repo.db.commit()\n retrieved_user = auth_repo.get_user_by_username(\"testuser\")\n assert retrieved_user is not None\n assert retrieved_user.username == \"testuser\"\n assert retrieved_user.email == \"test@example.com\"\n assert verify_password(\"testpassword123\", retrieved_user.password_hash)\n# #endregion test_create_user\n" @@ -25858,17 +23491,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_authenticate_user [TYPE Function]\n# @BRIEF Validates authentication outcomes for valid, wrong-password, and unknown-user cases.\n# @RELATION BINDS_TO -> test_auth\ndef test_authenticate_user(auth_service, auth_repo):\n \"\"\"Test user authentication with valid and invalid credentials\"\"\"\n user = User(\n username=\"testuser\",\n email=\"test@example.com\",\n password_hash=get_password_hash(\"testpassword123\"),\n auth_source=\"LOCAL\",\n )\n auth_repo.db.add(user)\n auth_repo.db.commit()\n # Test valid credentials\n authenticated_user = auth_service.authenticate_user(\"testuser\", \"testpassword123\")\n assert authenticated_user is not None\n assert authenticated_user.username == \"testuser\"\n # Test invalid password\n invalid_user = auth_service.authenticate_user(\"testuser\", \"wrongpassword\")\n assert invalid_user is None\n # Test invalid username\n invalid_user = auth_service.authenticate_user(\"nonexistent\", \"testpassword123\")\n assert invalid_user is None\n# #endregion test_authenticate_user\n" @@ -25892,17 +23515,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_create_session [TYPE Function]\n# @BRIEF Ensures session creation returns bearer token payload fields.\n# @RELATION BINDS_TO -> test_auth\ndef test_create_session(auth_service, auth_repo):\n \"\"\"Test session token creation\"\"\"\n user = User(\n username=\"testuser\",\n email=\"test@example.com\",\n password_hash=get_password_hash(\"testpassword123\"),\n auth_source=\"LOCAL\",\n )\n auth_repo.db.add(user)\n auth_repo.db.commit()\n session = auth_service.create_session(user)\n assert \"access_token\" in session\n assert \"token_type\" in session\n assert session[\"token_type\"] == \"bearer\"\n assert len(session[\"access_token\"]) > 0\n# #endregion test_create_session\n" @@ -25926,17 +23539,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_role_permission_association [TYPE Function]\n# @BRIEF Confirms role-permission many-to-many assignments persist and reload correctly.\n# @RELATION BINDS_TO -> test_auth\ndef test_role_permission_association(auth_repo):\n \"\"\"Test role and permission association\"\"\"\n role = Role(name=\"Admin\", description=\"System administrator\")\n perm1 = Permission(resource=\"admin:users\", action=\"READ\")\n perm2 = Permission(resource=\"admin:users\", action=\"WRITE\")\n role.permissions.extend([perm1, perm2])\n auth_repo.db.add(role)\n auth_repo.db.commit()\n retrieved_role = auth_repo.get_role_by_name(\"Admin\")\n assert retrieved_role is not None\n assert len(retrieved_role.permissions) == 2\n permissions = [f\"{p.resource}:{p.action}\" for p in retrieved_role.permissions]\n assert \"admin:users:READ\" in permissions\n assert \"admin:users:WRITE\" in permissions\n# #endregion test_role_permission_association\n" @@ -25960,17 +23563,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_user_role_association [TYPE Function]\n# @BRIEF Confirms user-role assignment persists and is queryable from repository reads.\n# @RELATION BINDS_TO -> test_auth\ndef test_user_role_association(auth_repo):\n \"\"\"Test user and role association\"\"\"\n role = Role(name=\"Admin\", description=\"System administrator\")\n user = User(\n username=\"adminuser\",\n email=\"admin@example.com\",\n password_hash=get_password_hash(\"adminpass123\"),\n auth_source=\"LOCAL\",\n )\n user.roles.append(role)\n auth_repo.db.add(role)\n auth_repo.db.add(user)\n auth_repo.db.commit()\n retrieved_user = auth_repo.get_user_by_username(\"adminuser\")\n assert retrieved_user is not None\n assert len(retrieved_user.roles) == 1\n assert retrieved_user.roles[0].name == \"Admin\"\n# #endregion test_user_role_association\n" @@ -25994,17 +23587,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_ad_group_mapping [TYPE Function]\n# @BRIEF Verifies AD group mapping rows persist and reference the expected role.\n# @RELATION BINDS_TO -> test_auth\ndef test_ad_group_mapping(auth_repo):\n \"\"\"Test AD group mapping\"\"\"\n role = Role(name=\"ADFS_Admin\", description=\"ADFS administrators\")\n auth_repo.db.add(role)\n auth_repo.db.commit()\n mapping = ADGroupMapping(ad_group=\"DOMAIN\\\\ADFS_Admins\", role_id=role.id)\n auth_repo.db.add(mapping)\n auth_repo.db.commit()\n retrieved_mapping = (\n auth_repo.db.query(ADGroupMapping)\n .filter_by(ad_group=\"DOMAIN\\\\ADFS_Admins\")\n .first()\n )\n assert retrieved_mapping is not None\n assert retrieved_mapping.role_id == role.id\n# #endregion test_ad_group_mapping\n" @@ -26028,17 +23611,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_authenticate_user_updates_last_login [TYPE Function]\n# @BRIEF Verifies successful authentication updates last_login audit field.\n# @RELATION BINDS_TO -> test_auth\ndef test_authenticate_user_updates_last_login(auth_service, auth_repo):\n \"\"\"@SIDE_EFFECT: authenticate_user updates last_login timestamp on success.\"\"\"\n user = User(\n username=\"loginuser\",\n email=\"login@example.com\",\n password_hash=get_password_hash(\"mypassword\"),\n auth_source=\"LOCAL\",\n )\n auth_repo.db.add(user)\n auth_repo.db.commit()\n assert user.last_login is None\n authenticated = auth_service.authenticate_user(\"loginuser\", \"mypassword\")\n assert authenticated is not None\n assert authenticated.last_login is not None\n# #endregion test_authenticate_user_updates_last_login\n" @@ -26062,17 +23635,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_authenticate_inactive_user [TYPE Function]\n# @BRIEF Verifies inactive accounts are rejected during password authentication.\n# @RELATION BINDS_TO -> test_auth\ndef test_authenticate_inactive_user(auth_service, auth_repo):\n \"\"\"@PRE: User with is_active=False should not authenticate.\"\"\"\n user = User(\n username=\"inactive_user\",\n email=\"inactive@example.com\",\n password_hash=get_password_hash(\"testpass\"),\n auth_source=\"LOCAL\",\n is_active=False,\n )\n auth_repo.db.add(user)\n auth_repo.db.commit()\n result = auth_service.authenticate_user(\"inactive_user\", \"testpass\")\n assert result is None\n# #endregion test_authenticate_inactive_user\n" @@ -26096,17 +23659,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_verify_password_empty_hash [TYPE Function]\n# @BRIEF Verifies password verification safely rejects empty or null password hashes.\n# @RELATION BINDS_TO -> test_auth\ndef test_verify_password_empty_hash():\n \"\"\"@PRE: verify_password with empty/None hash returns False.\"\"\"\n assert verify_password(\"anypassword\", \"\") is False\n assert verify_password(\"anypassword\", None) is False\n# #endregion test_verify_password_empty_hash\n" @@ -26130,17 +23683,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_provision_adfs_user_new [TYPE Function]\n# @BRIEF Verifies JIT provisioning creates a new ADFS user and maps group-derived roles.\n# @RELATION BINDS_TO -> test_auth\ndef test_provision_adfs_user_new(auth_service, auth_repo):\n \"\"\"@POST: provision_adfs_user creates a new ADFS user with correct roles.\"\"\"\n # Set up a role and AD group mapping\n role = Role(name=\"ADFS_Viewer\", description=\"ADFS viewer role\")\n auth_repo.db.add(role)\n auth_repo.db.commit()\n mapping = ADGroupMapping(ad_group=\"DOMAIN\\\\Viewers\", role_id=role.id)\n auth_repo.db.add(mapping)\n auth_repo.db.commit()\n user_info = {\n \"upn\": \"newadfsuser@domain.com\",\n \"email\": \"newadfsuser@domain.com\",\n \"groups\": [\"DOMAIN\\\\Viewers\"],\n }\n user = auth_service.provision_adfs_user(user_info)\n assert user is not None\n assert user.username == \"newadfsuser@domain.com\"\n assert user.auth_source == \"ADFS\"\n assert user.is_active is True\n assert len(user.roles) == 1\n assert user.roles[0].name == \"ADFS_Viewer\"\n# #endregion test_provision_adfs_user_new\n" @@ -26164,17 +23707,7 @@ "target_ref": "test_auth" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_provision_adfs_user_existing [TYPE Function]\n# @BRIEF Verifies JIT provisioning reuses existing ADFS user and refreshes role assignments.\n# @RELATION BINDS_TO -> test_auth\ndef test_provision_adfs_user_existing(auth_service, auth_repo):\n \"\"\"@POST: provision_adfs_user updates roles for existing user.\"\"\"\n # Create existing user\n existing = User(\n username=\"existingadfs@domain.com\",\n email=\"existingadfs@domain.com\",\n auth_source=\"ADFS\",\n is_active=True,\n )\n auth_repo.db.add(existing)\n auth_repo.db.commit()\n user_info = {\n \"upn\": \"existingadfs@domain.com\",\n \"email\": \"existingadfs@domain.com\",\n \"groups\": [],\n }\n user = auth_service.provision_adfs_user(user_info)\n assert user is not None\n assert user.username == \"existingadfs@domain.com\"\n assert len(user.roles) == 0 # No matching group mappings\n# #endregion test_auth\n# #endregion test_provision_adfs_user_existing\n" @@ -26201,26 +23734,7 @@ "target_ref": "pydantic" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region AuthConfigModule [C:2] [TYPE Module] [SEMANTICS pydantic, auth, auth-config, config]\n#\n# @BRIEF Centralized configuration for authentication and authorization.\n# @LAYER: Core\n# @RELATION DEPENDS_ON -> pydantic\n#\n# @INVARIANT: All sensitive configuration must have defaults or be loaded from environment.\n\nfrom pydantic import Field\nfrom pydantic_settings import BaseSettings\n\n\n# #region AuthConfig [TYPE Class]\n# @BRIEF Holds authentication-related settings.\n# @PRE: Environment variables may be provided via .env file.\n# @POST: Returns a configuration object with validated settings.\n# @RELATION INHERITS -> pydantic_settings.BaseSettings\nclass AuthConfig(BaseSettings):\n # JWT Settings\n SECRET_KEY: str = Field(default=\"super-secret-key-change-in-production\", env=\"AUTH_SECRET_KEY\")\n ALGORITHM: str = \"HS256\"\n ACCESS_TOKEN_EXPIRE_MINUTES: int = 480\n REFRESH_TOKEN_EXPIRE_DAYS: int = 7\n\n # Database Settings\n AUTH_DATABASE_URL: str = Field(\n default=\"postgresql+psycopg2://postgres:postgres@localhost:5432/ss_tools\",\n env=\"AUTH_DATABASE_URL\",\n )\n\n # ADFS Settings\n ADFS_CLIENT_ID: str = Field(default=\"\", env=\"ADFS_CLIENT_ID\")\n ADFS_CLIENT_SECRET: str = Field(default=\"\", env=\"ADFS_CLIENT_SECRET\")\n ADFS_METADATA_URL: str = Field(default=\"\", env=\"ADFS_METADATA_URL\")\n\n class Config:\n env_file = \".env\"\n extra = \"ignore\"\n# #endregion AuthConfig\n\n# #region auth_config [TYPE Variable]\n# @BRIEF Singleton instance of AuthConfig.\n# @RELATION DEPENDS_ON -> AuthConfig\nauth_config = AuthConfig()\n# #endregion auth_config\n\n# #endregion AuthConfigModule\n" @@ -26264,15 +23778,6 @@ "actual_complexity": 1, "contract_type": "Class" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } } ], "anchor_syntax": "region", @@ -26416,15 +23921,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -26470,15 +23966,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -26555,15 +24042,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -26598,26 +24076,7 @@ "target_ref": "auth_config" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region AuthOauthModule [C:2] [TYPE Module] [SEMANTICS auth, oauth, oidc, adfs, authlib]\n#\n# @BRIEF ADFS OIDC configuration and client using Authlib.\n# @LAYER: Core\n# @RELATION DEPENDS_ON -> authlib\n# @RELATION USES -> auth_config\n#\n# @INVARIANT: Must use secure OIDC flows.\n\nfrom authlib.integrations.starlette_client import OAuth\n\nfrom .config import auth_config\n\n# #region oauth [TYPE Variable]\n# @BRIEF Global Authlib OAuth registry.\n# @RELATION DEPENDS_ON -> OAuth\noauth = OAuth()\n# #endregion oauth\n\n# #region register_adfs [TYPE Function]\n# @BRIEF Registers the ADFS OIDC client.\n# @PRE: ADFS configuration is provided in auth_config.\n# @POST: ADFS client is registered in oauth registry.\n# @RELATION USES -> oauth\n# @RELATION USES -> auth_config\ndef register_adfs():\n if auth_config.ADFS_CLIENT_ID:\n oauth.register(\n name='adfs',\n client_id=auth_config.ADFS_CLIENT_ID,\n client_secret=auth_config.ADFS_CLIENT_SECRET,\n server_metadata_url=auth_config.ADFS_METADATA_URL,\n client_kwargs={\n 'scope': 'openid email profile groups'\n }\n )\n# #endregion register_adfs\n\n# #region is_adfs_configured [TYPE Function]\n# @BRIEF Checks if ADFS is properly configured.\n# @PRE: None.\n# @POST: Returns True if ADFS client is registered, False otherwise.\n# @RELATION USES -> oauth\ndef is_adfs_configured() -> bool:\n \"\"\"Check if ADFS OAuth client is registered.\"\"\"\n return 'adfs' in oauth._registry\n# #endregion is_adfs_configured\n\n# Initial registration\nregister_adfs()\n\n# #endregion AuthOauthModule\n" @@ -26728,15 +24187,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -26782,15 +24232,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -26889,15 +24330,6 @@ "actual_complexity": 1, "contract_type": "Class" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } } ], "anchor_syntax": "region", @@ -26943,15 +24375,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -26997,15 +24420,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -27037,17 +24451,7 @@ "target_ref": "[Permission]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region get_role_by_id [TYPE Function]\n # @PURPOSE: Retrieve role by UUID with permissions preloaded.\n # @RELATION: DEPENDS_ON -> [Role]\n # @RELATION: DEPENDS_ON -> [Permission]\n def get_role_by_id(self, role_id: str) -> Role | None:\n with belief_scope(\"AuthRepository.get_role_by_id\"):\n return (\n self.db.query(Role)\n .options(selectinload(Role.permissions))\n .filter(Role.id == role_id)\n .first()\n )\n # #endregion get_role_by_id\n" @@ -27071,17 +24475,7 @@ "target_ref": "[Role]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region get_role_by_name [TYPE Function]\n # @PURPOSE: Retrieve role by unique name.\n # @RELATION: DEPENDS_ON -> [Role]\n def get_role_by_name(self, name: str) -> Role | None:\n with belief_scope(\"AuthRepository.get_role_by_name\"):\n return self.db.query(Role).filter(Role.name == name).first()\n # #endregion get_role_by_name\n" @@ -27105,17 +24499,7 @@ "target_ref": "[Permission]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region get_permission_by_id [TYPE Function]\n # @PURPOSE: Retrieve permission by UUID.\n # @RELATION: DEPENDS_ON -> [Permission]\n def get_permission_by_id(self, permission_id: str) -> Permission | None:\n with belief_scope(\"AuthRepository.get_permission_by_id\"):\n return (\n self.db.query(Permission).filter(Permission.id == permission_id).first()\n )\n # #endregion get_permission_by_id\n" @@ -27139,17 +24523,7 @@ "target_ref": "[Permission]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region get_permission_by_resource_action [TYPE Function]\n # @PURPOSE: Retrieve permission by resource and action tuple.\n # @RELATION: DEPENDS_ON -> [Permission]\n def get_permission_by_resource_action(\n self, resource: str, action: str\n ) -> Permission | None:\n with belief_scope(\"AuthRepository.get_permission_by_resource_action\"):\n return (\n self.db.query(Permission)\n .filter(Permission.resource == resource, Permission.action == action)\n .first()\n )\n # #endregion get_permission_by_resource_action\n" @@ -27173,17 +24547,7 @@ "target_ref": "[Permission]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region list_permissions [TYPE Function]\n # @PURPOSE: List all system permissions.\n # @RELATION: DEPENDS_ON -> [Permission]\n def list_permissions(self) -> list[Permission]:\n with belief_scope(\"AuthRepository.list_permissions\"):\n return self.db.query(Permission).all()\n # #endregion list_permissions\n" @@ -27207,17 +24571,7 @@ "target_ref": "[UserDashboardPreference]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region get_user_dashboard_preference [TYPE Function]\n # @PURPOSE: Retrieve dashboard filters/preferences for a user.\n # @RELATION: DEPENDS_ON -> [UserDashboardPreference]\n def get_user_dashboard_preference(\n self, user_id: str\n ) -> UserDashboardPreference | None:\n with belief_scope(\"AuthRepository.get_user_dashboard_preference\"):\n return (\n self.db.query(UserDashboardPreference)\n .filter(UserDashboardPreference.user_id == user_id)\n .first()\n )\n # #endregion get_user_dashboard_preference\n" @@ -27267,15 +24621,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -27304,26 +24649,7 @@ "target_ref": "bcrypt" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region AuthSecurityModule [C:2] [TYPE Module] [SEMANTICS auth, password, hashing, bcrypt, security]\n#\n# @BRIEF Utility for password hashing and verification using Passlib.\n# @LAYER: Core\n# @RELATION DEPENDS_ON -> bcrypt\n#\n# @INVARIANT: Uses bcrypt for hashing with standard work factor.\n\nimport bcrypt\n\n\n# #region verify_password [TYPE Function]\n# @BRIEF Verifies a plain password against a hashed password.\n# @PRE: plain_password is a string, hashed_password is a bcrypt hash.\n# @POST: Returns True if password matches, False otherwise.\n# @RELATION DEPENDS_ON -> bcrypt\n#\ndef verify_password(plain_password: str, hashed_password: str) -> bool:\n if not hashed_password:\n return False\n try:\n return bcrypt.checkpw(\n plain_password.encode(\"utf-8\"),\n hashed_password.encode(\"utf-8\"),\n )\n except Exception:\n return False\n# #endregion verify_password\n\n# #region get_password_hash [TYPE Function]\n# @BRIEF Generates a bcrypt hash for a plain password.\n# @PRE: password is a string.\n# @POST: Returns a secure bcrypt hash string.\n# @RELATION DEPENDS_ON -> bcrypt\n#\ndef get_password_hash(password: str) -> str:\n return bcrypt.hashpw(password.encode(\"utf-8\"), bcrypt.gensalt()).decode(\"utf-8\")\n# #endregion get_password_hash\n\n# #endregion AuthSecurityModule\n" @@ -27367,15 +24693,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -27421,15 +24738,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -28720,17 +26028,7 @@ "target_ref": "[ConnectionConfig]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatabaseModule [C:3] [TYPE Module] [SEMANTICS sqlalchemy, connection, session]\n#\n# @BRIEF Configures database connection and session management (PostgreSQL-first).\n# @LAYER: Infrastructure\n# @RELATION DEPENDS_ON -> [MappingModels]\n# @RELATION DEPENDS_ON -> [auth_config]\n# @RELATION DEPENDS_ON -> [ConnectionConfig]\n#\n# @INVARIANT: A single engine instance is used for the entire application.\n\nimport os\nfrom pathlib import Path\n\nfrom sqlalchemy import create_engine, inspect, text\nfrom sqlalchemy.orm import sessionmaker\n\nfrom ..models import assistant as _assistant_models # noqa: F401\nfrom ..models import auth as _auth_models # noqa: F401\nfrom ..models import clean_release as _clean_release_models # noqa: F401\nfrom ..models import config as _config_models # noqa: F401\nfrom ..models import connection as _connection_models # noqa: F401\nfrom ..models import dataset_review as _dataset_review_models # noqa: F401\nfrom ..models import llm as _llm_models # noqa: F401\nfrom ..models import profile as _profile_models # noqa: F401\n\n# Import models to ensure they're registered with Base\nfrom ..models import task as _task_models # noqa: F401\nfrom ..models.connection import ConnectionConfig\nfrom ..models.mapping import Base\nfrom .auth.config import auth_config\nfrom .logger import belief_scope, logger\n\n# #region BASE_DIR [C:1] [TYPE Variable]\n# @BRIEF Base directory for the backend.\nBASE_DIR = Path(__file__).resolve().parent.parent.parent\n# #endregion BASE_DIR\n\n# #region DATABASE_URL [C:1] [TYPE Constant]\n# @BRIEF URL for the main application database.\nDEFAULT_POSTGRES_URL = os.getenv(\n \"POSTGRES_URL\",\n \"postgresql+psycopg2://postgres:postgres@localhost:5432/ss_tools\",\n)\nDATABASE_URL = os.getenv(\"DATABASE_URL\", DEFAULT_POSTGRES_URL)\n# #endregion DATABASE_URL\n\n# #region TASKS_DATABASE_URL [C:1] [TYPE Constant]\n# @BRIEF URL for the tasks execution database.\n# Defaults to DATABASE_URL to keep task logs in the same PostgreSQL instance.\nTASKS_DATABASE_URL = os.getenv(\"TASKS_DATABASE_URL\", DATABASE_URL)\n# #endregion TASKS_DATABASE_URL\n\n# #region AUTH_DATABASE_URL [C:1] [TYPE Constant]\n# @BRIEF URL for the authentication database.\nAUTH_DATABASE_URL = os.getenv(\"AUTH_DATABASE_URL\", auth_config.AUTH_DATABASE_URL)\n# #endregion AUTH_DATABASE_URL\n\n\n# #region engine [C:1] [TYPE Variable]\n# @BRIEF SQLAlchemy engine for mappings database.\n# @SIDE_EFFECT: Creates database engine and manages connection pool.\ndef _build_engine(db_url: str):\n with belief_scope(\"_build_engine\"):\n if db_url.startswith(\"sqlite\"):\n return create_engine(db_url, connect_args={\"check_same_thread\": False})\n return create_engine(db_url, pool_pre_ping=True)\n\n\nengine = _build_engine(DATABASE_URL)\n# #endregion engine\n\n# #region tasks_engine [C:1] [TYPE Variable]\n# @BRIEF SQLAlchemy engine for tasks database.\ntasks_engine = _build_engine(TASKS_DATABASE_URL)\n# #endregion tasks_engine\n\n# #region auth_engine [C:1] [TYPE Variable]\n# @BRIEF SQLAlchemy engine for authentication database.\nauth_engine = _build_engine(AUTH_DATABASE_URL)\n# #endregion auth_engine\n\n# #region SessionLocal [C:1] [TYPE Class]\n# @BRIEF A session factory for the main mappings database.\n# @PRE: engine is initialized.\nSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)\n# #endregion SessionLocal\n\n# #region TasksSessionLocal [C:1] [TYPE Class]\n# @BRIEF A session factory for the tasks execution database.\n# @PRE: tasks_engine is initialized.\nTasksSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=tasks_engine)\n# #endregion TasksSessionLocal\n\n# #region AuthSessionLocal [C:1] [TYPE Class]\n# @BRIEF A session factory for the authentication database.\n# @PRE: auth_engine is initialized.\nAuthSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=auth_engine)\n# #endregion AuthSessionLocal\n\n\n# #region _ensure_user_dashboard_preferences_columns [C:3] [TYPE Function]\n# @BRIEF Applies additive schema upgrades for user_dashboard_preferences table.\n# @PRE: bind_engine points to application database where profile table is stored.\n# @POST: Missing columns are added without data loss.\n# @RELATION DEPENDS_ON -> [engine]\ndef _ensure_user_dashboard_preferences_columns(bind_engine):\n with belief_scope(\"_ensure_user_dashboard_preferences_columns\"):\n table_name = \"user_dashboard_preferences\"\n inspector = inspect(bind_engine)\n if table_name not in inspector.get_table_names():\n return\n\n existing_columns = {\n str(column.get(\"name\") or \"\").strip()\n for column in inspector.get_columns(table_name)\n }\n\n alter_statements = []\n if \"git_username\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences ADD COLUMN git_username VARCHAR\"\n )\n if \"git_email\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences ADD COLUMN git_email VARCHAR\"\n )\n if \"git_personal_access_token_encrypted\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences \"\n \"ADD COLUMN git_personal_access_token_encrypted VARCHAR\"\n )\n if \"start_page\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences \"\n \"ADD COLUMN start_page VARCHAR NOT NULL DEFAULT 'dashboards'\"\n )\n if \"auto_open_task_drawer\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences \"\n \"ADD COLUMN auto_open_task_drawer BOOLEAN NOT NULL DEFAULT TRUE\"\n )\n if \"dashboards_table_density\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences \"\n \"ADD COLUMN dashboards_table_density VARCHAR NOT NULL DEFAULT 'comfortable'\"\n )\n if \"show_only_slug_dashboards\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences \"\n \"ADD COLUMN show_only_slug_dashboards BOOLEAN NOT NULL DEFAULT TRUE\"\n )\n\n if not alter_statements:\n return\n\n try:\n with bind_engine.begin() as connection:\n for statement in alter_statements:\n connection.execute(text(statement))\n except Exception as migration_error:\n logger.explore(\n \"Profile preference additive migration failed\",\n extra={\"src\": \"database\", \"error\": str(migration_error)},\n )\n\n\n# #endregion _ensure_user_dashboard_preferences_columns\n\n\n# #region _ensure_user_dashboard_preferences_health_columns [C:3] [TYPE Function]\n# @BRIEF Applies additive schema upgrades for user_dashboard_preferences table (health fields).\n# @RELATION DEPENDS_ON -> [engine]\ndef _ensure_user_dashboard_preferences_health_columns(bind_engine):\n with belief_scope(\"_ensure_user_dashboard_preferences_health_columns\"):\n table_name = \"user_dashboard_preferences\"\n inspector = inspect(bind_engine)\n if table_name not in inspector.get_table_names():\n return\n\n existing_columns = {\n str(column.get(\"name\") or \"\").strip()\n for column in inspector.get_columns(table_name)\n }\n\n alter_statements = []\n if \"telegram_id\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences ADD COLUMN telegram_id VARCHAR\"\n )\n if \"email_address\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences ADD COLUMN email_address VARCHAR\"\n )\n if \"notify_on_fail\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE user_dashboard_preferences ADD COLUMN notify_on_fail BOOLEAN NOT NULL DEFAULT TRUE\"\n )\n\n if not alter_statements:\n return\n\n try:\n with bind_engine.begin() as connection:\n for statement in alter_statements:\n connection.execute(text(statement))\n except Exception as migration_error:\n logger.explore(\n \"Profile health preference additive migration failed\",\n extra={\"src\": \"database\", \"error\": str(migration_error)},\n )\n\n\n# #endregion _ensure_user_dashboard_preferences_health_columns\n\n\n# #region _ensure_llm_validation_results_columns [C:3] [TYPE Function]\n# @BRIEF Applies additive schema upgrades for llm_validation_results table.\n# @RELATION DEPENDS_ON -> [engine]\ndef _ensure_llm_validation_results_columns(bind_engine):\n with belief_scope(\"_ensure_llm_validation_results_columns\"):\n table_name = \"llm_validation_results\"\n inspector = inspect(bind_engine)\n if table_name not in inspector.get_table_names():\n return\n\n existing_columns = {\n str(column.get(\"name\") or \"\").strip()\n for column in inspector.get_columns(table_name)\n }\n\n alter_statements = []\n if \"task_id\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE llm_validation_results ADD COLUMN task_id VARCHAR\"\n )\n if \"environment_id\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE llm_validation_results ADD COLUMN environment_id VARCHAR\"\n )\n\n if not alter_statements:\n return\n\n try:\n with bind_engine.begin() as connection:\n for statement in alter_statements:\n connection.execute(text(statement))\n except Exception as migration_error:\n logger.explore(\n \"ValidationRecord additive migration failed\",\n extra={\"src\": \"database\", \"error\": str(migration_error)},\n )\n\n\n# #endregion _ensure_llm_validation_results_columns\n\n\n# #region _ensure_git_server_configs_columns [C:3] [TYPE Function]\n# @BRIEF Applies additive schema upgrades for git_server_configs table.\n# @PRE: bind_engine points to application database.\n# @POST: Missing columns are added without data loss.\n# @RELATION DEPENDS_ON -> [engine]\ndef _ensure_git_server_configs_columns(bind_engine):\n with belief_scope(\"_ensure_git_server_configs_columns\"):\n table_name = \"git_server_configs\"\n inspector = inspect(bind_engine)\n if table_name not in inspector.get_table_names():\n return\n\n existing_columns = {\n str(column.get(\"name\") or \"\").strip()\n for column in inspector.get_columns(table_name)\n }\n\n alter_statements = []\n if \"default_branch\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE git_server_configs ADD COLUMN default_branch VARCHAR NOT NULL DEFAULT 'main'\"\n )\n\n if not alter_statements:\n return\n\n try:\n with bind_engine.begin() as connection:\n for statement in alter_statements:\n connection.execute(text(statement))\n except Exception as migration_error:\n logger.explore(\n \"GitServerConfig preference additive migration failed\",\n extra={\"src\": \"database\", \"error\": str(migration_error)},\n )\n\n\n# #endregion _ensure_git_server_configs_columns\n\n\n# #region _ensure_auth_users_columns [C:3] [TYPE Function]\n# @BRIEF Applies additive schema upgrades for auth users table.\n# @PRE: bind_engine points to authentication database.\n# @POST: Missing columns are added without data loss.\n# @RELATION DEPENDS_ON -> [auth_engine]\ndef _ensure_auth_users_columns(bind_engine):\n with belief_scope(\"_ensure_auth_users_columns\"):\n table_name = \"users\"\n inspector = inspect(bind_engine)\n if table_name not in inspector.get_table_names():\n return\n\n existing_columns = {\n str(column.get(\"name\") or \"\").strip()\n for column in inspector.get_columns(table_name)\n }\n\n alter_statements = []\n if \"full_name\" not in existing_columns:\n alter_statements.append(\"ALTER TABLE users ADD COLUMN full_name VARCHAR\")\n if \"is_ad_user\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE users ADD COLUMN is_ad_user BOOLEAN NOT NULL DEFAULT FALSE\"\n )\n\n if not alter_statements:\n logger.reason(\n \"Auth users schema already up to date\",\n extra={\"table\": table_name, \"columns\": sorted(existing_columns)},\n )\n return\n\n logger.reason(\n \"Applying additive auth users schema migration\",\n extra={\"table\": table_name, \"statements\": alter_statements},\n )\n\n try:\n with bind_engine.begin() as connection:\n for statement in alter_statements:\n connection.execute(text(statement))\n logger.reason(\n \"Auth users schema migration completed\",\n extra={\n \"table\": table_name,\n \"added_columns\": [\n stmt.split(\" ADD COLUMN \", 1)[1].split()[0]\n for stmt in alter_statements\n ],\n },\n )\n except Exception as migration_error:\n logger.explore(\n \"Auth users additive migration failed\",\n extra={\"src\": \"database\", \"error\": str(migration_error)},\n )\n raise\n\n\n# #endregion _ensure_auth_users_columns\n\n\n# #region ensure_connection_configs_table [C:3] [TYPE Function]\n# @BRIEF Ensures the external connection registry table exists in the main database.\n# @PRE: bind_engine points to the application database.\n# @POST: connection_configs table exists without dropping existing data.\n# @RELATION DEPENDS_ON -> [ConnectionConfig]\ndef ensure_connection_configs_table(bind_engine):\n with belief_scope(\"ensure_connection_configs_table\"):\n try:\n ConnectionConfig.__table__.create(bind=bind_engine, checkfirst=True)\n except Exception as migration_error:\n logger.explore(\n \"ConnectionConfig table ensure failed\",\n extra={\"src\": \"database\", \"error\": str(migration_error)},\n )\n raise\n\n\n# #endregion ensure_connection_configs_table\n\n\n# #region _ensure_filter_source_enum_values [C:3] [TYPE Function]\n# @BRIEF Adds missing FilterSource enum values to the PostgreSQL native filtersource type.\n# @PRE: bind_engine points to application database with imported_filters table.\n# @POST: New enum values are available without data loss.\n# @RELATION DEPENDS_ON -> [engine]\ndef _ensure_filter_source_enum_values(bind_engine):\n with belief_scope(\"_ensure_filter_source_enum_values\"):\n try:\n with bind_engine.connect() as connection:\n # Check if the native enum type exists\n result = connection.execute(\n text(\n \"SELECT t.typname FROM pg_type t \"\n \"JOIN pg_namespace n ON t.typnamespace = n.oid \"\n \"WHERE t.typname = 'filtersource' AND n.nspname = 'public'\"\n )\n )\n if result.fetchone() is None:\n logger.reason(\n \"filtersource enum type does not exist yet; skipping migration\"\n )\n return\n\n # Get existing enum values\n result = connection.execute(\n text(\n \"SELECT e.enumlabel FROM pg_enum e \"\n \"JOIN pg_type t ON e.enumtypid = t.oid \"\n \"WHERE t.typname = 'filtersource' \"\n \"ORDER BY e.enumsortorder\"\n )\n )\n existing_values = {row[0] for row in result.fetchall()}\n\n required_values = [\"SUPERSET_PERMALINK\", \"SUPERSET_NATIVE_FILTERS_KEY\"]\n missing_values = [\n v for v in required_values if v not in existing_values\n ]\n\n if not missing_values:\n logger.reason(\n \"filtersource enum already up to date\",\n extra={\"existing\": sorted(existing_values)},\n )\n return\n\n logger.reason(\n \"Adding missing values to filtersource enum\",\n extra={\"missing\": missing_values},\n )\n for value in missing_values:\n connection.execute(\n text(\n f\"ALTER TYPE filtersource ADD VALUE IF NOT EXISTS '{value}'\"\n )\n )\n connection.commit()\n logger.reason(\n \"filtersource enum migration completed\",\n extra={\"added\": missing_values},\n )\n except Exception as migration_error:\n logger.explore(\n \"FilterSource enum additive migration failed\",\n extra={\"src\": \"database\", \"error\": str(migration_error)},\n )\n\n\n# #endregion _ensure_filter_source_enum_values\n\n\n# #region _ensure_dataset_review_session_columns [C:4] [TYPE Function]\n# @BRIEF Apply additive schema upgrades for dataset review persistence required by optimistic-lock and recovery metadata semantics.\n# @PRE: bind_engine points to the application database where dataset review tables are stored.\n# @POST: Missing additive columns across legacy dataset review tables are created without removing existing data.\n# @SIDE_EFFECT: Executes ALTER TABLE statements against dataset review tables in the application database.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\n# @RELATION DEPENDS_ON -> [ImportedFilter]\ndef _ensure_translation_jobs_columns(bind_engine):\n with belief_scope(\"_ensure_translation_jobs_columns\"):\n table_name = \"translation_jobs\"\n inspector = inspect(bind_engine)\n if table_name not in inspector.get_table_names():\n return\n\n existing_columns = {\n str(column.get(\"name\") or \"\").strip()\n for column in inspector.get_columns(table_name)\n }\n\n if \"environment_id\" not in existing_columns:\n try:\n with bind_engine.begin() as connection:\n connection.execute(\n text(\n \"ALTER TABLE translation_jobs \"\n \"ADD COLUMN environment_id VARCHAR\"\n )\n )\n logger.reflect(\n \"Added environment_id column to translation_jobs\",\n )\n except Exception as migration_error:\n logger.explore(\n \"Failed to add environment_id to translation_jobs\",\n extra={\"error\": str(migration_error)},\n )\n raise\n\n if \"target_database_id\" not in existing_columns:\n try:\n with bind_engine.begin() as connection:\n connection.execute(\n text(\n \"ALTER TABLE translation_jobs \"\n \"ADD COLUMN target_database_id VARCHAR\"\n )\n )\n logger.reflect(\n \"Added target_database_id column to translation_jobs\",\n )\n except Exception as migration_error:\n logger.explore(\n \"Failed to add target_database_id to translation_jobs\",\n extra={\"error\": str(migration_error)},\n )\n\n\ndef _ensure_dataset_review_session_columns(bind_engine):\n with belief_scope(\"_ensure_dataset_review_session_columns\"):\n inspector = inspect(bind_engine)\n existing_tables = set(inspector.get_table_names())\n migration_plan = {\n \"dataset_review_sessions\": [\n (\n \"version\",\n \"ALTER TABLE dataset_review_sessions \"\n \"ADD COLUMN version INTEGER NOT NULL DEFAULT 0\",\n )\n ],\n \"imported_filters\": [\n (\n \"raw_value_masked\",\n \"ALTER TABLE imported_filters \"\n \"ADD COLUMN raw_value_masked BOOLEAN NOT NULL DEFAULT FALSE\",\n )\n ],\n }\n\n for table_name, planned_columns in migration_plan.items():\n if table_name not in existing_tables:\n logger.reason(\n \"Dataset review table does not exist yet; skipping additive schema migration\",\n extra={\"table\": table_name},\n )\n continue\n\n existing_columns = {\n str(column.get(\"name\") or \"\").strip()\n for column in inspector.get_columns(table_name)\n }\n alter_statements = [\n statement\n for column_name, statement in planned_columns\n if column_name not in existing_columns\n ]\n\n if not alter_statements:\n logger.reason(\n \"Dataset review table schema already up to date\",\n extra={\"table\": table_name, \"columns\": sorted(existing_columns)},\n )\n continue\n\n logger.reason(\n \"Applying additive dataset review schema migration\",\n extra={\"table\": table_name, \"statements\": alter_statements},\n )\n\n try:\n with bind_engine.begin() as connection:\n for statement in alter_statements:\n connection.execute(text(statement))\n logger.reflect(\n \"Dataset review additive schema migration completed\",\n extra={\n \"table\": table_name,\n \"added_columns\": [\n stmt.split(\" ADD COLUMN \", 1)[1].split()[0]\n for stmt in alter_statements\n ],\n },\n )\n except Exception as migration_error:\n logger.explore(\n \"Dataset review additive schema migration failed\",\n extra={\"table\": table_name, \"error\": str(migration_error)},\n )\n raise\n\n\n# #endregion _ensure_dataset_review_session_columns\n\n\n# #region _ensure_translation_schedules_columns [C:3] [TYPE Function]\n# @BRIEF Applies additive schema upgrades for translation_schedules table.\n# @PRE: bind_engine points to application database.\n# @POST: Missing columns are added without data loss.\n# @RELATION DEPENDS_ON -> [engine]\ndef _ensure_translation_schedules_columns(bind_engine):\n with belief_scope(\"_ensure_translation_schedules_columns\"):\n table_name = \"translation_schedules\"\n inspector = inspect(bind_engine)\n if table_name not in inspector.get_table_names():\n return\n\n existing_columns = {\n str(column.get(\"name\") or \"\").strip()\n for column in inspector.get_columns(table_name)\n }\n\n alter_statements = []\n if \"execution_mode\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE translation_schedules \"\n \"ADD COLUMN execution_mode VARCHAR NOT NULL DEFAULT 'full'\"\n )\n\n if not alter_statements:\n return\n\n try:\n with bind_engine.begin() as connection:\n for statement in alter_statements:\n connection.execute(text(statement))\n except Exception as migration_error:\n logger.explore(\n \"TranslationSchedule additive migration failed\",\n extra={\"src\": \"database\", \"error\": str(migration_error)},\n )\n\n\n# #endregion _ensure_translation_schedules_columns\n\n\n# #region _ensure_dictionary_entries_columns [C:3] [TYPE Function]\n# @BRIEF Additive migration for dictionary_entries origin tracking columns.\n# @RELATION DEPENDS_ON -> [engine]\ndef _ensure_dictionary_entries_columns(bind_engine):\n with belief_scope(\"_ensure_dictionary_entries_columns\"):\n table_name = \"dictionary_entries\"\n inspector = inspect(bind_engine)\n if table_name not in inspector.get_table_names():\n return\n\n existing_columns = {\n str(column.get(\"name\") or \"\").strip()\n for column in inspector.get_columns(table_name)\n }\n\n alter_statements = []\n if \"origin_run_id\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE dictionary_entries \"\n \"ADD COLUMN origin_run_id VARCHAR\"\n )\n if \"origin_row_key\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE dictionary_entries \"\n \"ADD COLUMN origin_row_key VARCHAR\"\n )\n if \"origin_user_id\" not in existing_columns:\n alter_statements.append(\n \"ALTER TABLE dictionary_entries \"\n \"ADD COLUMN origin_user_id VARCHAR\"\n )\n\n if not alter_statements:\n return\n\n try:\n with bind_engine.begin() as connection:\n for statement in alter_statements:\n connection.execute(text(statement))\n except Exception as migration_error:\n logger.explore(\n \"DictionaryEntry additive migration failed\",\n extra={\"src\": \"database\", \"error\": str(migration_error)},\n )\n\n\n# #endregion _ensure_dictionary_entries_columns\n\n\n# #region init_db [C:3] [TYPE Function]\n# @BRIEF Initializes the database by creating all tables.\n# @PRE: engine, tasks_engine and auth_engine are initialized.\n# @POST: Database tables created in all databases.\n# @SIDE_EFFECT: Creates physical database files if they don't exist.\n# @RELATION CALLS -> [ensure_connection_configs_table]\n# @RELATION CALLS -> [_ensure_filter_source_enum_values]\n# @RELATION CALLS -> [_ensure_dataset_review_session_columns]\n# @RELATION CALLS -> [_ensure_dictionary_entries_columns]\ndef init_db():\n with belief_scope(\"init_db\"):\n Base.metadata.create_all(bind=engine)\n Base.metadata.create_all(bind=tasks_engine)\n Base.metadata.create_all(bind=auth_engine)\n _ensure_user_dashboard_preferences_columns(engine)\n _ensure_llm_validation_results_columns(engine)\n _ensure_user_dashboard_preferences_health_columns(engine)\n _ensure_git_server_configs_columns(engine)\n _ensure_auth_users_columns(auth_engine)\n ensure_connection_configs_table(engine)\n _ensure_filter_source_enum_values(engine)\n _ensure_dataset_review_session_columns(engine)\n _ensure_translation_jobs_columns(engine)\n _ensure_translation_schedules_columns(engine)\n _ensure_dictionary_entries_columns(engine)\n\n\n# #endregion init_db\n\n\n# #region get_db [C:3] [TYPE Function]\n# @BRIEF Dependency for getting a database session.\n# @PRE: SessionLocal is initialized.\n# @POST: Session is closed after use.\n# @RELATION DEPENDS_ON -> [SessionLocal]\ndef get_db():\n with belief_scope(\"get_db\"):\n db = SessionLocal()\n try:\n yield db\n finally:\n db.close()\n\n\n# #endregion get_db\n\n\n# #region get_tasks_db [C:3] [TYPE Function]\n# @BRIEF Dependency for getting a tasks database session.\n# @PRE: TasksSessionLocal is initialized.\n# @POST: Session is closed after use.\n# @RELATION DEPENDS_ON -> [TasksSessionLocal]\ndef get_tasks_db():\n with belief_scope(\"get_tasks_db\"):\n db = TasksSessionLocal()\n try:\n yield db\n finally:\n db.close()\n\n\n# #endregion get_tasks_db\n\n\n# #region get_auth_db [C:3] [TYPE Function]\n# @BRIEF Dependency for getting an authentication database session.\n# @PRE: AuthSessionLocal is initialized.\n# @POST: Session is closed after use.\n# @DATA_CONTRACT: None -> Output[sqlalchemy.orm.Session]\n# @RELATION DEPENDS_ON -> [AuthSessionLocal]\ndef get_auth_db():\n with belief_scope(\"get_auth_db\"):\n db = AuthSessionLocal()\n try:\n yield db\n finally:\n db.close()\n\n\n# #endregion get_auth_db\n\n# #endregion DatabaseModule\n" @@ -30330,17 +27628,7 @@ "PURPOSE": "Format a LogRecord into a single-line CoT JSON string with molecular CoT protocol fields." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region CotJsonFormatter.format [C:2] [TYPE Function] [SEMANTICS format,json,record]\n # @BRIEF Format a LogRecord into a single-line CoT JSON string with molecular CoT protocol fields.\n # @INVARIANT Output is always valid single-line JSON.\n def format(self, record):\n # Try to extract structured data from extra kwargs on the record\n marker = getattr(record, 'marker', None)\n intent = getattr(record, 'intent', None)\n payload = getattr(record, 'payload', None)\n error = getattr(record, 'error', None)\n src = getattr(record, 'src', None) or record.name\n\n # Default marker for plain messages\n if not marker:\n marker = \"REASON\"\n if not intent:\n intent = record.getMessage()\n\n log_obj = {\n \"ts\": datetime.now(UTC).isoformat(timespec=\"milliseconds\"),\n \"level\": record.levelname,\n \"trace_id\": _trace_id.get() or \"no-trace\",\n \"src\": src,\n \"marker\": marker,\n \"intent\": intent,\n }\n\n span_id = _span_id.get()\n if span_id:\n log_obj[\"span_id\"] = span_id\n if payload:\n log_obj[\"payload\"] = payload\n if error:\n log_obj[\"error\"] = error\n\n return json.dumps(log_obj, ensure_ascii=False, default=str)\n # #endregion CotJsonFormatter.format\n" @@ -30683,15 +27971,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -30737,15 +28016,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -30791,15 +28061,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -30845,15 +28106,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -30899,15 +28151,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -30953,15 +28196,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -31007,15 +28241,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -31061,15 +28286,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -31095,17 +28311,7 @@ "target_ref": "test_logger" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_belief_scope_missing_anchor [TYPE Function]\n# @RELATION BINDS_TO -> test_logger\n# @BRIEF Test @PRE condition: anchor_id must be provided\ndef test_belief_scope_missing_anchor():\n \"\"\"Test that belief_scope enforces anchor_id to be provided.\"\"\"\n import pytest\n\n from src.core.logger import belief_scope\n with pytest.raises(TypeError):\n # Missing required positional argument 'anchor_id'\n with belief_scope():\n pass\n# #endregion test_belief_scope_missing_anchor\n" @@ -31129,17 +28335,7 @@ "target_ref": "test_logger" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_configure_logger_post_conditions [TYPE Function]\n# @RELATION BINDS_TO -> test_logger\n# @BRIEF Test @POST condition: Logger level, handlers, belief state flag, and task log level are updated.\ndef test_configure_logger_post_conditions(tmp_path):\n \"\"\"Test that configure_logger satisfies all @POST conditions.\"\"\"\n import logging\n from logging.handlers import RotatingFileHandler\n\n import src.core.logger as logger_module\n from src.core.config_models import LoggingConfig\n from src.core.logger import BeliefFormatter, configure_logger, get_task_log_level, logger\n log_file = tmp_path / \"test.log\"\n config = LoggingConfig(\n level=\"WARNING\",\n task_log_level=\"DEBUG\",\n enable_belief_state=False,\n file_path=str(log_file)\n )\n\n configure_logger(config)\n\n # 1. Logger level is updated\n assert logger.level == logging.WARNING\n\n # 2. Handlers are updated (file handler removed old ones, added new one)\n file_handlers = [h for h in logger.handlers if isinstance(h, RotatingFileHandler)]\n assert len(file_handlers) == 1\n import pathlib\n assert pathlib.Path(file_handlers[0].baseFilename) == log_file.resolve()\n\n # 3. Formatter is set to BeliefFormatter\n for handler in logger.handlers:\n assert isinstance(handler.formatter, BeliefFormatter)\n\n # 4. Global states\n assert logger_module._enable_belief_state is False\n assert get_task_log_level() == \"DEBUG\"\n# #endregion test_configure_logger_post_conditions\n" @@ -31613,15 +28809,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -31730,15 +28917,6 @@ "tag": "RETURN", "message": "@RETURN is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -31784,15 +28962,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -31948,15 +29117,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -32184,17 +29344,7 @@ "target_ref": "[_index_by_uuid]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region _build_object_diff [TYPE Function]\n # @PURPOSE: Compute create/update/delete buckets by UUID+signature.\n # @RELATION: DEPENDS_ON -> [_index_by_uuid]\n def _build_object_diff(\n self, source_objects: list[dict[str, Any]], target_objects: list[dict[str, Any]]\n ) -> dict[str, list[dict[str, Any]]]:\n target_index = self._index_by_uuid(target_objects)\n created: list[dict[str, Any]] = []\n updated: list[dict[str, Any]] = []\n deleted: list[dict[str, Any]] = []\n for source_obj in source_objects:\n source_uuid = str(source_obj.get(\"uuid\"))\n target_obj = target_index.get(source_uuid)\n if not target_obj:\n created.append({\"uuid\": source_uuid, \"title\": source_obj.get(\"title\")})\n continue\n if source_obj.get(\"signature\") != target_obj.get(\"signature\"):\n updated.append(\n {\n \"uuid\": source_uuid,\n \"title\": source_obj.get(\"title\"),\n \"target_title\": target_obj.get(\"title\"),\n }\n )\n return {\"create\": created, \"update\": updated, \"delete\": deleted}\n # #endregion _build_object_diff\n" @@ -32697,15 +29847,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -32839,15 +29980,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -32945,15 +30077,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -33184,15 +30307,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -33214,15 +30328,6 @@ "actual_complexity": 1, "contract_type": "Class" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } } ], "anchor_syntax": "region", @@ -33631,15 +30736,6 @@ "actual_complexity": 1, "contract_type": "Class" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } } ], "anchor_syntax": "region", @@ -34331,15 +31427,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -34412,15 +31499,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -35084,15 +32162,6 @@ ], "value": "Infra" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -35119,17 +32188,7 @@ "target_ref": "[SupersetClientBase]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region SupersetUserProjectionMixin [C:2] [TYPE Class]\n# @BRIEF Mixin providing user/owner payload normalization for Superset API responses.\n# @RELATION DEPENDS_ON -> [SupersetClientBase]\nclass SupersetUserProjectionMixin:\n # #region SupersetClientExtractOwnerLabels [TYPE Function] [C:1]\n # @PURPOSE: Normalize dashboard owners payload to stable display labels.\n def _extract_owner_labels(self, owners_payload: Any) -> list[str]:\n if owners_payload is None:\n return []\n owners_list: list[Any]\n if isinstance(owners_payload, list):\n owners_list = owners_payload\n else:\n owners_list = [owners_payload]\n normalized: list[str] = []\n for owner in owners_list:\n label: str | None = None\n if isinstance(owner, dict):\n label = self._extract_user_display(None, owner)\n else:\n label = self._sanitize_user_text(owner)\n if label and label not in normalized:\n normalized.append(label)\n return normalized\n # #endregion SupersetClientExtractOwnerLabels\n # #region SupersetClientExtractUserDisplay [TYPE Function] [C:1]\n # @PURPOSE: Normalize user payload to a stable display name.\n def _extract_user_display(\n self, preferred_value: str | None, user_payload: dict | None\n ) -> str | None:\n preferred = self._sanitize_user_text(preferred_value)\n if preferred:\n return preferred\n if isinstance(user_payload, dict):\n full_name = self._sanitize_user_text(user_payload.get(\"full_name\"))\n if full_name:\n return full_name\n first_name = self._sanitize_user_text(user_payload.get(\"first_name\")) or \"\"\n last_name = self._sanitize_user_text(user_payload.get(\"last_name\")) or \"\"\n combined = \" \".join(\n part for part in [first_name, last_name] if part\n ).strip()\n if combined:\n return combined\n username = self._sanitize_user_text(user_payload.get(\"username\"))\n if username:\n return username\n email = self._sanitize_user_text(user_payload.get(\"email\"))\n if email:\n return email\n return None\n # #endregion SupersetClientExtractUserDisplay\n # #region SupersetClientSanitizeUserText [TYPE Function] [C:1]\n # @PURPOSE: Convert scalar value to non-empty user-facing text.\n def _sanitize_user_text(self, value: str | int | None) -> str | None:\n if value is None:\n return None\n normalized = str(value).strip()\n if not normalized:\n return None\n return normalized\n # #endregion SupersetClientSanitizeUserText\n# #endregion SupersetUserProjectionMixin\n" @@ -35452,15 +32511,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -35486,17 +32536,7 @@ "target_ref": "../task_logger.py" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region __tests__/test_task_logger [TYPE Module] [SEMANTICS test, task, logger, contract]\n# @RELATION VERIFIES -> ../task_logger.py\n# @BRIEF Contract testing for TaskLogger\n# #endregion __tests__/test_task_logger\n" @@ -35521,17 +32561,7 @@ "target_ref": "__tests__/test_task_logger" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_task_logger_initialization [TYPE Function]\n# @RELATION BINDS_TO -> __tests__/test_task_logger\n# @BRIEF Verify TaskLogger initializes with correct task_id and state.\ndef test_task_logger_initialization(task_logger):\n \"\"\"Verify TaskLogger is bound to specific task_id and source.\"\"\"\n assert task_logger._task_id == \"test_123\"\n assert task_logger._default_source == \"test_plugin\"\n# @TEST_CONTRACT: invariants -> \"All specific log methods (info, error) delegate to _log\"\n# #endregion test_task_logger_initialization\n" @@ -35556,17 +32586,7 @@ "target_ref": "__tests__/test_task_logger" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_log_methods_delegation [TYPE Function]\n# @RELATION BINDS_TO -> __tests__/test_task_logger\n# @BRIEF Verify TaskLogger delegates log method calls to the underlying persistence service.\ndef test_log_methods_delegation(task_logger, mock_add_log):\n \"\"\"Verify info, error, warning, debug delegate to internal _log.\"\"\"\n task_logger.info(\"info message\", metadata={\"k\": \"v\"})\n mock_add_log.assert_called_with(\n task_id=\"test_123\",\n level=\"INFO\",\n message=\"info message\",\n source=\"test_plugin\",\n metadata={\"k\": \"v\"}\n )\n\n task_logger.error(\"error message\", source=\"override\")\n mock_add_log.assert_called_with(\n task_id=\"test_123\",\n level=\"ERROR\",\n message=\"error message\",\n source=\"override\",\n metadata=None\n )\n task_logger.warning(\"warning message\")\n mock_add_log.assert_called_with(\n task_id=\"test_123\",\n level=\"WARNING\",\n message=\"warning message\",\n source=\"test_plugin\",\n metadata=None\n )\n task_logger.debug(\"debug message\")\n mock_add_log.assert_called_with(\n task_id=\"test_123\",\n level=\"DEBUG\",\n message=\"debug message\",\n source=\"test_plugin\",\n metadata=None\n )\n# @TEST_CONTRACT: invariants -> \"with_source creates a new logger with the same task_id\"\n# #endregion test_log_methods_delegation\n" @@ -35591,17 +32611,7 @@ "target_ref": "__tests__/test_task_logger" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_with_source [TYPE Function]\n# @RELATION BINDS_TO -> __tests__/test_task_logger\n# @BRIEF Verify TaskLogger.with_source returns a new logger with the correct source attribution.\ndef test_with_source(task_logger):\n \"\"\"Verify with_source returns a new instance with updated default source.\"\"\"\n new_logger = task_logger.with_source(\"new_source\")\n assert isinstance(new_logger, TaskLogger)\n assert new_logger._task_id == \"test_123\"\n assert new_logger._default_source == \"new_source\"\n assert new_logger is not task_logger\n# @TEST_EDGE: missing_task_id -> raises TypeError\n# #endregion test_with_source\n" @@ -35626,17 +32636,7 @@ "target_ref": "__tests__/test_task_logger" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_missing_task_id [TYPE Function]\n# @RELATION BINDS_TO -> __tests__/test_task_logger\n# @BRIEF Verify TaskLogger raises or handles missing task_id gracefully.\ndef test_missing_task_id():\n with pytest.raises(TypeError):\n TaskLogger(add_log_fn=lambda x: x)\n# @TEST_EDGE: invalid_add_log_fn -> raises TypeError\n# (Python doesn't strictly enforce this at init, but let's verify it fails on call if not callable)\n# #endregion test_missing_task_id\n" @@ -35661,17 +32661,7 @@ "target_ref": "__tests__/test_task_logger" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_invalid_add_log_fn [TYPE Function]\n# @RELATION BINDS_TO -> __tests__/test_task_logger\n# @BRIEF Verify TaskLogger raises ValueError for invalid add_log_fn parameter.\ndef test_invalid_add_log_fn():\n logger = TaskLogger(task_id=\"msg\", add_log_fn=None)\n with pytest.raises(TypeError):\n logger.info(\"test\")\n# @TEST_INVARIANT: consistent_delegation\n# #endregion test_invalid_add_log_fn\n" @@ -35695,17 +32685,7 @@ "target_ref": "__tests__/test_task_logger" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_progress_log [TYPE Function]\n# @RELATION BINDS_TO -> __tests__/test_task_logger\n# @BRIEF Verify TaskLogger correctly logs progress updates with percentage and message.\ndef test_progress_log(task_logger, mock_add_log):\n \"\"\"Verify progress method correctly formats metadata.\"\"\"\n task_logger.progress(\"Step 1\", 45.5)\n mock_add_log.assert_called_with(\n task_id=\"test_123\",\n level=\"INFO\",\n message=\"Step 1\",\n source=\"test_plugin\",\n metadata={\"progress\": 45.5}\n )\n\n # Boundary checks\n task_logger.progress(\"Step high\", 150)\n assert mock_add_log.call_args[1][\"metadata\"][\"progress\"] == 100\n\n task_logger.progress(\"Step low\", -10)\n assert mock_add_log.call_args[1][\"metadata\"][\"progress\"] == 0\n# #endregion test_progress_log\n" @@ -36270,15 +33250,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -36343,15 +33314,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -36597,17 +33559,7 @@ "target_ref": "[TaskLogPersistenceService.get_log_stats]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region get_task_log_stats [C:2] [TYPE Function] [SEMANTICS log,stats,aggregate]\n # @BRIEF Get statistics about logs for a task.\n # @RELATION CALLS -> [TaskLogPersistenceService.get_log_stats]\n def get_task_log_stats(self, task_id: str) -> LogStats:\n return self.log_persistence_service.get_log_stats(task_id)\n # #endregion get_task_log_stats\n" @@ -36632,17 +33584,7 @@ "target_ref": "[TaskLogPersistenceService.get_sources]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region get_task_log_sources [C:2] [TYPE Function] [SEMANTICS log,sources,unique]\n # @BRIEF Get unique sources for a task's logs.\n # @RELATION CALLS -> [TaskLogPersistenceService.get_sources]\n def get_task_log_sources(self, task_id: str) -> list[str]:\n return self.log_persistence_service.get_sources(task_id)\n # #endregion get_task_log_sources\n" @@ -36667,17 +33609,7 @@ "target_ref": "[TaskLogPersistenceService.delete_logs_for_tasks]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region delete_logs_for_tasks [C:2] [TYPE Function] [SEMANTICS log,delete,cleanup]\n # @BRIEF Delete logs for specified tasks.\n # @RELATION CALLS -> [TaskLogPersistenceService.delete_logs_for_tasks]\n def delete_logs_for_tasks(self, task_ids: list[str]) -> None:\n if task_ids:\n self.log_persistence_service.delete_logs_for_tasks(task_ids)\n # #endregion delete_logs_for_tasks\n" @@ -36696,15 +33628,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -36769,15 +33692,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -37025,15 +33939,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -37098,15 +34003,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -37485,15 +34381,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -37626,15 +34513,6 @@ "contract_type": "Class" } }, - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -37933,17 +34811,7 @@ "target_ref": "[TaskLog]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region LogStats [C:1] [TYPE Class] [SEMANTICS log, stats, aggregation, pydantic]\n# @BRIEF Statistics about log entries for a task.\n# @RELATION DEPENDS_ON -> [TaskLog]\nclass LogStats(BaseModel):\n total_count: int\n by_level: dict[str, int] # {\"INFO\": 10, \"ERROR\": 2}\n by_source: dict[str, int] # {\"plugin\": 5, \"superset_api\": 7}\n# #endregion LogStats\n" @@ -38204,26 +35072,7 @@ "target_ref": "[EventBus]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TaskLoggerModule [C:2] [TYPE Module] [SEMANTICS task, logger, log, streaming]\n# @BRIEF Provides a dedicated logger for tasks with automatic source attribution.\n# @LAYER: Core\n# @RELATION DEPENDS_ON -> [TaskManager]\n# @RELATION DEPENDS_ON -> [EventBus]\n# @INVARIANT: Each TaskLogger instance is bound to a specific task_id and default source.\nfrom collections.abc import Callable\nfrom typing import Any\n\n\n# #region TaskLogger [C:2] [TYPE Class] [SEMANTICS logger, task, source, attribution]\n# @BRIEF A wrapper around TaskManager._add_log that carries task_id and source context.\n# @RELATION DEPENDS_ON -> [TaskManager]\n# @RELATION DEPENDS_ON -> [EventBus]\n# @RELATION USED_BY -> [TaskContext]\n# @INVARIANT: All log calls include the task_id and source.\n# @UX_STATE: Idle -> Logging -> (system records log)\n#\n# @TEST_CONTRACT: TaskLoggerContract ->\n# {\n# required_fields: {task_id: str, add_log_fn: Callable},\n# optional_fields: {source: str},\n# invariants: [\n# \"All specific log methods (info, error) delegate to _log\",\n# \"with_source creates a new logger with the same task_id\"\n# ]\n# }\n# @TEST_FIXTURE: valid_task_logger -> {\"task_id\": \"test_123\", \"add_log_fn\": lambda *args: None, \"source\": \"test_plugin\"}\n# @TEST_EDGE: missing_task_id -> raises TypeError\n# @TEST_EDGE: invalid_add_log_fn -> raises TypeError\n# @TEST_INVARIANT: consistent_delegation -> verifies: [valid_task_logger]\nclass TaskLogger:\n \"\"\"\n A dedicated logger for tasks that automatically tags logs with source attribution.\n Usage:\n logger = TaskLogger(task_id=\"abc123\", add_log_fn=task_manager._add_log, source=\"plugin\")\n logger.info(\"Starting backup process\")\n logger.error(\"Failed to connect\", metadata={\"error_code\": 500})\n # Create sub-logger with different source\n api_logger = logger.with_source(\"superset_api\")\n api_logger.info(\"Fetching dashboards\")\n \"\"\"\n # #region __init__ [TYPE Function]\n # @PURPOSE: Initialize the TaskLogger with task context.\n # @PRE: add_log_fn is a callable that accepts (task_id, level, message, context, source, metadata).\n # @POST: TaskLogger is ready to log messages.\n # @PARAM: task_id (str) - The ID of the task.\n # @PARAM: add_log_fn (Callable) - Function to add log to TaskManager.\n # @PARAM: source (str) - Default source for logs (default: \"plugin\").\n def __init__(self, task_id: str, add_log_fn: Callable, source: str = \"plugin\"):\n self._task_id = task_id\n self._add_log = add_log_fn\n self._default_source = source\n # #endregion __init__\n # #region with_source [TYPE Function]\n # @PURPOSE: Create a sub-logger with a different default source.\n # @PRE: source is a non-empty string.\n # @POST: Returns new TaskLogger with the same task_id but different source.\n # @PARAM: source (str) - New default source.\n # @RETURN: TaskLogger - New logger instance.\n def with_source(self, source: str) -> \"TaskLogger\":\n \"\"\"Create a sub-logger with a different source context.\"\"\"\n return TaskLogger(\n task_id=self._task_id, add_log_fn=self._add_log, source=source\n )\n # #endregion with_source\n # #region _log [TYPE Function]\n # @PURPOSE: Internal method to log a message at a given level.\n # @PRE: level is a valid log level string.\n # @POST: Log entry added via add_log_fn.\n # @PARAM: level (str) - Log level (DEBUG, INFO, WARNING, ERROR).\n # @PARAM: message (str) - Log message.\n # @PARAM: source (Optional[str]) - Override source for this log entry.\n # @PARAM: metadata (Optional[Dict]) - Additional structured data.\n # @UX_STATE: Logging -> (writing internal log)\n def _log(\n self,\n level: str,\n message: str,\n source: str | None = None,\n metadata: dict[str, Any] | None = None,\n ) -> None:\n \"\"\"Internal logging method.\"\"\"\n self._add_log(\n task_id=self._task_id,\n level=level,\n message=message,\n source=source or self._default_source,\n metadata=metadata,\n )\n # #endregion _log\n # #region debug [TYPE Function]\n # @PURPOSE: Log a DEBUG level message.\n # @PRE: message is a string.\n # @POST: Log entry added via internally with DEBUG level.\n # @PARAM: message (str) - Log message.\n # @PARAM: source (Optional[str]) - Override source.\n # @PARAM: metadata (Optional[Dict]) - Additional data.\n def debug(\n self,\n message: str,\n source: str | None = None,\n metadata: dict[str, Any] | None = None,\n ) -> None:\n self._log(\"DEBUG\", message, source, metadata)\n # #endregion debug\n # #region info [TYPE Function]\n # @PURPOSE: Log an INFO level message.\n # @PRE: message is a string.\n # @POST: Log entry added internally with INFO level.\n # @PARAM: message (str) - Log message.\n # @PARAM: source (Optional[str]) - Override source.\n # @PARAM: metadata (Optional[Dict]) - Additional data.\n def info(\n self,\n message: str,\n source: str | None = None,\n metadata: dict[str, Any] | None = None,\n ) -> None:\n self._log(\"INFO\", message, source, metadata)\n # #endregion info\n # #region warning [TYPE Function]\n # @PURPOSE: Log a WARNING level message.\n # @PRE: message is a string.\n # @POST: Log entry added internally with WARNING level.\n # @PARAM: message (str) - Log message.\n # @PARAM: source (Optional[str]) - Override source.\n # @PARAM: metadata (Optional[Dict]) - Additional data.\n def warning(\n self,\n message: str,\n source: str | None = None,\n metadata: dict[str, Any] | None = None,\n ) -> None:\n self._log(\"WARNING\", message, source, metadata)\n # #endregion warning\n # #region error [TYPE Function]\n # @PURPOSE: Log an ERROR level message.\n # @PRE: message is a string.\n # @POST: Log entry added internally with ERROR level.\n # @PARAM: message (str) - Log message.\n # @PARAM: source (Optional[str]) - Override source.\n # @PARAM: metadata (Optional[Dict]) - Additional data.\n def error(\n self,\n message: str,\n source: str | None = None,\n metadata: dict[str, Any] | None = None,\n ) -> None:\n self._log(\"ERROR\", message, source, metadata)\n # #endregion error\n # #region progress [TYPE Function]\n # @PURPOSE: Log a progress update with percentage.\n # @PRE: percent is between 0 and 100.\n # @POST: Log entry with progress metadata added.\n # @PARAM: message (str) - Progress message.\n # @PARAM: percent (float) - Progress percentage (0-100).\n # @PARAM: source (Optional[str]) - Override source.\n def progress(\n self, message: str, percent: float, source: str | None = None\n ) -> None:\n \"\"\"Log a progress update with percentage.\"\"\"\n metadata = {\"progress\": min(100, max(0, percent))}\n self._log(\"INFO\", message, source, metadata)\n # #endregion progress\n# #endregion TaskLogger\n# #endregion TaskLoggerModule\n" @@ -38264,15 +35113,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_CONTRACT", @@ -38314,15 +35154,6 @@ "contract_type": "Class" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -38855,17 +35686,7 @@ "target_ref": "psycopg2" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetMapperModule [TYPE Module] [SEMANTICS dataset, superset, dataset-mapper]\n#\n# @BRIEF Этот модуль отвечает за обновление метаданных (verbose_map) в датасетах Superset, извлекая их из PostgreSQL или XLSX-файлов.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> backend.core.superset_client\n# @RELATION DEPENDS_ON -> pandas\n# @RELATION DEPENDS_ON -> psycopg2\n# @PUBLIC_API: DatasetMapper\nfrom typing import Any\n\nimport pandas as pd # type: ignore\nimport psycopg2 # type: ignore\n\nfrom ..logger import belief_scope\nfrom ..logger import logger as app_logger\n\n\n# #region DatasetMapper [TYPE Class]\n# @BRIEF Класс для меппинга и обновления verbose_map в датасетах Superset.\nclass DatasetMapper:\n # #region __init__ [TYPE Function]\n # @PURPOSE: Initializes the mapper.\n # @POST: Объект DatasetMapper инициализирован.\n def __init__(self):\n pass\n # #endregion __init__\n # #region get_postgres_comments [TYPE Function]\n # @PURPOSE: Извлекает комментарии к колонкам из системного каталога PostgreSQL.\n # @PRE: db_config должен содержать валидные параметры подключения (host, port, user, password, dbname).\n # @PRE: table_name и table_schema должны быть строками.\n # @POST: Возвращается словарь, где ключи - имена колонок, значения - комментарии из БД.\n # @THROW: Exception - При ошибках подключения или выполнения запроса к БД.\n # @PARAM: db_config (Dict) - Конфигурация для подключения к БД.\n # @PARAM: table_name (str) - Имя таблицы.\n # @PARAM: table_schema (str) - Схема таблицы.\n # @RETURN: Dict[str, str] - Словарь с комментариями к колонкам.\n def get_postgres_comments(self, db_config: dict, table_name: str, table_schema: str) -> dict[str, str]:\n with belief_scope(\"Fetch comments from PostgreSQL\"):\n app_logger.info(\"[get_postgres_comments][Enter] Fetching comments from PostgreSQL for %s.%s.\", table_schema, table_name)\n query = f\"\"\"\n SELECT \n cols.column_name,\n CASE \n WHEN pg_catalog.col_description(\n (SELECT c.oid \n FROM pg_catalog.pg_class c \n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace \n WHERE c.relname = cols.table_name \n AND n.nspname = cols.table_schema),\n cols.ordinal_position::int\n ) LIKE '%|%' THEN \n split_part(\n pg_catalog.col_description(\n (SELECT c.oid \n FROM pg_catalog.pg_class c \n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace \n WHERE c.relname = cols.table_name \n AND n.nspname = cols.table_schema),\n cols.ordinal_position::int\n ), \n '|', \n 1\n )\n ELSE \n pg_catalog.col_description(\n (SELECT c.oid \n FROM pg_catalog.pg_class c \n JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace \n WHERE c.relname = cols.table_name \n AND n.nspname = cols.table_schema),\n cols.ordinal_position::int\n )\n END AS column_comment\n FROM \n information_schema.columns cols \n WHERE cols.table_catalog = '{db_config.get('dbname')}' AND cols.table_name = '{table_name}' AND cols.table_schema = '{table_schema}';\n \"\"\"\n comments = {}\n try:\n with psycopg2.connect(**db_config) as conn, conn.cursor() as cursor:\n cursor.execute(query)\n for row in cursor.fetchall():\n if row[1]:\n comments[row[0]] = row[1]\n app_logger.info(\"[get_postgres_comments][Success] Fetched %d comments.\", len(comments))\n except Exception as e:\n app_logger.error(\"[get_postgres_comments][Failure] %s\", e, exc_info=True)\n raise\n return comments\n # #endregion get_postgres_comments\n # #region load_excel_mappings [TYPE Function]\n # @PURPOSE: Загружает меппинги 'column_name' -> 'column_comment' из XLSX файла.\n # @PRE: file_path должен указывать на существующий XLSX файл.\n # @POST: Возвращается словарь с меппингами из файла.\n # @THROW: Exception - При ошибках чтения файла или парсинга.\n # @PARAM: file_path (str) - Путь к XLSX файлу.\n # @RETURN: Dict[str, str] - Словарь с меппингами.\n def load_excel_mappings(self, file_path: str) -> dict[str, str]:\n with belief_scope(\"Load mappings from Excel\"):\n app_logger.info(\"[load_excel_mappings][Enter] Loading mappings from %s.\", file_path)\n try:\n df = pd.read_excel(file_path)\n mappings = df.set_index('column_name')['verbose_name'].to_dict()\n app_logger.info(\"[load_excel_mappings][Success] Loaded %d mappings.\", len(mappings))\n return mappings\n except Exception as e:\n app_logger.error(\"[load_excel_mappings][Failure] %s\", e, exc_info=True)\n raise\n # #endregion load_excel_mappings\n # #region run_mapping [TYPE Function]\n # @PURPOSE: Основная функция для выполнения меппинга и обновления verbose_map датасета в Superset.\n # @PRE: superset_client должен быть авторизован.\n # @PRE: dataset_id должен быть существующим ID в Superset.\n # @POST: Если найдены изменения, датасет в Superset обновлен через API.\n # @RELATION: CALLS -> self.get_postgres_comments\n # @RELATION: CALLS -> self.load_excel_mappings\n # @RELATION: CALLS -> superset_client.get_dataset\n # @RELATION: CALLS -> superset_client.update_dataset\n # @PARAM: superset_client (Any) - Клиент Superset.\n # @PARAM: dataset_id (int) - ID датасета для обновления.\n # @PARAM: source (str) - Источник данных ('postgres', 'excel', 'both').\n # @PARAM: postgres_config (Optional[Dict]) - Конфигурация для подключения к PostgreSQL.\n # @PARAM: excel_path (Optional[str]) - Путь к XLSX файлу.\n # @PARAM: table_name (Optional[str]) - Имя таблицы в PostgreSQL.\n # @PARAM: table_schema (Optional[str]) - Схема таблицы в PostgreSQL.\n def run_mapping(self, superset_client: Any, dataset_id: int, source: str, postgres_config: dict | None = None, excel_path: str | None = None, table_name: str | None = None, table_schema: str | None = None):\n with belief_scope(f\"Run dataset mapping for ID {dataset_id}\"):\n app_logger.info(\"[run_mapping][Enter] Starting dataset mapping for ID %d from source '%s'.\", dataset_id, source)\n mappings: dict[str, str] = {}\n\n try:\n if source in ['postgres', 'both']:\n assert postgres_config and table_name and table_schema, \"Postgres config is required.\"\n mappings.update(self.get_postgres_comments(postgres_config, table_name, table_schema))\n if source in ['excel', 'both']:\n assert excel_path, \"Excel path is required.\"\n mappings.update(self.load_excel_mappings(excel_path))\n if source not in ['postgres', 'excel', 'both']:\n app_logger.error(\"[run_mapping][Failure] Invalid source: %s.\", source)\n return\n dataset_response = superset_client.get_dataset(dataset_id)\n dataset_data = dataset_response['result']\n\n original_columns = dataset_data.get('columns', [])\n updated_columns = []\n changes_made = False\n for column in original_columns:\n col_name = column.get('column_name')\n\n new_column = {\n \"column_name\": col_name,\n \"id\": column.get(\"id\"),\n \"advanced_data_type\": column.get(\"advanced_data_type\"),\n \"description\": column.get(\"description\"),\n \"expression\": column.get(\"expression\"),\n \"extra\": column.get(\"extra\"),\n \"filterable\": column.get(\"filterable\"),\n \"groupby\": column.get(\"groupby\"),\n \"is_active\": column.get(\"is_active\"),\n \"is_dttm\": column.get(\"is_dttm\"),\n \"python_date_format\": column.get(\"python_date_format\"),\n \"type\": column.get(\"type\"),\n \"uuid\": column.get(\"uuid\"),\n \"verbose_name\": column.get(\"verbose_name\"),\n }\n\n new_column = {k: v for k, v in new_column.items() if v is not None}\n if col_name in mappings:\n mapping_value = mappings[col_name]\n if isinstance(mapping_value, str) and new_column.get('verbose_name') != mapping_value:\n new_column['verbose_name'] = mapping_value\n changes_made = True\n\n updated_columns.append(new_column)\n updated_metrics = []\n for metric in dataset_data.get(\"metrics\", []):\n new_metric = {\n \"id\": metric.get(\"id\"),\n \"metric_name\": metric.get(\"metric_name\"),\n \"expression\": metric.get(\"expression\"),\n \"verbose_name\": metric.get(\"verbose_name\"),\n \"description\": metric.get(\"description\"),\n \"d3format\": metric.get(\"d3format\"),\n \"currency\": metric.get(\"currency\"),\n \"extra\": metric.get(\"extra\"),\n \"warning_text\": metric.get(\"warning_text\"),\n \"metric_type\": metric.get(\"metric_type\"),\n \"uuid\": metric.get(\"uuid\"),\n }\n updated_metrics.append({k: v for k, v in new_metric.items() if v is not None})\n if changes_made:\n payload_for_update = {\n \"database_id\": dataset_data.get(\"database\", {}).get(\"id\"),\n \"table_name\": dataset_data.get(\"table_name\"),\n \"schema\": dataset_data.get(\"schema\"),\n \"columns\": updated_columns,\n \"owners\": [owner[\"id\"] for owner in dataset_data.get(\"owners\", [])],\n \"metrics\": updated_metrics,\n \"extra\": dataset_data.get(\"extra\"),\n \"description\": dataset_data.get(\"description\"),\n \"sql\": dataset_data.get(\"sql\"),\n \"cache_timeout\": dataset_data.get(\"cache_timeout\"),\n \"catalog\": dataset_data.get(\"catalog\"),\n \"default_endpoint\": dataset_data.get(\"default_endpoint\"),\n \"external_url\": dataset_data.get(\"external_url\"),\n \"fetch_values_predicate\": dataset_data.get(\"fetch_values_predicate\"),\n \"filter_select_enabled\": dataset_data.get(\"filter_select_enabled\"),\n \"is_managed_externally\": dataset_data.get(\"is_managed_externally\"),\n \"is_sqllab_view\": dataset_data.get(\"is_sqllab_view\"),\n \"main_dttm_col\": dataset_data.get(\"main_dttm_col\"),\n \"normalize_columns\": dataset_data.get(\"normalize_columns\"),\n \"offset\": dataset_data.get(\"offset\"),\n \"template_params\": dataset_data.get(\"template_params\"),\n }\n\n payload_for_update = {k: v for k, v in payload_for_update.items() if v is not None}\n superset_client.update_dataset(dataset_id, payload_for_update)\n app_logger.info(\"[run_mapping][Success] Dataset %d columns' verbose_name updated.\", dataset_id)\n else:\n app_logger.info(\"[run_mapping][State] No changes in columns' verbose_name, skipping update.\")\n except (AssertionError, FileNotFoundError, Exception) as e:\n app_logger.error(\"[run_mapping][Failure] %s\", e, exc_info=True)\n return\n # #endregion run_mapping\n# #endregion DatasetMapper\n# #endregion DatasetMapperModule\n" @@ -39069,15 +35890,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -39139,15 +35951,6 @@ ], "value": "STANDARD" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -39420,15 +36223,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -39550,15 +36344,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -39814,26 +36599,7 @@ "target_ref": "rapidfuzz" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region FuzzyMatching [TYPE Module] [SEMANTICS fuzzy, matching, rapidfuzz, database, mapping]\n#\n# @BRIEF Provides utility functions for fuzzy matching database names.\n# @LAYER: Core\n# @RELATION DEPENDS_ON -> rapidfuzz\n#\n# @INVARIANT: Confidence scores are returned as floats between 0.0 and 1.0.\n\n\nfrom rapidfuzz import fuzz, process\n\n\n# #region suggest_mappings [TYPE Function]\n# @BRIEF Suggests mappings between source and target databases using fuzzy matching.\n# @PRE: source_databases and target_databases are lists of dictionaries with 'uuid' and 'database_name'.\n# @POST: Returns a list of suggested mappings with confidence scores.\ndef suggest_mappings(source_databases: list[dict], target_databases: list[dict], threshold: int = 60) -> list[dict]:\n \"\"\"\n Suggest mappings between source and target databases using fuzzy matching.\n \"\"\"\n suggestions = []\n if not target_databases:\n return suggestions\n\n target_names = [db['database_name'] for db in target_databases]\n\n for s_db in source_databases:\n # Use token_sort_ratio as decided in research.md\n match = process.extractOne(\n s_db['database_name'],\n target_names,\n scorer=fuzz.token_sort_ratio\n )\n\n if match:\n name, score, index = match\n if score >= threshold:\n suggestions.append({\n \"source_db\": s_db['database_name'],\n \"target_db\": target_databases[index]['database_name'],\n \"source_db_uuid\": s_db['uuid'],\n \"target_db_uuid\": target_databases[index]['uuid'],\n \"confidence\": score / 100.0\n })\n\n return suggestions\n# #endregion suggest_mappings\n\n# #endregion FuzzyMatching\n" @@ -40358,15 +37124,6 @@ "message": "@THROW is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -40882,15 +37639,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -41004,15 +37752,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -41132,15 +37871,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -42396,17 +39126,7 @@ "target_ref": "[CleanReleaseModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestCleanReleaseModels [TYPE Module] [SEMANTICS test, clean-release, model, contract]\n# @RELATION VERIFIES -> [CleanReleaseModels]\n# @BRIEF Contract testing for Clean Release models\n# #endregion TestCleanReleaseModels\n" @@ -42430,17 +39150,7 @@ "target_ref": "[TestCleanReleaseModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_release_candidate_valid [TYPE Function]\n# @RELATION BINDS_TO -> [TestCleanReleaseModels]\n# @BRIEF Verify that a valid release candidate can be instantiated.\ndef test_release_candidate_valid(valid_candidate_data):\n rc = ReleaseCandidate(**valid_candidate_data)\n assert rc.candidate_id == \"RC-001\"\n assert rc.status == ReleaseCandidateStatus.DRAFT\n# #endregion test_release_candidate_valid\n" @@ -42485,15 +39195,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -42520,17 +39221,7 @@ "target_ref": "[TestCleanReleaseModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_enterprise_policy_valid [TYPE Function]\n# @RELATION BINDS_TO -> [TestCleanReleaseModels]\n# @BRIEF Verify that a valid enterprise policy is accepted.\ndef test_enterprise_policy_valid(valid_policy_data):\n policy = CleanProfilePolicy(**valid_policy_data)\n assert policy.external_source_forbidden is True\n# @TEST_EDGE: enterprise_policy_missing_prohibited\n# #endregion test_enterprise_policy_valid\n" @@ -42555,17 +39246,7 @@ "target_ref": "[TestCleanReleaseModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_enterprise_policy_missing_prohibited [TYPE Function]\n# @RELATION BINDS_TO -> [TestCleanReleaseModels]\n# @BRIEF Verify that an enterprise policy without prohibited categories is rejected.\ndef test_enterprise_policy_missing_prohibited(valid_policy_data):\n valid_policy_data[\"prohibited_artifact_categories\"] = []\n with pytest.raises(\n ValueError,\n match=\"enterprise-clean policy requires prohibited_artifact_categories\",\n ):\n CleanProfilePolicy(**valid_policy_data)\n# @TEST_EDGE: enterprise_policy_external_allowed\n# #endregion test_enterprise_policy_missing_prohibited\n" @@ -42591,17 +39272,7 @@ "target_ref": "[TestCleanReleaseModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_enterprise_policy_external_allowed [TYPE Function]\n# @RELATION BINDS_TO -> [TestCleanReleaseModels]\n# @BRIEF Verify that an enterprise policy allowing external sources is rejected.\ndef test_enterprise_policy_external_allowed(valid_policy_data):\n valid_policy_data[\"external_source_forbidden\"] = False\n with pytest.raises(\n ValueError,\n match=\"enterprise-clean policy requires external_source_forbidden=true\",\n ):\n CleanProfilePolicy(**valid_policy_data)\n# @TEST_INVARIANT: manifest_consistency\n# @TEST_EDGE: manifest_count_mismatch\n# #endregion test_enterprise_policy_external_allowed\n" @@ -42625,17 +39296,7 @@ "target_ref": "[TestCleanReleaseModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_manifest_count_mismatch [TYPE Function]\n# @RELATION BINDS_TO -> [TestCleanReleaseModels]\n# @BRIEF Verify that a manifest with count mismatches is rejected.\ndef test_manifest_count_mismatch():\n summary = ManifestSummary(\n included_count=1, excluded_count=0, prohibited_detected_count=0\n )\n item = ManifestItem(\n path=\"p\", category=\"c\", classification=ClassificationType.ALLOWED, reason=\"r\"\n )\n # Valid\n DistributionManifest(\n manifest_id=\"m1\",\n candidate_id=\"rc1\",\n policy_id=\"p1\",\n generated_at=datetime.now(),\n generated_by=\"u\",\n items=[item],\n summary=summary,\n deterministic_hash=\"h\",\n )\n # Invalid count\n summary.included_count = 2\n with pytest.raises(\n ValueError, match=\"manifest summary counts must match items size\"\n ):\n DistributionManifest(\n manifest_id=\"m1\",\n candidate_id=\"rc1\",\n policy_id=\"p1\",\n generated_at=datetime.now(),\n generated_by=\"u\",\n items=[item],\n summary=summary,\n deterministic_hash=\"h\",\n )\n# @TEST_INVARIANT: run_integrity\n# @TEST_EDGE: compliant_run_stage_fail\n# #endregion test_manifest_count_mismatch\n" @@ -42659,17 +39320,7 @@ "target_ref": "[TestCleanReleaseModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_compliant_run_validation [TYPE Function]\n# @RELATION BINDS_TO -> [TestCleanReleaseModels]\n# @BRIEF Verify compliant run validation logic and mandatory stage checks.\ndef test_compliant_run_validation():\n base_run = {\n \"check_run_id\": \"run1\",\n \"candidate_id\": \"rc1\",\n \"policy_id\": \"p1\",\n \"started_at\": datetime.now(),\n \"triggered_by\": \"u\",\n \"execution_mode\": ExecutionMode.TUI,\n \"final_status\": CheckFinalStatus.COMPLIANT,\n \"checks\": [\n CheckStageResult(\n stage=CheckStageName.DATA_PURITY, status=CheckStageStatus.PASS\n ),\n CheckStageResult(\n stage=CheckStageName.INTERNAL_SOURCES_ONLY, status=CheckStageStatus.PASS\n ),\n CheckStageResult(\n stage=CheckStageName.NO_EXTERNAL_ENDPOINTS, status=CheckStageStatus.PASS\n ),\n CheckStageResult(\n stage=CheckStageName.MANIFEST_CONSISTENCY, status=CheckStageStatus.PASS\n ),\n ],\n }\n # Valid\n ComplianceCheckRun(**base_run)\n # One stage fails -> cannot be COMPLIANT\n base_run[\"checks\"][0].status = CheckStageStatus.FAIL\n with pytest.raises(\n ValueError, match=\"compliant run requires PASS on all mandatory stages\"\n ):\n ComplianceCheckRun(**base_run)\n # Missing stage -> cannot be COMPLIANT\n base_run[\"checks\"] = base_run[\"checks\"][1:]\n with pytest.raises(ValueError, match=\"compliant run requires all mandatory stages\"):\n ComplianceCheckRun(**base_run)\n# #endregion test_compliant_run_validation\n" @@ -42693,17 +39344,7 @@ "target_ref": "[TestCleanReleaseModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_report_validation [TYPE Function]\n# @RELATION BINDS_TO -> [TestCleanReleaseModels]\n# @BRIEF Verify compliance report validation based on status and violation counts.\ndef test_report_validation():\n # Valid blocked report\n ComplianceReport(\n report_id=\"rep1\",\n check_run_id=\"run1\",\n candidate_id=\"rc1\",\n generated_at=datetime.now(),\n final_status=CheckFinalStatus.BLOCKED,\n operator_summary=\"Blocked\",\n structured_payload_ref=\"ref\",\n violations_count=2,\n blocking_violations_count=2,\n )\n # BLOCKED with 0 blocking violations\n with pytest.raises(ValueError, match=\"blocked report requires blocking violations\"):\n ComplianceReport(\n report_id=\"rep1\",\n check_run_id=\"run1\",\n candidate_id=\"rc1\",\n generated_at=datetime.now(),\n final_status=CheckFinalStatus.BLOCKED,\n operator_summary=\"Blocked\",\n structured_payload_ref=\"ref\",\n violations_count=2,\n blocking_violations_count=0,\n )\n# #endregion test_report_validation\n" @@ -42747,15 +39388,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -42796,15 +39428,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "SIDE_EFFECT", @@ -43352,15 +39975,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -43695,17 +40309,7 @@ "PURPOSE": "Immutable snapshot of the candidate payload." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DistributionManifest [TYPE Class]\n# @BRIEF Immutable snapshot of the candidate payload.\n# @INVARIANT: Immutable after creation.\nclass DistributionManifest(Base):\n __tablename__ = \"clean_release_manifests\"\n\n id = Column(String, primary_key=True)\n candidate_id = Column(String, ForeignKey(\"clean_release_candidates.id\"), nullable=False)\n manifest_version = Column(Integer, nullable=False)\n manifest_digest = Column(String, nullable=False)\n artifacts_digest = Column(String, nullable=False)\n created_at = Column(DateTime, default=datetime.utcnow)\n created_by = Column(String, nullable=False)\n source_snapshot_ref = Column(String, nullable=False)\n content_json = Column(JSON, nullable=False)\n immutable = Column(Boolean, default=True)\n\n # Redesign compatibility fields (not persisted directly but used by builder/facade)\n def __init__(self, **kwargs):\n items = kwargs.pop(\"items\", None)\n summary = kwargs.pop(\"summary\", None)\n\n # Handle fields from manifest_builder.py\n if \"manifest_id\" in kwargs:\n kwargs[\"id\"] = kwargs.pop(\"manifest_id\")\n if \"generated_at\" in kwargs:\n kwargs[\"created_at\"] = kwargs.pop(\"generated_at\")\n if \"generated_by\" in kwargs:\n kwargs[\"created_by\"] = kwargs.pop(\"generated_by\")\n if \"deterministic_hash\" in kwargs:\n kwargs[\"manifest_digest\"] = kwargs.pop(\"deterministic_hash\")\n if \"policy_id\" in kwargs:\n kwargs.pop(\"policy_id\")\n\n if items is not None and summary is not None:\n expected_count = int(summary.included_count) + int(summary.excluded_count)\n if expected_count != len(items):\n raise ValueError(\"manifest summary counts must match items size\")\n\n # Ensure required DB fields have defaults if missing\n if \"manifest_version\" not in kwargs:\n kwargs[\"manifest_version\"] = 1\n if \"artifacts_digest\" not in kwargs:\n kwargs[\"artifacts_digest\"] = kwargs.get(\"manifest_digest\", \"pending\")\n if \"source_snapshot_ref\" not in kwargs:\n kwargs[\"source_snapshot_ref\"] = \"pending\"\n\n # Pack items and summary into content_json if provided\n if items is not None or summary is not None:\n content = dict(kwargs.get(\"content_json\") or {})\n if items is not None:\n content[\"items\"] = [\n {\n \"path\": i.path,\n \"category\": i.category,\n \"classification\": i.classification.value,\n \"reason\": i.reason,\n \"checksum\": i.checksum\n } for i in items\n ]\n if summary is not None:\n content[\"summary\"] = {\n \"included_count\": summary.included_count,\n \"excluded_count\": summary.excluded_count,\n \"prohibited_detected_count\": summary.prohibited_detected_count\n }\n kwargs[\"content_json\"] = content\n\n super().__init__(**kwargs)\n\n @property\n def manifest_id(self) -> str:\n return self.id\n\n @property\n def deterministic_hash(self) -> str:\n return self.manifest_digest\n\n @property\n def summary(self) -> ManifestSummary:\n payload = (self.content_json or {}).get(\"summary\", {})\n return ManifestSummary(\n included_count=int(payload.get(\"included_count\", 0)),\n excluded_count=int(payload.get(\"excluded_count\", 0)),\n prohibited_detected_count=int(payload.get(\"prohibited_detected_count\", 0)),\n )\n# #endregion DistributionManifest\n" @@ -43842,17 +40446,7 @@ "PURPOSE": "Immutable result derived from a completed run." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ComplianceReport [TYPE Class]\n# @BRIEF Immutable result derived from a completed run.\n# @INVARIANT: Immutable after creation.\nclass ComplianceReport(Base):\n __tablename__ = \"clean_release_compliance_reports\"\n\n id = Column(String, primary_key=True)\n run_id = Column(String, ForeignKey(\"clean_release_compliance_runs.id\"), nullable=False)\n candidate_id = Column(String, ForeignKey(\"clean_release_candidates.id\"), nullable=False)\n final_status = Column(String, nullable=False) # ComplianceDecision\n summary_json = Column(JSON, nullable=False)\n generated_at = Column(DateTime, default=datetime.utcnow)\n immutable = Column(Boolean, default=True)\n\n def __init__(self, **kwargs):\n if \"report_id\" in kwargs:\n kwargs[\"id\"] = kwargs.pop(\"report_id\")\n if \"check_run_id\" in kwargs:\n kwargs[\"run_id\"] = kwargs.pop(\"check_run_id\")\n operator_summary = kwargs.pop(\"operator_summary\", None)\n structured_payload_ref = kwargs.pop(\"structured_payload_ref\", None)\n violations_count = kwargs.pop(\"violations_count\", None)\n blocking_violations_count = kwargs.pop(\"blocking_violations_count\", None)\n\n final_status = kwargs.get(\"final_status\")\n final_status_value = getattr(final_status, \"value\", final_status)\n\n if (\n final_status_value in {CheckFinalStatus.BLOCKED.value, ComplianceDecision.BLOCKED.value}\n and blocking_violations_count is not None\n and int(blocking_violations_count) <= 0\n ):\n raise ValueError(\"blocked report requires blocking violations\")\n\n if (\n operator_summary is not None\n or structured_payload_ref is not None\n or violations_count is not None\n or blocking_violations_count is not None\n ):\n kwargs[\"summary_json\"] = {\n \"operator_summary\": operator_summary or \"\",\n \"structured_payload_ref\": structured_payload_ref,\n \"violations_count\": int(violations_count or 0),\n \"blocking_violations_count\": int(blocking_violations_count or 0),\n }\n\n super().__init__(**kwargs)\n\n @property\n def report_id(self) -> str:\n return self.id\n\n @property\n def check_run_id(self) -> str:\n return self.run_id\n\n @property\n def operator_summary(self) -> str:\n return (self.summary_json or {}).get(\"operator_summary\", \"\")\n\n @property\n def structured_payload_ref(self) -> str | None:\n return (self.summary_json or {}).get(\"structured_payload_ref\")\n\n @property\n def violations_count(self) -> int:\n return int((self.summary_json or {}).get(\"violations_count\", 0))\n\n @property\n def blocking_violations_count(self) -> int:\n return int((self.summary_json or {}).get(\"blocking_violations_count\", 0))\n# #endregion ComplianceReport\n" @@ -44046,26 +40640,7 @@ "target_ref": "sqlalchemy" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ConnectionModels [C:1] [TYPE Module] [SEMANTICS sqlalchemy, connection, model, schema, connection-config]\n#\n# @BRIEF Defines the database schema for external database connection configurations.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> sqlalchemy\n#\n# @INVARIANT: All primary keys are UUID strings.\n\nimport uuid\n\nfrom sqlalchemy import Column, DateTime, Integer, String\nfrom sqlalchemy.sql import func\n\nfrom .mapping import Base\n\n\n# #region ConnectionConfig [C:1] [TYPE Class]\n# @BRIEF Stores credentials for external databases used for column mapping.\nclass ConnectionConfig(Base):\n __tablename__ = \"connection_configs\"\n\n id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n name = Column(String, nullable=False)\n type = Column(String, nullable=False) # e.g., \"postgres\"\n host = Column(String, nullable=True)\n port = Column(Integer, nullable=True)\n database = Column(String, nullable=True)\n username = Column(String, nullable=True)\n password = Column(String, nullable=True) # Encrypted/Obfuscated password\n created_at = Column(DateTime(timezone=True), server_default=func.now())\n updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())\n# #endregion ConnectionConfig\n\n# #endregion ConnectionModels\n" @@ -44261,24 +40836,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -44497,15 +41054,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -44558,17 +41106,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ClarificationSession [C:2] [TYPE Class]\n# @BRIEF One clarification session aggregate owning questions and tracking resolution progress.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass ClarificationSession(Base):\n __tablename__ = \"clarification_sessions\"\n\n clarification_session_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False)\n status = Column(SQLEnum(ClarificationStatus), nullable=False, default=ClarificationStatus.PENDING)\n current_question_id = Column(String, nullable=True)\n resolved_count = Column(Integer, nullable=False, default=0)\n remaining_count = Column(Integer, nullable=False, default=0)\n summary_delta = Column(Text, nullable=True)\n started_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)\n completed_at = Column(DateTime, nullable=True)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"clarification_sessions\")\n questions = relationship(\"ClarificationQuestion\", back_populates=\"clarification_session\", cascade=\"all, delete-orphan\")\n\n\n# #endregion ClarificationSession\n" @@ -44593,17 +41131,7 @@ "target_ref": "[ClarificationSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ClarificationQuestion [C:2] [TYPE Class]\n# @BRIEF One clarification question with priority ordering, options, and state machine.\n# @RELATION DEPENDS_ON -> [ClarificationSession]\nclass ClarificationQuestion(Base):\n __tablename__ = \"clarification_questions\"\n\n question_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n clarification_session_id = Column(String, ForeignKey(\"clarification_sessions.clarification_session_id\"), nullable=False)\n topic_ref = Column(String, nullable=False)\n question_text = Column(Text, nullable=False)\n why_it_matters = Column(Text, nullable=False)\n current_guess = Column(Text, nullable=True)\n priority = Column(Integer, nullable=False, default=0)\n state = Column(SQLEnum(QuestionState), nullable=False, default=QuestionState.OPEN)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)\n\n clarification_session = relationship(\"ClarificationSession\", back_populates=\"questions\")\n options = relationship(\"ClarificationOption\", back_populates=\"question\", cascade=\"all, delete-orphan\")\n answer = relationship(\"ClarificationAnswer\", back_populates=\"question\", uselist=False, cascade=\"all, delete-orphan\")\n\n\n# #endregion ClarificationQuestion\n" @@ -44628,17 +41156,7 @@ "target_ref": "[ClarificationQuestion]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ClarificationOption [C:1] [TYPE Class]\n# @BRIEF One selectable option for a clarification question with recommendation flag.\n# @RELATION DEPENDS_ON -> [ClarificationQuestion]\nclass ClarificationOption(Base):\n __tablename__ = \"clarification_options\"\n\n option_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n question_id = Column(String, ForeignKey(\"clarification_questions.question_id\"), nullable=False)\n label = Column(String, nullable=False)\n value = Column(String, nullable=False)\n is_recommended = Column(Boolean, nullable=False, default=False)\n display_order = Column(Integer, nullable=False, default=0)\n\n question = relationship(\"ClarificationQuestion\", back_populates=\"options\")\n\n\n# #endregion ClarificationOption\n" @@ -44663,17 +41181,7 @@ "target_ref": "[ClarificationQuestion]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ClarificationAnswer [C:2] [TYPE Class]\n# @BRIEF One persisted clarification answer with impact summary and feedback tracking.\n# @RELATION DEPENDS_ON -> [ClarificationQuestion]\nclass ClarificationAnswer(Base):\n __tablename__ = \"clarification_answers\"\n\n answer_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n question_id = Column(String, ForeignKey(\"clarification_questions.question_id\"), nullable=False, unique=True)\n answer_kind = Column(SQLEnum(AnswerKind), nullable=False)\n answer_value = Column(Text, nullable=True)\n answered_by_user_id = Column(String, nullable=False)\n impact_summary = Column(Text, nullable=True)\n user_feedback = Column(Text, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n\n question = relationship(\"ClarificationQuestion\", back_populates=\"answer\")\n\n\n# #endregion ClarificationAnswer\n" @@ -44693,17 +41201,7 @@ "PURPOSE": "All enumeration types for the dataset review domain, grouped for stable cross-module reuse." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetReviewEnums [C:2] [TYPE Module] [SEMANTICS enum, dataset, review, model, domain]\n# @BRIEF All enumeration types for the dataset review domain, grouped for stable cross-module reuse.\n# @LAYER: Domain\n# @INVARIANT: Enum values are string-based for JSON serialization compatibility.\n\nimport enum\n\n\n# #region SessionStatus [C:1] [TYPE Class]\n# @BRIEF Lifecycle status of a dataset review session.\nclass SessionStatus(str, enum.Enum):\n ACTIVE = \"active\"\n PAUSED = \"paused\"\n COMPLETED = \"completed\"\n ARCHIVED = \"archived\"\n CANCELLED = \"cancelled\"\n\n\n# #endregion SessionStatus\n\n\n# #region SessionPhase [C:1] [TYPE Class]\n# @BRIEF Ordered phase progression for dataset review orchestration.\nclass SessionPhase(str, enum.Enum):\n INTAKE = \"intake\"\n RECOVERY = \"recovery\"\n REVIEW = \"review\"\n SEMANTIC_REVIEW = \"semantic_review\"\n CLARIFICATION = \"clarification\"\n MAPPING_REVIEW = \"mapping_review\"\n PREVIEW = \"preview\"\n LAUNCH = \"launch\"\n POST_RUN = \"post_run\"\n\n\n# #endregion SessionPhase\n\n\n# #region ReadinessState [C:1] [TYPE Class]\n# @BRIEF Granular readiness indicator driving the recommended-action UX flow.\nclass ReadinessState(str, enum.Enum):\n EMPTY = \"empty\"\n IMPORTING = \"importing\"\n REVIEW_READY = \"review_ready\"\n SEMANTIC_SOURCE_REVIEW_NEEDED = \"semantic_source_review_needed\"\n CLARIFICATION_NEEDED = \"clarification_needed\"\n CLARIFICATION_ACTIVE = \"clarification_active\"\n MAPPING_REVIEW_NEEDED = \"mapping_review_needed\"\n COMPILED_PREVIEW_READY = \"compiled_preview_ready\"\n PARTIALLY_READY = \"partially_ready\"\n RUN_READY = \"run_ready\"\n RUN_IN_PROGRESS = \"run_in_progress\"\n COMPLETED = \"completed\"\n RECOVERY_REQUIRED = \"recovery_required\"\n\n\n# #endregion ReadinessState\n\n\n# #region RecommendedAction [C:1] [TYPE Class]\n# @BRIEF Next-action guidance derived from the current readiness state.\nclass RecommendedAction(str, enum.Enum):\n IMPORT_FROM_SUPERSET = \"import_from_superset\"\n REVIEW_DOCUMENTATION = \"review_documentation\"\n APPLY_SEMANTIC_SOURCE = \"apply_semantic_source\"\n START_CLARIFICATION = \"start_clarification\"\n ANSWER_NEXT_QUESTION = \"answer_next_question\"\n APPROVE_MAPPING = \"approve_mapping\"\n GENERATE_SQL_PREVIEW = \"generate_sql_preview\"\n COMPLETE_REQUIRED_VALUES = \"complete_required_values\"\n LAUNCH_DATASET = \"launch_dataset\"\n RESUME_SESSION = \"resume_session\"\n EXPORT_OUTPUTS = \"export_outputs\"\n\n\n# #endregion RecommendedAction\n\n\n# #region SessionCollaboratorRole [C:1] [TYPE Class]\n# @BRIEF RBAC role for session collaborators.\nclass SessionCollaboratorRole(str, enum.Enum):\n VIEWER = \"viewer\"\n REVIEWER = \"reviewer\"\n APPROVER = \"approver\"\n\n\n# #endregion SessionCollaboratorRole\n\n\n# #region BusinessSummarySource [C:1] [TYPE Class]\n# @BRIEF Provenance of the dataset business summary text.\nclass BusinessSummarySource(str, enum.Enum):\n CONFIRMED = \"confirmed\"\n IMPORTED = \"imported\"\n INFERRED = \"inferred\"\n AI_DRAFT = \"ai_draft\"\n MANUAL_OVERRIDE = \"manual_override\"\n\n\n# #endregion BusinessSummarySource\n\n\n# #region ConfidenceState [C:1] [TYPE Class]\n# @BRIEF Confidence level for dataset profile completeness.\nclass ConfidenceState(str, enum.Enum):\n CONFIRMED = \"confirmed\"\n MOSTLY_CONFIRMED = \"mostly_confirmed\"\n MIXED = \"mixed\"\n LOW_CONFIDENCE = \"low_confidence\"\n UNRESOLVED = \"unresolved\"\n\n\n# #endregion ConfidenceState\n\n\n# #region FindingArea [C:1] [TYPE Class]\n# @BRIEF Domain area classification for validation findings.\nclass FindingArea(str, enum.Enum):\n SOURCE_INTAKE = \"source_intake\"\n DATASET_PROFILE = \"dataset_profile\"\n SEMANTIC_ENRICHMENT = \"semantic_enrichment\"\n CLARIFICATION = \"clarification\"\n FILTER_RECOVERY = \"filter_recovery\"\n TEMPLATE_MAPPING = \"template_mapping\"\n COMPILED_PREVIEW = \"compiled_preview\"\n LAUNCH = \"launch\"\n AUDIT = \"audit\"\n\n\n# #endregion FindingArea\n\n\n# #region FindingSeverity [C:1] [TYPE Class]\n# @BRIEF Severity classification for validation findings.\nclass FindingSeverity(str, enum.Enum):\n BLOCKING = \"blocking\"\n WARNING = \"warning\"\n INFORMATIONAL = \"informational\"\n\n\n# #endregion FindingSeverity\n\n\n# #region ResolutionState [C:1] [TYPE Class]\n# @BRIEF Resolution status for validation findings and clarification items.\nclass ResolutionState(str, enum.Enum):\n OPEN = \"open\"\n RESOLVED = \"resolved\"\n APPROVED = \"approved\"\n SKIPPED = \"skipped\"\n DEFERRED = \"deferred\"\n EXPERT_REVIEW = \"expert_review\"\n\n\n# #endregion ResolutionState\n\n\n# #region SemanticSourceType [C:1] [TYPE Class]\n# @BRIEF Classification of semantic enrichment source origins.\nclass SemanticSourceType(str, enum.Enum):\n UPLOADED_FILE = \"uploaded_file\"\n CONNECTED_DICTIONARY = \"connected_dictionary\"\n REFERENCE_DATASET = \"reference_dataset\"\n NEIGHBOR_DATASET = \"neighbor_dataset\"\n AI_GENERATED = \"ai_generated\"\n\n\n# #endregion SemanticSourceType\n\n\n# #region TrustLevel [C:1] [TYPE Class]\n# @BRIEF Trust classification for semantic source reliability.\nclass TrustLevel(str, enum.Enum):\n TRUSTED = \"trusted\"\n RECOMMENDED = \"recommended\"\n CANDIDATE = \"candidate\"\n GENERATED = \"generated\"\n\n\n# #endregion TrustLevel\n\n\n# #region SemanticSourceStatus [C:1] [TYPE Class]\n# @BRIEF Lifecycle status for semantic source application.\nclass SemanticSourceStatus(str, enum.Enum):\n AVAILABLE = \"available\"\n SELECTED = \"selected\"\n APPLIED = \"applied\"\n REJECTED = \"rejected\"\n PARTIAL = \"partial\"\n FAILED = \"failed\"\n\n\n# #endregion SemanticSourceStatus\n\n\n# #region FieldKind [C:1] [TYPE Class]\n# @BRIEF Kind classification for semantic field entries.\nclass FieldKind(str, enum.Enum):\n COLUMN = \"column\"\n METRIC = \"metric\"\n FILTER_DIMENSION = \"filter_dimension\"\n PARAMETER = \"parameter\"\n\n\n# #endregion FieldKind\n\n\n# #region FieldProvenance [C:1] [TYPE Class]\n# @BRIEF Provenance tracking for semantic field value origin.\nclass FieldProvenance(str, enum.Enum):\n DICTIONARY_EXACT = \"dictionary_exact\"\n REFERENCE_IMPORTED = \"reference_imported\"\n FUZZY_INFERRED = \"fuzzy_inferred\"\n AI_GENERATED = \"ai_generated\"\n MANUAL_OVERRIDE = \"manual_override\"\n UNRESOLVED = \"unresolved\"\n\n\n# #endregion FieldProvenance\n\n\n# #region CandidateMatchType [C:1] [TYPE Class]\n# @BRIEF Match type classification for semantic candidates.\nclass CandidateMatchType(str, enum.Enum):\n EXACT = \"exact\"\n REFERENCE = \"reference\"\n FUZZY = \"fuzzy\"\n GENERATED = \"generated\"\n\n\n# #endregion CandidateMatchType\n\n\n# #region CandidateStatus [C:1] [TYPE Class]\n# @BRIEF Lifecycle status for semantic candidate proposals.\nclass CandidateStatus(str, enum.Enum):\n PROPOSED = \"proposed\"\n ACCEPTED = \"accepted\"\n REJECTED = \"rejected\"\n SUPERSEDED = \"superseded\"\n\n\n# #endregion CandidateStatus\n\n\n# #region FilterSource [C:1] [TYPE Class]\n# @BRIEF Origin classification for imported filters.\nclass FilterSource(str, enum.Enum):\n SUPERSET_NATIVE = \"superset_native\"\n SUPERSET_URL = \"superset_url\"\n SUPERSET_PERMALINK = \"superset_permalink\"\n SUPERSET_NATIVE_FILTERS_KEY = \"superset_native_filters_key\"\n MANUAL = \"manual\"\n INFERRED = \"inferred\"\n\n\n# #endregion FilterSource\n\n\n# #region FilterConfidenceState [C:1] [TYPE Class]\n# @BRIEF Confidence classification for imported filter values.\nclass FilterConfidenceState(str, enum.Enum):\n CONFIRMED = \"confirmed\"\n IMPORTED = \"imported\"\n INFERRED = \"inferred\"\n AI_DRAFT = \"ai_draft\"\n UNRESOLVED = \"unresolved\"\n\n\n# #endregion FilterConfidenceState\n\n\n# #region FilterRecoveryStatus [C:1] [TYPE Class]\n# @BRIEF Recovery quality status for imported filters.\nclass FilterRecoveryStatus(str, enum.Enum):\n RECOVERED = \"recovered\"\n PARTIAL = \"partial\"\n MISSING = \"missing\"\n CONFLICTED = \"conflicted\"\n\n\n# #endregion FilterRecoveryStatus\n\n\n# #region VariableKind [C:1] [TYPE Class]\n# @BRIEF Kind classification for template variables.\nclass VariableKind(str, enum.Enum):\n NATIVE_FILTER = \"native_filter\"\n PARAMETER = \"parameter\"\n DERIVED = \"derived\"\n UNKNOWN = \"unknown\"\n\n\n# #endregion VariableKind\n\n\n# #region MappingStatus [C:1] [TYPE Class]\n# @BRIEF Lifecycle status for template variable mapping.\nclass MappingStatus(str, enum.Enum):\n UNMAPPED = \"unmapped\"\n PROPOSED = \"proposed\"\n APPROVED = \"approved\"\n OVERRIDDEN = \"overridden\"\n INVALID = \"invalid\"\n\n\n# #endregion MappingStatus\n\n\n# #region MappingMethod [C:1] [TYPE Class]\n# @BRIEF Method classification for execution mapping creation.\nclass MappingMethod(str, enum.Enum):\n DIRECT_MATCH = \"direct_match\"\n HEURISTIC_MATCH = \"heuristic_match\"\n SEMANTIC_MATCH = \"semantic_match\"\n MANUAL_OVERRIDE = \"manual_override\"\n\n\n# #endregion MappingMethod\n\n\n# #region MappingWarningLevel [C:1] [TYPE Class]\n# @BRIEF Warning severity for execution mapping quality indicators.\nclass MappingWarningLevel(str, enum.Enum):\n LOW = \"low\"\n MEDIUM = \"medium\"\n HIGH = \"high\"\n\n\n# #endregion MappingWarningLevel\n\n\n# #region ApprovalState [C:1] [TYPE Class]\n# @BRIEF Approval lifecycle for execution mapping gate checks.\nclass ApprovalState(str, enum.Enum):\n PENDING = \"pending\"\n APPROVED = \"approved\"\n REJECTED = \"rejected\"\n NOT_REQUIRED = \"not_required\"\n\n\n# #endregion ApprovalState\n\n\n# #region ClarificationStatus [C:1] [TYPE Class]\n# @BRIEF Lifecycle status for clarification sessions.\nclass ClarificationStatus(str, enum.Enum):\n PENDING = \"pending\"\n ACTIVE = \"active\"\n PAUSED = \"paused\"\n COMPLETED = \"completed\"\n CANCELLED = \"cancelled\"\n\n\n# #endregion ClarificationStatus\n\n\n# #region QuestionState [C:1] [TYPE Class]\n# @BRIEF State machine for individual clarification questions.\nclass QuestionState(str, enum.Enum):\n OPEN = \"open\"\n ANSWERED = \"answered\"\n SKIPPED = \"skipped\"\n EXPERT_REVIEW = \"expert_review\"\n SUPERSEDED = \"superseded\"\n\n\n# #endregion QuestionState\n\n\n# #region AnswerKind [C:1] [TYPE Class]\n# @BRIEF Classification of clarification answer types.\nclass AnswerKind(str, enum.Enum):\n SELECTED = \"selected\"\n CUSTOM = \"custom\"\n SKIPPED = \"skipped\"\n EXPERT_REVIEW = \"expert_review\"\n\n\n# #endregion AnswerKind\n\n\n# #region PreviewStatus [C:1] [TYPE Class]\n# @BRIEF Lifecycle status for compiled SQL previews.\nclass PreviewStatus(str, enum.Enum):\n PENDING = \"pending\"\n READY = \"ready\"\n FAILED = \"failed\"\n STALE = \"stale\"\n\n\n# #endregion PreviewStatus\n\n\n# #region LaunchStatus [C:1] [TYPE Class]\n# @BRIEF Outcome status for dataset launch handoff.\nclass LaunchStatus(str, enum.Enum):\n STARTED = \"started\"\n SUCCESS = \"success\"\n FAILED = \"failed\"\n\n\n# #endregion LaunchStatus\n\n\n# #region ArtifactType [C:1] [TYPE Class]\n# @BRIEF Type classification for export artifacts.\nclass ArtifactType(str, enum.Enum):\n DOCUMENTATION = \"documentation\"\n VALIDATION_REPORT = \"validation_report\"\n RUN_SUMMARY = \"run_summary\"\n\n\n# #endregion ArtifactType\n\n\n# #region ArtifactFormat [C:1] [TYPE Class]\n# @BRIEF Format classification for export artifact output.\nclass ArtifactFormat(str, enum.Enum):\n JSON = \"json\"\n MARKDOWN = \"markdown\"\n CSV = \"csv\"\n PDF = \"pdf\"\n\n\n# #endregion ArtifactFormat\n\n\n# #endregion DatasetReviewEnums\n" @@ -45336,17 +41834,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region CompiledPreview [C:2] [TYPE Class]\n# @BRIEF One compiled SQL preview snapshot with fingerprint for staleness detection.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass CompiledPreview(Base):\n __tablename__ = \"compiled_previews\"\n\n preview_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n preview_status = Column(\n SQLEnum(PreviewStatus), nullable=False, default=PreviewStatus.PENDING\n )\n compiled_sql = Column(Text, nullable=True)\n preview_fingerprint = Column(String, nullable=False)\n compiled_by = Column(String, nullable=False, default=\"superset\")\n error_code = Column(String, nullable=True)\n error_details = Column(Text, nullable=True)\n compiled_at = Column(DateTime, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"previews\")\n\n\n# #endregion CompiledPreview\n" @@ -45371,17 +41859,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetRunContext [C:2] [TYPE Class]\n# @BRIEF Immutable launch audit snapshot capturing effective filters, template params, and approval state at launch time.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass DatasetRunContext(Base):\n __tablename__ = \"dataset_run_contexts\"\n\n run_context_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n dataset_ref = Column(String, nullable=False)\n environment_id = Column(String, nullable=False)\n preview_id = Column(String, nullable=False)\n sql_lab_session_ref = Column(String, nullable=False)\n effective_filters = Column(JSON, nullable=False)\n template_params = Column(JSON, nullable=False)\n approved_mapping_ids = Column(JSON, nullable=False)\n semantic_decision_refs = Column(JSON, nullable=False)\n open_warning_refs = Column(JSON, nullable=False)\n launch_status = Column(SQLEnum(LaunchStatus), nullable=False)\n launch_error = Column(Text, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"run_contexts\")\n\n\n# #endregion DatasetRunContext\n" @@ -45406,17 +41884,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region SessionEvent [C:2] [TYPE Class]\n# @BRIEF One persisted audit event for dataset review session mutations.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass SessionEvent(Base):\n __tablename__ = \"session_events\"\n\n session_event_id = Column(\n String, primary_key=True, default=lambda: str(uuid.uuid4())\n )\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n actor_user_id = Column(String, ForeignKey(\"users.id\"), nullable=False)\n event_type = Column(String, nullable=False)\n event_summary = Column(Text, nullable=False)\n current_phase = Column(String, nullable=True)\n readiness_state = Column(String, nullable=True)\n event_details = Column(JSON, nullable=False, default=dict)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"events\")\n actor = relationship(\"User\")\n\n\n# #endregion SessionEvent\n" @@ -45441,17 +41909,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ExportArtifact [C:2] [TYPE Class]\n# @BRIEF One persisted export artifact reference for documentation and validation outputs.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass ExportArtifact(Base):\n __tablename__ = \"export_artifacts\"\n\n artifact_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n artifact_type = Column(SQLEnum(ArtifactType), nullable=False)\n format = Column(SQLEnum(ArtifactFormat), nullable=False)\n storage_ref = Column(String, nullable=False)\n created_by_user_id = Column(String, nullable=False)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"export_artifacts\")\n\n\n# #endregion ExportArtifact\n" @@ -45508,17 +41966,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ImportedFilter [C:2] [TYPE Class]\n# @BRIEF Recovered Superset filter with confidence and recovery status tracking.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass ImportedFilter(Base):\n __tablename__ = \"imported_filters\"\n\n filter_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n filter_name = Column(String, nullable=False)\n display_name = Column(String, nullable=True)\n raw_value = Column(JSON, nullable=False)\n raw_value_masked = Column(Boolean, nullable=False, default=False)\n normalized_value = Column(JSON, nullable=True)\n source = Column(SQLEnum(FilterSource), nullable=False)\n confidence_state = Column(SQLEnum(FilterConfidenceState), nullable=False)\n requires_confirmation = Column(Boolean, nullable=False, default=False)\n recovery_status = Column(SQLEnum(FilterRecoveryStatus), nullable=False)\n notes = Column(Text, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(\n DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False\n )\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"imported_filters\")\n\n\n# #endregion ImportedFilter\n" @@ -45543,17 +41991,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TemplateVariable [C:2] [TYPE Class]\n# @BRIEF Discovered template variable from dataset SQL with mapping status tracking.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass TemplateVariable(Base):\n __tablename__ = \"template_variables\"\n\n variable_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n variable_name = Column(String, nullable=False)\n expression_source = Column(Text, nullable=False)\n variable_kind = Column(SQLEnum(VariableKind), nullable=False)\n is_required = Column(Boolean, nullable=False, default=True)\n default_value = Column(JSON, nullable=True)\n mapping_status = Column(\n SQLEnum(MappingStatus), nullable=False, default=MappingStatus.UNMAPPED\n )\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(\n DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False\n )\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"template_variables\")\n\n\n# #endregion TemplateVariable\n" @@ -45585,17 +42023,7 @@ "target_ref": "[MappingModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetReviewFindingModels [C:2] [TYPE Module] [SEMANTICS sqlalchemy, dataset, review, finding, validation]\n# @BRIEF Validation finding model for tracking blocking, warning, and informational issues during review.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [DatasetReviewEnums:Module]\n# @RELATION DEPENDS_ON -> [MappingModels]\n\nimport uuid\nfrom datetime import datetime\n\nfrom sqlalchemy import (\n Column,\n DateTime,\n ForeignKey,\n String,\n Text,\n)\nfrom sqlalchemy import (\n Enum as SQLEnum,\n)\nfrom sqlalchemy.orm import relationship\n\nfrom src.models.dataset_review_pkg._enums import (\n FindingArea,\n FindingSeverity,\n ResolutionState,\n)\nfrom src.models.mapping import Base\n\n\n# #region ValidationFinding [C:2] [TYPE Class]\n# @BRIEF Structured finding record for dataset review validation issues with resolution tracking.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass ValidationFinding(Base):\n __tablename__ = \"validation_findings\"\n\n finding_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n area = Column(SQLEnum(FindingArea), nullable=False)\n severity = Column(SQLEnum(FindingSeverity), nullable=False)\n code = Column(String, nullable=False)\n title = Column(String, nullable=False)\n message = Column(Text, nullable=False)\n resolution_state = Column(\n SQLEnum(ResolutionState), nullable=False, default=ResolutionState.OPEN\n )\n resolution_note = Column(Text, nullable=True)\n caused_by_ref = Column(String, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n resolved_at = Column(DateTime, nullable=True)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"findings\")\n\n\n# #endregion ValidationFinding\n\n\n# #endregion DatasetReviewFindingModels\n" @@ -45620,17 +42048,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ValidationFinding [C:2] [TYPE Class]\n# @BRIEF Structured finding record for dataset review validation issues with resolution tracking.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass ValidationFinding(Base):\n __tablename__ = \"validation_findings\"\n\n finding_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n area = Column(SQLEnum(FindingArea), nullable=False)\n severity = Column(SQLEnum(FindingSeverity), nullable=False)\n code = Column(String, nullable=False)\n title = Column(String, nullable=False)\n message = Column(Text, nullable=False)\n resolution_state = Column(\n SQLEnum(ResolutionState), nullable=False, default=ResolutionState.OPEN\n )\n resolution_note = Column(Text, nullable=True)\n caused_by_ref = Column(String, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n resolved_at = Column(DateTime, nullable=True)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"findings\")\n\n\n# #endregion ValidationFinding\n" @@ -45662,17 +42080,7 @@ "target_ref": "[MappingModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetReviewMappingModels [C:2] [TYPE Module] [SEMANTICS sqlalchemy, dataset, review, mapping, model]\n# @BRIEF Execution mapping model linking imported filters to template variables with approval gates.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [DatasetReviewEnums:Module]\n# @RELATION DEPENDS_ON -> [MappingModels]\n\nimport uuid\nfrom datetime import datetime\n\nfrom sqlalchemy import (\n JSON,\n Boolean,\n Column,\n DateTime,\n ForeignKey,\n String,\n Text,\n)\nfrom sqlalchemy import (\n Enum as SQLEnum,\n)\nfrom sqlalchemy.orm import relationship\n\nfrom src.models.dataset_review_pkg._enums import (\n ApprovalState,\n MappingMethod,\n MappingWarningLevel,\n)\nfrom src.models.mapping import Base\n\n\n# #region ExecutionMapping [C:2] [TYPE Class]\n# @BRIEF One filter-to-variable mapping with approval gate, effective value, and transformation metadata.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\n# @INVARIANT: Explicit approval is required before launch when requires_explicit_approval is true.\nclass ExecutionMapping(Base):\n __tablename__ = \"execution_mappings\"\n\n mapping_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False)\n filter_id = Column(String, nullable=False)\n variable_id = Column(String, nullable=False)\n mapping_method = Column(SQLEnum(MappingMethod), nullable=False)\n raw_input_value = Column(JSON, nullable=False)\n effective_value = Column(JSON, nullable=True)\n transformation_note = Column(Text, nullable=True)\n warning_level = Column(SQLEnum(MappingWarningLevel), nullable=True)\n requires_explicit_approval = Column(Boolean, nullable=False, default=False)\n approval_state = Column(SQLEnum(ApprovalState), nullable=False, default=ApprovalState.NOT_REQUIRED)\n approved_by_user_id = Column(String, nullable=True)\n approved_at = Column(DateTime, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"execution_mappings\")\n\n\n# #endregion ExecutionMapping\n\n\n# #endregion DatasetReviewMappingModels\n" @@ -45698,26 +42106,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ExecutionMapping [C:2] [TYPE Class]\n# @BRIEF One filter-to-variable mapping with approval gate, effective value, and transformation metadata.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\n# @INVARIANT: Explicit approval is required before launch when requires_explicit_approval is true.\nclass ExecutionMapping(Base):\n __tablename__ = \"execution_mappings\"\n\n mapping_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False)\n filter_id = Column(String, nullable=False)\n variable_id = Column(String, nullable=False)\n mapping_method = Column(SQLEnum(MappingMethod), nullable=False)\n raw_input_value = Column(JSON, nullable=False)\n effective_value = Column(JSON, nullable=True)\n transformation_note = Column(Text, nullable=True)\n warning_level = Column(SQLEnum(MappingWarningLevel), nullable=True)\n requires_explicit_approval = Column(Boolean, nullable=False, default=False)\n approval_state = Column(SQLEnum(ApprovalState), nullable=False, default=ApprovalState.NOT_REQUIRED)\n approved_by_user_id = Column(String, nullable=True)\n approved_at = Column(DateTime, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"execution_mappings\")\n\n\n# #endregion ExecutionMapping\n" @@ -45749,17 +42138,7 @@ "target_ref": "[MappingModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetReviewProfileModels [C:2] [TYPE Module] [SEMANTICS sqlalchemy, dataset, review, profile, summary]\n# @BRIEF Dataset profile model capturing business summary, confidence, and completeness metadata.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [DatasetReviewEnums:Module]\n# @RELATION DEPENDS_ON -> [MappingModels]\n\nimport uuid\nfrom datetime import datetime\n\nfrom sqlalchemy import (\n Boolean,\n Column,\n DateTime,\n Float,\n ForeignKey,\n String,\n Text,\n)\nfrom sqlalchemy import (\n Enum as SQLEnum,\n)\nfrom sqlalchemy.orm import relationship\n\nfrom src.models.dataset_review_pkg._enums import (\n BusinessSummarySource,\n ConfidenceState,\n)\nfrom src.models.mapping import Base\n\n\n# #region DatasetProfile [C:2] [TYPE Class]\n# @BRIEF One-to-one profile snapshot for a dataset review session, tracking business summary provenance and completeness.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass DatasetProfile(Base):\n __tablename__ = \"dataset_profiles\"\n\n profile_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String,\n ForeignKey(\"dataset_review_sessions.session_id\"),\n nullable=False,\n unique=True,\n )\n dataset_name = Column(String, nullable=False)\n schema_name = Column(String, nullable=True)\n database_name = Column(String, nullable=True)\n business_summary = Column(Text, nullable=False)\n business_summary_source = Column(SQLEnum(BusinessSummarySource), nullable=False)\n description = Column(Text, nullable=True)\n dataset_type = Column(String, nullable=True)\n is_sqllab_view = Column(Boolean, nullable=False, default=False)\n completeness_score = Column(Float, nullable=True)\n confidence_state = Column(SQLEnum(ConfidenceState), nullable=False)\n has_blocking_findings = Column(Boolean, nullable=False, default=False)\n has_warning_findings = Column(Boolean, nullable=False, default=False)\n manual_summary_locked = Column(Boolean, nullable=False, default=False)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(\n DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False\n )\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"profile\")\n\n\n# #endregion DatasetProfile\n\n\n# #endregion DatasetReviewProfileModels\n" @@ -45784,17 +42163,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetProfile [C:2] [TYPE Class]\n# @BRIEF One-to-one profile snapshot for a dataset review session, tracking business summary provenance and completeness.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass DatasetProfile(Base):\n __tablename__ = \"dataset_profiles\"\n\n profile_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String,\n ForeignKey(\"dataset_review_sessions.session_id\"),\n nullable=False,\n unique=True,\n )\n dataset_name = Column(String, nullable=False)\n schema_name = Column(String, nullable=True)\n database_name = Column(String, nullable=True)\n business_summary = Column(Text, nullable=False)\n business_summary_source = Column(SQLEnum(BusinessSummarySource), nullable=False)\n description = Column(Text, nullable=True)\n dataset_type = Column(String, nullable=True)\n is_sqllab_view = Column(Boolean, nullable=False, default=False)\n completeness_score = Column(Float, nullable=True)\n confidence_state = Column(SQLEnum(ConfidenceState), nullable=False)\n has_blocking_findings = Column(Boolean, nullable=False, default=False)\n has_warning_findings = Column(Boolean, nullable=False, default=False)\n manual_summary_locked = Column(Boolean, nullable=False, default=False)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(\n DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False\n )\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"profile\")\n\n\n# #endregion DatasetProfile\n" @@ -45841,15 +42210,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -45902,17 +42262,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region SemanticSource [C:2] [TYPE Class]\n# @BRIEF Registered semantic enrichment source with trust level and application status.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass SemanticSource(Base):\n __tablename__ = \"semantic_sources\"\n\n source_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n source_type = Column(SQLEnum(SemanticSourceType), nullable=False)\n source_ref = Column(String, nullable=False)\n source_version = Column(String, nullable=False)\n display_name = Column(String, nullable=False)\n trust_level = Column(SQLEnum(TrustLevel), nullable=False)\n schema_overlap_score = Column(Float, nullable=True)\n status = Column(\n SQLEnum(SemanticSourceStatus),\n nullable=False,\n default=SemanticSourceStatus.AVAILABLE,\n )\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"semantic_sources\")\n\n\n# #endregion SemanticSource\n" @@ -45944,17 +42294,7 @@ "target_ref": "[SemanticCandidate]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region SemanticFieldEntry [C:3] [TYPE Class]\n# @BRIEF Per-field semantic metadata entry with provenance tracking, lock state, and candidate set.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\n# @RELATION DEPENDS_ON -> [SemanticCandidate]\n# @INVARIANT: Locked fields preserve their active value regardless of later candidate proposals.\nclass SemanticFieldEntry(Base):\n __tablename__ = \"semantic_field_entries\"\n\n field_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n field_name = Column(String, nullable=False)\n field_kind = Column(SQLEnum(FieldKind), nullable=False)\n verbose_name = Column(String, nullable=True)\n description = Column(Text, nullable=True)\n display_format = Column(String, nullable=True)\n provenance = Column(\n SQLEnum(FieldProvenance), nullable=False, default=FieldProvenance.UNRESOLVED\n )\n source_id = Column(String, nullable=True)\n source_version = Column(String, nullable=True)\n confidence_rank = Column(Integer, nullable=True)\n is_locked = Column(Boolean, nullable=False, default=False)\n has_conflict = Column(Boolean, nullable=False, default=False)\n needs_review = Column(Boolean, nullable=False, default=True)\n last_changed_by = Column(String, nullable=False)\n user_feedback = Column(String, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(\n DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False\n )\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"semantic_fields\")\n candidates = relationship(\n \"SemanticCandidate\", back_populates=\"field\", cascade=\"all, delete-orphan\"\n )\n\n\n# #endregion SemanticFieldEntry\n" @@ -45979,17 +42319,7 @@ "target_ref": "[SemanticFieldEntry]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region SemanticCandidate [C:2] [TYPE Class]\n# @BRIEF One proposed semantic value for a field entry, ranked by match type and confidence.\n# @RELATION DEPENDS_ON -> [SemanticFieldEntry]\nclass SemanticCandidate(Base):\n __tablename__ = \"semantic_candidates\"\n\n candidate_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n field_id = Column(\n String, ForeignKey(\"semantic_field_entries.field_id\"), nullable=False\n )\n source_id = Column(String, nullable=True)\n candidate_rank = Column(Integer, nullable=False)\n match_type = Column(SQLEnum(CandidateMatchType), nullable=False)\n confidence_score = Column(Float, nullable=False)\n proposed_verbose_name = Column(String, nullable=True)\n proposed_description = Column(Text, nullable=True)\n proposed_display_format = Column(String, nullable=True)\n status = Column(\n SQLEnum(CandidateStatus), nullable=False, default=CandidateStatus.PROPOSED\n )\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n\n field = relationship(\"SemanticFieldEntry\", back_populates=\"candidates\")\n\n\n# #endregion SemanticCandidate\n" @@ -46036,15 +42366,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -46097,17 +42418,7 @@ "target_ref": "[DatasetReviewSession]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region SessionCollaborator [C:2] [TYPE Class]\n# @BRIEF RBAC collaborator record linking a user to a dataset review session with a specific role.\n# @RELATION DEPENDS_ON -> [DatasetReviewSession]\nclass SessionCollaborator(Base):\n __tablename__ = \"session_collaborators\"\n\n id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n session_id = Column(\n String, ForeignKey(\"dataset_review_sessions.session_id\"), nullable=False\n )\n user_id = Column(String, ForeignKey(\"users.id\"), nullable=False)\n role = Column(SQLEnum(SessionCollaboratorRole), nullable=False)\n added_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n\n session = relationship(\"DatasetReviewSession\", back_populates=\"collaborators\")\n user = relationship(\"User\")\n\n\n# #endregion SessionCollaborator\n" @@ -46205,17 +42516,7 @@ "target_ref": "[SessionEvent]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetReviewSession [C:3] [TYPE Class]\n# @BRIEF Aggregate root for the dataset review lifecycle, owning all child entities and driving readiness transitions.\n# @RELATION DEPENDS_ON -> [SessionCollaborator]\n# @RELATION DEPENDS_ON -> [DatasetProfile]\n# @RELATION DEPENDS_ON -> [ValidationFinding]\n# @RELATION DEPENDS_ON -> [SemanticSource]\n# @RELATION DEPENDS_ON -> [SemanticFieldEntry]\n# @RELATION DEPENDS_ON -> [ImportedFilter]\n# @RELATION DEPENDS_ON -> [TemplateVariable]\n# @RELATION DEPENDS_ON -> [ExecutionMapping]\n# @RELATION DEPENDS_ON -> [ClarificationSession]\n# @RELATION DEPENDS_ON -> [CompiledPreview]\n# @RELATION DEPENDS_ON -> [DatasetRunContext]\n# @RELATION DEPENDS_ON -> [ExportArtifact]\n# @RELATION DEPENDS_ON -> [SessionEvent]\n# @INVARIANT: Optimistic-lock version column prevents lost-update races on concurrent mutations.\nclass DatasetReviewSession(Base):\n __tablename__ = \"dataset_review_sessions\"\n\n session_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n user_id = Column(String, ForeignKey(\"users.id\"), nullable=False)\n environment_id = Column(String, ForeignKey(\"environments.id\"), nullable=False)\n source_kind = Column(String, nullable=False)\n source_input = Column(String, nullable=False)\n dataset_ref = Column(String, nullable=False)\n dataset_id = Column(Integer, nullable=True)\n dashboard_id = Column(Integer, nullable=True)\n readiness_state = Column(\n SQLEnum(ReadinessState), nullable=False, default=ReadinessState.EMPTY\n )\n recommended_action = Column(\n SQLEnum(RecommendedAction),\n nullable=False,\n default=RecommendedAction.IMPORT_FROM_SUPERSET,\n )\n version = Column(Integer, nullable=False, default=0)\n __mapper_args__ = {\"version_id_col\": version, \"version_id_generator\": False}\n status = Column(\n SQLEnum(SessionStatus), nullable=False, default=SessionStatus.ACTIVE\n )\n current_phase = Column(\n SQLEnum(SessionPhase), nullable=False, default=SessionPhase.INTAKE\n )\n active_task_id = Column(String, nullable=True)\n last_preview_id = Column(String, nullable=True)\n last_run_context_id = Column(String, nullable=True)\n created_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n updated_at = Column(\n DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False\n )\n last_activity_at = Column(DateTime, default=datetime.utcnow, nullable=False)\n closed_at = Column(DateTime, nullable=True)\n\n owner = relationship(\"User\")\n collaborators = relationship(\n \"SessionCollaborator\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n profile = relationship(\n \"DatasetProfile\",\n back_populates=\"session\",\n uselist=False,\n cascade=\"all, delete-orphan\",\n )\n findings = relationship(\n \"ValidationFinding\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n semantic_sources = relationship(\n \"SemanticSource\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n semantic_fields = relationship(\n \"SemanticFieldEntry\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n imported_filters = relationship(\n \"ImportedFilter\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n template_variables = relationship(\n \"TemplateVariable\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n execution_mappings = relationship(\n \"ExecutionMapping\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n clarification_sessions = relationship(\n \"ClarificationSession\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n previews = relationship(\n \"CompiledPreview\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n run_contexts = relationship(\n \"DatasetRunContext\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n export_artifacts = relationship(\n \"ExportArtifact\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n events = relationship(\n \"SessionEvent\", back_populates=\"session\", cascade=\"all, delete-orphan\"\n )\n\n\n# #endregion DatasetReviewSession\n" @@ -46259,15 +42560,6 @@ ], "value": "Models" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -46948,15 +43240,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -47194,15 +43477,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -47256,17 +43530,7 @@ "target_ref": "ReportModels" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TaskType [C:3] [TYPE Class] [SEMANTICS enum, type, task]\n# @INVARIANT: Must contain valid generic task type mappings.\n# @RELATION DEPENDS_ON -> ReportModels\n# @BRIEF Supported normalized task report types.\nclass TaskType(str, Enum):\n LLM_VERIFICATION = \"llm_verification\"\n BACKUP = \"backup\"\n MIGRATION = \"migration\"\n DOCUMENTATION = \"documentation\"\n CLEAN_RELEASE = \"clean_release\"\n UNKNOWN = \"unknown\"\n\n\n# #endregion TaskType\n" @@ -47292,17 +43556,7 @@ "target_ref": "ReportModels" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ReportStatus [C:3] [TYPE Class] [SEMANTICS enum, status, task]\n# @INVARIANT: TaskStatus enum mapping logic holds.\n# @BRIEF Supported normalized report status values.\n# @RELATION DEPENDS_ON -> ReportModels\nclass ReportStatus(str, Enum):\n SUCCESS = \"success\"\n FAILED = \"failed\"\n IN_PROGRESS = \"in_progress\"\n PARTIAL = \"partial\"\n\n\n# #endregion ReportStatus\n" @@ -47323,15 +43577,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_CONTRACT", @@ -47383,15 +43628,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_CONTRACT", @@ -47443,15 +43679,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_CONTRACT", @@ -47503,15 +43730,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_CONTRACT", @@ -47563,15 +43781,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_CONTRACT", @@ -47698,26 +43907,7 @@ "target_ref": "sqlalchemy" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TaskModels [C:1] [TYPE Module] [SEMANTICS sqlalchemy, task, model, schema, execution, task-record]\n#\n# @BRIEF Defines the database schema for task execution records.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> sqlalchemy\n#\n# @INVARIANT: All primary keys are UUID strings.\n\nimport uuid\n\nfrom sqlalchemy import JSON, Column, DateTime, ForeignKey, Index, Integer, String, Text\nfrom sqlalchemy.sql import func\n\nfrom .mapping import Base\n\n\n# #region TaskRecord [C:1] [TYPE Class]\n# @BRIEF Represents a persistent record of a task execution.\nclass TaskRecord(Base):\n __tablename__ = \"task_records\"\n\n id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))\n type = Column(String, nullable=False) # e.g., \"backup\", \"migration\"\n status = Column(String, nullable=False) # Enum: \"PENDING\", \"RUNNING\", \"SUCCESS\", \"FAILED\"\n environment_id = Column(String, ForeignKey(\"environments.id\"), nullable=True)\n started_at = Column(DateTime(timezone=True), nullable=True)\n finished_at = Column(DateTime(timezone=True), nullable=True)\n logs = Column(JSON, nullable=True) # Store structured logs as JSON (legacy, kept for backward compatibility)\n error = Column(String, nullable=True)\n result = Column(JSON, nullable=True)\n created_at = Column(DateTime(timezone=True), server_default=func.now())\n params = Column(JSON, nullable=True)\n# #endregion TaskRecord\n\n# #region TaskLogRecord [C:3] [TYPE Class]\n# @BRIEF Represents a single persistent log entry for a task.\n# @RELATION DEPENDS_ON -> TaskRecord\n# @INVARIANT: Each log entry belongs to exactly one task.\n#\n# @TEST_CONTRACT: TaskLogCreate ->\n# {\n# required_fields: {\n# task_id: str,\n# timestamp: datetime,\n# level: str,\n# source: str,\n# message: str\n# },\n# optional_fields: {\n# metadata_json: str,\n# id: int\n# },\n# invariants: [\n# \"task_id matches an existing TaskRecord.id\"\n# ]\n# }\n#\n# @TEST_FIXTURE: basic_info_log ->\n# {\n# task_id: \"00000000-0000-0000-0000-000000000000\",\n# timestamp: \"2026-02-26T12:00:00Z\",\n# level: \"INFO\",\n# source: \"system\",\n# message: \"Task initialization complete\"\n# }\n#\n# @TEST_EDGE: missing_required_field ->\n# {\n# timestamp: \"2026-02-26T12:00:00Z\",\n# level: \"ERROR\",\n# source: \"system\",\n# message: \"Missing task_id\"\n# }\n#\n# @TEST_EDGE: invalid_type ->\n# {\n# task_id: \"00000000-0000-0000-0000-000000000000\",\n# timestamp: \"2026-02-26T12:00:00Z\",\n# level: 500,\n# source: \"system\",\n# message: \"Integer level\"\n# }\n#\n# @TEST_EDGE: empty_message ->\n# {\n# task_id: \"00000000-0000-0000-0000-000000000000\",\n# timestamp: \"2026-02-26T12:00:00Z\",\n# level: \"DEBUG\",\n# source: \"system\",\n# message: \"\"\n# }\n#\n# @TEST_INVARIANT: exact_one_task_association -> verifies: [basic_info_log, missing_required_field]\nclass TaskLogRecord(Base):\n __tablename__ = \"task_logs\"\n\n id = Column(Integer, primary_key=True, autoincrement=True)\n task_id = Column(String, ForeignKey(\"task_records.id\", ondelete=\"CASCADE\"), nullable=False, index=True)\n timestamp = Column(DateTime(timezone=True), nullable=False, index=True)\n level = Column(String(16), nullable=False) # INFO, WARNING, ERROR, DEBUG\n source = Column(String(64), nullable=False, default=\"system\") # plugin, superset_api, git, etc.\n message = Column(Text, nullable=False)\n metadata_json = Column(Text, nullable=True) # JSON string for additional metadata\n\n # Composite indexes for efficient filtering\n __table_args__ = (\n Index('ix_task_logs_task_timestamp', 'task_id', 'timestamp'),\n Index('ix_task_logs_task_level', 'task_id', 'level'),\n Index('ix_task_logs_task_source', 'task_id', 'source'),\n )\n# #endregion TaskLogRecord\n\n# #endregion TaskModels\n" @@ -47763,15 +43953,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Class" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_CONTRACT", @@ -48185,15 +44366,6 @@ ], "value": "App" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -48244,15 +44416,6 @@ ], "value": "Plugins" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -48418,15 +44581,6 @@ "message": "@CONSTRAINT is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -48796,17 +44950,7 @@ "target_ref": "backend.src.core.plugin_base.PluginBase" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardValidationPlugin [TYPE Class]\n# @BRIEF Plugin for automated dashboard health analysis using LLMs.\n# @RELATION IMPLEMENTS -> backend.src.core.plugin_base.PluginBase\nclass DashboardValidationPlugin(PluginBase):\n @property\n def id(self) -> str:\n return \"llm_dashboard_validation\"\n\n @property\n def name(self) -> str:\n return \"Dashboard LLM Validation\"\n\n @property\n def description(self) -> str:\n return \"Automated dashboard health analysis using multimodal LLMs.\"\n\n @property\n def version(self) -> str:\n return \"1.0.0\"\n\n def get_schema(self) -> dict[str, Any]:\n return {\n \"type\": \"object\",\n \"properties\": {\n \"dashboard_id\": {\"type\": \"string\", \"title\": \"Dashboard ID\"},\n \"environment_id\": {\"type\": \"string\", \"title\": \"Environment ID\"},\n \"provider_id\": {\"type\": \"string\", \"title\": \"LLM Provider ID\"}\n },\n \"required\": [\"dashboard_id\", \"environment_id\", \"provider_id\"]\n }\n\n # region DashboardValidationPlugin.execute [TYPE Function]\n # @PURPOSE: Executes the dashboard validation task with TaskContext support.\n # @PARAM: params (Dict[str, Any]) - Validation parameters.\n # @PARAM: context (Optional[TaskContext]) - Task context for logging with source attribution.\n # @PRE: params contains dashboard_id, environment_id, and provider_id.\n # @POST: Returns a dictionary with validation results and persists them to the database.\n # @SIDE_EFFECT: Captures a screenshot, calls LLM API, and writes to the database.\n async def execute(self, params: dict[str, Any], context: TaskContext | None = None):\n with belief_scope(\"execute\", f\"plugin_id={self.id}\"):\n validation_started_at = datetime.utcnow()\n # Use TaskContext logger if available, otherwise fall back to app logger\n log = context.logger if context else logger\n\n # Create sub-loggers for different components\n llm_log = log.with_source(\"llm\") if context else log\n screenshot_log = log.with_source(\"screenshot\") if context else log\n superset_log = log.with_source(\"superset_api\") if context else log\n\n log.info(f\"Executing {self.name} with params: {params}\")\n\n dashboard_id_raw = params.get(\"dashboard_id\")\n dashboard_id = str(dashboard_id_raw) if dashboard_id_raw is not None else None\n env_id = params.get(\"environment_id\")\n provider_id = params.get(\"provider_id\")\n\n db = SessionLocal()\n try:\n # 1. Get Environment\n from ...dependencies import get_config_manager\n config_mgr = get_config_manager()\n env = config_mgr.get_environment(env_id)\n if not env:\n log.error(f\"Environment {env_id} not found\")\n raise ValueError(f\"Environment {env_id} not found\")\n\n # 2. Get LLM Provider\n llm_service = LLMProviderService(db)\n db_provider = llm_service.get_provider(provider_id)\n if not db_provider:\n log.error(f\"LLM Provider {provider_id} not found\")\n raise ValueError(f\"LLM Provider {provider_id} not found\")\n\n llm_log.debug(\"Retrieved provider config:\")\n llm_log.debug(f\" Provider ID: {db_provider.id}\")\n llm_log.debug(f\" Provider Name: {db_provider.name}\")\n llm_log.debug(f\" Provider Type: {db_provider.provider_type}\")\n llm_log.debug(f\" Base URL: {db_provider.base_url}\")\n llm_log.debug(f\" Default Model: {db_provider.default_model}\")\n llm_log.debug(f\" Is Active: {db_provider.is_active}\")\n if not is_multimodal_model(db_provider.default_model, db_provider.provider_type):\n raise ValueError(\n \"Dashboard validation requires a multimodal model (image input support).\"\n )\n\n api_key = llm_service.get_decrypted_api_key(provider_id)\n llm_log.debug(f\"API Key decrypted (first 8 chars): {api_key[:8] if api_key and len(api_key) > 8 else 'EMPTY_OR_NONE'}...\")\n\n # Check if API key was successfully decrypted\n if _is_masked_or_invalid_api_key(api_key):\n raise ValueError(\n f\"Invalid API key for provider {provider_id}. \"\n \"Please open LLM provider settings and save a real API key (not masked placeholder).\"\n )\n\n # 3. Capture Screenshot\n screenshot_service = ScreenshotService(env)\n\n storage_root = config_mgr.get_config().settings.storage.root_path\n screenshots_dir = os.path.join(storage_root, \"screenshots\")\n os.makedirs(screenshots_dir, exist_ok=True)\n\n filename = f\"{dashboard_id}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.png\"\n screenshot_path = os.path.join(screenshots_dir, filename)\n\n screenshot_started_at = datetime.utcnow()\n screenshot_log.info(f\"Capturing screenshot for dashboard {dashboard_id}\")\n await screenshot_service.capture_dashboard(dashboard_id, screenshot_path)\n screenshot_log.debug(f\"Screenshot saved to: {screenshot_path}\")\n screenshot_finished_at = datetime.utcnow()\n\n # 4. Fetch Logs (from Environment /api/v1/log/)\n logs = []\n logs_fetch_started_at = datetime.utcnow()\n try:\n client = SupersetClient(env)\n\n # Calculate time window (last 24 hours)\n start_time = (datetime.now() - timedelta(hours=24)).isoformat()\n\n # Construct filter for logs\n # Note: We filter by dashboard_id matching the object\n query_params = {\n \"filters\": [\n {\"col\": \"dashboard_id\", \"opr\": \"eq\", \"value\": dashboard_id},\n {\"col\": \"dttm\", \"opr\": \"gt\", \"value\": start_time}\n ],\n \"order_column\": \"dttm\",\n \"order_direction\": \"desc\",\n \"page\": 0,\n \"page_size\": 100\n }\n\n superset_log.debug(f\"Fetching logs for dashboard {dashboard_id}\")\n response = client.network.request(\n method=\"GET\",\n endpoint=\"/log/\",\n params={\"q\": json.dumps(query_params)}\n )\n\n if isinstance(response, dict) and \"result\" in response:\n for item in response[\"result\"]:\n action = item.get(\"action\", \"unknown\")\n dttm = item.get(\"dttm\", \"\")\n details = item.get(\"json\", \"\")\n logs.append(f\"[{dttm}] {action}: {details}\")\n\n if not logs:\n logs = [\"No recent logs found for this dashboard.\"]\n superset_log.debug(\"No recent logs found for this dashboard\")\n\n except Exception as e:\n superset_log.warning(f\"Failed to fetch logs from environment: {e}\")\n logs = [f\"Error fetching remote logs: {e!s}\"]\n logs_fetch_finished_at = datetime.utcnow()\n\n # 5. Analyze with LLM\n llm_client = LLMClient(\n provider_type=LLMProviderType(db_provider.provider_type),\n api_key=api_key,\n base_url=db_provider.base_url,\n default_model=db_provider.default_model\n )\n\n llm_log.info(f\"Analyzing dashboard {dashboard_id} with LLM\")\n llm_settings = normalize_llm_settings(config_mgr.get_config().settings.llm)\n dashboard_prompt = llm_settings[\"prompts\"].get(\n \"dashboard_validation_prompt\",\n DEFAULT_LLM_PROMPTS[\"dashboard_validation_prompt\"],\n )\n llm_call_started_at = datetime.utcnow()\n analysis = await llm_client.analyze_dashboard(\n screenshot_path,\n logs,\n prompt_template=dashboard_prompt,\n )\n llm_call_finished_at = datetime.utcnow()\n\n # Log analysis summary to task logs for better visibility\n llm_log.info(f\"[ANALYSIS_SUMMARY] Status: {analysis['status']}\")\n llm_log.info(f\"[ANALYSIS_SUMMARY] Summary: {analysis['summary']}\")\n if analysis.get(\"issues\"):\n for i, issue in enumerate(analysis[\"issues\"]):\n llm_log.info(f\"[ANALYSIS_ISSUE][{i+1}] {issue.get('severity')}: {issue.get('message')} (Location: {issue.get('location', 'N/A')})\")\n\n # 6. Persist Result\n validation_result = ValidationResult(\n dashboard_id=dashboard_id,\n status=ValidationStatus(analysis[\"status\"]),\n summary=analysis[\"summary\"],\n issues=[DetectedIssue(**issue) for issue in analysis[\"issues\"]],\n screenshot_path=screenshot_path,\n raw_response=str(analysis)\n )\n validation_finished_at = datetime.utcnow()\n\n result_payload = _json_safe_value(validation_result.dict())\n result_payload[\"screenshot_paths\"] = [screenshot_path]\n result_payload[\"logs_sent_to_llm\"] = logs\n result_payload[\"logs_sent_count\"] = len(logs)\n result_payload[\"prompt_template\"] = dashboard_prompt\n result_payload[\"provider\"] = {\n \"id\": db_provider.id,\n \"name\": db_provider.name,\n \"type\": db_provider.provider_type,\n \"base_url\": db_provider.base_url,\n \"model\": db_provider.default_model,\n }\n result_payload[\"environment_id\"] = env_id\n result_payload[\"timings\"] = {\n \"validation_started_at\": validation_started_at.isoformat(),\n \"validation_finished_at\": validation_finished_at.isoformat(),\n \"validation_duration_ms\": int((validation_finished_at - validation_started_at).total_seconds() * 1000),\n \"screenshot_started_at\": screenshot_started_at.isoformat(),\n \"screenshot_finished_at\": screenshot_finished_at.isoformat(),\n \"screenshot_duration_ms\": int((screenshot_finished_at - screenshot_started_at).total_seconds() * 1000),\n \"logs_fetch_started_at\": logs_fetch_started_at.isoformat(),\n \"logs_fetch_finished_at\": logs_fetch_finished_at.isoformat(),\n \"logs_fetch_duration_ms\": int((logs_fetch_finished_at - logs_fetch_started_at).total_seconds() * 1000),\n \"llm_call_started_at\": llm_call_started_at.isoformat(),\n \"llm_call_finished_at\": llm_call_finished_at.isoformat(),\n \"llm_call_duration_ms\": int((llm_call_finished_at - llm_call_started_at).total_seconds() * 1000),\n }\n\n db_record = ValidationRecord(\n task_id=context.task_id if context else None,\n dashboard_id=validation_result.dashboard_id,\n environment_id=env_id,\n status=validation_result.status.value,\n summary=validation_result.summary,\n issues=[issue.dict() for issue in validation_result.issues],\n screenshot_path=validation_result.screenshot_path,\n raw_response=json.dumps(result_payload, ensure_ascii=False)\n )\n db.add(db_record)\n db.commit()\n\n # 7. Notification on failure (US1 / FR-015)\n try:\n policy_id = params.get(\"policy_id\")\n policy = None\n if policy_id:\n policy = db.query(ValidationPolicy).filter(ValidationPolicy.id == policy_id).first()\n\n notification_service = NotificationService(db, config_mgr)\n await notification_service.dispatch_report(\n record=db_record,\n policy=policy,\n background_tasks=getattr(context, \"background_tasks\", None) if context else None\n )\n except Exception as e:\n log.error(f\"Failed to dispatch notifications: {e}\")\n\n # Final log to ensure all analysis is visible in task logs\n log.info(f\"Validation completed for dashboard {dashboard_id}. Status: {validation_result.status.value}\")\n\n return result_payload\n\n finally:\n db.close()\n # endregion DashboardValidationPlugin.execute\n# #endregion DashboardValidationPlugin\n" @@ -48830,17 +44974,7 @@ "target_ref": "backend.src.core.plugin_base.PluginBase" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DocumentationPlugin [TYPE Class]\n# @BRIEF Plugin for automated dataset documentation using LLMs.\n# @RELATION IMPLEMENTS -> backend.src.core.plugin_base.PluginBase\nclass DocumentationPlugin(PluginBase):\n @property\n def id(self) -> str:\n return \"llm_documentation\"\n\n @property\n def name(self) -> str:\n return \"Dataset LLM Documentation\"\n\n @property\n def description(self) -> str:\n return \"Automated dataset and column documentation using LLMs.\"\n\n @property\n def version(self) -> str:\n return \"1.0.0\"\n\n def get_schema(self) -> dict[str, Any]:\n return {\n \"type\": \"object\",\n \"properties\": {\n \"dataset_id\": {\"type\": \"string\", \"title\": \"Dataset ID\"},\n \"environment_id\": {\"type\": \"string\", \"title\": \"Environment ID\"},\n \"provider_id\": {\"type\": \"string\", \"title\": \"LLM Provider ID\"}\n },\n \"required\": [\"dataset_id\", \"environment_id\", \"provider_id\"]\n }\n\n # region DocumentationPlugin.execute [TYPE Function]\n # @PURPOSE: Executes the dataset documentation task with TaskContext support.\n # @PARAM: params (Dict[str, Any]) - Documentation parameters.\n # @PARAM: context (Optional[TaskContext]) - Task context for logging with source attribution.\n # @PRE: params contains dataset_id, environment_id, and provider_id.\n # @POST: Returns generated documentation and updates the dataset in Superset.\n # @SIDE_EFFECT: Calls LLM API and updates dataset metadata in Superset.\n async def execute(self, params: dict[str, Any], context: TaskContext | None = None):\n with belief_scope(\"execute\", f\"plugin_id={self.id}\"):\n # Use TaskContext logger if available, otherwise fall back to app logger\n log = context.logger if context else logger\n\n # Create sub-loggers for different components\n llm_log = log.with_source(\"llm\") if context else log\n superset_log = log.with_source(\"superset_api\") if context else log\n\n log.info(f\"Executing {self.name} with params: {params}\")\n\n dataset_id = params.get(\"dataset_id\")\n env_id = params.get(\"environment_id\")\n provider_id = params.get(\"provider_id\")\n\n db = SessionLocal()\n try:\n # 1. Get Environment\n from ...dependencies import get_config_manager\n config_mgr = get_config_manager()\n env = config_mgr.get_environment(env_id)\n if not env:\n log.error(f\"Environment {env_id} not found\")\n raise ValueError(f\"Environment {env_id} not found\")\n\n # 2. Get LLM Provider\n llm_service = LLMProviderService(db)\n db_provider = llm_service.get_provider(provider_id)\n if not db_provider:\n log.error(f\"LLM Provider {provider_id} not found\")\n raise ValueError(f\"LLM Provider {provider_id} not found\")\n\n llm_log.debug(\"Retrieved provider config:\")\n llm_log.debug(f\" Provider ID: {db_provider.id}\")\n llm_log.debug(f\" Provider Name: {db_provider.name}\")\n llm_log.debug(f\" Provider Type: {db_provider.provider_type}\")\n llm_log.debug(f\" Base URL: {db_provider.base_url}\")\n llm_log.debug(f\" Default Model: {db_provider.default_model}\")\n\n api_key = llm_service.get_decrypted_api_key(provider_id)\n llm_log.debug(f\"API Key decrypted (first 8 chars): {api_key[:8] if api_key and len(api_key) > 8 else 'EMPTY_OR_NONE'}...\")\n\n # Check if API key was successfully decrypted\n if _is_masked_or_invalid_api_key(api_key):\n raise ValueError(\n f\"Invalid API key for provider {provider_id}. \"\n \"Please open LLM provider settings and save a real API key (not masked placeholder).\"\n )\n\n # 3. Fetch Metadata (US2 / T024)\n from ...core.superset_client import SupersetClient\n client = SupersetClient(env)\n\n superset_log.debug(f\"Fetching dataset {dataset_id}\")\n dataset = client.get_dataset(int(dataset_id))\n\n # Extract columns and existing descriptions\n columns_data = []\n for col in dataset.get(\"columns\", []):\n columns_data.append({\n \"name\": col.get(\"column_name\"),\n \"type\": col.get(\"type\"),\n \"description\": col.get(\"description\")\n })\n superset_log.debug(f\"Extracted {len(columns_data)} columns from dataset\")\n\n # 4. Construct Prompt & Analyze (US2 / T025)\n llm_client = LLMClient(\n provider_type=LLMProviderType(db_provider.provider_type),\n api_key=api_key,\n base_url=db_provider.base_url,\n default_model=db_provider.default_model\n )\n\n llm_settings = normalize_llm_settings(config_mgr.get_config().settings.llm)\n documentation_prompt = llm_settings[\"prompts\"].get(\n \"documentation_prompt\",\n DEFAULT_LLM_PROMPTS[\"documentation_prompt\"],\n )\n prompt = render_prompt(\n documentation_prompt,\n {\n \"dataset_name\": dataset.get(\"table_name\") or \"\",\n \"columns_json\": json.dumps(columns_data, ensure_ascii=False),\n },\n )\n\n # Using a generic chat completion for text-only US2\n llm_log.info(f\"Generating documentation for dataset {dataset_id}\")\n doc_result = await llm_client.get_json_completion([{\"role\": \"user\", \"content\": prompt}])\n\n # 5. Update Metadata (US2 / T026)\n update_payload = {\n \"description\": doc_result[\"dataset_description\"],\n \"columns\": []\n }\n\n # Map generated descriptions back to column IDs\n for col_doc in doc_result[\"column_descriptions\"]:\n for col in dataset.get(\"columns\", []):\n if col.get(\"column_name\") == col_doc[\"name\"]:\n update_payload[\"columns\"].append({\n \"id\": col.get(\"id\"),\n \"description\": col_doc[\"description\"]\n })\n\n superset_log.info(f\"Updating dataset {dataset_id} with generated documentation\")\n client.update_dataset(int(dataset_id), update_payload)\n\n log.info(f\"Documentation completed for dataset {dataset_id}\")\n\n return doc_result\n\n finally:\n db.close()\n # endregion DocumentationPlugin.execute\n# #endregion DocumentationPlugin\n" @@ -49062,15 +45196,6 @@ ], "value": "Plugins" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -49212,15 +45337,6 @@ ], "value": "Plugins" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -49293,15 +45409,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -49319,15 +45426,6 @@ ], "value": "App" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -49665,6 +45763,215 @@ "tier_source": "AutoCalculated", "body": "# #region TestDictionaryUtils [C:3] [TYPE Module] [SEMANTICS test, dictionary, utils, normalization]\n# @BRIEF Validate utility functions: _normalize_term and _detect_delimiter.\n# @RELATION BINDS_TO -> [_utils]\n\nfrom src.plugins.translate._utils import _detect_delimiter, _normalize_term\n\n\nclass TestNormalizeTerm:\n \"\"\"Verify _normalize_term produces lowercase NFC-normalized strings.\"\"\"\n\n # region test_normalize_term [C:2] [TYPE Function]\n def test_normalize_term(self):\n assert _normalize_term(\"Hello\") == \"hello\"\n assert _normalize_term(\"HELLO\") == \"hello\"\n assert _normalize_term(\" hello \") == \"hello\"\n composed = \"\\u00C9\"\n decomposed = \"\\u0045\\u0301\"\n assert _normalize_term(composed) == _normalize_term(decomposed)\n # endregion test_normalize_term\n\n\nclass TestDetectDelimiter:\n \"\"\"Verify _detect_delimiter correctly identifies CSV vs TSV.\"\"\"\n\n # region test_detect_delimiter [C:2] [TYPE Function]\n def test_detect_delimiter(self):\n csv_content = \"source_term,target_term,context_notes\\nhello,hola,\"\n assert _detect_delimiter(csv_content) == \",\"\n\n tsv_content = \"source_term\\ttarget_term\\nhello\\thola\"\n assert _detect_delimiter(tsv_content) == \"\\t\"\n\n empty_content = \"\"\n assert _detect_delimiter(empty_content) == \",\"\n # endregion test_detect_delimiter\n# #endregion TestDictionaryUtils\n" }, + { + "contract_id": "LanguageDetectServiceTests", + "contract_type": "Module", + "file_path": "backend/src/plugins/translate/__tests__/test_lang_detect.py", + "start_line": 1, + "end_line": 220, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "LAYER": "Test", + "PURPOSE": "Unit tests for LanguageDetectService — local language detection via lingua.", + "TEST_CONTRACT": "LanguageDetectService -> detect_language, build_detector, get_detector, batch_detect", + "TEST_EDGE": "cross_language -> English text with Russian detector returns \"und\"" + }, + "relations": [ + { + "source_id": "LanguageDetectServiceTests", + "relation_type": "BINDS_TO", + "target_id": "LanguageDetectService:Module", + "target_ref": "[LanguageDetectService:Module]" + } + ], + "schema_warnings": [ + { + "code": "invalid_enum_value", + "tag": "LAYER", + "message": "@LAYER value 'Test' is not in allowed enum", + "detail": { + "allowed": [ + "Core", + "Domain", + "API", + "UI", + "Service", + "Infrastructure", + "Plugin", + "Tests" + ], + "value": "Test" + } + }, + { + "code": "tag_not_for_contract_type", + "tag": "TEST_CONTRACT", + "message": "@TEST_CONTRACT is not allowed for contract type 'Module'", + "detail": { + "actual_type": "Module", + "allowed_types": [ + "Function", + "Block" + ] + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "TEST_CONTRACT", + "message": "@TEST_CONTRACT is forbidden for contract type 'Module' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Module" + } + }, + { + "code": "tag_not_for_contract_type", + "tag": "TEST_EDGE", + "message": "@TEST_EDGE is not allowed for contract type 'Module'", + "detail": { + "actual_type": "Module", + "allowed_types": [ + "Function", + "Block" + ] + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "TEST_EDGE", + "message": "@TEST_EDGE is forbidden for contract type 'Module' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Module" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region LanguageDetectServiceTests [C:2] [TYPE Module] [SEMANTICS test, language, detection, heuristic]\n# @BRIEF Unit tests for LanguageDetectService — local language detection via lingua.\n# @LAYER Test\n# @RELATION BINDS_TO -> [LanguageDetectService:Module]\n# @TEST_CONTRACT LanguageDetectService -> detect_language, build_detector, get_detector, batch_detect\n# @TEST_EDGE empty_text -> returns \"und\"\n# @TEST_EDGE numeric_text -> returns \"und\"\n# @TEST_EDGE short_text -> correctly detects language\n# @TEST_EDGE same_language_pre_filter -> batch_detect returns target language for matching rows\n# @TEST_EDGE detector_cache -> get_detector returns same instance for same language set\n# @TEST_EDGE cross_language -> English text with Russian detector returns \"und\"\n\nimport pytest\n\nfrom src.plugins.translate._lang_detect import (\n _CODE_TO_LANG,\n _detector_cache,\n batch_detect,\n build_detector,\n detect_language,\n get_detector,\n)\n\n\n# #region test_detect_language_basic [C:1] [TYPE Function]\n# @BRIEF Verify core language detection for common languages.\nclass TestDetectLanguage:\n \"\"\"Core language detection tests.\"\"\"\n\n def test_detect_english(self, en_detector):\n assert detect_language(\"Hello world, this is English\", en_detector) == \"en\"\n assert detect_language(\"Good morning! How are you today?\", en_detector) == \"en\"\n assert detect_language(\"This is a test comment from a user\", en_detector) == \"en\"\n\n def test_detect_russian(self, ru_detector):\n assert detect_language(\"Привет мир, это русский\", ru_detector) == \"ru\"\n assert detect_language(\"Доброе утро! Как дела?\", ru_detector) == \"ru\"\n assert detect_language(\"Это тестовый комментарий пользователя\", ru_detector) == \"ru\"\n\n def test_detect_short_texts(self, en_ru_detector):\n \"\"\"Short texts should still be detected correctly.\n Note: very short single words like \"Hello\" can be ambiguous\n (lingua detects 'Hello' as Italian), so we use 2+ word phrases.\n \"\"\"\n assert detect_language(\"Hello there\", en_ru_detector) == \"en\"\n assert detect_language(\"Привет всем\", en_ru_detector) == \"ru\"\n assert detect_language(\"Good morning\", en_ru_detector) == \"en\"\n assert detect_language(\"Доброе утро\", en_ru_detector) == \"ru\"\n\n def test_detect_multilingual(self, en_ru_detector):\n \"\"\"Detector with both EN and RU should handle mixed content.\"\"\"\n result_en = detect_language(\"Hello world\", en_ru_detector)\n result_ru = detect_language(\"Привет мир\", en_ru_detector)\n assert result_en == \"en\"\n assert result_ru == \"ru\"\n\n def test_detect_french(self, fr_detector):\n assert detect_language(\"Bonjour le monde\", fr_detector) == \"fr\"\n assert detect_language(\"Comment allez-vous?\", fr_detector) == \"fr\"\n# #endregion test_detect_language_basic\n\n\n# #region test_detect_language_edge_cases [C:1] [TYPE Function]\nclass TestDetectLanguageEdgeCases:\n \"\"\"Edge cases: empty, numeric, special characters.\"\"\"\n\n def test_empty_string(self, en_detector):\n assert detect_language(\"\", en_detector) == \"und\"\n\n def test_whitespace_only(self, en_detector):\n assert detect_language(\" \", en_detector) == \"und\"\n assert detect_language(\"\\t\\n\", en_detector) == \"und\"\n\n def test_numeric_text(self, en_detector):\n assert detect_language(\"12345\", en_detector) == \"und\"\n assert detect_language(\"42\", en_detector) == \"und\"\n assert detect_language(\"3.14159\", en_detector) == \"und\"\n\n def test_special_characters(self, en_detector):\n assert detect_language(\"!@#$%\", en_detector) == \"und\"\n assert detect_language(\"--- ***\", en_detector) == \"und\"\n\n def test_none_text(self, en_detector):\n \"\"\"None input should be handled gracefully (coerced to 'und').\"\"\"\n assert detect_language(None, en_detector) == \"und\"\n# #endregion test_detect_language_edge_cases\n\n\n# #region test_batch_detect [C:1] [TYPE Function]\nclass TestBatchDetect:\n \"\"\"Batch detection tests.\"\"\"\n\n def test_batch_detect_mixed(self, en_ru_detector):\n texts = [\n \"Hello world\",\n \"Привет мир\",\n \"Good morning\",\n \"\",\n \"Доброе утро\",\n \"12345\",\n ]\n results = batch_detect(texts, detector=en_ru_detector)\n assert results == [\"en\", \"ru\", \"en\", \"und\", \"ru\", \"und\"]\n\n def test_batch_detect_empty_list(self, en_ru_detector):\n assert batch_detect([], detector=en_ru_detector) == []\n\n def test_batch_detect_all_same(self, ru_detector):\n texts = [\"Привет\", \"Доброе утро\", \"Как дела?\"]\n results = batch_detect(texts, detector=ru_detector)\n assert all(r == \"ru\" for r in results)\n\n def test_batch_detect_builds_detector(self):\n \"\"\"Without pre-built detector, batch_detect builds one from target_languages.\"\"\"\n texts = [\"Hello world\", \"Привет мир\"]\n results = batch_detect(texts, target_languages=[\"ru\"])\n # \"Hello world\" should NOT be \"ru\", so should be \"und\" or \"en\"\n # \"Привет мир\" should be \"ru\"\n assert results[1] == \"ru\"\n# #endregion test_batch_detect\n\n\n# #region test_build_detector [C:1] [TYPE Function]\nclass TestBuildDetector:\n \"\"\"Detector construction tests.\"\"\"\n\n def test_build_with_target_languages(self):\n detector = build_detector([\"ru\", \"de\"])\n assert detect_language(\"Привет мир\", detector) == \"ru\"\n assert detect_language(\"Guten Morgen\", detector) == \"de\"\n\n def test_build_without_target_languages(self):\n \"\"\"Should fall back to default set (common source languages).\"\"\"\n detector = build_detector()\n assert detect_language(\"Hello world\", detector) == \"en\"\n\n def test_build_with_empty_list(self):\n detector = build_detector([])\n assert detect_language(\"Hello world\", detector) == \"en\"\n\n def test_build_with_unknown_code(self):\n \"\"\"Unknown codes should be silently ignored.\"\"\"\n detector = build_detector([\"zz\", \"en\"])\n assert detect_language(\"Hello world\", detector) == \"en\"\n# #endregion test_build_detector\n\n\n# #region test_get_detector_cache [C:1] [TYPE Function]\nclass TestGetDetectorCache:\n \"\"\"Detector caching behavior.\"\"\"\n\n def test_get_detector_returns_detector(self):\n detector = get_detector([\"en\"])\n assert hasattr(detector, \"detect_language_of\")\n\n def test_get_detector_caches_instance(self):\n _detector_cache.clear()\n d1 = get_detector([\"en\", \"ru\"])\n d2 = get_detector([\"en\", \"ru\"])\n assert d1 is d2 # Same instance from cache\n\n def test_get_detector_different_key(self):\n _detector_cache.clear()\n d1 = get_detector([\"en\"])\n d2 = get_detector([\"ru\"])\n assert d1 is not d2 # Different instances for different languages\n\n def test_get_detector_default_key(self):\n _detector_cache.clear()\n d1 = get_detector()\n d2 = get_detector(None)\n assert d1 is d2 # Same default instance\n# #endregion test_get_detector_cache\n\n\n# #region test_code_to_lang_mapping [C:1] [TYPE Function]\nclass TestCodeToLangMapping:\n \"\"\"Verify the BCP-47 → lingua Language mapping.\"\"\"\n\n def test_common_codes_present(self):\n for code in (\"en\", \"ru\", \"fr\", \"de\", \"es\", \"zh\", \"ja\", \"ko\", \"ar\", \"pt\", \"it\", \"pl\", \"uk\", \"tr\", \"vi\", \"th\", \"nl\", \"sv\"):\n assert code in _CODE_TO_LANG, f\"Missing mapping for '{code}'\"\n\n def test_mapping_count(self):\n \"\"\"Should have at least 60 languages mapped from lingua's 87.\"\"\"\n assert len(_CODE_TO_LANG) >= 60, f\"Only {len(_CODE_TO_LANG)} languages mapped\"\n\n def test_mapping_values(self):\n \"\"\"All mapped values should be lingua Language enum members.\"\"\"\n from lingua import Language\n for code, lang in _CODE_TO_LANG.items():\n assert isinstance(lang, Language), f\"'{code}' maps to {type(lang).__name__}, not Language\"\n# #endregion test_code_to_lang_mapping\n\n\n# #region fixtures [C:1] [TYPE Module]\n@pytest.fixture\ndef en_detector():\n \"\"\"Detector restricted to English.\"\"\"\n return build_detector([\"en\"])\n\n\n@pytest.fixture\ndef ru_detector():\n \"\"\"Detector restricted to Russian.\"\"\"\n return build_detector([\"ru\"])\n\n\n@pytest.fixture\ndef en_ru_detector():\n \"\"\"Detector for English and Russian.\"\"\"\n return build_detector([\"en\", \"ru\"])\n\n\n@pytest.fixture\ndef fr_detector():\n \"\"\"Detector restricted to French.\"\"\"\n return build_detector([\"fr\"])\n# #endregion fixtures\n# #endregion LanguageDetectServiceTests\n" + }, + { + "contract_id": "test_detect_language_basic", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/__tests__/test_lang_detect.py", + "start_line": 25, + "end_line": 60, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1, + "PURPOSE": "Verify core language detection for common languages." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region test_detect_language_basic [C:1] [TYPE Function]\n# @BRIEF Verify core language detection for common languages.\nclass TestDetectLanguage:\n \"\"\"Core language detection tests.\"\"\"\n\n def test_detect_english(self, en_detector):\n assert detect_language(\"Hello world, this is English\", en_detector) == \"en\"\n assert detect_language(\"Good morning! How are you today?\", en_detector) == \"en\"\n assert detect_language(\"This is a test comment from a user\", en_detector) == \"en\"\n\n def test_detect_russian(self, ru_detector):\n assert detect_language(\"Привет мир, это русский\", ru_detector) == \"ru\"\n assert detect_language(\"Доброе утро! Как дела?\", ru_detector) == \"ru\"\n assert detect_language(\"Это тестовый комментарий пользователя\", ru_detector) == \"ru\"\n\n def test_detect_short_texts(self, en_ru_detector):\n \"\"\"Short texts should still be detected correctly.\n Note: very short single words like \"Hello\" can be ambiguous\n (lingua detects 'Hello' as Italian), so we use 2+ word phrases.\n \"\"\"\n assert detect_language(\"Hello there\", en_ru_detector) == \"en\"\n assert detect_language(\"Привет всем\", en_ru_detector) == \"ru\"\n assert detect_language(\"Good morning\", en_ru_detector) == \"en\"\n assert detect_language(\"Доброе утро\", en_ru_detector) == \"ru\"\n\n def test_detect_multilingual(self, en_ru_detector):\n \"\"\"Detector with both EN and RU should handle mixed content.\"\"\"\n result_en = detect_language(\"Hello world\", en_ru_detector)\n result_ru = detect_language(\"Привет мир\", en_ru_detector)\n assert result_en == \"en\"\n assert result_ru == \"ru\"\n\n def test_detect_french(self, fr_detector):\n assert detect_language(\"Bonjour le monde\", fr_detector) == \"fr\"\n assert detect_language(\"Comment allez-vous?\", fr_detector) == \"fr\"\n# #endregion test_detect_language_basic\n" + }, + { + "contract_id": "test_detect_language_edge_cases", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/__tests__/test_lang_detect.py", + "start_line": 63, + "end_line": 86, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1 + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region test_detect_language_edge_cases [C:1] [TYPE Function]\nclass TestDetectLanguageEdgeCases:\n \"\"\"Edge cases: empty, numeric, special characters.\"\"\"\n\n def test_empty_string(self, en_detector):\n assert detect_language(\"\", en_detector) == \"und\"\n\n def test_whitespace_only(self, en_detector):\n assert detect_language(\" \", en_detector) == \"und\"\n assert detect_language(\"\\t\\n\", en_detector) == \"und\"\n\n def test_numeric_text(self, en_detector):\n assert detect_language(\"12345\", en_detector) == \"und\"\n assert detect_language(\"42\", en_detector) == \"und\"\n assert detect_language(\"3.14159\", en_detector) == \"und\"\n\n def test_special_characters(self, en_detector):\n assert detect_language(\"!@#$%\", en_detector) == \"und\"\n assert detect_language(\"--- ***\", en_detector) == \"und\"\n\n def test_none_text(self, en_detector):\n \"\"\"None input should be handled gracefully (coerced to 'und').\"\"\"\n assert detect_language(None, en_detector) == \"und\"\n# #endregion test_detect_language_edge_cases\n" + }, + { + "contract_id": "test_batch_detect", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/__tests__/test_lang_detect.py", + "start_line": 89, + "end_line": 120, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1 + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region test_batch_detect [C:1] [TYPE Function]\nclass TestBatchDetect:\n \"\"\"Batch detection tests.\"\"\"\n\n def test_batch_detect_mixed(self, en_ru_detector):\n texts = [\n \"Hello world\",\n \"Привет мир\",\n \"Good morning\",\n \"\",\n \"Доброе утро\",\n \"12345\",\n ]\n results = batch_detect(texts, detector=en_ru_detector)\n assert results == [\"en\", \"ru\", \"en\", \"und\", \"ru\", \"und\"]\n\n def test_batch_detect_empty_list(self, en_ru_detector):\n assert batch_detect([], detector=en_ru_detector) == []\n\n def test_batch_detect_all_same(self, ru_detector):\n texts = [\"Привет\", \"Доброе утро\", \"Как дела?\"]\n results = batch_detect(texts, detector=ru_detector)\n assert all(r == \"ru\" for r in results)\n\n def test_batch_detect_builds_detector(self):\n \"\"\"Without pre-built detector, batch_detect builds one from target_languages.\"\"\"\n texts = [\"Hello world\", \"Привет мир\"]\n results = batch_detect(texts, target_languages=[\"ru\"])\n # \"Hello world\" should NOT be \"ru\", so should be \"und\" or \"en\"\n # \"Привет мир\" should be \"ru\"\n assert results[1] == \"ru\"\n# #endregion test_batch_detect\n" + }, + { + "contract_id": "test_build_detector", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/__tests__/test_lang_detect.py", + "start_line": 123, + "end_line": 145, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1 + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region test_build_detector [C:1] [TYPE Function]\nclass TestBuildDetector:\n \"\"\"Detector construction tests.\"\"\"\n\n def test_build_with_target_languages(self):\n detector = build_detector([\"ru\", \"de\"])\n assert detect_language(\"Привет мир\", detector) == \"ru\"\n assert detect_language(\"Guten Morgen\", detector) == \"de\"\n\n def test_build_without_target_languages(self):\n \"\"\"Should fall back to default set (common source languages).\"\"\"\n detector = build_detector()\n assert detect_language(\"Hello world\", detector) == \"en\"\n\n def test_build_with_empty_list(self):\n detector = build_detector([])\n assert detect_language(\"Hello world\", detector) == \"en\"\n\n def test_build_with_unknown_code(self):\n \"\"\"Unknown codes should be silently ignored.\"\"\"\n detector = build_detector([\"zz\", \"en\"])\n assert detect_language(\"Hello world\", detector) == \"en\"\n# #endregion test_build_detector\n" + }, + { + "contract_id": "test_get_detector_cache", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/__tests__/test_lang_detect.py", + "start_line": 148, + "end_line": 173, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1 + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region test_get_detector_cache [C:1] [TYPE Function]\nclass TestGetDetectorCache:\n \"\"\"Detector caching behavior.\"\"\"\n\n def test_get_detector_returns_detector(self):\n detector = get_detector([\"en\"])\n assert hasattr(detector, \"detect_language_of\")\n\n def test_get_detector_caches_instance(self):\n _detector_cache.clear()\n d1 = get_detector([\"en\", \"ru\"])\n d2 = get_detector([\"en\", \"ru\"])\n assert d1 is d2 # Same instance from cache\n\n def test_get_detector_different_key(self):\n _detector_cache.clear()\n d1 = get_detector([\"en\"])\n d2 = get_detector([\"ru\"])\n assert d1 is not d2 # Different instances for different languages\n\n def test_get_detector_default_key(self):\n _detector_cache.clear()\n d1 = get_detector()\n d2 = get_detector(None)\n assert d1 is d2 # Same default instance\n# #endregion test_get_detector_cache\n" + }, + { + "contract_id": "test_code_to_lang_mapping", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/__tests__/test_lang_detect.py", + "start_line": 176, + "end_line": 193, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1 + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region test_code_to_lang_mapping [C:1] [TYPE Function]\nclass TestCodeToLangMapping:\n \"\"\"Verify the BCP-47 → lingua Language mapping.\"\"\"\n\n def test_common_codes_present(self):\n for code in (\"en\", \"ru\", \"fr\", \"de\", \"es\", \"zh\", \"ja\", \"ko\", \"ar\", \"pt\", \"it\", \"pl\", \"uk\", \"tr\", \"vi\", \"th\", \"nl\", \"sv\"):\n assert code in _CODE_TO_LANG, f\"Missing mapping for '{code}'\"\n\n def test_mapping_count(self):\n \"\"\"Should have at least 60 languages mapped from lingua's 87.\"\"\"\n assert len(_CODE_TO_LANG) >= 60, f\"Only {len(_CODE_TO_LANG)} languages mapped\"\n\n def test_mapping_values(self):\n \"\"\"All mapped values should be lingua Language enum members.\"\"\"\n from lingua import Language\n for code, lang in _CODE_TO_LANG.items():\n assert isinstance(lang, Language), f\"'{code}' maps to {type(lang).__name__}, not Language\"\n# #endregion test_code_to_lang_mapping\n" + }, + { + "contract_id": "fixtures", + "contract_type": "Module", + "file_path": "backend/src/plugins/translate/__tests__/test_lang_detect.py", + "start_line": 196, + "end_line": 219, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1 + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region fixtures [C:1] [TYPE Module]\n@pytest.fixture\ndef en_detector():\n \"\"\"Detector restricted to English.\"\"\"\n return build_detector([\"en\"])\n\n\n@pytest.fixture\ndef ru_detector():\n \"\"\"Detector restricted to Russian.\"\"\"\n return build_detector([\"ru\"])\n\n\n@pytest.fixture\ndef en_ru_detector():\n \"\"\"Detector for English and Russian.\"\"\"\n return build_detector([\"en\", \"ru\"])\n\n\n@pytest.fixture\ndef fr_detector():\n \"\"\"Detector restricted to French.\"\"\"\n return build_detector([\"fr\"])\n# #endregion fixtures\n" + }, { "contract_id": "TestTokenBudget", "contract_type": "Module", @@ -49913,12 +46220,12 @@ "contract_type": "Module", "file_path": "backend/src/plugins/translate/_batch_proc.py", "start_line": 1, - "end_line": 189, + "end_line": 235, "tier": "TIER_2", "complexity": 4, "metadata": { "COMPLEXITY": 4, - "PURPOSE": "Batch processing for translation: create batch records, classify rows (cache/preview/LLM)," + "PURPOSE": "Batch processing for translation: classify rows (same-language/cache/preview/LLM)," }, "relations": [], "schema_warnings": [ @@ -49961,14 +46268,14 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region BatchProcessingService [C:4] [TYPE Module] [SEMANTICS translate, batch, process, classify, cache]\n# @BRIEF Batch processing for translation: create batch records, classify rows (cache/preview/LLM),\n# call LLM service, persist TranslationRecord/TranslationLanguage rows.\n# Insert-to-target delegated to _batch_insert.py.\n# @LAYER Domain\n# @RELATION DEPENDS_ON -> [TranslationBatch], [TranslationRecord], [TranslationLanguage]\n# @RELATION DEPENDS_ON -> [DictionaryManager], [LLMTranslationService]\n# @RELATION DEPENDS_ON -> [estimate_token_budget], [ConfigManager]\n# @PRE DB session is available. Job configuration is valid.\n# @POST TranslationBatch, TranslationRecord, TranslationLanguage rows created and committed.\n# @SIDE_EFFECT LLM API calls via LLMTranslationService; DB writes.\n# @RATIONALE Extracted from TranslationExecutor. Batch insert delegated to _batch_insert.py.\n# @REJECTED Keeping batch processing inside TranslationExecutor — caused class to exceed INV_7.\n\nimport time\nimport uuid\nfrom datetime import UTC, datetime\nfrom typing import Any\n\nfrom sqlalchemy.orm import Session\n\nfrom ...core.config_manager import ConfigManager\nfrom ...core.logger import belief_scope, logger\nfrom ...models.translate import TranslationBatch, TranslationJob, TranslationLanguage, TranslationRecord\nfrom ...services.llm_provider import LLMProviderService\nfrom ._batch_insert import insert_batch_to_target\nfrom ._llm_call import LLMTranslationService\nfrom ._token_budget import estimate_token_budget\nfrom ._utils import _check_translation_cache, _compute_source_hash, _compute_key_hash\nfrom .dictionary import DictionaryManager\n\n\n# #region BatchProcessingService [C:4] [TYPE Class]\n# @BRIEF Create batch records, classify rows, process LLM calls, persist results.\nclass BatchProcessingService:\n \"\"\"Process a batch: classify (cache/preview/LLM), persist, and insert to target.\"\"\"\n\n def __init__(self, db: Session, config_manager: ConfigManager) -> None:\n self.db = db\n self.config_manager = config_manager\n self._llm_service = LLMTranslationService(db)\n\n # #region process_batch [C:3] [TYPE Function]\n # @BRIEF Process a single batch: create record, classify rows, call LLM, persist.\n # @PRE job and batch_rows are valid.\n # @POST TranslationBatch and TranslationRecord rows are created.\n # @SIDE_EFFECT LLM API call; DB writes.\n def process_batch(\n self, job: TranslationJob, run_id: str, batch_index: int,\n batch_rows: list[dict[str, Any]],\n dict_snapshot_hash: str | None = None, config_hash: str | None = None,\n preview_edits_cache: dict[str, dict[str, str]] | None = None,\n ) -> dict[str, int]:\n \"\"\"Process a single batch: classify rows, call LLM (if needed), persist records.\"\"\"\n with belief_scope(\"BatchProcessingService.process_batch\"):\n batch_start = time.monotonic()\n batch = self._create_batch(run_id, batch_index, batch_rows)\n bid = batch.id\n result = {\"successful\": 0, \"failed\": 0, \"skipped\": 0, \"retries\": 0}\n\n source_texts = [r.get(\"source_text\", \"\") for r in batch_rows if r.get(\"source_text\")]\n rc = batch_rows[0].get(\"source_data\") if batch_rows else None\n dict_matches = DictionaryManager.filter_for_batch(self.db, source_texts, job.id, row_context=rc)\n\n self._check_cache(job, batch_rows, dict_snapshot_hash, config_hash)\n llm_rows, pre_rows = self._classify(job, batch_rows, preview_edits_cache)\n\n tls = job.target_languages or [job.target_dialect or \"en\"]\n tls = [str(tls)] if not isinstance(tls, list) else tls\n\n result[\"successful\"] += self._persist_pre(pre_rows, bid, run_id, tls)\n if llm_rows:\n llm_res = self._process_llm(job, run_id, llm_rows, dict_matches, bid, tls)\n for k in (\"successful\", \"failed\", \"skipped\", \"retries\"):\n result[k] += llm_res.get(k, 0)\n\n batch.successful_records = result[\"successful\"]\n batch.failed_records = result[\"failed\"]\n batch.completed_at = datetime.now(UTC)\n batch.status = \"COMPLETED\" if result[\"failed\"] == 0 else \"COMPLETED_WITH_ERRORS\"\n self.db.flush()\n\n latency = int((time.monotonic() - batch_start) * 1000)\n logger.reason(f\"Batch {batch_index} complete\", {\"batch_id\": bid, \"latency_ms\": latency, **result})\n return {**result, \"batch_id\": bid}\n # #endregion process_batch\n\n def _create_batch(self, run_id, batch_index, batch_rows):\n b = TranslationBatch(id=str(uuid.uuid4()), run_id=run_id, batch_index=batch_index,\n status=\"RUNNING\", total_records=len(batch_rows), started_at=datetime.now(UTC))\n self.db.add(b)\n self.db.flush()\n return b\n\n def _check_cache(self, job, batch_rows, dict_snapshot_hash, config_hash):\n for row in batch_rows:\n if row.get(\"approved_translation\"):\n continue\n st = row.get(\"source_text\", \"\")\n if not st:\n continue\n ctx = list(job.context_columns or [])\n h = _compute_source_hash(st, row.get(\"source_data\"), dict_snapshot_hash, config_hash, ctx)\n row[\"_source_hash\"] = h\n cached = _check_translation_cache(self.db, h)\n if cached:\n row[\"_cached_lang_values\"] = cached\n logger.reason(\"Translation cache hit\", {\"source_hash\": h[:12], \"langs\": list(cached.keys())})\n\n def _classify(self, job, batch_rows, preview_edits_cache):\n llm_rows, pre_rows = [], []\n for row in batch_rows:\n if row.get(\"approved_translation\"):\n pre_rows.append(row)\n continue\n cl = row.get(\"_cached_lang_values\")\n if cl:\n tls = job.target_languages or [job.target_dialect or \"en\"]\n tls = [str(tls)] if not isinstance(tls, list) else tls\n if all(lc in cl for lc in tls):\n pre_rows.append(row)\n continue\n if preview_edits_cache:\n sd = row.get(\"source_data\") or {}\n if sd:\n kh = _compute_key_hash(sd)\n pe = preview_edits_cache.get(kh)\n if pe:\n fe = next(iter(pe.values()), None)\n if fe:\n row[\"approved_translation\"] = fe\n pre_rows.append(row)\n continue\n llm_rows.append(row)\n return llm_rows, pre_rows\n\n def _persist_pre(self, pre_rows, bid, run_id, tls):\n count = 0\n for row in pre_rows:\n cl = row.get(\"_cached_lang_values\")\n rec = TranslationRecord(\n id=str(uuid.uuid4()), batch_id=bid, run_id=run_id,\n source_sql=row.get(\"source_text\", \"\"), target_sql=row.get(\"approved_translation\", \"\"),\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), source_hash=row.get(\"_source_hash\"),\n status=\"SUCCESS\",\n )\n self.db.add(rec)\n for lc in tls:\n fv = cl[lc] if (cl and lc in cl) else row.get(\"approved_translation\", \"\")\n self.db.add(TranslationLanguage(\n id=str(uuid.uuid4()), record_id=rec.id, language_code=lc,\n source_language_detected=\"und\", translated_value=fv,\n final_value=fv, status=\"translated\", needs_review=False,\n ))\n count += 1\n return count\n\n def _process_llm(self, job, run_id, rows_for_llm, dict_matches, bid, tls):\n provider_model = None\n if job.provider_id:\n try:\n p = LLMProviderService(self.db).get_provider(job.provider_id)\n if p:\n provider_model = p.default_model or \"gpt-4o-mini\"\n except Exception:\n provider_model = None\n\n tb = estimate_token_budget(\n source_rows=rows_for_llm, target_languages=tls,\n source_column=\"source_text\", context_columns=None,\n dictionary_entries=dict_matches, batch_size=len(rows_for_llm),\n provider_info=provider_model,\n )\n if tb[\"warning\"]:\n logger.explore(\"Token budget warning\", {\"batch_id\": bid, \"warning\": tb[\"warning\"]})\n\n return self._llm_service.call_llm_for_batch(\n job=job, run_id=run_id, batch_rows=rows_for_llm,\n dict_matches=dict_matches, batch_id=bid,\n max_tokens=tb[\"max_output_needed\"],\n )\n\n # -- Batch insert (delegation) --\n def insert_batch_to_target(self, job: TranslationJob, batch_id: str, run_id: str) -> None:\n insert_batch_to_target(self.db, self.config_manager, job, batch_id, run_id)\n# #endregion BatchProcessingService\n# #endregion BatchProcessingService\n" + "body": "# #region BatchProcessingService [C:4] [TYPE Module] [SEMANTICS translate, batch, process, classify, cache]\n# @BRIEF Batch processing for translation: classify rows (same-language/cache/preview/LLM),\n# call LLM service, persist TranslationRecord/TranslationLanguage rows.\n# Local language detection (lingua) replaces LLM-based detection.\n# @LAYER Domain\n# @RELATION DEPENDS_ON -> [TranslationBatch], [TranslationRecord], [TranslationLanguage]\n# @RELATION DEPENDS_ON -> [DictionaryManager], [LLMTranslationService], [LanguageDetectService]\n# @RELATION DEPENDS_ON -> [estimate_token_budget], [ConfigManager]\n# @PRE DB session is available. Job configuration is valid.\n# @POST TranslationBatch, TranslationRecord, TranslationLanguage rows created and committed.\n# @SIDE_EFFECT LLM API calls via LLMTranslationService; DB writes.\n# @RATIONALE Extracted from TranslationExecutor. Batch insert delegated to _batch_insert.py.\n# @REJECTED Keeping batch processing inside TranslationExecutor — caused class to exceed INV_7.\n\nimport time\nimport uuid\nfrom datetime import UTC, datetime\nfrom typing import Any\n\nfrom sqlalchemy.orm import Session\n\nfrom ...core.config_manager import ConfigManager\nfrom ...core.logger import belief_scope, logger\nfrom ...models.translate import TranslationBatch, TranslationJob, TranslationLanguage, TranslationRecord\nfrom ...services.llm_provider import LLMProviderService\nfrom ._batch_insert import insert_batch_to_target\nfrom ._lang_detect import batch_detect, get_detector\nfrom ._llm_call import LLMTranslationService\nfrom ._token_budget import estimate_token_budget\nfrom ._utils import _check_translation_cache, _compute_source_hash, _compute_key_hash\nfrom .dictionary import DictionaryManager\n\n\n# #region BatchProcessingService [C:4] [TYPE Class]\n# @BRIEF Create batch records, classify rows, process LLM calls, persist results.\nclass BatchProcessingService:\n \"\"\"Process a batch: classify (cache/preview/LLM), persist, and insert to target.\"\"\"\n\n def __init__(self, db: Session, config_manager: ConfigManager) -> None:\n self.db = db\n self.config_manager = config_manager\n self._llm_service = LLMTranslationService(db)\n\n # #region process_batch [C:3] [TYPE Function]\n # @BRIEF Process a single batch: create record, classify rows, call LLM, persist.\n # @PRE job and batch_rows are valid.\n # @POST TranslationBatch and TranslationRecord rows are created.\n # @SIDE_EFFECT LLM API call; DB writes.\n def process_batch(\n self, job: TranslationJob, run_id: str, batch_index: int,\n batch_rows: list[dict[str, Any]],\n dict_snapshot_hash: str | None = None, config_hash: str | None = None,\n preview_edits_cache: dict[str, dict[str, str]] | None = None,\n ) -> dict[str, int]:\n \"\"\"Process a single batch: classify rows, call LLM (if needed), persist records.\"\"\"\n with belief_scope(\"BatchProcessingService.process_batch\"):\n batch_start = time.monotonic()\n batch = self._create_batch(run_id, batch_index, batch_rows)\n bid = batch.id\n result = {\"successful\": 0, \"failed\": 0, \"skipped\": 0, \"retries\": 0}\n\n tls = job.target_languages or [job.target_dialect or \"en\"]\n tls = [str(tls)] if not isinstance(tls, list) else tls\n\n # ★ Run local language detection on all rows (heuristic, no LLM)\n self._detect_languages(batch_rows, tls)\n\n source_texts = [r.get(\"source_text\", \"\") for r in batch_rows if r.get(\"source_text\")]\n rc = batch_rows[0].get(\"source_data\") if batch_rows else None\n dict_matches = DictionaryManager.filter_for_batch(self.db, source_texts, job.id, row_context=rc)\n\n self._check_cache(job, batch_rows, dict_snapshot_hash, config_hash)\n llm_rows, pre_rows = self._classify(batch_rows, preview_edits_cache, tls)\n\n result[\"successful\"] += self._persist_pre(pre_rows, bid, run_id, tls)\n if llm_rows:\n llm_res = self._process_llm(job, run_id, llm_rows, dict_matches, bid, tls)\n for k in (\"successful\", \"failed\", \"skipped\", \"retries\"):\n result[k] += llm_res.get(k, 0)\n\n batch.successful_records = result[\"successful\"]\n batch.failed_records = result[\"failed\"]\n batch.completed_at = datetime.now(UTC)\n batch.status = \"COMPLETED\" if result[\"failed\"] == 0 else \"COMPLETED_WITH_ERRORS\"\n self.db.flush()\n\n latency = int((time.monotonic() - batch_start) * 1000)\n logger.reason(f\"Batch {batch_index} complete\", {\"batch_id\": bid, \"latency_ms\": latency, **result})\n return {**result, \"batch_id\": bid}\n # #endregion process_batch\n\n def _create_batch(self, run_id, batch_index, batch_rows):\n b = TranslationBatch(id=str(uuid.uuid4()), run_id=run_id, batch_index=batch_index,\n status=\"RUNNING\", total_records=len(batch_rows), started_at=datetime.now(UTC))\n self.db.add(b)\n self.db.flush()\n return b\n\n def _check_cache(self, job, batch_rows, dict_snapshot_hash, config_hash):\n for row in batch_rows:\n if row.get(\"approved_translation\"):\n continue\n st = row.get(\"source_text\", \"\")\n if not st:\n continue\n ctx = list(job.context_columns or [])\n h = _compute_source_hash(st, row.get(\"source_data\"), dict_snapshot_hash, config_hash, ctx)\n row[\"_source_hash\"] = h\n cached = _check_translation_cache(self.db, h)\n if cached:\n row[\"_cached_lang_values\"] = cached\n logger.reason(\"Translation cache hit\", {\"source_hash\": h[:12], \"langs\": list(cached.keys())})\n\n # ★ Local language detection — replaces LLM-based detection\n def _detect_languages(self, batch_rows: list[dict], target_languages: list[str]) -> None:\n \"\"\"Run local language detection on all batch rows (no LLM).\n\n Attaches '_detected_lang' (BCP-47 code or 'und') to each row dict.\n Uses batch_detect() for efficient multi-text processing.\n \"\"\"\n texts = [row.get(\"source_text\", \"\") for row in batch_rows]\n results = batch_detect(texts, target_languages)\n for row, lang in zip(batch_rows, results):\n row[\"_detected_lang\"] = lang\n\n def _classify(self, batch_rows, preview_edits_cache, tls):\n llm_rows, pre_rows = [], []\n tls_lower = [str(t).lower() for t in tls]\n for row in batch_rows:\n # ★ NEW: Same-language pre-filter — detected language matches target\n dl = row.get(\"_detected_lang\")\n if dl and str(dl).lower() not in (\"und\", \"\") and str(dl).lower() in tls_lower:\n row[\"_same_language\"] = True\n pre_rows.append(row)\n continue\n\n if row.get(\"approved_translation\"):\n pre_rows.append(row)\n continue\n cl = row.get(\"_cached_lang_values\")\n if cl:\n if all(lc in cl for lc in tls):\n pre_rows.append(row)\n continue\n if preview_edits_cache:\n sd = row.get(\"source_data\") or {}\n if sd:\n kh = _compute_key_hash(sd)\n pe = preview_edits_cache.get(kh)\n if pe:\n fe = next(iter(pe.values()), None)\n if fe:\n row[\"approved_translation\"] = fe\n pre_rows.append(row)\n continue\n llm_rows.append(row)\n return llm_rows, pre_rows\n\n def _persist_pre(self, pre_rows, bid, run_id, tls):\n count = 0\n for row in pre_rows:\n # ★ Same-language row: source language = target → no translation needed\n if row.get(\"_same_language\"):\n dl = str(row[\"_detected_lang\"])\n source_text = row.get(\"source_text\", \"\")\n rec = TranslationRecord(\n id=str(uuid.uuid4()), batch_id=bid, run_id=run_id,\n source_sql=source_text, target_sql=source_text,\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), source_hash=row.get(\"_source_hash\"),\n status=\"SUCCESS\",\n )\n self.db.add(rec)\n # One TranslationLanguage for the detected (same) language\n self.db.add(TranslationLanguage(\n id=str(uuid.uuid4()), record_id=rec.id, language_code=dl,\n source_language_detected=dl, translated_value=source_text,\n final_value=source_text, status=\"translated\", needs_review=False,\n ))\n count += 1\n continue\n\n # Existing: cached / approved rows\n cl = row.get(\"_cached_lang_values\")\n detected_lang = row.get(\"_detected_lang\", \"und\") or \"und\"\n rec = TranslationRecord(\n id=str(uuid.uuid4()), batch_id=bid, run_id=run_id,\n source_sql=row.get(\"source_text\", \"\"), target_sql=row.get(\"approved_translation\", \"\"),\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), source_hash=row.get(\"_source_hash\"),\n status=\"SUCCESS\",\n )\n self.db.add(rec)\n for lc in tls:\n fv = cl[lc] if (cl and lc in cl) else row.get(\"approved_translation\", \"\")\n self.db.add(TranslationLanguage(\n id=str(uuid.uuid4()), record_id=rec.id, language_code=lc,\n source_language_detected=detected_lang, translated_value=fv,\n final_value=fv, status=\"translated\", needs_review=False,\n ))\n count += 1\n return count\n\n def _process_llm(self, job, run_id, rows_for_llm, dict_matches, bid, tls):\n provider_model = None\n if job.provider_id:\n try:\n p = LLMProviderService(self.db).get_provider(job.provider_id)\n if p:\n provider_model = p.default_model or \"gpt-4o-mini\"\n except Exception:\n provider_model = None\n\n tb = estimate_token_budget(\n source_rows=rows_for_llm, target_languages=tls,\n source_column=\"source_text\", context_columns=None,\n dictionary_entries=dict_matches, batch_size=len(rows_for_llm),\n provider_info=provider_model,\n )\n if tb[\"warning\"]:\n logger.explore(\"Token budget warning\", {\"batch_id\": bid, \"warning\": tb[\"warning\"]})\n\n return self._llm_service.call_llm_for_batch(\n job=job, run_id=run_id, batch_rows=rows_for_llm,\n dict_matches=dict_matches, batch_id=bid,\n max_tokens=tb[\"max_output_needed\"],\n )\n\n # -- Batch insert (delegation) --\n def insert_batch_to_target(self, job: TranslationJob, batch_id: str, run_id: str) -> None:\n insert_batch_to_target(self.db, self.config_manager, job, batch_id, run_id)\n# #endregion BatchProcessingService\n# #endregion BatchProcessingService\n" }, { "contract_id": "process_batch", "contract_type": "Function", "file_path": "backend/src/plugins/translate/_batch_proc.py", - "start_line": 43, - "end_line": 86, + "start_line": 44, + "end_line": 90, "tier": "TIER_2", "complexity": 3, "metadata": { @@ -50019,7 +46326,7 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": " # #region process_batch [C:3] [TYPE Function]\n # @BRIEF Process a single batch: create record, classify rows, call LLM, persist.\n # @PRE job and batch_rows are valid.\n # @POST TranslationBatch and TranslationRecord rows are created.\n # @SIDE_EFFECT LLM API call; DB writes.\n def process_batch(\n self, job: TranslationJob, run_id: str, batch_index: int,\n batch_rows: list[dict[str, Any]],\n dict_snapshot_hash: str | None = None, config_hash: str | None = None,\n preview_edits_cache: dict[str, dict[str, str]] | None = None,\n ) -> dict[str, int]:\n \"\"\"Process a single batch: classify rows, call LLM (if needed), persist records.\"\"\"\n with belief_scope(\"BatchProcessingService.process_batch\"):\n batch_start = time.monotonic()\n batch = self._create_batch(run_id, batch_index, batch_rows)\n bid = batch.id\n result = {\"successful\": 0, \"failed\": 0, \"skipped\": 0, \"retries\": 0}\n\n source_texts = [r.get(\"source_text\", \"\") for r in batch_rows if r.get(\"source_text\")]\n rc = batch_rows[0].get(\"source_data\") if batch_rows else None\n dict_matches = DictionaryManager.filter_for_batch(self.db, source_texts, job.id, row_context=rc)\n\n self._check_cache(job, batch_rows, dict_snapshot_hash, config_hash)\n llm_rows, pre_rows = self._classify(job, batch_rows, preview_edits_cache)\n\n tls = job.target_languages or [job.target_dialect or \"en\"]\n tls = [str(tls)] if not isinstance(tls, list) else tls\n\n result[\"successful\"] += self._persist_pre(pre_rows, bid, run_id, tls)\n if llm_rows:\n llm_res = self._process_llm(job, run_id, llm_rows, dict_matches, bid, tls)\n for k in (\"successful\", \"failed\", \"skipped\", \"retries\"):\n result[k] += llm_res.get(k, 0)\n\n batch.successful_records = result[\"successful\"]\n batch.failed_records = result[\"failed\"]\n batch.completed_at = datetime.now(UTC)\n batch.status = \"COMPLETED\" if result[\"failed\"] == 0 else \"COMPLETED_WITH_ERRORS\"\n self.db.flush()\n\n latency = int((time.monotonic() - batch_start) * 1000)\n logger.reason(f\"Batch {batch_index} complete\", {\"batch_id\": bid, \"latency_ms\": latency, **result})\n return {**result, \"batch_id\": bid}\n # #endregion process_batch\n" + "body": " # #region process_batch [C:3] [TYPE Function]\n # @BRIEF Process a single batch: create record, classify rows, call LLM, persist.\n # @PRE job and batch_rows are valid.\n # @POST TranslationBatch and TranslationRecord rows are created.\n # @SIDE_EFFECT LLM API call; DB writes.\n def process_batch(\n self, job: TranslationJob, run_id: str, batch_index: int,\n batch_rows: list[dict[str, Any]],\n dict_snapshot_hash: str | None = None, config_hash: str | None = None,\n preview_edits_cache: dict[str, dict[str, str]] | None = None,\n ) -> dict[str, int]:\n \"\"\"Process a single batch: classify rows, call LLM (if needed), persist records.\"\"\"\n with belief_scope(\"BatchProcessingService.process_batch\"):\n batch_start = time.monotonic()\n batch = self._create_batch(run_id, batch_index, batch_rows)\n bid = batch.id\n result = {\"successful\": 0, \"failed\": 0, \"skipped\": 0, \"retries\": 0}\n\n tls = job.target_languages or [job.target_dialect or \"en\"]\n tls = [str(tls)] if not isinstance(tls, list) else tls\n\n # ★ Run local language detection on all rows (heuristic, no LLM)\n self._detect_languages(batch_rows, tls)\n\n source_texts = [r.get(\"source_text\", \"\") for r in batch_rows if r.get(\"source_text\")]\n rc = batch_rows[0].get(\"source_data\") if batch_rows else None\n dict_matches = DictionaryManager.filter_for_batch(self.db, source_texts, job.id, row_context=rc)\n\n self._check_cache(job, batch_rows, dict_snapshot_hash, config_hash)\n llm_rows, pre_rows = self._classify(batch_rows, preview_edits_cache, tls)\n\n result[\"successful\"] += self._persist_pre(pre_rows, bid, run_id, tls)\n if llm_rows:\n llm_res = self._process_llm(job, run_id, llm_rows, dict_matches, bid, tls)\n for k in (\"successful\", \"failed\", \"skipped\", \"retries\"):\n result[k] += llm_res.get(k, 0)\n\n batch.successful_records = result[\"successful\"]\n batch.failed_records = result[\"failed\"]\n batch.completed_at = datetime.now(UTC)\n batch.status = \"COMPLETED\" if result[\"failed\"] == 0 else \"COMPLETED_WITH_ERRORS\"\n self.db.flush()\n\n latency = int((time.monotonic() - batch_start) * 1000)\n logger.reason(f\"Batch {batch_index} complete\", {\"batch_id\": bid, \"latency_ms\": latency, **result})\n return {**result, \"batch_id\": bid}\n # #endregion process_batch\n" }, { "contract_id": "AdaptiveBatchSizer", @@ -50136,12 +46443,30 @@ "tier_source": "AutoCalculated", "body": " # #region auto_size_batches [C:3] [TYPE Function] [SEMANTICS translate, batch, sizing]\n # @BRIEF Split source rows into variable-sized batches based on content length.\n # @PRE source_rows is non-empty. job has valid config.\n # @POST Returns list of batches, each batch is a list of row dicts.\n # Each batch fits within the estimated token budget for its rows.\n # @SIDE_EFFECT DB query to resolve provider model. Logs batch statistics.\n def auto_size_batches(\n self,\n job: TranslationJob,\n source_rows: list[dict],\n target_languages: list[str],\n provider_info: str | None = None,\n ) -> list[list[dict]]:\n \"\"\"Split source rows into auto-sized batches based on content length.\n\n Each batch is sized so that its total estimated tokens fit within the\n available context window (input budget), accounting for prompt overhead,\n dictionary entries, and output tokens.\n \"\"\"\n with belief_scope(\"AdaptiveBatchSizer.auto_size_batches\"):\n if not source_rows:\n return []\n\n if provider_info is None:\n provider_info = self.resolve_provider_model(job)\n\n # 1. Estimate per-row token counts\n row_tokens: list[int] = []\n for row in source_rows:\n source_text = row.get(\"source_text\", \"\")\n source_data = row.get(\"source_data\")\n tokens = estimate_row_tokens(source_text, source_data, job)\n row_tokens.append(tokens)\n\n # 2. Get budget recommendation\n budget = estimate_token_budget(\n source_rows=source_rows,\n target_languages=target_languages,\n source_column=job.translation_column or \"source_text\",\n context_columns=job.context_columns,\n batch_size=len(source_rows),\n provider_info=provider_info,\n )\n\n recommended = budget.get(\"batch_size_adjusted\", 0)\n\n # Fallback: if budget calculation fails, use fixed size\n if recommended <= 0:\n fallback_size = job.batch_size or 50\n logger.explore(\"Token budget returned zero — falling back to fixed batch size\", {\n \"fallback_size\": fallback_size,\n \"total_rows\": len(source_rows),\n })\n return [\n source_rows[i:i + fallback_size]\n for i in range(0, len(source_rows), fallback_size)\n ]\n\n # 3. Compute per-batch row-content budget\n # Use the ACTUAL available input capacity (context_window - max_output_tokens),\n # NOT the sum of the first N rows. This prevents long rows from being\n # incorrectly placed in 1-row batches when the context window has plenty of room.\n available_input = budget.get(\"available_input_budget\")\n if available_input is not None:\n # New-style: use actual available input capacity\n per_batch_budget = available_input - PROMPT_BASE_TOKENS\n else:\n # Fallback for tests: use estimated_input (sum of first N rows)\n estimated_input = budget.get(\"estimated_input_tokens\", 50000)\n per_batch_budget = estimated_input - PROMPT_BASE_TOKENS\n\n if per_batch_budget <= 0:\n fallback_size = job.batch_size or 50\n logger.explore(\"Per-batch budget collapsed — falling back to fixed batch size\", {\n \"per_batch_budget\": per_batch_budget,\n \"fallback_size\": fallback_size,\n \"total_rows\": len(source_rows),\n })\n return [\n source_rows[i:i + fallback_size]\n for i in range(0, len(source_rows), fallback_size)\n ]\n\n # 4. Greedy batch splitting\n # Compute max rows per batch from OUTPUT constraint.\n # This prevents output truncation (finish_reason=length) when batching\n # many short rows within the large input budget.\n num_languages = len(target_languages)\n max_output_tokens_val = budget.get(\"max_output_tokens\")\n if max_output_tokens_val is not None:\n output_per_row = num_languages * OUTPUT_PER_ROW_PER_LANG + JSON_OVERHEAD_PER_ROW\n available_output = max_output_tokens_val - REASONING_OVERHEAD - MAX_OUTPUT_HEADROOM\n max_rows_by_output = max(available_output // output_per_row, 1) if output_per_row > 0 else 20\n max_rows_hard_cap = max_rows_by_output\n else:\n # Fallback for tests: old formula\n max_rows_hard_cap = max(recommended * 2, 20)\n\n # 5. Respect job.batch_size as the absolute maximum rows per batch.\n # User-configured batch_size overrides model-based estimates to\n # prevent LLM quality degradation on large batches.\n if job.batch_size:\n max_rows_hard_cap = min(max_rows_hard_cap, job.batch_size)\n\n batches: list[list[dict]] = []\n current_batch: list[dict] = []\n current_tokens = 0\n\n for i, row in enumerate(source_rows):\n rt = row_tokens[i]\n\n if rt > per_batch_budget:\n if current_batch:\n batches.append(current_batch)\n current_batch = []\n current_tokens = 0\n logger.reason(\"Single row exceeds per-batch token budget — placing in own batch\", {\n \"row_index\": i,\n \"row_tokens\": rt,\n \"per_batch_budget\": per_batch_budget,\n })\n batches.append([row])\n continue\n\n should_split = bool(\n current_batch\n and (current_tokens + rt > per_batch_budget\n or len(current_batch) >= max_rows_hard_cap)\n )\n\n if should_split:\n batches.append(current_batch)\n current_batch = [row]\n current_tokens = rt\n else:\n current_batch.append(row)\n current_tokens += rt\n\n if current_batch:\n batches.append(current_batch)\n\n # 5. Log adaptive batch statistics\n if batches:\n avg_size = sum(len(b) for b in batches) / max(1, len(batches))\n max_size = max(len(b) for b in batches)\n logger.reason(\"Auto-sized batches\", {\n \"total_rows\": len(source_rows),\n \"num_batches\": len(batches),\n \"avg_batch_size\": round(avg_size, 1),\n \"max_batch_size\": max_size,\n \"recommended_batch_size\": recommended,\n \"per_batch_budget\": per_batch_budget,\n })\n\n return batches\n # #endregion auto_size_batches\n" }, + { + "contract_id": "LanguageDetectService", + "contract_type": "Module", + "file_path": "backend/src/plugins/translate/_lang_detect.py", + "start_line": 1, + "end_line": 138, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "PURPOSE": "Local language detection powered by lingua-language-detector (no LLM)." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region LanguageDetectService [C:2] [TYPE Module] [SEMANTICS translate, language, detection, heuristic]\n# @BRIEF Local language detection powered by lingua-language-detector (no LLM).\n# Provides fast, non-LLM language identification for source text rows,\n# reducing LLM token costs by pre-detecting same-language rows and\n# removing language detection from translation prompts.\n# @LAYER Plugin\n# @RELATION DEPENDS_ON -> [lingua]\n# @RATIONALE LLM-based language detection wastes tokens on every row. lingua is a\n# pure-Python library (pre-built wheel) that runs ~0.1ms/call with ~98%\n# accuracy, vs ~90% for LLM-based detection at ~100x+ cost.\n# @REJECTED pycld3 — incompatible with Python 3.13 (requires longintrepr.h removed in 3.13).\n# langdetect — only 55 languages, less accurate on short texts.\n# fasttext — requires native compilation, no pre-built wheel for this platform.\n\nfrom lingua import Language, LanguageDetector, LanguageDetectorBuilder\n\n# ---------------------------------------------------------------------------\n# Build BCP-47 → lingua Language mapping from the lingua Language enum\n# ---------------------------------------------------------------------------\n_CODE_TO_LANG: dict[str, Language] = {}\nfor attr_name in dir(Language):\n if attr_name.startswith(\"_\"):\n continue\n val = getattr(Language, attr_name)\n if not isinstance(val, Language):\n continue # skip methods (all, from_str, etc.) and descriptors\n try:\n iso = val.iso_code_639_1\n code = iso.name.lower()\n _CODE_TO_LANG[code] = val\n except Exception:\n pass # Language doesn't have ISO 639-1 code (e.g. Latin, Esperanto)\n\n# ---------------------------------------------------------------------------\n# Common source languages that appear in translation jobs (in addition to targets)\n# ---------------------------------------------------------------------------\n_COMMON_SOURCE_CODES: set[str] = {\n \"en\", \"fr\", \"de\", \"es\", \"it\", \"pt\", \"pl\", \"uk\",\n \"tr\", \"ar\", \"zh\", \"ja\", \"ko\", \"vi\", \"th\", \"nl\",\n \"sv\", \"da\", \"fi\", \"cs\", \"ro\", \"el\", \"he\", \"hi\",\n \"id\", \"ms\",\n}\n\n# ---------------------------------------------------------------------------\n# Detector cache — reuse detector instances across calls with same language set\n# ---------------------------------------------------------------------------\n_detector_cache: dict[str, LanguageDetector] = {}\n\n\ndef _detector_cache_key(target_languages: list[str] | None) -> str:\n \"\"\"Build a cache key from the set of target languages.\"\"\"\n if not target_languages:\n return \"__default\"\n return \",\".join(sorted(set(target_languages)))\n\n\ndef build_detector(target_languages: list[str] | None = None) -> LanguageDetector:\n \"\"\"Build a LanguageDetector restricted to target + common source languages.\n\n Restricting the language set improves detection speed (~5x faster than\n all 87 languages). The detector includes both target languages (for\n pre-filtering) and common source languages (for metadata).\n\n Args:\n target_languages: List of BCP-47 target language codes (e.g. [\"ru\", \"de\"]).\n If None or empty, falls back to a default set.\n\n Returns:\n A lingua LanguageDetector instance with default (high) accuracy.\n \"\"\"\n codes: set[str] = set(target_languages or []) | _COMMON_SOURCE_CODES\n\n lingua_langs: list[Language] = []\n for code in codes:\n lang = _CODE_TO_LANG.get(code)\n if lang:\n lingua_langs.append(lang)\n\n if not lingua_langs:\n # Fallback: use all spoken languages\n return LanguageDetectorBuilder.from_all_spoken_languages().build()\n\n return LanguageDetectorBuilder.from_languages(*lingua_langs).build()\n\n\ndef get_detector(target_languages: list[str] | None = None) -> LanguageDetector:\n \"\"\"Get or create a cached detector for the given target languages.\"\"\"\n key = _detector_cache_key(target_languages)\n detector = _detector_cache.get(key)\n if detector is None:\n detector = build_detector(target_languages)\n _detector_cache[key] = detector\n return detector\n\n\ndef detect_language(text: str, detector: LanguageDetector) -> str:\n \"\"\"Detect the language of a text string using the given detector.\n\n Args:\n text: The source text to detect language for.\n detector: A lingua LanguageDetector instance (from build_detector/get_detector).\n\n Returns:\n BCP-47 language code (e.g. \"en\", \"ru\") or \"und\" if uncertain/empty.\n \"\"\"\n if not text or not text.strip():\n return \"und\"\n\n try:\n result = detector.detect_language_of(text)\n if result is None:\n return \"und\"\n iso = result.iso_code_639_1\n return iso.name.lower()\n except Exception:\n return \"und\"\n\n\ndef batch_detect(\n texts: list[str],\n target_languages: list[str] | None = None,\n detector: LanguageDetector | None = None,\n) -> list[str]:\n \"\"\"Detect language for multiple texts in batch.\n\n Args:\n texts: List of source text strings.\n target_languages: Target languages for detector building (used if detector is None).\n detector: Pre-built detector (reused across batches). If None, built from target_languages.\n\n Returns:\n List of BCP-47 language codes (one per input text), or \"und\" for uncertain.\n \"\"\"\n if detector is None:\n detector = get_detector(target_languages)\n\n return [detect_language(t, detector) for t in texts]\n# #endregion LanguageDetectService\n" + }, { "contract_id": "LLMTranslationService", "contract_type": "Module", "file_path": "backend/src/plugins/translate/_llm_call.py", "start_line": 1, - "end_line": 272, + "end_line": 278, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -50189,14 +46514,14 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region LLMTranslationService [C:4] [TYPE Module] [SEMANTICS translate, llm, call, orchestrate, retry]\n# @BRIEF LLM interaction for batch translation: call provider with retry, handle truncation\n# by recursive splitting, enforce dictionary post-processing. Orchestrates HTTP calls\n# (_llm_http) and response parsing (_llm_parse).\n# @LAYER Domain\n# @RELATION DEPENDS_ON -> [LLMProviderService]\n# @RELATION DEPENDS_ON -> [TranslationRecord], [TranslationLanguage]\n# @RELATION DEPENDS_ON -> [ContextAwarePromptBuilder]\n# @RELATION DEPENDS_ON -> [_llm_http], [_llm_parse]\n# @PRE DB session is available. LLM provider is configured on the job.\n# @POST TranslationRecord rows created for LLM-processed rows (success/fail/skip).\n# @SIDE_EFFECT HTTP calls to LLM provider API; DB writes.\n# @RATIONALE Core orchestration logic — HTTP and parse logic extracted to _llm_http.py and\n# _llm_parse.py to meet INV_7 module limit (< 400 lines).\n# @REJECTED Single monolithic call_llm_for_batch at 327 lines — split into focused sub-methods.\n\nimport json\nimport time\nimport uuid\nfrom typing import Any\n\nfrom sqlalchemy.orm import Session\n\nfrom ...core.logger import belief_scope, logger\nfrom ...models.translate import TranslationJob, TranslationLanguage, TranslationRecord\nfrom ...services.llm_prompt_templates import render_prompt\nfrom ...services.llm_provider import LLMProviderService\nfrom ._llm_http import call_openai_compatible\nfrom ._llm_parse import parse_llm_response\nfrom ._token_budget import estimate_token_budget\nfrom ._utils import _enforce_dictionary\nfrom .preview import DEFAULT_EXECUTION_PROMPT_TEMPLATE\nfrom .prompt_builder import ContextAwarePromptBuilder\n\nMAX_RETRIES_PER_BATCH = 3\n\n\n# #region LLMTranslationService [C:4] [TYPE Class]\n# @BRIEF Call LLM, handle retry/truncation, parse response, persist records.\nclass LLMTranslationService:\n \"\"\"LLM interaction for batch translation with retry, truncation handling, and parsing.\"\"\"\n\n def __init__(self, db: Session) -> None:\n self.db = db\n\n # #region call_llm_for_batch [C:3] [TYPE Function] [SEMANTICS translate, llm, batch, orchestrate]\n # @BRIEF Call LLM for a batch of rows requiring translation. Parse and persist results.\n # @PRE job has valid provider_id. batch_rows is non-empty.\n # @POST Returns dict with successful/failed/skipped counts.\n # @SIDE_EFFECT HTTP call to LLM provider; DB writes.\n def call_llm_for_batch(\n self, job: TranslationJob, run_id: str,\n batch_rows: list[dict[str, Any]], dict_matches: list[dict[str, Any]],\n batch_id: str, max_tokens: int = 8192, _recursion_depth: int = 0,\n ) -> dict[str, int]:\n \"\"\"Call LLM for a batch of rows; parse response; create records.\"\"\"\n with belief_scope(\"LLMTranslationService.call_llm_for_batch\"):\n dictionary_section = self._build_dictionary_section(dict_matches, batch_rows)\n target_languages = self._resolve_target_languages(job)\n prompt = self._build_prompt(job, batch_rows, dictionary_section, target_languages)\n\n llm_response, finish_reason, retries, last_error = self._call_llm_with_retry(\n job, prompt, batch_id, max_tokens,\n )\n if llm_response is None:\n return self._handle_llm_failure(batch_rows, run_id, batch_id, retries, last_error)\n\n if finish_reason == \"length\" and len(batch_rows) >= 2 and run_id:\n if _recursion_depth < MAX_RETRIES_PER_BATCH:\n return self._split_and_retry(job, run_id, batch_rows, dict_matches,\n batch_id, max_tokens, _recursion_depth, retries)\n logger.explore(\"Truncation recursion depth exceeded\", {\"batch_id\": batch_id, \"depth\": _recursion_depth})\n\n try:\n translations = parse_llm_response(llm_response, len(batch_rows), target_languages=target_languages)\n except ValueError as e:\n return self._handle_parse_failure(batch_rows, run_id, batch_id, retries, e)\n\n return self._create_records_from_translations(\n batch_rows, run_id, batch_id, target_languages, translations, dict_matches, retries,\n )\n # #endregion call_llm_for_batch\n\n def _build_dictionary_section(self, dict_matches, batch_rows) -> str:\n if not dict_matches:\n return \"\"\n row_context = batch_rows[0].get(\"source_data\") if batch_rows else None\n annotated = ContextAwarePromptBuilder.build_context_entries(dict_matches, row_context)\n return \"Terminology dictionary (use these translations when applicable):\\n\" + \\\n \"\\n\".join(f\"- {a}\" for a in annotated) + \"\\n\\n\"\n\n @staticmethod\n def _resolve_target_languages(job):\n langs = job.target_languages or [job.target_dialect or \"en\"]\n return [str(langs)] if not isinstance(langs, list) else langs\n\n @staticmethod\n def _build_prompt(job, batch_rows, dictionary_section, target_languages):\n target_languages_str = \", \".join(target_languages)\n rows_json = json.dumps([\n {\"row_id\": str(row.get(\"row_index\", idx)), \"text\": row.get(\"source_text\", \"\")}\n for idx, row in enumerate(batch_rows)\n ], indent=2)\n return render_prompt(DEFAULT_EXECUTION_PROMPT_TEMPLATE, {\n \"source_language\": job.source_dialect or \"SQL\",\n \"target_language\": target_languages_str,\n \"target_languages\": target_languages_str,\n \"source_dialect\": job.source_dialect or \"\",\n \"target_dialect\": job.target_dialect or \"\",\n \"translation_column\": job.translation_column or \"\",\n \"dictionary_section\": dictionary_section,\n \"rows_json\": rows_json,\n \"row_count\": str(len(batch_rows)),\n })\n\n def _call_llm_with_retry(self, job, prompt, batch_id, max_tokens):\n llm_response = None\n last_error = None\n retries = 0\n finish_reason = None\n for attempt in range(1, MAX_RETRIES_PER_BATCH + 1):\n try:\n llm_response, finish_reason = self.call_llm(job, prompt, max_tokens=max_tokens)\n break\n except Exception as e:\n last_error = str(e)\n retries += 1\n logger.explore(f\"LLM call failed (attempt {attempt})\", {\"batch_id\": batch_id, \"error\": last_error})\n if attempt < MAX_RETRIES_PER_BATCH:\n time.sleep(2 ** attempt)\n return llm_response, finish_reason, retries, last_error\n\n def _handle_llm_failure(self, batch_rows, run_id, batch_id, retries, last_error):\n for row in batch_rows:\n self.db.add(TranslationRecord(\n id=str(uuid.uuid4()), batch_id=batch_id, run_id=run_id,\n source_sql=row.get(\"source_text\", \"\"), target_sql=None,\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), status=\"FAILED\",\n error_message=f\"LLM call failed after {retries} retries: {last_error}\",\n ))\n return {\"successful\": 0, \"failed\": len(batch_rows), \"skipped\": 0, \"retries\": retries}\n\n def _split_and_retry(self, job, run_id, batch_rows, dict_matches, batch_id, max_tokens, depth, retries):\n mid = len(batch_rows) // 2\n logger.explore(\"LLM output truncated — splitting batch\",\n {\"batch_id\": batch_id, \"batch_size\": len(batch_rows), \"split_at\": mid, \"depth\": depth})\n left = self.call_llm_for_batch(job, run_id, batch_rows[:mid], dict_matches, batch_id + \"_L\", max_tokens, depth + 1)\n right = self.call_llm_for_batch(job, run_id, batch_rows[mid:], dict_matches, batch_id + \"_R\", max_tokens, depth + 1)\n return {\"successful\": left[\"successful\"] + right[\"successful\"],\n \"failed\": left[\"failed\"] + right[\"failed\"],\n \"skipped\": left[\"skipped\"] + right[\"skipped\"],\n \"retries\": retries + left.get(\"retries\", 0) + right.get(\"retries\", 0)}\n\n def _handle_parse_failure(self, batch_rows, run_id, batch_id, retries, error):\n for row in batch_rows:\n self.db.add(TranslationRecord(\n id=str(uuid.uuid4()), batch_id=batch_id, run_id=run_id,\n source_sql=row.get(\"source_text\", \"\"), target_sql=None,\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), status=\"SKIPPED\",\n error_message=f\"LLM parse failure: {error}\",\n ))\n return {\"successful\": 0, \"failed\": 0, \"skipped\": len(batch_rows), \"retries\": retries}\n\n def _create_records_from_translations(self, batch_rows, run_id, batch_id, target_languages, translations, dict_matches, retries):\n successful = failed = skipped = 0\n for row in batch_rows:\n row_id = str(row.get(\"row_index\", \"\"))\n td = translations.get(row_id)\n source_text = row.get(\"source_text\", \"\")\n detected_lang = td.get(\"detected_source_language\", \"und\") if td else \"und\"\n if td is None:\n skipped += 1\n self._add_skipped(row, run_id, batch_id, source_text, \"NULL translation\")\n continue\n plv = self._extract_per_lang_values(td, target_languages)\n if dict_matches and source_text:\n _enforce_dictionary(source_text, plv, dict_matches, batch_id, row_id)\n if not plv:\n skipped += 1\n self._add_skipped(row, run_id, batch_id, source_text, \"Empty translation\")\n continue\n successful += 1\n primary = next(iter(plv.values()), \"\")\n record = TranslationRecord(\n id=str(uuid.uuid4()), batch_id=batch_id, run_id=run_id,\n source_sql=source_text, target_sql=primary,\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), source_hash=row.get(\"_source_hash\"),\n status=\"SUCCESS\",\n )\n self.db.add(record)\n for lang_code in target_languages:\n if detected_lang != \"und\" and str(lang_code).lower() == str(detected_lang).lower():\n continue\n val = plv.get(lang_code, \"\")\n needs_review = (detected_lang == \"und\")\n if needs_review:\n logger.explore(\"undetected language\", {\"record_id\": row_id, \"language_code\": lang_code, \"text\": source_text[:100]})\n self.db.add(TranslationLanguage(\n id=str(uuid.uuid4()), record_id=record.id, language_code=lang_code,\n source_language_detected=detected_lang, translated_value=val or \"\",\n final_value=val or \"\", status=\"translated\", needs_review=needs_review,\n ))\n return {\"successful\": successful, \"failed\": failed, \"skipped\": skipped, \"retries\": retries}\n\n @staticmethod\n def _extract_per_lang_values(td, target_languages):\n plv = {}\n has_any = False\n for lc in target_languages:\n lv = td.get(lc)\n if lv is not None and str(lv).strip():\n plv[lc] = str(lv)\n has_any = True\n if not has_any:\n t = td.get(\"translation\", \"\")\n if t.strip():\n plv[target_languages[0]] = t\n has_any = True\n return plv if has_any else {}\n\n def _add_skipped(self, row, run_id, batch_id, source_text, reason):\n self.db.add(TranslationRecord(\n id=str(uuid.uuid4()), batch_id=batch_id, run_id=run_id,\n source_sql=source_text, target_sql=\"\",\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), status=\"SKIPPED\",\n error_message=reason,\n ))\n\n # #region call_llm [C:3] [TYPE Function] [SEMANTICS translate, llm, call]\n # @BRIEF Route to provider-specific LLM call implementation.\n def call_llm(self, job: TranslationJob, prompt: str, max_tokens: int = 8192) -> tuple[str, str | None]:\n \"\"\"Call the configured LLM provider with the batch prompt.\"\"\"\n with belief_scope(\"LLMTranslationService.call_llm\"):\n if not job.provider_id:\n raise ValueError(\"Job has no LLM provider configured\")\n provider_svc = LLMProviderService(self.db)\n provider = provider_svc.get_provider(job.provider_id)\n if not provider:\n raise ValueError(f\"LLM provider '{job.provider_id}' not found\")\n api_key = provider_svc.get_decrypted_api_key(job.provider_id)\n if not api_key:\n raise ValueError(f\"Could not decrypt API key for provider '{job.provider_id}'\")\n model = provider.default_model or \"gpt-4o-mini\"\n provider_type = provider.provider_type.lower() if provider.provider_type else \"openai\"\n disable_reasoning = getattr(job, 'disable_reasoning', False)\n\n if provider_type not in (\"openai\", \"openai_compatible\", \"openrouter\", \"kilo\", \"litellm\"):\n raise ValueError(f\"Unsupported provider type '{provider_type}'\")\n return call_openai_compatible(\n base_url=provider.base_url, api_key=api_key, model=model, prompt=prompt,\n provider_type=provider_type, max_tokens=max_tokens, disable_reasoning=disable_reasoning,\n )\n # #endregion call_llm\n\n # -- Static methods delegated to sub-modules for backward compat --\n @staticmethod\n def call_openai_compatible(*a, **kw):\n return call_openai_compatible(*a, **kw)\n\n @staticmethod\n def _parse_llm_response(*a, **kw):\n return parse_llm_response(*a, **kw)\n# #endregion LLMTranslationService\n# #endregion LLMTranslationService\n" + "body": "# #region LLMTranslationService [C:4] [TYPE Module] [SEMANTICS translate, llm, call, orchestrate, retry]\n# @BRIEF LLM interaction for batch translation: call provider with retry, handle truncation\n# by recursive splitting, enforce dictionary post-processing. Orchestrates HTTP calls\n# (_llm_http) and response parsing (_llm_parse).\n# Language detection is now handled locally (lingua) — LLM prompt no longer\n# requests detected_source_language; local _detected_lang takes priority.\n# @LAYER Domain\n# @RELATION DEPENDS_ON -> [LLMProviderService]\n# @RELATION DEPENDS_ON -> [TranslationRecord], [TranslationLanguage]\n# @RELATION DEPENDS_ON -> [ContextAwarePromptBuilder]\n# @RELATION DEPENDS_ON -> [_llm_http], [_llm_parse]\n# @PRE DB session is available. LLM provider is configured on the job.\n# @POST TranslationRecord rows created for LLM-processed rows (success/fail/skip).\n# @SIDE_EFFECT HTTP calls to LLM provider API; DB writes.\n# @RATIONALE Core orchestration logic — HTTP and parse logic extracted to _llm_http.py and\n# _llm_parse.py to meet INV_7 module limit (< 400 lines).\n# @REJECTED Single monolithic call_llm_for_batch at 327 lines — split into focused sub-methods.\n\nimport json\nimport time\nimport uuid\nfrom typing import Any\n\nfrom sqlalchemy.orm import Session\n\nfrom ...core.logger import belief_scope, logger\nfrom ...models.translate import TranslationJob, TranslationLanguage, TranslationRecord\nfrom ...services.llm_prompt_templates import render_prompt\nfrom ...services.llm_provider import LLMProviderService\nfrom ._llm_http import call_openai_compatible\nfrom ._llm_parse import parse_llm_response\nfrom ._token_budget import estimate_token_budget\nfrom ._utils import _enforce_dictionary\nfrom .preview import DEFAULT_EXECUTION_PROMPT_TEMPLATE\nfrom .prompt_builder import ContextAwarePromptBuilder\n\nMAX_RETRIES_PER_BATCH = 3\n\n\n# #region LLMTranslationService [C:4] [TYPE Class]\n# @BRIEF Call LLM, handle retry/truncation, parse response, persist records.\nclass LLMTranslationService:\n \"\"\"LLM interaction for batch translation with retry, truncation handling, and parsing.\"\"\"\n\n def __init__(self, db: Session) -> None:\n self.db = db\n\n # #region call_llm_for_batch [C:3] [TYPE Function] [SEMANTICS translate, llm, batch, orchestrate]\n # @BRIEF Call LLM for a batch of rows requiring translation. Parse and persist results.\n # @PRE job has valid provider_id. batch_rows is non-empty.\n # @POST Returns dict with successful/failed/skipped counts.\n # @SIDE_EFFECT HTTP call to LLM provider; DB writes.\n def call_llm_for_batch(\n self, job: TranslationJob, run_id: str,\n batch_rows: list[dict[str, Any]], dict_matches: list[dict[str, Any]],\n batch_id: str, max_tokens: int = 8192, _recursion_depth: int = 0,\n ) -> dict[str, int]:\n \"\"\"Call LLM for a batch of rows; parse response; create records.\"\"\"\n with belief_scope(\"LLMTranslationService.call_llm_for_batch\"):\n dictionary_section = self._build_dictionary_section(dict_matches, batch_rows)\n target_languages = self._resolve_target_languages(job)\n prompt = self._build_prompt(job, batch_rows, dictionary_section, target_languages)\n\n llm_response, finish_reason, retries, last_error = self._call_llm_with_retry(\n job, prompt, batch_id, max_tokens,\n )\n if llm_response is None:\n return self._handle_llm_failure(batch_rows, run_id, batch_id, retries, last_error)\n\n if finish_reason == \"length\" and len(batch_rows) >= 2 and run_id:\n if _recursion_depth < MAX_RETRIES_PER_BATCH:\n return self._split_and_retry(job, run_id, batch_rows, dict_matches,\n batch_id, max_tokens, _recursion_depth, retries)\n logger.explore(\"Truncation recursion depth exceeded\", {\"batch_id\": batch_id, \"depth\": _recursion_depth})\n\n try:\n translations = parse_llm_response(llm_response, len(batch_rows), target_languages=target_languages)\n except ValueError as e:\n return self._handle_parse_failure(batch_rows, run_id, batch_id, retries, e)\n\n return self._create_records_from_translations(\n batch_rows, run_id, batch_id, target_languages, translations, dict_matches, retries,\n )\n # #endregion call_llm_for_batch\n\n def _build_dictionary_section(self, dict_matches, batch_rows) -> str:\n if not dict_matches:\n return \"\"\n row_context = batch_rows[0].get(\"source_data\") if batch_rows else None\n annotated = ContextAwarePromptBuilder.build_context_entries(dict_matches, row_context)\n return \"Terminology dictionary (use these translations when applicable):\\n\" + \\\n \"\\n\".join(f\"- {a}\" for a in annotated) + \"\\n\\n\"\n\n @staticmethod\n def _resolve_target_languages(job):\n langs = job.target_languages or [job.target_dialect or \"en\"]\n return [str(langs)] if not isinstance(langs, list) else langs\n\n @staticmethod\n def _build_prompt(job, batch_rows, dictionary_section, target_languages):\n target_languages_str = \", \".join(target_languages)\n rows_json = json.dumps([\n {\"row_id\": str(row.get(\"row_index\", idx)), \"text\": row.get(\"source_text\", \"\")}\n for idx, row in enumerate(batch_rows)\n ], indent=2)\n return render_prompt(DEFAULT_EXECUTION_PROMPT_TEMPLATE, {\n \"source_language\": job.source_dialect or \"SQL\",\n \"target_language\": target_languages_str,\n \"target_languages\": target_languages_str,\n \"source_dialect\": job.source_dialect or \"\",\n \"target_dialect\": job.target_dialect or \"\",\n \"translation_column\": job.translation_column or \"\",\n \"dictionary_section\": dictionary_section,\n \"rows_json\": rows_json,\n \"row_count\": str(len(batch_rows)),\n })\n\n def _call_llm_with_retry(self, job, prompt, batch_id, max_tokens):\n llm_response = None\n last_error = None\n retries = 0\n finish_reason = None\n for attempt in range(1, MAX_RETRIES_PER_BATCH + 1):\n try:\n llm_response, finish_reason = self.call_llm(job, prompt, max_tokens=max_tokens)\n break\n except Exception as e:\n last_error = str(e)\n retries += 1\n logger.explore(f\"LLM call failed (attempt {attempt})\", {\"batch_id\": batch_id, \"error\": last_error})\n if attempt < MAX_RETRIES_PER_BATCH:\n time.sleep(2 ** attempt)\n return llm_response, finish_reason, retries, last_error\n\n def _handle_llm_failure(self, batch_rows, run_id, batch_id, retries, last_error):\n for row in batch_rows:\n self.db.add(TranslationRecord(\n id=str(uuid.uuid4()), batch_id=batch_id, run_id=run_id,\n source_sql=row.get(\"source_text\", \"\"), target_sql=None,\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), status=\"FAILED\",\n error_message=f\"LLM call failed after {retries} retries: {last_error}\",\n ))\n return {\"successful\": 0, \"failed\": len(batch_rows), \"skipped\": 0, \"retries\": retries}\n\n def _split_and_retry(self, job, run_id, batch_rows, dict_matches, batch_id, max_tokens, depth, retries):\n mid = len(batch_rows) // 2\n logger.explore(\"LLM output truncated — splitting batch\",\n {\"batch_id\": batch_id, \"batch_size\": len(batch_rows), \"split_at\": mid, \"depth\": depth})\n left = self.call_llm_for_batch(job, run_id, batch_rows[:mid], dict_matches, batch_id + \"_L\", max_tokens, depth + 1)\n right = self.call_llm_for_batch(job, run_id, batch_rows[mid:], dict_matches, batch_id + \"_R\", max_tokens, depth + 1)\n return {\"successful\": left[\"successful\"] + right[\"successful\"],\n \"failed\": left[\"failed\"] + right[\"failed\"],\n \"skipped\": left[\"skipped\"] + right[\"skipped\"],\n \"retries\": retries + left.get(\"retries\", 0) + right.get(\"retries\", 0)}\n\n def _handle_parse_failure(self, batch_rows, run_id, batch_id, retries, error):\n for row in batch_rows:\n self.db.add(TranslationRecord(\n id=str(uuid.uuid4()), batch_id=batch_id, run_id=run_id,\n source_sql=row.get(\"source_text\", \"\"), target_sql=None,\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), status=\"SKIPPED\",\n error_message=f\"LLM parse failure: {error}\",\n ))\n return {\"successful\": 0, \"failed\": 0, \"skipped\": len(batch_rows), \"retries\": retries}\n\n def _create_records_from_translations(self, batch_rows, run_id, batch_id, target_languages, translations, dict_matches, retries):\n successful = failed = skipped = 0\n for row in batch_rows:\n row_id = str(row.get(\"row_index\", \"\"))\n td = translations.get(row_id)\n source_text = row.get(\"source_text\", \"\")\n # ★ Local detection (from _batch_proc._detect_languages) takes priority.\n # Fallback to LLM response field for backward compatibility.\n detected_lang = row.get(\"_detected_lang\", \"und\") or \"und\"\n if detected_lang == \"und\" and td:\n detected_lang = td.get(\"detected_source_language\", \"und\") or \"und\"\n if td is None:\n skipped += 1\n self._add_skipped(row, run_id, batch_id, source_text, \"NULL translation\")\n continue\n plv = self._extract_per_lang_values(td, target_languages)\n if dict_matches and source_text:\n _enforce_dictionary(source_text, plv, dict_matches, batch_id, row_id)\n if not plv:\n skipped += 1\n self._add_skipped(row, run_id, batch_id, source_text, \"Empty translation\")\n continue\n successful += 1\n primary = next(iter(plv.values()), \"\")\n record = TranslationRecord(\n id=str(uuid.uuid4()), batch_id=batch_id, run_id=run_id,\n source_sql=source_text, target_sql=primary,\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), source_hash=row.get(\"_source_hash\"),\n status=\"SUCCESS\",\n )\n self.db.add(record)\n for lang_code in target_languages:\n if detected_lang != \"und\" and str(lang_code).lower() == str(detected_lang).lower():\n continue\n val = plv.get(lang_code, \"\")\n needs_review = (detected_lang == \"und\")\n if needs_review:\n logger.explore(\"undetected language\", {\"record_id\": row_id, \"language_code\": lang_code, \"text\": source_text[:100]})\n self.db.add(TranslationLanguage(\n id=str(uuid.uuid4()), record_id=record.id, language_code=lang_code,\n source_language_detected=detected_lang, translated_value=val or \"\",\n final_value=val or \"\", status=\"translated\", needs_review=needs_review,\n ))\n return {\"successful\": successful, \"failed\": failed, \"skipped\": skipped, \"retries\": retries}\n\n @staticmethod\n def _extract_per_lang_values(td, target_languages):\n plv = {}\n has_any = False\n for lc in target_languages:\n lv = td.get(lc)\n if lv is not None and str(lv).strip():\n plv[lc] = str(lv)\n has_any = True\n if not has_any:\n t = td.get(\"translation\", \"\")\n if t.strip():\n plv[target_languages[0]] = t\n has_any = True\n return plv if has_any else {}\n\n def _add_skipped(self, row, run_id, batch_id, source_text, reason):\n self.db.add(TranslationRecord(\n id=str(uuid.uuid4()), batch_id=batch_id, run_id=run_id,\n source_sql=source_text, target_sql=\"\",\n source_object_type=\"table_row\", source_object_id=row.get(\"row_index\"),\n source_object_name=row.get(\"source_object_name\", \"\"),\n source_data=row.get(\"source_data\"), status=\"SKIPPED\",\n error_message=reason,\n ))\n\n # #region call_llm [C:3] [TYPE Function] [SEMANTICS translate, llm, call]\n # @BRIEF Route to provider-specific LLM call implementation.\n def call_llm(self, job: TranslationJob, prompt: str, max_tokens: int = 8192) -> tuple[str, str | None]:\n \"\"\"Call the configured LLM provider with the batch prompt.\"\"\"\n with belief_scope(\"LLMTranslationService.call_llm\"):\n if not job.provider_id:\n raise ValueError(\"Job has no LLM provider configured\")\n provider_svc = LLMProviderService(self.db)\n provider = provider_svc.get_provider(job.provider_id)\n if not provider:\n raise ValueError(f\"LLM provider '{job.provider_id}' not found\")\n api_key = provider_svc.get_decrypted_api_key(job.provider_id)\n if not api_key:\n raise ValueError(f\"Could not decrypt API key for provider '{job.provider_id}'\")\n model = provider.default_model or \"gpt-4o-mini\"\n provider_type = provider.provider_type.lower() if provider.provider_type else \"openai\"\n disable_reasoning = getattr(job, 'disable_reasoning', False)\n\n if provider_type not in (\"openai\", \"openai_compatible\", \"openrouter\", \"kilo\", \"litellm\"):\n raise ValueError(f\"Unsupported provider type '{provider_type}'\")\n return call_openai_compatible(\n base_url=provider.base_url, api_key=api_key, model=model, prompt=prompt,\n provider_type=provider_type, max_tokens=max_tokens, disable_reasoning=disable_reasoning,\n )\n # #endregion call_llm\n\n # -- Static methods delegated to sub-modules for backward compat --\n @staticmethod\n def call_openai_compatible(*a, **kw):\n return call_openai_compatible(*a, **kw)\n\n @staticmethod\n def _parse_llm_response(*a, **kw):\n return parse_llm_response(*a, **kw)\n# #endregion LLMTranslationService\n# #endregion LLMTranslationService\n" }, { "contract_id": "call_llm_for_batch", "contract_type": "Function", "file_path": "backend/src/plugins/translate/_llm_call.py", - "start_line": 46, - "end_line": 82, + "start_line": 48, + "end_line": 84, "tier": "TIER_2", "complexity": 3, "metadata": { @@ -50253,8 +46578,8 @@ "contract_id": "call_llm", "contract_type": "Function", "file_path": "backend/src/plugins/translate/_llm_call.py", - "start_line": 237, - "end_line": 261, + "start_line": 243, + "end_line": 267, "tier": "TIER_2", "complexity": 3, "metadata": { @@ -52186,17 +48511,7 @@ "target_ref": "[PluginBase]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TranslatePlugin [C:2] [TYPE Module] [SEMANTICS clickhouse, translate, sql, dashboard, dialect]\n# @BRIEF TranslatePlugin skeleton for cross-dialect SQL and dashboard translation.\n# @LAYER Domain\n# @RELATION INHERITS -> [PluginBase]\n# @RATIONALE Separate plugin avoids bloating LLMAnalysisPlugin beyond fractal limit (<400 lines).\n# @REJECTED Extending LLMAnalysisPlugin would conflate two distinct feature domains.\n\nfrom typing import Any\n\nfrom ...core.plugin_base import PluginBase\n\n\n# #region TranslatePlugin [TYPE Class]\n# @BRIEF Plugin for translating SQL queries and dashboard definitions across database dialects.\n# @RELATION IMPLEMENTS -> backend.src.core.plugin_base.PluginBase\nclass TranslatePlugin(PluginBase):\n @property\n def id(self) -> str:\n return \"translate\"\n\n @property\n def name(self) -> str:\n return \"LLM Table Translation\"\n\n @property\n def description(self) -> str:\n return \"Cross-dialect SQL and dashboard translation using LLMs.\"\n\n @property\n def version(self) -> str:\n return \"1.0.0\"\n\n def get_schema(self) -> dict[str, Any]:\n return {\n \"type\": \"object\",\n \"properties\": {\n \"source_dialect\": {\n \"type\": \"string\",\n \"title\": \"Source Dialect\",\n \"description\": \"Source database dialect (e.g. PostgreSQL, ClickHouse)\",\n },\n \"target_dialect\": {\n \"type\": \"string\",\n \"title\": \"Target Dialect\",\n \"description\": \"Target database dialect (e.g. PostgreSQL, ClickHouse)\",\n },\n \"job_id\": {\n \"type\": \"string\",\n \"title\": \"Translation Job ID\",\n \"description\": \"Existing translation job to execute\",\n },\n },\n \"required\": [\"job_id\"],\n }\n\n async def execute(self, params: dict[str, Any], context: Any | None = None):\n \"\"\"Execute a translation job — implementation deferred to later phases.\"\"\"\n raise NotImplementedError(\"TranslatePlugin.execute not yet implemented\")\n# #endregion TranslatePlugin\n\n# #endregion TranslatePlugin\n" @@ -52206,7 +48521,7 @@ "contract_type": "Constant", "file_path": "backend/src/plugins/translate/preview_constants.py", "start_line": 1, - "end_line": 23, + "end_line": 24, "tier": "TIER_1", "complexity": 1, "metadata": { @@ -52271,13 +48586,13 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region DEFAULT_EXECUTION_PROMPT_TEMPLATE [C:1] [TYPE Constant] [SEMANTICS prompt, template]\n# @BRIEF Default LLM prompt template for full execution (batch translation).\n# Supports both single-language and multi-language modes via {target_languages} placeholder.\n\nDEFAULT_EXECUTION_PROMPT_TEMPLATE: str = (\n \"Translate the following database content from {source_language} to the following language(s): {target_languages}.\\n\\n\"\n \"Source dialect: {source_dialect}\\n\"\n \"Target dialect(s): {target_dialect}\\n\"\n \"Column to translate: {translation_column}\\n\\n\"\n \"{dictionary_section}\"\n \"IMPORTANT — You MUST use the terminology dictionary above. \"\n \"For any source term listed in the dictionary, you MUST use its exact target translation. \"\n \"Do not translate dictionary terms differently. \"\n \"This is mandatory, not optional.\\n\\n\"\n \"For each row, provide an accurate translation of the text into each target language.\\n\\n\"\n \"Rows to translate:\\n{rows_json}\\n\\n\"\n \"Respond with a JSON object in this exact format:\\n\"\n '{{\"rows\": [{{\"row_id\": \"\", \"detected_source_language\": \"\", \"\": \"\", \"\": \"\"}}]}}\\n'\n \"For each row, return the detected source language as a BCP-47 tag (e.g. 'en', 'ru', 'fr'), or 'und' if uncertain.\\n\"\n \"Include a separate key for EACH target language code with the translated text in that language.\\n\"\n \"Each row_id must match the index provided. Return exactly {row_count} entries.\"\n)\n# #endregion DEFAULT_EXECUTION_PROMPT_TEMPLATE\n" + "body": "# #region DEFAULT_EXECUTION_PROMPT_TEMPLATE [C:1] [TYPE Constant] [SEMANTICS prompt, template]\n# @BRIEF Default LLM prompt template for full execution (batch translation).\n# Language detection is handled locally (lingua) — prompt does not request\n# detected_source_language, saving LLM tokens.\n# Supports both single-language and multi-language modes via {target_languages} placeholder.\n\nDEFAULT_EXECUTION_PROMPT_TEMPLATE: str = (\n \"Translate the following database content from {source_language} to the following language(s): {target_languages}.\\n\\n\"\n \"Source dialect: {source_dialect}\\n\"\n \"Target dialect(s): {target_dialect}\\n\"\n \"Column to translate: {translation_column}\\n\\n\"\n \"{dictionary_section}\"\n \"IMPORTANT — You MUST use the terminology dictionary above. \"\n \"For any source term listed in the dictionary, you MUST use its exact target translation. \"\n \"Do not translate dictionary terms differently. \"\n \"This is mandatory, not optional.\\n\\n\"\n \"For each row, provide an accurate translation of the text into each target language.\\n\\n\"\n \"Rows to translate:\\n{rows_json}\\n\\n\"\n \"Respond with a JSON object in this exact format:\\n\"\n '{{\"rows\": [{{\"row_id\": \"\", \"\": \"\", \"\": \"\"}}]}}\\n'\n \"Include a separate key for EACH target language code with the translated text in that language.\\n\"\n \"Each row_id must match the index provided. Return exactly {row_count} entries.\"\n)\n# #endregion DEFAULT_EXECUTION_PROMPT_TEMPLATE\n" }, { "contract_id": "DEFAULT_PREVIEW_PROMPT_TEMPLATE", "contract_type": "Constant", "file_path": "backend/src/plugins/translate/preview_constants.py", - "start_line": 26, + "start_line": 27, "end_line": 48, "tier": "TIER_1", "complexity": 1, @@ -52343,7 +48658,7 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region DEFAULT_PREVIEW_PROMPT_TEMPLATE [C:1] [TYPE Constant] [SEMANTICS prompt, template]\n# @BRIEF Default LLM prompt template for preview (sample translation).\n\nDEFAULT_PREVIEW_PROMPT_TEMPLATE: str = (\n \"Translate the following database content.\\n\\n\"\n \"Source dialect: {source_dialect}\\n\"\n \"Column to translate: {translation_column}\\n\\n\"\n \"{dictionary_section}\"\n \"IMPORTANT — You MUST use the terminology dictionary above. \"\n \"For any source term listed in the dictionary, you MUST use its exact target translation. \"\n \"Do not translate dictionary terms differently. \"\n \"This is mandatory, not optional.\\n\\n\"\n \"Translate to the following languages: {target_languages}\\n\\n\"\n \"For each row, provide an accurate translation of the '{translation_column}' value into each language.\\n\"\n \"Consider the context columns when determining the meaning of the text.\\n\\n\"\n \"Rows to translate:\\n{rows_json}\\n\\n\"\n \"Respond with a JSON object in this exact format:\\n\"\n '{{\"rows\": [{{\"row_id\": \"\", \"detected_source_language\": \"\", \"language_code_1\": \"\", \"language_code_2\": \"\"}}]}}\\n'\n \"For each row, return the detected source language as a BCP-47 tag (e.g. 'en', 'ru', 'fr'), or 'und' if uncertain.\\n\"\n \"Include a separate key for EACH target language code with the translated text in that language.\\n\"\n \"Each row_id must match the index provided. Return exactly {row_count} entries.\"\n)\n# #endregion DEFAULT_PREVIEW_PROMPT_TEMPLATE\n" + "body": "# #region DEFAULT_PREVIEW_PROMPT_TEMPLATE [C:1] [TYPE Constant] [SEMANTICS prompt, template]\n# @BRIEF Default LLM prompt template for preview (sample translation).\n\nDEFAULT_PREVIEW_PROMPT_TEMPLATE: str = (\n \"Translate the following database content.\\n\\n\"\n \"Source dialect: {source_dialect}\\n\"\n \"Column to translate: {translation_column}\\n\\n\"\n \"{dictionary_section}\"\n \"IMPORTANT — You MUST use the terminology dictionary above. \"\n \"For any source term listed in the dictionary, you MUST use its exact target translation. \"\n \"Do not translate dictionary terms differently. \"\n \"This is mandatory, not optional.\\n\\n\"\n \"Translate to the following languages: {target_languages}\\n\\n\"\n \"For each row, provide an accurate translation of the '{translation_column}' value into each language.\\n\"\n \"Consider the context columns when determining the meaning of the text.\\n\\n\"\n \"Rows to translate:\\n{rows_json}\\n\\n\"\n \"Respond with a JSON object in this exact format:\\n\"\n '{{\"rows\": [{{\"row_id\": \"\", \"language_code_1\": \"\", \"language_code_2\": \"\"}}]}}\\n'\n \"Include a separate key for EACH target language code with the translated text in that language.\\n\"\n \"Each row_id must match the index provided. Return exactly {row_count} entries.\"\n)\n# #endregion DEFAULT_PREVIEW_PROMPT_TEMPLATE\n" }, { "contract_id": "PreviewExecutor", @@ -52456,17 +48771,7 @@ "target_ref": "[TokenEstimator]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region preview_prompt_helpers [C:2] [TYPE Module] [SEMANTICS token, budget, metadata, estimate]\n# @BRIEF Token estimation metadata and budget helpers for preview prompt building.\n# @RELATION DEPENDS_ON -> [estimate_token_budget]\n# @RELATION DEPENDS_ON -> [TokenEstimator]\n\nfrom typing import Any\n\nfrom sqlalchemy.orm import Session\n\nfrom ...core.logger import logger\nfrom ...models.translate import TranslationJob\nfrom ._token_budget import DEFAULT_CONTEXT_WINDOW, estimate_token_budget\nfrom .preview_token_estimator import TokenEstimator\n\n\n# #region estimate_token_budget_for_rows [C:2] [TYPE Function] [SEMANTICS token, budget, estimate, truncate]\n# @BRIEF Check token budget and optionally truncate source rows for preview.\n# @POST Returns adjusted source_rows, actual_row_count, and token_budget dict.\ndef estimate_token_budget_for_rows(\n source_rows: list[dict[str, Any]],\n target_languages: list[str],\n job: TranslationJob,\n provider_model: str | None,\n) -> dict[str, Any]:\n \"\"\"Check token budget and optionally truncate rows for preview.\"\"\"\n actual_row_count = len(source_rows)\n token_budget_dict = estimate_token_budget(\n source_rows=source_rows,\n target_languages=target_languages,\n source_column=job.translation_column,\n context_columns=job.context_columns,\n batch_size=actual_row_count,\n provider_info=provider_model,\n )\n\n adjusted_size = token_budget_dict[\"batch_size_adjusted\"]\n if adjusted_size < actual_row_count:\n logger.explore(\n f\"Reducing preview from {actual_row_count} to {adjusted_size} rows\",\n {\n \"estimated_input\": token_budget_dict[\"estimated_input_tokens\"],\n \"estimated_output\": token_budget_dict[\"estimated_output_tokens\"],\n \"context_window\": DEFAULT_CONTEXT_WINDOW,\n },\n )\n source_rows = source_rows[:adjusted_size]\n actual_row_count = len(source_rows)\n token_budget_dict = estimate_token_budget(\n source_rows=source_rows,\n target_languages=target_languages,\n source_column=job.translation_column,\n context_columns=job.context_columns,\n batch_size=actual_row_count,\n provider_info=provider_model,\n )\n\n return {\n \"source_rows\": source_rows,\n \"actual_row_count\": actual_row_count,\n \"token_budget\": token_budget_dict,\n }\n# #endregion estimate_token_budget_for_rows\n\n\n# #region compute_build_token_metadata [C:1] [TYPE Function] [SEMANTICS token, metadata, estimate]\n# @BRIEF Compute token estimation metadata for prompt builder return dict.\n# @POST Returns prompt, row_meta, target_languages, cost estimates, and cost_warning.\ndef compute_build_token_metadata(\n prompt: str,\n row_meta: list[dict[str, Any]],\n target_languages: list[str],\n num_languages: int,\n dictionary_section: str,\n actual_row_count: int,\n sample_size: int,\n) -> dict[str, Any]:\n \"\"\"Compute token estimation metadata for the prompt builder return dict.\"\"\"\n sample_prompt_tokens = TokenEstimator.estimate_prompt_tokens(prompt)\n sample_output_tokens = TokenEstimator.estimate_output_tokens(actual_row_count, num_languages)\n sample_total_tokens = sample_prompt_tokens + sample_output_tokens\n sample_cost = TokenEstimator.estimate_cost(sample_total_tokens)\n\n total_est_rows = sample_size * 10\n total_est_tokens = (\n TokenEstimator.estimate_prompt_tokens(\n prompt.replace(str(actual_row_count), str(total_est_rows))\n )\n + TokenEstimator.estimate_output_tokens(total_est_rows, num_languages)\n )\n total_est_cost = TokenEstimator.estimate_cost(total_est_tokens)\n\n cost_warning = TokenEstimator.check_cost_warning(\n sample_size, num_languages, sample_total_tokens, sample_cost,\n )\n\n return {\n \"prompt\": prompt,\n \"row_meta\": row_meta,\n \"target_languages\": target_languages,\n \"num_languages\": num_languages,\n \"dictionary_section\": dictionary_section,\n \"sample_prompt_tokens\": sample_prompt_tokens,\n \"sample_output_tokens\": sample_output_tokens,\n \"sample_total_tokens\": sample_total_tokens,\n \"sample_cost\": sample_cost,\n \"total_est_rows\": total_est_rows,\n \"total_est_tokens\": total_est_tokens,\n \"total_est_cost\": total_est_cost,\n \"cost_warning\": cost_warning,\n \"actual_row_count\": actual_row_count,\n }\n# #endregion compute_build_token_metadata\n# #endregion preview_prompt_helpers\n" @@ -52890,17 +49195,7 @@ "target_ref": "[DictionaryEntry:Class]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ContextAwarePromptBuilder [C:2] [TYPE Module] [SEMANTICS translate, prompt, context, dictionary]\n# @BRIEF Pure-function prompt builder that enhances dictionary entries with context annotations.\n# @LAYER Domain\n# @RELATION DEPENDS_ON -> [DictionaryEntry:Class]\n# @RATIONALE Pure functions only — no I/O, no DB access. Separated from executor for testability.\n# @REJECTED Embedding context inline in the executor would make it untestable without mocking DB.\n\n#\n# Typical workflow:\n# 1. Call build_context_entries(dictionary_entries, row_context) to get annotated, prioritized entries\n# 2. Each entry is rendered via render_entry() with optional priority flag\n# 3. Jaccard similarity >= 0.5 triggers priority flagging\n\nimport json\nfrom typing import Any\n\n# #region ContextAwarePromptBuilder [C:2] [TYPE Class]\n# @BRIEF Build LLM prompts with context-aware dictionary entries and similarity-based priority.\n\nclass ContextAwarePromptBuilder:\n \"\"\"Build LLM prompts with context-aware dictionary entries.\n\n Pure function — no I/O, no DB access.\n \"\"\"\n\n @staticmethod\n def render_entry(entry: Any, priority: bool = False, row_context: dict | None = None) -> str:\n \"\"\"Render a dictionary entry for the LLM prompt.\n\n Args:\n entry: DictionaryEntry-like object (must have source_term, target_term, has_context,\n context_data, usage_notes attrs or dict keys).\n priority: Whether this entry should be flagged as high priority.\n row_context: Optional row context dict (unused in rendering, kept for API symmetry).\n\n Returns:\n Rendered prompt line string.\n \"\"\"\n # Support both object attrs and dict access\n if isinstance(entry, dict):\n source_term = entry.get(\"source_term\", \"\")\n target_term = entry.get(\"target_term\", \"\")\n has_context = entry.get(\"has_context\", False)\n context_data = entry.get(\"context_data\")\n usage_notes = entry.get(\"usage_notes\")\n else:\n source_term = getattr(entry, \"source_term\", \"\")\n target_term = getattr(entry, \"target_term\", \"\")\n has_context = getattr(entry, \"has_context\", False)\n context_data = getattr(entry, \"context_data\", None)\n usage_notes = getattr(entry, \"usage_notes\", None)\n\n # Build base line\n line = f'\"{source_term}\" -> \"{target_term}\"'\n\n # Add context annotation if present\n if has_context and context_data:\n context_items = []\n if isinstance(context_data, dict):\n context_items = [f\"{k}={v}\" for k, v in context_data.items()]\n elif isinstance(context_data, str):\n try:\n parsed = json.loads(context_data)\n if isinstance(parsed, dict):\n context_items = [f\"{k}={v}\" for k, v in parsed.items()]\n else:\n context_items = [str(context_data)]\n except (json.JSONDecodeError, TypeError):\n context_items = [str(context_data)]\n\n context_str = \", \".join(context_items)\n\n # Truncate if too long (500 tokens ≈ 2000 chars)\n if len(context_str) > 2000:\n context_str = context_str[:1997] + \"...[truncated]\"\n\n line = f'\"{source_term}\" (context: {context_str}) -> \"{target_term}\"'\n\n # Add usage notes\n if usage_notes:\n notes = str(usage_notes)[:200] # cap at 200 chars\n line += f\" # Usage: {notes}\"\n\n # Add priority prefix\n if priority:\n line = f\"# PRIORITY (context match) — {line}\"\n\n return line\n\n @staticmethod\n def compute_context_similarity(entry_context: dict | None, row_context: dict | None) -> float:\n \"\"\"Jaccard similarity between entry context and row context. Returns 0.0-1.0.\n\n Compares the sets of lowercased string values from both contexts.\n Returns 1.0 for identical contexts, 0.0 for disjoint or missing.\n \"\"\"\n if not entry_context or not row_context:\n return 0.0\n\n entry_vals = set(str(v).lower() for v in entry_context.values() if v is not None)\n row_vals = set(str(v).lower() for v in row_context.values() if v is not None)\n\n if not entry_vals or not row_vals:\n return 0.0\n\n intersection = entry_vals & row_vals\n union = entry_vals | row_vals\n return len(intersection) / len(union)\n\n @staticmethod\n def build_context_entries(\n dictionary_entries: list[Any],\n row_context: dict | None = None,\n ) -> list[str]:\n \"\"\"Build prioritized dictionary entry list with context annotations.\n\n Args:\n dictionary_entries: List of DictionaryEntry-like objects or dicts.\n row_context: Optional dict of current row's context columns.\n\n Returns:\n List of rendered prompt strings, sorted with priority entries first.\n \"\"\"\n results: list[tuple[Any, bool]] = []\n\n for entry in dictionary_entries:\n priority = False\n if row_context:\n # Extract entry context_data\n if isinstance(entry, dict):\n entry_context = entry.get(\"context_data\")\n else:\n entry_context = getattr(entry, \"context_data\", None)\n\n if entry_context:\n similarity = ContextAwarePromptBuilder.compute_context_similarity(\n entry_context, row_context\n )\n priority = similarity >= 0.5\n\n results.append((entry, priority))\n\n # Sort: priority first, then non-priority\n results.sort(key=lambda x: (not x[1]))\n\n return [\n ContextAwarePromptBuilder.render_entry(entry, priority, row_context)\n for entry, priority in results\n ]\n# #endregion ContextAwarePromptBuilder\n\n\n# #endregion ContextAwarePromptBuilder\n" @@ -53220,6 +49515,161 @@ "tier_source": "AutoCalculated", "body": "# #region InlineCorrectionService [C:4] [TYPE Class] [SEMANTICS translate, correction, inline, dictionary]\n# @BRIEF Service for inline editing translated values and submitting corrections to dictionaries.\n# @PRE Database session is available.\n# @POST Inline edits applied with optional dictionary submission.\n# @SIDE_EFFECT Modifies TranslationLanguage entries; optionally creates DictionaryEntry rows.\n# @RELATION DEPENDS_ON -> [TranslationLanguage]\n# @RELATION DEPENDS_ON -> [TranslationRecord]\n# @RELATION DEPENDS_ON -> [DictionaryEntry]\n# @RELATION DEPENDS_ON -> [_normalize_term]\n\nfrom typing import Any\n\nfrom sqlalchemy.orm import Session\n\nfrom ...core.logger import belief_scope, logger\nfrom ...models.translate import DictionaryEntry, TranslationLanguage, TranslationRecord\nfrom ._utils import _normalize_term\n\n\nclass InlineCorrectionService:\n \"\"\"Handle inline correction of translated values with optional dictionary submission.\"\"\"\n\n @staticmethod\n def apply_inline_edit(\n db: Session,\n run_id: str,\n record_id: str,\n language_code: str,\n final_value: str,\n submit_to_dictionary: bool = False,\n dictionary_id: str | None = None,\n current_user: str | None = None,\n context_data_override: dict | None = None,\n usage_notes: str | None = None,\n keep_context: bool = True,\n ) -> dict:\n \"\"\"Apply an inline edit to a TranslationLanguage entry.\n\n Updates final_value and user_edit fields. Optionally submits to dictionary.\n Returns the updated TranslationLanguage data as a dict.\n\n Args:\n context_data_override: If provided, overrides auto-captured context data.\n usage_notes: Usage notes for the dictionary entry.\n keep_context: If False, clear context on the dictionary entry.\n \"\"\"\n lang_entry = (\n db.query(TranslationLanguage)\n .filter(\n TranslationLanguage.record_id == record_id,\n TranslationLanguage.language_code == language_code,\n )\n .first()\n )\n if not lang_entry:\n raise ValueError(f\"Language entry '{language_code}' not found for record '{record_id}'\")\n\n record = (\n db.query(TranslationRecord)\n .filter(\n TranslationRecord.id == record_id,\n TranslationRecord.run_id == run_id,\n )\n .first()\n )\n if not record:\n raise ValueError(f\"Translation record '{record_id}' not found in run '{run_id}'\")\n\n lang_entry.final_value = final_value\n lang_entry.user_edit = final_value\n if lang_entry.status in (\"pending\", \"translated\"):\n lang_entry.status = \"edited\"\n db.flush()\n\n dict_result = None\n if submit_to_dictionary and dictionary_id:\n try:\n dict_result = InlineCorrectionService.submit_correction_to_dict(\n db=db, record_id=record_id, language_code=language_code,\n dictionary_id=dictionary_id, corrected_value=final_value,\n current_user=current_user, context_data_override=context_data_override,\n usage_notes=usage_notes, keep_context=keep_context,\n )\n except Exception as e:\n dict_result = {\"error\": str(e), \"action\": \"failed\"}\n\n db.commit()\n db.refresh(lang_entry)\n\n from ...schemas.translate import TranslationLanguageResponse\n response = TranslationLanguageResponse.model_validate(lang_entry)\n result = response.model_dump()\n if dict_result:\n result[\"dictionary_result\"] = dict_result\n return result\n\n @staticmethod\n def submit_correction_to_dict(\n db: Session,\n record_id: str,\n language_code: str,\n dictionary_id: str,\n corrected_value: str,\n current_user: str | None = None,\n context_data_override: dict | None = None,\n usage_notes: str | None = None,\n keep_context: bool = True,\n ) -> dict:\n \"\"\"Submit a correction from an inline edit to the dictionary.\n\n Fetches the TranslationLanguage entry, auto-captures source text and context,\n and creates/updates a DictionaryEntry.\n\n Args:\n context_data_override: If provided, overrides auto-captured context_data.\n usage_notes: Optional usage notes to store on the dictionary entry.\n keep_context: If False, sets has_context=False and clears context_data.\n \"\"\"\n with belief_scope(\"InlineCorrectionService.submit_correction_to_dict\"):\n lang_entry = (\n db.query(TranslationLanguage)\n .filter(\n TranslationLanguage.record_id == record_id,\n TranslationLanguage.language_code == language_code,\n )\n .first()\n )\n if not lang_entry:\n raise ValueError(f\"Language entry '{language_code}' not found for record '{record_id}'\")\n\n record = (\n db.query(TranslationRecord)\n .filter(TranslationRecord.id == record_id)\n .first()\n )\n if not record:\n raise ValueError(f\"Translation record '{record_id}' not found\")\n\n source_term = record.source_sql or record.source_object_name or \"\"\n if not source_term:\n raise ValueError(\"No source text available for this record\")\n\n source_language = lang_entry.source_language_detected or \"und\"\n target_language = language_code\n\n context_data = {}\n if record.source_data:\n context_data[\"source_data\"] = record.source_data\n if record.source_object_type:\n context_data[\"source_object_type\"] = record.source_object_type\n if record.source_object_name:\n context_data[\"source_object_name\"] = record.source_object_name\n if record.source_object_id:\n context_data[\"source_object_id\"] = record.source_object_id\n\n if context_data_override is not None:\n context_data = context_data_override\n context_source = \"manual\"\n else:\n context_source = \"auto\"\n\n if not keep_context:\n context_data = None\n context_source = \"manual\"\n\n normalized = _normalize_term(source_term)\n\n existing = (\n db.query(DictionaryEntry)\n .filter(\n DictionaryEntry.dictionary_id == dictionary_id,\n DictionaryEntry.source_term_normalized == normalized,\n DictionaryEntry.source_language == source_language,\n DictionaryEntry.target_language == target_language,\n )\n .first()\n )\n\n result = {\"action\": \"created\", \"entry_id\": None, \"conflict\": None, \"message\": None}\n\n if existing:\n result[\"action\"] = \"conflict_detected\"\n result[\"conflict\"] = {\n \"source_term\": source_term,\n \"existing_target_term\": existing.target_term,\n \"submitted_target_term\": corrected_value,\n \"action\": \"keep_existing\",\n }\n result[\"message\"] = (\n f\"Existing entry found: '{existing.target_term}' \"\n f\"for source '{source_term}' ({source_language} → {target_language})\"\n )\n logger.reason(\"Correction conflict detected\", result)\n return result\n\n entry = DictionaryEntry(\n dictionary_id=dictionary_id,\n source_term=source_term.strip(),\n source_term_normalized=normalized,\n target_term=corrected_value.strip(),\n source_language=source_language,\n target_language=target_language,\n context_data=context_data if context_data else None,\n context_notes=None,\n has_context=bool(context_data) and keep_context,\n context_source=context_source,\n usage_notes=usage_notes,\n origin_source_language=source_language,\n origin_run_id=record.run_id,\n origin_row_key=record.id,\n origin_user_id=current_user,\n )\n db.add(entry)\n db.flush()\n result[\"entry_id\"] = entry.id\n result[\"message\"] = (\n f\"Entry created for '{source_term}' ({source_language}) → \"\n f\"'{corrected_value}' ({target_language})\"\n )\n logger.reflect(\"Dictionary entry created from correction\", result)\n return result\n# #endregion InlineCorrectionService\n" }, + { + "contract_id": "TargetSchemaValidation", + "contract_type": "Module", + "file_path": "backend/src/plugins/translate/service_target_schema.py", + "start_line": 1, + "end_line": 12, + "tier": "TIER_2", + "complexity": 4, + "metadata": { + "COMPLEXITY": 4, + "PURPOSE": "Проверка схемы целевой таблицы: запрос колонок через Superset SQL Lab," + }, + "relations": [], + "schema_warnings": [ + { + "code": "missing_required_tag", + "tag": "POST", + "message": "@POST is required for contract type 'Module' at C4", + "detail": { + "actual_complexity": 4, + "contract_type": "Module" + } + }, + { + "code": "missing_required_tag", + "tag": "PRE", + "message": "@PRE is required for contract type 'Module' at C4", + "detail": { + "actual_complexity": 4, + "contract_type": "Module" + } + }, + { + "code": "missing_required_tag", + "tag": "RELATION", + "message": "@RELATION is required for contract type 'Module' at C4", + "detail": { + "actual_complexity": 4, + "contract_type": "Module" + } + }, + { + "code": "missing_required_tag", + "tag": "SIDE_EFFECT", + "message": "@SIDE_EFFECT is required for contract type 'Module' at C4", + "detail": { + "actual_complexity": 4, + "contract_type": "Module" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region TargetSchemaValidation [C:4] [TYPE Module] [SEMANTICS translate, schema, validation, target-table]\n# @BRIEF Проверка схемы целевой таблицы: запрос колонок через Superset SQL Lab,\n# сравнение с ожидаемыми (из build_columns), возврат diff.\n# @LAYER Service\n# @RELATION DEPENDS_ON -> [SupersetSqlLabExecutor]\n# @RELATION DEPENDS_ON -> [schemas.translate.TargetSchemaValidationRequest]\n# @RELATION DEPENDS_ON -> [schemas.translate.TargetSchemaValidationResponse]\n# @PRE Superset окружение доступно, target_database_id валиден.\n# @POST Возвращает актуальные, ожидаемые, отсутствующие и лишние колонки.\n# @SIDE_EFFECT Выполняет SQL-запрос через Superset SQL Lab.\n# @RATIONALE C4 — оркестрация: вызов executor, парсинг ответа, diff и построение ответа.\n# #endregion TargetSchemaValidation\n" + }, + { + "contract_id": "_build_expected_columns", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/service_target_schema.py", + "start_line": 29, + "end_line": 62, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "PURPOSE": "Собирает список ожидаемых колонок по конфигурации column mapping." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region _build_expected_columns [C:2] [TYPE Function]\n# @BRIEF Собирает список ожидаемых колонок по конфигурации column mapping.\ndef _build_expected_columns(req: TargetSchemaValidationRequest) -> list[TargetSchemaColumnInfo]:\n \"\"\"Определяет, какие колонки INSERT будет пытаться заполнить.\"\"\"\n names: list[str] = []\n\n if req.target_key_cols:\n names.extend(req.target_key_cols)\n\n effective_target = req.target_column or req.translation_column\n if effective_target:\n names.append(effective_target)\n\n if req.target_language_column:\n names.append(req.target_language_column)\n\n if req.target_source_column:\n names.append(req.target_source_column)\n\n if req.target_source_language_column:\n names.append(req.target_source_language_column)\n\n names.append(\"context\")\n names.append(\"is_original\")\n\n seen: set[str] = set()\n deduped: list[str] = []\n for c in names:\n if c and c not in seen:\n deduped.append(c)\n seen.add(c)\n\n return [TargetSchemaColumnInfo(name=n) for n in deduped]\n# #endregion _build_expected_columns\n" + }, + { + "contract_id": "_extract_columns_from_rows", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/service_target_schema.py", + "start_line": 65, + "end_line": 116, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "PURPOSE": "Извлекает список колонок таблицы из data-строк результата SQL Lab." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region _extract_columns_from_rows [C:2] [TYPE Function]\n# @BRIEF Извлекает список колонок таблицы из data-строк результата SQL Lab.\n#\n# Для PostgreSQL (information_schema.columns) каждая строка содержит:\n# {\"column_name\": \"id\", \"data_type\": \"integer\", \"is_nullable\": \"YES\"}\n#\n# Для ClickHouse (DESCRIBE TABLE) каждая строка содержит:\n# {\"name\": \"id\", \"type\": \"Int32\"}\n#\n# Функция ищет имя колонки по нескольким возможным ключам и возвращает\n# унифицированный список TargetSchemaColumnInfo.\ndef _extract_columns_from_rows(data_rows: list[dict[str, Any]]) -> list[dict[str, Any]]:\n \"\"\"\n Извлекает информацию о колонках таблицы из data-строк SQL Lab ответа.\n \"\"\"\n columns_info: list[dict[str, Any]] = []\n\n for row in data_rows:\n if not isinstance(row, dict):\n continue\n\n # Имя колонки: ищем по всем возможным ключам (PG, CH, разные версии Superset)\n col_name = (\n row.get(\"column_name\") # PostgreSQL information_schema\n or row.get(\"name\") # ClickHouse DESCRIBE TABLE / MySQL SHOW COLUMNS\n or row.get(\"Field\") # MySQL SHOW COLUMNS\n )\n if not col_name:\n continue\n\n # Тип данных\n col_type = (\n row.get(\"data_type\") # PG information_schema\n or row.get(\"type\") # ClickHouse DESCRIBE TABLE\n or row.get(\"Type\") # MySQL SHOW COLUMNS\n )\n\n # Nullable\n is_nullable = row.get(\"is_nullable\") # PG\n if isinstance(is_nullable, str):\n is_nullable = is_nullable.upper() == \"YES\"\n elif not isinstance(is_nullable, bool):\n is_nullable = True # ClickHouse не возвращает is_nullable, считаем True\n\n columns_info.append({\n \"name\": str(col_name),\n \"type\": str(col_type) if col_type else None,\n \"is_nullable\": is_nullable,\n })\n\n return columns_info\n# #endregion _extract_columns_from_rows\n" + }, + { + "contract_id": "_parse_sqllab_result", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/service_target_schema.py", + "start_line": 119, + "end_line": 180, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "PURPOSE": "Извлекает data-строки из ответа Superset SQL Lab." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region _parse_sqllab_result [C:2] [TYPE Function]\n# @BRIEF Извлекает data-строки из ответа Superset SQL Lab.\n# Поддерживает 3 формата: sync mode, async polling, get_query_results.\ndef _parse_sqllab_result(result: dict[str, Any]) -> tuple[list[dict[str, Any]], bool]:\n \"\"\"\n Извлекает строки данных из ответа SQL Lab.\n Returns (data_rows, table_exists).\n \"\"\"\n if not result:\n return [], False\n\n raw = result.get(\"raw_response\", result)\n if not raw:\n return [], False\n\n data_rows = None\n\n # Формат 1: прямой ответ с data\n if \"data\" in raw and isinstance(raw[\"data\"], list):\n data_rows = raw[\"data\"]\n\n # Формат 2: вложенный result (async polling)\n elif \"result\" in raw and isinstance(raw[\"result\"], dict):\n res = raw[\"result\"]\n data_rows = res.get(\"data\") if isinstance(res.get(\"data\"), list) else None\n\n # Формат 3: ключ results (get_query_results)\n elif \"results\" in raw and isinstance(raw[\"results\"], dict):\n res = raw[\"results\"]\n if \"data\" in res and isinstance(res[\"data\"], list):\n data_rows = res[\"data\"]\n elif isinstance(res.get(\"result\"), dict):\n sub = res[\"result\"]\n data_rows = sub.get(\"data\") if isinstance(sub.get(\"data\"), list) else None\n\n # Формат 4: results — список строк (execute_and_poll sync mode возвращает так)\n elif \"results\" in raw and isinstance(raw[\"results\"], list):\n data_rows = raw[\"results\"]\n\n if data_rows is None:\n return [], False\n\n table_exists = len(data_rows) > 0\n\n # Нормализуем формат строк: если data_rows — список списков, а не словарей\n # (бывает в некоторых версиях Superset), конвертируем через columns metadata\n if data_rows and not isinstance(data_rows[0], dict):\n columns_raw = raw.get(\"columns\") or (raw.get(\"result\") or {}).get(\"columns\") or []\n col_names = []\n for c in columns_raw:\n cn = c.get(\"name\") or c.get(\"column_name\") or \"\"\n if cn:\n col_names.append(cn)\n if col_names:\n normalized = []\n for row in data_rows:\n if isinstance(row, list) and len(row) == len(col_names):\n normalized.append(dict(zip(col_names, row)))\n data_rows = normalized\n\n return data_rows, table_exists\n# #endregion _parse_sqllab_result\n" + }, + { + "contract_id": "validate_target_table_schema", + "contract_type": "Function", + "file_path": "backend/src/plugins/translate/service_target_schema.py", + "start_line": 183, + "end_line": 324, + "tier": "TIER_2", + "complexity": 4, + "metadata": { + "COMPLEXITY": 4, + "POST": "Возвращает TargetSchemaValidationResponse с diff-анализом.", + "PRE": "Superset окружение и target_database_id валидны.", + "PURPOSE": "Основная функция: проверяет схему целевой таблицы через Superset SQL Lab.", + "SIDE_EFFECT": "Выполняет SQL-запрос к information_schema через Superset SQL Lab API." + }, + "relations": [ + { + "source_id": "validate_target_table_schema", + "relation_type": "DEPENDS_ON", + "target_id": "_build_expected_columns", + "target_ref": "[_build_expected_columns]" + }, + { + "source_id": "validate_target_table_schema", + "relation_type": "DEPENDS_ON", + "target_id": "_extract_columns_from_rows", + "target_ref": "[_extract_columns_from_rows]" + }, + { + "source_id": "validate_target_table_schema", + "relation_type": "DEPENDS_ON", + "target_id": "_parse_sqllab_result", + "target_ref": "[_parse_sqllab_result]" + }, + { + "source_id": "validate_target_table_schema", + "relation_type": "DEPENDS_ON", + "target_id": "SupersetSqlLabExecutor", + "target_ref": "[SupersetSqlLabExecutor]" + } + ], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region validate_target_table_schema [C:4] [TYPE Function] [SEMANTICS translate, schema, validate, orchestrate]\n# @BRIEF Основная функция: проверяет схему целевой таблицы через Superset SQL Lab.\n# @PRE Superset окружение и target_database_id валидны.\n# @POST Возвращает TargetSchemaValidationResponse с diff-анализом.\n# @SIDE_EFFECT Выполняет SQL-запрос к information_schema через Superset SQL Lab API.\n# @RELATION DEPENDS_ON -> [_build_expected_columns]\n# @RELATION DEPENDS_ON -> [_extract_columns_from_rows]\n# @RELATION DEPENDS_ON -> [_parse_sqllab_result]\n# @RELATION DEPENDS_ON -> [SupersetSqlLabExecutor]\ndef validate_target_table_schema(\n req: TargetSchemaValidationRequest,\n config_manager: ConfigManager,\n) -> TargetSchemaValidationResponse:\n \"\"\"\n Проверяет схему целевой таблицы:\n 1. Вычисляет ожидаемые колонки\n 2. Запрашивает актуальные через Superset SQL Lab\n 3. Сравнивает и возвращает diff\n \"\"\"\n with belief_scope(\"validate_target_table_schema\"):\n # 1. Ожидаемые колонки\n expected = _build_expected_columns(req)\n expected_names = {c.name for c in expected}\n logger.reason(\"Built expected columns\",\n extra={\"payload\": {\"count\": len(expected), \"columns\": [c.name for c in expected]}})\n\n # 2. Валидация имён (SQL injection protection)\n if req.target_table and not _TABLE_NAME_RE.match(req.target_table):\n logger.explore(\"Invalid target table name rejected\",\n extra={\"payload\": {\"table\": req.target_table},\n \"error\": \"Invalid characters in table name\"})\n return TargetSchemaValidationResponse(\n table_exists=False,\n error=f\"Invalid target table name: '{req.target_table}'. Only alphanumeric and underscore allowed.\",\n expected_columns=expected, actual_columns=[],\n missing_columns=expected, extra_columns=[], all_present=False,\n )\n if req.target_schema and not _TABLE_NAME_RE.match(req.target_schema):\n logger.explore(\"Invalid target schema name rejected\",\n extra={\"payload\": {\"schema\": req.target_schema},\n \"error\": \"Invalid characters in schema name\"})\n return TargetSchemaValidationResponse(\n table_exists=False,\n error=f\"Invalid target schema name: '{req.target_schema}'. Only alphanumeric and underscore allowed.\",\n expected_columns=expected, actual_columns=[],\n missing_columns=expected, extra_columns=[], all_present=False,\n )\n\n # 3. Запрос через Superset SQL Lab\n target_ref = f\"{req.target_schema or 'public'}.{req.target_table}\"\n logger.reason(\"Querying target table schema\",\n extra={\"payload\": {\"table\": target_ref, \"env\": req.environment_id, \"db_id\": req.target_database_id}})\n\n try:\n executor = SupersetSqlLabExecutor(config_manager, req.environment_id)\n executor.resolve_database_id(target_database_id=req.target_database_id)\n backend = executor.get_database_backend() or \"\"\n\n safe_schema = (req.target_schema or \"public\").replace(\"'\", \"''\")\n safe_table = req.target_table.replace(\"'\", \"''\")\n\n # ClickHouse использует system.columns, всё остальное — information_schema.columns\n is_clickhouse = any(kw in backend.lower() for kw in (\"clickhouse\", \"ch\"))\n if is_clickhouse:\n sql = (\n f\"SELECT name, type, default_expression AS data_default \"\n f\"FROM system.columns \"\n f\"WHERE database = '{safe_schema}' \"\n f\"AND table = '{safe_table}' \"\n f\"ORDER BY position\"\n )\n else:\n sql = (\n f\"SELECT column_name, data_type, is_nullable \"\n f\"FROM information_schema.columns \"\n f\"WHERE table_schema = '{safe_schema}' \"\n f\"AND table_name = '{safe_table}' \"\n f\"ORDER BY ordinal_position\"\n )\n\n logger.reason(\"Executing SQL Lab query\",\n extra={\"payload\": {\"sql\": sql[:200], \"backend\": backend}})\n\n result = executor.execute_and_poll(sql=sql, max_polls=15, poll_interval_seconds=1.0)\n status = result.get(\"status\", \"\")\n\n if status == \"failed\":\n error_msg = result.get(\"error_message\", \"SQL Lab query failed\")\n logger.explore(\"SQL Lab query failed\",\n extra={\"payload\": {\"table\": target_ref}, \"error\": error_msg})\n return TargetSchemaValidationResponse(\n table_exists=False, error=f\"Superset SQL Lab error: {error_msg}\",\n expected_columns=expected, actual_columns=[],\n missing_columns=expected, extra_columns=[], all_present=False,\n )\n\n # Парсим data-строки результата (реальные колонки таблицы)\n data_rows, table_exists = _parse_sqllab_result(result)\n actual_cols_raw = _extract_columns_from_rows(data_rows)\n\n actual_cols = []\n for col in actual_cols_raw:\n actual_cols.append(TargetSchemaColumnInfo(\n name=col[\"name\"],\n data_type=col.get(\"type\"),\n is_nullable=col.get(\"is_nullable\", True),\n ))\n\n actual_names = {c.name for c in actual_cols}\n\n # 4. Diff\n missing = [col for col in expected if col.name not in actual_names]\n extra = [col for col in actual_cols if col.name not in expected_names]\n\n logger.reflect(\"Schema check complete\",\n extra={\"payload\": {\n \"table\": target_ref, \"table_exists\": table_exists,\n \"expected\": len(expected), \"found\": len(actual_cols),\n \"missing\": len(missing), \"extra\": len(extra),\n \"all_present\": len(missing) == 0,\n \"actual_columns\": [c.name for c in actual_cols],\n }})\n\n return TargetSchemaValidationResponse(\n table_exists=table_exists,\n expected_columns=expected,\n actual_columns=actual_cols,\n missing_columns=missing,\n extra_columns=extra,\n all_present=len(missing) == 0,\n )\n\n except Exception as e:\n logger.explore(\"Target schema validation failed\",\n extra={\"payload\": {\"table\": target_ref, \"env\": req.environment_id},\n \"error\": str(e)})\n return TargetSchemaValidationResponse(\n table_exists=False, error=f\"Failed to validate target schema: {e}\",\n expected_columns=expected, actual_columns=[],\n missing_columns=expected, extra_columns=[], all_present=False,\n )\n# #endregion validate_target_table_schema\n" + }, { "contract_id": "ServiceUtils", "contract_type": "Module", @@ -53601,17 +50051,7 @@ "target_ref": "TestSettingsAndHealthSchemas" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_validation_policy_create_accepts_structured_custom_channels [TYPE Function]\n# @RELATION BINDS_TO -> TestSettingsAndHealthSchemas\n# @BRIEF Ensure policy schema accepts structured custom channel objects with type/target fields.\ndef test_validation_policy_create_accepts_structured_custom_channels():\n payload = {\n \"name\": \"Daily Health\",\n \"environment_id\": \"env-1\",\n \"dashboard_ids\": [\"10\", \"11\"],\n \"schedule_days\": [0, 1, 2],\n \"window_start\": \"01:00:00\",\n \"window_end\": \"03:00:00\",\n \"notify_owners\": True,\n \"custom_channels\": [{\"type\": \"SLACK\", \"target\": \"#alerts\"}],\n \"alert_condition\": \"FAIL_ONLY\",\n }\n policy = ValidationPolicyCreate(**payload)\n assert policy.custom_channels is not None\n assert len(policy.custom_channels) == 1\n assert policy.custom_channels[0].type == \"SLACK\"\n assert policy.custom_channels[0].target == \"#alerts\"\n# #endregion test_validation_policy_create_accepts_structured_custom_channels\n" @@ -53635,17 +50075,7 @@ "target_ref": "TestSettingsAndHealthSchemas" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_validation_policy_create_rejects_legacy_string_custom_channels [TYPE Function]\n# @RELATION BINDS_TO -> TestSettingsAndHealthSchemas\n# @BRIEF Ensure legacy list[str] custom channel payload is rejected by typed channel contract.\ndef test_validation_policy_create_rejects_legacy_string_custom_channels():\n payload = {\n \"name\": \"Daily Health\",\n \"environment_id\": \"env-1\",\n \"dashboard_ids\": [\"10\"],\n \"schedule_days\": [0],\n \"window_start\": \"01:00:00\",\n \"window_end\": \"02:00:00\",\n \"notify_owners\": False,\n \"custom_channels\": [\"SLACK:#alerts\"],\n }\n with pytest.raises(ValidationError):\n ValidationPolicyCreate(**payload)\n# #endregion test_validation_policy_create_rejects_legacy_string_custom_channels\n" @@ -53669,17 +50099,7 @@ "target_ref": "TestSettingsAndHealthSchemas" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_dashboard_health_item_status_accepts_only_whitelisted_values [TYPE Function]\n# @RELATION BINDS_TO -> TestSettingsAndHealthSchemas\n# @BRIEF Verify strict grouped regex only accepts PASS/WARN/FAIL/UNKNOWN exact statuses.\ndef test_dashboard_health_item_status_accepts_only_whitelisted_values():\n valid = DashboardHealthItem(\n dashboard_id=\"dash-1\",\n environment_id=\"env-1\",\n status=\"PASS\",\n last_check=\"2026-03-10T10:00:00\",\n )\n assert valid.status == \"PASS\"\n with pytest.raises(ValidationError):\n DashboardHealthItem(\n dashboard_id=\"dash-1\",\n environment_id=\"env-1\",\n status=\"PASSING\",\n last_check=\"2026-03-10T10:00:00\",\n )\n with pytest.raises(ValidationError):\n DashboardHealthItem(\n dashboard_id=\"dash-1\",\n environment_id=\"env-1\",\n status=\"FAIL \",\n last_check=\"2026-03-10T10:00:00\",\n )\n# #endregion test_dashboard_health_item_status_accepts_only_whitelisted_values\n" @@ -53989,17 +50409,7 @@ "target_ref": "[DatasetReviewSchemaDtos]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetReviewSchemaComposites [C:2] [TYPE Module] [SEMANTICS pydantic, dataset, review, composite, schema]\n# @BRIEF Composite Pydantic DTOs for clarification, preview, run context, and session summary/detail responses.\n# @LAYER: API\n# @RELATION DEPENDS_ON -> [DatasetReviewSchemaDtos]\n\nfrom datetime import datetime\nfrom typing import Any\n\nfrom pydantic import BaseModel\n\nfrom src.models.dataset_review import (\n AnswerKind,\n ClarificationStatus,\n LaunchStatus,\n PreviewStatus,\n QuestionState,\n ReadinessState,\n RecommendedAction,\n SessionPhase,\n SessionStatus,\n)\nfrom src.schemas.dataset_review_pkg._dtos import (\n DatasetProfileDto,\n ExecutionMappingDto,\n ImportedFilterDto,\n SemanticFieldEntryDto,\n SemanticSourceDto,\n SessionCollaboratorDto,\n TemplateVariableDto,\n ValidationFindingDto,\n)\n\n\n# #region ClarificationOptionDto [C:1] [TYPE Class]\n# @BRIEF Clarification option DTO.\nclass ClarificationOptionDto(BaseModel):\n option_id: str\n question_id: str\n label: str\n value: str\n is_recommended: bool\n display_order: int\n\n class Config:\n from_attributes = True\n\n\n# #endregion ClarificationOptionDto\n\n\n# #region ClarificationAnswerDto [C:1] [TYPE Class]\n# @BRIEF Clarification answer DTO with feedback.\nclass ClarificationAnswerDto(BaseModel):\n answer_id: str\n question_id: str\n answer_kind: AnswerKind\n answer_value: str | None = None\n answered_by_user_id: str\n impact_summary: str | None = None\n user_feedback: str | None = None\n created_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion ClarificationAnswerDto\n\n\n# #region ClarificationQuestionDto [C:2] [TYPE Class]\n# @BRIEF Clarification question DTO with nested options and answer.\nclass ClarificationQuestionDto(BaseModel):\n question_id: str\n clarification_session_id: str\n topic_ref: str\n question_text: str\n why_it_matters: str\n current_guess: str | None = None\n priority: int\n state: QuestionState\n created_at: datetime\n updated_at: datetime\n options: list[ClarificationOptionDto] = []\n answer: ClarificationAnswerDto | None = None\n\n class Config:\n from_attributes = True\n\n\n# #endregion ClarificationQuestionDto\n\n\n# #region ClarificationSessionDto [C:2] [TYPE Class]\n# @BRIEF Clarification session DTO with nested questions.\nclass ClarificationSessionDto(BaseModel):\n clarification_session_id: str\n session_id: str\n status: ClarificationStatus\n current_question_id: str | None = None\n resolved_count: int\n remaining_count: int\n summary_delta: str | None = None\n started_at: datetime\n updated_at: datetime\n completed_at: datetime | None = None\n questions: list[ClarificationQuestionDto] = []\n\n class Config:\n from_attributes = True\n\n\n# #endregion ClarificationSessionDto\n\n\n# #region CompiledPreviewDto [C:1] [TYPE Class]\n# @BRIEF Compiled preview DTO with fingerprint and session version.\nclass CompiledPreviewDto(BaseModel):\n preview_id: str\n session_id: str\n session_version: int | None = None\n preview_status: PreviewStatus\n compiled_sql: str | None = None\n preview_fingerprint: str\n compiled_by: str\n error_code: str | None = None\n error_details: str | None = None\n compiled_at: datetime | None = None\n created_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion CompiledPreviewDto\n\n\n# #region DatasetRunContextDto [C:1] [TYPE Class]\n# @BRIEF Run context DTO with launch audit data and session version.\nclass DatasetRunContextDto(BaseModel):\n run_context_id: str\n session_id: str\n session_version: int | None = None\n dataset_ref: str\n environment_id: str\n preview_id: str\n sql_lab_session_ref: str\n effective_filters: Any\n template_params: Any\n approved_mapping_ids: list[str]\n semantic_decision_refs: list[str]\n open_warning_refs: list[str]\n launch_status: LaunchStatus\n launch_error: str | None = None\n created_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion DatasetRunContextDto\n\n\n# #region SessionSummary [C:2] [TYPE Class]\n# @BRIEF Lightweight session summary DTO for list responses.\nclass SessionSummary(BaseModel):\n session_id: str\n user_id: str\n environment_id: str\n source_kind: str\n source_input: str\n dataset_ref: str\n dataset_id: int | None = None\n version: int = 0\n session_version: int = 0\n readiness_state: ReadinessState\n recommended_action: RecommendedAction\n status: SessionStatus\n current_phase: SessionPhase\n created_at: datetime\n updated_at: datetime\n last_activity_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion SessionSummary\n\n\n# #region SessionDetail [C:2] [TYPE Class]\n# @BRIEF Full session detail DTO with all nested aggregates for detail views.\n# @RELATION INHERITS -> [SessionSummary]\nclass SessionDetail(SessionSummary):\n collaborators: list[SessionCollaboratorDto] = []\n profile: DatasetProfileDto | None = None\n findings: list[ValidationFindingDto] = []\n semantic_sources: list[SemanticSourceDto] = []\n semantic_fields: list[SemanticFieldEntryDto] = []\n imported_filters: list[ImportedFilterDto] = []\n template_variables: list[TemplateVariableDto] = []\n execution_mappings: list[ExecutionMappingDto] = []\n clarification_sessions: list[ClarificationSessionDto] = []\n previews: list[CompiledPreviewDto] = []\n run_contexts: list[DatasetRunContextDto] = []\n\n\n# #endregion SessionDetail\n\n\n# #endregion DatasetReviewSchemaComposites\n" @@ -54150,17 +50560,7 @@ "target_ref": "[SessionSummary]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region SessionDetail [C:2] [TYPE Class]\n# @BRIEF Full session detail DTO with all nested aggregates for detail views.\n# @RELATION INHERITS -> [SessionSummary]\nclass SessionDetail(SessionSummary):\n collaborators: list[SessionCollaboratorDto] = []\n profile: DatasetProfileDto | None = None\n findings: list[ValidationFindingDto] = []\n semantic_sources: list[SemanticSourceDto] = []\n semantic_fields: list[SemanticFieldEntryDto] = []\n imported_filters: list[ImportedFilterDto] = []\n template_variables: list[TemplateVariableDto] = []\n execution_mappings: list[ExecutionMappingDto] = []\n clarification_sessions: list[ClarificationSessionDto] = []\n previews: list[CompiledPreviewDto] = []\n run_contexts: list[DatasetRunContextDto] = []\n\n\n# #endregion SessionDetail\n" @@ -54186,17 +50586,7 @@ "target_ref": "[DatasetReviewModels]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetReviewSchemaDtos [C:2] [TYPE Module] [SEMANTICS pydantic, dataset, review, dto, schema]\n# @BRIEF Pydantic DTOs for session, profile, findings, collaborators, and semantic field API payloads.\n# @LAYER: API\n# @RELATION DEPENDS_ON -> [DatasetReviewModels]\n\nfrom datetime import datetime\nfrom typing import Any\n\nfrom pydantic import BaseModel\n\nfrom src.models.dataset_review import (\n ApprovalState,\n BusinessSummarySource,\n CandidateMatchType,\n CandidateStatus,\n ConfidenceState,\n FieldKind,\n FieldProvenance,\n FilterConfidenceState,\n FilterRecoveryStatus,\n FilterSource,\n FindingArea,\n FindingSeverity,\n MappingMethod,\n MappingStatus,\n MappingWarningLevel,\n ResolutionState,\n SemanticSourceStatus,\n SemanticSourceType,\n SessionCollaboratorRole,\n TrustLevel,\n VariableKind,\n)\n\n\n# #region SessionCollaboratorDto [C:1] [TYPE Class]\n# @BRIEF Collaborator DTO for session access control.\nclass SessionCollaboratorDto(BaseModel):\n user_id: str\n role: SessionCollaboratorRole\n added_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion SessionCollaboratorDto\n\n\n# #region DatasetProfileDto [C:1] [TYPE Class]\n# @BRIEF Dataset profile DTO with business summary and confidence metadata.\nclass DatasetProfileDto(BaseModel):\n profile_id: str\n session_id: str\n dataset_name: str\n schema_name: str | None = None\n database_name: str | None = None\n business_summary: str\n business_summary_source: BusinessSummarySource\n description: str | None = None\n dataset_type: str | None = None\n is_sqllab_view: bool\n completeness_score: float | None = None\n confidence_state: ConfidenceState\n has_blocking_findings: bool\n has_warning_findings: bool\n manual_summary_locked: bool\n created_at: datetime\n updated_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion DatasetProfileDto\n\n\n# #region ValidationFindingDto [C:1] [TYPE Class]\n# @BRIEF Validation finding DTO with resolution tracking.\nclass ValidationFindingDto(BaseModel):\n finding_id: str\n session_id: str\n area: FindingArea\n severity: FindingSeverity\n code: str\n title: str\n message: str\n resolution_state: ResolutionState\n resolution_note: str | None = None\n caused_by_ref: str | None = None\n created_at: datetime\n resolved_at: datetime | None = None\n\n class Config:\n from_attributes = True\n\n\n# #endregion ValidationFindingDto\n\n\n# #region SemanticSourceDto [C:1] [TYPE Class]\n# @BRIEF Semantic source DTO with trust level and status.\nclass SemanticSourceDto(BaseModel):\n source_id: str\n session_id: str\n source_type: SemanticSourceType\n source_ref: str\n source_version: str\n display_name: str\n trust_level: TrustLevel\n schema_overlap_score: float | None = None\n status: SemanticSourceStatus\n created_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion SemanticSourceDto\n\n\n# #region SemanticCandidateDto [C:1] [TYPE Class]\n# @BRIEF Semantic candidate DTO with match type and confidence score.\nclass SemanticCandidateDto(BaseModel):\n candidate_id: str\n field_id: str\n source_id: str | None = None\n candidate_rank: int\n match_type: CandidateMatchType\n confidence_score: float\n proposed_verbose_name: str | None = None\n proposed_description: str | None = None\n proposed_display_format: str | None = None\n status: CandidateStatus\n created_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion SemanticCandidateDto\n\n\n# #region SemanticFieldEntryDto [C:2] [TYPE Class]\n# @BRIEF Semantic field entry DTO with nested candidates and session version.\nclass SemanticFieldEntryDto(BaseModel):\n field_id: str\n session_id: str\n session_version: int | None = None\n field_name: str\n field_kind: FieldKind\n verbose_name: str | None = None\n description: str | None = None\n display_format: str | None = None\n provenance: FieldProvenance\n source_id: str | None = None\n source_version: str | None = None\n confidence_rank: int | None = None\n is_locked: bool\n has_conflict: bool\n needs_review: bool\n last_changed_by: str\n user_feedback: str | None = None\n created_at: datetime\n updated_at: datetime\n candidates: list[SemanticCandidateDto] = []\n\n class Config:\n from_attributes = True\n\n\n# #endregion SemanticFieldEntryDto\n\n\n# #region ImportedFilterDto [C:1] [TYPE Class]\n# @BRIEF Imported filter DTO with confidence and recovery status.\nclass ImportedFilterDto(BaseModel):\n filter_id: str\n session_id: str\n filter_name: str\n display_name: str | None = None\n raw_value: Any\n raw_value_masked: bool = False\n normalized_value: Any | None = None\n source: FilterSource\n confidence_state: FilterConfidenceState\n requires_confirmation: bool\n recovery_status: FilterRecoveryStatus\n notes: str | None = None\n created_at: datetime\n updated_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion ImportedFilterDto\n\n\n# #region TemplateVariableDto [C:1] [TYPE Class]\n# @BRIEF Template variable DTO with mapping status.\nclass TemplateVariableDto(BaseModel):\n variable_id: str\n session_id: str\n variable_name: str\n expression_source: str\n variable_kind: VariableKind\n is_required: bool\n default_value: Any | None = None\n mapping_status: MappingStatus\n created_at: datetime\n updated_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion TemplateVariableDto\n\n\n# #region ExecutionMappingDto [C:1] [TYPE Class]\n# @BRIEF Execution mapping DTO with approval state and session version.\nclass ExecutionMappingDto(BaseModel):\n mapping_id: str\n session_id: str\n session_version: int | None = None\n filter_id: str\n variable_id: str\n mapping_method: MappingMethod\n raw_input_value: Any\n effective_value: Any | None = None\n transformation_note: str | None = None\n warning_level: MappingWarningLevel | None = None\n requires_explicit_approval: bool\n approval_state: ApprovalState\n approved_by_user_id: str | None = None\n approved_at: datetime | None = None\n created_at: datetime\n updated_at: datetime\n\n class Config:\n from_attributes = True\n\n\n# #endregion ExecutionMappingDto\n\n\n# #endregion DatasetReviewSchemaDtos\n" @@ -54813,7 +51203,7 @@ "contract_type": "Module", "file_path": "backend/src/schemas/translate.py", "start_line": 1, - "end_line": 688, + "end_line": 727, "tier": "TIER_2", "complexity": 3, "metadata": { @@ -54832,7 +51222,7 @@ "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region TranslateSchemas [C:3] [TYPE Module] [SEMANTICS pydantic, translate, schema, translate-job-create]\n# @BRIEF Pydantic v2 schemas for translation API request/response serialization.\n# @LAYER API\n# @RELATION DEPENDS_ON -> pydantic\n\nfrom datetime import datetime\nfrom typing import Any\n\nimport re\n\nfrom pydantic import BaseModel, Field, field_validator\n\n\ndef _validate_bcp47_list(v: list[str] | None) -> list[str] | None:\n \"\"\"Validate that each item in target_languages is a valid BCP-47 tag.\"\"\"\n if not v:\n return v\n for tag in v:\n if not tag or not tag.strip():\n raise ValueError(f\"Invalid BCP-47 tag: '{tag}' — must be a non-empty string\")\n if not re.match(r'^[a-zA-Z]{2,8}(-[a-zA-Z0-9]{1,8})*$', tag.strip()):\n raise ValueError(\n f\"Invalid BCP-47 tag: '{tag}'. \"\n \"Expected format like 'en', 'ru', 'zh-CN', 'pt-BR'.\"\n )\n return v\n\n\n# #region TranslateJobCreate [TYPE Class]\n# @BRIEF Schema for creating a new translation job.\nclass TranslateJobCreate(BaseModel):\n name: str\n description: str | None = None\n source_dialect: str = Field(..., description=\"Source database dialect (e.g. postgresql, clickhouse)\")\n target_dialect: str = Field(..., description=\"Target database dialect (e.g. postgresql, clickhouse)\")\n database_dialect: str | None = Field(None, description=\"Detected dialect from Superset connection at save time\")\n source_datasource_id: str | None = Field(None, description=\"Superset datasource ID\")\n source_table: str | None = Field(None, description=\"Source table name\")\n target_schema: str | None = Field(None, description=\"Target table schema\")\n target_table: str | None = Field(None, description=\"Target table name\")\n source_key_cols: list[str] | None = Field(default_factory=list, description=\"Source key column names\")\n target_key_cols: list[str] | None = Field(default_factory=list, description=\"Target key column names\")\n translation_column: str | None = Field(None, description=\"Source column to translate\")\n target_column: str | None = Field(None, description=\"Target column for translated output (defaults to translation_column)\")\n target_language_column: str | None = Field(None, description=\"Target column for language code (e.g. 'ru', 'en')\")\n target_source_column: str | None = Field(None, description=\"Target column for source/original text\")\n target_source_language_column: str | None = Field(None, description=\"Target column for detected source language (BCP-47)\")\n context_columns: list[str] | None = Field(default_factory=list, description=\"Context column names\")\n target_language: str | None = Field(None, description=\"Target language code [DEPRECATED: use target_languages]\")\n target_languages: list[str] | None = Field(default_factory=list, description=\"List of BCP-47 target language codes\")\n provider_id: str | None = Field(None, description=\"LLM provider ID\")\n\n _validate_target_languages = field_validator(\"target_languages\")(_validate_bcp47_list)\n batch_size: int = Field(50, description=\"Records per batch\")\n disable_reasoning: bool = Field(False, description=\"If true, pass reasoning_effort:none to LLM to save output tokens\")\n upsert_strategy: str = Field(\"MERGE\", description=\"UPSERT strategy: MERGE, INSERT, UPDATE\")\n dictionary_ids: list[str] | None = Field(default_factory=list, description=\"Associated terminology dictionary IDs\")\n environment_id: str | None = Field(None, description=\"Superset environment ID\")\n target_database_id: str | None = Field(None, description=\"Superset database ID for SQL Lab insert target\")\n# #endregion TranslateJobCreate\n\n\n# #region TranslateJobUpdate [TYPE Class]\n# @BRIEF Schema for updating an existing translation job.\nclass TranslateJobUpdate(BaseModel):\n name: str | None = None\n description: str | None = None\n source_dialect: str | None = None\n target_dialect: str | None = None\n database_dialect: str | None = None\n source_datasource_id: str | None = None\n source_table: str | None = None\n target_schema: str | None = None\n target_table: str | None = None\n source_key_cols: list[str] | None = None\n target_key_cols: list[str] | None = None\n translation_column: str | None = None\n target_column: str | None = None\n target_language_column: str | None = None\n target_source_column: str | None = None\n target_source_language_column: str | None = None\n context_columns: list[str] | None = None\n target_language: str | None = None\n target_languages: list[str] | None = None\n provider_id: str | None = None\n\n _validate_target_languages = field_validator(\"target_languages\")(_validate_bcp47_list)\n batch_size: int | None = None\n disable_reasoning: bool | None = None\n upsert_strategy: str | None = None\n status: str | None = None\n dictionary_ids: list[str] | None = None\n environment_id: str | None = None\n target_database_id: str | None = None\n# #endregion TranslateJobUpdate\n\n\n# #region TranslateJobResponse [TYPE Class]\n# @BRIEF Schema for translation job API responses.\nclass TranslateJobResponse(BaseModel):\n id: str\n name: str\n description: str | None = None\n source_dialect: str\n target_dialect: str\n database_dialect: str | None = None\n source_datasource_id: str | None = None\n source_table: str | None = None\n target_schema: str | None = None\n target_table: str | None = None\n source_key_cols: list[str] | None = None\n target_key_cols: list[str] | None = None\n translation_column: str | None = None\n target_column: str | None = None\n target_language_column: str | None = None\n target_source_column: str | None = None\n target_source_language_column: str | None = None\n context_columns: list[str] | None = None\n # source_language removed — deprecated, per-row auto-detected\n target_languages: list[str] | None = None\n provider_id: str | None = None\n batch_size: int = 50\n disable_reasoning: bool = False\n upsert_strategy: str = \"MERGE\"\n status: str\n created_by: str | None = None\n created_at: datetime\n updated_at: datetime | None = None\n dictionary_ids: list[str] | None = None\n environment_id: str | None = None\n target_database_id: str | None = None\n\n class Config:\n from_attributes = True\n# #endregion TranslateJobResponse\n\n\n# #region DatasourceColumnResponse [TYPE Class]\n# @BRIEF Schema for datasource column metadata response.\nclass DatasourceColumnResponse(BaseModel):\n name: str\n type: str | None = None\n is_physical: bool = True\n is_dttm: bool = False\n description: str | None = None\n\n# #endregion DatasourceColumnResponse\n\n# #region DatasourceColumnsResponse [TYPE Class]\n# @BRIEF Schema for datasource columns endpoint response.\nclass DatasourceColumnsResponse(BaseModel):\n datasource_id: int\n datasource_name: str | None = None\n schema_name: str | None = None\n database_dialect: str\n columns: list[DatasourceColumnResponse] = []\n\n class Config:\n from_attributes = True\n# #endregion DatasourceColumnsResponse\n\n\n# #region DuplicateJobResponse [TYPE Class]\n# @BRIEF Schema for duplicate job response.\nclass DuplicateJobResponse(BaseModel):\n id: str\n name: str\n message: str = \"Job duplicated successfully\"\n\n class Config:\n from_attributes = True\n# #endregion DuplicateJobResponse\n\n\n# #region DictionaryCreate [TYPE Class]\n# @BRIEF Schema for creating a new terminology dictionary.\nclass DictionaryCreate(BaseModel):\n name: str\n description: str | None = None\n source_dialect: str\n target_dialect: str\n is_active: bool = True\n# #endregion DictionaryCreate\n\n\n# #region DictionaryImport [TYPE Class]\n# @BRIEF Schema for importing entries into a terminology dictionary.\nclass DictionaryImport(BaseModel):\n content: str = Field(..., description=\"CSV or TSV content as raw string\")\n delimiter: str | None = Field(None, description=\"Detected or forced delimiter: ',' or '\\\\t'. Auto-detect if omitted.\")\n on_conflict: str = Field(\"overwrite\", description=\"'overwrite' or 'keep_existing' or 'cancel'\")\n preview_only: bool = Field(False, description=\"If true, return preview without applying\")\n default_source_language: str | None = Field(None, description=\"Default BCP-47 source language when column missing in data\")\n default_target_language: str | None = Field(None, description=\"Default BCP-47 target language when column missing in data\")\n# #endregion DictionaryImport\n\n\n# #region DictionaryResponse [TYPE Class]\n# @BRIEF Schema for terminology dictionary API responses.\nclass DictionaryResponse(BaseModel):\n id: str\n name: str\n description: str | None = None\n source_dialect: str\n target_dialect: str\n is_active: bool\n created_by: str | None = None\n created_at: datetime\n updated_at: datetime | None = None\n entry_count: int | None = None\n\n class Config:\n from_attributes = True\n# #endregion DictionaryResponse\n\n\n# #region DictionaryEntryCreate [TYPE Class]\n# @BRIEF Schema for adding/editing a dictionary entry with language pair support.\nclass DictionaryEntryCreate(BaseModel):\n source_term: str = Field(..., description=\"Source term to translate\")\n target_term: str = Field(..., description=\"Target/translated term\")\n context_notes: str | None = Field(None, description=\"Optional context notes\")\n source_language: str = Field(\"und\", description=\"BCP-47 source language code (default: und)\")\n target_language: str = Field(\"und\", description=\"BCP-47 target language code (default: und)\")\n\n class Config:\n from_attributes = True\n# #endregion DictionaryEntryCreate\n\n\n# #region DictionaryEntryResponse [TYPE Class]\n# @BRIEF Schema for dictionary entry API responses.\nclass DictionaryEntryResponse(BaseModel):\n id: str\n dictionary_id: str\n source_term: str\n source_term_normalized: str\n target_term: str\n source_language: str | None = None\n target_language: str | None = None\n context_notes: str | None = None\n context_data: dict[str, Any] | None = None\n usage_notes: str | None = None\n has_context: bool = False\n context_source: str | None = None\n origin_source_language: str | None = None\n created_at: datetime\n updated_at: datetime | None = None\n\n class Config:\n from_attributes = True\n# #endregion DictionaryEntryResponse\n\n\n# #region DictionaryImportResult [TYPE Class]\n# @BRIEF Schema for dictionary import result.\nclass DictionaryImportResult(BaseModel):\n total: int = 0\n created: int = 0\n updated: int = 0\n skipped: int = 0\n errors: list[dict[str, Any]] = Field(default_factory=list)\n preview: list[dict[str, Any]] = Field(default_factory=list, description=\"Preview rows with conflict flags\")\n# #endregion DictionaryImportResult\n\n\n# #region PreviewRequest [TYPE Class]\n# @BRIEF Schema for triggering a translation preview.\nclass PreviewRequest(BaseModel):\n sample_size: int = Field(10, ge=1, le=100, description=\"Number of sample rows to preview\")\n prompt_template: str | None = Field(None, description=\"Optional custom prompt template\")\n env_id: str | None = Field(None, description=\"Superset environment ID for preview data fetch\")\n# #endregion PreviewRequest\n\n\n# #region PreviewRowUpdate [TYPE Class]\n# @BRIEF Schema for approving/editing/rejecting a preview row.\nclass PreviewRowUpdate(BaseModel):\n action: str = Field(..., description=\"'approve', 'reject', or 'edit'\")\n translation: str | None = Field(None, description=\"Edited translation (required for 'edit' action)\")\n feedback: str | None = Field(None, description=\"Optional feedback/comment\")\n language_code: str | None = Field(None, description=\"BCP-47 language code for per-language actions (optional, applies to all if omitted)\")\n# #endregion PreviewRowUpdate\n\n\n# #region PreviewAcceptResponse [TYPE Class]\n# @BRIEF Schema for preview accept response.\nclass PreviewAcceptResponse(BaseModel):\n id: str\n job_id: str\n status: str\n created_by: str | None = None\n created_at: datetime\n expires_at: datetime | None = None\n records: list['PreviewRow'] = []\n target_languages: list[str] = Field(default_factory=list, description=\"Target languages for this preview\")\n\n class Config:\n from_attributes = True\n# #endregion PreviewAcceptResponse\n\n\n# #region CostEstimate [TYPE Class]\n# @BRIEF Schema for cost estimation in preview response.\nclass CostEstimate(BaseModel):\n sample_size: int = 0\n num_languages: int = 1\n sample_prompt_tokens: int = 0\n sample_output_tokens: int = 0\n sample_total_tokens: int = 0\n sample_cost: float = 0.0\n estimated_total_rows: int = 0\n estimated_tokens: int = 0\n estimated_cost: float = 0.0\n warning: str | None = None\n# #endregion CostEstimate\n\n\n# #region TermCorrectionSubmit [TYPE Class]\n# @BRIEF Schema for submitting a term correction in a translation preview.\nclass TermCorrectionSubmit(BaseModel):\n source_term: str\n incorrect_target_term: str\n corrected_target_term: str\n dictionary_id: str | None = Field(None, description=\"Target dictionary ID (language-filtered)\")\n origin_run_id: str | None = Field(None, description=\"Run ID from which this correction originated\")\n origin_row_key: str | None = Field(None, description=\"Row key within the run\")\n context_data: dict[str, Any] | None = Field(None, description=\"Context data for the dictionary entry\")\n usage_notes: str | None = Field(None, description=\"Usage notes for the dictionary entry\")\n keep_context: bool = Field(True, description=\"If false, clear context_data and set has_context=False on dictionary entry\")\n# #endregion TermCorrectionSubmit\n\n\n# #region TermCorrectionBulkSubmit [TYPE Class]\n# @BRIEF Schema for submitting multiple term corrections atomically.\nclass TermCorrectionBulkSubmit(BaseModel):\n corrections: list[TermCorrectionSubmit]\n dictionary_id: str = Field(..., description=\"Target dictionary ID for all corrections\")\n# #endregion TermCorrectionBulkSubmit\n\n\n# #region CorrectionConflictResult [TYPE Class]\n# @BRIEF Schema for reporting conflicts in correction submission.\nclass CorrectionConflictResult(BaseModel):\n source_term: str\n existing_target_term: str\n submitted_target_term: str\n action: str = \"keep_existing\"\n# #endregion CorrectionConflictResult\n\n\n# #region CorrectionSubmitResponse [TYPE Class]\n# @BRIEF Schema for correction submission response.\nclass CorrectionSubmitResponse(BaseModel):\n entry_id: str | None = None\n action: str # \"created\", \"updated\", \"conflict_detected\", \"skipped\"\n source_term: str\n target_term: str\n conflict: CorrectionConflictResult | None = None\n message: str | None = None\n# #endregion CorrectionSubmitResponse\n\n\n# #region ScheduleConfig [TYPE Class]\n# @BRIEF Schema for configuring a recurring translation schedule.\nclass ScheduleConfig(BaseModel):\n cron_expression: str = Field(..., description=\"Cron expression for scheduling (e.g. '0 2 * * *')\")\n timezone: str = Field(\"UTC\", description=\"Timezone for the cron schedule (e.g. 'UTC', 'Europe/Moscow')\")\n is_active: bool = True\n execution_mode: str = Field(\"full\", description=\"Translation execution mode: 'full' or 'new_key_only'\")\n# #endregion ScheduleConfig\n\n\n# #region ScheduleResponse [TYPE Class]\n# @BRIEF Schema for schedule API responses.\nclass ScheduleResponse(BaseModel):\n id: str\n job_id: str\n cron_expression: str\n timezone: str\n is_active: bool\n execution_mode: str = \"full\"\n last_run_at: datetime | None = None\n next_run_at: datetime | None = None\n created_by: str | None = None\n created_at: datetime\n updated_at: datetime | None = None\n\n class Config:\n from_attributes = True\n# #endregion ScheduleResponse\n\n\n# #region NextExecutionResponse [TYPE Class]\n# @BRIEF Schema for next execution preview.\nclass NextExecutionResponse(BaseModel):\n job_id: str\n cron_expression: str\n timezone: str\n next_executions: list[str] = []\n# #endregion NextExecutionResponse\n\n\n# #region TranslationRunResponse [TYPE Class]\n# @BRIEF Schema for translation run API responses.\nclass TranslationRunResponse(BaseModel):\n id: str\n job_id: str\n status: str\n trigger_type: str | None = None\n started_at: datetime | None = None\n completed_at: datetime | None = None\n error_message: str | None = None\n total_records: int = 0\n successful_records: int = 0\n failed_records: int = 0\n skipped_records: int = 0\n insert_status: str | None = None\n superset_execution_id: str | None = None\n config_snapshot: dict[str, Any] | None = None\n key_hash: str | None = None\n config_hash: str | None = None\n dict_snapshot_hash: str | None = None\n created_by: str | None = None\n created_at: datetime\n language_stats: list['TranslationRunLanguageStatsResponse'] | None = None\n\n class Config:\n from_attributes = True\n# #endregion TranslationRunResponse\n\n\n# #region RunDetailResponse [TYPE Class]\n# @BRIEF Schema for detailed run response including records, events, and config snapshot.\nclass RunDetailResponse(BaseModel):\n run: TranslationRunResponse\n records: list[dict[str, Any]] = Field(default_factory=list, description=\"Paginated translation records\")\n events: list[dict[str, Any]] = Field(default_factory=list, description=\"Run events\")\n event_invariants: dict[str, Any] | None = None\n batch_count: int = 0\n# #endregion RunDetailResponse\n\n\n# #region RunHistoryFilter [TYPE Class]\n# @BRIEF Schema for filtering run history.\nclass RunHistoryFilter(BaseModel):\n job_id: str | None = None\n status: str | None = None\n trigger_type: str | None = None\n created_by: str | None = None\n date_from: datetime | None = None\n date_to: datetime | None = None\n page: int = 1\n page_size: int = 20\n# #endregion RunHistoryFilter\n\n\n# #region RunListResponse [TYPE Class]\n# @BRIEF Schema for paginated run list response.\nclass RunListResponse(BaseModel):\n items: list[TranslationRunResponse] = []\n total: int = 0\n page: int = 1\n page_size: int = 20\n# #endregion RunListResponse\n\n\n# #region AggregatedMetricsResponse [TYPE Class]\n# @BRIEF Schema for aggregated per-job metrics.\nclass AggregatedMetricsResponse(BaseModel):\n job_id: str\n total_runs: int = 0\n successful_runs: int = 0\n failed_runs: int = 0\n cancelled_runs: int = 0\n total_records: int = 0\n successful_records: int = 0\n failed_records: int = 0\n skipped_records: int = 0\n cumulative_tokens: int | None = None\n cumulative_cost: float | None = None\n avg_duration_ms: float | None = None\n last_run_at: datetime | None = None\n next_scheduled_run: datetime | None = None\n# #endregion AggregatedMetricsResponse\n\n\n# #region TranslationPreviewLanguageResponse [C:1] [TYPE Class]\n# @BRIEF Schema for per-language preview data in API responses.\nclass TranslationPreviewLanguageResponse(BaseModel):\n language_code: str\n source_language_detected: str | None = None\n translated_value: str | None = None\n user_edit: str | None = None\n final_value: str | None = None\n status: str = \"pending\"\n needs_review: bool = False\n\n class Config:\n from_attributes = True\n# #endregion TranslationPreviewLanguageResponse\n\n\n# #region PreviewRow [TYPE Class]\n# @BRIEF A single row in a translation preview showing original and translated content side by side.\nclass PreviewRow(BaseModel):\n id: str\n source_sql: str | None = None\n target_sql: str | None = None\n source_object_type: str | None = None\n source_object_id: str | None = None\n source_object_name: str | None = None\n status: str = \"PENDING\"\n feedback: str | None = None\n source_language_detected: str | None = None\n needs_review: bool = False\n languages: list[TranslationPreviewLanguageResponse] = Field(default_factory=list, description=\"Per-language translation data\")\n# #endregion PreviewRow\n\n\n# #region TranslationPreviewResponse [TYPE Class]\n# @BRIEF Schema for translation preview session API responses.\nclass TranslationPreviewResponse(BaseModel):\n id: str\n job_id: str\n run_id: str | None = None\n status: str\n created_by: str | None = None\n created_at: datetime\n expires_at: datetime | None = None\n records: list[PreviewRow] = []\n target_languages: list[str] = Field(default_factory=list, description=\"Target languages for this preview\")\n cost_estimate: CostEstimate | None = None\n\n class Config:\n from_attributes = True\n# #endregion TranslationPreviewResponse\n\n\n# #region TranslationBatchResponse [TYPE Class]\n# @BRIEF Schema for translation batch API responses.\nclass TranslationBatchResponse(BaseModel):\n id: str\n run_id: str\n batch_index: int\n status: str\n total_records: int = 0\n successful_records: int = 0\n failed_records: int = 0\n started_at: datetime | None = None\n completed_at: datetime | None = None\n created_at: datetime\n\n class Config:\n from_attributes = True\n# #endregion TranslationBatchResponse\n\n\n# #region MetricsResponse [TYPE Class]\n# @BRIEF Schema for translation metrics API responses.\nclass MetricsResponse(BaseModel):\n job_id: str\n snapshot_date: datetime\n total_jobs: int = 0\n total_runs: int = 0\n total_records: int = 0\n successful_records: int = 0\n failed_records: int = 0\n skipped_records: int = 0\n avg_duration_ms: int | None = None\n p50_duration_ms: int | None = None\n p95_duration_ms: int | None = None\n p99_duration_ms: int | None = None\n\n class Config:\n from_attributes = True\n# #endregion MetricsResponse\n\n\n# #region TranslationLanguageResponse [C:1] [TYPE Class]\n# @BRIEF Schema for per-language translation data in API responses.\nclass TranslationLanguageResponse(BaseModel):\n language_code: str\n source_language_detected: str | None = None\n translated_value: str | None = None\n user_edit: str | None = None\n final_value: str | None = None\n status: str = \"pending\"\n needs_review: bool = False\n language_overridden: bool = False\n\n class Config:\n from_attributes = True\n# #endregion TranslationLanguageResponse\n\n\n# #region TranslationRunLanguageStatsResponse [C:1] [TYPE Class]\n# @BRIEF Schema for per-language statistics in run API responses.\nclass TranslationRunLanguageStatsResponse(BaseModel):\n language_code: str\n total_rows: int = 0\n translated_rows: int = 0\n failed_rows: int = 0\n skipped_rows: int = 0\n token_count: int = 0\n estimated_cost: float = 0.0\n\n class Config:\n from_attributes = True\n# #endregion TranslationRunLanguageStatsResponse\n\n\n# #region OverrideLanguageRequest [C:1] [TYPE Class]\n# @BRIEF Schema for manually overriding the detected source language of a translation.\nclass OverrideLanguageRequest(BaseModel):\n source_language: str = Field(..., description=\"BCP-47 language code to override with\")\n# #endregion OverrideLanguageRequest\n\n\n# #region BulkFindReplaceRequest [C:1] [TYPE Class]\n# @BRIEF Schema for bulk find-and-replace within translations for a target language.\nclass BulkFindReplaceRequest(BaseModel):\n find_pattern: str = Field(..., description=\"Text or regex pattern to find\", max_length=500)\n is_regex: bool = Field(False, description=\"Whether find_pattern is a regular expression\")\n replacement_text: str = Field(..., description=\"Replacement text\")\n target_language: str = Field(..., description=\"BCP-47 language code to target\")\n preview: bool = Field(True, description=\"If true, return matches without applying replacements\")\n submit_to_dictionary: bool = Field(False, description=\"If true, also submit corrections to dictionary\")\n dictionary_id: str | None = Field(None, description=\"Target dictionary ID for submitting corrections\")\n usage_notes: str | None = Field(None, description=\"Usage notes for dictionary entries\")\n submit_to_dictionary_with_context: bool = Field(False, description=\"If true, auto-capture source row context when submitting to dictionary\")\n\n @field_validator(\"find_pattern\")\n @classmethod\n def validate_pattern_length(cls, v: str) -> str:\n \"\"\"Reject patterns longer than 500 characters to prevent ReDoS.\"\"\"\n if len(v) > 500:\n raise ValueError(\"Pattern too long (max 500 characters)\")\n return v\n# #endregion BulkFindReplaceRequest\n\n\n# #region InlineEditRequest [C:1] [TYPE Class]\n# @BRIEF Schema for inline editing a translated value on a completed run result.\nclass InlineEditRequest(BaseModel):\n final_value: str = Field(..., description=\"Corrected/edited translation text\")\n submit_to_dictionary: bool = Field(False, description=\"If true, also save correction to dictionary\")\n dictionary_id: str | None = Field(None, description=\"Target dictionary ID for saving correction\")\n context_data_override: dict[str, Any] | None = Field(None, description=\"Override auto-captured context data for dictionary entry\")\n usage_notes: str | None = Field(None, description=\"Usage notes for the dictionary entry\")\n keep_context: bool = Field(True, description=\"If false, clear context_data and set has_context=False on dictionary entry\")\n# #endregion InlineEditRequest\n\n\n# #region BulkReplacePreviewItem [C:1] [TYPE Class]\n# @BRIEF A single item in a bulk replace preview list.\nclass BulkReplacePreviewItem(BaseModel):\n record_id: str\n language_code: str\n source_term: str\n current_value: str\n new_value: str\n source_language_detected: str | None = None\n# #endregion BulkReplacePreviewItem\n\n\n# #region BulkReplaceResponse [C:1] [TYPE Class]\n# @BRIEF Response for bulk find-and-replace operation.\nclass BulkReplaceResponse(BaseModel):\n rows_affected: int = 0\n corrections_submitted: int = 0\n preview: list[BulkReplacePreviewItem] = Field(default_factory=list)\n# #endregion BulkReplaceResponse\n\n\n# #region InlineCorrectionSubmit [C:1] [TYPE Class]\n# @BRIEF Schema for submitting an inline correction for a specific translated record.\nclass InlineCorrectionSubmit(BaseModel):\n record_id: str = Field(..., description=\"Translation record ID\")\n language_code: str = Field(..., description=\"BCP-47 language code of the translated value\")\n source_term: str = Field(..., description=\"Original source term that was incorrectly translated\")\n corrected_term: str = Field(..., description=\"Corrected translation\")\n dictionary_id: str = Field(..., description=\"Target dictionary ID to also save the correction\")\n source_language: str = Field(..., description=\"BCP-47 source language code\")\n# #endregion InlineCorrectionSubmit\n\n\n# #endregion TranslateSchemas\n" + "body": "# #region TranslateSchemas [C:3] [TYPE Module] [SEMANTICS pydantic, translate, schema, translate-job-create]\n# @BRIEF Pydantic v2 schemas for translation API request/response serialization.\n# @LAYER API\n# @RELATION DEPENDS_ON -> pydantic\n\nfrom datetime import datetime\nfrom typing import Any\n\nimport re\n\nfrom pydantic import BaseModel, Field, field_validator\n\n\ndef _validate_bcp47_list(v: list[str] | None) -> list[str] | None:\n \"\"\"Validate that each item in target_languages is a valid BCP-47 tag.\"\"\"\n if not v:\n return v\n for tag in v:\n if not tag or not tag.strip():\n raise ValueError(f\"Invalid BCP-47 tag: '{tag}' — must be a non-empty string\")\n if not re.match(r'^[a-zA-Z]{2,8}(-[a-zA-Z0-9]{1,8})*$', tag.strip()):\n raise ValueError(\n f\"Invalid BCP-47 tag: '{tag}'. \"\n \"Expected format like 'en', 'ru', 'zh-CN', 'pt-BR'.\"\n )\n return v\n\n\n# #region TranslateJobCreate [TYPE Class]\n# @BRIEF Schema for creating a new translation job.\nclass TranslateJobCreate(BaseModel):\n name: str\n description: str | None = None\n source_dialect: str = Field(..., description=\"Source database dialect (e.g. postgresql, clickhouse)\")\n target_dialect: str = Field(..., description=\"Target database dialect (e.g. postgresql, clickhouse)\")\n database_dialect: str | None = Field(None, description=\"Detected dialect from Superset connection at save time\")\n source_datasource_id: str | None = Field(None, description=\"Superset datasource ID\")\n source_table: str | None = Field(None, description=\"Source table name\")\n target_schema: str | None = Field(None, description=\"Target table schema\")\n target_table: str | None = Field(None, description=\"Target table name\")\n source_key_cols: list[str] | None = Field(default_factory=list, description=\"Source key column names\")\n target_key_cols: list[str] | None = Field(default_factory=list, description=\"Target key column names\")\n translation_column: str | None = Field(None, description=\"Source column to translate\")\n target_column: str | None = Field(None, description=\"Target column for translated output (defaults to translation_column)\")\n target_language_column: str | None = Field(None, description=\"Target column for language code (e.g. 'ru', 'en')\")\n target_source_column: str | None = Field(None, description=\"Target column for source/original text\")\n target_source_language_column: str | None = Field(None, description=\"Target column for detected source language (BCP-47)\")\n context_columns: list[str] | None = Field(default_factory=list, description=\"Context column names\")\n target_language: str | None = Field(None, description=\"Target language code [DEPRECATED: use target_languages]\")\n target_languages: list[str] | None = Field(default_factory=list, description=\"List of BCP-47 target language codes\")\n provider_id: str | None = Field(None, description=\"LLM provider ID\")\n\n _validate_target_languages = field_validator(\"target_languages\")(_validate_bcp47_list)\n batch_size: int = Field(50, description=\"Records per batch\")\n disable_reasoning: bool = Field(False, description=\"If true, pass reasoning_effort:none to LLM to save output tokens\")\n upsert_strategy: str = Field(\"MERGE\", description=\"UPSERT strategy: MERGE, INSERT, UPDATE\")\n dictionary_ids: list[str] | None = Field(default_factory=list, description=\"Associated terminology dictionary IDs\")\n environment_id: str | None = Field(None, description=\"Superset environment ID\")\n target_database_id: str | None = Field(None, description=\"Superset database ID for SQL Lab insert target\")\n# #endregion TranslateJobCreate\n\n\n# #region TranslateJobUpdate [TYPE Class]\n# @BRIEF Schema for updating an existing translation job.\nclass TranslateJobUpdate(BaseModel):\n name: str | None = None\n description: str | None = None\n source_dialect: str | None = None\n target_dialect: str | None = None\n database_dialect: str | None = None\n source_datasource_id: str | None = None\n source_table: str | None = None\n target_schema: str | None = None\n target_table: str | None = None\n source_key_cols: list[str] | None = None\n target_key_cols: list[str] | None = None\n translation_column: str | None = None\n target_column: str | None = None\n target_language_column: str | None = None\n target_source_column: str | None = None\n target_source_language_column: str | None = None\n context_columns: list[str] | None = None\n target_language: str | None = None\n target_languages: list[str] | None = None\n provider_id: str | None = None\n\n _validate_target_languages = field_validator(\"target_languages\")(_validate_bcp47_list)\n batch_size: int | None = None\n disable_reasoning: bool | None = None\n upsert_strategy: str | None = None\n status: str | None = None\n dictionary_ids: list[str] | None = None\n environment_id: str | None = None\n target_database_id: str | None = None\n# #endregion TranslateJobUpdate\n\n\n# #region TranslateJobResponse [TYPE Class]\n# @BRIEF Schema for translation job API responses.\nclass TranslateJobResponse(BaseModel):\n id: str\n name: str\n description: str | None = None\n source_dialect: str\n target_dialect: str\n database_dialect: str | None = None\n source_datasource_id: str | None = None\n source_table: str | None = None\n target_schema: str | None = None\n target_table: str | None = None\n source_key_cols: list[str] | None = None\n target_key_cols: list[str] | None = None\n translation_column: str | None = None\n target_column: str | None = None\n target_language_column: str | None = None\n target_source_column: str | None = None\n target_source_language_column: str | None = None\n context_columns: list[str] | None = None\n # source_language removed — deprecated, per-row auto-detected\n target_languages: list[str] | None = None\n provider_id: str | None = None\n batch_size: int = 50\n disable_reasoning: bool = False\n upsert_strategy: str = \"MERGE\"\n status: str\n created_by: str | None = None\n created_at: datetime\n updated_at: datetime | None = None\n dictionary_ids: list[str] | None = None\n environment_id: str | None = None\n target_database_id: str | None = None\n\n class Config:\n from_attributes = True\n# #endregion TranslateJobResponse\n\n\n# #region DatasourceColumnResponse [TYPE Class]\n# @BRIEF Schema for datasource column metadata response.\nclass DatasourceColumnResponse(BaseModel):\n name: str\n type: str | None = None\n is_physical: bool = True\n is_dttm: bool = False\n description: str | None = None\n\n# #endregion DatasourceColumnResponse\n\n# #region DatasourceColumnsResponse [TYPE Class]\n# @BRIEF Schema for datasource columns endpoint response.\nclass DatasourceColumnsResponse(BaseModel):\n datasource_id: int\n datasource_name: str | None = None\n schema_name: str | None = None\n database_dialect: str\n columns: list[DatasourceColumnResponse] = []\n\n class Config:\n from_attributes = True\n# #endregion DatasourceColumnsResponse\n\n\n# #region DuplicateJobResponse [TYPE Class]\n# @BRIEF Schema for duplicate job response.\nclass DuplicateJobResponse(BaseModel):\n id: str\n name: str\n message: str = \"Job duplicated successfully\"\n\n class Config:\n from_attributes = True\n# #endregion DuplicateJobResponse\n\n\n# #region DictionaryCreate [TYPE Class]\n# @BRIEF Schema for creating a new terminology dictionary.\nclass DictionaryCreate(BaseModel):\n name: str\n description: str | None = None\n source_dialect: str\n target_dialect: str\n is_active: bool = True\n# #endregion DictionaryCreate\n\n\n# #region DictionaryImport [TYPE Class]\n# @BRIEF Schema for importing entries into a terminology dictionary.\nclass DictionaryImport(BaseModel):\n content: str = Field(..., description=\"CSV or TSV content as raw string\")\n delimiter: str | None = Field(None, description=\"Detected or forced delimiter: ',' or '\\\\t'. Auto-detect if omitted.\")\n on_conflict: str = Field(\"overwrite\", description=\"'overwrite' or 'keep_existing' or 'cancel'\")\n preview_only: bool = Field(False, description=\"If true, return preview without applying\")\n default_source_language: str | None = Field(None, description=\"Default BCP-47 source language when column missing in data\")\n default_target_language: str | None = Field(None, description=\"Default BCP-47 target language when column missing in data\")\n# #endregion DictionaryImport\n\n\n# #region DictionaryResponse [TYPE Class]\n# @BRIEF Schema for terminology dictionary API responses.\nclass DictionaryResponse(BaseModel):\n id: str\n name: str\n description: str | None = None\n source_dialect: str\n target_dialect: str\n is_active: bool\n created_by: str | None = None\n created_at: datetime\n updated_at: datetime | None = None\n entry_count: int | None = None\n\n class Config:\n from_attributes = True\n# #endregion DictionaryResponse\n\n\n# #region DictionaryEntryCreate [TYPE Class]\n# @BRIEF Schema for adding/editing a dictionary entry with language pair support.\nclass DictionaryEntryCreate(BaseModel):\n source_term: str = Field(..., description=\"Source term to translate\")\n target_term: str = Field(..., description=\"Target/translated term\")\n context_notes: str | None = Field(None, description=\"Optional context notes\")\n source_language: str = Field(\"und\", description=\"BCP-47 source language code (default: und)\")\n target_language: str = Field(\"und\", description=\"BCP-47 target language code (default: und)\")\n\n class Config:\n from_attributes = True\n# #endregion DictionaryEntryCreate\n\n\n# #region DictionaryEntryResponse [TYPE Class]\n# @BRIEF Schema for dictionary entry API responses.\nclass DictionaryEntryResponse(BaseModel):\n id: str\n dictionary_id: str\n source_term: str\n source_term_normalized: str\n target_term: str\n source_language: str | None = None\n target_language: str | None = None\n context_notes: str | None = None\n context_data: dict[str, Any] | None = None\n usage_notes: str | None = None\n has_context: bool = False\n context_source: str | None = None\n origin_source_language: str | None = None\n created_at: datetime\n updated_at: datetime | None = None\n\n class Config:\n from_attributes = True\n# #endregion DictionaryEntryResponse\n\n\n# #region DictionaryImportResult [TYPE Class]\n# @BRIEF Schema for dictionary import result.\nclass DictionaryImportResult(BaseModel):\n total: int = 0\n created: int = 0\n updated: int = 0\n skipped: int = 0\n errors: list[dict[str, Any]] = Field(default_factory=list)\n preview: list[dict[str, Any]] = Field(default_factory=list, description=\"Preview rows with conflict flags\")\n# #endregion DictionaryImportResult\n\n\n# #region PreviewRequest [TYPE Class]\n# @BRIEF Schema for triggering a translation preview.\nclass PreviewRequest(BaseModel):\n sample_size: int = Field(10, ge=1, le=100, description=\"Number of sample rows to preview\")\n prompt_template: str | None = Field(None, description=\"Optional custom prompt template\")\n env_id: str | None = Field(None, description=\"Superset environment ID for preview data fetch\")\n# #endregion PreviewRequest\n\n\n# #region PreviewRowUpdate [TYPE Class]\n# @BRIEF Schema for approving/editing/rejecting a preview row.\nclass PreviewRowUpdate(BaseModel):\n action: str = Field(..., description=\"'approve', 'reject', or 'edit'\")\n translation: str | None = Field(None, description=\"Edited translation (required for 'edit' action)\")\n feedback: str | None = Field(None, description=\"Optional feedback/comment\")\n language_code: str | None = Field(None, description=\"BCP-47 language code for per-language actions (optional, applies to all if omitted)\")\n# #endregion PreviewRowUpdate\n\n\n# #region PreviewAcceptResponse [TYPE Class]\n# @BRIEF Schema for preview accept response.\nclass PreviewAcceptResponse(BaseModel):\n id: str\n job_id: str\n status: str\n created_by: str | None = None\n created_at: datetime\n expires_at: datetime | None = None\n records: list['PreviewRow'] = []\n target_languages: list[str] = Field(default_factory=list, description=\"Target languages for this preview\")\n\n class Config:\n from_attributes = True\n# #endregion PreviewAcceptResponse\n\n\n# #region CostEstimate [TYPE Class]\n# @BRIEF Schema for cost estimation in preview response.\nclass CostEstimate(BaseModel):\n sample_size: int = 0\n num_languages: int = 1\n sample_prompt_tokens: int = 0\n sample_output_tokens: int = 0\n sample_total_tokens: int = 0\n sample_cost: float = 0.0\n estimated_total_rows: int = 0\n estimated_tokens: int = 0\n estimated_cost: float = 0.0\n warning: str | None = None\n# #endregion CostEstimate\n\n\n# #region TermCorrectionSubmit [TYPE Class]\n# @BRIEF Schema for submitting a term correction in a translation preview.\nclass TermCorrectionSubmit(BaseModel):\n source_term: str\n incorrect_target_term: str\n corrected_target_term: str\n dictionary_id: str | None = Field(None, description=\"Target dictionary ID (language-filtered)\")\n origin_run_id: str | None = Field(None, description=\"Run ID from which this correction originated\")\n origin_row_key: str | None = Field(None, description=\"Row key within the run\")\n context_data: dict[str, Any] | None = Field(None, description=\"Context data for the dictionary entry\")\n usage_notes: str | None = Field(None, description=\"Usage notes for the dictionary entry\")\n keep_context: bool = Field(True, description=\"If false, clear context_data and set has_context=False on dictionary entry\")\n# #endregion TermCorrectionSubmit\n\n\n# #region TermCorrectionBulkSubmit [TYPE Class]\n# @BRIEF Schema for submitting multiple term corrections atomically.\nclass TermCorrectionBulkSubmit(BaseModel):\n corrections: list[TermCorrectionSubmit]\n dictionary_id: str = Field(..., description=\"Target dictionary ID for all corrections\")\n# #endregion TermCorrectionBulkSubmit\n\n\n# #region CorrectionConflictResult [TYPE Class]\n# @BRIEF Schema for reporting conflicts in correction submission.\nclass CorrectionConflictResult(BaseModel):\n source_term: str\n existing_target_term: str\n submitted_target_term: str\n action: str = \"keep_existing\"\n# #endregion CorrectionConflictResult\n\n\n# #region CorrectionSubmitResponse [TYPE Class]\n# @BRIEF Schema for correction submission response.\nclass CorrectionSubmitResponse(BaseModel):\n entry_id: str | None = None\n action: str # \"created\", \"updated\", \"conflict_detected\", \"skipped\"\n source_term: str\n target_term: str\n conflict: CorrectionConflictResult | None = None\n message: str | None = None\n# #endregion CorrectionSubmitResponse\n\n\n# #region ScheduleConfig [TYPE Class]\n# @BRIEF Schema for configuring a recurring translation schedule.\nclass ScheduleConfig(BaseModel):\n cron_expression: str = Field(..., description=\"Cron expression for scheduling (e.g. '0 2 * * *')\")\n timezone: str = Field(\"UTC\", description=\"Timezone for the cron schedule (e.g. 'UTC', 'Europe/Moscow')\")\n is_active: bool = True\n execution_mode: str = Field(\"full\", description=\"Translation execution mode: 'full' or 'new_key_only'\")\n# #endregion ScheduleConfig\n\n\n# #region ScheduleResponse [TYPE Class]\n# @BRIEF Schema for schedule API responses.\nclass ScheduleResponse(BaseModel):\n id: str\n job_id: str\n cron_expression: str\n timezone: str\n is_active: bool\n execution_mode: str = \"full\"\n last_run_at: datetime | None = None\n next_run_at: datetime | None = None\n created_by: str | None = None\n created_at: datetime\n updated_at: datetime | None = None\n\n class Config:\n from_attributes = True\n# #endregion ScheduleResponse\n\n\n# #region NextExecutionResponse [TYPE Class]\n# @BRIEF Schema for next execution preview.\nclass NextExecutionResponse(BaseModel):\n job_id: str\n cron_expression: str\n timezone: str\n next_executions: list[str] = []\n# #endregion NextExecutionResponse\n\n\n# #region TranslationRunResponse [TYPE Class]\n# @BRIEF Schema for translation run API responses.\nclass TranslationRunResponse(BaseModel):\n id: str\n job_id: str\n status: str\n trigger_type: str | None = None\n started_at: datetime | None = None\n completed_at: datetime | None = None\n error_message: str | None = None\n total_records: int = 0\n successful_records: int = 0\n failed_records: int = 0\n skipped_records: int = 0\n insert_status: str | None = None\n superset_execution_id: str | None = None\n config_snapshot: dict[str, Any] | None = None\n key_hash: str | None = None\n config_hash: str | None = None\n dict_snapshot_hash: str | None = None\n created_by: str | None = None\n created_at: datetime\n language_stats: list['TranslationRunLanguageStatsResponse'] | None = None\n\n class Config:\n from_attributes = True\n# #endregion TranslationRunResponse\n\n\n# #region RunDetailResponse [TYPE Class]\n# @BRIEF Schema for detailed run response including records, events, and config snapshot.\nclass RunDetailResponse(BaseModel):\n run: TranslationRunResponse\n records: list[dict[str, Any]] = Field(default_factory=list, description=\"Paginated translation records\")\n events: list[dict[str, Any]] = Field(default_factory=list, description=\"Run events\")\n event_invariants: dict[str, Any] | None = None\n batch_count: int = 0\n# #endregion RunDetailResponse\n\n\n# #region RunHistoryFilter [TYPE Class]\n# @BRIEF Schema for filtering run history.\nclass RunHistoryFilter(BaseModel):\n job_id: str | None = None\n status: str | None = None\n trigger_type: str | None = None\n created_by: str | None = None\n date_from: datetime | None = None\n date_to: datetime | None = None\n page: int = 1\n page_size: int = 20\n# #endregion RunHistoryFilter\n\n\n# #region RunListResponse [TYPE Class]\n# @BRIEF Schema for paginated run list response.\nclass RunListResponse(BaseModel):\n items: list[TranslationRunResponse] = []\n total: int = 0\n page: int = 1\n page_size: int = 20\n# #endregion RunListResponse\n\n\n# #region AggregatedMetricsResponse [TYPE Class]\n# @BRIEF Schema for aggregated per-job metrics.\nclass AggregatedMetricsResponse(BaseModel):\n job_id: str\n total_runs: int = 0\n successful_runs: int = 0\n failed_runs: int = 0\n cancelled_runs: int = 0\n total_records: int = 0\n successful_records: int = 0\n failed_records: int = 0\n skipped_records: int = 0\n cumulative_tokens: int | None = None\n cumulative_cost: float | None = None\n avg_duration_ms: float | None = None\n last_run_at: datetime | None = None\n next_scheduled_run: datetime | None = None\n# #endregion AggregatedMetricsResponse\n\n\n# #region TranslationPreviewLanguageResponse [C:1] [TYPE Class]\n# @BRIEF Schema for per-language preview data in API responses.\nclass TranslationPreviewLanguageResponse(BaseModel):\n language_code: str\n source_language_detected: str | None = None\n translated_value: str | None = None\n user_edit: str | None = None\n final_value: str | None = None\n status: str = \"pending\"\n needs_review: bool = False\n\n class Config:\n from_attributes = True\n# #endregion TranslationPreviewLanguageResponse\n\n\n# #region PreviewRow [TYPE Class]\n# @BRIEF A single row in a translation preview showing original and translated content side by side.\nclass PreviewRow(BaseModel):\n id: str\n source_sql: str | None = None\n target_sql: str | None = None\n source_object_type: str | None = None\n source_object_id: str | None = None\n source_object_name: str | None = None\n status: str = \"PENDING\"\n feedback: str | None = None\n source_language_detected: str | None = None\n needs_review: bool = False\n languages: list[TranslationPreviewLanguageResponse] = Field(default_factory=list, description=\"Per-language translation data\")\n# #endregion PreviewRow\n\n\n# #region TranslationPreviewResponse [TYPE Class]\n# @BRIEF Schema for translation preview session API responses.\nclass TranslationPreviewResponse(BaseModel):\n id: str\n job_id: str\n run_id: str | None = None\n status: str\n created_by: str | None = None\n created_at: datetime\n expires_at: datetime | None = None\n records: list[PreviewRow] = []\n target_languages: list[str] = Field(default_factory=list, description=\"Target languages for this preview\")\n cost_estimate: CostEstimate | None = None\n\n class Config:\n from_attributes = True\n# #endregion TranslationPreviewResponse\n\n\n# #region TranslationBatchResponse [TYPE Class]\n# @BRIEF Schema for translation batch API responses.\nclass TranslationBatchResponse(BaseModel):\n id: str\n run_id: str\n batch_index: int\n status: str\n total_records: int = 0\n successful_records: int = 0\n failed_records: int = 0\n started_at: datetime | None = None\n completed_at: datetime | None = None\n created_at: datetime\n\n class Config:\n from_attributes = True\n# #endregion TranslationBatchResponse\n\n\n# #region MetricsResponse [TYPE Class]\n# @BRIEF Schema for translation metrics API responses.\nclass MetricsResponse(BaseModel):\n job_id: str\n snapshot_date: datetime\n total_jobs: int = 0\n total_runs: int = 0\n total_records: int = 0\n successful_records: int = 0\n failed_records: int = 0\n skipped_records: int = 0\n avg_duration_ms: int | None = None\n p50_duration_ms: int | None = None\n p95_duration_ms: int | None = None\n p99_duration_ms: int | None = None\n\n class Config:\n from_attributes = True\n# #endregion MetricsResponse\n\n\n# #region TranslationLanguageResponse [C:1] [TYPE Class]\n# @BRIEF Schema for per-language translation data in API responses.\nclass TranslationLanguageResponse(BaseModel):\n language_code: str\n source_language_detected: str | None = None\n translated_value: str | None = None\n user_edit: str | None = None\n final_value: str | None = None\n status: str = \"pending\"\n needs_review: bool = False\n language_overridden: bool = False\n\n class Config:\n from_attributes = True\n# #endregion TranslationLanguageResponse\n\n\n# #region TranslationRunLanguageStatsResponse [C:1] [TYPE Class]\n# @BRIEF Schema for per-language statistics in run API responses.\nclass TranslationRunLanguageStatsResponse(BaseModel):\n language_code: str\n total_rows: int = 0\n translated_rows: int = 0\n failed_rows: int = 0\n skipped_rows: int = 0\n token_count: int = 0\n estimated_cost: float = 0.0\n\n class Config:\n from_attributes = True\n# #endregion TranslationRunLanguageStatsResponse\n\n\n# #region OverrideLanguageRequest [C:1] [TYPE Class]\n# @BRIEF Schema for manually overriding the detected source language of a translation.\nclass OverrideLanguageRequest(BaseModel):\n source_language: str = Field(..., description=\"BCP-47 language code to override with\")\n# #endregion OverrideLanguageRequest\n\n\n# #region BulkFindReplaceRequest [C:1] [TYPE Class]\n# @BRIEF Schema for bulk find-and-replace within translations for a target language.\nclass BulkFindReplaceRequest(BaseModel):\n find_pattern: str = Field(..., description=\"Text or regex pattern to find\", max_length=500)\n is_regex: bool = Field(False, description=\"Whether find_pattern is a regular expression\")\n replacement_text: str = Field(..., description=\"Replacement text\")\n target_language: str = Field(..., description=\"BCP-47 language code to target\")\n preview: bool = Field(True, description=\"If true, return matches without applying replacements\")\n submit_to_dictionary: bool = Field(False, description=\"If true, also submit corrections to dictionary\")\n dictionary_id: str | None = Field(None, description=\"Target dictionary ID for submitting corrections\")\n usage_notes: str | None = Field(None, description=\"Usage notes for dictionary entries\")\n submit_to_dictionary_with_context: bool = Field(False, description=\"If true, auto-capture source row context when submitting to dictionary\")\n\n @field_validator(\"find_pattern\")\n @classmethod\n def validate_pattern_length(cls, v: str) -> str:\n \"\"\"Reject patterns longer than 500 characters to prevent ReDoS.\"\"\"\n if len(v) > 500:\n raise ValueError(\"Pattern too long (max 500 characters)\")\n return v\n# #endregion BulkFindReplaceRequest\n\n\n# #region InlineEditRequest [C:1] [TYPE Class]\n# @BRIEF Schema for inline editing a translated value on a completed run result.\nclass InlineEditRequest(BaseModel):\n final_value: str = Field(..., description=\"Corrected/edited translation text\")\n submit_to_dictionary: bool = Field(False, description=\"If true, also save correction to dictionary\")\n dictionary_id: str | None = Field(None, description=\"Target dictionary ID for saving correction\")\n context_data_override: dict[str, Any] | None = Field(None, description=\"Override auto-captured context data for dictionary entry\")\n usage_notes: str | None = Field(None, description=\"Usage notes for the dictionary entry\")\n keep_context: bool = Field(True, description=\"If false, clear context_data and set has_context=False on dictionary entry\")\n# #endregion InlineEditRequest\n\n\n# #region BulkReplacePreviewItem [C:1] [TYPE Class]\n# @BRIEF A single item in a bulk replace preview list.\nclass BulkReplacePreviewItem(BaseModel):\n record_id: str\n language_code: str\n source_term: str\n current_value: str\n new_value: str\n source_language_detected: str | None = None\n# #endregion BulkReplacePreviewItem\n\n\n# #region BulkReplaceResponse [C:1] [TYPE Class]\n# @BRIEF Response for bulk find-and-replace operation.\nclass BulkReplaceResponse(BaseModel):\n rows_affected: int = 0\n corrections_submitted: int = 0\n preview: list[BulkReplacePreviewItem] = Field(default_factory=list)\n# #endregion BulkReplaceResponse\n\n\n# #region InlineCorrectionSubmit [C:1] [TYPE Class]\n# @BRIEF Schema for submitting an inline correction for a specific translated record.\nclass InlineCorrectionSubmit(BaseModel):\n record_id: str = Field(..., description=\"Translation record ID\")\n language_code: str = Field(..., description=\"BCP-47 language code of the translated value\")\n source_term: str = Field(..., description=\"Original source term that was incorrectly translated\")\n corrected_term: str = Field(..., description=\"Corrected translation\")\n dictionary_id: str = Field(..., description=\"Target dictionary ID to also save the correction\")\n source_language: str = Field(..., description=\"BCP-47 source language code\")\n# #endregion InlineCorrectionSubmit\n\n\n# #region TargetSchemaValidationRequest [C:1] [TYPE Class]\n# @BRIEF Schema for requesting target table schema validation.\nclass TargetSchemaValidationRequest(BaseModel):\n environment_id: str = Field(..., description=\"Superset environment ID\")\n target_database_id: str = Field(..., description=\"Superset database ID for the target DB\")\n target_schema: str = Field(\"public\", description=\"Target table schema (default: public)\")\n target_table: str = Field(..., description=\"Target table name\")\n # Column mapping from job config (everything that affects expected columns)\n target_key_cols: list[str] | None = Field(default_factory=list, description=\"Target key column names\")\n target_column: str | None = Field(None, description=\"Target column for translated output\")\n translation_column: str | None = Field(None, description=\"Source column name (fallback for target_column)\")\n target_language_column: str | None = Field(None, description=\"Column for language code\")\n target_source_column: str | None = Field(None, description=\"Column for source text\")\n target_source_language_column: str | None = Field(None, description=\"Column for detected source language\")\n# #endregion TargetSchemaValidationRequest\n\n\n# #region TargetSchemaColumnInfo [C:1] [TYPE Class]\n# @BRIEF Schema for a single column in the schema validation response.\nclass TargetSchemaColumnInfo(BaseModel):\n name: str\n data_type: str | None = None\n is_nullable: bool = True\n# #endregion TargetSchemaColumnInfo\n\n\n# #region TargetSchemaValidationResponse [C:1] [TYPE Class]\n# @BRIEF Schema for target table schema validation response.\nclass TargetSchemaValidationResponse(BaseModel):\n table_exists: bool = False\n error: str | None = None\n expected_columns: list[TargetSchemaColumnInfo] = Field(default_factory=list, description=\"Columns that the INSERT expects\")\n actual_columns: list[TargetSchemaColumnInfo] = Field(default_factory=list, description=\"Columns that exist in the target table\")\n missing_columns: list[TargetSchemaColumnInfo] = Field(default_factory=list, description=\"Expected columns NOT found in target table\")\n extra_columns: list[TargetSchemaColumnInfo] = Field(default_factory=list, description=\"Actual columns NOT in expected list\")\n all_present: bool = False\n# #endregion TargetSchemaValidationResponse\n\n\n# #endregion TranslateSchemas\n" }, { "contract_id": "TranslateJobCreate", @@ -55523,6 +51913,60 @@ "tier_source": "AutoCalculated", "body": "# #region InlineCorrectionSubmit [C:1] [TYPE Class]\n# @BRIEF Schema for submitting an inline correction for a specific translated record.\nclass InlineCorrectionSubmit(BaseModel):\n record_id: str = Field(..., description=\"Translation record ID\")\n language_code: str = Field(..., description=\"BCP-47 language code of the translated value\")\n source_term: str = Field(..., description=\"Original source term that was incorrectly translated\")\n corrected_term: str = Field(..., description=\"Corrected translation\")\n dictionary_id: str = Field(..., description=\"Target dictionary ID to also save the correction\")\n source_language: str = Field(..., description=\"BCP-47 source language code\")\n# #endregion InlineCorrectionSubmit\n" }, + { + "contract_id": "TargetSchemaValidationRequest", + "contract_type": "Class", + "file_path": "backend/src/schemas/translate.py", + "start_line": 688, + "end_line": 702, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1, + "PURPOSE": "Schema for requesting target table schema validation." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region TargetSchemaValidationRequest [C:1] [TYPE Class]\n# @BRIEF Schema for requesting target table schema validation.\nclass TargetSchemaValidationRequest(BaseModel):\n environment_id: str = Field(..., description=\"Superset environment ID\")\n target_database_id: str = Field(..., description=\"Superset database ID for the target DB\")\n target_schema: str = Field(\"public\", description=\"Target table schema (default: public)\")\n target_table: str = Field(..., description=\"Target table name\")\n # Column mapping from job config (everything that affects expected columns)\n target_key_cols: list[str] | None = Field(default_factory=list, description=\"Target key column names\")\n target_column: str | None = Field(None, description=\"Target column for translated output\")\n translation_column: str | None = Field(None, description=\"Source column name (fallback for target_column)\")\n target_language_column: str | None = Field(None, description=\"Column for language code\")\n target_source_column: str | None = Field(None, description=\"Column for source text\")\n target_source_language_column: str | None = Field(None, description=\"Column for detected source language\")\n# #endregion TargetSchemaValidationRequest\n" + }, + { + "contract_id": "TargetSchemaColumnInfo", + "contract_type": "Class", + "file_path": "backend/src/schemas/translate.py", + "start_line": 705, + "end_line": 711, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1, + "PURPOSE": "Schema for a single column in the schema validation response." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region TargetSchemaColumnInfo [C:1] [TYPE Class]\n# @BRIEF Schema for a single column in the schema validation response.\nclass TargetSchemaColumnInfo(BaseModel):\n name: str\n data_type: str | None = None\n is_nullable: bool = True\n# #endregion TargetSchemaColumnInfo\n" + }, + { + "contract_id": "TargetSchemaValidationResponse", + "contract_type": "Class", + "file_path": "backend/src/schemas/translate.py", + "start_line": 714, + "end_line": 724, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1, + "PURPOSE": "Schema for target table schema validation response." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region TargetSchemaValidationResponse [C:1] [TYPE Class]\n# @BRIEF Schema for target table schema validation response.\nclass TargetSchemaValidationResponse(BaseModel):\n table_exists: bool = False\n error: str | None = None\n expected_columns: list[TargetSchemaColumnInfo] = Field(default_factory=list, description=\"Columns that the INSERT expects\")\n actual_columns: list[TargetSchemaColumnInfo] = Field(default_factory=list, description=\"Columns that exist in the target table\")\n missing_columns: list[TargetSchemaColumnInfo] = Field(default_factory=list, description=\"Expected columns NOT found in target table\")\n extra_columns: list[TargetSchemaColumnInfo] = Field(default_factory=list, description=\"Actual columns NOT in expected list\")\n all_present: bool = False\n# #endregion TargetSchemaValidationResponse\n" + }, { "contract_id": "ScriptsPackage", "contract_type": "Package", @@ -56124,15 +52568,6 @@ "actual_complexity": 3, "contract_type": "Module" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -56468,15 +52903,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -56494,15 +52920,6 @@ ], "value": "Scripts" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -57682,15 +54099,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -57754,15 +54162,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "SIDE_EFFECT", @@ -58375,7 +54774,7 @@ "contract_type": "Module", "file_path": "backend/src/services/clean_release/manifest_builder.py", "start_line": 1, - "end_line": 138, + "end_line": 136, "tier": "TIER_3", "complexity": 5, "metadata": { @@ -58416,18 +54815,17 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region ManifestBuilder [C:5] [TYPE Module] [SEMANTICS clean-release, manifest, build, artifact, catalog]\n# @BRIEF Build deterministic distribution manifest from classified artifact input.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [CleanReleaseModels]\n# @INVARIANT: Equal semantic artifact sets produce identical deterministic hash values.\n# @SIDE_EFFECT: Computes hash of artifact set\n# @DATA_CONTRACT: ArtifactSet -> Manifest\n\nfrom __future__ import annotations\n\nimport hashlib\nimport json\nfrom collections.abc import Iterable\nfrom datetime import UTC, datetime\nfrom typing import Any\n\nfrom ...models.clean_release import (\n ClassificationType,\n DistributionManifest,\n ManifestItem,\n ManifestSummary,\n)\n\n\ndef _stable_hash_payload(\n candidate_id: str, policy_id: str, items: list[ManifestItem]\n) -> str:\n serialized = [\n {\n \"path\": item.path,\n \"category\": item.category,\n \"classification\": item.classification.value,\n \"reason\": item.reason,\n \"checksum\": item.checksum,\n }\n for item in sorted(\n items,\n key=lambda i: (\n i.path,\n i.category,\n i.classification.value,\n i.reason,\n i.checksum or \"\",\n ),\n )\n ]\n payload = {\n \"candidate_id\": candidate_id,\n \"policy_id\": policy_id,\n \"items\": serialized,\n }\n digest = hashlib.sha256(\n json.dumps(payload, ensure_ascii=False, sort_keys=True).encode(\"utf-8\")\n ).hexdigest()\n return digest\n\n\n# #region build_distribution_manifest [TYPE Function]\n# @BRIEF Build DistributionManifest with deterministic hash and validated counters.\n# @PRE artifacts list contains normalized classification values.\n# @POST Returns DistributionManifest with summary counts matching items cardinality.\n# @COMPLEXITY 4\n\ndef build_distribution_manifest(\n manifest_id: str,\n candidate_id: str,\n policy_id: str,\n generated_by: str,\n artifacts: Iterable[dict[str, Any]],\n) -> DistributionManifest:\n items = [\n ManifestItem(\n path=a[\"path\"],\n category=a[\"category\"],\n classification=ClassificationType(a[\"classification\"]),\n reason=a[\"reason\"],\n checksum=a.get(\"checksum\"),\n )\n for a in artifacts\n ]\n\n included_count = sum(\n 1\n for item in items\n if item.classification\n in {ClassificationType.REQUIRED_SYSTEM, ClassificationType.ALLOWED}\n )\n excluded_count = sum(\n 1\n for item in items\n if item.classification == ClassificationType.EXCLUDED_PROHIBITED\n )\n prohibited_detected_count = excluded_count\n\n summary = ManifestSummary(\n included_count=included_count,\n excluded_count=excluded_count,\n prohibited_detected_count=prohibited_detected_count,\n )\n\n deterministic_hash = _stable_hash_payload(candidate_id, policy_id, items)\n\n return DistributionManifest(\n manifest_id=manifest_id,\n candidate_id=candidate_id,\n generated_at=datetime.now(UTC),\n generated_by=generated_by,\n items=items,\n summary=summary,\n deterministic_hash=deterministic_hash,\n )\n\n\n# #endregion build_distribution_manifest\n\n\n# #region build_manifest [TYPE Function]\n# @BRIEF Legacy compatibility wrapper for old manifest builder import paths.\n# @PRE: Same as build_distribution_manifest.\n# @POST: Returns DistributionManifest produced by canonical builder.\ndef build_manifest(\n manifest_id: str,\n candidate_id: str,\n policy_id: str,\n generated_by: str,\n artifacts: Iterable[dict[str, Any]],\n) -> DistributionManifest:\n return build_distribution_manifest(\n manifest_id=manifest_id,\n candidate_id=candidate_id,\n policy_id=policy_id,\n generated_by=generated_by,\n artifacts=artifacts,\n )\n\n\n# #endregion build_manifest\n# #endregion ManifestBuilder\n" + "body": "# #region ManifestBuilder [C:5] [TYPE Module] [SEMANTICS clean-release, manifest, build, artifact, catalog]\n# @BRIEF Build deterministic distribution manifest from classified artifact input.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [CleanReleaseModels]\n# @INVARIANT: Equal semantic artifact sets produce identical deterministic hash values.\n# @SIDE_EFFECT: Computes hash of artifact set\n# @DATA_CONTRACT: ArtifactSet -> Manifest\n\nfrom __future__ import annotations\n\nimport hashlib\nimport json\nfrom collections.abc import Iterable\nfrom datetime import UTC, datetime\nfrom typing import Any\n\nfrom ...models.clean_release import (\n ClassificationType,\n DistributionManifest,\n ManifestItem,\n ManifestSummary,\n)\n\n\ndef _stable_hash_payload(\n candidate_id: str, policy_id: str, items: list[ManifestItem]\n) -> str:\n serialized = [\n {\n \"path\": item.path,\n \"category\": item.category,\n \"classification\": item.classification.value,\n \"reason\": item.reason,\n \"checksum\": item.checksum,\n }\n for item in sorted(\n items,\n key=lambda i: (\n i.path,\n i.category,\n i.classification.value,\n i.reason,\n i.checksum or \"\",\n ),\n )\n ]\n payload = {\n \"candidate_id\": candidate_id,\n \"policy_id\": policy_id,\n \"items\": serialized,\n }\n digest = hashlib.sha256(\n json.dumps(payload, ensure_ascii=False, sort_keys=True).encode(\"utf-8\")\n ).hexdigest()\n return digest\n\n\n# #region build_distribution_manifest [TYPE Function]\n# @BRIEF Build DistributionManifest with deterministic hash and validated counters.\n# @PRE: artifacts list contains normalized classification values.\n# @POST: Returns DistributionManifest with summary counts matching items cardinality.\ndef build_distribution_manifest(\n manifest_id: str,\n candidate_id: str,\n policy_id: str,\n generated_by: str,\n artifacts: Iterable[dict[str, Any]],\n) -> DistributionManifest:\n items = [\n ManifestItem(\n path=a[\"path\"],\n category=a[\"category\"],\n classification=ClassificationType(a[\"classification\"]),\n reason=a[\"reason\"],\n checksum=a.get(\"checksum\"),\n )\n for a in artifacts\n ]\n\n included_count = sum(\n 1\n for item in items\n if item.classification\n in {ClassificationType.REQUIRED_SYSTEM, ClassificationType.ALLOWED}\n )\n excluded_count = sum(\n 1\n for item in items\n if item.classification == ClassificationType.EXCLUDED_PROHIBITED\n )\n prohibited_detected_count = excluded_count\n\n summary = ManifestSummary(\n included_count=included_count,\n excluded_count=excluded_count,\n prohibited_detected_count=prohibited_detected_count,\n )\n\n deterministic_hash = _stable_hash_payload(candidate_id, policy_id, items)\n\n return DistributionManifest(\n manifest_id=manifest_id,\n candidate_id=candidate_id,\n generated_at=datetime.now(UTC),\n generated_by=generated_by,\n items=items,\n summary=summary,\n deterministic_hash=deterministic_hash,\n )\n\n\n# #endregion build_distribution_manifest\n\n\n# #region build_manifest [TYPE Function]\n# @BRIEF Legacy compatibility wrapper for old manifest builder import paths.\n# @PRE: Same as build_distribution_manifest.\n# @POST: Returns DistributionManifest produced by canonical builder.\ndef build_manifest(\n manifest_id: str,\n candidate_id: str,\n policy_id: str,\n generated_by: str,\n artifacts: Iterable[dict[str, Any]],\n) -> DistributionManifest:\n return build_distribution_manifest(\n manifest_id=manifest_id,\n candidate_id=candidate_id,\n policy_id=policy_id,\n generated_by=generated_by,\n artifacts=artifacts,\n )\n\n\n# #endregion build_manifest\n# #endregion ManifestBuilder\n" }, { "contract_id": "build_distribution_manifest", "contract_type": "Function", "file_path": "backend/src/services/clean_release/manifest_builder.py", "start_line": 58, - "end_line": 114, - "tier": "TIER_2", - "complexity": 4, + "end_line": 112, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Returns DistributionManifest with summary counts matching items cardinality.", "PRE": "artifacts list contains normalized classification values.", "PURPOSE": "Build DistributionManifest with deterministic hash and validated counters." @@ -58435,27 +54833,27 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region build_distribution_manifest [TYPE Function]\n# @BRIEF Build DistributionManifest with deterministic hash and validated counters.\n# @PRE artifacts list contains normalized classification values.\n# @POST Returns DistributionManifest with summary counts matching items cardinality.\n# @COMPLEXITY 4\n\ndef build_distribution_manifest(\n manifest_id: str,\n candidate_id: str,\n policy_id: str,\n generated_by: str,\n artifacts: Iterable[dict[str, Any]],\n) -> DistributionManifest:\n items = [\n ManifestItem(\n path=a[\"path\"],\n category=a[\"category\"],\n classification=ClassificationType(a[\"classification\"]),\n reason=a[\"reason\"],\n checksum=a.get(\"checksum\"),\n )\n for a in artifacts\n ]\n\n included_count = sum(\n 1\n for item in items\n if item.classification\n in {ClassificationType.REQUIRED_SYSTEM, ClassificationType.ALLOWED}\n )\n excluded_count = sum(\n 1\n for item in items\n if item.classification == ClassificationType.EXCLUDED_PROHIBITED\n )\n prohibited_detected_count = excluded_count\n\n summary = ManifestSummary(\n included_count=included_count,\n excluded_count=excluded_count,\n prohibited_detected_count=prohibited_detected_count,\n )\n\n deterministic_hash = _stable_hash_payload(candidate_id, policy_id, items)\n\n return DistributionManifest(\n manifest_id=manifest_id,\n candidate_id=candidate_id,\n generated_at=datetime.now(UTC),\n generated_by=generated_by,\n items=items,\n summary=summary,\n deterministic_hash=deterministic_hash,\n )\n\n\n# #endregion build_distribution_manifest\n" + "body": "# #region build_distribution_manifest [TYPE Function]\n# @BRIEF Build DistributionManifest with deterministic hash and validated counters.\n# @PRE: artifacts list contains normalized classification values.\n# @POST: Returns DistributionManifest with summary counts matching items cardinality.\ndef build_distribution_manifest(\n manifest_id: str,\n candidate_id: str,\n policy_id: str,\n generated_by: str,\n artifacts: Iterable[dict[str, Any]],\n) -> DistributionManifest:\n items = [\n ManifestItem(\n path=a[\"path\"],\n category=a[\"category\"],\n classification=ClassificationType(a[\"classification\"]),\n reason=a[\"reason\"],\n checksum=a.get(\"checksum\"),\n )\n for a in artifacts\n ]\n\n included_count = sum(\n 1\n for item in items\n if item.classification\n in {ClassificationType.REQUIRED_SYSTEM, ClassificationType.ALLOWED}\n )\n excluded_count = sum(\n 1\n for item in items\n if item.classification == ClassificationType.EXCLUDED_PROHIBITED\n )\n prohibited_detected_count = excluded_count\n\n summary = ManifestSummary(\n included_count=included_count,\n excluded_count=excluded_count,\n prohibited_detected_count=prohibited_detected_count,\n )\n\n deterministic_hash = _stable_hash_payload(candidate_id, policy_id, items)\n\n return DistributionManifest(\n manifest_id=manifest_id,\n candidate_id=candidate_id,\n generated_at=datetime.now(UTC),\n generated_by=generated_by,\n items=items,\n summary=summary,\n deterministic_hash=deterministic_hash,\n )\n\n\n# #endregion build_distribution_manifest\n" }, { "contract_id": "ManifestService", @@ -58862,7 +55260,7 @@ "contract_type": "Module", "file_path": "backend/src/services/clean_release/preparation_service.py", "start_line": 1, - "end_line": 115, + "end_line": 113, "tier": "TIER_3", "complexity": 5, "metadata": { @@ -58915,18 +55313,17 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region PreparationService [C:5] [TYPE Module] [SEMANTICS clean-release, prepare, validate, policy, manifest]\n# @BRIEF Prepare release candidate by policy evaluation and deterministic manifest creation.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [PolicyEngine]\n# @RELATION DEPENDS_ON -> [ManifestBuilder]\n# @RELATION DEPENDS_ON -> [RepositoryRelations]\n# @INVARIANT: Candidate preparation always persists manifest and candidate status deterministically.\n# @SIDE_EFFECT: Persists candidate and manifest\n# @DATA_CONTRACT: PrepareRequest -> PrepareResult\n\nfrom __future__ import annotations\n\nfrom collections.abc import Iterable\nfrom datetime import UTC, datetime\n\nfrom ...models.clean_release import ReleaseCandidateStatus\nfrom .enums import CandidateStatus\nfrom .manifest_builder import build_distribution_manifest\nfrom .policy_engine import CleanPolicyEngine\nfrom .repository import CleanReleaseRepository\n\n\ndef prepare_candidate(\n repository: CleanReleaseRepository,\n candidate_id: str,\n artifacts: Iterable[dict],\n sources: Iterable[str],\n operator_id: str,\n) -> dict:\n candidate = repository.get_candidate(candidate_id)\n if candidate is None:\n raise ValueError(f\"Candidate not found: {candidate_id}\")\n\n policy = repository.get_active_policy()\n if policy is None:\n raise ValueError(\"Active clean policy not found\")\n\n registry_ref = getattr(policy, \"registry_snapshot_id\", None) or getattr(\n policy, \"internal_source_registry_ref\", None\n )\n registry = repository.get_registry(registry_ref) if registry_ref else None\n if registry is None:\n raise ValueError(\"Registry not found for active policy\")\n\n engine = CleanPolicyEngine(policy=policy, registry=registry)\n validation = engine.validate_policy()\n if not validation.ok:\n raise ValueError(f\"Invalid policy: {validation.blocking_reasons}\")\n\n classified, violations = engine.evaluate_candidate(\n artifacts=artifacts, sources=sources\n )\n\n manifest = build_distribution_manifest(\n manifest_id=f\"manifest-{candidate_id}\",\n candidate_id=candidate_id,\n policy_id=getattr(policy, \"policy_id\", None) or getattr(policy, \"id\", \"\"),\n generated_by=operator_id,\n artifacts=classified,\n )\n repository.save_manifest(manifest)\n\n current_status = getattr(candidate, \"status\", None)\n if violations:\n candidate.status = ReleaseCandidateStatus.BLOCKED.value\n repository.save_candidate(candidate)\n response_status = ReleaseCandidateStatus.BLOCKED.value\n else:\n if current_status in {\n CandidateStatus.DRAFT,\n CandidateStatus.DRAFT.value,\n \"DRAFT\",\n }:\n candidate.transition_to(CandidateStatus.PREPARED)\n else:\n candidate.status = ReleaseCandidateStatus.PREPARED.value\n repository.save_candidate(candidate)\n response_status = ReleaseCandidateStatus.PREPARED.value\n\n manifest_id_value = getattr(manifest, \"manifest_id\", None) or getattr(\n manifest, \"id\", \"\"\n )\n return {\n \"candidate_id\": candidate_id,\n \"status\": response_status,\n \"manifest_id\": manifest_id_value,\n \"violations\": violations,\n \"prepared_at\": datetime.now(UTC).isoformat(),\n }\n\n\n# #region prepare_candidate_legacy [TYPE Function]\n# @BRIEF Legacy compatibility wrapper kept for migration period.\n# @PRE Same as prepare_candidate.\n# @POST Delegates to canonical prepare_candidate and preserves response shape.\n# @COMPLEXITY 4\n\ndef prepare_candidate_legacy(\n repository: CleanReleaseRepository,\n candidate_id: str,\n artifacts: Iterable[dict],\n sources: Iterable[str],\n operator_id: str,\n) -> dict:\n return prepare_candidate(\n repository=repository,\n candidate_id=candidate_id,\n artifacts=artifacts,\n sources=sources,\n operator_id=operator_id,\n )\n\n\n# #endregion prepare_candidate_legacy\n# #endregion PreparationService\n" + "body": "# #region PreparationService [C:5] [TYPE Module] [SEMANTICS clean-release, prepare, validate, policy, manifest]\n# @BRIEF Prepare release candidate by policy evaluation and deterministic manifest creation.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [PolicyEngine]\n# @RELATION DEPENDS_ON -> [ManifestBuilder]\n# @RELATION DEPENDS_ON -> [RepositoryRelations]\n# @INVARIANT: Candidate preparation always persists manifest and candidate status deterministically.\n# @SIDE_EFFECT: Persists candidate and manifest\n# @DATA_CONTRACT: PrepareRequest -> PrepareResult\n\nfrom __future__ import annotations\n\nfrom collections.abc import Iterable\nfrom datetime import UTC, datetime\n\nfrom ...models.clean_release import ReleaseCandidateStatus\nfrom .enums import CandidateStatus\nfrom .manifest_builder import build_distribution_manifest\nfrom .policy_engine import CleanPolicyEngine\nfrom .repository import CleanReleaseRepository\n\n\ndef prepare_candidate(\n repository: CleanReleaseRepository,\n candidate_id: str,\n artifacts: Iterable[dict],\n sources: Iterable[str],\n operator_id: str,\n) -> dict:\n candidate = repository.get_candidate(candidate_id)\n if candidate is None:\n raise ValueError(f\"Candidate not found: {candidate_id}\")\n\n policy = repository.get_active_policy()\n if policy is None:\n raise ValueError(\"Active clean policy not found\")\n\n registry_ref = getattr(policy, \"registry_snapshot_id\", None) or getattr(\n policy, \"internal_source_registry_ref\", None\n )\n registry = repository.get_registry(registry_ref) if registry_ref else None\n if registry is None:\n raise ValueError(\"Registry not found for active policy\")\n\n engine = CleanPolicyEngine(policy=policy, registry=registry)\n validation = engine.validate_policy()\n if not validation.ok:\n raise ValueError(f\"Invalid policy: {validation.blocking_reasons}\")\n\n classified, violations = engine.evaluate_candidate(\n artifacts=artifacts, sources=sources\n )\n\n manifest = build_distribution_manifest(\n manifest_id=f\"manifest-{candidate_id}\",\n candidate_id=candidate_id,\n policy_id=getattr(policy, \"policy_id\", None) or getattr(policy, \"id\", \"\"),\n generated_by=operator_id,\n artifacts=classified,\n )\n repository.save_manifest(manifest)\n\n current_status = getattr(candidate, \"status\", None)\n if violations:\n candidate.status = ReleaseCandidateStatus.BLOCKED.value\n repository.save_candidate(candidate)\n response_status = ReleaseCandidateStatus.BLOCKED.value\n else:\n if current_status in {\n CandidateStatus.DRAFT,\n CandidateStatus.DRAFT.value,\n \"DRAFT\",\n }:\n candidate.transition_to(CandidateStatus.PREPARED)\n else:\n candidate.status = ReleaseCandidateStatus.PREPARED.value\n repository.save_candidate(candidate)\n response_status = ReleaseCandidateStatus.PREPARED.value\n\n manifest_id_value = getattr(manifest, \"manifest_id\", None) or getattr(\n manifest, \"id\", \"\"\n )\n return {\n \"candidate_id\": candidate_id,\n \"status\": response_status,\n \"manifest_id\": manifest_id_value,\n \"violations\": violations,\n \"prepared_at\": datetime.now(UTC).isoformat(),\n }\n\n\n# #region prepare_candidate_legacy [TYPE Function]\n# @BRIEF Legacy compatibility wrapper kept for migration period.\n# @PRE: Same as prepare_candidate.\n# @POST: Delegates to canonical prepare_candidate and preserves response shape.\ndef prepare_candidate_legacy(\n repository: CleanReleaseRepository,\n candidate_id: str,\n artifacts: Iterable[dict],\n sources: Iterable[str],\n operator_id: str,\n) -> dict:\n return prepare_candidate(\n repository=repository,\n candidate_id=candidate_id,\n artifacts=artifacts,\n sources=sources,\n operator_id=operator_id,\n )\n\n\n# #endregion prepare_candidate_legacy\n# #endregion PreparationService\n" }, { "contract_id": "prepare_candidate_legacy", "contract_type": "Function", "file_path": "backend/src/services/clean_release/preparation_service.py", "start_line": 92, - "end_line": 114, - "tier": "TIER_2", - "complexity": 4, + "end_line": 112, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Delegates to canonical prepare_candidate and preserves response shape.", "PRE": "Same as prepare_candidate.", "PURPOSE": "Legacy compatibility wrapper kept for migration period." @@ -58934,27 +55331,27 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region prepare_candidate_legacy [TYPE Function]\n# @BRIEF Legacy compatibility wrapper kept for migration period.\n# @PRE Same as prepare_candidate.\n# @POST Delegates to canonical prepare_candidate and preserves response shape.\n# @COMPLEXITY 4\n\ndef prepare_candidate_legacy(\n repository: CleanReleaseRepository,\n candidate_id: str,\n artifacts: Iterable[dict],\n sources: Iterable[str],\n operator_id: str,\n) -> dict:\n return prepare_candidate(\n repository=repository,\n candidate_id=candidate_id,\n artifacts=artifacts,\n sources=sources,\n operator_id=operator_id,\n )\n\n\n# #endregion prepare_candidate_legacy\n" + "body": "# #region prepare_candidate_legacy [TYPE Function]\n# @BRIEF Legacy compatibility wrapper kept for migration period.\n# @PRE: Same as prepare_candidate.\n# @POST: Delegates to canonical prepare_candidate and preserves response shape.\ndef prepare_candidate_legacy(\n repository: CleanReleaseRepository,\n candidate_id: str,\n artifacts: Iterable[dict],\n sources: Iterable[str],\n operator_id: str,\n) -> dict:\n return prepare_candidate(\n repository=repository,\n candidate_id=candidate_id,\n artifacts=artifacts,\n sources=sources,\n operator_id=operator_id,\n )\n\n\n# #endregion prepare_candidate_legacy\n" }, { "contract_id": "PublicationService", @@ -58997,15 +55394,6 @@ } ], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "POST", @@ -59884,16 +56272,69 @@ "tier_source": "AutoCalculated", "body": "# #region SourceIsolation [C:5] [TYPE Module] [SEMANTICS clean-release, source, isolation, validate, resource]\n# @BRIEF Validate that all resource endpoints belong to the approved internal source registry.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [CleanReleaseModels]\n# @INVARIANT: Any endpoint outside enabled registry entries is treated as external-source violation.\n# @PRE: Source registry configured\n# @POST: Source isolation violations identified\n# @SIDE_EFFECT: None (read-only check)\n# @DATA_CONTRACT: SourceURL -> ViolationReport\n\nfrom __future__ import annotations\n\nfrom collections.abc import Iterable\n\nfrom ...models.clean_release import ResourceSourceRegistry\n\n\ndef validate_internal_sources(\n registry: ResourceSourceRegistry, endpoints: Iterable[str]\n) -> dict:\n allowed_hosts = {\n entry.host.strip().lower() for entry in registry.entries if entry.enabled\n }\n violations: list[dict] = []\n\n for endpoint in endpoints:\n normalized = (endpoint or \"\").strip().lower()\n if not normalized or normalized not in allowed_hosts:\n violations.append(\n {\n \"category\": \"external-source\",\n \"location\": endpoint or \"\",\n \"remediation\": \"Replace with approved internal server\",\n \"blocked_release\": True,\n }\n )\n\n return {\"ok\": len(violations) == 0, \"violations\": violations}\n\n\n# #endregion SourceIsolation\n" }, + { + "contract_id": "ComplianceStages", + "contract_type": "Module", + "file_path": "backend/src/services/clean_release/stages/__init__.py", + "start_line": 1, + "end_line": 127, + "tier": "TIER_3", + "complexity": 5, + "metadata": { + "COMPLEXITY": 5, + "DATA_CONTRACT": "StagePipeline -> ComplianceResult", + "INVARIANT": "Stage order remains deterministic for all compliance runs.", + "LAYER": "Domain", + "PURPOSE": "Define compliance stage order and helper functions for deterministic run-state evaluation.", + "SIDE_EFFECT": "Registers compliance stages" + }, + "relations": [ + { + "source_id": "ComplianceStages", + "relation_type": "DEPENDS_ON", + "target_id": "CleanReleaseModels", + "target_ref": "[CleanReleaseModels]" + }, + { + "source_id": "ComplianceStages", + "relation_type": "DEPENDS_ON", + "target_id": "ComplianceStageBase", + "target_ref": "[ComplianceStageBase]" + } + ], + "schema_warnings": [ + { + "code": "missing_required_tag", + "tag": "POST", + "message": "@POST is required for contract type 'Module' at C5", + "detail": { + "actual_complexity": 5, + "contract_type": "Module" + } + }, + { + "code": "missing_required_tag", + "tag": "PRE", + "message": "@PRE is required for contract type 'Module' at C5", + "detail": { + "actual_complexity": 5, + "contract_type": "Module" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region ComplianceStages [C:5] [TYPE Module] [SEMANTICS clean-release, compliance, stage, package]\n# @BRIEF Define compliance stage order and helper functions for deterministic run-state evaluation.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [CleanReleaseModels]\n# @RELATION DEPENDS_ON -> [ComplianceStageBase]\n# @INVARIANT: Stage order remains deterministic for all compliance runs.\n# @SIDE_EFFECT: Registers compliance stages\n# @DATA_CONTRACT: StagePipeline -> ComplianceResult\n\nfrom __future__ import annotations\n\nfrom collections.abc import Iterable\nfrom typing import Dict, List\n\nfrom ....models.clean_release import (\n CheckFinalStatus,\n CheckStageResult,\n CheckStageStatus,\n ComplianceStageRun,\n)\nfrom ..enums import ComplianceDecision, ComplianceStageName\nfrom .base import ComplianceStage\nfrom .data_purity import DataPurityStage\nfrom .internal_sources_only import InternalSourcesOnlyStage\nfrom .manifest_consistency import ManifestConsistencyStage\nfrom .no_external_endpoints import NoExternalEndpointsStage\n\nMANDATORY_STAGE_ORDER: list[ComplianceStageName] = [\n ComplianceStageName.DATA_PURITY,\n ComplianceStageName.INTERNAL_SOURCES_ONLY,\n ComplianceStageName.NO_EXTERNAL_ENDPOINTS,\n ComplianceStageName.MANIFEST_CONSISTENCY,\n]\n\n\n# #region build_default_stages [TYPE Function]\n# @BRIEF Build default deterministic stage pipeline implementation order.\n# @PRE: None.\n# @POST: Returns stage instances in mandatory execution order.\ndef build_default_stages() -> list[ComplianceStage]:\n return [\n DataPurityStage(),\n InternalSourcesOnlyStage(),\n NoExternalEndpointsStage(),\n ManifestConsistencyStage(),\n ]\n\n\n# #endregion build_default_stages\n\n\n# #region stage_result_map [TYPE Function]\n# @BRIEF Convert stage result list to dictionary by stage name.\n# @PRE: stage_results may be empty or contain unique stage names.\n# @POST: Returns stage->status dictionary for downstream evaluation.\ndef stage_result_map(\n stage_results: Iterable[ComplianceStageRun | CheckStageResult],\n) -> dict[ComplianceStageName, CheckStageStatus]:\n normalized: dict[ComplianceStageName, CheckStageStatus] = {}\n for result in stage_results:\n if isinstance(result, CheckStageResult):\n normalized[ComplianceStageName(result.stage.value)] = CheckStageStatus(\n result.status.value\n )\n continue\n\n stage_name = getattr(result, \"stage_name\", None)\n decision = getattr(result, \"decision\", None)\n status = getattr(result, \"status\", None)\n\n if not stage_name:\n continue\n\n normalized_stage = ComplianceStageName(stage_name)\n if decision == ComplianceDecision.BLOCKED:\n normalized[normalized_stage] = CheckStageStatus.FAIL\n elif decision == ComplianceDecision.ERROR:\n normalized[normalized_stage] = CheckStageStatus.SKIPPED\n elif decision == ComplianceDecision.PASSED:\n normalized[normalized_stage] = CheckStageStatus.PASS\n elif decision:\n normalized[normalized_stage] = CheckStageStatus(str(decision))\n elif status:\n normalized[normalized_stage] = CheckStageStatus(str(status))\n return normalized\n\n\n# #endregion stage_result_map\n\n\n# #region missing_mandatory_stages [TYPE Function]\n# @BRIEF Identify mandatory stages that are absent from run results.\n# @PRE: stage_status_map contains zero or more known stage statuses.\n# @POST: Returns ordered list of missing mandatory stages.\ndef missing_mandatory_stages(\n stage_status_map: dict[ComplianceStageName, CheckStageStatus],\n) -> list[ComplianceStageName]:\n return [stage for stage in MANDATORY_STAGE_ORDER if stage not in stage_status_map]\n\n\n# #endregion missing_mandatory_stages\n\n\n# #region derive_final_status [TYPE Function]\n# @BRIEF Derive final run status from stage results with deterministic blocking behavior.\n# @PRE: Stage statuses correspond to compliance checks.\n# @POST: Returns one of PASSED/BLOCKED/ERROR according to mandatory stage outcomes.\ndef derive_final_status(\n stage_results: Iterable[ComplianceStageRun | CheckStageResult],\n) -> CheckFinalStatus:\n status_map = stage_result_map(stage_results)\n missing = missing_mandatory_stages(status_map)\n if missing:\n return CheckFinalStatus.FAILED\n\n for stage in MANDATORY_STAGE_ORDER:\n decision = status_map.get(stage)\n if decision == CheckStageStatus.SKIPPED:\n return CheckFinalStatus.FAILED\n if decision == CheckStageStatus.FAIL:\n return CheckFinalStatus.BLOCKED\n\n return CheckFinalStatus.COMPLIANT\n\n\n# #endregion derive_final_status\n# #endregion ComplianceStages\n" + }, { "contract_id": "build_default_stages", "contract_type": "Function", "file_path": "backend/src/services/clean_release/stages/__init__.py", "start_line": 36, - "end_line": 51, - "tier": "TIER_2", - "complexity": 4, + "end_line": 49, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Returns stage instances in mandatory execution order.", "PRE": "None.", "PURPOSE": "Build default deterministic stage pipeline implementation order." @@ -59901,38 +56342,75 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region build_default_stages [TYPE Function]\n# @BRIEF Build default deterministic stage pipeline implementation order.\n# @PRE None.\n# @POST Returns stage instances in mandatory execution order.\n# @COMPLEXITY 4\n\ndef build_default_stages() -> list[ComplianceStage]:\n return [\n DataPurityStage(),\n InternalSourcesOnlyStage(),\n NoExternalEndpointsStage(),\n ManifestConsistencyStage(),\n ]\n\n\n# #endregion build_default_stages\n" + "body": "# #region build_default_stages [TYPE Function]\n# @BRIEF Build default deterministic stage pipeline implementation order.\n# @PRE: None.\n# @POST: Returns stage instances in mandatory execution order.\ndef build_default_stages() -> list[ComplianceStage]:\n return [\n DataPurityStage(),\n InternalSourcesOnlyStage(),\n NoExternalEndpointsStage(),\n ManifestConsistencyStage(),\n ]\n\n\n# #endregion build_default_stages\n" + }, + { + "contract_id": "stage_result_map", + "contract_type": "Function", + "file_path": "backend/src/services/clean_release/stages/__init__.py", + "start_line": 52, + "end_line": 88, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "POST": "Returns stage->status dictionary for downstream evaluation.", + "PRE": "stage_results may be empty or contain unique stage names.", + "PURPOSE": "Convert stage result list to dictionary by stage name." + }, + "relations": [], + "schema_warnings": [ + { + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", + "detail": { + "actual_complexity": 1, + "contract_type": "Function" + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", + "detail": { + "actual_complexity": 1, + "contract_type": "Function" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region stage_result_map [TYPE Function]\n# @BRIEF Convert stage result list to dictionary by stage name.\n# @PRE: stage_results may be empty or contain unique stage names.\n# @POST: Returns stage->status dictionary for downstream evaluation.\ndef stage_result_map(\n stage_results: Iterable[ComplianceStageRun | CheckStageResult],\n) -> dict[ComplianceStageName, CheckStageStatus]:\n normalized: dict[ComplianceStageName, CheckStageStatus] = {}\n for result in stage_results:\n if isinstance(result, CheckStageResult):\n normalized[ComplianceStageName(result.stage.value)] = CheckStageStatus(\n result.status.value\n )\n continue\n\n stage_name = getattr(result, \"stage_name\", None)\n decision = getattr(result, \"decision\", None)\n status = getattr(result, \"status\", None)\n\n if not stage_name:\n continue\n\n normalized_stage = ComplianceStageName(stage_name)\n if decision == ComplianceDecision.BLOCKED:\n normalized[normalized_stage] = CheckStageStatus.FAIL\n elif decision == ComplianceDecision.ERROR:\n normalized[normalized_stage] = CheckStageStatus.SKIPPED\n elif decision == ComplianceDecision.PASSED:\n normalized[normalized_stage] = CheckStageStatus.PASS\n elif decision:\n normalized[normalized_stage] = CheckStageStatus(str(decision))\n elif status:\n normalized[normalized_stage] = CheckStageStatus(str(status))\n return normalized\n\n\n# #endregion stage_result_map\n" }, { "contract_id": "missing_mandatory_stages", "contract_type": "Function", "file_path": "backend/src/services/clean_release/stages/__init__.py", "start_line": 91, - "end_line": 103, - "tier": "TIER_2", - "complexity": 4, + "end_line": 101, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Returns ordered list of missing mandatory stages.", "PRE": "stage_status_map contains zero or more known stage statuses.", "PURPOSE": "Identify mandatory stages that are absent from run results." @@ -59940,38 +56418,37 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region missing_mandatory_stages [TYPE Function]\n# @BRIEF Identify mandatory stages that are absent from run results.\n# @PRE stage_status_map contains zero or more known stage statuses.\n# @POST Returns ordered list of missing mandatory stages.\n# @COMPLEXITY 4\n\ndef missing_mandatory_stages(\n stage_status_map: dict[ComplianceStageName, CheckStageStatus],\n) -> list[ComplianceStageName]:\n return [stage for stage in MANDATORY_STAGE_ORDER if stage not in stage_status_map]\n\n\n# #endregion missing_mandatory_stages\n" + "body": "# #region missing_mandatory_stages [TYPE Function]\n# @BRIEF Identify mandatory stages that are absent from run results.\n# @PRE: stage_status_map contains zero or more known stage statuses.\n# @POST: Returns ordered list of missing mandatory stages.\ndef missing_mandatory_stages(\n stage_status_map: dict[ComplianceStageName, CheckStageStatus],\n) -> list[ComplianceStageName]:\n return [stage for stage in MANDATORY_STAGE_ORDER if stage not in stage_status_map]\n\n\n# #endregion missing_mandatory_stages\n" }, { "contract_id": "derive_final_status", "contract_type": "Function", "file_path": "backend/src/services/clean_release/stages/__init__.py", - "start_line": 108, - "end_line": 132, - "tier": "TIER_2", - "complexity": 4, + "start_line": 104, + "end_line": 126, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Returns one of PASSED/BLOCKED/ERROR according to mandatory stage outcomes.", "PRE": "Stage statuses correspond to compliance checks.", "PURPOSE": "Derive final run status from stage results with deterministic blocking behavior." @@ -59979,34 +56456,34 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region derive_final_status [TYPE Function]\n# @BRIEF Derive final run status from stage results with deterministic blocking behavior.\n# @PRE Stage statuses correspond to compliance checks.\n# @POST Returns one of PASSED/BLOCKED/ERROR according to mandatory stage outcomes.\n# @COMPLEXITY 4\n\ndef derive_final_status(\n stage_results: Iterable[ComplianceStageRun | CheckStageResult],\n) -> CheckFinalStatus:\n status_map = stage_result_map(stage_results)\n missing = missing_mandatory_stages(status_map)\n if missing:\n return CheckFinalStatus.FAILED\n\n for stage in MANDATORY_STAGE_ORDER:\n decision = status_map.get(stage)\n if decision == CheckStageStatus.SKIPPED:\n return CheckFinalStatus.FAILED\n if decision == CheckStageStatus.FAIL:\n return CheckFinalStatus.BLOCKED\n\n return CheckFinalStatus.COMPLIANT\n\n\n# #endregion derive_final_status\n" + "body": "# #region derive_final_status [TYPE Function]\n# @BRIEF Derive final run status from stage results with deterministic blocking behavior.\n# @PRE: Stage statuses correspond to compliance checks.\n# @POST: Returns one of PASSED/BLOCKED/ERROR according to mandatory stage outcomes.\ndef derive_final_status(\n stage_results: Iterable[ComplianceStageRun | CheckStageResult],\n) -> CheckFinalStatus:\n status_map = stage_result_map(stage_results)\n missing = missing_mandatory_stages(status_map)\n if missing:\n return CheckFinalStatus.FAILED\n\n for stage in MANDATORY_STAGE_ORDER:\n decision = status_map.get(stage)\n if decision == CheckStageStatus.SKIPPED:\n return CheckFinalStatus.FAILED\n if decision == CheckStageStatus.FAIL:\n return CheckFinalStatus.BLOCKED\n\n return CheckFinalStatus.COMPLIANT\n\n\n# #endregion derive_final_status\n" }, { "contract_id": "ComplianceStageBase", "contract_type": "Module", "file_path": "backend/src/services/clean_release/stages/base.py", "start_line": 1, - "end_line": 138, + "end_line": 134, "tier": "TIER_3", "complexity": 5, "metadata": { @@ -60053,7 +56530,7 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region ComplianceStageBase [C:5] [TYPE Module] [SEMANTICS pydantic, clean-release, stage, compliance, context]\n# @BRIEF Define shared contracts and helpers for pluggable clean-release compliance stages.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [CleanReleaseModels]\n# @RELATION DEPENDS_ON -> [LoggerModule]\n# @INVARIANT: Stage execution is deterministic for equal input context.\n# @SIDE_EFFECT: None (deterministic execution)\n# @DATA_CONTRACT: Context -> StageResult\n\nfrom __future__ import annotations\n\nfrom dataclasses import dataclass, field\nfrom datetime import UTC, datetime\nfrom typing import Any, Protocol\nfrom uuid import uuid4\n\nfrom ....core.logger import belief_scope, logger\nfrom ....models.clean_release import (\n CleanPolicySnapshot,\n ComplianceDecision,\n ComplianceRun,\n ComplianceStageRun,\n ComplianceViolation,\n DistributionManifest,\n ReleaseCandidate,\n SourceRegistrySnapshot,\n)\nfrom ..enums import ComplianceStageName, ViolationSeverity\n\n\n# #region ComplianceStageContext [TYPE Class]\n# @BRIEF Immutable input envelope passed to each compliance stage.\n@dataclass(frozen=True)\nclass ComplianceStageContext:\n run: ComplianceRun\n candidate: ReleaseCandidate\n manifest: DistributionManifest\n policy: CleanPolicySnapshot\n registry: SourceRegistrySnapshot\n\n\n# #endregion ComplianceStageContext\n\n\n# #region StageExecutionResult [TYPE Class]\n# @BRIEF Structured stage output containing decision, details and violations.\n@dataclass\nclass StageExecutionResult:\n decision: ComplianceDecision\n details_json: dict[str, Any] = field(default_factory=dict)\n violations: list[ComplianceViolation] = field(default_factory=list)\n\n\n# #endregion StageExecutionResult\n\n\n# #region ComplianceStage [TYPE Class]\n# @BRIEF Protocol for pluggable stage implementations.\nclass ComplianceStage(Protocol):\n stage_name: ComplianceStageName\n\n def execute(self, context: ComplianceStageContext) -> StageExecutionResult: ...\n\n\n# #endregion ComplianceStage\n\n\n# #region build_stage_run_record [TYPE Function]\n# @BRIEF Build persisted stage run record from stage result.\n# @PRE run_id and stage_name are non-empty.\n# @POST Returns ComplianceStageRun with deterministic identifiers and timestamps.\n# @COMPLEXITY 4\n\ndef build_stage_run_record(\n *,\n run_id: str,\n stage_name: ComplianceStageName,\n result: StageExecutionResult,\n started_at: datetime | None = None,\n finished_at: datetime | None = None,\n) -> ComplianceStageRun:\n with belief_scope(\"build_stage_run_record\"):\n now = datetime.now(UTC)\n return ComplianceStageRun(\n id=f\"stg-{uuid4()}\",\n run_id=run_id,\n stage_name=stage_name.value,\n status=\"SUCCEEDED\"\n if result.decision != ComplianceDecision.ERROR\n else \"FAILED\",\n started_at=started_at or now,\n finished_at=finished_at or now,\n decision=result.decision.value,\n details_json=result.details_json,\n )\n\n\n# #endregion build_stage_run_record\n# #region build_violation [TYPE Function]\n# @BRIEF Construct a compliance violation with normalized defaults.\n# @PRE run_id, stage_name, code and message are non-empty.\n# @POST Returns immutable-style violation payload ready for persistence.\n# @COMPLEXITY 4\n\ndef build_violation(\n *,\n run_id: str,\n stage_name: ComplianceStageName,\n code: str,\n message: str,\n artifact_path: str | None = None,\n severity: ViolationSeverity = ViolationSeverity.MAJOR,\n evidence_json: dict[str, Any] | None = None,\n blocked_release: bool = True,\n) -> ComplianceViolation:\n with belief_scope(\"build_violation\"):\n logger.reflect(f\"Building violation stage={stage_name.value} code={code}\")\n return ComplianceViolation(\n id=f\"viol-{uuid4()}\",\n run_id=run_id,\n stage_name=stage_name.value,\n code=code,\n severity=severity.value,\n artifact_path=artifact_path,\n artifact_sha256=None,\n message=message,\n evidence_json={\n **(evidence_json or {}),\n \"blocked_release\": blocked_release,\n },\n )\n\n\n# #endregion build_violation\n\n# #endregion build_violation\n\n# #endregion ComplianceStageBase\n" + "body": "# #region ComplianceStageBase [C:5] [TYPE Module] [SEMANTICS pydantic, clean-release, stage, compliance, context]\n# @BRIEF Define shared contracts and helpers for pluggable clean-release compliance stages.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [CleanReleaseModels]\n# @RELATION DEPENDS_ON -> [LoggerModule]\n# @INVARIANT: Stage execution is deterministic for equal input context.\n# @SIDE_EFFECT: None (deterministic execution)\n# @DATA_CONTRACT: Context -> StageResult\n\nfrom __future__ import annotations\n\nfrom dataclasses import dataclass, field\nfrom datetime import UTC, datetime\nfrom typing import Any, Protocol\nfrom uuid import uuid4\n\nfrom ....core.logger import belief_scope, logger\nfrom ....models.clean_release import (\n CleanPolicySnapshot,\n ComplianceDecision,\n ComplianceRun,\n ComplianceStageRun,\n ComplianceViolation,\n DistributionManifest,\n ReleaseCandidate,\n SourceRegistrySnapshot,\n)\nfrom ..enums import ComplianceStageName, ViolationSeverity\n\n\n# #region ComplianceStageContext [TYPE Class]\n# @BRIEF Immutable input envelope passed to each compliance stage.\n@dataclass(frozen=True)\nclass ComplianceStageContext:\n run: ComplianceRun\n candidate: ReleaseCandidate\n manifest: DistributionManifest\n policy: CleanPolicySnapshot\n registry: SourceRegistrySnapshot\n\n\n# #endregion ComplianceStageContext\n\n\n# #region StageExecutionResult [TYPE Class]\n# @BRIEF Structured stage output containing decision, details and violations.\n@dataclass\nclass StageExecutionResult:\n decision: ComplianceDecision\n details_json: dict[str, Any] = field(default_factory=dict)\n violations: list[ComplianceViolation] = field(default_factory=list)\n\n\n# #endregion StageExecutionResult\n\n\n# #region ComplianceStage [TYPE Class]\n# @BRIEF Protocol for pluggable stage implementations.\nclass ComplianceStage(Protocol):\n stage_name: ComplianceStageName\n\n def execute(self, context: ComplianceStageContext) -> StageExecutionResult: ...\n\n\n# #endregion ComplianceStage\n\n\n# #region build_stage_run_record [TYPE Function]\n# @BRIEF Build persisted stage run record from stage result.\n# @PRE: run_id and stage_name are non-empty.\n# @POST: Returns ComplianceStageRun with deterministic identifiers and timestamps.\ndef build_stage_run_record(\n *,\n run_id: str,\n stage_name: ComplianceStageName,\n result: StageExecutionResult,\n started_at: datetime | None = None,\n finished_at: datetime | None = None,\n) -> ComplianceStageRun:\n with belief_scope(\"build_stage_run_record\"):\n now = datetime.now(UTC)\n return ComplianceStageRun(\n id=f\"stg-{uuid4()}\",\n run_id=run_id,\n stage_name=stage_name.value,\n status=\"SUCCEEDED\"\n if result.decision != ComplianceDecision.ERROR\n else \"FAILED\",\n started_at=started_at or now,\n finished_at=finished_at or now,\n decision=result.decision.value,\n details_json=result.details_json,\n )\n\n\n# #endregion build_stage_run_record\n\n\n# #region build_violation [TYPE Function]\n# @BRIEF Construct a compliance violation with normalized defaults.\n# @PRE: run_id, stage_name, code and message are non-empty.\n# @POST: Returns immutable-style violation payload ready for persistence.\ndef build_violation(\n *,\n run_id: str,\n stage_name: ComplianceStageName,\n code: str,\n message: str,\n artifact_path: str | None = None,\n severity: ViolationSeverity = ViolationSeverity.MAJOR,\n evidence_json: dict[str, Any] | None = None,\n blocked_release: bool = True,\n) -> ComplianceViolation:\n with belief_scope(\"build_violation\"):\n logger.reflect(f\"Building violation stage={stage_name.value} code={code}\")\n return ComplianceViolation(\n id=f\"viol-{uuid4()}\",\n run_id=run_id,\n stage_name=stage_name.value,\n code=code,\n severity=severity.value,\n artifact_path=artifact_path,\n artifact_sha256=None,\n message=message,\n evidence_json={\n **(evidence_json or {}),\n \"blocked_release\": blocked_release,\n },\n )\n\n\n# #endregion build_violation\n\n# #endregion ComplianceStageBase\n" }, { "contract_id": "ComplianceStageContext", @@ -60111,11 +56588,10 @@ "contract_type": "Function", "file_path": "backend/src/services/clean_release/stages/base.py", "start_line": 68, - "end_line": 98, - "tier": "TIER_2", - "complexity": 4, + "end_line": 96, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Returns ComplianceStageRun with deterministic identifiers and timestamps.", "PRE": "run_id and stage_name are non-empty.", "PURPOSE": "Build persisted stage run record from stage result." @@ -60123,38 +56599,37 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region build_stage_run_record [TYPE Function]\n# @BRIEF Build persisted stage run record from stage result.\n# @PRE run_id and stage_name are non-empty.\n# @POST Returns ComplianceStageRun with deterministic identifiers and timestamps.\n# @COMPLEXITY 4\n\ndef build_stage_run_record(\n *,\n run_id: str,\n stage_name: ComplianceStageName,\n result: StageExecutionResult,\n started_at: datetime | None = None,\n finished_at: datetime | None = None,\n) -> ComplianceStageRun:\n with belief_scope(\"build_stage_run_record\"):\n now = datetime.now(UTC)\n return ComplianceStageRun(\n id=f\"stg-{uuid4()}\",\n run_id=run_id,\n stage_name=stage_name.value,\n status=\"SUCCEEDED\"\n if result.decision != ComplianceDecision.ERROR\n else \"FAILED\",\n started_at=started_at or now,\n finished_at=finished_at or now,\n decision=result.decision.value,\n details_json=result.details_json,\n )\n\n\n# #endregion build_stage_run_record\n" + "body": "# #region build_stage_run_record [TYPE Function]\n# @BRIEF Build persisted stage run record from stage result.\n# @PRE: run_id and stage_name are non-empty.\n# @POST: Returns ComplianceStageRun with deterministic identifiers and timestamps.\ndef build_stage_run_record(\n *,\n run_id: str,\n stage_name: ComplianceStageName,\n result: StageExecutionResult,\n started_at: datetime | None = None,\n finished_at: datetime | None = None,\n) -> ComplianceStageRun:\n with belief_scope(\"build_stage_run_record\"):\n now = datetime.now(UTC)\n return ComplianceStageRun(\n id=f\"stg-{uuid4()}\",\n run_id=run_id,\n stage_name=stage_name.value,\n status=\"SUCCEEDED\"\n if result.decision != ComplianceDecision.ERROR\n else \"FAILED\",\n started_at=started_at or now,\n finished_at=finished_at or now,\n decision=result.decision.value,\n details_json=result.details_json,\n )\n\n\n# #endregion build_stage_run_record\n" }, { "contract_id": "build_violation", "contract_type": "Function", "file_path": "backend/src/services/clean_release/stages/base.py", "start_line": 99, - "end_line": 134, - "tier": "TIER_2", - "complexity": 4, + "end_line": 132, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Returns immutable-style violation payload ready for persistence.", "PRE": "run_id, stage_name, code and message are non-empty.", "PURPOSE": "Construct a compliance violation with normalized defaults." @@ -60162,27 +56637,27 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region build_violation [TYPE Function]\n# @BRIEF Construct a compliance violation with normalized defaults.\n# @PRE run_id, stage_name, code and message are non-empty.\n# @POST Returns immutable-style violation payload ready for persistence.\n# @COMPLEXITY 4\n\ndef build_violation(\n *,\n run_id: str,\n stage_name: ComplianceStageName,\n code: str,\n message: str,\n artifact_path: str | None = None,\n severity: ViolationSeverity = ViolationSeverity.MAJOR,\n evidence_json: dict[str, Any] | None = None,\n blocked_release: bool = True,\n) -> ComplianceViolation:\n with belief_scope(\"build_violation\"):\n logger.reflect(f\"Building violation stage={stage_name.value} code={code}\")\n return ComplianceViolation(\n id=f\"viol-{uuid4()}\",\n run_id=run_id,\n stage_name=stage_name.value,\n code=code,\n severity=severity.value,\n artifact_path=artifact_path,\n artifact_sha256=None,\n message=message,\n evidence_json={\n **(evidence_json or {}),\n \"blocked_release\": blocked_release,\n },\n )\n\n\n# #endregion build_violation\n" + "body": "# #region build_violation [TYPE Function]\n# @BRIEF Construct a compliance violation with normalized defaults.\n# @PRE: run_id, stage_name, code and message are non-empty.\n# @POST: Returns immutable-style violation payload ready for persistence.\ndef build_violation(\n *,\n run_id: str,\n stage_name: ComplianceStageName,\n code: str,\n message: str,\n artifact_path: str | None = None,\n severity: ViolationSeverity = ViolationSeverity.MAJOR,\n evidence_json: dict[str, Any] | None = None,\n blocked_release: bool = True,\n) -> ComplianceViolation:\n with belief_scope(\"build_violation\"):\n logger.reflect(f\"Building violation stage={stage_name.value} code={code}\")\n return ComplianceViolation(\n id=f\"viol-{uuid4()}\",\n run_id=run_id,\n stage_name=stage_name.value,\n code=code,\n severity=severity.value,\n artifact_path=artifact_path,\n artifact_sha256=None,\n message=message,\n evidence_json={\n **(evidence_json or {}),\n \"blocked_release\": blocked_release,\n },\n )\n\n\n# #endregion build_violation\n" }, { "contract_id": "data_purity", @@ -60591,15 +57066,6 @@ "value": "Services" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -60691,15 +57157,6 @@ "actual_complexity": 4, "contract_type": "Module" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -60760,6 +57217,32 @@ "tier_source": "AutoCalculated", "body": "# #region ClarificationAnswerCommand [C:2] [TYPE Class]\n# @BRIEF Typed answer command for clarification state mutation.\n@dataclass\nclass ClarificationAnswerCommand:\n session: DatasetReviewSession\n question_id: str\n answer_kind: AnswerKind\n answer_value: str | None\n user: User\n\n\n# #endregion ClarificationAnswerCommand\n" }, + { + "contract_id": "ClarificationHelpers", + "contract_type": "Module", + "file_path": "backend/src/services/dataset_review/clarification_pkg/_helpers.py", + "start_line": 1, + "end_line": 209, + "tier": "TIER_2", + "complexity": 3, + "metadata": { + "COMPLEXITY": 3, + "LAYER": "Domain", + "PURPOSE": "Pure helper functions for clarification engine — question selection, counting, normalization, finding upsert, and readiness derivation." + }, + "relations": [ + { + "source_id": "ClarificationHelpers", + "relation_type": "DEPENDS_ON", + "target_id": "DatasetReviewModels", + "target_ref": "[DatasetReviewModels]" + } + ], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region ClarificationHelpers [C:3] [TYPE Module] [SEMANTICS dataset, clarification, question, selection, normalization]\n# @BRIEF Pure helper functions for clarification engine — question selection, counting, normalization, finding upsert, and readiness derivation.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [DatasetReviewModels]\n\nfrom __future__ import annotations\n\nimport uuid\nfrom datetime import datetime\n\nfrom src.models.dataset_review import (\n AnswerKind,\n ClarificationQuestion,\n ClarificationSession,\n DatasetReviewSession,\n FindingArea,\n FindingSeverity,\n QuestionState,\n ReadinessState,\n RecommendedAction,\n ResolutionState,\n ValidationFinding,\n)\n\n\n# #region select_next_open_question [C:2] [TYPE Function]\n# @BRIEF Select the next unresolved question in deterministic priority order.\ndef select_next_open_question(\n clarification_session: ClarificationSession,\n) -> ClarificationQuestion | None:\n open_questions = [\n q for q in clarification_session.questions if q.state == QuestionState.OPEN\n ]\n if not open_questions:\n return None\n open_questions.sort(key=lambda item: (-int(item.priority), item.created_at, item.question_id))\n return open_questions[0]\n\n\n# #endregion select_next_open_question\n\n\n# #region count_resolved_questions [C:1] [TYPE Function]\n# @BRIEF Count questions whose answers fully resolved the ambiguity.\ndef count_resolved_questions(clarification_session: ClarificationSession) -> int:\n return sum(1 for q in clarification_session.questions if q.state == QuestionState.ANSWERED)\n\n\n# #endregion count_resolved_questions\n\n\n# #region count_remaining_questions [C:1] [TYPE Function]\n# @BRIEF Count questions still unresolved or deferred after clarification interaction.\ndef count_remaining_questions(clarification_session: ClarificationSession) -> int:\n return sum(\n 1\n for q in clarification_session.questions\n if q.state in {QuestionState.OPEN, QuestionState.SKIPPED, QuestionState.EXPERT_REVIEW}\n )\n\n\n# #endregion count_remaining_questions\n\n\n# #region normalize_answer_value [C:2] [TYPE Function]\n# @BRIEF Validate and normalize answer payload based on answer kind and active question options.\ndef normalize_answer_value(\n answer_kind: AnswerKind,\n answer_value: str | None,\n question: ClarificationQuestion,\n) -> str | None:\n normalized = str(answer_value).strip() if answer_value is not None else None\n if answer_kind in {AnswerKind.SELECTED, AnswerKind.CUSTOM} and not normalized:\n raise ValueError(\"answer_value is required for selected or custom clarification answers\")\n if answer_kind == AnswerKind.SELECTED:\n allowed_values = {option.value for option in question.options}\n if normalized not in allowed_values:\n raise ValueError(\"answer_value must match one of the current clarification options\")\n if answer_kind == AnswerKind.SKIPPED:\n return normalized or \"skipped\"\n if answer_kind == AnswerKind.EXPERT_REVIEW:\n return normalized or \"expert_review\"\n return normalized\n\n\n# #endregion normalize_answer_value\n\n\n# #region build_impact_summary [C:1] [TYPE Function]\n# @BRIEF Build a compact audit note describing how the clarification answer affects session state.\ndef build_impact_summary(\n question: ClarificationQuestion,\n answer_kind: AnswerKind,\n answer_value: str | None,\n) -> str:\n if answer_kind == AnswerKind.SKIPPED:\n return f\"Clarification for {question.topic_ref} was skipped and remains unresolved.\"\n if answer_kind == AnswerKind.EXPERT_REVIEW:\n return f\"Clarification for {question.topic_ref} was deferred for expert review.\"\n return f\"Clarification for {question.topic_ref} recorded as '{answer_value}'.\"\n\n\n# #endregion build_impact_summary\n\n\n# #region upsert_clarification_finding [C:3] [TYPE Function]\n# @BRIEF Keep one finding per clarification topic aligned with answer outcome and unresolved visibility rules.\n# @RELATION DEPENDS_ON -> [ValidationFinding]\ndef upsert_clarification_finding(\n session: DatasetReviewSession,\n question: ClarificationQuestion,\n answer_kind: AnswerKind,\n answer_value: str | None,\n db_session,\n) -> ValidationFinding | None:\n caused_by_ref = f\"clarification:{question.question_id}\"\n existing = next(\n (f for f in session.findings if f.area == FindingArea.CLARIFICATION and f.caused_by_ref == caused_by_ref),\n None,\n )\n\n if answer_kind in {AnswerKind.SELECTED, AnswerKind.CUSTOM}:\n resolution_state = ResolutionState.RESOLVED\n resolved_at = datetime.utcnow()\n message = f\"Clarified '{question.topic_ref}' with answer '{answer_value}'.\"\n elif answer_kind == AnswerKind.SKIPPED:\n resolution_state = ResolutionState.SKIPPED\n resolved_at = None\n message = f\"Clarification for '{question.topic_ref}' was skipped and still needs review.\"\n else:\n resolution_state = ResolutionState.EXPERT_REVIEW\n resolved_at = None\n message = f\"Clarification for '{question.topic_ref}' requires expert review.\"\n\n if existing is None:\n existing = ValidationFinding(\n finding_id=str(uuid.uuid4()),\n session_id=session.session_id,\n area=FindingArea.CLARIFICATION,\n severity=FindingSeverity.WARNING,\n code=\"CLARIFICATION_PENDING\",\n title=\"Clarification pending\",\n message=message,\n resolution_state=resolution_state,\n resolution_note=None,\n caused_by_ref=caused_by_ref,\n created_at=datetime.utcnow(),\n resolved_at=resolved_at,\n )\n db_session.add(existing)\n session.findings.append(existing)\n else:\n existing.message = message\n existing.resolution_state = resolution_state\n existing.resolved_at = resolved_at\n\n if answer_kind in {AnswerKind.SELECTED, AnswerKind.CUSTOM}:\n existing.code = \"CLARIFICATION_RESOLVED\"\n existing.title = \"Clarification resolved\"\n elif answer_kind == AnswerKind.SKIPPED:\n existing.code = \"CLARIFICATION_SKIPPED\"\n existing.title = \"Clarification skipped\"\n else:\n existing.code = \"CLARIFICATION_EXPERT_REVIEW\"\n existing.title = \"Clarification requires expert review\"\n\n return existing\n\n\n# #endregion upsert_clarification_finding\n\n\n# #region derive_readiness_state [C:2] [TYPE Function]\n# @BRIEF Recompute readiness after clarification mutation while preserving unresolved visibility semantics.\ndef derive_readiness_state(\n session: DatasetReviewSession,\n clarification_session: ClarificationSession | None,\n) -> ReadinessState:\n if clarification_session is None:\n return session.readiness_state\n if clarification_session.current_question_id:\n return ReadinessState.CLARIFICATION_ACTIVE\n if clarification_session.remaining_count > 0:\n return ReadinessState.CLARIFICATION_NEEDED\n return ReadinessState.REVIEW_READY\n\n\n# #endregion derive_readiness_state\n\n\n# #region derive_recommended_action [C:2] [TYPE Function]\n# @BRIEF Recompute next-action guidance after clarification mutations.\ndef derive_recommended_action(\n session: DatasetReviewSession,\n clarification_session: ClarificationSession | None,\n) -> RecommendedAction:\n if clarification_session is None:\n return session.recommended_action\n if clarification_session.current_question_id:\n return RecommendedAction.ANSWER_NEXT_QUESTION\n if clarification_session.remaining_count > 0:\n return RecommendedAction.START_CLARIFICATION\n return RecommendedAction.REVIEW_DOCUMENTATION\n\n\n# #endregion derive_recommended_action\n\n\n# #endregion ClarificationHelpers\n" + }, { "contract_id": "select_next_open_question", "contract_type": "Function", @@ -60783,172 +57266,79 @@ "contract_type": "Function", "file_path": "backend/src/services/dataset_review/clarification_pkg/_helpers.py", "start_line": 43, - "end_line": 51, - "tier": "TIER_2", - "complexity": 4, + "end_line": 49, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", + "COMPLEXITY": 1, "PURPOSE": "Count questions whose answers fully resolved the ambiguity." }, "relations": [], - "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "POST", - "message": "@POST is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "PRE", - "message": "@PRE is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region count_resolved_questions [C:4] [TYPE Function]\n# @BRIEF Count questions whose answers fully resolved the ambiguity.\n# @COMPLEXITY 4\n\ndef count_resolved_questions(clarification_session: ClarificationSession) -> int:\n return sum(1 for q in clarification_session.questions if q.state == QuestionState.ANSWERED)\n\n\n# #endregion count_resolved_questions\n" + "body": "# #region count_resolved_questions [C:1] [TYPE Function]\n# @BRIEF Count questions whose answers fully resolved the ambiguity.\ndef count_resolved_questions(clarification_session: ClarificationSession) -> int:\n return sum(1 for q in clarification_session.questions if q.state == QuestionState.ANSWERED)\n\n\n# #endregion count_resolved_questions\n" }, { "contract_id": "count_remaining_questions", "contract_type": "Function", "file_path": "backend/src/services/dataset_review/clarification_pkg/_helpers.py", "start_line": 52, - "end_line": 64, - "tier": "TIER_2", - "complexity": 4, + "end_line": 62, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", + "COMPLEXITY": 1, "PURPOSE": "Count questions still unresolved or deferred after clarification interaction." }, "relations": [], - "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "POST", - "message": "@POST is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "PRE", - "message": "@PRE is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region count_remaining_questions [C:4] [TYPE Function]\n# @BRIEF Count questions still unresolved or deferred after clarification interaction.\n# @COMPLEXITY 4\n\ndef count_remaining_questions(clarification_session: ClarificationSession) -> int:\n return sum(\n 1\n for q in clarification_session.questions\n if q.state in {QuestionState.OPEN, QuestionState.SKIPPED, QuestionState.EXPERT_REVIEW}\n )\n\n\n# #endregion count_remaining_questions\n" + "body": "# #region count_remaining_questions [C:1] [TYPE Function]\n# @BRIEF Count questions still unresolved or deferred after clarification interaction.\ndef count_remaining_questions(clarification_session: ClarificationSession) -> int:\n return sum(\n 1\n for q in clarification_session.questions\n if q.state in {QuestionState.OPEN, QuestionState.SKIPPED, QuestionState.EXPERT_REVIEW}\n )\n\n\n# #endregion count_remaining_questions\n" + }, + { + "contract_id": "normalize_answer_value", + "contract_type": "Function", + "file_path": "backend/src/services/dataset_review/clarification_pkg/_helpers.py", + "start_line": 65, + "end_line": 86, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "PURPOSE": "Validate and normalize answer payload based on answer kind and active question options." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region normalize_answer_value [C:2] [TYPE Function]\n# @BRIEF Validate and normalize answer payload based on answer kind and active question options.\ndef normalize_answer_value(\n answer_kind: AnswerKind,\n answer_value: str | None,\n question: ClarificationQuestion,\n) -> str | None:\n normalized = str(answer_value).strip() if answer_value is not None else None\n if answer_kind in {AnswerKind.SELECTED, AnswerKind.CUSTOM} and not normalized:\n raise ValueError(\"answer_value is required for selected or custom clarification answers\")\n if answer_kind == AnswerKind.SELECTED:\n allowed_values = {option.value for option in question.options}\n if normalized not in allowed_values:\n raise ValueError(\"answer_value must match one of the current clarification options\")\n if answer_kind == AnswerKind.SKIPPED:\n return normalized or \"skipped\"\n if answer_kind == AnswerKind.EXPERT_REVIEW:\n return normalized or \"expert_review\"\n return normalized\n\n\n# #endregion normalize_answer_value\n" }, { "contract_id": "build_impact_summary", "contract_type": "Function", "file_path": "backend/src/services/dataset_review/clarification_pkg/_helpers.py", "start_line": 89, - "end_line": 105, - "tier": "TIER_2", - "complexity": 4, + "end_line": 103, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", + "COMPLEXITY": 1, "PURPOSE": "Build a compact audit note describing how the clarification answer affects session state." }, "relations": [], - "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "POST", - "message": "@POST is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "PRE", - "message": "@PRE is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region build_impact_summary [C:4] [TYPE Function]\n# @BRIEF Build a compact audit note describing how the clarification answer affects session state.\n# @COMPLEXITY 4\n\ndef build_impact_summary(\n question: ClarificationQuestion,\n answer_kind: AnswerKind,\n answer_value: str | None,\n) -> str:\n if answer_kind == AnswerKind.SKIPPED:\n return f\"Clarification for {question.topic_ref} was skipped and remains unresolved.\"\n if answer_kind == AnswerKind.EXPERT_REVIEW:\n return f\"Clarification for {question.topic_ref} was deferred for expert review.\"\n return f\"Clarification for {question.topic_ref} recorded as '{answer_value}'.\"\n\n\n# #endregion build_impact_summary\n" + "body": "# #region build_impact_summary [C:1] [TYPE Function]\n# @BRIEF Build a compact audit note describing how the clarification answer affects session state.\ndef build_impact_summary(\n question: ClarificationQuestion,\n answer_kind: AnswerKind,\n answer_value: str | None,\n) -> str:\n if answer_kind == AnswerKind.SKIPPED:\n return f\"Clarification for {question.topic_ref} was skipped and remains unresolved.\"\n if answer_kind == AnswerKind.EXPERT_REVIEW:\n return f\"Clarification for {question.topic_ref} was deferred for expert review.\"\n return f\"Clarification for {question.topic_ref} recorded as '{answer_value}'.\"\n\n\n# #endregion build_impact_summary\n" }, { "contract_id": "upsert_clarification_finding", "contract_type": "Function", "file_path": "backend/src/services/dataset_review/clarification_pkg/_helpers.py", - "start_line": 112, - "end_line": 176, + "start_line": 106, + "end_line": 170, "tier": "TIER_2", "complexity": 3, "metadata": { @@ -60972,8 +57362,8 @@ "contract_id": "derive_readiness_state", "contract_type": "Function", "file_path": "backend/src/services/dataset_review/clarification_pkg/_helpers.py", - "start_line": 179, - "end_line": 194, + "start_line": 173, + "end_line": 188, "tier": "TIER_1", "complexity": 2, "metadata": { @@ -60990,8 +57380,8 @@ "contract_id": "derive_recommended_action", "contract_type": "Function", "file_path": "backend/src/services/dataset_review/clarification_pkg/_helpers.py", - "start_line": 197, - "end_line": 212, + "start_line": 191, + "end_line": 206, "tier": "TIER_1", "complexity": 2, "metadata": { @@ -61224,17 +57614,7 @@ "target_ref": "[SupersetContextExtractor]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region OrchestratorCommands [C:2] [TYPE Module] [SEMANTICS dataset, review, command, dataclass, boundary]\n# @BRIEF Typed command and result dataclasses for dataset review orchestration boundary.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [DatasetReviewModels]\n# @RELATION DEPENDS_ON -> [SupersetContextExtractor]\n\nfrom __future__ import annotations\n\nfrom dataclasses import dataclass, field\n\nfrom src.core.utils.superset_context_extractor import SupersetParsedContext\nfrom src.models.auth import User\nfrom src.models.dataset_review import (\n CompiledPreview,\n DatasetReviewSession,\n DatasetRunContext,\n ValidationFinding,\n)\n\n\n# #region StartSessionCommand [C:2] [TYPE Class]\n# @BRIEF Typed input contract for starting a dataset review session.\n@dataclass\nclass StartSessionCommand:\n user: User\n environment_id: str\n source_kind: str\n source_input: str\n\n\n# #endregion StartSessionCommand\n\n\n# #region StartSessionResult [C:2] [TYPE Class]\n# @BRIEF Session-start result carrying the persisted session and intake recovery metadata.\n@dataclass\nclass StartSessionResult:\n session: DatasetReviewSession\n parsed_context: SupersetParsedContext | None = None\n findings: list[ValidationFinding] = field(default_factory=list)\n\n\n# #endregion StartSessionResult\n\n\n# #region PreparePreviewCommand [C:2] [TYPE Class]\n# @BRIEF Typed input contract for compiling one Superset-backed session preview.\n@dataclass\nclass PreparePreviewCommand:\n user: User\n session_id: str\n expected_version: int | None = None\n\n\n# #endregion PreparePreviewCommand\n\n\n# #region PreparePreviewResult [C:2] [TYPE Class]\n# @BRIEF Result contract for one persisted compiled preview attempt.\n@dataclass\nclass PreparePreviewResult:\n session: DatasetReviewSession\n preview: CompiledPreview\n blocked_reasons: list[str] = field(default_factory=list)\n\n\n# #endregion PreparePreviewResult\n\n\n# #region LaunchDatasetCommand [C:2] [TYPE Class]\n# @BRIEF Typed input contract for launching one dataset-review session into SQL Lab.\n@dataclass\nclass LaunchDatasetCommand:\n user: User\n session_id: str\n expected_version: int | None = None\n\n\n# #endregion LaunchDatasetCommand\n\n\n# #region LaunchDatasetResult [C:2] [TYPE Class]\n# @BRIEF Launch result carrying immutable run context and any gate blockers.\n@dataclass\nclass LaunchDatasetResult:\n session: DatasetReviewSession\n run_context: DatasetRunContext\n blocked_reasons: list[str] = field(default_factory=list)\n\n\n# #endregion LaunchDatasetResult\n\n\n# #endregion OrchestratorCommands\n" @@ -61352,7 +57732,7 @@ "contract_type": "Module", "file_path": "backend/src/services/dataset_review/orchestrator_pkg/_helpers.py", "start_line": 1, - "end_line": 340, + "end_line": 338, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -61389,7 +57769,7 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region OrchestratorHelpers [C:4] [TYPE Module] [SEMANTICS dataset, review, snapshot, fingerprint, recovery]\n# @BRIEF Pure helper methods extracted from DatasetReviewOrchestrator for INV_7 compliance — snapshot, blockers, fingerprint, recovery bootstrap.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [DatasetReviewModels]\n# @RELATION DEPENDS_ON -> [SupersetContextExtractor]\n# @PRE: Caller provides a loaded session aggregate with hydrated child collections.\n# @POST: Helper results are deterministic and do not mutate persistence directly.\n\nfrom __future__ import annotations\n\nimport hashlib\nimport json\nfrom datetime import datetime\nfrom typing import Any, cast\n\nfrom src.core.logger import logger\nfrom src.models.dataset_review import (\n ApprovalState,\n BusinessSummarySource,\n CompiledPreview,\n ConfidenceState,\n DatasetProfile,\n DatasetReviewSession,\n FindingArea,\n FindingSeverity,\n PreviewStatus,\n ResolutionState,\n ValidationFinding,\n)\n\nlogger = cast(Any, logger)\n\n\n# #region parse_dataset_selection [C:2] [TYPE Function]\n# @BRIEF Normalize dataset-selection payload into canonical session references.\ndef parse_dataset_selection(source_input: str) -> tuple[str, int | None]:\n normalized = str(source_input or \"\").strip()\n if not normalized:\n raise ValueError(\"dataset selection input must be non-empty\")\n if normalized.isdigit():\n dataset_id = int(normalized)\n return f\"dataset:{dataset_id}\", dataset_id\n if normalized.startswith(\"dataset:\"):\n suffix = normalized.split(\":\", 1)[1].strip()\n if suffix.isdigit():\n return normalized, int(suffix)\n return normalized, None\n return normalized, None\n\n\n# #endregion parse_dataset_selection\n\n\n# #region build_initial_profile [C:2] [TYPE Function]\n# @BRIEF Create the first profile snapshot so exports and detail views remain usable immediately after intake.\ndef build_initial_profile(\n session_id: str,\n parsed_context: Any | None,\n dataset_ref: str,\n) -> DatasetProfile:\n dataset_name = (\n dataset_ref.split(\".\")[-1] if dataset_ref else \"Unresolved dataset\"\n )\n business_summary = (\n f\"Review session initialized for {dataset_ref}.\"\n if dataset_ref\n else \"Review session initialized with unresolved dataset context.\"\n )\n confidence_state = (\n ConfidenceState.MIXED\n if parsed_context and getattr(parsed_context, \"partial_recovery\", False)\n else ConfidenceState.MOSTLY_CONFIRMED\n )\n return DatasetProfile(\n session_id=session_id,\n dataset_name=dataset_name or \"Unresolved dataset\",\n schema_name=dataset_ref.split(\".\")[0] if \".\" in dataset_ref else None,\n business_summary=business_summary,\n business_summary_source=BusinessSummarySource.IMPORTED,\n description=\"Initial review profile created from source intake.\",\n dataset_type=\"unknown\",\n is_sqllab_view=False,\n completeness_score=0.25,\n confidence_state=confidence_state,\n has_blocking_findings=False,\n has_warning_findings=bool(\n parsed_context and getattr(parsed_context, \"partial_recovery\", False)\n ),\n manual_summary_locked=False,\n )\n\n\n# #endregion build_initial_profile\n\n\n# #region build_partial_recovery_findings [C:3] [TYPE Function]\n# @BRIEF Project partial Superset intake recovery into explicit findings without blocking session usability.\n# @PRE: parsed_context.partial_recovery is true.\n# @POST: Returns warning-level findings that preserve usable but incomplete state.\ndef build_partial_recovery_findings(parsed_context: Any) -> list[ValidationFinding]:\n findings: list[ValidationFinding] = []\n for unresolved_ref in getattr(parsed_context, \"unresolved_references\", []):\n findings.append(\n ValidationFinding(\n area=FindingArea.SOURCE_INTAKE,\n severity=FindingSeverity.WARNING,\n code=\"PARTIAL_SUPERSET_RECOVERY\",\n title=\"Superset context recovered partially\",\n message=(\n \"Session remains usable, but some Superset context requires review: \"\n f\"{unresolved_ref.replace('_', ' ')}.\"\n ),\n resolution_state=ResolutionState.OPEN,\n caused_by_ref=unresolved_ref,\n )\n )\n return findings\n\n\n# #endregion build_partial_recovery_findings\n\n\n# #region extract_effective_filter_value [C:2] [TYPE Function]\n# @BRIEF Separate normalized filter payload metadata from the user-facing effective filter value.\ndef extract_effective_filter_value(\n normalized_value: Any, raw_value: Any\n) -> Any:\n if isinstance(normalized_value, dict) and (\n \"filter_clauses\" in normalized_value\n or \"extra_form_data\" in normalized_value\n ):\n return raw_value\n return normalized_value if normalized_value is not None else raw_value\n\n\n# #endregion extract_effective_filter_value\n\n\n# #region build_execution_snapshot [C:4] [TYPE Function]\n# @BRIEF Build effective filters, template params, approvals, and fingerprint for preview and launch gating.\n# @PRE: Session aggregate includes imported filters, template variables, and current execution mappings.\n# @POST: Returns deterministic execution snapshot for current session state without mutating persistence.\ndef build_execution_snapshot(session: DatasetReviewSession) -> dict[str, Any]:\n session_record = cast(Any, session)\n filter_lookup = {\n item.filter_id: item for item in session_record.imported_filters\n }\n variable_lookup = {\n item.variable_id: item for item in session_record.template_variables\n }\n\n effective_filters: list[dict[str, Any]] = []\n template_params: dict[str, Any] = {}\n approved_mapping_ids: list[str] = []\n open_warning_refs: list[str] = []\n preview_blockers: list[str] = []\n mapped_filter_ids: set[str] = set()\n\n for mapping in session_record.execution_mappings:\n imported_filter = filter_lookup.get(mapping.filter_id)\n template_variable = variable_lookup.get(mapping.variable_id)\n if imported_filter is None:\n preview_blockers.append(f\"mapping:{mapping.mapping_id}:missing_filter\")\n continue\n if template_variable is None:\n preview_blockers.append(f\"mapping:{mapping.mapping_id}:missing_variable\")\n continue\n\n effective_value = mapping.effective_value\n if effective_value is None:\n effective_value = extract_effective_filter_value(\n imported_filter.normalized_value, imported_filter.raw_value,\n )\n if effective_value is None:\n effective_value = template_variable.default_value\n\n if effective_value is None and template_variable.is_required:\n preview_blockers.append(\n f\"variable:{template_variable.variable_name}:missing_required_value\"\n )\n continue\n\n mapped_filter_ids.add(imported_filter.filter_id)\n if effective_value is not None:\n mapped_filter_payload = {\n \"mapping_id\": mapping.mapping_id,\n \"filter_id\": imported_filter.filter_id,\n \"filter_name\": imported_filter.filter_name,\n \"variable_id\": template_variable.variable_id,\n \"variable_name\": template_variable.variable_name,\n \"effective_value\": effective_value,\n \"raw_input_value\": mapping.raw_input_value,\n }\n if isinstance(imported_filter.normalized_value, dict):\n mapped_filter_payload[\"display_name\"] = imported_filter.display_name\n mapped_filter_payload[\"normalized_filter_payload\"] = (\n imported_filter.normalized_value\n )\n effective_filters.append(mapped_filter_payload)\n template_params[template_variable.variable_name] = effective_value\n if mapping.approval_state == ApprovalState.APPROVED:\n approved_mapping_ids.append(mapping.mapping_id)\n if (\n mapping.requires_explicit_approval\n and mapping.approval_state != ApprovalState.APPROVED\n ):\n open_warning_refs.append(mapping.mapping_id)\n\n for imported_filter in session_record.imported_filters:\n if imported_filter.filter_id in mapped_filter_ids:\n continue\n effective_value = extract_effective_filter_value(\n imported_filter.normalized_value, imported_filter.raw_value,\n )\n if effective_value is None:\n continue\n effective_filters.append(\n {\n \"filter_id\": imported_filter.filter_id,\n \"filter_name\": imported_filter.filter_name,\n \"display_name\": imported_filter.display_name,\n \"effective_value\": effective_value,\n \"raw_input_value\": imported_filter.raw_value,\n \"normalized_filter_payload\": imported_filter.normalized_value,\n }\n )\n\n mapped_variable_ids = {\n mapping.variable_id for mapping in session_record.execution_mappings\n }\n for variable in session_record.template_variables:\n if variable.variable_id in mapped_variable_ids:\n continue\n if variable.default_value is not None:\n template_params[variable.variable_name] = variable.default_value\n continue\n if variable.is_required:\n preview_blockers.append(f\"variable:{variable.variable_name}:unmapped\")\n\n semantic_decision_refs = [\n field.field_id\n for field in session.semantic_fields\n if field.is_locked\n or not field.needs_review\n or field.provenance.value != \"unresolved\"\n ]\n preview_fingerprint = compute_preview_fingerprint(\n {\n \"dataset_id\": session_record.dataset_id,\n \"template_params\": template_params,\n \"effective_filters\": effective_filters,\n }\n )\n return {\n \"effective_filters\": effective_filters,\n \"template_params\": template_params,\n \"approved_mapping_ids\": sorted(approved_mapping_ids),\n \"semantic_decision_refs\": sorted(semantic_decision_refs),\n \"open_warning_refs\": sorted(open_warning_refs),\n \"preview_blockers\": sorted(set(preview_blockers)),\n \"preview_fingerprint\": preview_fingerprint,\n }\n\n\n# #endregion build_execution_snapshot\n\n\n# #region build_launch_blockers [C:3] [TYPE Function]\n# @BRIEF Enforce launch gates from findings, approvals, and current preview truth.\n# @PRE: execution_snapshot was computed from current session state.\n# @POST: Returns explicit blocker codes for every unmet launch invariant.\ndef build_launch_blockers(\n session: DatasetReviewSession,\n execution_snapshot: dict[str, Any],\n preview: CompiledPreview | None,\n) -> list[str]:\n session_record = cast(Any, session)\n blockers = list(execution_snapshot[\"preview_blockers\"])\n\n for finding in session_record.findings:\n if (\n finding.severity == FindingSeverity.BLOCKING\n and finding.resolution_state\n not in {ResolutionState.RESOLVED, ResolutionState.APPROVED}\n ):\n blockers.append(f\"finding:{finding.code}:blocking\")\n for mapping in session_record.execution_mappings:\n if (\n mapping.requires_explicit_approval\n and mapping.approval_state != ApprovalState.APPROVED\n ):\n blockers.append(f\"mapping:{mapping.mapping_id}:approval_required\")\n\n if preview is None:\n blockers.append(\"preview:missing\")\n else:\n if preview.preview_status != PreviewStatus.READY:\n blockers.append(f\"preview:{preview.preview_status.value}\")\n if preview.preview_fingerprint != execution_snapshot[\"preview_fingerprint\"]:\n blockers.append(\"preview:fingerprint_mismatch\")\n\n return sorted(set(blockers))\n\n\n# #endregion build_launch_blockers\n\n\n# #region get_latest_preview [C:2] [TYPE Function]\n# @BRIEF Resolve the current latest preview snapshot for one session aggregate.\ndef get_latest_preview(session: DatasetReviewSession) -> CompiledPreview | None:\n session_record = cast(Any, session)\n if not session_record.previews:\n return None\n if session_record.last_preview_id:\n for preview in session_record.previews:\n if preview.preview_id == session_record.last_preview_id:\n return preview\n return sorted(\n session_record.previews,\n key=lambda item: (item.created_at or datetime.min, item.preview_id),\n reverse=True,\n )[0]\n\n\n# #endregion get_latest_preview\n\n\n# #region compute_preview_fingerprint [C:4] [TYPE Function]\n# @BRIEF Produce deterministic execution fingerprint for preview truth and staleness checks.\n# @COMPLEXITY 4\n\ndef compute_preview_fingerprint(payload: dict[str, Any]) -> str:\n serialized = json.dumps(payload, sort_keys=True, default=str)\n return hashlib.sha256(serialized.encode(\"utf-8\")).hexdigest()\n\n\n# #endregion compute_preview_fingerprint\n\n\n# #endregion OrchestratorHelpers\n" + "body": "# #region OrchestratorHelpers [C:4] [TYPE Module] [SEMANTICS dataset, review, snapshot, fingerprint, recovery]\n# @BRIEF Pure helper methods extracted from DatasetReviewOrchestrator for INV_7 compliance — snapshot, blockers, fingerprint, recovery bootstrap.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [DatasetReviewModels]\n# @RELATION DEPENDS_ON -> [SupersetContextExtractor]\n# @PRE: Caller provides a loaded session aggregate with hydrated child collections.\n# @POST: Helper results are deterministic and do not mutate persistence directly.\n\nfrom __future__ import annotations\n\nimport hashlib\nimport json\nfrom datetime import datetime\nfrom typing import Any, cast\n\nfrom src.core.logger import logger\nfrom src.models.dataset_review import (\n ApprovalState,\n BusinessSummarySource,\n CompiledPreview,\n ConfidenceState,\n DatasetProfile,\n DatasetReviewSession,\n FindingArea,\n FindingSeverity,\n PreviewStatus,\n ResolutionState,\n ValidationFinding,\n)\n\nlogger = cast(Any, logger)\n\n\n# #region parse_dataset_selection [C:2] [TYPE Function]\n# @BRIEF Normalize dataset-selection payload into canonical session references.\ndef parse_dataset_selection(source_input: str) -> tuple[str, int | None]:\n normalized = str(source_input or \"\").strip()\n if not normalized:\n raise ValueError(\"dataset selection input must be non-empty\")\n if normalized.isdigit():\n dataset_id = int(normalized)\n return f\"dataset:{dataset_id}\", dataset_id\n if normalized.startswith(\"dataset:\"):\n suffix = normalized.split(\":\", 1)[1].strip()\n if suffix.isdigit():\n return normalized, int(suffix)\n return normalized, None\n return normalized, None\n\n\n# #endregion parse_dataset_selection\n\n\n# #region build_initial_profile [C:2] [TYPE Function]\n# @BRIEF Create the first profile snapshot so exports and detail views remain usable immediately after intake.\ndef build_initial_profile(\n session_id: str,\n parsed_context: Any | None,\n dataset_ref: str,\n) -> DatasetProfile:\n dataset_name = (\n dataset_ref.split(\".\")[-1] if dataset_ref else \"Unresolved dataset\"\n )\n business_summary = (\n f\"Review session initialized for {dataset_ref}.\"\n if dataset_ref\n else \"Review session initialized with unresolved dataset context.\"\n )\n confidence_state = (\n ConfidenceState.MIXED\n if parsed_context and getattr(parsed_context, \"partial_recovery\", False)\n else ConfidenceState.MOSTLY_CONFIRMED\n )\n return DatasetProfile(\n session_id=session_id,\n dataset_name=dataset_name or \"Unresolved dataset\",\n schema_name=dataset_ref.split(\".\")[0] if \".\" in dataset_ref else None,\n business_summary=business_summary,\n business_summary_source=BusinessSummarySource.IMPORTED,\n description=\"Initial review profile created from source intake.\",\n dataset_type=\"unknown\",\n is_sqllab_view=False,\n completeness_score=0.25,\n confidence_state=confidence_state,\n has_blocking_findings=False,\n has_warning_findings=bool(\n parsed_context and getattr(parsed_context, \"partial_recovery\", False)\n ),\n manual_summary_locked=False,\n )\n\n\n# #endregion build_initial_profile\n\n\n# #region build_partial_recovery_findings [C:3] [TYPE Function]\n# @BRIEF Project partial Superset intake recovery into explicit findings without blocking session usability.\n# @PRE: parsed_context.partial_recovery is true.\n# @POST: Returns warning-level findings that preserve usable but incomplete state.\ndef build_partial_recovery_findings(parsed_context: Any) -> list[ValidationFinding]:\n findings: list[ValidationFinding] = []\n for unresolved_ref in getattr(parsed_context, \"unresolved_references\", []):\n findings.append(\n ValidationFinding(\n area=FindingArea.SOURCE_INTAKE,\n severity=FindingSeverity.WARNING,\n code=\"PARTIAL_SUPERSET_RECOVERY\",\n title=\"Superset context recovered partially\",\n message=(\n \"Session remains usable, but some Superset context requires review: \"\n f\"{unresolved_ref.replace('_', ' ')}.\"\n ),\n resolution_state=ResolutionState.OPEN,\n caused_by_ref=unresolved_ref,\n )\n )\n return findings\n\n\n# #endregion build_partial_recovery_findings\n\n\n# #region extract_effective_filter_value [C:2] [TYPE Function]\n# @BRIEF Separate normalized filter payload metadata from the user-facing effective filter value.\ndef extract_effective_filter_value(\n normalized_value: Any, raw_value: Any\n) -> Any:\n if isinstance(normalized_value, dict) and (\n \"filter_clauses\" in normalized_value\n or \"extra_form_data\" in normalized_value\n ):\n return raw_value\n return normalized_value if normalized_value is not None else raw_value\n\n\n# #endregion extract_effective_filter_value\n\n\n# #region build_execution_snapshot [C:4] [TYPE Function]\n# @BRIEF Build effective filters, template params, approvals, and fingerprint for preview and launch gating.\n# @PRE: Session aggregate includes imported filters, template variables, and current execution mappings.\n# @POST: Returns deterministic execution snapshot for current session state without mutating persistence.\ndef build_execution_snapshot(session: DatasetReviewSession) -> dict[str, Any]:\n session_record = cast(Any, session)\n filter_lookup = {\n item.filter_id: item for item in session_record.imported_filters\n }\n variable_lookup = {\n item.variable_id: item for item in session_record.template_variables\n }\n\n effective_filters: list[dict[str, Any]] = []\n template_params: dict[str, Any] = {}\n approved_mapping_ids: list[str] = []\n open_warning_refs: list[str] = []\n preview_blockers: list[str] = []\n mapped_filter_ids: set[str] = set()\n\n for mapping in session_record.execution_mappings:\n imported_filter = filter_lookup.get(mapping.filter_id)\n template_variable = variable_lookup.get(mapping.variable_id)\n if imported_filter is None:\n preview_blockers.append(f\"mapping:{mapping.mapping_id}:missing_filter\")\n continue\n if template_variable is None:\n preview_blockers.append(f\"mapping:{mapping.mapping_id}:missing_variable\")\n continue\n\n effective_value = mapping.effective_value\n if effective_value is None:\n effective_value = extract_effective_filter_value(\n imported_filter.normalized_value, imported_filter.raw_value,\n )\n if effective_value is None:\n effective_value = template_variable.default_value\n\n if effective_value is None and template_variable.is_required:\n preview_blockers.append(\n f\"variable:{template_variable.variable_name}:missing_required_value\"\n )\n continue\n\n mapped_filter_ids.add(imported_filter.filter_id)\n if effective_value is not None:\n mapped_filter_payload = {\n \"mapping_id\": mapping.mapping_id,\n \"filter_id\": imported_filter.filter_id,\n \"filter_name\": imported_filter.filter_name,\n \"variable_id\": template_variable.variable_id,\n \"variable_name\": template_variable.variable_name,\n \"effective_value\": effective_value,\n \"raw_input_value\": mapping.raw_input_value,\n }\n if isinstance(imported_filter.normalized_value, dict):\n mapped_filter_payload[\"display_name\"] = imported_filter.display_name\n mapped_filter_payload[\"normalized_filter_payload\"] = (\n imported_filter.normalized_value\n )\n effective_filters.append(mapped_filter_payload)\n template_params[template_variable.variable_name] = effective_value\n if mapping.approval_state == ApprovalState.APPROVED:\n approved_mapping_ids.append(mapping.mapping_id)\n if (\n mapping.requires_explicit_approval\n and mapping.approval_state != ApprovalState.APPROVED\n ):\n open_warning_refs.append(mapping.mapping_id)\n\n for imported_filter in session_record.imported_filters:\n if imported_filter.filter_id in mapped_filter_ids:\n continue\n effective_value = extract_effective_filter_value(\n imported_filter.normalized_value, imported_filter.raw_value,\n )\n if effective_value is None:\n continue\n effective_filters.append(\n {\n \"filter_id\": imported_filter.filter_id,\n \"filter_name\": imported_filter.filter_name,\n \"display_name\": imported_filter.display_name,\n \"effective_value\": effective_value,\n \"raw_input_value\": imported_filter.raw_value,\n \"normalized_filter_payload\": imported_filter.normalized_value,\n }\n )\n\n mapped_variable_ids = {\n mapping.variable_id for mapping in session_record.execution_mappings\n }\n for variable in session_record.template_variables:\n if variable.variable_id in mapped_variable_ids:\n continue\n if variable.default_value is not None:\n template_params[variable.variable_name] = variable.default_value\n continue\n if variable.is_required:\n preview_blockers.append(f\"variable:{variable.variable_name}:unmapped\")\n\n semantic_decision_refs = [\n field.field_id\n for field in session.semantic_fields\n if field.is_locked\n or not field.needs_review\n or field.provenance.value != \"unresolved\"\n ]\n preview_fingerprint = compute_preview_fingerprint(\n {\n \"dataset_id\": session_record.dataset_id,\n \"template_params\": template_params,\n \"effective_filters\": effective_filters,\n }\n )\n return {\n \"effective_filters\": effective_filters,\n \"template_params\": template_params,\n \"approved_mapping_ids\": sorted(approved_mapping_ids),\n \"semantic_decision_refs\": sorted(semantic_decision_refs),\n \"open_warning_refs\": sorted(open_warning_refs),\n \"preview_blockers\": sorted(set(preview_blockers)),\n \"preview_fingerprint\": preview_fingerprint,\n }\n\n\n# #endregion build_execution_snapshot\n\n\n# #region build_launch_blockers [C:3] [TYPE Function]\n# @BRIEF Enforce launch gates from findings, approvals, and current preview truth.\n# @PRE: execution_snapshot was computed from current session state.\n# @POST: Returns explicit blocker codes for every unmet launch invariant.\ndef build_launch_blockers(\n session: DatasetReviewSession,\n execution_snapshot: dict[str, Any],\n preview: CompiledPreview | None,\n) -> list[str]:\n session_record = cast(Any, session)\n blockers = list(execution_snapshot[\"preview_blockers\"])\n\n for finding in session_record.findings:\n if (\n finding.severity == FindingSeverity.BLOCKING\n and finding.resolution_state\n not in {ResolutionState.RESOLVED, ResolutionState.APPROVED}\n ):\n blockers.append(f\"finding:{finding.code}:blocking\")\n for mapping in session_record.execution_mappings:\n if (\n mapping.requires_explicit_approval\n and mapping.approval_state != ApprovalState.APPROVED\n ):\n blockers.append(f\"mapping:{mapping.mapping_id}:approval_required\")\n\n if preview is None:\n blockers.append(\"preview:missing\")\n else:\n if preview.preview_status != PreviewStatus.READY:\n blockers.append(f\"preview:{preview.preview_status.value}\")\n if preview.preview_fingerprint != execution_snapshot[\"preview_fingerprint\"]:\n blockers.append(\"preview:fingerprint_mismatch\")\n\n return sorted(set(blockers))\n\n\n# #endregion build_launch_blockers\n\n\n# #region get_latest_preview [C:2] [TYPE Function]\n# @BRIEF Resolve the current latest preview snapshot for one session aggregate.\ndef get_latest_preview(session: DatasetReviewSession) -> CompiledPreview | None:\n session_record = cast(Any, session)\n if not session_record.previews:\n return None\n if session_record.last_preview_id:\n for preview in session_record.previews:\n if preview.preview_id == session_record.last_preview_id:\n return preview\n return sorted(\n session_record.previews,\n key=lambda item: (item.created_at or datetime.min, item.preview_id),\n reverse=True,\n )[0]\n\n\n# #endregion get_latest_preview\n\n\n# #region compute_preview_fingerprint [C:1] [TYPE Function]\n# @BRIEF Produce deterministic execution fingerprint for preview truth and staleness checks.\ndef compute_preview_fingerprint(payload: dict[str, Any]) -> str:\n serialized = json.dumps(payload, sort_keys=True, default=str)\n return hashlib.sha256(serialized.encode(\"utf-8\")).hexdigest()\n\n\n# #endregion compute_preview_fingerprint\n\n\n# #endregion OrchestratorHelpers\n" }, { "contract_id": "parse_dataset_selection", @@ -61603,55 +57983,18 @@ "contract_type": "Function", "file_path": "backend/src/services/dataset_review/orchestrator_pkg/_helpers.py", "start_line": 328, - "end_line": 337, - "tier": "TIER_2", - "complexity": 4, + "end_line": 335, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", + "COMPLEXITY": 1, "PURPOSE": "Produce deterministic execution fingerprint for preview truth and staleness checks." }, "relations": [], - "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "POST", - "message": "@POST is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "PRE", - "message": "@PRE is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - }, - { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region compute_preview_fingerprint [C:4] [TYPE Function]\n# @BRIEF Produce deterministic execution fingerprint for preview truth and staleness checks.\n# @COMPLEXITY 4\n\ndef compute_preview_fingerprint(payload: dict[str, Any]) -> str:\n serialized = json.dumps(payload, sort_keys=True, default=str)\n return hashlib.sha256(serialized.encode(\"utf-8\")).hexdigest()\n\n\n# #endregion compute_preview_fingerprint\n" + "body": "# #region compute_preview_fingerprint [C:1] [TYPE Function]\n# @BRIEF Produce deterministic execution fingerprint for preview truth and staleness checks.\ndef compute_preview_fingerprint(payload: dict[str, Any]) -> str:\n serialized = json.dumps(payload, sort_keys=True, default=str)\n return hashlib.sha256(serialized.encode(\"utf-8\")).hexdigest()\n\n\n# #endregion compute_preview_fingerprint\n" }, { "contract_id": "SessionRepositoryMutations", @@ -61993,17 +58336,7 @@ "target_ref": "[SemanticCandidate]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region SemanticSourceResolver [C:4] [TYPE Module] [SEMANTICS pydantic, dataset, semantic, resolver, mapping]\n# @BRIEF Resolve and rank semantic candidates from trusted dictionary-like sources before any inferred fallback.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [LLMProviderService]\n# @RELATION DEPENDS_ON -> [SemanticSource]\n# @RELATION DEPENDS_ON -> [SemanticFieldEntry]\n# @RELATION DEPENDS_ON -> [SemanticCandidate]\n# @PRE: selected source and target field set must be known.\n# @POST: candidate ranking follows the configured confidence hierarchy and unresolved fuzzy matches remain reviewable.\n# @SIDE_EFFECT: may create conflict findings and semantic candidate records.\n# @INVARIANT: Manual overrides are never silently replaced by imported, inferred, or AI-generated values.\n\nfrom __future__ import annotations\n\nfrom collections.abc import Iterable, Mapping\n\n# #region imports [TYPE Block]\nfrom dataclasses import dataclass, field\nfrom difflib import SequenceMatcher\nfrom typing import Any\n\nfrom src.core.logger import belief_scope, logger\nfrom src.models.dataset_review import (\n CandidateMatchType,\n CandidateStatus,\n FieldProvenance,\n SemanticSource,\n)\n\n# #endregion imports\n\n\n# #region DictionaryResolutionResult [C:2] [TYPE Class]\n# @BRIEF Carries field-level dictionary resolution output with explicit review and partial-recovery state.\n@dataclass\nclass DictionaryResolutionResult:\n source_ref: str\n resolved_fields: list[dict[str, Any]] = field(default_factory=list)\n unresolved_fields: list[str] = field(default_factory=list)\n partial_recovery: bool = False\n# #endregion DictionaryResolutionResult\n\n\n# #region SemanticSourceResolver [C:4] [TYPE Class]\n# @BRIEF Resolve semantic candidates from trusted sources while preserving manual locks and confidence ordering.\n# @RELATION DEPENDS_ON -> [SemanticFieldEntry]\n# @RELATION DEPENDS_ON -> [SemanticCandidate]\n# @PRE: source payload and target field collection are provided by the caller.\n# @POST: result contains confidence-ranked candidates and does not overwrite manual locks implicitly.\n# @SIDE_EFFECT: emits semantic trace logs for ranking and fallback decisions.\nclass SemanticSourceResolver:\n # region resolve_from_file [TYPE Function]\n # @PURPOSE: Normalize uploaded semantic file records into field-level candidates.\n def resolve_from_file(self, source_payload: Mapping[str, Any], fields: Iterable[Mapping[str, Any]]) -> DictionaryResolutionResult:\n return DictionaryResolutionResult(source_ref=str(source_payload.get(\"source_ref\") or \"uploaded_file\"))\n # endregion resolve_from_file\n\n # region resolve_from_dictionary [TYPE Function]\n # @PURPOSE: Resolve candidates from connected tabular dictionary sources.\n # @RELATION: [DEPENDS_ON] ->[SemanticFieldEntry]\n # @RELATION: [DEPENDS_ON] ->[SemanticCandidate]\n # @PRE: dictionary source exists and fields contain stable field_name values.\n # @POST: returns confidence-ranked candidates where exact dictionary matches outrank fuzzy matches and unresolved fields stay explicit.\n # @SIDE_EFFECT: emits belief-state logs describing trusted-match and partial-recovery outcomes.\n # @DATA_CONTRACT: Input[source_payload:Mapping,fields:Iterable] -> Output[DictionaryResolutionResult]\n def resolve_from_dictionary(\n self,\n source_payload: Mapping[str, Any],\n fields: Iterable[Mapping[str, Any]],\n ) -> DictionaryResolutionResult:\n with belief_scope(\"SemanticSourceResolver.resolve_from_dictionary\"):\n source_ref = str(source_payload.get(\"source_ref\") or \"\").strip()\n dictionary_rows = source_payload.get(\"rows\")\n\n if not source_ref:\n logger.explore(\"Dictionary semantic source is missing source_ref\")\n raise ValueError(\"Dictionary semantic source must include source_ref\")\n\n if not isinstance(dictionary_rows, list) or not dictionary_rows:\n logger.explore(\n \"Dictionary semantic source has no usable rows\",\n extra={\"source_ref\": source_ref},\n )\n raise ValueError(\"Dictionary semantic source must include non-empty rows\")\n\n logger.reason(\n \"Resolving semantics from trusted dictionary source\",\n extra={\"source_ref\": source_ref, \"row_count\": len(dictionary_rows)},\n )\n\n normalized_rows = [self._normalize_dictionary_row(row) for row in dictionary_rows if isinstance(row, Mapping)]\n row_index = {\n row[\"field_key\"]: row\n for row in normalized_rows\n if row.get(\"field_key\")\n }\n\n resolved_fields: list[dict[str, Any]] = []\n unresolved_fields: list[str] = []\n\n for raw_field in fields:\n field_name = str(raw_field.get(\"field_name\") or \"\").strip()\n if not field_name:\n continue\n\n is_locked = bool(raw_field.get(\"is_locked\"))\n if is_locked:\n logger.reason(\n \"Preserving manual lock during dictionary resolution\",\n extra={\"field_name\": field_name},\n )\n resolved_fields.append(\n {\n \"field_name\": field_name,\n \"applied_candidate\": None,\n \"candidates\": [],\n \"provenance\": FieldProvenance.MANUAL_OVERRIDE.value,\n \"needs_review\": False,\n \"has_conflict\": False,\n \"is_locked\": True,\n \"status\": \"preserved_manual\",\n }\n )\n continue\n\n exact_match = row_index.get(self._normalize_key(field_name))\n candidates: list[dict[str, Any]] = []\n\n if exact_match is not None:\n logger.reason(\n \"Resolved exact dictionary match\",\n extra={\"field_name\": field_name, \"source_ref\": source_ref},\n )\n candidates.append(\n self._build_candidate_payload(\n rank=1,\n match_type=CandidateMatchType.EXACT,\n confidence_score=1.0,\n row=exact_match,\n )\n )\n else:\n fuzzy_matches = self._find_fuzzy_matches(field_name, normalized_rows)\n for rank_offset, fuzzy_match in enumerate(fuzzy_matches, start=1):\n candidates.append(\n self._build_candidate_payload(\n rank=rank_offset,\n match_type=CandidateMatchType.FUZZY,\n confidence_score=float(fuzzy_match[\"score\"]),\n row=fuzzy_match[\"row\"],\n )\n )\n\n if not candidates:\n unresolved_fields.append(field_name)\n resolved_fields.append(\n {\n \"field_name\": field_name,\n \"applied_candidate\": None,\n \"candidates\": [],\n \"provenance\": FieldProvenance.UNRESOLVED.value,\n \"needs_review\": True,\n \"has_conflict\": False,\n \"is_locked\": False,\n \"status\": \"unresolved\",\n }\n )\n logger.explore(\n \"No trusted dictionary match found for field\",\n extra={\"field_name\": field_name, \"source_ref\": source_ref},\n )\n continue\n\n ranked_candidates = self.rank_candidates(candidates)\n applied_candidate = ranked_candidates[0]\n has_conflict = len(ranked_candidates) > 1\n provenance = (\n FieldProvenance.DICTIONARY_EXACT.value\n if applied_candidate[\"match_type\"] == CandidateMatchType.EXACT.value\n else FieldProvenance.FUZZY_INFERRED.value\n )\n needs_review = applied_candidate[\"match_type\"] != CandidateMatchType.EXACT.value\n\n resolved_fields.append(\n {\n \"field_name\": field_name,\n \"applied_candidate\": applied_candidate,\n \"candidates\": ranked_candidates,\n \"provenance\": provenance,\n \"needs_review\": needs_review,\n \"has_conflict\": has_conflict,\n \"is_locked\": False,\n \"status\": \"resolved\",\n }\n )\n\n result = DictionaryResolutionResult(\n source_ref=source_ref,\n resolved_fields=resolved_fields,\n unresolved_fields=unresolved_fields,\n partial_recovery=bool(unresolved_fields),\n )\n logger.reflect(\n \"Dictionary resolution completed\",\n extra={\n \"source_ref\": source_ref,\n \"resolved_fields\": len(resolved_fields),\n \"unresolved_fields\": len(unresolved_fields),\n \"partial_recovery\": result.partial_recovery,\n },\n )\n return result\n # endregion resolve_from_dictionary\n\n # region resolve_from_reference_dataset [TYPE Function]\n # @PURPOSE: Reuse semantic metadata from trusted Superset datasets.\n def resolve_from_reference_dataset(\n self,\n source_payload: Mapping[str, Any],\n fields: Iterable[Mapping[str, Any]],\n ) -> DictionaryResolutionResult:\n return DictionaryResolutionResult(source_ref=str(source_payload.get(\"source_ref\") or \"reference_dataset\"))\n # endregion resolve_from_reference_dataset\n\n # region rank_candidates [TYPE Function]\n # @PURPOSE: Apply confidence ordering and determine best candidate per field.\n # @RELATION: [DEPENDS_ON] ->[SemanticCandidate]\n def rank_candidates(self, candidates: list[dict[str, Any]]) -> list[dict[str, Any]]:\n ranked = sorted(\n candidates,\n key=lambda candidate: (\n self._match_priority(candidate.get(\"match_type\")),\n -float(candidate.get(\"confidence_score\", 0.0)),\n int(candidate.get(\"candidate_rank\", 999)),\n ),\n )\n for index, candidate in enumerate(ranked, start=1):\n candidate[\"candidate_rank\"] = index\n return ranked\n # endregion rank_candidates\n\n # region detect_conflicts [TYPE Function]\n # @PURPOSE: Mark competing candidate sets that require explicit user review.\n def detect_conflicts(self, candidates: list[dict[str, Any]]) -> bool:\n return len(candidates) > 1\n # endregion detect_conflicts\n\n # region apply_field_decision [TYPE Function]\n # @PURPOSE: Accept, reject, or manually override a field-level semantic value.\n def apply_field_decision(self, field_state: Mapping[str, Any], decision: Mapping[str, Any]) -> dict[str, Any]:\n merged = dict(field_state)\n merged.update(decision)\n return merged\n # endregion apply_field_decision\n\n # region propagate_source_version_update [TYPE Function]\n # @PURPOSE: Propagate a semantic source version change to unlocked field entries without silently overwriting manual or locked values.\n # @RELATION: [DEPENDS_ON] ->[SemanticSource]\n # @RELATION: [DEPENDS_ON] ->[SemanticFieldEntry]\n # @PRE: source is persisted and fields belong to the same session aggregate.\n # @POST: unlocked fields linked to the source carry the new source version and are marked reviewable; manual or locked fields keep their active values untouched.\n # @SIDE_EFFECT: mutates in-memory field state for the caller to persist.\n # @DATA_CONTRACT: Input[SemanticSource,List[SemanticFieldEntry]] -> Output[Dict[str,int]]\n def propagate_source_version_update(\n self,\n source: SemanticSource,\n fields: Iterable[Any],\n ) -> dict[str, int]:\n with belief_scope(\"SemanticSourceResolver.propagate_source_version_update\"):\n source_id = str(source.source_id or \"\").strip()\n source_version = str(source.source_version or \"\").strip()\n if not source_id or not source_version:\n logger.explore(\n \"Semantic source version propagation rejected due to incomplete source metadata\",\n extra={\"source_id\": source_id, \"source_version\": source_version},\n )\n raise ValueError(\"Semantic source must provide source_id and source_version\")\n\n propagated = 0\n preserved_locked = 0\n untouched = 0\n for field in fields:\n if str(getattr(field, \"source_id\", \"\") or \"\").strip() != source_id:\n untouched += 1\n continue\n if bool(getattr(field, \"is_locked\", False)) or getattr(field, \"provenance\", None) == FieldProvenance.MANUAL_OVERRIDE:\n preserved_locked += 1\n continue\n\n field.source_version = source_version\n field.needs_review = True\n field.has_conflict = bool(getattr(field, \"has_conflict\", False))\n propagated += 1\n\n logger.reflect(\n \"Semantic source version propagation completed\",\n extra={\n \"source_id\": source_id,\n \"source_version\": source_version,\n \"propagated\": propagated,\n \"preserved_locked\": preserved_locked,\n \"untouched\": untouched,\n },\n )\n return {\n \"propagated\": propagated,\n \"preserved_locked\": preserved_locked,\n \"untouched\": untouched,\n }\n # endregion propagate_source_version_update\n\n # region _normalize_dictionary_row [TYPE Function]\n # @PURPOSE: Normalize one dictionary row into a consistent lookup structure.\n def _normalize_dictionary_row(self, row: Mapping[str, Any]) -> dict[str, Any]:\n field_name = (\n row.get(\"field_name\")\n or row.get(\"column_name\")\n or row.get(\"name\")\n or row.get(\"field\")\n )\n normalized_name = str(field_name or \"\").strip()\n return {\n \"field_name\": normalized_name,\n \"field_key\": self._normalize_key(normalized_name),\n \"verbose_name\": row.get(\"verbose_name\") or row.get(\"label\"),\n \"description\": row.get(\"description\"),\n \"display_format\": row.get(\"display_format\") or row.get(\"format\"),\n }\n # endregion _normalize_dictionary_row\n\n # region _find_fuzzy_matches [TYPE Function]\n # @PURPOSE: Produce confidence-scored fuzzy matches while keeping them reviewable.\n def _find_fuzzy_matches(self, field_name: str, rows: list[dict[str, Any]]) -> list[dict[str, Any]]:\n normalized_target = self._normalize_key(field_name)\n fuzzy_matches: list[dict[str, Any]] = []\n for row in rows:\n candidate_key = str(row.get(\"field_key\") or \"\")\n if not candidate_key:\n continue\n score = SequenceMatcher(None, normalized_target, candidate_key).ratio()\n if score < 0.72:\n continue\n fuzzy_matches.append({\"row\": row, \"score\": round(score, 3)})\n fuzzy_matches.sort(key=lambda item: item[\"score\"], reverse=True)\n return fuzzy_matches[:3]\n # endregion _find_fuzzy_matches\n\n # region _build_candidate_payload [TYPE Function]\n # @PURPOSE: Project normalized dictionary rows into semantic candidate payloads.\n def _build_candidate_payload(\n self,\n rank: int,\n match_type: CandidateMatchType,\n confidence_score: float,\n row: Mapping[str, Any],\n ) -> dict[str, Any]:\n return {\n \"candidate_rank\": rank,\n \"match_type\": match_type.value,\n \"confidence_score\": confidence_score,\n \"proposed_verbose_name\": row.get(\"verbose_name\"),\n \"proposed_description\": row.get(\"description\"),\n \"proposed_display_format\": row.get(\"display_format\"),\n \"status\": CandidateStatus.PROPOSED.value,\n }\n # endregion _build_candidate_payload\n\n # region _match_priority [TYPE Function]\n # @PURPOSE: Encode trusted-confidence ordering so exact dictionary reuse beats fuzzy invention.\n def _match_priority(self, match_type: str | None) -> int:\n priority = {\n CandidateMatchType.EXACT.value: 0,\n CandidateMatchType.REFERENCE.value: 1,\n CandidateMatchType.FUZZY.value: 2,\n CandidateMatchType.GENERATED.value: 3,\n }\n return priority.get(str(match_type or \"\"), 99)\n # endregion _match_priority\n\n # region _normalize_key [TYPE Function]\n # @PURPOSE: Normalize field identifiers for stable exact/fuzzy comparisons.\n def _normalize_key(self, value: str) -> str:\n return \"\".join(ch for ch in str(value or \"\").strip().lower() if ch.isalnum() or ch == \"_\")\n # endregion _normalize_key\n# #endregion SemanticSourceResolver\n\n# #endregion SemanticSourceResolver\n" @@ -63148,26 +59481,7 @@ "target_ref": "[backend.src.core.config_manager:Function]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region llm_prompt_templates [C:2] [TYPE Module] [SEMANTICS llm, prompt, template, normalization]\n# @BRIEF Provide default LLM prompt templates and normalization helpers for runtime usage.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [backend.src.core.config_manager:Function]\n# @INVARIANT: All required prompt template keys are always present after normalization.\n\nfrom __future__ import annotations\n\nfrom copy import deepcopy\nfrom typing import Any\n\nfrom ..core.logger import logger\n\n# #region DEFAULT_LLM_PROMPTS [C:2] [TYPE Constant]\n# @BRIEF Default prompt templates used by documentation, dashboard validation, and git commit generation.\nDEFAULT_LLM_PROMPTS: dict[str, str] = {\n \"dashboard_validation_prompt\": (\n \"Analyze the attached dashboard screenshot and the following execution logs for health and visual issues.\\n\\n\"\n \"Logs:\\n\"\n \"{logs}\\n\\n\"\n \"Provide the analysis in JSON format with the following structure:\\n\"\n \"{\\n\"\n ' \"status\": \"PASS\" | \"WARN\" | \"FAIL\",\\n'\n ' \"summary\": \"Short summary of findings\",\\n'\n ' \"issues\": [\\n'\n \" {\\n\"\n ' \"severity\": \"WARN\" | \"FAIL\",\\n'\n ' \"message\": \"Description of the issue\",\\n'\n ' \"location\": \"Optional location info (e.g. chart name)\"\\n'\n \" }\\n\"\n \" ]\\n\"\n \"}\"\n ),\n \"documentation_prompt\": (\n \"Generate professional documentation for the following dataset and its columns.\\n\"\n \"Dataset: {dataset_name}\\n\"\n \"Columns: {columns_json}\\n\\n\"\n \"Provide the documentation in JSON format:\\n\"\n \"{\\n\"\n ' \"dataset_description\": \"General description of the dataset\",\\n'\n ' \"column_descriptions\": [\\n'\n \" {\\n\"\n ' \"name\": \"column_name\",\\n'\n ' \"description\": \"Generated description\"\\n'\n \" }\\n\"\n \" ]\\n\"\n \"}\"\n ),\n \"git_commit_prompt\": (\n \"Generate a concise and professional git commit message based on the following diff and recent history.\\n\"\n \"Use Conventional Commits format (e.g., feat: ..., fix: ..., docs: ...).\\n\\n\"\n \"Recent History:\\n\"\n \"{history}\\n\\n\"\n \"Diff:\\n\"\n \"{diff}\\n\\n\"\n \"Commit Message:\"\n ),\n}\n# #endregion DEFAULT_LLM_PROMPTS\n\n\n# #region DEFAULT_LLM_PROVIDER_BINDINGS [C:2] [TYPE Constant]\n# @BRIEF Default provider binding per task domain.\nDEFAULT_LLM_PROVIDER_BINDINGS: dict[str, str] = {\n \"dashboard_validation\": \"\",\n \"documentation\": \"\",\n \"git_commit\": \"\",\n}\n# #endregion DEFAULT_LLM_PROVIDER_BINDINGS\n\n\n# #region DEFAULT_LLM_ASSISTANT_SETTINGS [C:2] [TYPE Constant]\n# @BRIEF Default planner settings for assistant chat intent model/provider resolution.\nDEFAULT_LLM_ASSISTANT_SETTINGS: dict[str, str] = {\n \"assistant_planner_provider\": \"\",\n \"assistant_planner_model\": \"\",\n}\n# #endregion DEFAULT_LLM_ASSISTANT_SETTINGS\n\n\n# #region normalize_llm_settings [C:3] [TYPE Function]\n# @BRIEF Ensure llm settings contain stable schema with prompts section and default templates.\n# @PRE: llm_settings is dictionary-like value or None.\n# @POST: Returned dict contains prompts with all required template keys.\n# @RELATION DEPENDS_ON -> LLMProviderService\ndef normalize_llm_settings(llm_settings: Any) -> dict[str, Any]:\n normalized: dict[str, Any] = {\n \"providers\": [],\n \"default_provider\": \"\",\n \"prompts\": {},\n \"provider_bindings\": {},\n **DEFAULT_LLM_ASSISTANT_SETTINGS,\n }\n if isinstance(llm_settings, dict):\n normalized.update(\n {\n k: v\n for k, v in llm_settings.items()\n if k\n in (\n \"providers\",\n \"default_provider\",\n \"prompts\",\n \"provider_bindings\",\n \"assistant_planner_provider\",\n \"assistant_planner_model\",\n )\n }\n )\n prompts = normalized.get(\"prompts\") if isinstance(normalized.get(\"prompts\"), dict) else {}\n merged_prompts = deepcopy(DEFAULT_LLM_PROMPTS)\n merged_prompts.update({k: v for k, v in prompts.items() if isinstance(v, str) and v.strip()})\n normalized[\"prompts\"] = merged_prompts\n bindings = normalized.get(\"provider_bindings\") if isinstance(normalized.get(\"provider_bindings\"), dict) else {}\n merged_bindings = deepcopy(DEFAULT_LLM_PROVIDER_BINDINGS)\n merged_bindings.update({k: v for k, v in bindings.items() if isinstance(v, str)})\n normalized[\"provider_bindings\"] = merged_bindings\n for key, default_value in DEFAULT_LLM_ASSISTANT_SETTINGS.items():\n value = normalized.get(key, default_value)\n normalized[key] = value.strip() if isinstance(value, str) else default_value\n return normalized\n# #endregion normalize_llm_settings\n\n\n# #region is_multimodal_model [C:3] [TYPE Function]\n# @BRIEF Heuristically determine whether model supports image input required for dashboard validation.\n# @PRE: model_name may be empty or mixed-case.\n# @POST: Returns True when model likely supports multimodal input.\n# @RELATION DEPENDS_ON -> LLMProviderService\ndef is_multimodal_model(model_name: str, provider_type: str | None = None) -> bool:\n token = (model_name or \"\").strip().lower()\n if not token:\n return False\n provider = (provider_type or \"\").strip().lower()\n text_only_markers = (\n \"text-only\",\n \"embedding\",\n \"rerank\",\n \"whisper\",\n \"tts\",\n \"transcribe\",\n )\n if any(marker in token for marker in text_only_markers):\n return False\n multimodal_markers = (\n \"gpt-4o\",\n \"gpt-4.1\",\n \"vision\",\n \"vl\",\n \"gemini\",\n \"claude-3\",\n \"claude-sonnet-4\",\n \"omni\",\n \"multimodal\",\n \"pixtral\",\n \"llava\",\n \"internvl\",\n \"qwen-vl\",\n \"qwen2-vl\",\n )\n if any(marker in token for marker in multimodal_markers):\n return True\n return False\n# #endregion is_multimodal_model\n\n\n# #region resolve_bound_provider_id [C:3] [TYPE Function]\n# @BRIEF Resolve provider id configured for a task binding with fallback to default provider.\n# @PRE: llm_settings is normalized or raw dict from config.\n# @POST: Returns configured provider id or fallback id/empty string when not defined.\n# @RELATION DEPENDS_ON -> LLMProviderService\ndef resolve_bound_provider_id(llm_settings: Any, task_key: str) -> str:\n normalized = normalize_llm_settings(llm_settings)\n bindings = normalized.get(\"provider_bindings\", {})\n bound = bindings.get(task_key)\n if isinstance(bound, str) and bound.strip():\n return bound.strip()\n default_provider = normalized.get(\"default_provider\", \"\")\n return default_provider.strip() if isinstance(default_provider, str) else \"\"\n# #endregion resolve_bound_provider_id\n\n\n# #region render_prompt [C:3] [TYPE Function]\n# @BRIEF Render prompt template using deterministic placeholder replacement with graceful fallback.\n# @PRE: template is a string and variables values are already stringifiable.\n# @POST: Returns rendered prompt text with known placeholders substituted. Warns about unfilled placeholders.\n# @RELATION DEPENDS_ON -> LLMProviderService\ndef render_prompt(template: str, variables: dict[str, Any]) -> str:\n rendered = template\n for key, value in variables.items():\n rendered = rendered.replace(\"{\" + key + \"}\", str(value))\n\n # Warn about unfilled placeholders that would be sent to LLM\n import re\n unfilled = re.findall(r'\\{(\\w+)\\}', rendered)\n if unfilled:\n logger.warning(\n f\"[render_prompt] Unfilled placeholders in rendered prompt: {unfilled}\"\n )\n\n return rendered\n# #endregion render_prompt\n\n\n# #endregion llm_prompt_templates\n" @@ -64123,15 +60437,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -64717,15 +61022,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "missing_required_tag", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is required for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "missing_required_tag", "tag": "INVARIANT", @@ -64869,17 +61165,7 @@ "target_ref": "Exception" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ProfileValidationError [C:2] [TYPE Class]\n# @RELATION INHERITS -> Exception\n# @BRIEF Domain validation error for profile preference update requests.\nclass ProfileValidationError(Exception):\n def __init__(self, errors: Sequence[str]):\n self.errors = list(errors)\n super().__init__(\"Profile preference validation failed\")\n# #endregion ProfileValidationError\n" @@ -64904,17 +61190,7 @@ "target_ref": "Exception" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region EnvironmentNotFoundError [C:2] [TYPE Class]\n# @RELATION INHERITS -> Exception\n# @BRIEF Raised when environment_id from lookup request is unknown in app configuration.\nclass EnvironmentNotFoundError(Exception):\n pass\n# #endregion EnvironmentNotFoundError\n" @@ -64939,17 +61215,7 @@ "target_ref": "Exception" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ProfileAuthorizationError [C:2] [TYPE Class]\n# @RELATION INHERITS -> Exception\n# @BRIEF Raised when caller attempts cross-user preference mutation.\nclass ProfileAuthorizationError(Exception):\n pass\n# #endregion ProfileAuthorizationError\n" @@ -65122,15 +61388,6 @@ "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -65157,17 +61414,7 @@ "target_ref": "[ProfilePreference]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region build_default_preference [C:2] [TYPE Function] [SEMANTICS preference,default,unconfigured]\n# @BRIEF Build non-persisted default preference DTO for unconfigured users.\n# @RELATION DEPENDS_ON -> [ProfilePreference]\ndef build_default_preference(user_id: str) -> Any:\n \"\"\"Build default ProfilePreference with disabled toggles and empty usernames.\"\"\"\n from ..schemas.profile import ProfilePreference\n now = datetime.utcnow()\n return ProfilePreference(\n user_id=str(user_id),\n superset_username=None,\n superset_username_normalized=None,\n show_only_my_dashboards=False,\n show_only_slug_dashboards=True,\n git_username=None,\n git_email=None,\n has_git_personal_access_token=False,\n git_personal_access_token_masked=None,\n start_page=\"dashboards\",\n auto_open_task_drawer=True,\n dashboards_table_density=\"comfortable\",\n telegram_id=None,\n email_address=None,\n notify_on_fail=True,\n created_at=now,\n updated_at=now,\n )\n# #endregion build_default_preference\n" @@ -65192,17 +61439,7 @@ "target_ref": "[normalize_username]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region normalize_owner_tokens [C:2] [TYPE Function]\n# @BRIEF Normalize owners payload into deduplicated lower-cased tokens.\n# @RELATION CALLS -> [normalize_username]\ndef normalize_owner_tokens(owners: Iterable[Any] | None) -> list[str]:\n if owners is None:\n return []\n normalized: list[str] = []\n for owner in owners:\n owner_candidates: list[Any]\n if isinstance(owner, dict):\n first_name = sanitize_username(str(owner.get(\"first_name\") or \"\"))\n last_name = sanitize_username(str(owner.get(\"last_name\") or \"\"))\n full_name = \" \".join(\n part for part in [first_name, last_name] if part\n ).strip()\n snake_name = \"_\".join(\n part for part in [first_name, last_name] if part\n ).strip(\"_\")\n owner_candidates = [\n owner.get(\"username\"),\n owner.get(\"user_name\"),\n owner.get(\"name\"),\n owner.get(\"full_name\"),\n first_name,\n last_name,\n full_name or None,\n snake_name or None,\n owner.get(\"email\"),\n ]\n else:\n owner_candidates = [owner]\n\n for candidate in owner_candidates:\n token = normalize_username(str(candidate or \"\"))\n if token and token not in normalized:\n normalized.append(token)\n return normalized\n# #endregion normalize_owner_tokens\n" @@ -65625,16 +61862,58 @@ "tier_source": "AutoCalculated", "body": "# #region reports [TYPE Package] [SEMANTICS report, package, service, root]\n# @BRIEF Report service package root.\n# #endregion reports\n" }, + { + "contract_id": "normalizer", + "contract_type": "Module", + "file_path": "backend/src/services/reports/normalizer.py", + "start_line": 1, + "end_line": 161, + "tier": "TIER_3", + "complexity": 5, + "metadata": { + "COMPLEXITY": 5, + "DATA_CONTRACT": "ReportRow -> NormalizerInput; session_id -> valid UUID", + "INVARIANT": "Normalizer instance maintains consistent field order", + "LAYER": "Domain", + "POST": "Returns Normalizer output with normalized fields", + "PRE": "session is active and valid", + "PURPOSE": "Convert task manager task objects into canonical unified TaskReport entities with deterministic fallback behavior.", + "SIDE_EFFECT": "Read-only database operations" + }, + "relations": [ + { + "source_id": "normalizer", + "relation_type": "DEPENDS_ON", + "target_id": "backend.src.core.task_manager.models.Task:Function", + "target_ref": "[backend.src.core.task_manager.models.Task:Function]" + }, + { + "source_id": "normalizer", + "relation_type": "DEPENDS_ON", + "target_id": "backend.src.models.report:Function", + "target_ref": "[backend.src.models.report:Function]" + }, + { + "source_id": "normalizer", + "relation_type": "DEPENDS_ON", + "target_id": "backend.src.services.reports.type_profiles:Function", + "target_ref": "[backend.src.services.reports.type_profiles:Function]" + } + ], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region normalizer [C:5] [TYPE Module] [SEMANTICS pydantic, report, task, normalize, status]\n# @BRIEF Convert task manager task objects into canonical unified TaskReport entities with deterministic fallback behavior.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [backend.src.core.task_manager.models.Task:Function]\n# @RELATION DEPENDS_ON -> [backend.src.models.report:Function]\n# @RELATION DEPENDS_ON -> [backend.src.services.reports.type_profiles:Function]\n# @INVARIANT: Normalizer instance maintains consistent field order\n# @DATA_CONTRACT: ReportRow -> NormalizerInput; session_id -> valid UUID\n# @PRE: session is active and valid\n# @POST: Returns Normalizer output with normalized fields\n# @SIDE_EFFECT: Read-only database operations\n\nfrom datetime import datetime\nfrom typing import Any\n\nfrom ...core.logger import belief_scope\nfrom ...core.task_manager.models import Task, TaskStatus\nfrom ...models.report import ErrorContext, ReportStatus, TaskReport\nfrom .type_profiles import get_type_profile, resolve_task_type\n\n\n# #region status_to_report_status [TYPE Function]\n# @BRIEF Normalize internal task status to canonical report status.\n# @PRE: status may be known or unknown string/enum value.\n# @POST: Always returns one of canonical ReportStatus values.\ndef status_to_report_status(status: Any) -> ReportStatus:\n with belief_scope(\"status_to_report_status\"):\n raw = str(status.value if isinstance(status, TaskStatus) else status).upper()\n if raw == TaskStatus.SUCCESS.value:\n return ReportStatus.SUCCESS\n if raw == TaskStatus.FAILED.value:\n return ReportStatus.FAILED\n if raw in {TaskStatus.PENDING.value, TaskStatus.RUNNING.value, TaskStatus.AWAITING_INPUT.value, TaskStatus.AWAITING_MAPPING.value}:\n return ReportStatus.IN_PROGRESS\n return ReportStatus.PARTIAL\n# #endregion status_to_report_status\n\n\n# #region build_summary [TYPE Function]\n# @BRIEF Build deterministic user-facing summary from task payload and status.\n# @PRE: report_status is canonical; plugin_id may be unknown.\n# @POST: Returns non-empty summary text.\ndef build_summary(task: Task, report_status: ReportStatus) -> str:\n with belief_scope(\"build_summary\"):\n result = task.result\n if isinstance(result, dict):\n for key in (\"summary\", \"message\", \"status_message\", \"description\"):\n value = result.get(key)\n if isinstance(value, str) and value.strip():\n return value.strip()\n if report_status == ReportStatus.SUCCESS:\n return \"Task completed successfully\"\n if report_status == ReportStatus.FAILED:\n return \"Task failed\"\n if report_status == ReportStatus.IN_PROGRESS:\n return \"Task is in progress\"\n return \"Task completed with partial data\"\n# #endregion build_summary\n\n\n# #region extract_error_context [TYPE Function]\n# @BRIEF Extract normalized error context and next actions for failed/partial reports.\n# @PRE: task is a valid Task object.\n# @POST: Returns ErrorContext for failed/partial when context exists; otherwise None.\ndef extract_error_context(task: Task, report_status: ReportStatus) -> ErrorContext | None:\n with belief_scope(\"extract_error_context\"):\n if report_status not in {ReportStatus.FAILED, ReportStatus.PARTIAL}:\n return None\n\n result = task.result if isinstance(task.result, dict) else {}\n message = None\n code = None\n next_actions = []\n\n if isinstance(result.get(\"error\"), dict):\n error_obj = result.get(\"error\", {})\n message = error_obj.get(\"message\") or message\n code = error_obj.get(\"code\") or code\n actions = error_obj.get(\"next_actions\")\n if isinstance(actions, list):\n next_actions = [str(action) for action in actions if str(action).strip()]\n\n if not message:\n message = result.get(\"error_message\") if isinstance(result.get(\"error_message\"), str) else None\n\n if not message:\n for log in reversed(task.logs):\n if str(log.level).upper() == \"ERROR\" and log.message:\n message = log.message\n break\n\n if not message:\n message = \"Not provided\"\n\n if not next_actions:\n next_actions = [\"Review task diagnostics\", \"Retry the operation\"]\n\n return ErrorContext(code=code, message=message, next_actions=next_actions)\n# #endregion extract_error_context\n\n\n# #region normalize_task_report [TYPE Function]\n# @BRIEF Convert one Task to canonical TaskReport envelope.\n# @PRE: task has valid id and plugin_id fields.\n# @POST: Returns TaskReport with required fields and deterministic fallback behavior.\n#\n# @TEST_CONTRACT: NormalizeTaskReport ->\n# {\n# required_fields: {task: Task},\n# invariants: [\n# \"Returns a valid TaskReport object\",\n# \"Maps TaskStatus to ReportStatus deterministically\",\n# \"Extracts ErrorContext for FAILED/PARTIAL tasks\"\n# ]\n# }\n# @TEST_FIXTURE: valid_task -> {\"task\": \"MockTask(id='1', plugin_id='superset-migration', status=TaskStatus.SUCCESS)\"}\n# @TEST_EDGE: task_with_error -> {\"task\": \"MockTask(status=TaskStatus.FAILED, logs=[LogEntry(level='ERROR', message='Failed')])\"}\n# @TEST_EDGE: unknown_plugin_type -> {\"task\": \"MockTask(plugin_id='unknown-plugin', status=TaskStatus.PENDING)\"}\n# @TEST_INVARIANT: deterministic_normalization -> verifies: [valid_task, task_with_error, unknown_plugin_type]\ndef normalize_task_report(task: Task) -> TaskReport:\n with belief_scope(\"normalize_task_report\"):\n task_type = resolve_task_type(task.plugin_id)\n report_status = status_to_report_status(task.status)\n profile = get_type_profile(task_type)\n\n started_at = task.started_at if isinstance(task.started_at, datetime) else None\n updated_at = task.finished_at if isinstance(task.finished_at, datetime) else None\n if not updated_at:\n updated_at = started_at or datetime.utcnow()\n\n details: dict[str, Any] = {\n \"profile\": {\n \"display_label\": profile.get(\"display_label\"),\n \"visual_variant\": profile.get(\"visual_variant\"),\n \"icon_token\": profile.get(\"icon_token\"),\n \"emphasis_rules\": profile.get(\"emphasis_rules\", []),\n },\n \"result\": task.result if task.result is not None else {\"note\": \"Not provided\"},\n }\n\n source_ref: dict[str, Any] = {}\n if isinstance(task.params, dict):\n for key in (\"environment_id\", \"source_env_id\", \"target_env_id\", \"dashboard_id\", \"dataset_id\", \"resource_id\"):\n if key in task.params:\n source_ref[key] = task.params.get(key)\n\n return TaskReport(\n report_id=task.id,\n task_id=task.id,\n task_type=task_type,\n status=report_status,\n started_at=started_at,\n updated_at=updated_at,\n summary=build_summary(task, report_status),\n details=details,\n error_context=extract_error_context(task, report_status),\n source_ref=source_ref or None,\n )\n# #endregion normalize_task_report\n\n# #endregion normalizer\n" + }, { "contract_id": "status_to_report_status", "contract_type": "Function", "file_path": "backend/src/services/reports/normalizer.py", "start_line": 22, - "end_line": 38, - "tier": "TIER_2", - "complexity": 4, + "end_line": 36, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Always returns one of canonical ReportStatus values.", "PRE": "status may be known or unknown string/enum value.", "PURPOSE": "Normalize internal task status to canonical report status." @@ -65642,38 +61921,75 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region status_to_report_status [TYPE Function]\n# @BRIEF Normalize internal task status to canonical report status.\n# @PRE status may be known or unknown string/enum value.\n# @POST Always returns one of canonical ReportStatus values.\n# @COMPLEXITY 4\n\ndef status_to_report_status(status: Any) -> ReportStatus:\n with belief_scope(\"status_to_report_status\"):\n raw = str(status.value if isinstance(status, TaskStatus) else status).upper()\n if raw == TaskStatus.SUCCESS.value:\n return ReportStatus.SUCCESS\n if raw == TaskStatus.FAILED.value:\n return ReportStatus.FAILED\n if raw in {TaskStatus.PENDING.value, TaskStatus.RUNNING.value, TaskStatus.AWAITING_INPUT.value, TaskStatus.AWAITING_MAPPING.value}:\n return ReportStatus.IN_PROGRESS\n return ReportStatus.PARTIAL\n# #endregion status_to_report_status\n" + "body": "# #region status_to_report_status [TYPE Function]\n# @BRIEF Normalize internal task status to canonical report status.\n# @PRE: status may be known or unknown string/enum value.\n# @POST: Always returns one of canonical ReportStatus values.\ndef status_to_report_status(status: Any) -> ReportStatus:\n with belief_scope(\"status_to_report_status\"):\n raw = str(status.value if isinstance(status, TaskStatus) else status).upper()\n if raw == TaskStatus.SUCCESS.value:\n return ReportStatus.SUCCESS\n if raw == TaskStatus.FAILED.value:\n return ReportStatus.FAILED\n if raw in {TaskStatus.PENDING.value, TaskStatus.RUNNING.value, TaskStatus.AWAITING_INPUT.value, TaskStatus.AWAITING_MAPPING.value}:\n return ReportStatus.IN_PROGRESS\n return ReportStatus.PARTIAL\n# #endregion status_to_report_status\n" + }, + { + "contract_id": "build_summary", + "contract_type": "Function", + "file_path": "backend/src/services/reports/normalizer.py", + "start_line": 39, + "end_line": 58, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "POST": "Returns non-empty summary text.", + "PRE": "report_status is canonical; plugin_id may be unknown.", + "PURPOSE": "Build deterministic user-facing summary from task payload and status." + }, + "relations": [], + "schema_warnings": [ + { + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", + "detail": { + "actual_complexity": 1, + "contract_type": "Function" + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", + "detail": { + "actual_complexity": 1, + "contract_type": "Function" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region build_summary [TYPE Function]\n# @BRIEF Build deterministic user-facing summary from task payload and status.\n# @PRE: report_status is canonical; plugin_id may be unknown.\n# @POST: Returns non-empty summary text.\ndef build_summary(task: Task, report_status: ReportStatus) -> str:\n with belief_scope(\"build_summary\"):\n result = task.result\n if isinstance(result, dict):\n for key in (\"summary\", \"message\", \"status_message\", \"description\"):\n value = result.get(key)\n if isinstance(value, str) and value.strip():\n return value.strip()\n if report_status == ReportStatus.SUCCESS:\n return \"Task completed successfully\"\n if report_status == ReportStatus.FAILED:\n return \"Task failed\"\n if report_status == ReportStatus.IN_PROGRESS:\n return \"Task is in progress\"\n return \"Task completed with partial data\"\n# #endregion build_summary\n" }, { "contract_id": "extract_error_context", "contract_type": "Function", "file_path": "backend/src/services/reports/normalizer.py", "start_line": 61, - "end_line": 101, - "tier": "TIER_2", - "complexity": 4, + "end_line": 99, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Returns ErrorContext for failed/partial when context exists; otherwise None.", "PRE": "task is a valid Task object.", "PURPOSE": "Extract normalized error context and next actions for failed/partial reports." @@ -65681,38 +61997,37 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region extract_error_context [TYPE Function]\n# @BRIEF Extract normalized error context and next actions for failed/partial reports.\n# @PRE task is a valid Task object.\n# @POST Returns ErrorContext for failed/partial when context exists; otherwise None.\n# @COMPLEXITY 4\n\ndef extract_error_context(task: Task, report_status: ReportStatus) -> ErrorContext | None:\n with belief_scope(\"extract_error_context\"):\n if report_status not in {ReportStatus.FAILED, ReportStatus.PARTIAL}:\n return None\n\n result = task.result if isinstance(task.result, dict) else {}\n message = None\n code = None\n next_actions = []\n\n if isinstance(result.get(\"error\"), dict):\n error_obj = result.get(\"error\", {})\n message = error_obj.get(\"message\") or message\n code = error_obj.get(\"code\") or code\n actions = error_obj.get(\"next_actions\")\n if isinstance(actions, list):\n next_actions = [str(action) for action in actions if str(action).strip()]\n\n if not message:\n message = result.get(\"error_message\") if isinstance(result.get(\"error_message\"), str) else None\n\n if not message:\n for log in reversed(task.logs):\n if str(log.level).upper() == \"ERROR\" and log.message:\n message = log.message\n break\n\n if not message:\n message = \"Not provided\"\n\n if not next_actions:\n next_actions = [\"Review task diagnostics\", \"Retry the operation\"]\n\n return ErrorContext(code=code, message=message, next_actions=next_actions)\n# #endregion extract_error_context\n" + "body": "# #region extract_error_context [TYPE Function]\n# @BRIEF Extract normalized error context and next actions for failed/partial reports.\n# @PRE: task is a valid Task object.\n# @POST: Returns ErrorContext for failed/partial when context exists; otherwise None.\ndef extract_error_context(task: Task, report_status: ReportStatus) -> ErrorContext | None:\n with belief_scope(\"extract_error_context\"):\n if report_status not in {ReportStatus.FAILED, ReportStatus.PARTIAL}:\n return None\n\n result = task.result if isinstance(task.result, dict) else {}\n message = None\n code = None\n next_actions = []\n\n if isinstance(result.get(\"error\"), dict):\n error_obj = result.get(\"error\", {})\n message = error_obj.get(\"message\") or message\n code = error_obj.get(\"code\") or code\n actions = error_obj.get(\"next_actions\")\n if isinstance(actions, list):\n next_actions = [str(action) for action in actions if str(action).strip()]\n\n if not message:\n message = result.get(\"error_message\") if isinstance(result.get(\"error_message\"), str) else None\n\n if not message:\n for log in reversed(task.logs):\n if str(log.level).upper() == \"ERROR\" and log.message:\n message = log.message\n break\n\n if not message:\n message = \"Not provided\"\n\n if not next_actions:\n next_actions = [\"Review task diagnostics\", \"Retry the operation\"]\n\n return ErrorContext(code=code, message=message, next_actions=next_actions)\n# #endregion extract_error_context\n" }, { "contract_id": "normalize_task_report", "contract_type": "Function", "file_path": "backend/src/services/reports/normalizer.py", - "start_line": 104, - "end_line": 162, - "tier": "TIER_2", - "complexity": 4, + "start_line": 102, + "end_line": 159, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Returns TaskReport with required fields and deterministic fallback behavior.", "PRE": "task has valid id and plugin_id fields.", "PURPOSE": "Convert one Task to canonical TaskReport envelope.", @@ -65721,27 +62036,27 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region normalize_task_report [TYPE Function]\n# @BRIEF Convert one Task to canonical TaskReport envelope.\n# @PRE task has valid id and plugin_id fields.\n# @POST Returns TaskReport with required fields and deterministic fallback behavior.\n# @TEST_CONTRACT NormalizeTaskReport ->\n# @COMPLEXITY 4\n\n# {\n# required_fields: {task: Task},\n# invariants: [\n# \"Returns a valid TaskReport object\",\n# \"Maps TaskStatus to ReportStatus deterministically\",\n# \"Extracts ErrorContext for FAILED/PARTIAL tasks\"\n# ]\n# }\n# @TEST_FIXTURE valid_task -> {\"task\": \"MockTask(id='1', plugin_id='superset-migration', status=TaskStatus.SUCCESS)\"}\n# @TEST_EDGE task_with_error -> {\"task\": \"MockTask(status=TaskStatus.FAILED, logs=[LogEntry(level='ERROR', message='Failed')])\"}\n# @TEST_EDGE unknown_plugin_type -> {\"task\": \"MockTask(plugin_id='unknown-plugin', status=TaskStatus.PENDING)\"}\n# @TEST_INVARIANT deterministic_normalization -> verifies: [valid_task, task_with_error, unknown_plugin_type]\ndef normalize_task_report(task: Task) -> TaskReport:\n with belief_scope(\"normalize_task_report\"):\n task_type = resolve_task_type(task.plugin_id)\n report_status = status_to_report_status(task.status)\n profile = get_type_profile(task_type)\n\n started_at = task.started_at if isinstance(task.started_at, datetime) else None\n updated_at = task.finished_at if isinstance(task.finished_at, datetime) else None\n if not updated_at:\n updated_at = started_at or datetime.utcnow()\n\n details: dict[str, Any] = {\n \"profile\": {\n \"display_label\": profile.get(\"display_label\"),\n \"visual_variant\": profile.get(\"visual_variant\"),\n \"icon_token\": profile.get(\"icon_token\"),\n \"emphasis_rules\": profile.get(\"emphasis_rules\", []),\n },\n \"result\": task.result if task.result is not None else {\"note\": \"Not provided\"},\n }\n\n source_ref: dict[str, Any] = {}\n if isinstance(task.params, dict):\n for key in (\"environment_id\", \"source_env_id\", \"target_env_id\", \"dashboard_id\", \"dataset_id\", \"resource_id\"):\n if key in task.params:\n source_ref[key] = task.params.get(key)\n\n return TaskReport(\n report_id=task.id,\n task_id=task.id,\n task_type=task_type,\n status=report_status,\n started_at=started_at,\n updated_at=updated_at,\n summary=build_summary(task, report_status),\n details=details,\n error_context=extract_error_context(task, report_status),\n source_ref=source_ref or None,\n )\n# #endregion normalize_task_report\n" + "body": "# #region normalize_task_report [TYPE Function]\n# @BRIEF Convert one Task to canonical TaskReport envelope.\n# @PRE: task has valid id and plugin_id fields.\n# @POST: Returns TaskReport with required fields and deterministic fallback behavior.\n#\n# @TEST_CONTRACT: NormalizeTaskReport ->\n# {\n# required_fields: {task: Task},\n# invariants: [\n# \"Returns a valid TaskReport object\",\n# \"Maps TaskStatus to ReportStatus deterministically\",\n# \"Extracts ErrorContext for FAILED/PARTIAL tasks\"\n# ]\n# }\n# @TEST_FIXTURE: valid_task -> {\"task\": \"MockTask(id='1', plugin_id='superset-migration', status=TaskStatus.SUCCESS)\"}\n# @TEST_EDGE: task_with_error -> {\"task\": \"MockTask(status=TaskStatus.FAILED, logs=[LogEntry(level='ERROR', message='Failed')])\"}\n# @TEST_EDGE: unknown_plugin_type -> {\"task\": \"MockTask(plugin_id='unknown-plugin', status=TaskStatus.PENDING)\"}\n# @TEST_INVARIANT: deterministic_normalization -> verifies: [valid_task, task_with_error, unknown_plugin_type]\ndef normalize_task_report(task: Task) -> TaskReport:\n with belief_scope(\"normalize_task_report\"):\n task_type = resolve_task_type(task.plugin_id)\n report_status = status_to_report_status(task.status)\n profile = get_type_profile(task_type)\n\n started_at = task.started_at if isinstance(task.started_at, datetime) else None\n updated_at = task.finished_at if isinstance(task.finished_at, datetime) else None\n if not updated_at:\n updated_at = started_at or datetime.utcnow()\n\n details: dict[str, Any] = {\n \"profile\": {\n \"display_label\": profile.get(\"display_label\"),\n \"visual_variant\": profile.get(\"visual_variant\"),\n \"icon_token\": profile.get(\"icon_token\"),\n \"emphasis_rules\": profile.get(\"emphasis_rules\", []),\n },\n \"result\": task.result if task.result is not None else {\"note\": \"Not provided\"},\n }\n\n source_ref: dict[str, Any] = {}\n if isinstance(task.params, dict):\n for key in (\"environment_id\", \"source_env_id\", \"target_env_id\", \"dashboard_id\", \"dataset_id\", \"resource_id\"):\n if key in task.params:\n source_ref[key] = task.params.get(key)\n\n return TaskReport(\n report_id=task.id,\n task_id=task.id,\n task_type=task_type,\n status=report_status,\n started_at=started_at,\n updated_at=updated_at,\n summary=build_summary(task, report_status),\n details=details,\n error_context=extract_error_context(task, report_status),\n source_ref=source_ref or None,\n )\n# #endregion normalize_task_report\n" }, { "contract_id": "report_service", @@ -65880,7 +62195,7 @@ "contract_type": "Module", "file_path": "backend/src/services/reports/type_profiles.py", "start_line": 1, - "end_line": 118, + "end_line": 116, "tier": "TIER_1", "complexity": 2, "metadata": { @@ -65891,7 +62206,7 @@ "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region type_profiles [C:2] [TYPE Module] [SEMANTICS report, task-type, mapping, profile, fallback]\n# @BRIEF Deterministic mapping of plugin/task identifiers to canonical report task types and fallback profile metadata.\n\nfrom typing import Any\n\nfrom ...core.logger import belief_scope\nfrom ...models.report import TaskType\n\n# #region PLUGIN_TO_TASK_TYPE [TYPE Data]\n# @BRIEF Maps plugin identifiers to normalized report task types.\nPLUGIN_TO_TASK_TYPE: dict[str, TaskType] = {\n \"llm_dashboard_validation\": TaskType.LLM_VERIFICATION,\n \"superset-backup\": TaskType.BACKUP,\n \"superset-migration\": TaskType.MIGRATION,\n \"documentation\": TaskType.DOCUMENTATION,\n \"clean-release-compliance\": TaskType.CLEAN_RELEASE,\n \"clean_release_compliance\": TaskType.CLEAN_RELEASE,\n}\n# #endregion PLUGIN_TO_TASK_TYPE\n\n# #region TASK_TYPE_PROFILES [TYPE Data]\n# @BRIEF Profile metadata registry for each normalized task type.\nTASK_TYPE_PROFILES: dict[TaskType, dict[str, Any]] = {\n TaskType.LLM_VERIFICATION: {\n \"display_label\": \"LLM Verification\",\n \"visual_variant\": \"llm\",\n \"icon_token\": \"sparkles\",\n \"emphasis_rules\": [\"summary\", \"status\", \"next_actions\"],\n \"fallback\": False,\n },\n TaskType.BACKUP: {\n \"display_label\": \"Backup\",\n \"visual_variant\": \"backup\",\n \"icon_token\": \"archive\",\n \"emphasis_rules\": [\"summary\", \"status\", \"updated_at\"],\n \"fallback\": False,\n },\n TaskType.MIGRATION: {\n \"display_label\": \"Migration\",\n \"visual_variant\": \"migration\",\n \"icon_token\": \"shuffle\",\n \"emphasis_rules\": [\"summary\", \"status\", \"error_context\"],\n \"fallback\": False,\n },\n TaskType.DOCUMENTATION: {\n \"display_label\": \"Documentation\",\n \"visual_variant\": \"documentation\",\n \"icon_token\": \"file-text\",\n \"emphasis_rules\": [\"summary\", \"status\", \"details\"],\n \"fallback\": False,\n },\n TaskType.CLEAN_RELEASE: {\n \"display_label\": \"Clean Release\",\n \"visual_variant\": \"clean-release\",\n \"icon_token\": \"shield-check\",\n \"emphasis_rules\": [\"summary\", \"status\", \"error_context\", \"details\"],\n \"fallback\": False,\n },\n TaskType.UNKNOWN: {\n \"display_label\": \"Other / Unknown\",\n \"visual_variant\": \"unknown\",\n \"icon_token\": \"help-circle\",\n \"emphasis_rules\": [\"summary\", \"status\"],\n \"fallback\": True,\n },\n}\n# #endregion TASK_TYPE_PROFILES\n\n\n# #region resolve_task_type [TYPE Function]\n# @BRIEF Resolve canonical task type from plugin/task identifier with guaranteed fallback.\n# @PRE plugin_id may be None or unknown.\n# @POST Always returns one of TaskType enum values.\n# @TEST_CONTRACT ResolveTaskType ->\n# @COMPLEXITY 4\n\n# {\n# required_fields: {plugin_id: str},\n# invariants: [\"returns TaskType.UNKNOWN for missing/unmapped plugin_id\"]\n# }\n# @TEST_FIXTURE valid_plugin -> {\"plugin_id\": \"superset-migration\"}\n# @TEST_EDGE empty_plugin -> {\"plugin_id\": \"\"}\n# @TEST_EDGE none_plugin -> {\"plugin_id\": None}\n# @TEST_EDGE unknown_plugin -> {\"plugin_id\": \"invalid-plugin\"}\n# @TEST_INVARIANT fallback_to_unknown -> verifies: [empty_plugin, none_plugin, unknown_plugin]\ndef resolve_task_type(plugin_id: str | None) -> TaskType:\n with belief_scope(\"resolve_task_type\"):\n normalized = (plugin_id or \"\").strip()\n if not normalized:\n return TaskType.UNKNOWN\n return PLUGIN_TO_TASK_TYPE.get(normalized, TaskType.UNKNOWN)\n\n\n# #endregion resolve_task_type\n\n# #region get_type_profile [TYPE Function]\n# @BRIEF Return deterministic profile metadata for a task type.\n# @PRE task_type may be known or unknown.\n# @POST Returns a profile dict and never raises for unknown types.\n# @TEST_CONTRACT GetTypeProfile ->\n# @COMPLEXITY 4\n\n# {\n# required_fields: {task_type: TaskType},\n# invariants: [\"returns a valid metadata dictionary even for UNKNOWN\"]\n# }\n# @TEST_FIXTURE valid_profile -> {\"task_type\": \"migration\"}\n# @TEST_EDGE missing_profile -> {\"task_type\": \"some_new_type\"}\n# @TEST_INVARIANT always_returns_dict -> verifies: [valid_profile, missing_profile]\ndef get_type_profile(task_type: TaskType) -> dict[str, Any]:\n with belief_scope(\"get_type_profile\"):\n return TASK_TYPE_PROFILES.get(task_type, TASK_TYPE_PROFILES[TaskType.UNKNOWN])\n\n\n# #endregion get_type_profile\n# #endregion get_type_profile\n\n# #endregion type_profiles\n" + "body": "# #region type_profiles [C:2] [TYPE Module] [SEMANTICS report, task-type, mapping, profile, fallback]\n# @BRIEF Deterministic mapping of plugin/task identifiers to canonical report task types and fallback profile metadata.\n\nfrom typing import Any\n\nfrom ...core.logger import belief_scope\nfrom ...models.report import TaskType\n\n# #region PLUGIN_TO_TASK_TYPE [TYPE Data]\n# @BRIEF Maps plugin identifiers to normalized report task types.\nPLUGIN_TO_TASK_TYPE: dict[str, TaskType] = {\n \"llm_dashboard_validation\": TaskType.LLM_VERIFICATION,\n \"superset-backup\": TaskType.BACKUP,\n \"superset-migration\": TaskType.MIGRATION,\n \"documentation\": TaskType.DOCUMENTATION,\n \"clean-release-compliance\": TaskType.CLEAN_RELEASE,\n \"clean_release_compliance\": TaskType.CLEAN_RELEASE,\n}\n# #endregion PLUGIN_TO_TASK_TYPE\n\n# #region TASK_TYPE_PROFILES [TYPE Data]\n# @BRIEF Profile metadata registry for each normalized task type.\nTASK_TYPE_PROFILES: dict[TaskType, dict[str, Any]] = {\n TaskType.LLM_VERIFICATION: {\n \"display_label\": \"LLM Verification\",\n \"visual_variant\": \"llm\",\n \"icon_token\": \"sparkles\",\n \"emphasis_rules\": [\"summary\", \"status\", \"next_actions\"],\n \"fallback\": False,\n },\n TaskType.BACKUP: {\n \"display_label\": \"Backup\",\n \"visual_variant\": \"backup\",\n \"icon_token\": \"archive\",\n \"emphasis_rules\": [\"summary\", \"status\", \"updated_at\"],\n \"fallback\": False,\n },\n TaskType.MIGRATION: {\n \"display_label\": \"Migration\",\n \"visual_variant\": \"migration\",\n \"icon_token\": \"shuffle\",\n \"emphasis_rules\": [\"summary\", \"status\", \"error_context\"],\n \"fallback\": False,\n },\n TaskType.DOCUMENTATION: {\n \"display_label\": \"Documentation\",\n \"visual_variant\": \"documentation\",\n \"icon_token\": \"file-text\",\n \"emphasis_rules\": [\"summary\", \"status\", \"details\"],\n \"fallback\": False,\n },\n TaskType.CLEAN_RELEASE: {\n \"display_label\": \"Clean Release\",\n \"visual_variant\": \"clean-release\",\n \"icon_token\": \"shield-check\",\n \"emphasis_rules\": [\"summary\", \"status\", \"error_context\", \"details\"],\n \"fallback\": False,\n },\n TaskType.UNKNOWN: {\n \"display_label\": \"Other / Unknown\",\n \"visual_variant\": \"unknown\",\n \"icon_token\": \"help-circle\",\n \"emphasis_rules\": [\"summary\", \"status\"],\n \"fallback\": True,\n },\n}\n# #endregion TASK_TYPE_PROFILES\n\n\n# #region resolve_task_type [TYPE Function]\n# @BRIEF Resolve canonical task type from plugin/task identifier with guaranteed fallback.\n# @PRE: plugin_id may be None or unknown.\n# @POST: Always returns one of TaskType enum values.\n#\n# @TEST_CONTRACT: ResolveTaskType ->\n# {\n# required_fields: {plugin_id: str},\n# invariants: [\"returns TaskType.UNKNOWN for missing/unmapped plugin_id\"]\n# }\n# @TEST_FIXTURE: valid_plugin -> {\"plugin_id\": \"superset-migration\"}\n# @TEST_EDGE: empty_plugin -> {\"plugin_id\": \"\"}\n# @TEST_EDGE: none_plugin -> {\"plugin_id\": None}\n# @TEST_EDGE: unknown_plugin -> {\"plugin_id\": \"invalid-plugin\"}\n# @TEST_INVARIANT: fallback_to_unknown -> verifies: [empty_plugin, none_plugin, unknown_plugin]\ndef resolve_task_type(plugin_id: str | None) -> TaskType:\n with belief_scope(\"resolve_task_type\"):\n normalized = (plugin_id or \"\").strip()\n if not normalized:\n return TaskType.UNKNOWN\n return PLUGIN_TO_TASK_TYPE.get(normalized, TaskType.UNKNOWN)\n\n\n# #endregion resolve_task_type\n\n\n# #region get_type_profile [TYPE Function]\n# @BRIEF Return deterministic profile metadata for a task type.\n# @PRE: task_type may be known or unknown.\n# @POST: Returns a profile dict and never raises for unknown types.\n#\n# @TEST_CONTRACT: GetTypeProfile ->\n# {\n# required_fields: {task_type: TaskType},\n# invariants: [\"returns a valid metadata dictionary even for UNKNOWN\"]\n# }\n# @TEST_FIXTURE: valid_profile -> {\"task_type\": \"migration\"}\n# @TEST_EDGE: missing_profile -> {\"task_type\": \"some_new_type\"}\n# @TEST_INVARIANT: always_returns_dict -> verifies: [valid_profile, missing_profile]\ndef get_type_profile(task_type: TaskType) -> dict[str, Any]:\n with belief_scope(\"get_type_profile\"):\n return TASK_TYPE_PROFILES.get(task_type, TASK_TYPE_PROFILES[TaskType.UNKNOWN])\n\n\n# #endregion get_type_profile\n\n# #endregion type_profiles\n" }, { "contract_id": "PLUGIN_TO_TASK_TYPE", @@ -65988,11 +62303,10 @@ "contract_type": "Function", "file_path": "backend/src/services/reports/type_profiles.py", "start_line": 70, - "end_line": 94, - "tier": "TIER_2", - "complexity": 4, + "end_line": 93, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Always returns one of TaskType enum values.", "PRE": "plugin_id may be None or unknown.", "PURPOSE": "Resolve canonical task type from plugin/task identifier with guaranteed fallback.", @@ -66001,38 +62315,37 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region resolve_task_type [TYPE Function]\n# @BRIEF Resolve canonical task type from plugin/task identifier with guaranteed fallback.\n# @PRE plugin_id may be None or unknown.\n# @POST Always returns one of TaskType enum values.\n# @TEST_CONTRACT ResolveTaskType ->\n# @COMPLEXITY 4\n\n# {\n# required_fields: {plugin_id: str},\n# invariants: [\"returns TaskType.UNKNOWN for missing/unmapped plugin_id\"]\n# }\n# @TEST_FIXTURE valid_plugin -> {\"plugin_id\": \"superset-migration\"}\n# @TEST_EDGE empty_plugin -> {\"plugin_id\": \"\"}\n# @TEST_EDGE none_plugin -> {\"plugin_id\": None}\n# @TEST_EDGE unknown_plugin -> {\"plugin_id\": \"invalid-plugin\"}\n# @TEST_INVARIANT fallback_to_unknown -> verifies: [empty_plugin, none_plugin, unknown_plugin]\ndef resolve_task_type(plugin_id: str | None) -> TaskType:\n with belief_scope(\"resolve_task_type\"):\n normalized = (plugin_id or \"\").strip()\n if not normalized:\n return TaskType.UNKNOWN\n return PLUGIN_TO_TASK_TYPE.get(normalized, TaskType.UNKNOWN)\n\n\n# #endregion resolve_task_type\n" + "body": "# #region resolve_task_type [TYPE Function]\n# @BRIEF Resolve canonical task type from plugin/task identifier with guaranteed fallback.\n# @PRE: plugin_id may be None or unknown.\n# @POST: Always returns one of TaskType enum values.\n#\n# @TEST_CONTRACT: ResolveTaskType ->\n# {\n# required_fields: {plugin_id: str},\n# invariants: [\"returns TaskType.UNKNOWN for missing/unmapped plugin_id\"]\n# }\n# @TEST_FIXTURE: valid_plugin -> {\"plugin_id\": \"superset-migration\"}\n# @TEST_EDGE: empty_plugin -> {\"plugin_id\": \"\"}\n# @TEST_EDGE: none_plugin -> {\"plugin_id\": None}\n# @TEST_EDGE: unknown_plugin -> {\"plugin_id\": \"invalid-plugin\"}\n# @TEST_INVARIANT: fallback_to_unknown -> verifies: [empty_plugin, none_plugin, unknown_plugin]\ndef resolve_task_type(plugin_id: str | None) -> TaskType:\n with belief_scope(\"resolve_task_type\"):\n normalized = (plugin_id or \"\").strip()\n if not normalized:\n return TaskType.UNKNOWN\n return PLUGIN_TO_TASK_TYPE.get(normalized, TaskType.UNKNOWN)\n\n\n# #endregion resolve_task_type\n" }, { "contract_id": "get_type_profile", "contract_type": "Function", "file_path": "backend/src/services/reports/type_profiles.py", "start_line": 96, - "end_line": 115, - "tier": "TIER_2", - "complexity": 4, + "end_line": 114, + "tier": "TIER_1", + "complexity": 1, "metadata": { - "COMPLEXITY": "4", "POST": "Returns a profile dict and never raises for unknown types.", "PRE": "task_type may be known or unknown.", "PURPOSE": "Return deterministic profile metadata for a task type.", @@ -66041,27 +62354,27 @@ "relations": [], "schema_warnings": [ { - "code": "missing_required_tag", - "tag": "RELATION", - "message": "@RELATION is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } }, { - "code": "missing_required_tag", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is required for contract type 'Function' at C4", + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C1", "detail": { - "actual_complexity": 4, + "actual_complexity": 1, "contract_type": "Function" } } ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# #region get_type_profile [TYPE Function]\n# @BRIEF Return deterministic profile metadata for a task type.\n# @PRE task_type may be known or unknown.\n# @POST Returns a profile dict and never raises for unknown types.\n# @TEST_CONTRACT GetTypeProfile ->\n# @COMPLEXITY 4\n\n# {\n# required_fields: {task_type: TaskType},\n# invariants: [\"returns a valid metadata dictionary even for UNKNOWN\"]\n# }\n# @TEST_FIXTURE valid_profile -> {\"task_type\": \"migration\"}\n# @TEST_EDGE missing_profile -> {\"task_type\": \"some_new_type\"}\n# @TEST_INVARIANT always_returns_dict -> verifies: [valid_profile, missing_profile]\ndef get_type_profile(task_type: TaskType) -> dict[str, Any]:\n with belief_scope(\"get_type_profile\"):\n return TASK_TYPE_PROFILES.get(task_type, TASK_TYPE_PROFILES[TaskType.UNKNOWN])\n\n\n# #endregion get_type_profile\n" + "body": "# #region get_type_profile [TYPE Function]\n# @BRIEF Return deterministic profile metadata for a task type.\n# @PRE: task_type may be known or unknown.\n# @POST: Returns a profile dict and never raises for unknown types.\n#\n# @TEST_CONTRACT: GetTypeProfile ->\n# {\n# required_fields: {task_type: TaskType},\n# invariants: [\"returns a valid metadata dictionary even for UNKNOWN\"]\n# }\n# @TEST_FIXTURE: valid_profile -> {\"task_type\": \"migration\"}\n# @TEST_EDGE: missing_profile -> {\"task_type\": \"some_new_type\"}\n# @TEST_INVARIANT: always_returns_dict -> verifies: [valid_profile, missing_profile]\ndef get_type_profile(task_type: TaskType) -> dict[str, Any]:\n with belief_scope(\"get_type_profile\"):\n return TASK_TYPE_PROFILES.get(task_type, TASK_TYPE_PROFILES[TaskType.UNKNOWN])\n\n\n# #endregion get_type_profile\n" }, { "contract_id": "ResourceServiceModule", @@ -66553,15 +62866,6 @@ "actual_complexity": 2, "contract_type": "Module" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -66589,15 +62893,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -66636,15 +62931,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -66681,15 +62967,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -66725,15 +63002,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -66773,15 +63041,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -66824,15 +63083,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -66875,15 +63125,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -66926,15 +63167,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -66977,15 +63209,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67028,15 +63251,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67079,15 +63293,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67132,24 +63337,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -67224,15 +63411,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67288,15 +63466,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67352,15 +63521,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67397,15 +63557,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67448,15 +63599,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67499,15 +63641,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67550,15 +63683,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67601,15 +63725,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67652,15 +63767,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67703,15 +63809,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67754,15 +63851,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67805,15 +63893,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67856,15 +63935,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67907,15 +63977,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -67958,15 +64019,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68003,15 +64055,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68049,30 +64092,12 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "unknown_tag", "tag": "INVARIANT_VIOLATION", "message": "@INVARIANT_VIOLATION is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68108,15 +64133,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68152,15 +64168,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68196,15 +64203,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68240,15 +64238,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68284,15 +64273,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68328,15 +64308,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68372,15 +64343,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68416,15 +64378,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68460,15 +64413,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68504,15 +64448,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68548,15 +64483,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68593,15 +64519,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -68656,15 +64573,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68700,15 +64608,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68745,24 +64644,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68798,15 +64679,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68850,15 +64722,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -68877,15 +64740,6 @@ "value": "Scripts" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -68947,15 +64801,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -68998,15 +64843,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69049,15 +64885,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69100,15 +64927,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69151,15 +64969,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69202,15 +65011,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69247,15 +65047,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -69310,15 +65101,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69354,15 +65136,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69398,15 +65171,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69442,15 +65206,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69486,15 +65241,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69539,24 +65285,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -69631,15 +65359,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69695,15 +65414,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69759,15 +65469,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69823,15 +65524,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69887,15 +65579,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69951,15 +65634,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -69996,15 +65670,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -70059,15 +65724,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70103,15 +65759,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70147,15 +65794,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70191,15 +65829,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70235,15 +65864,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70279,15 +65899,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70323,15 +65934,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70367,15 +65969,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70411,15 +66004,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70464,24 +66048,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -70556,15 +66122,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70620,15 +66177,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70684,15 +66232,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70748,15 +66287,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70801,24 +66331,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -70893,15 +66405,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70937,15 +66440,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -70989,24 +66483,6 @@ "message": "@CONTRACT is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71052,15 +66528,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71116,15 +66583,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71180,15 +66638,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71244,15 +66693,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71296,15 +66736,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71360,15 +66791,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71424,15 +66846,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71488,15 +66901,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71552,24 +66956,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71608,15 +66994,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "POST", @@ -71635,15 +67012,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71699,15 +67067,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71763,15 +67122,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71827,15 +67177,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -71880,24 +67221,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -71972,15 +67295,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -72036,15 +67350,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -72100,15 +67405,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -72164,15 +67460,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -72218,24 +67505,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -72310,15 +67579,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -72374,15 +67634,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -72438,15 +67689,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -72502,15 +67744,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -72561,15 +67794,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -72643,15 +67867,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -72706,15 +67921,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -72776,15 +67982,6 @@ "message": "@FRAGILE is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -72846,15 +68043,6 @@ "message": "@FRAGILE is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -72946,15 +68134,6 @@ "value": "Test" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -73073,15 +68252,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73124,15 +68294,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73175,15 +68336,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73226,15 +68378,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73277,15 +68420,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73447,15 +68581,6 @@ "value": "Domain (Tests)" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73498,15 +68623,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73549,15 +68665,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73600,15 +68707,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73651,15 +68749,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73702,15 +68791,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73753,15 +68833,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73804,15 +68875,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73855,15 +68917,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -73924,15 +68977,6 @@ "value": "Test" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -73994,15 +69038,6 @@ "message": "@TEST_DATA is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -74623,15 +69658,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -74650,15 +69676,6 @@ "value": "Logging (Tests)" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -74714,15 +69731,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -74778,15 +69786,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -74822,15 +69821,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -74866,15 +69856,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -74943,15 +69924,6 @@ "value": "Domain (Tests)" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75011,15 +69983,6 @@ "contract_type": "Block" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Block' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Block" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75057,15 +70020,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_FIXTURE", @@ -75086,15 +70040,6 @@ "contract_type": "Function" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75130,15 +70075,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75174,15 +70110,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75242,15 +70169,6 @@ "contract_type": "Block" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Block' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Block" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75286,15 +70204,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75330,15 +70239,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75374,15 +70274,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75443,15 +70334,6 @@ "contract_type": "Block" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Block' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Block" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75488,15 +70370,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75533,15 +70406,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75578,15 +70442,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75623,15 +70478,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75677,24 +70523,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -75747,15 +70575,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75789,15 +70608,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -75865,15 +70675,6 @@ "message": "@TEST_DATA is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -75928,15 +70729,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -76315,15 +71107,6 @@ "message": "@TEST_DATA is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -77072,15 +71855,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -77522,15 +72296,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -77984,15 +72749,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -78887,15 +73643,6 @@ "contract_type": "Module" } }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -79447,179 +74194,476 @@ ], "anchor_syntax": "def", "tier_source": "AutoCalculated", - "body": "# [DEF:build:Module]\n# @PURPOSE: Unified build script — local docker compose + release bundles + lightweight bundle\n# @COMPLEXITY: 2\n#\n# Usage: ./build.sh [options]\n#\n# Commands:\n# up [profile] Build and start local docker compose (default: current)\n# down [profile] Stop services\n# restart [profile] Rebuild and restart services\n# logs [profile] Tail logs\n# status Show running containers for all profiles\n# bundle Full release bundle (backend + frontend + postgres .tar.xz's)\n# bundle:light Lightweight all-in-one bundle (<200 MB, .tar.xz, no Playwright)\n# help Show this help\n#\n# Profiles: current (default), master\n# [/DEF:build:Module]\n" + "body": "# [DEF:build:Module]\n# @PURPOSE: Unified build script — local docker compose + release bundles + lightweight bundle\n# @COMPLEXITY: 2\n#\n# Usage: ./build.sh [options]\n#\n# Commands:\n# up [profile] Build and start local docker compose (default: current)\n# down [profile] Stop services\n# restart [profile] Rebuild and restart services\n# logs [profile] Tail logs\n# status Show running containers for all profiles\n# bundle Full release bundle (backend + frontend + postgres .tar.xz's)\n# bundle:light Lightweight all-in-one bundle (<200 MB, .tar.xz, no Playwright)\n# help Show this help\n#\n# Profiles: current (default), master, enterprise-clean\n# [/DEF:build:Module]\n" + }, + { + "contract_id": "docker.backend.Dockerfile", + "contract_type": "Module", + "file_path": "docker/backend.Dockerfile", + "start_line": 1, + "end_line": 8, + "tier": "TIER_2", + "complexity": 3, + "metadata": { + "COMPLEXITY": 3, + "LAYER": "Infrastructure", + "POST": "Образ с backend API, Playwright, entrypoint для bootstrap admin и установки сертификатов.", + "PRE": "Docker builder context — корень проекта. backend/ и docker/ доступны.", + "PURPOSE": "Backend Dockerfile — Python 3.11 slim + Playwright + entrypoint с установкой сертификатов." + }, + "relations": [ + { + "source_id": "docker.backend.Dockerfile", + "relation_type": "DEPENDS_ON", + "target_id": "docker/backend.entrypoint.sh", + "target_ref": "[docker/backend.entrypoint.sh]" + }, + { + "source_id": "docker.backend.Dockerfile", + "relation_type": "DEPENDS_ON", + "target_id": "backend/requirements.txt", + "target_ref": "[backend/requirements.txt]" + } + ], + "schema_warnings": [ + { + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Module' at C3", + "detail": { + "actual_complexity": 3, + "contract_type": "Module" + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Module' at C3", + "detail": { + "actual_complexity": 3, + "contract_type": "Module" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region docker.backend.Dockerfile [C:3] [TYPE Module] [SEMANTICS docker,backend,build]\n# @BRIEF Backend Dockerfile — Python 3.11 slim + Playwright + entrypoint с установкой сертификатов.\n# @LAYER Infrastructure\n# @RELATION DEPENDS_ON -> [docker/backend.entrypoint.sh]\n# @RELATION DEPENDS_ON -> [backend/requirements.txt]\n# @PRE Docker builder context — корень проекта. backend/ и docker/ доступны.\n# @POST Образ с backend API, Playwright, entrypoint для bootstrap admin и установки сертификатов.\n# #endregion docker.backend.Dockerfile\n" }, { "contract_id": "docker.backend.entrypoint", "contract_type": "Module", "file_path": "docker/backend.entrypoint.sh", "start_line": 4, - "end_line": 11, - "tier": "STANDARD", - "complexity": 1, + "end_line": 20, + "tier": "TIER_2", + "complexity": 4, "metadata": { - "INVARIANT": "Existing admin account must never be overwritten during container restarts.", - "LAYER": "Infra", - "PURPOSE": "Container entrypoint that performs optional idempotent admin bootstrap before starting backend runtime.", - "SEMANTICS": [ - "docker", - "entrypoint", - "admin-bootstrap", - "runtime", - "backend" - ], - "TIER": "STANDARD" + "COMPLEXITY": 4, + "PURPOSE": "Container entrypoint — установка корп. сертификатов, Playwright (lazy), bootstrap admin," }, - "relations": [ - { - "source_id": "docker.backend.entrypoint", - "relation_type": "DEPENDS_ON", - "target_id": "backend/src/scripts/create_admin.py", - "target_ref": "backend/src/scripts/create_admin.py" - } - ], + "relations": [], "schema_warnings": [ { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Module' at C1", + "code": "missing_required_tag", + "tag": "POST", + "message": "@POST is required for contract type 'Module' at C4", "detail": { - "actual_complexity": 1, + "actual_complexity": 4, "contract_type": "Module" } }, { - "code": "invalid_enum_value", - "tag": "LAYER", - "message": "@LAYER value 'Infra' is not in allowed enum", + "code": "missing_required_tag", + "tag": "PRE", + "message": "@PRE is required for contract type 'Module' at C4", "detail": { - "allowed": [ - "Core", - "Domain", - "API", - "UI", - "Service", - "Infrastructure", - "Plugin", - "Tests" - ], - "value": "Infra" + "actual_complexity": 4, + "contract_type": "Module" } }, { - "code": "invalid_enum_value", - "tag": "TIER", - "message": "@TIER value 'STANDARD' is not in allowed enum", - "detail": { - "allowed": [ - "TIER_1", - "TIER_2", - "TIER_3", - "TIER_4", - "TIER_5" - ], - "value": "STANDARD" - } - }, - { - "code": "tag_forbidden_by_complexity", + "code": "missing_required_tag", "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C1", + "message": "@RELATION is required for contract type 'Module' at C4", "detail": { - "actual_complexity": 1, + "actual_complexity": 4, "contract_type": "Module" } }, { - "code": "def_format_deprecated", - "tag": "FORMAT", - "message": "Contract 'docker.backend.entrypoint' uses legacy [DEF:] format. Consider migrating to #region/#endregion for new code. Use axiom_contract_refactor with operation='migrate_def_to_region' to auto-convert.", + "code": "missing_required_tag", + "tag": "SIDE_EFFECT", + "message": "@SIDE_EFFECT is required for contract type 'Module' at C4", "detail": { - "current_format": "def", - "migration_hint": "Use axiom_contract_refactor operation=migrate_def_to_region", - "recommended_format": "region" + "actual_complexity": 4, + "contract_type": "Module" } } ], - "anchor_syntax": "def", - "tier_source": "Explicit", - "body": "# [DEF:docker.backend.entrypoint:Module]\n# @TIER: STANDARD\n# @SEMANTICS: docker, entrypoint, admin-bootstrap, runtime, backend\n# @PURPOSE: Container entrypoint that performs optional idempotent admin bootstrap before starting backend runtime.\n# @LAYER: Infra\n# @RELATION: DEPENDS_ON -> backend/src/scripts/create_admin.py\n# @INVARIANT: Existing admin account must never be overwritten during container restarts.\n# [/DEF:docker.backend.entrypoint:Module]\n" + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region docker.backend.entrypoint [C:4] [TYPE Module] [SEMANTICS docker,entrypoint,enterprise,certs]\n# @BRIEF Container entrypoint — установка корп. сертификатов, Playwright (lazy), bootstrap admin,\n# затем запуск backend (exec \"$@\").\n# @PRE Python runtime и backend source доступны в /app/backend.\n# Переменная CERTS_PATH указывает на директорию с .crt файлами (или пусто).\n# @POST Сертификаты установлены в системное хранилище. Playwright Chromium установлен (lazy).\n# Admin создан (если INITIAL_ADMIN_CREATE=true). Backend запущен через exec \"$@\".\n# @SIDE_EFFECT Модифицирует /usr/local/share/ca-certificates/ и вызывает update-ca-certificates.\n# Скачивает Chromium ~377MB при первом запуске.\n# @LAYER Infrastructure\n# @RELATION DEPENDS_ON -> [backend/src/scripts/create_admin.py]\n# @RELATION DEPENDS_ON -> [backend/src/scripts/init_auth_db.py]\n# @INVARIANT Если CERTS_PATH пуст или нет .crt файлов — install_certificates не падает.\n# @INVARIANT Существующий admin аккаунт НЕ перезаписывается при перезапуске контейнера\n# (create_admin.py идемпотентен).\n# @INVARIANT Playwright Chromium устанавливается только если отсутствует в кеше.\n# #endregion docker.backend.entrypoint\n" }, { - "contract_id": "docker.backend.entrypoint.bootstrap_admin", + "contract_id": "docker.backend.entrypoint.install_certificates", "contract_type": "Function", "file_path": "docker/backend.entrypoint.sh", - "start_line": 13, - "end_line": 52, - "tier": "TIER_1", - "complexity": 1, + "start_line": 25, + "end_line": 76, + "tier": "TIER_2", + "complexity": 3, "metadata": { - "POST": "Admin is created only when INITIAL_ADMIN_CREATE=true and required credentials are present.", - "PRE": "Python runtime and backend sources are available inside /app/backend.", - "PURPOSE": "Execute optional initial admin bootstrap from runtime environment variables." + "COMPLEXITY": 3, + "PRE": "CERTS_PATH указывает на директорию (может быть пуста или не существовать).", + "PURPOSE": "Устанавливает корпоративные .crt сертификаты из CERTS_PATH в системное хранилище Debian." }, "relations": [], "schema_warnings": [ { "code": "tag_forbidden_by_complexity", - "tag": "POST", - "message": "@POST is forbidden for contract type 'Function' at C1", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C3", "detail": { - "actual_complexity": 1, + "actual_complexity": 3, + "contract_type": "Function" + } + }, + { + "code": "missing_required_tag", + "tag": "RELATION", + "message": "@RELATION is required for contract type 'Function' at C3", + "detail": { + "actual_complexity": 3, + "contract_type": "Function" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region docker.backend.entrypoint.install_certificates [C:3] [TYPE Function]\n# @BRIEF Устанавливает корпоративные .crt сертификаты из CERTS_PATH в системное хранилище Debian.\n# @PRE CERTS_PATH указывает на директорию (может быть пуста или не существовать).\n# В системе установлен пакет ca-certificates.\n# @POST .crt файлы скопированы в /usr/local/share/ca-certificates/custom/ и\n# добавлены в системное хранилище через update-ca-certificates.\n# @SIDE_EFFECT Запускает update-ca-certificates — модифицирует /etc/ssl/certs/.\n# @LAYER Infrastructure\n# @RELATION DEPENDS_ON -> [ca-certificates (system package)]\n# @EXAMPLE:\n# CERTS_PATH=/opt/certs docker run ... # монтируем ./certs в /opt/certs\n# В ./certs кладём: my-corporate-ca.crt, another-ca.crt\n# entrypoint установит оба в доверенные.\ninstall_certificates() {\n local certs_dir=\"${CERTS_PATH:-/opt/certs}\"\n\n if [ ! -d \"$certs_dir\" ]; then\n echo \"[entrypoint] CERTS_PATH=${certs_dir} не существует — пропускаем установку сертификатов\"\n return 0\n fi\n\n local cert_count\n cert_count=\"$(find \"$certs_dir\" -maxdepth 1 -name '*.crt' -o -name '*.pem' 2>/dev/null | wc -l)\"\n\n if [ \"$cert_count\" -eq 0 ]; then\n echo \"[entrypoint] Нет .crt/.pem файлов в ${certs_dir} — пропускаем установку сертификатов\"\n return 0\n fi\n\n local target=\"/usr/local/share/ca-certificates/custom\"\n mkdir -p \"$target\"\n\n echo \"[entrypoint] Устанавливаем корпоративные сертификаты из ${certs_dir}...\"\n local copied=0\n for cert in \"$certs_dir\"/*.crt \"$certs_dir\"/*.pem; do\n if [ -f \"$cert\" ]; then\n cp -v \"$cert\" \"$target/\" 2>&1 | sed 's/^/[entrypoint] /'\n copied=$((copied + 1))\n fi\n done\n\n if [ \"$copied\" -eq 0 ]; then\n echo \"[entrypoint] Нет файлов для копирования — пропускаем\"\n return 0\n fi\n\n echo \"[entrypoint] Обновляем системное хранилище CA-сертификатов...\"\n update-ca-certificates --fresh 2>&1 | sed 's/^/[entrypoint] /'\n\n echo \"[entrypoint] ✅ Установлено ${copied} корпоративных сертификатов\"\n}\n# #endregion docker.backend.entrypoint.install_certificates\n" + }, + { + "contract_id": "docker.backend.entrypoint.bootstrap_admin", + "contract_type": "Function", + "file_path": "docker/backend.entrypoint.sh", + "start_line": 81, + "end_line": 123, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "LAYER": "Infrastructure", + "POST": "Admin пользователь создан в БД (если ещё не существовал).", + "PRE": "INITIAL_ADMIN_CREATE=true, INITIAL_ADMIN_USERNAME и INITIAL_ADMIN_PASSWORD заданы.", + "PURPOSE": "Создание admin пользователя из переменных окружения (идемпотентно)." + }, + "relations": [], + "schema_warnings": [ + { + "code": "tag_not_for_contract_type", + "tag": "LAYER", + "message": "@LAYER is not allowed for contract type 'Function'", + "detail": { + "actual_type": "Function", + "allowed_types": [ + "Module", + "Skill", + "Agent" + ] + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "LAYER", + "message": "@LAYER is forbidden for contract type 'Function' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Function" + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C2", + "detail": { + "actual_complexity": 2, "contract_type": "Function" } }, { "code": "tag_forbidden_by_complexity", "tag": "PRE", - "message": "@PRE is forbidden for contract type 'Function' at C1", + "message": "@PRE is forbidden for contract type 'Function' at C2", "detail": { - "actual_complexity": 1, + "actual_complexity": 2, "contract_type": "Function" } - }, - { - "code": "def_format_deprecated", - "tag": "FORMAT", - "message": "Contract 'docker.backend.entrypoint.bootstrap_admin' uses legacy [DEF:] format. Consider migrating to #region/#endregion for new code. Use axiom_contract_refactor with operation='migrate_def_to_region' to auto-convert.", - "detail": { - "current_format": "def", - "migration_hint": "Use axiom_contract_refactor operation=migrate_def_to_region", - "recommended_format": "region" - } } ], - "anchor_syntax": "def", + "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# [DEF:docker.backend.entrypoint.bootstrap_admin:Function]\n# @PURPOSE: Execute optional initial admin bootstrap from runtime environment variables.\n# @PRE: Python runtime and backend sources are available inside /app/backend.\n# @POST: Admin is created only when INITIAL_ADMIN_CREATE=true and required credentials are present.\nbootstrap_admin() {\n local create_flag=\"${INITIAL_ADMIN_CREATE:-false}\"\n local username=\"${INITIAL_ADMIN_USERNAME:-}\"\n local password=\"${INITIAL_ADMIN_PASSWORD:-}\"\n local email=\"${INITIAL_ADMIN_EMAIL:-}\"\n\n case \"${create_flag,,}\" in\n true|1|yes|y)\n ;;\n *)\n echo \"[entrypoint] INITIAL_ADMIN_CREATE is disabled; skipping admin bootstrap\"\n return 0\n ;;\n esac\n\n if [[ -z \"${username}\" ]]; then\n echo \"[entrypoint] INITIAL_ADMIN_USERNAME is required when INITIAL_ADMIN_CREATE=true\" >&2\n return 1\n fi\n\n if [[ -z \"${password}\" ]]; then\n echo \"[entrypoint] INITIAL_ADMIN_PASSWORD is required when INITIAL_ADMIN_CREATE=true\" >&2\n return 1\n fi\n\n echo \"[entrypoint] initializing auth database\"\n python3 src/scripts/init_auth_db.py\n\n echo \"[entrypoint] running idempotent admin bootstrap for user '${username}'\"\n if [[ -n \"${email}\" ]]; then\n python3 src/scripts/create_admin.py --username \"${username}\" --password \"${password}\" --email \"${email}\"\n else\n python3 src/scripts/create_admin.py --username \"${username}\" --password \"${password}\"\n fi\n}\n# [/DEF:docker.backend.entrypoint.bootstrap_admin:Function]\n" + "body": "# #region docker.backend.entrypoint.bootstrap_admin [C:2] [TYPE Function]\n# @BRIEF Создание admin пользователя из переменных окружения (идемпотентно).\n# @PRE INITIAL_ADMIN_CREATE=true, INITIAL_ADMIN_USERNAME и INITIAL_ADMIN_PASSWORD заданы.\n# @POST Admin пользователь создан в БД (если ещё не существовал).\n# @LAYER Infrastructure\nbootstrap_admin() {\n local create_flag=\"${INITIAL_ADMIN_CREATE:-false}\"\n local username=\"${INITIAL_ADMIN_USERNAME:-}\"\n local password=\"${INITIAL_ADMIN_PASSWORD:-}\"\n local email=\"${INITIAL_ADMIN_EMAIL:-}\"\n\n case \"${create_flag,,}\" in\n true|1|yes|y)\n ;;\n *)\n echo \"[entrypoint] INITIAL_ADMIN_CREATE disabled — пропускаем bootstrap admin\"\n return 0\n ;;\n esac\n\n if [[ -z \"${username}\" ]]; then\n echo \"[entrypoint] INITIAL_ADMIN_USERNAME required when INITIAL_ADMIN_CREATE=true\" >&2\n return 1\n fi\n\n if [[ -z \"${password}\" ]]; then\n echo \"[entrypoint] INITIAL_ADMIN_PASSWORD required when INITIAL_ADMIN_CREATE=true\" >&2\n return 1\n fi\n\n echo \"[entrypoint] Initializing auth database...\"\n python3 src/scripts/init_auth_db.py\n\n echo \"[entrypoint] Creating admin user '${username}' (idempotent)...\"\n if [[ -n \"${email}\" ]]; then\n python3 src/scripts/create_admin.py --username \"${username}\" --password \"${password}\" --email \"${email}\"\n else\n python3 src/scripts/create_admin.py --username \"${username}\" --password \"${password}\"\n fi\n\n echo \"[entrypoint] ✅ Admin bootstrap complete\"\n}\n# #endregion docker.backend.entrypoint.bootstrap_admin\n" }, { "contract_id": "docker.backend.entrypoint.install_playwright", "contract_type": "Function", "file_path": "docker/backend.entrypoint.sh", - "start_line": 54, - "end_line": 72, + "start_line": 128, + "end_line": 145, "tier": "TIER_1", - "complexity": 1, + "complexity": 2, "metadata": { - "PURPOSE": "Lazily install Playwright Chromium browser on first container start." + "COMPLEXITY": 2, + "LAYER": "Infrastructure", + "POST": "Chromium установлен в PLAYWRIGHT_BROWSERS_PATH.", + "PRE": "~/.cache/ms-playwright доступен (можно закешировать volume).", + "PURPOSE": "Lazy установка Playwright Chromium (~377 MB) при первом запуске." }, "relations": [], "schema_warnings": [ { - "code": "def_format_deprecated", - "tag": "FORMAT", - "message": "Contract 'docker.backend.entrypoint.install_playwright' uses legacy [DEF:] format. Consider migrating to #region/#endregion for new code. Use axiom_contract_refactor with operation='migrate_def_to_region' to auto-convert.", + "code": "tag_not_for_contract_type", + "tag": "LAYER", + "message": "@LAYER is not allowed for contract type 'Function'", "detail": { - "current_format": "def", - "migration_hint": "Use axiom_contract_refactor operation=migrate_def_to_region", - "recommended_format": "region" + "actual_type": "Function", + "allowed_types": [ + "Module", + "Skill", + "Agent" + ] + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "LAYER", + "message": "@LAYER is forbidden for contract type 'Function' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Function" + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Function" + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Function" } } ], - "anchor_syntax": "def", + "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "# [DEF:docker.backend.entrypoint.install_playwright:Function]\n# @PURPOSE: Lazily install Playwright Chromium browser on first container start.\n# Browser binaries (~377 MB) are downloaded only once and cached in\n# PLAYWRIGHT_BROWSERS_PATH (default: ~/.cache/ms-playwright).\n# Use a Docker volume or bind mount to persist across restarts:\n# -v playwright_cache:/root/.cache/ms-playwright\ninstall_playwright() {\n local pw_dir=\"${PLAYWRIGHT_BROWSERS_PATH:-$HOME/.cache/ms-playwright}\"\n if [ -f \"${pw_dir}/chromium-*/chrome-linux64/chrome\" ]; then\n echo \"[entrypoint] Playwright Chromium already installed at ${pw_dir}\"\n return 0\n fi\n echo \"[entrypoint] Installing Playwright Chromium browser (first start only)...\"\n echo \"[entrypoint] This downloads ~377 MB. Use a volume to cache:\"\n echo \" -v playwright_cache:/root/.cache/ms-playwright\"\n python3 -m playwright install chromium --with-deps 2>&1\n echo \"[entrypoint] Playwright Chromium installed successfully\"\n}\n# [/DEF:docker.backend.entrypoint.install_playwright:Function]\n" + "body": "# #region docker.backend.entrypoint.install_playwright [C:2] [TYPE Function]\n# @BRIEF Lazy установка Playwright Chromium (~377 MB) при первом запуске.\n# @PRE ~/.cache/ms-playwright доступен (можно закешировать volume).\n# @POST Chromium установлен в PLAYWRIGHT_BROWSERS_PATH.\n# @LAYER Infrastructure\ninstall_playwright() {\n local pw_dir=\"${PLAYWRIGHT_BROWSERS_PATH:-$HOME/.cache/ms-playwright}\"\n if ls \"${pw_dir}\"/chromium-*/chrome-linux64/chrome 1>/dev/null 2>&1; then\n echo \"[entrypoint] Playwright Chromium already installed at ${pw_dir}\"\n return 0\n fi\n\n echo \"[entrypoint] Installing Playwright Chromium (first start only, ~377 MB)...\"\n echo \"[entrypoint] Cache with: -v playwright_cache:/root/.cache/ms-playwright\"\n python3 -m playwright install chromium --with-deps 2>&1\n echo \"[entrypoint] ✅ Playwright Chromium installed\"\n}\n# #endregion docker.backend.entrypoint.install_playwright\n" + }, + { + "contract_id": "docker.frontend.Dockerfile", + "contract_type": "Module", + "file_path": "docker/frontend.Dockerfile", + "start_line": 1, + "end_line": 10, + "tier": "TIER_2", + "complexity": 3, + "metadata": { + "COMPLEXITY": 3, + "LAYER": "Infrastructure", + "POST": "nginx:alpine образ со статикой SvelteKit, entrypoint для выбора HTTP/SSL конфига.", + "PRE": "Docker builder context — корень проекта. frontend/ и docker/ доступны.", + "PURPOSE": "Frontend Dockerfile — сборка SvelteKit (node:20) + nginx runtime с опциональным SSL." + }, + "relations": [ + { + "source_id": "docker.frontend.Dockerfile", + "relation_type": "DEPENDS_ON", + "target_id": "docker/nginx.conf", + "target_ref": "[docker/nginx.conf]" + }, + { + "source_id": "docker.frontend.Dockerfile", + "relation_type": "DEPENDS_ON", + "target_id": "docker/nginx.ssl.conf", + "target_ref": "[docker/nginx.ssl.conf]" + }, + { + "source_id": "docker.frontend.Dockerfile", + "relation_type": "DEPENDS_ON", + "target_id": "docker/frontend.entrypoint.sh", + "target_ref": "[docker/frontend.entrypoint.sh]" + }, + { + "source_id": "docker.frontend.Dockerfile", + "relation_type": "DEPENDS_ON", + "target_id": "frontend/package.json", + "target_ref": "[frontend/package.json]" + } + ], + "schema_warnings": [ + { + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Module' at C3", + "detail": { + "actual_complexity": 3, + "contract_type": "Module" + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Module' at C3", + "detail": { + "actual_complexity": 3, + "contract_type": "Module" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region docker.frontend.Dockerfile [C:3] [TYPE Module] [SEMANTICS docker,frontend,build,nginx,ssl]\n# @BRIEF Frontend Dockerfile — сборка SvelteKit (node:20) + nginx runtime с опциональным SSL.\n# @LAYER Infrastructure\n# @RELATION DEPENDS_ON -> [docker/nginx.conf]\n# @RELATION DEPENDS_ON -> [docker/nginx.ssl.conf]\n# @RELATION DEPENDS_ON -> [docker/frontend.entrypoint.sh]\n# @RELATION DEPENDS_ON -> [frontend/package.json]\n# @PRE Docker builder context — корень проекта. frontend/ и docker/ доступны.\n# @POST nginx:alpine образ со статикой SvelteKit, entrypoint для выбора HTTP/SSL конфига.\n# #endregion docker.frontend.Dockerfile\n" + }, + { + "contract_id": "docker.frontend.entrypoint", + "contract_type": "Module", + "file_path": "docker/frontend.entrypoint.sh", + "start_line": 4, + "end_line": 16, + "tier": "TIER_2", + "complexity": 3, + "metadata": { + "COMPLEXITY": 3, + "PURPOSE": "Entrypoint для nginx-контейнера — установка корп. CA-сертификатов в Alpine," + }, + "relations": [], + "schema_warnings": [ + { + "code": "missing_required_tag", + "tag": "RELATION", + "message": "@RELATION is required for contract type 'Module' at C3", + "detail": { + "actual_complexity": 3, + "contract_type": "Module" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region docker.frontend.entrypoint [C:3] [TYPE Module] [SEMANTICS docker,nginx,entrypoint,certs,ssl]\n# @BRIEF Entrypoint для nginx-контейнера — установка корп. CA-сертификатов в Alpine,\n# авто-выбор HTTP или SSL конфига в зависимости от наличия server.crt + server.key.\n# @PRE /opt/certs смонтирован (может быть пуст). Системные пакеты: ca-certificates, openssl.\n# @POST Если найдены server.crt + server.key — активирован SSL конфиг.\n# CA-сертификаты из /opt/certs установлены в системное хранилище Alpine.\n# @SIDE_EFFECT Модифицирует /usr/local/share/ca-certificates/; перезаписывает nginx конфиг.\n# @LAYER Infrastructure\n# @RELATION DEPENDS_ON -> [docker/nginx.conf]\n# @RELATION DEPENDS_ON -> [docker/nginx.ssl.conf]\n# @INVARIANT Порт 80 всегда активен (HTTP или редирект на HTTPS).\n# @INVARIANT Если нет server.crt — используется HTTP-only конфиг.\n# #endregion docker.frontend.entrypoint\n" + }, + { + "contract_id": "docker.frontend.entrypoint.install_ca_certificates", + "contract_type": "Function", + "file_path": "docker/frontend.entrypoint.sh", + "start_line": 21, + "end_line": 52, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "POST": "Сертификаты скопированы в /usr/local/share/ca-certificates/ и добавлены в trust.", + "PRE": "/opt/certs может быть пуст или не существовать.", + "PURPOSE": "Устанавливает .crt файлы из /opt/certs в системное хранилище Alpine." + }, + "relations": [], + "schema_warnings": [ + { + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Function" + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Function" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region docker.frontend.entrypoint.install_ca_certificates [C:2] [TYPE Function]\n# @BRIEF Устанавливает .crt файлы из /opt/certs в системное хранилище Alpine.\n# @PRE /opt/certs может быть пуст или не существовать.\n# @POST Сертификаты скопированы в /usr/local/share/ca-certificates/ и добавлены в trust.\ninstall_ca_certificates() {\n local certs_dir=\"${CERTS_PATH:-/opt/certs}\"\n\n if [ ! -d \"$certs_dir\" ]; then\n echo \"[entrypoint] CERTS_PATH=${certs_dir} не существует — пропускаем CA-сертификаты\"\n return 0\n fi\n\n local count=0\n for cert in \"$certs_dir\"/*.crt \"$certs_dir\"/*.pem; do\n [ -f \"$cert\" ] || continue\n # Не копируем server.crt — он для nginx, не для CA\n case \"$(basename \"$cert\")\" in\n server.crt|server.key) continue ;;\n esac\n cp -v \"$cert\" /usr/local/share/ca-certificates/ 2>&1 | sed 's/^/[entrypoint] /'\n count=$((count + 1))\n done\n\n if [ \"$count\" -gt 0 ]; then\n echo \"[entrypoint] Обновляем CA-сертификаты Alpine...\"\n update-ca-certificates 2>&1 | sed 's/^/[entrypoint] /'\n echo \"[entrypoint] ✅ Установлено ${count} корпоративных CA-сертификатов\"\n else\n echo \"[entrypoint] Нет CA-сертификатов для установки\"\n fi\n}\n# #endregion docker.frontend.entrypoint.install_ca_certificates\n" + }, + { + "contract_id": "docker.frontend.entrypoint.select_nginx_config", + "contract_type": "Function", + "file_path": "docker/frontend.entrypoint.sh", + "start_line": 57, + "end_line": 88, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "POST": "Если есть оба файла — /etc/nginx/ssl/ создан, server.crt/key скопированы,", + "PRE": "/opt/certs/server.crt и /opt/certs/server.key — опциональные SSL-сертификаты.", + "PURPOSE": "Определяет, есть ли сертификаты для SSL, и копирует нужный nginx конфиг." + }, + "relations": [], + "schema_warnings": [ + { + "code": "tag_forbidden_by_complexity", + "tag": "POST", + "message": "@POST is forbidden for contract type 'Function' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Function" + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "PRE", + "message": "@PRE is forbidden for contract type 'Function' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Function" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region docker.frontend.entrypoint.select_nginx_config [C:2] [TYPE Function]\n# @BRIEF Определяет, есть ли сертификаты для SSL, и копирует нужный nginx конфиг.\n# @PRE /opt/certs/server.crt и /opt/certs/server.key — опциональные SSL-сертификаты.\n# @POST Если есть оба файла — /etc/nginx/ssl/ создан, server.crt/key скопированы,\n# используется nginx.ssl.conf. Иначе — nginx.conf (HTTP-only).\nselect_nginx_config() {\n local certs_dir=\"${CERTS_PATH:-/opt/certs}\"\n local ssl_cert=\"${certs_dir}/server.crt\"\n local ssl_key=\"${certs_dir}/server.key\"\n local ssl_dir=\"/etc/nginx/ssl\"\n\n if [ -f \"$ssl_cert\" ] && [ -f \"$ssl_key\" ]; then\n echo \"[entrypoint] Найдены SSL-сертификаты — включаем HTTPS\"\n\n mkdir -p \"$ssl_dir\"\n cp \"$ssl_cert\" \"${ssl_dir}/server.crt\"\n cp \"$ssl_key\" \"${ssl_dir}/server.key\"\n\n # Копируем SSL-конфиг nginx\n cp /docker/nginx.ssl.conf /etc/nginx/conf.d/default.conf\n\n echo \"[entrypoint] ✅ SSL терминация активирована на порту 443\"\n else\n echo \"[entrypoint] SSL-сертификаты не найдены — используем HTTP-only режим\"\n echo \"[entrypoint] Чтобы включить HTTPS, положите в ${certs_dir}:\"\n echo \"[entrypoint] server.crt — SSL сертификат\"\n echo \"[entrypoint] server.key — приватный ключ\"\n\n cp /docker/nginx.conf /etc/nginx/conf.d/default.conf\n fi\n}\n# #endregion docker.frontend.entrypoint.select_nginx_config\n" + }, + { + "contract_id": "docker.nginx.ssl.conf", + "contract_type": "Module", + "file_path": "docker/nginx.ssl.conf", + "start_line": 1, + "end_line": 14, + "tier": "TIER_2", + "complexity": 3, + "metadata": { + "COMPLEXITY": 3, + "PURPOSE": "Nginx config с опциональным SSL — HTTP (порт 80) + HTTPS (порт 443)." + }, + "relations": [], + "schema_warnings": [ + { + "code": "missing_required_tag", + "tag": "RELATION", + "message": "@RELATION is required for contract type 'Module' at C3", + "detail": { + "actual_complexity": 3, + "contract_type": "Module" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "# #region docker.nginx.ssl.conf [C:3] [TYPE Module] [SEMANTICS nginx,ssl,https,enterprise]\n# @BRIEF Nginx config с опциональным SSL — HTTP (порт 80) + HTTPS (порт 443).\n# Используется frontend.entrypoint.sh, если найдены server.crt + server.key.\n# @PRE SSL сертификаты: /etc/nginx/ssl/server.crt и /etc/nginx/ssl/server.key.\n# Внутренний Docker DNS: backend:8000 для API/WS прокси.\n# @POST HTTP (80) редиректит на HTTPS (443) если SSL включён.\n# HTTPS (443) сервит статику + прокси /api/ и /ws/ на backend.\n# @LAYER Infrastructure\n# @RELATION DEPENDS_ON -> [docker/frontend.entrypoint.sh]\n# @RELATION DEPENDS_ON -> [docker/nginx.conf]\n# @INVARIANT Порт 80 всегда открыт (fallback для HTTP-only окружений).\n# @INVARIANT /api/ и /ws/ проксируются на http://backend:8000 (без TLS внутри compose-сети).\n# @REJECTED Прокси на HTTPS внутри compose-сети отвергнут — избыточно.\n# #endregion docker.nginx.ssl.conf\n" }, { "contract_id": "AuthFixture", @@ -79662,15 +74706,6 @@ "actual_complexity": 2, "contract_type": "Module" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -79819,17 +74854,7 @@ "target_ref": "[GlobalSetup]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region ApiHelper [C:2] [TYPE Module] [SEMANTICS e2e, api, helper, auth]\n// @BRIEF Helper for backend API calls in E2E tests (settings CRUD, etc.)\n// @RELATION DEPENDS_ON -> [GlobalSetup]\n\nconst BACKEND_URL = process.env.BACKEND_URL || 'http://127.0.0.1:8101';\n\n/**\n * Get auth token from env (set during global-setup).\n */\nfunction getToken() {\n\treturn process.env.E2E_TOKEN;\n}\n\n/**\n * Make an authenticated GET request to the backend API.\n */\nexport async function apiGet(path) {\n\tconst token = getToken();\n\tconst res = await fetch(`${BACKEND_URL}${path}`, {\n\t\theaders: {\n\t\t\t'Authorization': `Bearer ${token}`,\n\t\t\t'Content-Type': 'application/json',\n\t\t},\n\t});\n\tif (!res.ok) {\n\t\tconst body = await res.text().catch(() => '');\n\t\tthrow new Error(`GET ${path} → ${res.status}: ${body.slice(0, 200)}`);\n\t}\n\treturn res.json();\n}\n\n/**\n * Make an authenticated POST request to the backend API.\n */\nexport async function apiPost(path, body = {}) {\n\tconst token = getToken();\n\tconst res = await fetch(`${BACKEND_URL}${path}`, {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\t'Authorization': `Bearer ${token}`,\n\t\t\t'Content-Type': 'application/json',\n\t\t},\n\t\tbody: JSON.stringify(body),\n\t});\n\tif (!res.ok) {\n\t\tconst text = await res.text().catch(() => '');\n\t\tthrow new Error(`POST ${path} → ${res.status}: ${text.slice(0, 200)}`);\n\t}\n\treturn res.status === 204 ? null : res.json();\n}\n\n/**\n * Make an authenticated PUT request to the backend API.\n */\nexport async function apiPut(path, body = {}) {\n\tconst token = getToken();\n\tconst res = await fetch(`${BACKEND_URL}${path}`, {\n\t\tmethod: 'PUT',\n\t\theaders: {\n\t\t\t'Authorization': `Bearer ${token}`,\n\t\t\t'Content-Type': 'application/json',\n\t\t},\n\t\tbody: JSON.stringify(body),\n\t});\n\tif (!res.ok) {\n\t\tconst text = await res.text().catch(() => '');\n\t\tthrow new Error(`PUT ${path} → ${res.status}: ${text.slice(0, 200)}`);\n\t}\n\treturn res.json();\n}\n\n/**\n * Make an authenticated DELETE request to the backend API.\n */\nexport async function apiDelete(path) {\n\tconst token = getToken();\n\tconst res = await fetch(`${BACKEND_URL}${path}`, {\n\t\tmethod: 'DELETE',\n\t\theaders: {\n\t\t\t'Authorization': `Bearer ${token}`,\n\t\t},\n\t});\n\tif (!res.ok && res.status !== 204) {\n\t\tconst text = await res.text().catch(() => '');\n\t\tthrow new Error(`DELETE ${path} → ${res.status}: ${text.slice(0, 200)}`);\n\t}\n\treturn res.status === 204 ? null : res.json();\n}\n// #endregion ApiHelper\n" @@ -80856,6 +75881,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -80996,15 +76023,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -81053,6 +76071,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -81229,6 +76249,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -81320,6 +76342,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -81982,6 +77006,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -82163,6 +77189,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -82267,15 +77295,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -82306,6 +77325,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -82651,6 +77672,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -82705,15 +77728,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -82754,29 +77768,6 @@ "value": "UI (Tests)" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_FIXTURE", @@ -82796,15 +77787,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -83819,40 +78801,7 @@ "target_ref": "[GitManager]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region GitManagerUnfinishedMergeIntegrationTest:Module [TYPE Function]\n// @SEMANTICS: git-manager, unfinished-merge, dialog, integration-test\n// @PURPOSE: Protect unresolved-merge dialog contract in GitManager pull flow.\n// @RELATION: DEPENDS_ON -> [GitManager]\n\nimport { describe, it, expect } from 'vitest';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst MANAGER_PATH = path.resolve(process.cwd(), 'src/components/git/GitManager.svelte');\nconst UTILS_PATH = path.resolve(process.cwd(), 'src/services/git-utils.js');\nconst HANDLER_PATH = path.resolve(process.cwd(), 'src/components/git/useGitManager.js');\nconst DIALOG_PATH = path.resolve(process.cwd(), 'src/components/git/GitMergeDialog.svelte');\n\ndescribe('GitManager unfinished merge dialog contract', () => {\n it('keeps 409 unfinished-merge detection and WebUI dialog recovery flow in pull handler', () => {\n const utils = fs.readFileSync(UTILS_PATH, 'utf-8');\n const handlers = fs.readFileSync(HANDLER_PATH, 'utf-8');\n const manager = fs.readFileSync(MANAGER_PATH, 'utf-8');\n\n expect(utils).toContain(\"error_code !== 'GIT_UNFINISHED_MERGE'\");\n expect(handlers).toContain('showUnfinishedMergeDialog: true');\n expect(handlers).toContain('this.openUnfinishedMergeDialogFromError(e)');\n expect(handlers).toContain('await this.loadMergeRecoveryState();');\n expect(manager).toContain('h.handlePull');\n expect(manager).toContain('h.loadMergeRecoveryState');\n });\n\n it('renders unresolved-merge dialog details and web recovery actions', () => {\n const source = fs.readFileSync(DIALOG_PATH, 'utf-8');\n\n expect(source).toContain('{#if show && unfinishedMergeContext}');\n expect(source).toContain('unfinishedMergeContext.repositoryPath');\n expect(source).toContain('unfinishedMergeContext.currentBranch');\n expect(source).toContain('unfinishedMergeContext.commands.join');\n expect(source).toContain('onCopyCommands');\n expect(source).toContain('onOpenConflictResolver');\n expect(source).toContain('onAbortMerge');\n expect(source).toContain('onContinueMerge');\n expect(source).toContain('$t.git?.unfinished_merge?.copy_commands');\n });\n});\n// #endregion GitManagerUnfinishedMergeIntegrationTest:Module\n" @@ -84112,15 +79061,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -84444,6 +79384,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -84558,6 +79500,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -84615,15 +79559,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -84654,6 +79589,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -84718,15 +79655,6 @@ "actual_complexity": 2, "contract_type": "Component" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -84790,6 +79718,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -85019,6 +79949,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -85311,15 +80243,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -85359,38 +80282,6 @@ ], "value": "Infra (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -85565,15 +80456,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -85613,38 +80495,6 @@ ], "value": "Infra-API" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -86009,38 +80859,6 @@ ], "value": "Infra-API" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -86334,15 +81152,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -86401,29 +81210,6 @@ "contract_type": "Function" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_forbidden_by_complexity", "tag": "SIDE_EFFECT", @@ -86432,15 +81218,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -86605,7 +81382,7 @@ "contract_type": "Module", "file_path": "frontend/src/lib/api/translate.js", "start_line": 1, - "end_line": 28, + "end_line": 31, "tier": "TIER_1", "complexity": 2, "metadata": { @@ -86646,11 +81423,90 @@ "target_ref": "[TranslateCorrectionsApi]" } ], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "// #region TranslateApi [C:2] [TYPE Module] [SEMANTICS translate, api, barrel]\n// @BRIEF Barrel module re-exporting all translate API functions from domain-split modules.\n// @RELATION DEPENDS_ON -> [TranslateJobsApi]\n// @RELATION DEPENDS_ON -> [TranslateRunsApi]\n// @RELATION DEPENDS_ON -> [TranslateDictionariesApi]\n// @RELATION DEPENDS_ON -> [TranslateSchedulesApi]\n// @RELATION DEPENDS_ON -> [TranslateCorrectionsApi]\n// @RATIONALE Decomposed from 664->~30 lines by splitting into domain modules per INV_7.\n// @REJECTED Keeping all APIs in one file was rejected because it exceeded the 400-line module limit.\n\n// Jobs\nexport { fetchJobs, createJob, updateJob, deleteJob, duplicateJob } from './translate/jobs.js';\n\n// Datasources & preview\nexport { fetchDatasourceColumns, fetchDatasources, fetchPreview, approveRow, editRow, rejectRow, acceptPreview, fetchPreviewRecords } from './translate/datasources.js';\n\n// Runs\nexport { triggerRun, fetchRunStatus, fetchRunHistory, fetchRunRecords, retryFailedBatches, retryInsert, cancelRun, fetchRunBatches, fetchAllRuns, fetchRunDetail, fetchJobMetrics, fetchAllMetrics } from './translate/runs.js';\n\n// Dictionaries\nexport { dictionaryApi } from './translate/dictionaries.js';\n\n// Schedules\nexport { fetchSchedule, setSchedule, deleteSchedule, enableSchedule, disableSchedule, fetchNextExecutions } from './translate/schedules.js';\n\n// Corrections & bulk replace\nexport { submitCorrection, submitBulkCorrections, inlineEditCorrection, submitCorrectionToDict, bulkFindReplace, bulkReplacePreview, downloadSkippedCsv } from './translate/corrections.js';\n\n// Target schema validation\nexport { checkTargetTableSchema } from './translate/target-schema.js';\n// #endregion TranslateApi\n" + }, + { + "contract_id": "TargetSchemaApiTest", + "contract_type": "Module", + "file_path": "frontend/src/lib/api/translate/__tests__/test-target-schema.test.js", + "start_line": 1, + "end_line": 109, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "LAYER": "Test", + "PURPOSE": "Unit tests for checkTargetTableSchema API client fetch wrapper.", + "TEST_CONTRACT": "checkTargetTableSchema -> returns schema validation result with all fields", + "TEST_EDGE": "success_response -> Returns parsed response with all fields" + }, + "relations": [ + { + "source_id": "TargetSchemaApiTest", + "relation_type": "BINDS_TO", + "target_id": "TranslateTargetSchemaApi", + "target_ref": "[TranslateTargetSchemaApi]" + } + ], "schema_warnings": [ + { + "code": "invalid_enum_value", + "tag": "LAYER", + "message": "@LAYER value 'Test' is not in allowed enum", + "detail": { + "allowed": [ + "Core", + "Domain", + "API", + "UI", + "Service", + "Infrastructure", + "Plugin", + "Tests" + ], + "value": "Test" + } + }, + { + "code": "tag_not_for_contract_type", + "tag": "TEST_CONTRACT", + "message": "@TEST_CONTRACT is not allowed for contract type 'Module'", + "detail": { + "actual_type": "Module", + "allowed_types": [ + "Function", + "Block" + ] + } + }, { "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", + "tag": "TEST_CONTRACT", + "message": "@TEST_CONTRACT is forbidden for contract type 'Module' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Module" + } + }, + { + "code": "tag_not_for_contract_type", + "tag": "TEST_EDGE", + "message": "@TEST_EDGE is not allowed for contract type 'Module'", + "detail": { + "actual_type": "Module", + "allowed_types": [ + "Function", + "Block" + ] + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "TEST_EDGE", + "message": "@TEST_EDGE is forbidden for contract type 'Module' at C2", "detail": { "actual_complexity": 2, "contract_type": "Module" @@ -86659,7 +81515,58 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "// #region TranslateApi [C:2] [TYPE Module] [SEMANTICS translate, api, barrel]\n// @BRIEF Barrel module re-exporting all translate API functions from domain-split modules.\n// @RELATION DEPENDS_ON -> [TranslateJobsApi]\n// @RELATION DEPENDS_ON -> [TranslateRunsApi]\n// @RELATION DEPENDS_ON -> [TranslateDictionariesApi]\n// @RELATION DEPENDS_ON -> [TranslateSchedulesApi]\n// @RELATION DEPENDS_ON -> [TranslateCorrectionsApi]\n// @RATIONALE Decomposed from 664->~30 lines by splitting into domain modules per INV_7.\n// @REJECTED Keeping all APIs in one file was rejected because it exceeded the 400-line module limit.\n\n// Jobs\nexport { fetchJobs, createJob, updateJob, deleteJob, duplicateJob } from './translate/jobs.js';\n\n// Datasources & preview\nexport { fetchDatasourceColumns, fetchDatasources, fetchPreview, approveRow, editRow, rejectRow, acceptPreview, fetchPreviewRecords } from './translate/datasources.js';\n\n// Runs\nexport { triggerRun, fetchRunStatus, fetchRunHistory, fetchRunRecords, retryFailedBatches, retryInsert, cancelRun, fetchRunBatches, fetchAllRuns, fetchRunDetail, fetchJobMetrics, fetchAllMetrics } from './translate/runs.js';\n\n// Dictionaries\nexport { dictionaryApi } from './translate/dictionaries.js';\n\n// Schedules\nexport { fetchSchedule, setSchedule, deleteSchedule, enableSchedule, disableSchedule, fetchNextExecutions } from './translate/schedules.js';\n\n// Corrections & bulk replace\nexport { submitCorrection, submitBulkCorrections, inlineEditCorrection, submitCorrectionToDict, bulkFindReplace, bulkReplacePreview, downloadSkippedCsv } from './translate/corrections.js';\n// #endregion TranslateApi\n" + "body": "// #region TargetSchemaApiTest [C:2] [TYPE Module] [SEMANTICS test, translate, target-schema, api]\n// @BRIEF Unit tests for checkTargetTableSchema API client fetch wrapper.\n// @LAYER Test\n// @RELATION BINDS_TO -> [TranslateTargetSchemaApi]\n// @TEST_CONTRACT: checkTargetTableSchema -> returns schema validation result with all fields\n// @TEST_EDGE: api_error -> Returns fallback response with error message\n// @TEST_EDGE: success_response -> Returns parsed response with all fields\n\nimport { describe, it, expect, vi, beforeEach } from 'vitest';\n\nvi.mock('$lib/api.js', () => ({\n\tapi: {\n\t\tpostApi: vi.fn(),\n\t},\n}));\n\ndescribe('checkTargetTableSchema', () => {\n\tbeforeEach(() => {\n\t\tvi.clearAllMocks();\n\t});\n\n\t// #region test_success [TYPE Function]\n\t// @PURPOSE: Happy path — API returns full validation result.\n\tit('returns result with all fields on success', async () => {\n\t\tconst { api } = await import('$lib/api.js');\n\t\tapi.postApi.mockResolvedValue({\n\t\t\ttable_exists: true,\n\t\t\terror: null,\n\t\t\texpected_columns: [\n\t\t\t\t{ name: 'id', data_type: 'integer', is_nullable: true },\n\t\t\t\t{ name: 'name', data_type: 'text', is_nullable: true },\n\t\t\t],\n\t\t\tactual_columns: [\n\t\t\t\t{ name: 'id', data_type: 'integer', is_nullable: true },\n\t\t\t\t{ name: 'name', data_type: 'text', is_nullable: true },\n\t\t\t],\n\t\t\tmissing_columns: [],\n\t\t\textra_columns: [],\n\t\t\tall_present: true,\n\t\t});\n\n\t\tconst { checkTargetTableSchema } = await import(\n\t\t\t'$lib/api/translate/target-schema.js'\n\t\t);\n\t\tconst result = await checkTargetTableSchema({\n\t\t\tenvironment_id: 'env-1',\n\t\t\ttarget_database_id: 'db-1',\n\t\t\ttarget_table: 'my_table',\n\t\t});\n\n\t\texpect(api.postApi).toHaveBeenCalledWith('/translate/check-target-schema', {\n\t\t\tenvironment_id: 'env-1',\n\t\t\ttarget_database_id: 'db-1',\n\t\t\ttarget_table: 'my_table',\n\t\t});\n\t\texpect(result.table_exists).toBe(true);\n\t\texpect(result.all_present).toBe(true);\n\t\texpect(result.error).toBeNull();\n\t\texpect(result.expected_columns).toHaveLength(2);\n\t});\n\n\t// #endregion test_success\n\n\t// #region test_api_error [TYPE Function]\n\t// @PURPOSE: API error returns fallback response with error message.\n\tit('returns fallback response with error on API failure', async () => {\n\t\tconst { api } = await import('$lib/api.js');\n\t\tapi.postApi.mockRejectedValue(new Error('Network error'));\n\n\t\tconst { checkTargetTableSchema } = await import(\n\t\t\t'$lib/api/translate/target-schema.js'\n\t\t);\n\t\tconst result = await checkTargetTableSchema({\n\t\t\tenvironment_id: 'env-1',\n\t\t\ttarget_database_id: 'db-1',\n\t\t\ttarget_table: 'my_table',\n\t\t});\n\n\t\texpect(result.table_exists).toBe(false);\n\t\texpect(result.all_present).toBe(false);\n\t\texpect(result.error).toBe('Network error');\n\t\texpect(result.expected_columns).toEqual([]);\n\t\texpect(result.missing_columns).toEqual([]);\n\t});\n\n\t// #endregion test_api_error\n\n\t// #region test_error_string_fallback [TYPE Function]\n\t// @PURPOSE: String error is captured as message.\n\tit('handles string error value', async () => {\n\t\tconst { api } = await import('$lib/api.js');\n\t\tapi.postApi.mockRejectedValue('Server says no');\n\n\t\tconst { checkTargetTableSchema } = await import(\n\t\t\t'$lib/api/translate/target-schema.js'\n\t\t);\n\t\tconst result = await checkTargetTableSchema({\n\t\t\tenvironment_id: 'env-1',\n\t\t\ttarget_database_id: 'db-1',\n\t\t\ttarget_table: 'my_table',\n\t\t});\n\n\t\texpect(result.error).toBe('Server says no');\n\t\texpect(result.table_exists).toBe(false);\n\t});\n\n\t// #endregion test_error_string_fallback\n});\n// #endregion TargetSchemaApiTest\n" + }, + { + "contract_id": "test_success", + "contract_type": "Function", + "file_path": "frontend/src/lib/api/translate/__tests__/test-target-schema.test.js", + "start_line": 22, + "end_line": 62, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Happy path — API returns full validation result." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_success [TYPE Function]\n\t// @PURPOSE: Happy path — API returns full validation result.\n\tit('returns result with all fields on success', async () => {\n\t\tconst { api } = await import('$lib/api.js');\n\t\tapi.postApi.mockResolvedValue({\n\t\t\ttable_exists: true,\n\t\t\terror: null,\n\t\t\texpected_columns: [\n\t\t\t\t{ name: 'id', data_type: 'integer', is_nullable: true },\n\t\t\t\t{ name: 'name', data_type: 'text', is_nullable: true },\n\t\t\t],\n\t\t\tactual_columns: [\n\t\t\t\t{ name: 'id', data_type: 'integer', is_nullable: true },\n\t\t\t\t{ name: 'name', data_type: 'text', is_nullable: true },\n\t\t\t],\n\t\t\tmissing_columns: [],\n\t\t\textra_columns: [],\n\t\t\tall_present: true,\n\t\t});\n\n\t\tconst { checkTargetTableSchema } = await import(\n\t\t\t'$lib/api/translate/target-schema.js'\n\t\t);\n\t\tconst result = await checkTargetTableSchema({\n\t\t\tenvironment_id: 'env-1',\n\t\t\ttarget_database_id: 'db-1',\n\t\t\ttarget_table: 'my_table',\n\t\t});\n\n\t\texpect(api.postApi).toHaveBeenCalledWith('/translate/check-target-schema', {\n\t\t\tenvironment_id: 'env-1',\n\t\t\ttarget_database_id: 'db-1',\n\t\t\ttarget_table: 'my_table',\n\t\t});\n\t\texpect(result.table_exists).toBe(true);\n\t\texpect(result.all_present).toBe(true);\n\t\texpect(result.error).toBeNull();\n\t\texpect(result.expected_columns).toHaveLength(2);\n\t});\n\n\t// #endregion test_success\n" + }, + { + "contract_id": "test_api_error", + "contract_type": "Function", + "file_path": "frontend/src/lib/api/translate/__tests__/test-target-schema.test.js", + "start_line": 64, + "end_line": 86, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "API error returns fallback response with error message." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_api_error [TYPE Function]\n\t// @PURPOSE: API error returns fallback response with error message.\n\tit('returns fallback response with error on API failure', async () => {\n\t\tconst { api } = await import('$lib/api.js');\n\t\tapi.postApi.mockRejectedValue(new Error('Network error'));\n\n\t\tconst { checkTargetTableSchema } = await import(\n\t\t\t'$lib/api/translate/target-schema.js'\n\t\t);\n\t\tconst result = await checkTargetTableSchema({\n\t\t\tenvironment_id: 'env-1',\n\t\t\ttarget_database_id: 'db-1',\n\t\t\ttarget_table: 'my_table',\n\t\t});\n\n\t\texpect(result.table_exists).toBe(false);\n\t\texpect(result.all_present).toBe(false);\n\t\texpect(result.error).toBe('Network error');\n\t\texpect(result.expected_columns).toEqual([]);\n\t\texpect(result.missing_columns).toEqual([]);\n\t});\n\n\t// #endregion test_api_error\n" + }, + { + "contract_id": "test_error_string_fallback", + "contract_type": "Function", + "file_path": "frontend/src/lib/api/translate/__tests__/test-target-schema.test.js", + "start_line": 88, + "end_line": 107, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "String error is captured as message." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_error_string_fallback [TYPE Function]\n\t// @PURPOSE: String error is captured as message.\n\tit('handles string error value', async () => {\n\t\tconst { api } = await import('$lib/api.js');\n\t\tapi.postApi.mockRejectedValue('Server says no');\n\n\t\tconst { checkTargetTableSchema } = await import(\n\t\t\t'$lib/api/translate/target-schema.js'\n\t\t);\n\t\tconst result = await checkTargetTableSchema({\n\t\t\tenvironment_id: 'env-1',\n\t\t\ttarget_database_id: 'db-1',\n\t\t\ttarget_table: 'my_table',\n\t\t});\n\n\t\texpect(result.error).toBe('Server says no');\n\t\texpect(result.table_exists).toBe(false);\n\t});\n\n\t// #endregion test_error_string_fallback\n" }, { "contract_id": "TranslateCorrectionsApi", @@ -86681,17 +81588,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region TranslateCorrectionsApi [C:2] [TYPE Module] [SEMANTICS translate, corrections, bulk-replace, api]\n// @BRIEF API client for translation corrections — inline edits, dictionary submission, bulk find-and-replace, CSV download.\n// @RELATION DEPENDS_ON -> [ApiModule]\nimport { api } from '$lib/api.js';\n\nfunction normalizeTranslateError(error, defaultMessage = 'Translation API error') {\n\tconst message =\n\t\t(error && typeof error.message === 'string' && error.message) ||\n\t\t(typeof error === 'string' && error) ||\n\t\tdefaultMessage;\n\treturn { message, code: 'TRANSLATE_API_ERROR', retryable: true };\n}\n\nexport async function submitCorrection(payload) {\n\ttry {\n\t\treturn await api.postApi('/translate/corrections', payload);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to submit correction');\n\t}\n}\n\nexport async function submitBulkCorrections(payload) {\n\ttry {\n\t\treturn await api.postApi('/translate/corrections/bulk', payload);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to submit bulk corrections');\n\t}\n}\n\nexport async function inlineEditCorrection(runId, recordId, languageCode, data) {\n\ttry {\n\t\treturn await api.requestApi(\n\t\t\t`/translate/runs/${runId}/records/${recordId}/languages/${languageCode}`,\n\t\t\t'PUT',\n\t\t\tdata\n\t\t);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to apply inline correction');\n\t}\n}\n\nexport async function submitCorrectionToDict(runId, recordId, languageCode, dictId) {\n\ttry {\n\t\treturn await api.requestApi(\n\t\t\t`/translate/runs/${runId}/records/${recordId}/languages/${languageCode}/submit-to-dict`,\n\t\t\t'POST',\n\t\t\t{ dictionary_id: dictId }\n\t\t);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to submit correction to dictionary');\n\t}\n}\n\nexport async function bulkFindReplace(runId, data) {\n\ttry {\n\t\treturn await api.postApi(`/translate/runs/${runId}/bulk-replace`, data);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to perform bulk find-and-replace');\n\t}\n}\n\nexport async function bulkReplacePreview(runId, data) {\n\ttry {\n\t\treturn await api.postApi(`/translate/runs/${runId}/bulk-replace`, { ...data, preview: true });\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to preview bulk find-and-replace');\n\t}\n}\n\nexport async function downloadSkippedCsv(runId) {\n\ttry {\n\t\tconst blob = await api.fetchApiBlob(`/translate/runs/${runId}/skipped.csv`);\n\t\tconst url = URL.createObjectURL(blob);\n\t\tconst a = document.createElement('a');\n\t\ta.href = url;\n\t\ta.download = `skipped-${runId.substring(0, 8)}.csv`;\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\tdocument.body.removeChild(a);\n\t\tURL.revokeObjectURL(url);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to download skipped CSV');\n\t}\n}\n// #endregion TranslateCorrectionsApi\n" @@ -86716,17 +81613,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region TranslateDatasourcesApi [C:2] [TYPE Module] [SEMANTICS translate, datasources, columns, preview, api]\n// @BRIEF API client for translation datasources — column fetching, preview, row-level review actions.\n// @RELATION DEPENDS_ON -> [ApiModule]\nimport { api } from '$lib/api.js';\n\nfunction normalizeTranslateError(error, defaultMessage = 'Translation API error') {\n\tconst message =\n\t\t(error && typeof error.message === 'string' && error.message) ||\n\t\t(typeof error === 'string' && error) ||\n\t\tdefaultMessage;\n\treturn { message, code: 'TRANSLATE_API_ERROR', retryable: true };\n}\n\nexport async function fetchDatasources(envId, search = '') {\n try {\n return await api.fetchApi(\n `/translate/datasources?env_id=${encodeURIComponent(envId)}&search=${encodeURIComponent(search)}`\n );\n } catch (error) {\n throw normalizeTranslateError(error, 'Failed to fetch datasources');\n }\n}\n\nexport async function fetchDatasourceColumns(datasourceId, envId) {\n\ttry {\n\t\treturn await api.fetchApi(\n\t\t\t`/translate/datasources/${datasourceId}/columns?env_id=${encodeURIComponent(envId)}`\n\t\t);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch datasource columns');\n\t}\n}\n\nexport async function fetchPreview(jobId, sampleSize = 10, envId = '') {\n\ttry {\n\t\tconst body = { sample_size: sampleSize };\n\t\tif (envId) body.env_id = envId;\n\t\treturn await api.postApi(`/translate/jobs/${jobId}/preview`, body);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to run preview');\n\t}\n}\n\nexport async function approveRow(jobId, rowKey, languageCode = null) {\n\ttry {\n\t\tconst body = { action: 'approve' };\n\t\tif (languageCode) body.language_code = languageCode;\n\t\treturn await api.requestApi(`/translate/jobs/${jobId}/preview/rows/${rowKey}`, 'PUT', body);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to approve row');\n\t}\n}\n\nexport async function editRow(jobId, rowKey, translation, languageCode = null) {\n\ttry {\n\t\tconst body = { action: 'edit', translation };\n\t\tif (languageCode) body.language_code = languageCode;\n\t\treturn await api.requestApi(`/translate/jobs/${jobId}/preview/rows/${rowKey}`, 'PUT', body);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to edit row');\n\t}\n}\n\nexport async function rejectRow(jobId, rowKey, languageCode = null) {\n\ttry {\n\t\tconst body = { action: 'reject' };\n\t\tif (languageCode) body.language_code = languageCode;\n\t\treturn await api.requestApi(`/translate/jobs/${jobId}/preview/rows/${rowKey}`, 'PUT', body);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to reject row');\n\t}\n}\n\nexport async function acceptPreview(jobId) {\n\ttry {\n\t\treturn await api.postApi(`/translate/jobs/${jobId}/preview/accept`, {});\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to accept preview');\n\t}\n}\n\nexport async function fetchPreviewRecords(sessionId) {\n\ttry {\n\t\treturn await api.fetchApi(`/translate/preview/${sessionId}/records`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch preview records');\n\t}\n}\n// #endregion TranslateDatasourcesApi\n" @@ -86751,17 +81638,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region TranslateDictionariesApi [C:2] [TYPE Module] [SEMANTICS translate, dictionaries, api, crud, entries]\n// @BRIEF API client for translation dictionary CRUD — list, create, update, delete, entries, import.\n// @RELATION DEPENDS_ON -> [ApiModule]\nimport { api } from '$lib/api.js';\n\nfunction normalizeTranslateError(error, defaultMessage = 'Translation API error') {\n\tconst message =\n\t\t(error && typeof error.message === 'string' && error.message) ||\n\t\t(typeof error === 'string' && error) ||\n\t\tdefaultMessage;\n\treturn { message, code: 'TRANSLATE_API_ERROR', retryable: true };\n}\n\nexport const dictionaryApi = {\n\tasync fetchDictionaries(options = {}) {\n\t\ttry {\n\t\t\tconst params = new URLSearchParams();\n\t\t\tif (options.page != null) params.append('page', String(options.page));\n\t\t\tif (options.page_size != null) params.append('page_size', String(options.page_size));\n\t\t\tconst query = params.toString();\n\t\t\treturn await api.fetchApi(`/translate/dictionaries${query ? `?${query}` : ''}`);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to load dictionaries');\n\t\t}\n\t},\n\n\tasync createDictionary(payload) {\n\t\ttry {\n\t\t\treturn await api.postApi('/translate/dictionaries', payload);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to create dictionary');\n\t\t}\n\t},\n\n\tasync getDictionary(dictionaryId) {\n\t\ttry {\n\t\t\treturn await api.fetchApi(`/translate/dictionaries/${dictionaryId}`);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to load dictionary');\n\t\t}\n\t},\n\n\tasync updateDictionary(dictionaryId, payload) {\n\t\ttry {\n\t\t\treturn await api.requestApi(`/translate/dictionaries/${dictionaryId}`, 'PUT', payload);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to update dictionary');\n\t\t}\n\t},\n\n\tasync deleteDictionary(dictionaryId) {\n\t\ttry {\n\t\t\treturn await api.deleteApi(`/translate/dictionaries/${dictionaryId}`);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to delete dictionary');\n\t\t}\n\t},\n\n\tasync fetchEntries(dictionaryId, options = {}) {\n\t\ttry {\n\t\t\tconst params = new URLSearchParams();\n\t\t\tif (options.page != null) params.append('page', String(options.page));\n\t\t\tif (options.page_size != null) params.append('page_size', String(options.page_size));\n\t\t\tconst query = params.toString();\n\t\t\treturn await api.fetchApi(\n\t\t\t\t`/translate/dictionaries/${dictionaryId}/entries${query ? `?${query}` : ''}`\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to load dictionary entries');\n\t\t}\n\t},\n\n\tasync createEntry(dictionaryId, payload) {\n\t\ttry {\n\t\t\treturn await api.postApi(`/translate/dictionaries/${dictionaryId}/entries`, payload);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to create dictionary entry');\n\t\t}\n\t},\n\n\tasync updateEntry(dictionaryId, entryId, payload) {\n\t\ttry {\n\t\t\treturn await api.requestApi(\n\t\t\t\t`/translate/dictionaries/${dictionaryId}/entries/${entryId}`,\n\t\t\t\t'PUT',\n\t\t\t\tpayload\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to update dictionary entry');\n\t\t}\n\t},\n\n\tasync deleteEntry(dictionaryId, entryId) {\n\t\ttry {\n\t\t\treturn await api.deleteApi(`/translate/dictionaries/${dictionaryId}/entries/${entryId}`);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to delete dictionary entry');\n\t\t}\n\t},\n\n\tasync importEntries(dictionaryId, payload) {\n\t\ttry {\n\t\t\treturn await api.postApi(`/translate/dictionaries/${dictionaryId}/import`, payload);\n\t\t} catch (error) {\n\t\t\tthrow normalizeTranslateError(error, 'Failed to import dictionary entries');\n\t\t}\n\t},\n};\n// #endregion TranslateDictionariesApi\n" @@ -86786,17 +81663,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region TranslateJobsApi [C:2] [TYPE Module] [SEMANTICS translate, jobs, api, crud]\n// @BRIEF API client for translation job CRUD — list, create, update, delete, duplicate.\n// @RELATION DEPENDS_ON -> [ApiModule]\nimport { api } from '$lib/api.js';\n\nfunction normalizeTranslateError(error, defaultMessage = 'Translation API error') {\n\tconst message =\n\t\t(error && typeof error.message === 'string' && error.message) ||\n\t\t(typeof error === 'string' && error) ||\n\t\tdefaultMessage;\n\treturn { message, code: 'TRANSLATE_API_ERROR', retryable: true };\n}\n\nexport async function fetchJobs(options = {}) {\n\ttry {\n\t\tconst params = new URLSearchParams();\n\t\tif (options.page != null) params.append('page', String(options.page));\n\t\tif (options.page_size != null) params.append('page_size', String(options.page_size));\n\t\tif (options.status) params.append('status', options.status);\n\t\tconst query = params.toString();\n\t\treturn await api.fetchApi(`/translate/jobs${query ? `?${query}` : ''}`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to load translation jobs');\n\t}\n}\n\nexport async function createJob(payload) {\n\ttry {\n\t\treturn await api.postApi('/translate/jobs', payload);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to create translation job');\n\t}\n}\n\nexport async function updateJob(jobId, payload) {\n\ttry {\n\t\treturn await api.requestApi(`/translate/jobs/${jobId}`, 'PUT', payload);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to update translation job');\n\t}\n}\n\nexport async function deleteJob(jobId) {\n\ttry {\n\t\treturn await api.deleteApi(`/translate/jobs/${jobId}`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to delete translation job');\n\t}\n}\n\nexport async function duplicateJob(jobId) {\n\ttry {\n\t\treturn await api.postApi(`/translate/jobs/${jobId}/duplicate`, {});\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to duplicate translation job');\n\t}\n}\n// #endregion TranslateJobsApi\n" @@ -86821,17 +81688,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region TranslateRunsApi [C:2] [TYPE Module] [SEMANTICS translate, runs, api, control, status]\n// @BRIEF API client for translation run control — trigger, status, history, records, retry, cancel, metrics.\n// @RELATION DEPENDS_ON -> [ApiModule]\nimport { api } from '$lib/api.js';\n\nfunction normalizeTranslateError(error, defaultMessage = 'Translation API error') {\n\tconst message =\n\t\t(error && typeof error.message === 'string' && error.message) ||\n\t\t(typeof error === 'string' && error) ||\n\t\tdefaultMessage;\n\treturn { message, code: 'TRANSLATE_API_ERROR', retryable: true };\n}\n\nexport async function triggerRun(jobId, full = false) {\n\ttry {\n\t\tconst query = full ? '?full_translation=true' : '';\n\t\treturn await api.postApi(`/translate/jobs/${jobId}/run${query}`, {});\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to start translation run');\n\t}\n}\n\nexport async function fetchRunStatus(runId) {\n\ttry {\n\t\treturn await api.fetchApi(`/translate/runs/${runId}`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch run status');\n\t}\n}\n\nexport async function fetchRunHistory(jobId, options = {}) {\n\ttry {\n\t\tconst params = new URLSearchParams();\n\t\tif (options.page != null) params.append('page', String(options.page));\n\t\tif (options.page_size != null) params.append('page_size', String(options.page_size));\n\t\tconst query = params.toString();\n\t\treturn await api.fetchApi(`/translate/jobs/${jobId}/runs${query ? `?${query}` : ''}`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch run history');\n\t}\n}\n\nexport async function fetchRunRecords(runId, options = {}) {\n\ttry {\n\t\tconst params = new URLSearchParams();\n\t\tif (options.page != null) params.append('page', String(options.page));\n\t\tif (options.page_size != null) params.append('page_size', String(options.page_size));\n\t\tif (options.status) params.append('status', options.status);\n\t\tconst query = params.toString();\n\t\treturn await api.fetchApi(`/translate/runs/${runId}/records${query ? `?${query}` : ''}`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch run records');\n\t}\n}\n\nexport async function retryFailedBatches(runId) {\n\ttry {\n\t\treturn await api.postApi(`/translate/runs/${runId}/retry`, {});\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to retry batches');\n\t}\n}\n\nexport async function retryInsert(runId) {\n\ttry {\n\t\treturn await api.postApi(`/translate/runs/${runId}/retry-insert`, {});\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to retry insert');\n\t}\n}\n\nexport async function cancelRun(runId) {\n\ttry {\n\t\treturn await api.postApi(`/translate/runs/${runId}/cancel`, {});\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to cancel run');\n\t}\n}\n\nexport async function fetchRunBatches(runId) {\n\ttry {\n\t\treturn await api.fetchApi(`/translate/runs/${runId}/batches`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch run batches');\n\t}\n}\n\nexport async function fetchAllRuns(options = {}) {\n\ttry {\n\t\tconst params = new URLSearchParams();\n\t\tif (options.page != null) params.append('page', String(options.page));\n\t\tif (options.page_size != null) params.append('page_size', String(options.page_size));\n\t\tif (options.job_id) params.append('job_id', options.job_id);\n\t\tif (options.status) params.append('status', options.status);\n\t\tif (options.trigger_type) params.append('trigger_type', options.trigger_type);\n\t\tif (options.created_by) params.append('created_by', options.created_by);\n\t\tconst query = params.toString();\n\t\treturn await api.fetchApi(`/translate/runs${query ? `?${query}` : ''}`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch runs');\n\t}\n}\n\nexport async function fetchRunDetail(runId) {\n\ttry {\n\t\treturn await api.fetchApi(`/translate/runs/${runId}/detail`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch run detail');\n\t}\n}\n\nexport async function fetchJobMetrics(jobId) {\n\ttry {\n\t\treturn await api.fetchApi(`/translate/jobs/${jobId}/metrics`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch job metrics');\n\t}\n}\n\nexport async function fetchAllMetrics() {\n\ttry {\n\t\treturn await api.fetchApi('/translate/metrics');\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch metrics');\n\t}\n}\n// #endregion TranslateRunsApi\n" @@ -86856,21 +81713,51 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region TranslateSchedulesApi [C:2] [TYPE Module] [SEMANTICS translate, schedules, api, cron]\n// @BRIEF API client for translation job scheduling — CRUD, enable/disable, next executions.\n// @RELATION DEPENDS_ON -> [ApiModule]\nimport { api } from '$lib/api.js';\n\nfunction normalizeTranslateError(error, defaultMessage = 'Translation API error') {\n\tconst message =\n\t\t(error && typeof error.message === 'string' && error.message) ||\n\t\t(typeof error === 'string' && error) ||\n\t\tdefaultMessage;\n\treturn { message, code: 'TRANSLATE_API_ERROR', retryable: true };\n}\n\nexport async function fetchSchedule(jobId) {\n\ttry {\n\t\treturn await api.fetchApi(`/translate/jobs/${jobId}/schedule`, { suppressToast: true });\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch schedule');\n\t}\n}\n\nexport async function setSchedule(jobId, payload) {\n\ttry {\n\t\treturn await api.requestApi(`/translate/jobs/${jobId}/schedule`, 'PUT', payload);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to set schedule');\n\t}\n}\n\nexport async function deleteSchedule(jobId) {\n\ttry {\n\t\treturn await api.deleteApi(`/translate/jobs/${jobId}/schedule`);\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to delete schedule');\n\t}\n}\n\nexport async function enableSchedule(jobId) {\n\ttry {\n\t\treturn await api.postApi(`/translate/jobs/${jobId}/schedule/enable`, {});\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to enable schedule');\n\t}\n}\n\nexport async function disableSchedule(jobId) {\n\ttry {\n\t\treturn await api.postApi(`/translate/jobs/${jobId}/schedule/disable`, {});\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to disable schedule');\n\t}\n}\n\nexport async function fetchNextExecutions(jobId, n = 3) {\n\ttry {\n\t\treturn await api.fetchApi(`/translate/jobs/${jobId}/schedule/next-executions?n=${n}`, { suppressToast: true });\n\t} catch (error) {\n\t\tthrow normalizeTranslateError(error, 'Failed to fetch next executions');\n\t}\n}\n// #endregion TranslateSchedulesApi\n" }, + { + "contract_id": "TranslateTargetSchemaApi", + "contract_type": "Module", + "file_path": "frontend/src/lib/api/translate/target-schema.js", + "start_line": 1, + "end_line": 49, + "tier": "TIER_1", + "complexity": 1, + "metadata": { + "COMPLEXITY": 1, + "PURPOSE": "API client for target table schema validation." + }, + "relations": [ + { + "source_id": "TranslateTargetSchemaApi", + "relation_type": "DEPENDS_ON", + "target_id": "ApiModule", + "target_ref": "[ApiModule]" + } + ], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "// #region TranslateTargetSchemaApi [C:1] [TYPE Module] [SEMANTICS translate, target-schema, api, validation]\n// @BRIEF API client for target table schema validation.\n// @RELATION DEPENDS_ON -> [ApiModule]\nimport { api } from '$lib/api.js';\n\n/**\n * Check target table schema — validate expected vs actual columns for translation inserts.\n * @param {{\n * environment_id: string,\n * target_database_id: string,\n * target_schema: string,\n * target_table: string,\n * target_key_cols: string[],\n * target_column: string|null,\n * translation_column: string|null,\n * target_language_column: string|null,\n * target_source_column: string|null,\n * target_source_language_column: string|null,\n * }} payload\n * @returns {Promise<{\n * table_exists: boolean,\n * error: string|null,\n * expected_columns: Array<{name: string, data_type: string|null, is_nullable: boolean}>,\n * actual_columns: Array<{name: string, data_type: string|null, is_nullable: boolean}>,\n * missing_columns: Array<{name: string, data_type: string|null, is_nullable: boolean}>,\n * extra_columns: Array<{name: string, data_type: string|null, is_nullable: boolean}>,\n * all_present: boolean,\n * }>}\n */\nexport async function checkTargetTableSchema(payload) {\n\ttry {\n\t\treturn await api.postApi('/translate/check-target-schema', payload);\n\t} catch (error) {\n\t\tconst message =\n\t\t\t(error && typeof error.message === 'string' && error.message) ||\n\t\t\t(typeof error === 'string' && error) ||\n\t\t\t'Failed to check target table schema';\n\t\treturn {\n\t\t\ttable_exists: false,\n\t\t\terror: message,\n\t\t\texpected_columns: [],\n\t\t\tactual_columns: [],\n\t\t\tmissing_columns: [],\n\t\t\textra_columns: [],\n\t\t\tall_present: false,\n\t\t};\n\t}\n}\n// #endregion TranslateTargetSchemaApi\n" + }, + { + "contract_id": "frontend/src/lib/api/translate/target-schema.js::checkTargetTableSchema", + "contract_type": "Function", + "file_path": "frontend/src/lib/api/translate/target-schema.js", + "start_line": 6, + "end_line": 30, + "tier": "TIER_1", + "complexity": 1, + "metadata": {}, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "jsdoc", + "tier_source": "AutoCalculated", + "body": "/**\n * Check target table schema — validate expected vs actual columns for translation inserts.\n * @param {{\n * environment_id: string,\n * target_database_id: string,\n * target_schema: string,\n * target_table: string,\n * target_key_cols: string[],\n * target_column: string|null,\n * translation_column: string|null,\n * target_language_column: string|null,\n * target_source_column: string|null,\n * target_source_language_column: string|null,\n * }} payload\n * @returns {Promise<{\n * table_exists: boolean,\n * error: string|null,\n * expected_columns: Array<{name: string, data_type: string|null, is_nullable: boolean}>,\n * actual_columns: Array<{name: string, data_type: string|null, is_nullable: boolean}>,\n * missing_columns: Array<{name: string, data_type: string|null, is_nullable: boolean}>,\n * extra_columns: Array<{name: string, data_type: string|null, is_nullable: boolean}>,\n * all_present: boolean,\n * }>}\n */" + }, { "contract_id": "PermissionsTest", "contract_type": "Module", @@ -86962,38 +81849,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -87053,15 +81908,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -87083,38 +81929,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -87418,38 +82232,6 @@ "value": "Feature" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -87848,6 +82630,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -88039,38 +82823,6 @@ ], "value": "UI Tests" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -88105,15 +82857,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -88153,38 +82896,6 @@ ], "value": "UI Tests" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -88230,15 +82941,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -88345,6 +83047,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -88512,6 +83216,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -88679,6 +83385,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -88846,6 +83554,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -88976,6 +83686,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -89078,6 +83790,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -89172,29 +83886,6 @@ "contract_type": "Function" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "UX_STATE", @@ -89214,15 +83905,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -89287,38 +83969,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -89393,29 +84043,6 @@ "contract_type": "Function" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "UX_STATE", @@ -89435,15 +84062,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -89505,29 +84123,6 @@ "contract_type": "Function" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "UX_STATE", @@ -89547,15 +84142,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -89882,15 +84468,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90033,15 +84610,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90115,38 +84683,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90216,15 +84752,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90294,15 +84821,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90372,15 +84890,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90450,15 +84959,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90500,15 +85000,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -90530,38 +85021,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90693,15 +85152,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -90724,29 +85174,6 @@ "contract_type": "Function" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_FIXTURE", @@ -90766,15 +85193,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90816,15 +85234,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -90864,38 +85273,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -90931,15 +85308,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -90961,38 +85329,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -91027,15 +85363,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -91075,38 +85402,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -91179,38 +85474,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -91271,29 +85534,6 @@ "contract_type": "Function" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "TEST_FIXTURE", @@ -91313,15 +85553,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -91363,15 +85594,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -91411,38 +85633,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -91755,6 +85945,43 @@ "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t
\n\t\t

{$t.translate?.schedule?.title || 'Schedule Configuration'}

\n\t\t{#if !isLoading && scheduleExists}\n\t\t\t\n\t\t\t\t\n\t\t\t\t{isEnabled ? ($t.translate?.schedule?.enabled || 'Enabled') : ($t.translate?.schedule?.disabled || 'Disabled')}\n\t\t\t\n\t\t{/if}\n\t
\n\n\t{#if isLoading}\n\t\t
\n\n\t{:else if uxState === 'idle'}\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t

{$t.translate?.schedule?.no_schedule || 'No schedule configured'}

\n\t\t\t

{$t.translate?.schedule?.no_schedule_hint || 'Set up a recurring schedule for automatic translations'}

\n\t\t\t\n\t\t
\n\n\t{:else if uxState === 'editing' || uxState === 'enabled' || uxState === 'disabled'}\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t

\n\t\t\t\t\t{getCronDescription(cronExpression)}\n\t\t\t\t

\n\t\t\t
\n\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each commonTimezones as tz}\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t{#if nextExecutions.length > 0}\n\t\t\t\t
\n\t\t\t\t\t

{$t.translate?.schedule?.next_executions || 'Next Executions'}

\n\t\t\t\t\t{#each nextExecutions as dt, i}\n\t\t\t\t\t\t

{i + 1}. {new Date(dt).toLocaleString()}

\n\t\t\t\t\t{/each}\n\t\t\t\t
\n\t\t\t{/if}\n\n\t\t\t\n\t\t\t{#if uxState === 'no_prior_run_warning'}\n\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t\t⚠ {$t.translate?.schedule?.no_prior_run_warning || 'No prior successful manual run. Schedule may run with default settings. Consider running manually first.'}\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t{/if}\n\n\t\t\t\n\t\t\t
\n\t\t\t\t{#if scheduleExists}\n\t\t\t\t\t\n\t\t\t\t{:else}\n\t\t\t\t\t
\n\t\t\t\t{/if}\n\t\t\t\t
\n\t\t\t\t\t{#if scheduleExists && (uxState === 'enabled' || uxState === 'disabled')}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t\t{#if uxState === 'editing'}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t{/if}\n
\n\n" }, + { + "contract_id": "TargetSchemaHint", + "contract_type": "Component", + "file_path": "frontend/src/lib/components/translate/TargetSchemaHint.svelte", + "start_line": 1, + "end_line": 302, + "tier": "TIER_2", + "complexity": 3, + "metadata": { + "COMPLEXITY": 3, + "PURPOSE": "Подсказка о колонках целевой таблицы + кнопка \"Проверить схему\"." + }, + "relations": [], + "schema_warnings": [ + { + "code": "missing_required_tag", + "tag": "RELATION", + "message": "@RELATION is required for contract type 'Component' at C3", + "detail": { + "actual_complexity": 3, + "contract_type": "Component" + } + }, + { + "code": "missing_required_tag", + "tag": "UX_STATE", + "message": "@UX_STATE is required for contract type 'Component' at C3", + "detail": { + "actual_complexity": 3, + "contract_type": "Component" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\n\n\n\n\n\n\n\n\n\n\n\n\n
\n \n
\n
\n \n {#if state === 'checking'}\n \n \n \n \n {:else if state === 'complete' && result?.all_present}\n \n \n \n {:else if state === 'complete' && !result?.table_exists}\n \n \n \n {:else if state === 'complete' && !result?.all_present}\n \n \n \n {:else}\n \n \n \n {/if}\n\n \n {_('translate.target_schema.title') || 'Target Schema'}\n \n
\n\n \n \n {buttonLabel}\n \n
\n\n \n
\n {#if state === 'idle'}\n

\n {#if !targetTable}\n {_('translate.target_schema.enter_table') || 'Enter a target table name and click \"Check Target Schema\".'}\n {:else if !targetDatabaseId}\n {_('translate.target_schema.select_database') || 'Select a target database and click \"Check Target Schema\".'}\n {:else}\n {_('translate.target_schema.press_button') || 'Click \"Check Target Schema\" to verify the target table columns.'}\n {/if}\n

\n\n {:else if state === 'checking'}\n

\n {_('translate.target_schema.checking') || 'Checking target table schema…'}\n

\n\n {:else if state === 'complete' && result}\n {#key renderKey}\n {#if !result.table_exists}\n
\n \n \n \n

{_('translate.target_schema.table_not_found') || 'Target table not found in the database.'}

\n
\n\n {:else if result.all_present}\n
\n \n \n \n

{_('translate.target_schema.all_present') || 'Target table has all required columns.'}

\n
\n\n {:else}\n
\n \n \n \n

{_('translate.target_schema.missing_columns_title') || 'Target table is missing some required columns.'}

\n
\n {/if}\n\n \n {#if actualColumns.length > 0}\n
\n

\n {_('translate.target_schema.expected_columns') || 'Required columns for translation inserts:'}\n

\n
\n {#each actualColumns as col}\n \n {#if col.is_missing}\n \n \n \n {:else}\n \n \n \n {/if}\n {col.name}\n {#if col.data_type}({col.data_type}){/if}\n \n {/each}\n
\n
\n {/if}\n {/key}\n\n \n {#if result.table_exists && !result.all_present}\n
\n

{_('translate.target_schema.add_columns') || 'Add these missing columns to the target table, or configure custom column names in \"Target Column Mapping\" above.'}

\n
\n {/if}\n\n \n {#if result.error}\n

{result.error}

\n {/if}\n\n {:else if state === 'error'}\n
\n \n \n \n

\n {_('translate.target_schema.check_error') || 'Could not verify target table schema. Make sure the table exists and is accessible.'}\n

\n
\n {/if}\n
\n
\n\n" + }, { "contract_id": "TermCorrectionPopup", "contract_type": "Component", @@ -92051,6 +86278,265 @@ "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t{#if !status}\n\t\t
\n\t\t\t

{$t.translate?.run?.loading_result}

\n\t\t
\n\t{:else}\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t

{$t.translate?.run?.result_title}

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t{#if uxState === 'failed' || uxState === 'partial'}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{isRetrying ? $t.translate?.run?.retrying : $t.translate?.run?.retry_failed}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t\t{#if uxState === 'insert_failed'}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{isRetryingInsert ? $t.translate?.run?.retrying_insert : $t.translate?.run?.retry_insert}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

{$t.translate?.run?.total_records}

\n\t\t\t\t\t

{status.total_records || 0}

\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

{$t.translate?.run?.success}

\n\t\t\t\t\t

{status.successful_records || 0}

\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

{$t.translate?.run?.failed}

\n\t\t\t\t\t

{status.failed_records || 0}

\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

{$t.translate?.run?.skipped}

\n\t\t\t\t\t

{status.skipped_records || 0}

\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t{#if status.language_stats && status.language_stats.length > 0}\n\t\t\t\t
\n\t\t\t\t\t

{$t.translate?.run?.per_language ?? 'Per-Language Statistics'}

\n\t\t\t\t\t
\n\t\t\t\t\t\t{#each status.language_stats as lang}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

{lang.language_code}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{lang.translated_rows}\n\t\t\t\t\t\t\t\t\t{#if lang.failed_rows > 0}\n\t\t\t\t\t\t\t\t\t\t{lang.failed_rows}\n\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t\t{#if lang.skipped_rows > 0}\n\t\t\t\t\t\t\t\t\t\t{lang.skipped_rows}\n\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t\t{lang.total_rows}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t{/if}\n\n\t\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{$t.translate?.run?.run_id}\n\t\t\t\t\t\t{status.id}\n\t\t\t\t\t\t copyToClipboard(status.id)}\n\t\t\t\t\t\t\tclass=\"ml-1 text-blue-500 hover:text-blue-700 text-xs\"\n\t\t\t\t\t\t\ttitle={$t.translate?.run?.copy_id}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{$t.translate?.run?.copy_id}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{$t.translate?.run?.status_label || 'Статус'}\n\t\t\t\t\t\t{getRunStatusLabel(status.status)}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{$t.translate?.run?.insert_status}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{insertStatusBadge.label}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{#if status.superset_execution_id}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{$t.translate?.run?.superset_query}\n\t\t\t\t\t\t\t{status.superset_execution_id}\n\t\t\t\t\t\t\t copyToClipboard(status.superset_execution_id)}\n\t\t\t\t\t\t\t\tclass=\"ml-1 text-blue-500 hover:text-blue-700 text-xs\"\n\t\t\t\t\t\t\t\ttitle={$t.translate?.run?.copy_id}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{$t.translate?.run?.copy_id}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t{/if}\n\t\t\t\t\t{#if status.error_message}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{$t.translate?.run?.error_label?.replace('{error}', status.error_message)}\n\t\t\t\t\t\t
\n\t\t\t\t\t{/if}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{$t.translate?.run?.sql_audit?.replace('{count}', sqlAuditLines.length)}\n\t\t\t\t\n\n\t\t\t\t{#if showSqlAudit}\n\t\t\t\t\t
\n\t\t\t\t\t\t{#if sqlAuditLines.length === 0}\n\t\t\t\t\t\t\t

{$t.translate?.run?.no_sql_audit}

\n\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t{#each sqlAuditLines as line, idx}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{idx + 1}. {line}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
\n\t\t\t\t{/if}\n\t\t\t
\n\n\t\t\t\n\t\t\t{#if status.event_invariants}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{$t.translate?.run?.event_invariants}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{status.event_invariants.invariant_valid ? $t.translate?.run?.valid : $t.translate?.run?.violated}\n\t\t\t\t\t\t\n\t\t\t\t\t\t|\n\t\t\t\t\t\t{$t.translate?.run?.superset_query_id_label} {status.event_invariants.has_run_started ? $t.translate?.run?.started_yes : $t.translate?.run?.started_no}\n\t\t\t\t\t\t|\n\t\t\t\t\t\t{$t.translate?.run?.terminal_events?.replace('{count}', status.event_invariants.terminal_event_count)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t{/if}\n\n\t\t\t\n\t\t\t{#if records.length > 0}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t showRecords = !showRecords}\n\t\t\t\t\t\t\tclass=\"flex items-center gap-2 text-sm text-gray-700 hover:text-gray-900\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{$t.translate?.run?.records_title || 'Translation Records'} ({records.length})\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t{#if showRecords}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{#each targetLanguages as lang}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t\t\t\t\t{#if targetLanguages.length === 0}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{#each records as row, idx}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{#if targetLanguages.length > 0}\n\t\t\t\t\t\t\t\t\t\t\t\t{#each targetLanguages as lang}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{@const langData = (row.languages || []).find(l => l.language_code === lang)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{@const cellValue = langData?.final_value || langData?.translated_value || ''}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{@const detectedSource = langData?.source_language_detected || row.source_language_detected || ''}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
#{$t.translate?.preview?.table_source || 'Source'}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{lang}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
{$t.translate?.preview?.translation || 'Translation'}{$t.translate?.preview?.table_status || 'Status'}{$t.translate?.preview?.table_actions || 'Actions'}
{idx + 1}\n\t\t\t\t\t\t\t\t\t\t\t\t{row.source_sql || row.source_object_name || '—'}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{row.status}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst firstLang = row.languages?.[0] || {};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcorrectionPopupData = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsourceTerm: row.source_sql || row.source_object_name || '',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tincorrectTarget: firstLang?.final_value || firstLang?.translated_value || '',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsourceLanguage: firstLang?.source_language_detected || row.source_language_detected || '',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttargetLanguage: targetLanguages[0] || '',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trunId,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trowKey: row.id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"px-2 py-0.5 text-[10px] bg-primary text-white rounded hover:bg-primary-hover transition-colors\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Submit Correction\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{$t.translate?.run?.correct || 'Correct'}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t{/if}\n\t\t\t\t
\n\t\t\t{/if}\n\t\t
\n\t{/if}\n
\n\n\n correctionPopupData = null}\n\tonSubmitted={() => { correctionPopupData = null; loadData(); onRefresh(); }}\n/>\n\n showBulkReplace = false}\n\tonApplied={(count) => { showBulkReplace = false; loadData(); onRefresh(); }}\n/>\n\n" }, + { + "contract_id": "TargetSchemaHintTest", + "contract_type": "Module", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 1, + "end_line": 158, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "COMPLEXITY": 2, + "LAYER": "Test", + "PURPOSE": "Contract-focused unit tests for TargetSchemaHint.svelte component.", + "TEST_CONTRACT": "TargetSchemaHint -> idle, checking, complete, error UX states", + "TEST_EDGE": "error_state -> Error state shows red border" + }, + "relations": [ + { + "source_id": "TargetSchemaHintTest", + "relation_type": "BINDS_TO", + "target_id": "TargetSchemaHint:Component", + "target_ref": "[TargetSchemaHint:Component]" + } + ], + "schema_warnings": [ + { + "code": "invalid_enum_value", + "tag": "LAYER", + "message": "@LAYER value 'Test' is not in allowed enum", + "detail": { + "allowed": [ + "Core", + "Domain", + "API", + "UI", + "Service", + "Infrastructure", + "Plugin", + "Tests" + ], + "value": "Test" + } + }, + { + "code": "tag_not_for_contract_type", + "tag": "TEST_CONTRACT", + "message": "@TEST_CONTRACT is not allowed for contract type 'Module'", + "detail": { + "actual_type": "Module", + "allowed_types": [ + "Function", + "Block" + ] + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "TEST_CONTRACT", + "message": "@TEST_CONTRACT is forbidden for contract type 'Module' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Module" + } + }, + { + "code": "tag_not_for_contract_type", + "tag": "TEST_EDGE", + "message": "@TEST_EDGE is not allowed for contract type 'Module'", + "detail": { + "actual_type": "Module", + "allowed_types": [ + "Function", + "Block" + ] + } + }, + { + "code": "tag_forbidden_by_complexity", + "tag": "TEST_EDGE", + "message": "@TEST_EDGE is forbidden for contract type 'Module' at C2", + "detail": { + "actual_complexity": 2, + "contract_type": "Module" + } + } + ], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "// #region TargetSchemaHintTest [C:2] [TYPE Module] [SEMANTICS test, translate, target-schema, hint, component]\n// @BRIEF Contract-focused unit tests for TargetSchemaHint.svelte component.\n// @LAYER Test\n// @RELATION BINDS_TO -> [TargetSchemaHint:Component]\n// @TEST_CONTRACT: TargetSchemaHint -> idle, checking, complete, error UX states\n// @TEST_EDGE: idle_state -> Renders button with \"Check Target Schema\" text\n// @TEST_EDGE: button_disabled_no_table -> Button disabled when targetTable is empty\n// @TEST_EDGE: button_disabled_no_database -> Button disabled when targetDatabaseId is empty\n// @TEST_EDGE: checking_state -> Checking state with spinner and disabled button\n// @TEST_EDGE: complete_all_present -> All columns present shows green border\n// @TEST_EDGE: complete_missing_columns -> Missing columns shows yellow border\n// @TEST_EDGE: error_state -> Error state shows red border\n//\n// NOTE: This test uses fs-based source inspection rather than @testing-library/svelte\n// because the component uses Tailwind opacity modifiers (e.g., bg-green-50/50) in\n// class: directives, which Svelte 5 compiler cannot parse in vitest.\n// All existing component tests in this project follow the same fs pattern.\n\nimport { describe, it, expect } from 'vitest';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst COMPONENT_PATH = path.resolve(\n\tprocess.cwd(),\n\t'src/lib/components/translate/TargetSchemaHint.svelte'\n);\n\ndescribe('TargetSchemaHint Component', () => {\n\t// #region test_component_exists [TYPE Function]\n\t// @PURPOSE: Verify component file exists.\n\tit('component file exists', () => {\n\t\tconst exists = fs.existsSync(COMPONENT_PATH);\n\t\texpect(exists).toBe(true);\n\t});\n\n\t// #endregion test_component_exists\n\n\t// #region test_ux_state_contracts [TYPE Function]\n\t// @PURPOSE: Component contains required UX state tags.\n\tit('contains required UX state tags and contract annotations', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain('@UX_STATE Idle');\n\t\texpect(source).toContain('@UX_STATE Checking');\n\t\texpect(source).toContain('@UX_STATE Complete');\n\t\texpect(source).toContain('@UX_STATE Error');\n\t\texpect(source).toContain('@UX_FEEDBACK');\n\t\texpect(source).toContain('@UX_REACTIVITY');\n\t\texpect(source).toContain('checkTargetTableSchema');\n\t});\n\n\t// #endregion test_ux_state_contracts\n\n\t// #region test_props_definition [TYPE Function]\n\t// @PURPOSE: Component accepts required props.\n\tit('accepts environmentId, targetDatabaseId, targetSchema, targetTable props', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain('environmentId');\n\t\texpect(source).toContain('targetDatabaseId');\n\t\texpect(source).toContain('targetSchema');\n\t\texpect(source).toContain('targetTable');\n\t\texpect(source).toContain('targetKeyCols');\n\t});\n\n\t// #endregion test_props_definition\n\n\t// #region test_button_check_disabled_logic [TYPE Function]\n\t// @PURPOSE: Button disabled logic: canCheck derived checks all required props.\n\tit('has button disabled when canCheck is false', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain('disabled={!canCheck || state === \\'checking\\'}');\n\t});\n\n\t// #endregion test_button_check_disabled_logic\n\n\t// #region test_idle_state [TYPE Function]\n\t// @PURPOSE: Idle state shows hint text and check button.\n\tit('implements idle UX state with hint text', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"state === 'idle'\");\n\t\texpect(source).toContain('translate.target_schema.press_button');\n\t});\n\n\t// #endregion test_idle_state\n\n\t// #region test_checking_state [TYPE Function]\n\t// @PURPOSE: Checking state shows spinner and disables button.\n\tit('implements checking UX state with spinner', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"state === 'checking'\");\n\t\texpect(source).toContain('animate-spin');\n\t\texpect(source).toContain('aria-busy={state === \\'checking\\'');\n\t});\n\n\t// #endregion test_checking_state\n\n\t// #region test_complete_state [TYPE Function]\n\t// @PURPOSE: Complete state shows result with green/yellow/red indicators.\n\tit('implements complete UX state with color indicators', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"state === 'complete'\");\n\t\texpect(source).toContain('result?.all_present');\n\t\texpect(source).toContain('result?.table_exists');\n\t\texpect(source).toContain('result.missing_columns');\n\t});\n\n\t// #endregion test_complete_state\n\n\t// #region test_error_state [TYPE Function]\n\t// @PURPOSE: Error state shows connection error message.\n\tit('implements error UX state with retry prompt', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"state === 'error'\");\n\t\texpect(source).toContain('translate.target_schema.check_error');\n\t});\n\n\t// #endregion test_error_state\n\n\t// #region test_i18n_usage [TYPE Function]\n\t// @PURPOSE: Component uses i18n _() for all user-facing strings with fallbacks.\n\tit('uses i18n for all user-facing strings', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"_('translate.target_schema.title')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.check_button')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.checking')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.check_again')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.all_present')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.table_not_found')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.check_error')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.enter_table')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.select_database')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.missing_columns_title')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.expected_columns')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.add_columns')\");\n\t});\n\n\t// #endregion test_i18n_usage\n\n\t// #region test_abort_controller [TYPE Function]\n\t// @PURPOSE: Component uses AbortController for request cancellation.\n\tit('implements AbortController for request cancellation', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain('AbortController');\n\t\texpect(source).toContain('abortController.abort()');\n\t\texpect(source).toContain('signal.aborted');\n\t});\n\n\t// #endregion test_abort_controller\n});\n// #endregion TargetSchemaHintTest\n" + }, + { + "contract_id": "test_component_exists", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 29, + "end_line": 36, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Verify component file exists." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_component_exists [TYPE Function]\n\t// @PURPOSE: Verify component file exists.\n\tit('component file exists', () => {\n\t\tconst exists = fs.existsSync(COMPONENT_PATH);\n\t\texpect(exists).toBe(true);\n\t});\n\n\t// #endregion test_component_exists\n" + }, + { + "contract_id": "test_ux_state_contracts", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 38, + "end_line": 52, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Component contains required UX state tags." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_ux_state_contracts [TYPE Function]\n\t// @PURPOSE: Component contains required UX state tags.\n\tit('contains required UX state tags and contract annotations', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain('@UX_STATE Idle');\n\t\texpect(source).toContain('@UX_STATE Checking');\n\t\texpect(source).toContain('@UX_STATE Complete');\n\t\texpect(source).toContain('@UX_STATE Error');\n\t\texpect(source).toContain('@UX_FEEDBACK');\n\t\texpect(source).toContain('@UX_REACTIVITY');\n\t\texpect(source).toContain('checkTargetTableSchema');\n\t});\n\n\t// #endregion test_ux_state_contracts\n" + }, + { + "contract_id": "test_props_definition", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 54, + "end_line": 66, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Component accepts required props." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_props_definition [TYPE Function]\n\t// @PURPOSE: Component accepts required props.\n\tit('accepts environmentId, targetDatabaseId, targetSchema, targetTable props', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain('environmentId');\n\t\texpect(source).toContain('targetDatabaseId');\n\t\texpect(source).toContain('targetSchema');\n\t\texpect(source).toContain('targetTable');\n\t\texpect(source).toContain('targetKeyCols');\n\t});\n\n\t// #endregion test_props_definition\n" + }, + { + "contract_id": "test_button_check_disabled_logic", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 68, + "end_line": 76, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Button disabled logic: canCheck derived checks all required props." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_button_check_disabled_logic [TYPE Function]\n\t// @PURPOSE: Button disabled logic: canCheck derived checks all required props.\n\tit('has button disabled when canCheck is false', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain('disabled={!canCheck || state === \\'checking\\'}');\n\t});\n\n\t// #endregion test_button_check_disabled_logic\n" + }, + { + "contract_id": "test_idle_state", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 78, + "end_line": 87, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Idle state shows hint text and check button." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_idle_state [TYPE Function]\n\t// @PURPOSE: Idle state shows hint text and check button.\n\tit('implements idle UX state with hint text', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"state === 'idle'\");\n\t\texpect(source).toContain('translate.target_schema.press_button');\n\t});\n\n\t// #endregion test_idle_state\n" + }, + { + "contract_id": "test_checking_state", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 89, + "end_line": 99, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Checking state shows spinner and disables button." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_checking_state [TYPE Function]\n\t// @PURPOSE: Checking state shows spinner and disables button.\n\tit('implements checking UX state with spinner', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"state === 'checking'\");\n\t\texpect(source).toContain('animate-spin');\n\t\texpect(source).toContain('aria-busy={state === \\'checking\\'');\n\t});\n\n\t// #endregion test_checking_state\n" + }, + { + "contract_id": "test_complete_state", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 101, + "end_line": 112, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Complete state shows result with green/yellow/red indicators." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_complete_state [TYPE Function]\n\t// @PURPOSE: Complete state shows result with green/yellow/red indicators.\n\tit('implements complete UX state with color indicators', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"state === 'complete'\");\n\t\texpect(source).toContain('result?.all_present');\n\t\texpect(source).toContain('result?.table_exists');\n\t\texpect(source).toContain('result.missing_columns');\n\t});\n\n\t// #endregion test_complete_state\n" + }, + { + "contract_id": "test_error_state", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 114, + "end_line": 123, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Error state shows connection error message." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_error_state [TYPE Function]\n\t// @PURPOSE: Error state shows connection error message.\n\tit('implements error UX state with retry prompt', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"state === 'error'\");\n\t\texpect(source).toContain('translate.target_schema.check_error');\n\t});\n\n\t// #endregion test_error_state\n" + }, + { + "contract_id": "test_i18n_usage", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 125, + "end_line": 144, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Component uses i18n _() for all user-facing strings with fallbacks." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_i18n_usage [TYPE Function]\n\t// @PURPOSE: Component uses i18n _() for all user-facing strings with fallbacks.\n\tit('uses i18n for all user-facing strings', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain(\"_('translate.target_schema.title')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.check_button')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.checking')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.check_again')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.all_present')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.table_not_found')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.check_error')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.enter_table')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.select_database')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.missing_columns_title')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.expected_columns')\");\n\t\texpect(source).toContain(\"_('translate.target_schema.add_columns')\");\n\t});\n\n\t// #endregion test_i18n_usage\n" + }, + { + "contract_id": "test_abort_controller", + "contract_type": "Function", + "file_path": "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js", + "start_line": 146, + "end_line": 156, + "tier": "TIER_1", + "complexity": 2, + "metadata": { + "PURPOSE": "Component uses AbortController for request cancellation." + }, + "relations": [], + "schema_warnings": [], + "anchor_syntax": "region", + "tier_source": "AutoCalculated", + "body": "\t// #region test_abort_controller [TYPE Function]\n\t// @PURPOSE: Component uses AbortController for request cancellation.\n\tit('implements AbortController for request cancellation', () => {\n\t\tconst source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n\t\texpect(source).toContain('AbortController');\n\t\texpect(source).toContain('abortController.abort()');\n\t\texpect(source).toContain('signal.aborted');\n\t});\n\n\t// #endregion test_abort_controller\n" + }, { "contract_id": "BulkReplaceModalTests", "contract_type": "Module", @@ -92134,15 +86620,6 @@ "actual_complexity": 2, "contract_type": "Module" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -92232,15 +86709,6 @@ "actual_complexity": 2, "contract_type": "Module" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Module' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -92465,15 +86933,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -92513,38 +86972,6 @@ ], "value": "Infra" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -92598,17 +87025,7 @@ "target_ref": "locale" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region t:Store [TYPE Function]\n/**\n * @purpose Derived store providing the translation dictionary.\n * @relation BINDS_TO -> locale\n */\nexport const t = derived(locale, ($locale) => {\n const dictionary = (translations[$locale] || translations.ru) as any;\n return dictionary;\n});\n// #endregion t:Store\n" @@ -92752,38 +87169,6 @@ ], "value": "UI-State" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -93022,15 +87407,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -93070,38 +87446,6 @@ ], "value": "UI Tests" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -93147,15 +87491,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -93239,15 +87574,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -93332,15 +87658,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -93396,49 +87713,7 @@ "target_ref": "[setupTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region NavigationMock:Module [TYPE Function]\n// @SEMANTICS: mock, navigation, sveltekit-v1-legacy-surface\n// @PURPOSE: Mock for $app/navigation in tests\n// @INVARIANT: Includes SvelteKit v1-only APIs (push, prefetchRoutes) as compatibility surface for legacy test consumers; keep until all imports migrate to SvelteKit v2-compatible mocks.\n// @RELATION: DEPENDS_ON -> [$app/navigation]\n// @RELATION: BINDS_TO -> [setupTests]\n\nexport const goto = () => Promise.resolve();\nexport const push = () => Promise.resolve();\nexport const replace = () => Promise.resolve();\nexport const prefetch = () => Promise.resolve();\nexport const prefetchRoutes = () => Promise.resolve();\n\n// #endregion NavigationMock:Module\n" @@ -93568,49 +87843,7 @@ "target_ref": "[setupTests]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region StoresMock:Module [TYPE Function]\n// @SEMANTICS: mock, stores, sveltekit-v1-legacy-surface\n// @PURPOSE: Mock for $app/stores in tests\n// @INVARIANT: Mocks $app/stores which is a SvelteKit v1 module; SvelteKit v2 uses $app/state. Verify no active test files import this mock before removal.\n// @RELATION: DEPENDS_ON -> [$app/stores]\n// @RELATION: BINDS_TO -> [setupTests]\n\nimport { writable, readable } from 'svelte/store';\n\nexport const page = readable({\n url: new URL('http://localhost'),\n params: {},\n route: { id: 'test' },\n status: 200,\n error: null,\n data: {},\n form: null\n});\n\nexport const navigating = writable(null);\n\nexport const updated = {\n check: () => Promise.resolve(false),\n subscribe: writable(false).subscribe\n};\n\n// #endregion StoresMock:Module\n" @@ -93727,15 +87960,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -93796,15 +88020,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -93844,38 +88059,6 @@ ], "value": "Domain (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -94143,17 +88326,7 @@ "target_ref": "[taskDrawer]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region ActivityTest:Module [TYPE Function]\n// @PURPOSE: Unit tests for activity store\n// @RELATION: DEPENDS_ON -> [activity]\n// @RELATION: DEPENDS_ON -> [taskDrawer]\n\nimport { describe, it, expect, beforeEach, vi } from 'vitest';\n\ndescribe('activity store', () => {\n beforeEach(async () => {\n vi.resetModules();\n });\n\n it('should have zero active count initially', async () => {\n const { activityStore } = await import('../activity.js');\n \n let state = null;\n const unsubscribe = activityStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.activeCount).toBe(0);\n expect(state.recentTasks).toEqual([]);\n });\n\n it('should count RUNNING tasks as active', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('../taskDrawer.js');\n const { activityStore } = await import('../activity.js');\n \n // Add a running task\n updateResourceTask('dashboard-1', 'task-1', 'RUNNING');\n \n let state = null;\n const unsubscribe = activityStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.activeCount).toBe(1);\n });\n\n it('should not count SUCCESS tasks as active', async () => {\n const { updateResourceTask } = await import('../taskDrawer.js');\n const { activityStore } = await import('../activity.js');\n \n // Add a success task\n updateResourceTask('dashboard-1', 'task-1', 'SUCCESS');\n \n let state = null;\n const unsubscribe = activityStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.activeCount).toBe(0);\n });\n\n it('should not count ERROR tasks as active', async () => {\n const { updateResourceTask } = await import('../taskDrawer.js');\n const { activityStore } = await import('../activity.js');\n \n // Add an error task\n updateResourceTask('dashboard-1', 'task-1', 'ERROR');\n \n let state = null;\n const unsubscribe = activityStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.activeCount).toBe(0);\n });\n\n it('should not count WAITING_INPUT as active', async () => {\n const { updateResourceTask } = await import('../taskDrawer.js');\n const { activityStore } = await import('../activity.js');\n \n // Add a waiting input task - should NOT be counted as active per contract\n // Only RUNNING tasks count as active\n updateResourceTask('dashboard-1', 'task-1', 'WAITING_INPUT');\n \n let state = null;\n const unsubscribe = activityStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.activeCount).toBe(0);\n });\n\n it('should track multiple running tasks', async () => {\n const { updateResourceTask } = await import('../taskDrawer.js');\n const { activityStore } = await import('../activity.js');\n \n // Add multiple running tasks\n updateResourceTask('dashboard-1', 'task-1', 'RUNNING');\n updateResourceTask('dashboard-2', 'task-2', 'RUNNING');\n updateResourceTask('dataset-1', 'task-3', 'RUNNING');\n \n let state = null;\n const unsubscribe = activityStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.activeCount).toBe(3);\n });\n\n it('should return recent tasks', async () => {\n const { updateResourceTask } = await import('../taskDrawer.js');\n const { activityStore } = await import('../activity.js');\n \n // Add multiple tasks\n updateResourceTask('dashboard-1', 'task-1', 'RUNNING');\n updateResourceTask('dataset-1', 'task-2', 'SUCCESS');\n updateResourceTask('storage-1', 'task-3', 'ERROR');\n \n let state = null;\n const unsubscribe = activityStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.recentTasks.length).toBeGreaterThan(0);\n expect(state.recentTasks[0]).toHaveProperty('taskId');\n expect(state.recentTasks[0]).toHaveProperty('resourceId');\n expect(state.recentTasks[0]).toHaveProperty('status');\n });\n});\n\n// #endregion ActivityTest:Module\n" @@ -94233,29 +88406,6 @@ "contract_type": "Function" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "UX_STATE", @@ -94275,15 +88425,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -94357,15 +88498,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -94425,15 +88557,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -94455,38 +88578,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -94607,15 +88698,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -94750,17 +88832,7 @@ "target_ref": "AssistantChatPanel" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region assistantChat:Store [TYPE Function]\n// @PURPOSE: Control assistant chat panel visibility and active conversation binding.\n// @RELATION: BINDS_TO -> AssistantChatPanel\n//\n\nimport { writable } from 'svelte/store';\n\nconst initialState = {\n isOpen: false,\n conversationId: null,\n datasetReviewSessionId: null,\n seedMessage: '',\n focusTarget: null,\n};\n\nexport const assistantChatStore = writable(initialState);\n\n// #region toggleAssistantChat:Function [TYPE Function]\n// @PURPOSE: Toggle assistant panel visibility.\n// @PRE: Store is initialized.\n// @POST: isOpen value inverted.\nexport function toggleAssistantChat() {\n assistantChatStore.update((state) => {\n const next = { ...state, isOpen: !state.isOpen };\n console.log(`[assistantChat][${next.isOpen ? 'Open' : 'Closed'}] toggleAssistantChat`);\n return next;\n });\n}\n// #endregion toggleAssistantChat:Function\n\n// #region openAssistantChat:Function [TYPE Function]\n// @PURPOSE: Open assistant panel.\n// @PRE: Store is initialized.\n// @POST: isOpen = true.\nexport function openAssistantChat() {\n assistantChatStore.update((state) => {\n const next = { ...state, isOpen: true };\n console.log('[assistantChat][Open] openAssistantChat');\n return next;\n });\n}\n// #endregion openAssistantChat:Function\n\n// #region openAssistantChatWithContext:Function [TYPE Function]\n// @PURPOSE: Open assistant panel with dataset review session context and optional seeded prompt/focus target.\n// @PRE: Context payload may be partial.\n// @POST: Assistant drawer opens with session binding and visible focus metadata.\nexport function openAssistantChatWithContext(context = {}) {\n assistantChatStore.update((state) => {\n const next = {\n ...state,\n isOpen: true,\n datasetReviewSessionId:\n context.datasetReviewSessionId ?? state.datasetReviewSessionId ?? null,\n seedMessage: context.seedMessage ?? '',\n focusTarget: context.focusTarget ?? null,\n };\n console.log('[assistantChat][Open] openAssistantChatWithContext');\n return next;\n });\n}\n// #endregion openAssistantChatWithContext:Function\n\n// #region closeAssistantChat:Function [TYPE Function]\n// @PURPOSE: Close assistant panel.\n// @PRE: Store is initialized.\n// @POST: isOpen = false.\nexport function closeAssistantChat() {\n assistantChatStore.update((state) => {\n const next = { ...state, isOpen: false };\n console.log('[assistantChat][Closed] closeAssistantChat');\n return next;\n });\n}\n// #endregion closeAssistantChat:Function\n\n// #region setAssistantConversationId:Function [TYPE Function]\n// @PURPOSE: Bind current conversation id in UI state.\n// @PRE: conversationId is string-like identifier.\n// @POST: store.conversationId updated.\nexport function setAssistantConversationId(conversationId) {\n assistantChatStore.update((state) => {\n console.log('[assistantChat][ConversationBound] setAssistantConversationId');\n return { ...state, conversationId };\n });\n}\n// #endregion setAssistantConversationId:Function\n\n// #region setAssistantDatasetReviewSessionId:Function [TYPE Function]\n// @PURPOSE: Bind active dataset review session to assistant state.\n// @PRE: session identifier may be null when workspace context is cleared.\n// @POST: store.datasetReviewSessionId updated.\nexport function setAssistantDatasetReviewSessionId(datasetReviewSessionId) {\n assistantChatStore.update((state) => ({ ...state, datasetReviewSessionId }));\n}\n// #endregion setAssistantDatasetReviewSessionId:Function\n\n// #region setAssistantSeedMessage:Function [TYPE Function]\n// @PURPOSE: Stage a seeded assistant prompt for contextual send UX.\n// @PRE: seedMessage can be empty to clear staged draft.\n// @POST: store.seedMessage updated.\nexport function setAssistantSeedMessage(seedMessage) {\n assistantChatStore.update((state) => ({ ...state, seedMessage: seedMessage || '' }));\n}\n// #endregion setAssistantSeedMessage:Function\n\n// #region setAssistantFocusTarget:Function [TYPE Function]\n// @PURPOSE: Track the workspace entity currently referenced by assistant context.\n// @PRE: focusTarget may be null to clear prior focus.\n// @POST: store.focusTarget updated.\nexport function setAssistantFocusTarget(focusTarget) {\n assistantChatStore.update((state) => ({ ...state, focusTarget: focusTarget || null }));\n}\n// #endregion setAssistantFocusTarget:Function\n// #endregion assistantChat:Store\n" @@ -95377,15 +89449,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -95672,15 +89735,6 @@ ], "value": "UI-State" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -95873,15 +89927,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -96050,15 +90095,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -96100,15 +90136,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -96318,17 +90345,7 @@ "target_ref": "App" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region taskDrawer:Store [TYPE Function]\n// @RELATION: USES -> App\n// @PURPOSE: Manage Task Drawer visibility and resource-to-task mapping\n//\n//\n// {\n// required_fields: {isOpen: boolean, activeTaskId: string|null, resourceTaskMap: Object},\n// invariants: [\n// \"Updates isOpen and activeTaskId properly on openDrawerForTask\",\n// \"Updates isOpen and activeTaskId=null on openDrawer\",\n// \"Properly sets isOpen=false on closeDrawer\",\n// \"Maintains mapping in resourceTaskMap correctly via updateResourceTask\"\n// ]\n// }\n\nimport { writable } from 'svelte/store';\n\nconst TASK_DRAWER_AUTO_OPEN_STORAGE_KEY = \"ss_tools.profile.auto_open_task_drawer\";\n\nfunction readAutoOpenTaskDrawerPreference() {\n if (typeof window === \"undefined\") {\n return true;\n }\n const rawValue = window.localStorage.getItem(TASK_DRAWER_AUTO_OPEN_STORAGE_KEY);\n if (rawValue === \"false\") return false;\n if (rawValue === \"true\") return true;\n return true;\n}\n\nlet autoOpenTaskDrawerPreference = readAutoOpenTaskDrawerPreference();\n\nconst initialState = {\n isOpen: false,\n activeTaskId: null,\n resourceTaskMap: {}\n};\n\nexport const taskDrawerStore = writable(initialState);\n\n/**\n * Open drawer for a specific task\n * @param {string} taskId - The task ID to show in drawer\n * @UX_STATE: Open -> Drawer visible, logs streaming\n */\nexport function openDrawerForTask(taskId) {\n if (!taskId) {\n console.log(\"[taskDrawer.openDrawerForTask][Action] Skip open: taskId is empty\");\n return false;\n }\n console.log(`[taskDrawer.openDrawerForTask][Action] Opening drawer for task ${taskId}`);\n taskDrawerStore.update(state => ({\n ...state,\n isOpen: true,\n activeTaskId: taskId\n }));\n return true;\n}\n\n/**\n * Update user preference for automatic drawer opening.\n * @param {boolean} enabled - Whether automatic opening is enabled.\n */\nexport function setTaskDrawerAutoOpenPreference(enabled) {\n autoOpenTaskDrawerPreference = enabled !== false;\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(\n TASK_DRAWER_AUTO_OPEN_STORAGE_KEY,\n autoOpenTaskDrawerPreference ? \"true\" : \"false\",\n );\n }\n}\n\n/**\n * Read current user preference for automatic drawer opening.\n * @returns {boolean} true if automatic drawer opening is enabled.\n */\nexport function getTaskDrawerAutoOpenPreference() {\n return autoOpenTaskDrawerPreference;\n}\n\n/**\n * Open drawer for a task only when user preference allows auto-open.\n * @param {string} taskId - The task ID to show in drawer.\n * @returns {boolean} true if drawer was opened.\n */\nexport function openDrawerForTaskIfPreferred(taskId) {\n if (autoOpenTaskDrawerPreference !== true) {\n console.log(\n `[taskDrawer.openDrawerForTaskIfPreferred][Action] Skip auto-open for task ${taskId}`,\n );\n return false;\n }\n return openDrawerForTask(taskId);\n}\n\n/**\n * Open drawer in list mode (no specific task)\n * @UX_STATE: Open -> Drawer visible, showing recent task list\n */\nexport function openDrawer() {\n console.log('[taskDrawer.openDrawer][Action] Opening drawer in list mode');\n taskDrawerStore.update(state => ({\n ...state,\n isOpen: true,\n activeTaskId: null\n }));\n}\n\n/**\n * Close the drawer (task continues running)\n * @UX_STATE: Closed -> Drawer hidden, no active task\n */\nexport function closeDrawer() {\n console.log('[taskDrawer.closeDrawer][Action] Closing drawer');\n taskDrawerStore.update(state => ({\n ...state,\n isOpen: false,\n activeTaskId: null\n }));\n}\n\n/**\n * Update resource-to-task mapping\n * @param {string} resourceId - Resource ID (dashboard uuid, dataset id, etc.)\n * @param {string} taskId - Task ID associated with this resource\n * @param {string} status - Task status (IDLE, RUNNING, WAITING_INPUT, SUCCESS, ERROR)\n */\nexport function updateResourceTask(resourceId, taskId, status) {\n console.log(`[taskDrawer.updateResourceTask][Action] Updating resource ${resourceId} -> task ${taskId}, status ${status}`);\n taskDrawerStore.update(state => {\n const newMap = { ...state.resourceTaskMap };\n if (status === 'IDLE' || status === 'SUCCESS' || status === 'ERROR') {\n // Remove mapping when task completes\n delete newMap[resourceId];\n } else {\n // Add or update mapping\n newMap[resourceId] = { taskId, status };\n }\n return { ...state, resourceTaskMap: newMap };\n });\n}\n\n/**\n * Get task status for a specific resource\n * @param {string} resourceId - Resource ID\n * @returns {Object|null} Task info or null if no active task\n */\nexport function getTaskForResource(resourceId) {\n let result = null;\n taskDrawerStore.subscribe(state => {\n result = state.resourceTaskMap[resourceId] || null;\n })();\n return result;\n}\n\n// #endregion taskDrawer:Store\n" @@ -96713,29 +90730,6 @@ ], "value": "UI-State" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -96878,15 +90872,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -96935,6 +90920,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -96949,15 +90936,6 @@ "actual_complexity": 2, "contract_type": "Component" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -97040,6 +91018,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -97054,15 +91034,6 @@ "actual_complexity": 2, "contract_type": "Component" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -97091,15 +91062,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Component' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Component" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -97148,6 +91110,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -97197,15 +91161,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -97254,6 +91209,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -97268,15 +91225,6 @@ "actual_complexity": 2, "contract_type": "Component" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -97365,6 +91313,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -97379,15 +91329,6 @@ "actual_complexity": 1, "contract_type": "Component" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Component' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -97469,6 +91410,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -97483,15 +91426,6 @@ "actual_complexity": 2, "contract_type": "Component" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -97575,6 +91509,8 @@ "actual_type": "Component", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -97589,15 +91525,6 @@ "actual_complexity": 2, "contract_type": "Component" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -97625,15 +91552,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -97673,29 +91591,6 @@ ], "value": "Atom" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -99164,15 +93059,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -99225,15 +93111,6 @@ "tag": "RETURNS", "message": "@RETURNS is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -99286,15 +93163,6 @@ "tag": "RETURNS", "message": "@RETURNS is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -99414,6 +93282,8 @@ "actual_type": "Page", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -99518,15 +93388,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -99589,15 +93450,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -100646,15 +94498,6 @@ "actual_complexity": 2, "contract_type": "Component" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -100730,29 +94573,6 @@ "value": "UI (Tests)" } }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -100771,15 +94591,6 @@ ], "value": "{any}" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -101142,38 +94953,6 @@ ], "value": "UI Tests" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -103219,6 +96998,8 @@ "actual_type": "Page", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -103583,15 +97364,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -104086,49 +97858,7 @@ "target_ref": "frontend/src/lib/i18n/index.ts [key:profile.lookup_error]" } ], - "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region ProfileFixtures:Module [TYPE Function]\n// @SEMANTICS: fixtures, profile, ui\n// @PURPOSE: Shared deterministic fixture inputs for profile page integration tests.\n// @INVARIANT: lookupFailedManualFallback.warning is a hardcoded English string; drift risk if i18n key profile.lookup_error changes without updating this fixture.\n// @RELATION: BINDS_TO -> [ProfilePageBindAccountFlowTests]\n// @RELATION: DEPENDS_ON -> [i18n.profile.lookup_error]\n// @RELATION: DEPENDS_ON -> frontend/src/lib/i18n/index.ts [key:profile.lookup_error]\n\nexport const profileFixtures = {\n bindAccountHappyPath: {\n environmentId: \"dev\",\n candidate: \"j.doe\",\n showOnlyMyDashboards: true,\n },\n lookupFailedManualFallback: {\n environmentId: \"dev\",\n warning:\n \"Cannot load Superset accounts for this environment right now. You can enter username manually.\",\n manualUsername: \"john_doe\",\n },\n invalidUsername: {\n supersetUsername: \"John Doe\",\n showOnlyMyDashboards: true,\n },\n};\n\n// #endregion ProfileFixtures:Module\n" @@ -104534,38 +98264,6 @@ ], "value": "UI Tests" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -104611,15 +98309,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -105613,38 +99302,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -106194,38 +99851,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -106718,6 +100343,8 @@ "actual_type": "Page", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -107036,6 +100663,8 @@ "actual_type": "Page", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -107221,6 +100850,8 @@ "actual_type": "Page", "allowed_types": [ "Module", + "Function", + "Class", "Block", "Skill", "Agent" @@ -107581,7 +101212,7 @@ "contract_type": "Page", "file_path": "frontend/src/routes/translate/[id]/+page.svelte", "start_line": 1, - "end_line": 1461, + "end_line": 1476, "tier": "TIER_2", "complexity": 4, "metadata": { @@ -107778,7 +101409,7 @@ ], "anchor_syntax": "region", "tier_source": "AutoCalculated", - "body": "\n\n\n\n\n\n\n\n\n {pageTitle}\n\n\n
\n \n
\n
\n

\n {isNewJob ? $t.translate?.config?.new_title : $t.translate?.config?.edit_title}\n

\n {#if !isNewJob && existingJob}\n

{$t.translate?.config?.id_label.replace('{id}', existingJob.id)}

\n {/if}\n
\n
\n goto('/translate')}\n class=\"px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors\"\n >\n {$t.translate?.config?.cancel}\n \n \n {isSaving ? $t.translate?.config?.saving : $t.translate?.config?.save}\n \n
\n
\n\n \n {#if warnings.length > 0}\n
\n

{$t.translate?.config?.warnings_title}

\n
    \n {#each warnings as w}\n
  • {w}
  • \n {/each}\n
\n
\n {/if}\n\n \n {#if uxState === 'loading'}\n
\n {#each Array(6) as _}\n
\n {/each}\n
\n\n \n {:else if uxState === 'error'}\n
\n

{error || $t.translate?.common?.unknown_error}

\n goto('/translate')}\n class=\"px-4 py-2 bg-primary text-white rounded-lg hover:bg-primary-hover transition-colors\"\n >\n {$t.translate?.config?.back_to_jobs}\n \n
\n\n \n {:else if uxState === 'datasource_unavailable'}\n
\n

\n {$t.translate?.config?.datasource_unavailable}\n

\n
\n\n \n {:else if uxState === 'configured' || uxState === 'saving' || uxState === 'validation_error' || uxState === 'idle'}\n \n
\n \n
\n\n \n
\n
\n \n
\n

{$t.translate?.config?.basic_info}

\n
\n
\n \n \n {#if validationErrors.name}\n

{validationErrors.name}

\n {/if}\n
\n
\n \n \n
\n
\n
\n\n \n
\n

{$t.translate?.config?.datasource}

\n
\n
\n \n \n \n {#each environments as env}\n \n {/each}\n \n
\n
\n \n searchDatasources('')}\n onblur={() => setTimeout(() => (showDatasourceDropdown = false), 150)}\n class=\"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-primary-ring focus-visible:border-primary-ring\"\n placeholder={$t.translate?.config?.datasource_search_placeholder || 'Search datasets...'}\n />\n {#if datasourceLoading}\n
\n {/if}\n {#if showDatasourceDropdown}\n
\n {#each datasourceList as ds}\n selectDatasource(ds)}\n class=\"w-full text-left px-3 py-2 text-sm hover:bg-blue-50 border-b border-gray-100 last:border-b-0\"\n >\n {ds.table_name}\n {ds.schema}\n {ds.database_name} · {ds.database_dialect}\n \n {/each}\n
\n {/if}\n
\n {#if databaseDialect}\n
\n \n {$t.translate?.config?.detected_dialect.replace('{dialect}', databaseDialect)}\n \n
\n {/if}\n
\n\n {#if isColumnsLoading}\n
\n {/if}\n\n {#if columnList.length > 0}\n
\n \n
\n {#each columnList as col}\n
\n {col.name}\n {#if col.type}\n ({col.type})\n {/if}\n {#if isVirtual(col.name)}\n {$t.translate?.config?.virtual}\n {/if}\n
\n {/each}\n
\n
\n {/if}\n
\n\n \n
\n

{$t.translate?.config?.column_mapping}

\n\n \n
\n \n \n \n {#each columnList as col}\n \n {/each}\n \n {#if validationErrors.translationColumn}\n

{validationErrors.translationColumn}

\n {/if}\n
\n\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n \n
\n
\n \n {#if sourceKeyCols.length > 0}\n { sourceKeyCols = []; targetKeyCols = []; }}\n class=\"text-xs text-red-600 hover:text-red-700\"\n >\n {$t.translate?.config?.clear_all}\n \n {/if}\n
\n\n {#if columnList.length === 0}\n
\n {\n sourceKeyCols = [...sourceKeyCols, ''];\n targetKeyCols = [...targetKeyCols, ''];\n }}\n class=\"px-3 py-1 text-xs border border-dashed border-gray-300 rounded text-gray-500 hover:border-primary-ring hover:text-primary\"\n >\n {$t.translate?.config?.add_key_column}\n \n
\n {:else}\n
\n {#each columnList as col}\n toggleSourceKeyCol(col.name)}\n class=\"px-2.5 py-1 text-xs rounded-full border transition-colors\n {sourceKeyCols.includes(col.name)\n ? 'bg-blue-100 border-blue-300 text-blue-700'\n : 'bg-white border-gray-200 text-gray-600 hover:border-gray-300'}\"\n title={isVirtual(col.name) ? $t.translate?.config?.virtual_column_warning.replace('{col}', col.name) : ''}\n >\n {col.name}\n {#if isVirtual(col.name)}\n *\n {/if}\n \n {/each}\n
\n {/if}\n\n {#if sourceKeyCols.length > 0}\n
\n {#each sourceKeyCols as srcCol, idx}\n
\n \n \n updateTargetKeyCol(idx, e.target.value)}\n class=\"flex-1 px-3 py-1.5 border border-gray-300 rounded text-sm font-mono focus-visible:ring-2 focus-visible:ring-primary-ring\"\n />\n {\n sourceKeyCols = sourceKeyCols.filter((_, i) => i !== idx);\n targetKeyCols = targetKeyCols.filter((_, i) => i !== idx);\n }}\n class=\"p-1 text-gray-400 hover:text-red-500\"\n >\n \n \n \n \n
\n {/each}\n
\n {/if}\n {#if validationErrors.targetKeyCols}\n

{validationErrors.targetKeyCols}

\n {/if}\n
\n\n \n
\n \n {#if columnList.length === 0}\n

{$t.translate?.config?.select_datasource_hint}

\n {:else}\n
\n {#each columnList as col}\n toggleContextColumn(col.name)}\n class=\"px-2.5 py-1 text-xs rounded-full border transition-colors\n {contextColumns.includes(col.name)\n ? 'bg-purple-100 border-purple-300 text-purple-700'\n : 'bg-white border-gray-200 text-gray-600 hover:border-gray-300'}\"\n >\n {col.name}\n {#if isVirtual(col.name)}\n *\n {/if}\n \n {/each}\n
\n {/if}\n
\n
\n\n \n
\n

{$t.translate?.config?.target_table_title}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n {#each databases as db}\n \n {/each}\n \n {#if databasesLoading}\n

{$t.translate?.config?.loading_databases}

\n {:else if !environmentId}\n

{$t.translate?.config?.select_environment}

\n {:else}\n

{$t.translate?.config?.target_database_hint}

\n {/if}\n
\n
\n\n \n
\n

{$t.translate?.config?.target_column_mapping_title || 'Target Column Mapping'}

\n

{$t.translate?.config?.target_column_mapping_description || 'Configure which columns receive translated data, language codes, source text, and detected source language during INSERT.'}

\n
\n
\n \n \n

{$t.translate?.config?.target_column_hint}

\n
\n
\n \n \n

{$t.translate?.config?.target_language_column_hint}

\n
\n
\n \n \n

{$t.translate?.config?.target_source_column_hint}

\n
\n
\n \n \n

{$t.translate?.config?.target_source_language_column_hint}

\n
\n
\n
\n
\n\n \n
\n

{$t.translate?.config?.llm_settings}

\n
\n
\n \n \n
\n
\n \n {#if targetLanguages.length === 0}\n

{$t.translate?.config?.target_language_required || 'Select at least one target language'}

\n {/if}\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n \n
\n\n \n
\n \n
\n
\n\n \n
\n

{$t.translate?.config?.terminology_dictionaries}

\n {#if availableDictionaries.length === 0}\n

\n {$t.translate?.config?.no_dictionaries}\n

\n {:else}\n
\n {#each availableDictionaries as dict}\n \n {/each}\n
\n {/if}\n
\n
\n\n
\n\n \n {#if !isNewJob}\n
\n
\n \n
\n
\n {/if}\n\n \n
\n {#if !isNewJob && existingJob}\n {#if !configValid}\n
\n

\n {$t.translate?.preview?.config_incomplete}\n

\n

\n {$t.translate?.preview?.config_requirements}\n

\n
\n {:else}\n
\n

{$t.translate?.preview?.title}

\n \n
\n {/if}\n {:else}\n
\n

{$t.translate?.config?.save_job_first || 'Save the job first'}

\n
\n {/if}\n
\n\n \n
\n {#if !isNewJob && existingJob}\n
\n

{$t.translate?.config?.run_translation}

\n\n \n
\n {$t.translate?.config?.status}:\n \n {getJobStatusLabel(status)}\n \n {#if status === 'DRAFT'}\n {\n try {\n await updateJob(jobId, { status: 'READY' });\n status = 'READY';\n addToast($t.translate?.config?.job_updated, 'success');\n } catch (e) {\n addToast(e?.message || 'Failed to update status', 'error');\n }\n }}\n class=\"ml-auto px-3 py-1 text-xs bg-primary text-white rounded hover:bg-primary-hover transition-colors\"\n >\n {$t.translate?.config?.mark_ready || 'Mark as READY'}\n \n {/if}\n
\n\n
\n \n
\n \n
\n
\n
\n \n \n \n
\n
\n

{$t.translate?.config?.run_incremental}

\n

{$t.translate?.config?.run_incremental_desc}

\n handleTriggerRun(false)}\n disabled={isRunning || status === 'DRAFT'}\n class=\"mt-3 px-5 py-1.5 text-sm font-medium bg-green-600 text-white rounded-lg hover:bg-green-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors\"\n >\n {isRunning && !isFullRun ? $t.translate?.config?.running : $t.translate?.config?.run_translation}\n \n
\n
\n
\n\n \n
\n
\n
\n \n \n \n
\n
\n

{$t.translate?.config?.run_full}

\n

{$t.translate?.config?.run_full_desc}

\n handleTriggerRun(true)}\n disabled={isRunning || status === 'DRAFT'}\n class=\"mt-3 px-5 py-1.5 text-sm font-medium bg-primary text-white rounded-lg hover:bg-primary-hover disabled:opacity-50 disabled:cursor-not-allowed transition-colors\"\n >\n {isRunning && isFullRun ? $t.translate?.config?.running : $t.translate?.config?.full_translate}\n \n
\n
\n
\n
\n\n {#if runError}\n
\n

{runError}

\n
\n {/if}\n\n {#if currentRunId && !runComplete}\n \n {/if}\n\n {#if completedRuns.length > 0}\n
\n
\n

{$t.translate?.config?.recent_runs}

\n showPageBulkReplace = true}\n class=\"px-3 py-1.5 text-xs bg-indigo-600 text-white rounded hover:bg-indigo-700 transition-colors\"\n >\n {$t.translate?.run?.bulk_replace || 'Bulk Replace'}\n \n
\n
\n {#each completedRuns as run}\n
\n
\n
\n
\n {$t.translate?.run?.run_id}\n {run.id}\n \n {run.status}\n \n
\n
\n {$t.translate?.run?.total}: {run.total_records || 0}\n {$t.translate?.run?.success}: {run.successful_records || 0}\n {$t.translate?.run?.failed}: {run.failed_records || 0}\n {$t.translate?.run?.skipped}: {run.skipped_records || 0}\n
\n {#if run.error_message}\n

{run.error_message}

\n {/if}\n
\n toggleRunDetails(run.id)}\n class=\"shrink-0 px-3 py-1.5 text-xs border border-gray-300 text-gray-700 rounded hover:bg-gray-50 transition-colors\"\n >\n {expandedRunIds.includes(run.id)\n ? ($t.translate?.run?.hide_details || 'Hide details')\n : ($t.translate?.run?.show_details || 'Show details')}\n \n
\n {#if expandedRunIds.includes(run.id)}\n
\n \n
\n {/if}\n
\n {/each}\n
\n
\n {/if}\n
\n
\n {:else}\n
\n

{$t.translate?.config?.save_job_first || 'Save the job first'}

\n
\n {/if}\n
\n {/if}\n
\n\n showPageBulkReplace = false}\n\tonApplied={(count) => { showPageBulkReplace = false; loadRunHistory(); }}\n/>\n\n" + "body": "\n\n\n\n\n\n\n\n\n {pageTitle}\n\n\n
\n \n
\n
\n

\n {isNewJob ? $t.translate?.config?.new_title : $t.translate?.config?.edit_title}\n

\n {#if !isNewJob && existingJob}\n

{$t.translate?.config?.id_label.replace('{id}', existingJob.id)}

\n {/if}\n
\n
\n goto('/translate')}\n class=\"px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors\"\n >\n {$t.translate?.config?.cancel}\n \n \n {isSaving ? $t.translate?.config?.saving : $t.translate?.config?.save}\n \n
\n
\n\n \n {#if warnings.length > 0}\n
\n

{$t.translate?.config?.warnings_title}

\n
    \n {#each warnings as w}\n
  • {w}
  • \n {/each}\n
\n
\n {/if}\n\n \n {#if uxState === 'loading'}\n
\n {#each Array(6) as _}\n
\n {/each}\n
\n\n \n {:else if uxState === 'error'}\n
\n

{error || $t.translate?.common?.unknown_error}

\n goto('/translate')}\n class=\"px-4 py-2 bg-primary text-white rounded-lg hover:bg-primary-hover transition-colors\"\n >\n {$t.translate?.config?.back_to_jobs}\n \n
\n\n \n {:else if uxState === 'datasource_unavailable'}\n
\n

\n {$t.translate?.config?.datasource_unavailable}\n

\n
\n\n \n {:else if uxState === 'configured' || uxState === 'saving' || uxState === 'validation_error' || uxState === 'idle'}\n \n
\n \n
\n\n \n
\n
\n \n
\n

{$t.translate?.config?.basic_info}

\n
\n
\n \n \n {#if validationErrors.name}\n

{validationErrors.name}

\n {/if}\n
\n
\n \n \n
\n
\n
\n\n \n
\n

{$t.translate?.config?.datasource}

\n
\n
\n \n \n \n {#each environments as env}\n \n {/each}\n \n
\n
\n \n searchDatasources('')}\n onblur={() => setTimeout(() => (showDatasourceDropdown = false), 150)}\n class=\"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-primary-ring focus-visible:border-primary-ring\"\n placeholder={$t.translate?.config?.datasource_search_placeholder || 'Search datasets...'}\n />\n {#if datasourceLoading}\n
\n {/if}\n {#if showDatasourceDropdown}\n
\n {#each datasourceList as ds}\n selectDatasource(ds)}\n class=\"w-full text-left px-3 py-2 text-sm hover:bg-blue-50 border-b border-gray-100 last:border-b-0\"\n >\n {ds.table_name}\n {ds.schema}\n {ds.database_name} · {ds.database_dialect}\n \n {/each}\n
\n {/if}\n
\n {#if databaseDialect}\n
\n \n {$t.translate?.config?.detected_dialect.replace('{dialect}', databaseDialect)}\n \n
\n {/if}\n
\n\n {#if isColumnsLoading}\n
\n {/if}\n\n {#if columnList.length > 0}\n
\n \n
\n {#each columnList as col}\n
\n {col.name}\n {#if col.type}\n ({col.type})\n {/if}\n {#if isVirtual(col.name)}\n {$t.translate?.config?.virtual}\n {/if}\n
\n {/each}\n
\n
\n {/if}\n
\n\n \n
\n

{$t.translate?.config?.column_mapping}

\n\n \n
\n \n \n \n {#each columnList as col}\n \n {/each}\n \n {#if validationErrors.translationColumn}\n

{validationErrors.translationColumn}

\n {/if}\n
\n\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n \n
\n
\n \n {#if sourceKeyCols.length > 0}\n { sourceKeyCols = []; targetKeyCols = []; }}\n class=\"text-xs text-red-600 hover:text-red-700\"\n >\n {$t.translate?.config?.clear_all}\n \n {/if}\n
\n\n {#if columnList.length === 0}\n
\n {\n sourceKeyCols = [...sourceKeyCols, ''];\n targetKeyCols = [...targetKeyCols, ''];\n }}\n class=\"px-3 py-1 text-xs border border-dashed border-gray-300 rounded text-gray-500 hover:border-primary-ring hover:text-primary\"\n >\n {$t.translate?.config?.add_key_column}\n \n
\n {:else}\n
\n {#each columnList as col}\n toggleSourceKeyCol(col.name)}\n class=\"px-2.5 py-1 text-xs rounded-full border transition-colors\n {sourceKeyCols.includes(col.name)\n ? 'bg-blue-100 border-blue-300 text-blue-700'\n : 'bg-white border-gray-200 text-gray-600 hover:border-gray-300'}\"\n title={isVirtual(col.name) ? $t.translate?.config?.virtual_column_warning.replace('{col}', col.name) : ''}\n >\n {col.name}\n {#if isVirtual(col.name)}\n *\n {/if}\n \n {/each}\n
\n {/if}\n\n {#if sourceKeyCols.length > 0}\n
\n {#each sourceKeyCols as srcCol, idx}\n
\n \n \n updateTargetKeyCol(idx, e.target.value)}\n class=\"flex-1 px-3 py-1.5 border border-gray-300 rounded text-sm font-mono focus-visible:ring-2 focus-visible:ring-primary-ring\"\n />\n {\n sourceKeyCols = sourceKeyCols.filter((_, i) => i !== idx);\n targetKeyCols = targetKeyCols.filter((_, i) => i !== idx);\n }}\n class=\"p-1 text-gray-400 hover:text-red-500\"\n >\n \n \n \n \n
\n {/each}\n
\n {/if}\n {#if validationErrors.targetKeyCols}\n

{validationErrors.targetKeyCols}

\n {/if}\n
\n\n \n
\n \n {#if columnList.length === 0}\n

{$t.translate?.config?.select_datasource_hint}

\n {:else}\n
\n {#each columnList as col}\n toggleContextColumn(col.name)}\n class=\"px-2.5 py-1 text-xs rounded-full border transition-colors\n {contextColumns.includes(col.name)\n ? 'bg-purple-100 border-purple-300 text-purple-700'\n : 'bg-white border-gray-200 text-gray-600 hover:border-gray-300'}\"\n >\n {col.name}\n {#if isVirtual(col.name)}\n *\n {/if}\n \n {/each}\n
\n {/if}\n
\n
\n\n \n
\n

{$t.translate?.config?.target_table_title}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n {#each databases as db}\n \n {/each}\n \n {#if databasesLoading}\n

{$t.translate?.config?.loading_databases}

\n {:else if !environmentId}\n

{$t.translate?.config?.select_environment}

\n {:else}\n

{$t.translate?.config?.target_database_hint}

\n {/if}\n
\n
\n\n \n
\n

{$t.translate?.config?.target_column_mapping_title || 'Target Column Mapping'}

\n

{$t.translate?.config?.target_column_mapping_description || 'Configure which columns receive translated data, language codes, source text, and detected source language during INSERT.'}

\n
\n
\n \n \n

{$t.translate?.config?.target_column_hint}

\n
\n
\n \n \n

{$t.translate?.config?.target_language_column_hint}

\n
\n
\n \n \n

{$t.translate?.config?.target_source_column_hint}

\n
\n
\n \n \n

{$t.translate?.config?.target_source_language_column_hint}

\n
\n
\n
\n\n \n \n
\n\n \n
\n

{$t.translate?.config?.llm_settings}

\n
\n
\n \n \n
\n
\n \n {#if targetLanguages.length === 0}\n

{$t.translate?.config?.target_language_required || 'Select at least one target language'}

\n {/if}\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n \n
\n\n \n
\n \n
\n
\n\n \n
\n

{$t.translate?.config?.terminology_dictionaries}

\n {#if availableDictionaries.length === 0}\n

\n {$t.translate?.config?.no_dictionaries}\n

\n {:else}\n
\n {#each availableDictionaries as dict}\n \n {/each}\n
\n {/if}\n
\n
\n\n
\n\n \n {#if !isNewJob}\n
\n
\n \n
\n
\n {/if}\n\n \n
\n {#if !isNewJob && existingJob}\n {#if !configValid}\n
\n

\n {$t.translate?.preview?.config_incomplete}\n

\n

\n {$t.translate?.preview?.config_requirements}\n

\n
\n {:else}\n
\n

{$t.translate?.preview?.title}

\n \n
\n {/if}\n {:else}\n
\n

{$t.translate?.config?.save_job_first || 'Save the job first'}

\n
\n {/if}\n
\n\n \n
\n {#if !isNewJob && existingJob}\n
\n

{$t.translate?.config?.run_translation}

\n\n \n
\n {$t.translate?.config?.status}:\n \n {getJobStatusLabel(status)}\n \n {#if status === 'DRAFT'}\n {\n try {\n await updateJob(jobId, { status: 'READY' });\n status = 'READY';\n addToast($t.translate?.config?.job_updated, 'success');\n } catch (e) {\n addToast(e?.message || 'Failed to update status', 'error');\n }\n }}\n class=\"ml-auto px-3 py-1 text-xs bg-primary text-white rounded hover:bg-primary-hover transition-colors\"\n >\n {$t.translate?.config?.mark_ready || 'Mark as READY'}\n \n {/if}\n
\n\n
\n \n
\n \n
\n
\n
\n \n \n \n
\n
\n

{$t.translate?.config?.run_incremental}

\n

{$t.translate?.config?.run_incremental_desc}

\n handleTriggerRun(false)}\n disabled={isRunning || status === 'DRAFT'}\n class=\"mt-3 px-5 py-1.5 text-sm font-medium bg-green-600 text-white rounded-lg hover:bg-green-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors\"\n >\n {isRunning && !isFullRun ? $t.translate?.config?.running : $t.translate?.config?.run_translation}\n \n
\n
\n
\n\n \n
\n
\n
\n \n \n \n
\n
\n

{$t.translate?.config?.run_full}

\n

{$t.translate?.config?.run_full_desc}

\n handleTriggerRun(true)}\n disabled={isRunning || status === 'DRAFT'}\n class=\"mt-3 px-5 py-1.5 text-sm font-medium bg-primary text-white rounded-lg hover:bg-primary-hover disabled:opacity-50 disabled:cursor-not-allowed transition-colors\"\n >\n {isRunning && isFullRun ? $t.translate?.config?.running : $t.translate?.config?.full_translate}\n \n
\n
\n
\n
\n\n {#if runError}\n
\n

{runError}

\n
\n {/if}\n\n {#if currentRunId && !runComplete}\n \n {/if}\n\n {#if completedRuns.length > 0}\n
\n
\n

{$t.translate?.config?.recent_runs}

\n showPageBulkReplace = true}\n class=\"px-3 py-1.5 text-xs bg-indigo-600 text-white rounded hover:bg-indigo-700 transition-colors\"\n >\n {$t.translate?.run?.bulk_replace || 'Bulk Replace'}\n \n
\n
\n {#each completedRuns as run}\n
\n
\n
\n
\n {$t.translate?.run?.run_id}\n {run.id}\n \n {run.status}\n \n
\n
\n {$t.translate?.run?.total}: {run.total_records || 0}\n {$t.translate?.run?.success}: {run.successful_records || 0}\n {$t.translate?.run?.failed}: {run.failed_records || 0}\n {$t.translate?.run?.skipped}: {run.skipped_records || 0}\n
\n {#if run.error_message}\n

{run.error_message}

\n {/if}\n
\n toggleRunDetails(run.id)}\n class=\"shrink-0 px-3 py-1.5 text-xs border border-gray-300 text-gray-700 rounded hover:bg-gray-50 transition-colors\"\n >\n {expandedRunIds.includes(run.id)\n ? ($t.translate?.run?.hide_details || 'Hide details')\n : ($t.translate?.run?.show_details || 'Show details')}\n \n
\n {#if expandedRunIds.includes(run.id)}\n
\n \n
\n {/if}\n
\n {/each}\n
\n
\n {/if}\n
\n
\n {:else}\n
\n

{$t.translate?.config?.save_job_first || 'Save the job first'}

\n
\n {/if}\n
\n {/if}\n
\n\n showPageBulkReplace = false}\n\tonApplied={(count) => { showPageBulkReplace = false; loadRunHistory(); }}\n/>\n\n" }, { "contract_id": "DictionariesPage", @@ -108042,38 +101673,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -108220,15 +101819,6 @@ } ], "schema_warnings": [ - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "tag_not_for_contract_type", "tag": "LAYER", @@ -108250,38 +101840,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -108334,15 +101892,6 @@ "tag": "RETURNS", "message": "@RETURNS is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -108427,15 +101976,6 @@ "tag": "RETURNS", "message": "@RETURNS is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -108513,15 +102053,6 @@ "tag": "RETURNS", "message": "@RETURNS is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -109056,15 +102587,6 @@ "tag": "RETURNS", "message": "@RETURNS is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -109126,15 +102648,6 @@ "tag": "RETURNS", "message": "@RETURNS is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -109756,38 +103269,6 @@ "actual_complexity": 1, "contract_type": "Function" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Module", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -111234,6605 +104715,6617 @@ } ], "file_hashes": { - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/tzconversion.pyi": 10947021928755741366, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/containers.py": 5969831151685016772, - "venv/lib/python3.13/site-packages/numpy/lib/_nanfunctions_impl.pyi": 12566839271245057531, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c": 17333399794446198412, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/git/config.py": 1724894144987553201, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/fetch.py": 13937019222549208796, - "venv/lib/python3.13/site-packages/pygments/styles/friendly.py": 13799024964803741891, - "backend/src/api/routes/__tests__/test_clean_release_v2_api.py": 13464989331176891726, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_data_list.py": 1131520422778420758, - "backend/src/api/routes/connections.py": 6022659034509664689, - "venv/lib/python3.13/site-packages/uvicorn/middleware/asgi2.py": 5355343704425405009, - "backend/src/services/clean_release/repositories/policy_repository.py": 10990781278715170404, - "venv/lib/python3.13/site-packages/pygments/lexers/ada.py": 17032408976634308999, - "venv/lib/python3.13/site-packages/pandas/core/internals/__init__.py": 1377108808392195313, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_loop.py": 6502725909989655118, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_union_categoricals.py": 6843679254735807, - "frontend/src/lib/components/translate/TermCorrectionPopup.svelte": 5276611147503580165, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_converters.py": 8869440774594127419, - "venv/lib/python3.13/site-packages/git/objects/__init__.py": 2110615482320355676, - "frontend/src/components/git/GitOperationsPanel.svelte": 5140779139910068800, - "backend/git_repos/remote/test-repo.git/objects/d5/0298a42699f39e4601c0aa23eab07bcb0703c7": 1966124163198751340, - "backend/git_repos/remote/test-repo.git/objects/71/47ad0836409b35c1650dddf5fa6329ba61a824": 16601919569600972016, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/rsa/cli.py": 1753949198467694190, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE": 14230156892574098522, - "venv/lib/python3.13/site-packages/cryptography/__about__.py": 10471312538528457144, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_memmap.py": 8709963808115492688, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayscalars.h": 16142050006935459679, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/function_base.py": 5676611841071163854, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_describe.py": 11923715539897559626, - "venv/lib/python3.13/site-packages/pandas/tests/test_sorting.py": 10751098438703044961, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_take.py": 1216902953519121176, - "venv/lib/python3.13/site-packages/pyasn1/type/char.py": 16518487114777185541, - "venv/lib/python3.13/site-packages/cffi/cffi_opcode.py": 8411344362428947268, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_testing/_warnings.py": 5640964566228306285, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/cursor.py": 8074527784886981710, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_file.py": 5180401483285462901, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_windows_renderer.py": 1076842273781909680, - "venv/lib/python3.13/site-packages/passlib/tests/test_utils.py": 10362977406431569031, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/dtype.pyi": 465999539608816848, - "venv/lib/python3.13/site-packages/git/objects/blob.py": 8972374723153211283, - "frontend/src/lib/components/dataset-review/SemanticLayerReview.svelte": 10805621354490209991, - "frontend/src/routes/settings/DatabaseConnectionsTab.svelte": 834010895835527896, - "venv/lib/python3.13/site-packages/pandas/core/accessor.py": 1188716996113179524, - "backend/src/core/config_models.py": 4264626520931642357, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh26920/two_mods_with_one_public_routine.f90": 7957683453180939605, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_indexing.py": 14552860427542050771, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/__init__.py": 5863110456909134678, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/chararray.pyi": 17340224970247832290, - "backend/src/scripts/test_dataset_dashboard_relations.py": 6373309008834670516, - "venv/lib/python3.13/site-packages/pandas/io/excel/_odswriter.py": 17220892094904423676, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/ecdsa/errors.py": 11755424742691057760, - "venv/lib/python3.13/site-packages/_pytest/_io/pprint.py": 11202117031437223527, - "venv/lib/python3.13/site-packages/pandas/core/arrays/_arrow_string_mixins.py": 16862663427780315543, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_produces_warning.py": 750781117570375777, - "venv/lib/python3.13/site-packages/pandas/io/xml.py": 326466573926392764, - "venv/lib/python3.13/site-packages/pygments/lexers/whiley.py": 218468511185731869, - "venv/lib/python3.13/site-packages/_pytest/_code/__init__.py": 6211607282116942091, - "venv/lib/python3.13/site-packages/packaging/requirements.py": 2896326326372719999, - "frontend/src/components/llm/__tests__/provider_config.integration.test.js": 12605115626277870995, - "venv/lib/python3.13/site-packages/pydantic/plugin/_schema_validator.py": 857640644840976862, - "venv/lib/python3.13/site-packages/pyasn1/type/useful.py": 10313387611927801339, - "venv/lib/python3.13/site-packages/numpy/f2py/cb_rules.py": 11397521081216402594, - "venv/lib/python3.13/site-packages/pyasn1/type/base.py": 6801504886392649787, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/METADATA": 15876173086384975957, - "venv/lib/python3.13/site-packages/jose/__init__.py": 15575670403380555945, - "venv/lib/python3.13/site-packages/numpy/testing/overrides.py": 11819432487830192978, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_set_axis.py": 4097534573847151853, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/LICENSE": 8177430849046795595, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_indexing_slow.py": 12558235638488427077, - "venv/lib/python3.13/site-packages/pygments/lexers/dalvik.py": 5549983892200382076, - "venv/lib/python3.13/site-packages/pygments/lexers/stata.py": 7249891970174867363, - "venv/lib/python3.13/site-packages/pygments/unistring.py": 18037463865539157041, - "venv/lib/python3.13/site-packages/numpy/lib/_polynomial_impl.py": 12771179468704314203, - "backend/tests/test_resource_hubs.py": 3990299394875930767, - "venv/lib/python3.13/site-packages/pandas/core/computation/common.py": 5369352684655954608, - "frontend/src/lib/components/reports/__tests__/fixtures/reports.fixtures.js": 10647302793388244094, - "venv/lib/python3.13/site-packages/jose/backends/__init__.py": 16581763658239070112, - "frontend/build/_app/immutable/nodes/13.vtGvGltt.js": 4586863421425982153, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_einsum.py": 17286384318722237180, - "venv/lib/python3.13/site-packages/pandas/core/indexes/datetimes.py": 14331984919364185787, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/concat.py": 14737724508458849795, - "backend/src/api/routes/assistant/__init__.py": 14959302162073618175, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/revocation.py": 5718403706971163960, - "venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py": 6853955946028131785, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/version.py": 5000350193835202949, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/WHEEL": 5990830714395966792, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_selectable_constructors.py": 84919308502240880, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/exceptions.py": 14982764273485726199, - "venv/lib/python3.13/site-packages/PIL/SgiImagePlugin.py": 6916200065790425497, - "venv/lib/python3.13/site-packages/pygments/lexers/functional.py": 15896849233007178031, - "venv/lib/python3.13/site-packages/pandas/_libs/properties.cpython-313-x86_64-linux-gnu.so": 7092136701092358552, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__multiarray_api.c": 9134176670140958459, - "venv/lib/python3.13/site-packages/numpy/lib/_ufunclike_impl.py": 12251264586530536622, - "venv/lib/python3.13/site-packages/numpy/doc/ufuncs.py": 11706048944901534664, - "venv/lib/python3.13/site-packages/pandas/api/types/__init__.py": 3995030354191071797, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_numerictypes.py": 8836108334624807647, - "venv/lib/python3.13/site-packages/dateutil/tz/tz.py": 5258008267965780817, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/METADATA": 2053484635654179443, - "venv/lib/python3.13/site-packages/requests/packages.py": 7733041271118298220, - "venv/lib/python3.13/site-packages/cffi/model.py": 13544803366359102016, - "venv/lib/python3.13/site-packages/pandas/core/arrays/string_.py": 14865733321317939478, - "frontend/src/components/git/GitInitPanel.svelte": 3002620133377315800, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_asymmetric.py": 6903778603779934572, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/style.py": 10665998898253460114, - "venv/lib/python3.13/site-packages/apscheduler/executors/pool.py": 10344126569001032241, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/licenses/LICENSE.rst": 5960743202700406649, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_conversion.py": 12184280074522274780, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_missing.py": 1963705411068820866, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_select.py": 17823338162428379468, - "venv/lib/python3.13/site-packages/pandas/core/tools/numeric.py": 8510988912136285022, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/relationships.py": 8401569216905291119, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ma.pyi": 8186102816080813799, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/markers.py": 8297667990263004097, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation": 4826455560768665215, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/RECORD": 11904769847385571600, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/PIL/_typing.py": 17407980360703360848, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/util.py": 5252158959761945519, - "venv/lib/python3.13/site-packages/pandas/core/ops/invalid.py": 10186546927135277579, - "venv/lib/python3.13/site-packages/pandas/api/typing/aliases.py": 11194270368147942988, - "venv/lib/python3.13/site-packages/pydantic/annotated_handlers.py": 10186120300163345360, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_reductions.py": 2816859231048302619, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_manylinux.py": 12272275001961360101, - "venv/lib/python3.13/site-packages/pygments/lexers/lisp.py": 11872331622183590758, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/METADATA": 13695483537390128881, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/__init__.py": 7526309124863950484, - "venv/lib/python3.13/site-packages/pydantic/deprecated/decorator.py": 8609500261161560793, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test__datasource.py": 1747755531265478106, - "venv/lib/python3.13/site-packages/pandas/io/sql.py": 12592024569011796790, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/WHEEL": 7795541085444298627, - "venv/lib/python3.13/site-packages/pydantic/json_schema.py": 15678278224696353978, - "venv/lib/python3.13/site-packages/pandas/_libs/window/aggregations.cpython-313-x86_64-linux-gnu.so": 16327106317503267067, - "venv/lib/python3.13/site-packages/pandas/tseries/api.py": 14785127136180503704, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler.py": 1341849861184131135, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/infer.py": 12541904372617915365, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/json.py": 14755215397454910426, - "venv/lib/python3.13/site-packages/click/utils.py": 13475604420010022458, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/wheel.py": 828222664427570058, - "venv/lib/python3.13/site-packages/pygments/lexers/mips.py": 2078929831513352031, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/base.py": 3250660921154829815, - "venv/lib/python3.13/site-packages/PIL/_imagingmorph.cpython-313-x86_64-linux-gnu.so": 11171810899664471137, - "venv/lib/python3.13/site-packages/pygments/lexers/hdl.py": 6772823608124143123, - "venv/lib/python3.13/site-packages/numpy/ma/extras.pyi": 15292036493781556342, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_iloc.py": 16160558158155038350, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/_orm_constructors.py": 4276726508722638048, - "venv/lib/python3.13/site-packages/PIL/_tkinter_finder.py": 14045496501810535432, - "venv/lib/python3.13/site-packages/pandas/_libs/json.cpython-313-x86_64-linux-gnu.so": 2436285663630821963, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_insert.py": 11635164392966270621, - "backend/src/services/clean_release/manifest_service.py": 10873340336255220063, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh27697.f90": 4990763135487995517, - "venv/lib/python3.13/site-packages/pygments/formatters/latex.py": 7514533384468139434, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_seed_sequence.py": 7687465232954593311, - "venv/pyvenv.cfg": 2513607356761047446, - "backend/git_repos/remote/test-repo.git/objects/93/9cc583a18267406014c57617ccb557569f6aaf": 5474754694741999746, - "venv/lib/python3.13/site-packages/pandas/core/internals/ops.py": 4740509262379451243, - "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/WHEEL": 7454950858448014158, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_get.py": 10255752806860493777, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_scalar.py": 2434773821902319678, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/mock.py": 14010776046610111182, - "venv/bin/normalizer": 10972303485259566838, - "frontend/e2e/tests/migration.e2e.js": 12564023806718668322, - "venv/lib/python3.13/site-packages/pygments/lexers/objective.py": 10966124906622044512, - "venv/lib/python3.13/site-packages/pygments/styles/vim.py": 2621036947954523349, - "backend/src/core/__tests__/test_throttled_scheduler.py": 10949494963069000037, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/WHEEL": 13232065379159720345, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_xs.py": 11073752361562791165, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/METADATA": 3618776395694990076, - "venv/lib/python3.13/site-packages/passlib/win32.py": 5311393450489898748, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/conftest.py": 2643915042664055969, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/device_code.py": 6712610002227849281, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_datetimes.py": 8863748366184419339, - "venv/lib/python3.13/site-packages/pygments/lexers/teraterm.py": 16132676290138105984, - "venv/lib/python3.13/site-packages/dotenv/ipython.py": 15904966766060247908, - "venv/lib/python3.13/site-packages/jeepney/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/websockets/sync/connection.py": 2791040669094103200, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_color.py": 3700828402084646308, - "venv/lib/python3.13/site-packages/pandas/tests/apply/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_formats.py": 10263085276270778330, - "venv/lib/python3.13/site-packages/pandas/core/reshape/reshape.py": 5387892304726762127, - "venv/bin/websockets": 12099863324306500376, - "venv/lib/python3.13/site-packages/pandas/tseries/frequencies.py": 2262381949755250516, - "frontend/src/lib/api/__tests__/reports_api.test.js": 11820587361929895100, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/connectionpool.py": 10453724680327835821, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/gcp.py": 12328409672947966867, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_timezones.py": 8042029178538467146, - "venv/lib/python3.13/site-packages/cffi/error.py": 8147505969912539538, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/signals.py": 10390443713463805090, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_period.py": 12593777226419608212, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/strategies.py": 15673926142454922581, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test__exceptions.py": 12099001631178696189, - "venv/lib/python3.13/site-packages/git/refs/remote.py": 4391983355222612205, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/oauth2_session.py": 7076806577412682835, - "venv/lib/python3.13/site-packages/authlib/oidc/discovery/__init__.py": 308178910015974550, - "venv/lib/python3.13/site-packages/numpy/lib/_function_base_impl.pyi": 2628035888703031029, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/mt19937-testset-2.csv": 14641856424618845798, - "venv/lib/python3.13/site-packages/authlib/oidc/core/__init__.py": 16029653645350087968, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_numpyconfig.h": 18150055639397773687, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_resolution.py": 6076761538303762297, - "venv/lib/python3.13/site-packages/pip/_internal/models/installation_report.py": 14534544543677907640, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_normalize.py": 11373923576259976755, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_timedeltas.py": 1175883320586860493, - "venv/lib/python3.13/site-packages/packaging/_tokenizer.py": 7442392076059866359, - "backend/src/api/routes/__tests__/test_profile_api.py": 1724401885939803766, - "backend/src/services/dataset_review/__init__.py": 15781509495698823404, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/base.py": 13269563625127294513, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_time_grouper.py": 3203729024111501071, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/content": 16257335642847993866, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/authorization_server.py": 2913800420669417152, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/httptools_impl.py": 10367325397209016951, - "venv/lib/python3.13/site-packages/pygments/styles/inkpot.py": 10516710471319090846, - "venv/lib/python3.13/site-packages/packaging/_parser.py": 13394093358675095309, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_fillna.py": 7244491410004453166, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/style.py": 15214295655795348821, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/getitem.py": 556339939822508169, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/util.py": 10640907133050862176, - "frontend/build/_app/immutable/nodes/34.DNBovbvk.js": 17557855384122281040, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/RECORD": 1164466882742493155, - "venv/lib/python3.13/site-packages/pip/_internal/configuration.py": 2563100675379605810, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py": 2042509334195547606, - "venv/lib/python3.13/site-packages/passlib/handlers/md5_crypt.py": 7669328623914474137, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/events.py": 15099787454570172797, - "venv/lib/python3.13/site-packages/pygments/formatters/irc.py": 2133711525226123259, - "backend/src/services/clean_release/repositories/compliance_repository.py": 7402628017251283691, - "venv/lib/python3.13/site-packages/pandas/core/indexes/frozen.py": 1419685664276640120, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/yaml/__init__.py": 11044333164208875121, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/cli.py": 6382193953727339271, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval_tree.py": 15789443159423302291, - "backend/src/plugins/translate/preview_resolve_provider.py": 7349483761713339246, - "venv/lib/python3.13/site-packages/python_multipart/exceptions.py": 5971058243218049183, - "frontend/src/lib/api/translate/runs.js": 1220731879179347641, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_insert.py": 6970975909565157982, - "venv/lib/python3.13/site-packages/pandas/io/formats/printing.py": 3054136648863371285, - "venv/lib/python3.13/site-packages/pygments/lexers/archetype.py": 8995143180482517233, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/LICENSE": 6774760218010069963, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_pytables_missing.py": 12154582133989896069, - "venv/lib/python3.13/site-packages/pygments/lexers/robotframework.py": 11507713622179102496, - "frontend/build/_app/immutable/chunks/Dcsp6O9b.js": 9100273388100618859, - "venv/lib/python3.13/site-packages/packaging/licenses/_spdx.py": 16440031845441362300, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_apply.py": 11248068903302454630, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timezones.cpython-313-x86_64-linux-gnu.so": 1137453907225619959, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_sorting.py": 10523740688498427929, - "venv/lib/python3.13/site-packages/numpy/random/mtrand.cpython-313-x86_64-linux-gnu.so": 16146459667121787202, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/auth.py": 13542332344403032059, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_common.h": 14732581790650403546, - "venv/lib/python3.13/site-packages/fastapi/openapi/models.py": 1680354178147364813, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/protocol.py": 932296179250981622, - "venv/lib/python3.13/site-packages/numpy/_typing/_nbit.py": 15498810174380798405, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_astype.py": 11386658862732393123, - "venv/lib/python3.13/site-packages/PIL/XbmImagePlugin.py": 12256750478268246137, - "frontend/build/_app/immutable/chunks/DepzS_bZ.js": 2243340878436625890, - "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/RECORD": 9974324769263969827, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/dml.py": 17308908394336670576, - "backend/test_pat_api.py": 4206656943734821967, - "venv/lib/python3.13/site-packages/starlette/responses.py": 14081178833432955042, - "venv/lib/python3.13/site-packages/numpy/polynomial/legendre.py": 1731362089136926666, - "venv/lib/python3.13/site-packages/pandas/_libs/window/indexers.cpython-313-x86_64-linux-gnu.so": 9380059465932560412, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/errors.py": 17581857895562494222, - "venv/lib/python3.13/site-packages/h11/_abnf.py": 10456996134895429201, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/client_credentials.py": 256154392957334831, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/mypy.ini": 4763385838822685881, - "venv/lib/python3.13/site-packages/jsonschema_specifications/_core.py": 14812112544772987164, - "venv/lib/python3.13/site-packages/numpy/linalg/_linalg.pyi": 9629457630163613604, - "venv/lib/python3.13/site-packages/pip/_internal/operations/install/editable_legacy.py": 8145740626773638218, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_common.py": 2223069451949206319, - "venv/lib/python3.13/site-packages/fastapi/websockets.py": 9910052969532075719, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/setup.py": 5482352991573617756, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/token_validator.py": 13917237710752731397, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_generic.py": 1297407268239966429, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_formats.py": 12299393760307251036, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_function.py": 644452398244782315, - "venv/lib/python3.13/site-packages/passlib/handlers/postgres.py": 14162382430051693313, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE": 17284252174641192866, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufunc_config.pyi": 2005481648919369399, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_polynomial.py": 777287409151500309, - "venv/lib/python3.13/site-packages/pygments/lexers/q.py": 15426466074881683794, - "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/__init__.py": 4390908730288159455, - "venv/lib/python3.13/site-packages/jose/jws.py": 11592462993417182096, - "venv/lib/python3.13/site-packages/authlib/oidc/registration/claims.py": 4161520263207458028, - "venv/lib/python3.13/site-packages/pandas/core/methods/to_dict.py": 4653628436393663485, - "venv/lib/python3.13/site-packages/pyasn1/codec/der/encoder.py": 4790267438222037867, - "venv/lib/python3.13/site-packages/greenlet/PyGreenletUnswitchable.cpp": 3160733517193315684, - "venv/lib/python3.13/site-packages/PIL/ImtImagePlugin.py": 17599267755504817169, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/__init__.py": 6489437464172324468, - "venv/lib/python3.13/site-packages/packaging/_structures.py": 13086687542872305890, - "backend/git_repos/remote/test-repo.git/objects/17/66251d8cb2693136e09ea3def3e776559cb722": 1137762010493457272, - "docker/nginx.conf": 14595959129793115016, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_xml_dtypes.py": 18293138335799308439, - "venv/lib/python3.13/site-packages/keyring/compat/__init__.py": 7578020229796085753, - "frontend/src/lib/components/dataset-review/ExecutionMappingReview.svelte": 6341989866442424314, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-objarr.npy": 9694707264403109829, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/resource_protector.py": 3563910821279222695, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatters/_mapping.py": 13335227913146542481, - "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/test_array_with_attr.py": 6568496539994758985, - "venv/lib/python3.13/site-packages/pygments/lexers/smv.py": 8253688483040957894, - "frontend/build/_app/immutable/chunks/DeED_3EO.js": 8217702195318248974, - "venv/lib/python3.13/site-packages/pip/_internal/commands/freeze.py": 8644678595442275485, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi": 3254633032236269842, - "venv/lib/python3.13/site-packages/numpy/random/_pcg64.cpython-313-x86_64-linux-gnu.so": 5759445712745875888, - "venv/lib/python3.13/site-packages/numpy/_core/_umath_tests.cpython-313-x86_64-linux-gnu.so": 3478629877770507853, - "backend/src/services/reports/type_profiles.py": 4797818932731559550, - "venv/lib/python3.13/site-packages/jeepney/tests/test_wrappers.py": 4813328996575597980, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/basereload.py": 14479857245734482609, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/matrix.pyi": 15667024840812783911, - "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_utils.py": 2329717399120006435, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_drop_duplicates.py": 2397396876872403048, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_riscv_unix.h": 8607317131295864391, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_utils.py": 8668650648802195016, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_sample.py": 4641567828238191927, - "venv/lib/python3.13/site-packages/sqlalchemy/util/deprecations.py": 7020540470348910770, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_encs.py": 9703572751543253904, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarinherit.py": 15240535501243623986, - "venv/lib/python3.13/site-packages/pandas/core/window/__init__.py": 15180240812077877933, - "frontend/build/_app/immutable/chunks/A2HVX04u.js": 9098839649209162783, - "venv/lib/python3.13/site-packages/pandas/_libs/indexing.pyi": 90995502095752726, - "backend/src/plugins/git_plugin.py": 13646960709476277927, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/test_indexing.py": 1947969642791009285, - "venv/lib/python3.13/site-packages/numpy/_core/umath.py": 6132761780113682667, - "venv/lib/python3.13/site-packages/pygments/lexers/roboconf.py": 1335271183806115470, - "venv/lib/python3.13/site-packages/anyio/_core/_exceptions.py": 11969894261631227715, - "backend/src/core/superset_client/_dashboards_list.py": 16574697057051064609, - "backend/src/plugins/translate/__tests__/test_dictionary_crud.py": 11087404884677896422, - "frontend/src/lib/Counter.svelte": 4002153662176313030, - "backend/alembic/versions/543d43d752b8_migrate_old_dictionary_entries_and_.py": 10988663686444687907, - "venv/lib/python3.13/site-packages/annotated_types/test_cases.py": 5123395674810472016, - "venv/lib/python3.13/site-packages/passlib/handlers/sun_md5_crypt.py": 1949993216707182407, - "venv/lib/python3.13/site-packages/pygments/lexers/_mql_builtins.py": 2376212048709413586, - "backend/git_repos/remote/test-repo.git/objects/a1/3525f5f44e26d8fbec3226bd488d14793575a2": 3742572048019652365, - "backend/git_repos/remote/test-repo.git/objects/3e/05ec6ef6504483c4bc7d00f0d0272c38ec661f": 11182016264585388842, - "venv/lib/python3.13/site-packages/PIL/MicImagePlugin.py": 13540523615822507963, - "venv/lib/python3.13/site-packages/pygments/lexers/verification.py": 16645885125604874183, - "venv/lib/python3.13/site-packages/numpy/tests/test_numpy_config.py": 3636377988901907424, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/dtype_api.h": 17040779421165903019, - "venv/lib/python3.13/site-packages/pydantic_core/core_schema.py": 8106298745123589494, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/indexers/utils.py": 5861072573716897447, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py": 5946672289916692272, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_shape_manipulation.py": 12598431412396627042, - "venv/lib/python3.13/site-packages/jeepney/io/tests/test_threading.py": 6656552495241857519, - "backend/src/plugins/translate/preview_prompt_builder.py": 2354938052590494405, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_csv.py": 10737444103906389448, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_asfreq.py": 12721047184483392773, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/linalg.pyi": 269481015135399748, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/git/index/util.py": 5022401275553420722, - "venv/lib/python3.13/site-packages/pandas/core/arrays/boolean.py": 8821671562937866269, - "venv/lib/python3.13/site-packages/fastapi/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timedeltas.cpython-313-x86_64-linux-gnu.so": 17089839649971421164, - "venv/lib/python3.13/site-packages/pip/_internal/cli/__init__.py": 11914508471759255927, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/groupby.py": 12749730954888633240, - "venv/lib/python3.13/site-packages/numpy/ma/extras.py": 7559838309481824664, - "venv/lib/python3.13/site-packages/numpy/linalg/lapack_lite.cpython-313-x86_64-linux-gnu.so": 11074560904305737689, - "venv/lib/python3.13/site-packages/pygments/lexers/actionscript.py": 8829560731160428621, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/offsets.cpython-313-x86_64-linux-gnu.so": 6726636942028566415, - "venv/lib/python3.13/site-packages/_pytest/_io/saferepr.py": 8025234471485188730, - "venv/lib/python3.13/site-packages/packaging/specifiers.py": 2800449842990194437, - "venv/lib/python3.13/site-packages/pydantic/v1/utils.py": 902648247561165429, - "frontend/src/lib/stores/__tests__/test_taskDrawer.js": 13582869875796637016, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libcrypto-2e26a48f.so.3": 3658133521245392852, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_no_deprecated_api.h": 7896028550808252043, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/cacert.pem": 15624463015628939254, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sort_index.py": 14187428934500390688, - "venv/lib/python3.13/site-packages/sqlalchemy/util/_concurrency_py3k.py": 7301817934902711510, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_classes.py": 1440926036579216168, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_to_offset.py": 3929599794655343911, - "venv/lib/python3.13/site-packages/pygments/lexers/capnproto.py": 15713281507099411738, - "venv/lib/python3.13/site-packages/packaging/metadata.py": 9168255069163141470, - "venv/lib/python3.13/site-packages/numpy/f2py/src/fortranobject.h": 5980733638838895780, - "venv/lib/python3.13/site-packages/pandas/core/flags.py": 4690844374637430013, - "venv/lib/python3.13/site-packages/uvicorn/loops/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/licenses/LICENSE": 5669644120528099197, - "frontend/src/routes/+layout.svelte": 2748734957389681795, - "venv/lib/python3.13/site-packages/passlib/tests/test_utils_pbkdf2.py": 17016810698578473773, - "venv/lib/python3.13/site-packages/cryptography/hazmat/_oid.py": 755042927629281577, - "venv/lib/python3.13/site-packages/httpx/_exceptions.py": 18399489130669465891, - "frontend/src/lib/stores/sidebar.js": 8409084311045055153, - "frontend/src/components/tasks/TaskResultPanel.svelte": 7735278333136205649, - "backend/src/api/routes/git/_repo_routes.py": 7367823490321383813, - "backend/src/plugins/translate/orchestrator_exec.py": 16849763962423948658, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_interval_array_equal.py": 15654625365223535344, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_integer/foo77.f": 12000068001851270396, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_aarch64_gcc.h": 8140470539757491899, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/__init__.py": 1197579313959289096, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/nonce.py": 18219168479887197733, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_common.py": 2265736743367879051, - "venv/lib/python3.13/site-packages/keyring/testing/backend.py": 14295829193445781542, - "venv/lib/python3.13/site-packages/git/refs/tag.py": 9979537867501757110, - "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/__init__.py": 6758781485387665020, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_libfrequencies.py": 16302676625743291594, - "venv/lib/python3.13/site-packages/websockets/speedups.pyi": 10322382420215791091, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/cache.py": 15037055977924167732, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_tz_localize.py": 13699016868476153393, - "backend/git_repos/remote/test-repo.git/objects/6a/f2b28e314c04fb4e03476c12d6491213591512": 4526311953587849385, - "venv/lib/python3.13/site-packages/numpy/f2py/use_rules.py": 17277594393032382485, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_list_accessor.py": 8613662386779664039, - "backend/src/core/plugin_loader.py": 245217431000027879, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/introspection.py": 5447179017910128771, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh25337/data.f90": 13833561828029901615, - "venv/lib/python3.13/site-packages/gitdb/fun.py": 55226330810782184, - "venv/lib/python3.13/site-packages/PIL/XpmImagePlugin.py": 6644626557482464312, - "backend/src/core/task_manager/__tests__/test_task_logger.py": 8175976176924379623, - "venv/lib/python3.13/site-packages/numpy/f2py/rules.pyi": 1342380029484127983, - "frontend/src/lib/stores/datasetReviewSession.js": 3915919349382526215, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_truncate.py": 6478126371906156409, - "frontend/test-results/translation.e2e.js-Transla-49baf-te-a-translation-job-via-UI-chromium/trace.zip": 14597002665264983691, - "backend/src/api/routes/translate/_preview_routes.py": 16234500901707822839, - "venv/lib/python3.13/site-packages/pygments/lexers/html.py": 17288963642862550116, - "frontend/eslint.config.js": 14296985543214702398, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby.py": 16180421154734310873, - "venv/lib/python3.13/site-packages/numpy/_globals.py": 8736093011628027941, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/dml.py": 6519732236745017861, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_join.py": 1697622393195784944, - "venv/lib/python3.13/site-packages/websockets/http.py": 9406523480132204760, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/INSTALLER": 17282701611721059870, - "backend/src/models/dataset_review_pkg/_session_models.py": 3332173837386512819, - "venv/bin/f2py": 11006035631504708368, - "venv/lib/python3.13/site-packages/websockets/asyncio/connection.py": 17044409627448400723, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/RECORD": 6187512110158566509, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/types.py": 13384984564922916167, - "venv/lib/python3.13/site-packages/pandas/core/ops/__init__.py": 4049432353810047365, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_map.py": 1115471561925426082, - "venv/lib/python3.13/site-packages/fastapi/middleware/__init__.py": 5289703478893407762, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_tooltip.py": 853808724844451770, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_operators.py": 12686786829906210592, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/controller.py": 5450931608244830335, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_is_monotonic.py": 12899848089975919515, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_writers.py": 103545128256076790, - "venv/lib/python3.13/site-packages/uvicorn/config.py": 17317823506849880916, - "venv/lib/python3.13/site-packages/starlette/concurrency.py": 9835859079437525910, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_validate.py": 12789481642730855139, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/versioncontrol.py": 13742159245132241245, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_rolling.py": 11118160360072677569, - "frontend/src/routes/dashboards/+page.svelte": 12050524336689510248, - "venv/lib/python3.13/site-packages/numpy/testing/_private/utils.pyi": 17639497083041129225, - "venv/lib/python3.13/site-packages/pandas/core/_numba/executor.py": 2205130934861422769, - "backend/src/api/routes/git/_merge_routes.py": 2019590524299108754, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/api.py": 9829629144629841277, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/jwt.py": 9642615960197748105, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/testing.pyi": 16263777835572515739, - "venv/lib/python3.13/site-packages/pandas/core/window/common.py": 17956497339875932377, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_at_time.py": 15352346149584081864, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/type_check.pyi": 1599910480066368464, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/einsumfunc.py": 9944042006439149561, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/tree.py": 4991806303236874829, - "venv/lib/python3.13/site-packages/pydantic/v1/env_settings.py": 6194387033830177219, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/np_datetime.cpython-313-x86_64-linux-gnu.so": 7840846965295537844, - "venv/lib/python3.13/site-packages/urllib3/__init__.py": 1854778274753799815, - "run_clean_tui.sh": 14305120550349644601, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_array_to_datetime.py": 3467480435568672840, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/registry.py": 13306388361671753373, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_real.py": 5283415082530228716, - "venv/lib/python3.13/site-packages/anyio/to_process.py": 16627578499791368365, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_monotonic.py": 14648437502004398715, - "backend/src/schemas/settings.py": 7182606947764184429, - "backend/src/services/git/_branch.py": 9229581689526423389, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_timedelta.py": 12822713918114715561, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_ccalendar.py": 8819357623337533489, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/apply.py": 3906017176873949738, - "venv/lib/python3.13/site-packages/numpy/polynomial/polyutils.py": 12355826783958402233, - "frontend/src/components/tools/ConnectionList.svelte": 13697819455163305485, - "venv/lib/python3.13/site-packages/apscheduler/triggers/calendarinterval.py": 12481650996882675949, - "venv/lib/python3.13/site-packages/fastapi/dependencies/models.py": 8626894872248212015, - "venv/lib/python3.13/site-packages/httpx/_transports/default.py": 8391302827983907910, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi": 1846673463183660140, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix.py": 4440659352851541547, - "venv/lib/python3.13/site-packages/pydantic/v1/error_wrappers.py": 5701679786078971939, - "frontend/src/components/git/GitManager.svelte": 2759220622954168718, - "frontend/src/lib/components/layout/TaskDrawer.svelte": 11803999908168836613, - "frontend/src/components/MissingMappingModal.svelte": 11264881226066623003, - "backend/src/services/clean_release/repository.py": 11403333156347178483, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_infer_datetimelike.py": 17304541521108700317, - "venv/lib/python3.13/site-packages/pandas/compat/pickle_compat.py": 11073483984394766474, - "venv/lib/python3.13/site-packages/pycparser/ply/ctokens.py": 1599952198962458730, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/base.py": 10205051944814316388, - "frontend/src/services/taskService.js": 11368052191249479533, - "backend/src/services/__init__.py": 15123879863527585264, - "venv/lib/python3.13/site-packages/pandas/io/json/_json.py": 1393095374713367445, - "venv/lib/python3.13/site-packages/numpy/f2py/cb_rules.pyi": 12275242654430570028, - "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/METADATA": 14158024963562115116, - "venv/lib/python3.13/site-packages/anyio/_backends/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/RECORD": 12015288851076448205, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/_dtype.pyi": 17662618580381221543, - "venv/lib/python3.13/site-packages/pygments/lexers/text.py": 10572727755736597715, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/random.pyi": 1808392097712315455, - "venv/lib/python3.13/site-packages/psycopg2/_psycopg.cpython-313-x86_64-linux-gnu.so": 13471342289207537479, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py": 17106903014205241774, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_align.py": 6050248183327934780, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_file_handling.py": 732772718210067599, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/conftest.py": 4124267277224879990, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test__version.py": 9037916251087760255, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/vectorized.pyi": 15498895254516573071, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_abc.py": 10164280045317807365, - "venv/lib/python3.13/site-packages/pygments/lexers/ul4.py": 9580182474451220952, - "venv/lib/python3.13/site-packages/pyasn1/compat/__init__.py": 5902203086150636670, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_endian.h": 2761502363895204652, - "backend/src/plugins/storage/__init__.py": 5046554941488079204, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_subclass.py": 10949229764696473939, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_dict_compat.py": 18196543090455290455, - "venv/lib/python3.13/site-packages/greenlet/tests/test_contextvars.py": 6077482318964702132, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/response.py": 9594165377270752433, - "venv/lib/python3.13/site-packages/pygments/lexers/_scilab_builtins.py": 17453812809700086888, - "backend/src/core/utils/superset_context_extractor/_parsing.py": 17093712504833649098, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata_legacy.py": 9226692984248279094, - "backend/src/api/__init__.py": 5287505122015708040, - "backend/alembic/env.py": 14677445323675634060, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_numeric.py": 17391095502314929042, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9207/parameter.py": 2793853093222900337, - "venv/lib/python3.13/site-packages/numpy/ctypeslib/_ctypeslib.pyi": 10360538024015064036, - "venv/lib/python3.13/site-packages/greenlet/tests/test_generator.py": 14156412320760444199, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/reduce.py": 14976712507854054776, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_setops.py": 15196593522537569500, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/json.py": 15085143436056608404, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh2848.f90": 5799106109999071412, - "venv/lib/python3.13/site-packages/anyio/from_thread.py": 7973678341601453474, - "venv/lib/python3.13/site-packages/PIL/_imagingtk.pyi": 18222325750818585549, - "frontend/build/_app/immutable/chunks/BpdmWLbs.js": 1386912453729835223, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo_free.f90": 8821492401453445757, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/etcd.py": 4078354986605069279, - "frontend/src/components/MappingTable.svelte": 17937756426921453860, - "backend/src/api/routes/__tests__/test_connections_routes.py": 18044815559820610056, - "venv/lib/python3.13/site-packages/starlette/middleware/httpsredirect.py": 16837082808103815044, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/authenticate_client.py": 16886645731942472285, - "venv/lib/python3.13/site-packages/pandas/core/indexes/datetimelike.py": 4356700619632833878, - "venv/lib/python3.13/site-packages/websockets/asyncio/server.py": 885415484558949506, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_setitem.py": 10389770446834773837, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_join.py": 2585969863606902743, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_freq_attr.py": 17290447066681837965, - "frontend/src/lib/ui/Card.svelte": 3442526978752993023, - "venv/lib/python3.13/site-packages/PIL/DcxImagePlugin.py": 11767274218348117481, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/core.py": 2300277198409164253, - "venv/lib/python3.13/site-packages/idna/idnadata.py": 200840860629525970, - "venv/lib/python3.13/site-packages/requests/exceptions.py": 6474239743209354989, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_py.py": 6428078990080243608, - "venv/lib/python3.13/site-packages/PIL/TiffTags.py": 8688883943071546469, - "venv/lib/python3.13/site-packages/pip/_internal/commands/lock.py": 14782882714168174465, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/METADATA": 11419135077900073883, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_indexers.py": 6773751569163287047, - "frontend/src/types/backup.ts": 1741234034896689348, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA_py.py": 2494967094400350388, - "frontend/src/routes/reports/+page.svelte": 17831076184881844976, - "venv/lib/python3.13/site-packages/keyring/testing/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_pick.py": 15760492005471315814, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_version.pyi": 18093228021414910594, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_nunique.py": 8450574751331186943, - "venv/lib/python3.13/site-packages/pygments/lexers/qvt.py": 1895735583818227972, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_interval.py": 2613503970235591726, - "frontend/build/_app/immutable/entry/app.CKeEP_5R.js": 7342639471182240759, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/__init__.py": 3577295959173028042, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/WHEEL": 7127684561765977531, - "venv/lib/python3.13/site-packages/numpy/lib/__init__.py": 12211229657513986410, - "venv/lib/python3.13/site-packages/pandas/tests/config/test_localization.py": 9524481848419616725, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/__init__.py": 7060345458485901709, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_cumulative.py": 8178093067175155877, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/PIL/ImageTransform.py": 7825940907094338808, - "venv/lib/python3.13/site-packages/dateutil/__init__.py": 17666544837260663800, - "frontend/src/routes/translate/dictionaries/+page.svelte": 1038433841421198720, - "venv/lib/python3.13/site-packages/pandas/tests/interchange/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/jvm.py": 897669925284011089, - "venv/lib/python3.13/site-packages/smmap/mman.py": 9091562788592406032, - "venv/lib/python3.13/site-packages/pandas/core/indexes/range.py": 3838277376774246164, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_set_value.py": 4166411740676564820, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_three_greenlets.py": 10923534235697247269, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/getlimits.pyi": 93747984191461691, - "venv/lib/python3.13/site-packages/starlette/requests.py": 4582424111350387010, - "venv/lib/python3.13/site-packages/authlib/common/errors.py": 16082974228565515177, - "venv/lib/python3.13/site-packages/pandas/core/arrays/string_arrow.py": 16997970607998635570, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/test_interval.py": 18040371224712437126, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_dst.py": 12243642467695371088, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/evaluator.py": 6348022789899831255, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/npyio.pyi": 15811156298637131744, - "venv/lib/python3.13/site-packages/pandas/core/indexes/timedeltas.py": 13653393430363556843, - "frontend/build/_app/immutable/chunks/CbSNjLmH.js": 12377182002440958587, - "venv/lib/python3.13/site-packages/pydantic/validate_call_decorator.py": 11130572937843915026, - "backend/src/core/utils/superset_context_extractor/__init__.py": 1074191108198498747, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_hashing.py": 11119284926039008503, - "venv/lib/python3.13/site-packages/pyasn1/codec/cer/decoder.py": 17559787396729804535, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_indexing.py": 14461606056665485421, - "venv/lib/python3.13/site-packages/ecdsa/keys.py": 10281170640484982154, - "venv/lib/python3.13/site-packages/idna/codec.py": 4260241549062101779, - "venv/lib/python3.13/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0": 116215608212382352, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/__init__.py": 5933622200264572885, - "venv/lib/python3.13/site-packages/pandas/io/clipboards.py": 5183212433608887727, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/properties.py": 5799883762127872919, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/_configtool.py": 2946953194004101078, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_strings.py": 17398806130402098912, - "venv/lib/python3.13/site-packages/urllib3/util/connection.py": 15511685694589961094, - "venv/lib/python3.13/site-packages/uvicorn/workers.py": 7213290478118197047, - "frontend/src/lib/stores/translationRun.js": 10005138082029605368, - "backend/src/plugins/translate/__tests__/test_dictionary_utils.py": 12007616543185225081, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_csky_gcc.h": 12929785267195988209, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/models.py": 16636119441941357281, - "venv/lib/python3.13/site-packages/anyio/functools.py": 4300781896135050327, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/licenses/LICENSE": 10253862887434903467, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_cumulative.py": 11752712818547022872, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/util.py": 1520899420719605380, - "venv/lib/python3.13/site-packages/pygments/lexers/rebol.py": 10460732731157940232, - "backend/src/core/task_manager/__tests__/test_context.py": 4211690952139950648, - "venv/lib/python3.13/site-packages/passlib/tests/__init__.py": 16543763165305017760, - "venv/lib/python3.13/site-packages/pip/_internal/utils/unpacking.py": 106471890743211548, - "backend/src/api/routes/dashboards/_router.py": 8641007051243802224, - "backend/src/api/routes/translate/_dictionary_routes.py": 5480137091791704976, - "venv/lib/python3.13/site-packages/pydantic/v1/fields.py": 3948219773415054006, - "backend/src/plugins/translate/scheduler.py": 7566547314463268121, - "backend/git_repos/remote/test-repo.git/description": 15262637409357137373, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_docs.py": 17898499890274685198, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_iteration.py": 2118501258411211851, - "backend/src/plugins/translate/preview_token_estimator.py": 254295902082954386, - "backend/src/core/task_manager/__init__.py": 15991802770215124472, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/unicode_comment.f90": 11326797716215117266, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/licenses/AUTHORS": 2987771679926243782, - "venv/lib/python3.13/site-packages/pydantic/v1/version.py": 2758971830527526972, - "venv/lib/python3.13/site-packages/pydantic/_internal/_internal_dataclass.py": 13206778611516171760, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/declarative/extensions.py": 217122171232375592, - "venv/lib/python3.13/site-packages/starlette/staticfiles.py": 11256974306202558529, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/flatiter.pyi": 9598576095384661517, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/RECORD": 16342326945648353387, - "venv/lib/python3.13/site-packages/passlib/tests/__main__.py": 16477180140297957650, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/astype.py": 9925183787411796679, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/filewrapper.py": 17786759398959482432, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_deprecations.py": 6015734648984591027, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/einsumfunc.pyi": 8902765738896588686, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_ufunc.py": 5025605639221470838, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reset_index.py": 5946666595195952693, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_highlight.py": 7573043358244876807, - "venv/lib/python3.13/site-packages/numpy/core/__init__.pyi": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_resample_api.py": 3278209206670699265, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_interval_pyarrow.py": 3849382723890414899, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_construction.py": 6564829381134214401, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_online.py": 11850497659869773510, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html_table.tpl": 17198355067645888735, - "venv/lib/python3.13/site-packages/git/objects/tag.py": 7954808535585493300, - "venv/lib/python3.13/site-packages/dateutil/tz/win.py": 8427821225251397364, - "venv/lib/python3.13/site-packages/numpy/random/__init__.pyi": 13833571330152615376, - "frontend/src/routes/+layout.ts": 8392799000856778740, - "backend/src/plugins/translate/service_inline_correction.py": 11066393548140180037, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_boxplot_method.py": 7635131059308651529, - "backend/git_repos/remote/test-repo.git/refs/heads/preprod": 2288780285329550368, - "venv/lib/python3.13/site-packages/pandas/core/indexing.py": 15507869313676722071, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7636/__init__.py": 913610541217778747, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_getitem.py": 11882213323878588707, - "backend/git_repos/remote/test-repo.git/objects/48/c3fde4d5fff5bf98e9bcaa5f328b199aa18292": 6121250272621110311, - "venv/lib/python3.13/site-packages/websockets/utils.py": 17624459810483092475, - "venv/lib/python3.13/site-packages/websockets/asyncio/async_timeout.py": 7267209982032642028, - "venv/lib/python3.13/site-packages/certifi/__main__.py": 13417658012431779061, - "venv/lib/python3.13/site-packages/numpy/lib/_format_impl.py": 1809069379864985298, - "venv/lib/python3.13/site-packages/attrs/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/validator.py": 14200019408839159476, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_timestamp.py": 12253372102602993034, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_clip.py": 11111183698178681331, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_random.py": 4179188367630060654, - "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_algorithms.py": 15219408648894515493, - "venv/lib/python3.13/site-packages/numpy/__init__.py": 2331213407497901634, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/token.py": 11655733747403312358, - "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py": 2375452080667815941, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pip/_internal/self_outdated_check.py": 991029278889407558, - "venv/lib/python3.13/site-packages/numpy/core/arrayprint.py": 9652368112174245943, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_searchsorted.py": 12074107109575676897, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_fillna.py": 8802093795040069423, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_sparc_sun_gcc.h": 2915128971664712180, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/shape.py": 13410030168622484801, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_argsort.py": 7320661835159648143, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/url.py": 1558176735588971829, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/ext.py": 8361831054662096695, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi": 1065808244870331598, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_timedelta_range.py": 15081095442418142820, - "venv/lib/python3.13/site-packages/pandas/tests/strings/__init__.py": 5060190599837877599, - "venv/lib/python3.13/site-packages/rsa/transform.py": 12261738253972114335, - "venv/lib/python3.13/site-packages/numpy/f2py/diagnose.py": 503331864022631297, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64-testset-2.csv": 5423145402839576695, - "venv/lib/python3.13/site-packages/_pytest/mark/structures.py": 12237146603608917650, - "venv/lib/python3.13/site-packages/pandas/tests/window/conftest.py": 10673264126684571493, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_value_counts.py": 5534713464063604301, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_formats.py": 13500155167624433622, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/METADATA": 9458019064618635438, - "venv/lib/python3.13/site-packages/git/cmd.py": 8854786163152637148, - "frontend/postcss.config.js": 5714274776976071678, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_internals.py": 10472508540875131797, - "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/scipy_sparse.py": 2091608752719976909, - "venv/lib/python3.13/site-packages/_pytest/setupplan.py": 7496801885995567141, - "venv/lib/python3.13/site-packages/PIL/QoiImagePlugin.py": 17663704273100331654, - "backend/src/models/dataset_review_pkg/_mapping_models.py": 6232602161916984422, - "backend/src/services/clean_release/repositories/__init__.py": 9926779835387630811, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/numeric.py": 14451517189908259173, - "venv/lib/python3.13/site-packages/PIL/_webp.cpython-313-x86_64-linux-gnu.so": 11070012119632935103, - "venv/lib/python3.13/site-packages/uvicorn/lifespan/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/devicetree.py": 9820277168995231927, - "frontend/build/_app/immutable/nodes/25.Diztcgpz.js": 6833313483301491246, - "frontend/build/_app/immutable/nodes/6.CtHJXRDQ.js": 1105946719271143546, - "venv/lib/python3.13/site-packages/numpy/_core/_asarray.py": 3468915833437229425, - "venv/lib/python3.13/site-packages/pip/_internal/utils/compatibility_tags.py": 15862649917149158291, - "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/base.py": 15872835330892203433, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_numpy_array_equal.py": 2089426719574307767, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/WHEEL": 12146818530001975731, - "venv/lib/python3.13/site-packages/cffi/_imp_emulation.py": 17246725564704952212, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_analytics.py": 4510712334676848202, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_api.py": 13319208721442328400, - "venv/lib/python3.13/site-packages/pygments/lexers/_tsql_builtins.py": 829193091321611630, - "backend/src/core/migration/risk_assessor.py": 1061977005072298440, - "backend/src/api/routes/settings.py": 12171289292260529147, - "backend/src/plugins/translate/__tests__/test_orchestrator.py": 5221172340992429147, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/RECORD": 7810411361439269754, - "venv/lib/python3.13/site-packages/attr/_compat.py": 4016698632899969390, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_categorical.py": 10863578845754547294, - "venv/lib/python3.13/site-packages/numpy/f2py/rules.py": 9322914583460630877, - "backend/alembic/versions/8dd0a93af539_drop_deprecated_source_language_column_.py": 3574830605384611294, - "venv/lib/python3.13/site-packages/pygments/lexers/wgsl.py": 9718384325049172855, - "venv/lib/python3.13/site-packages/starlette/middleware/sessions.py": 11719848399661632707, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/__init__.py": 15130871412783076140, - "frontend/src/app.html": 10207534912546549080, - "venv/lib/python3.13/site-packages/greenlet/TGreenlet.cpp": 4121171004360760212, - "venv/lib/python3.13/site-packages/passlib/utils/pbkdf2.py": 15802959653228956404, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/reshaping.py": 18085648077811502689, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_arithmetic.py": 976970179757115407, - "frontend/build/_app/immutable/nodes/14.1LDN7uQu.js": 17622239034125797956, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_shares_memory.py": 2911029123657970431, - "venv/lib/python3.13/site-packages/websockets/headers.py": 13587146967490088657, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_masm.obj": 2884737706935637437, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_stride_tricks.py": 1064774375151677743, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/sqltypes.py": 2952996080192295188, - "venv/lib/python3.13/site-packages/uvicorn/importer.py": 5449629250971153435, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/METADATA": 1684451390569121499, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/filter.py": 16846063190466267618, - "venv/lib/python3.13/site-packages/pygments/lexers/rnc.py": 9747352274729854620, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_is_monotonic.py": 4626065848596214108, - "venv/lib/python3.13/site-packages/jsonschema/tests/typing/test_all_concrete_validators_match_protocol.py": 14824388798676578409, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_indexing.py": 17106010337164216722, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_reductions.py": 8258332365408303156, - "venv/lib/python3.13/site-packages/numpy/_core/records.pyi": 14194354215405544730, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/licenses/LICENSE": 1424673738228762254, - "venv/lib/python3.13/site-packages/pygments/lexers/elm.py": 14683437310498104916, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/jwk.py": 6458001384702613165, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufunc_config.pyi": 11754104063443791746, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/base.py": 16714704323747942110, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arcsinh.csv": 13695545125848146013, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/result.py": 8306497889916212025, - "venv/lib/python3.13/site-packages/PIL/_deprecate.py": 15076725072094847812, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_real.f90": 9097998998863007705, - "backend/src/api/auth.py": 13309519397410879911, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/signature.py": 3614545297259098566, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_compression.py": 8577756801858495168, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_index_col.py": 17604191644943383567, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_dropna.py": 17272771246760486947, - "venv/lib/python3.13/site-packages/anyio/_backends/_trio.py": 4764555436057754985, - "venv/lib/python3.13/site-packages/apscheduler/triggers/date.py": 9545774812177853725, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/privatemod.f90": 8999550841368314739, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/authlib/common/urls.py": 13627272625165922482, - "venv/lib/python3.13/site-packages/pandas/core/reshape/pivot.py": 4736553530021653868, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_read_fwf.py": 13684564756628524738, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_extras.py": 16160090335191788104, - "venv/lib/python3.13/site-packages/ecdsa/test_pyecdsa.py": 14542286382742044648, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame.py": 16757570551941104401, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_pandas.py": 10894229569442891394, - "scripts/gen_semantics.py": 11397714264377363083, - "venv/lib/python3.13/site-packages/numpy/polynomial/polynomial.pyi": 9935587108964614958, - "venv/lib/python3.13/site-packages/pydantic/v1/parse.py": 5875950480538559709, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/pandas/tests/test_optional_dependency.py": 7930709646653025355, - "venv/lib/python3.13/site-packages/pygments/styles/fruity.py": 7925019839136894457, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_datetime.py": 7862725028865965163, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/stride_tricks.pyi": 5844806555773292985, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/path_registry.py": 8410829659513707067, - "venv/lib/python3.13/site-packages/yaml/representer.py": 10550136298978225013, - "venv/lib/python3.13/site-packages/pygments/lexers/_lasso_builtins.py": 4006621424665751347, - "venv/lib/python3.13/site-packages/pygments/lexers/shell.py": 3842338968014057744, - "frontend/src/lib/components/assistant/AssistantClarificationCard.svelte": 6722890639215637790, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multiprocessing.py": 5522490547285108448, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_setops.py": 10550603120090683350, - "backend/src/api/routes/dashboards/__init__.py": 15214026957520044598, - "venv/lib/python3.13/site-packages/anyio/_core/_streams.py": 6436461519284884601, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_comparison.py": 4611207880323503098, - "backend/src/services/clean_release/facade.py": 11231787492455424065, - "venv/lib/python3.13/site-packages/numpy/ma/core.pyi": 4829891173366130328, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_downcast.py": 10399746645741452200, - "venv/lib/python3.13/site-packages/pandas/_typing.py": 17795648994662434211, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/identity.py": 326059526167697655, - "venv/lib/python3.13/site-packages/pygments/lexers/hare.py": 8693002231020751711, - "venv/lib/python3.13/site-packages/greenlet/tests/test_gc.py": 6383305344377882524, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufunc_config.py": 14728417910466146460, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_extint128.py": 11074657869101074458, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_old_base.py": 191359377446257900, - "venv/lib/python3.13/site-packages/httpx/_urlparse.py": 8270294590945652412, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/create.py": 16693261531832306870, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-sinh.csv": 12358602501260667480, - "venv/lib/python3.13/site-packages/charset_normalizer/cli/__main__.py": 2148876100501691980, - "venv/lib/python3.13/site-packages/iniconfig/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic/v1/config.py": 12050640083719340958, - "venv/lib/python3.13/site-packages/pygments/__main__.py": 13200500591994479045, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/core.py": 14576109242055156193, - "backend/tests/core/test_migration_engine.py": 7419155921858935534, - "venv/lib/python3.13/site-packages/keyring/backends/SecretService.py": 17482492072907438453, - "venv/lib/python3.13/site-packages/numpy/_pytesttester.py": 17737911110576747508, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_reindex.py": 12459492712890114705, - "venv/lib/python3.13/site-packages/numpy/f2py/__init__.pyi": 3566887042414273892, - "venv/lib/python3.13/site-packages/PIL/ImageChops.py": 16368812693381154921, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_join.py": 17874591841487372992, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/auto.py": 15947958974558543657, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_style.py": 10405592363651914796, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/__init__.py": 4014740126161973332, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_core.py": 12712110303898046818, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/android.py": 8607703347015852195, - "frontend/build/_app/immutable/chunks/DoN5Iioi.js": 15272261932303525049, - "venv/lib/python3.13/site-packages/numpy/_core/strings.pyi": 1981676808027146409, - "venv/lib/python3.13/site-packages/pandas/core/computation/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/interval.cpython-313-x86_64-linux-gnu.so": 8964760352224019544, - "backend/src/core/auth/security.py": 8289703096420999159, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro_py.py": 11991492232381887787, - "venv/lib/python3.13/site-packages/numpy/_globals.pyi": 12839879732484756979, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_api.py": 10514120091521589282, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_quantile.py": 4225791949463893856, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_fillna.py": 16297834601116528166, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/WHEEL": 7454950858448014158, - "venv/lib/python3.13/site-packages/rsa/common.py": 10921682819204792805, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_functions.py": 16376319335326812580, - "venv/lib/python3.13/site-packages/pandas/tests/extension/uuid/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_join.py": 13115782559805895662, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/instrumentation.py": 13198832283145198959, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/generator_pcg64_np126.pkl.gz": 9677994062701347206, - "venv/lib/python3.13/site-packages/ecdsa/rfc6979.py": 11564966030899162026, - "venv/lib/python3.13/site-packages/pandas/core/_numba/extensions.py": 4132402557064663751, - "venv/lib/python3.13/site-packages/fastapi/logger.py": 11590581556317053213, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_value_counts.py": 12340872812120847127, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/METADATA": 7788873460115135563, - "venv/lib/python3.13/site-packages/PIL/FpxImagePlugin.py": 18245056799205041866, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__ufunc_api.h": 4516275133897904047, - "venv/lib/python3.13/site-packages/pygments/lexers/int_fiction.py": 8806961041808606055, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_arithmetic.py": 13320788210970132239, - "venv/lib/python3.13/site-packages/pygments/lexers/qlik.py": 3881663935630350152, - "venv/lib/python3.13/site-packages/pygments/lexers/smithy.py": 10789533877863290582, - "backend/src/core/superset_client/_datasets.py": 4813403545392307482, - "backend/src/services/auth_service.py": 17642785219801916280, - "venv/lib/python3.13/site-packages/numpy/lib/_index_tricks_impl.py": 13574106461973044500, - "venv/lib/python3.13/site-packages/numpy/_core/_methods.py": 16805668769357938792, - "venv/lib/python3.13/site-packages/pandas/_libs/tslib.cpython-313-x86_64-linux-gnu.so": 10742615805788605480, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_na_indexing.py": 8712547126522523899, - "backend/src/services/__tests__/test_health_service.py": 5498183976797488518, - "backend/src/plugins/translate/_batch_sizer.py": 14803922067332951736, - "venv/lib/python3.13/site-packages/httpcore/_sync/connection_pool.py": 8159971229245441880, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/METADATA": 3448868793744358515, - "venv/lib/python3.13/site-packages/pandas/core/reshape/melt.py": 14109947554124551986, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_period.py": 3419297908709788013, - "venv/lib/python3.13/site-packages/pyasn1/type/opentype.py": 340146737126677655, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/sql.py": 13315906751371033170, - "venv/lib/python3.13/site-packages/pydantic/v1/types.py": 10761779263335288559, - "frontend/src/lib/stores/assistantChat.js": 13807808925025688939, - "venv/lib/python3.13/site-packages/rapidfuzz/__init__.py": 12462153783886855740, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_repr.py": 11737029058271003097, - "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/__init__.py": 9083396324667433335, - "venv/lib/python3.13/site-packages/gitdb/db/loose.py": 17467413653016810702, - "venv/lib/python3.13/site-packages/dateutil/utils.py": 7067026915090881998, - "venv/lib/python3.13/site-packages/pydantic/_internal/_model_construction.py": 694471028676746110, - "backend/src/schemas/__tests__/test_settings_and_health_schemas.py": 13526616847756581689, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/base.py": 13454394827268856575, - "backend/tests/services/clean_release/test_compliance_task_integration.py": 682622548217611215, - "venv/lib/python3.13/site-packages/pygments/styles/autumn.py": 8750937312198920971, - "venv/lib/python3.13/site-packages/numpy/_core/_ufunc_config.pyi": 9291444594181042963, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/adapter.py": 5908944827805063108, - "venv/lib/python3.13/site-packages/passlib/totp.py": 14590474309565233318, - "venv/lib/python3.13/site-packages/passlib/handlers/misc.py": 18255658377109333797, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/__init__.py": 16532856661318424631, - "venv/lib/python3.13/site-packages/keyring/http.py": 1408024724330078009, - "venv/lib/python3.13/site-packages/rsa/py.typed": 11041940105507257053, - "venv/lib/python3.13/site-packages/pandas/core/computation/parsing.py": 3084943521520476999, - "venv/lib/python3.13/site-packages/pandas/tests/test_downstream.py": 5635510753354256507, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/certs.py": 13366788049827102313, - "venv/lib/python3.13/site-packages/pandas/tests/libs/test_join.py": 5982692266872978444, - "venv/lib/python3.13/site-packages/pandas/core/computation/pytables.py": 16326122536715961388, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_index_new.py": 796607958391882182, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arrayprint.pyi": 2424868797160722318, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/negative_bounds/issue_20853.f90": 3911644649277659333, - "frontend/build/_app/immutable/nodes/8.B4G7-w5k.js": 18424156456357889561, - "frontend/build/_app/immutable/chunks/BXeCyPl8.js": 3759367862764800149, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_backend.pyi": 13083543811193933305, - "backend/src/api/routes/__tests__/test_clean_release_source_policy.py": 15242462571646635922, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_polynomial.pyi": 4266795948450921502, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_npfuncs.py": 6132674295193898715, - "venv/lib/python3.13/site-packages/pygments/lexers/boa.py": 14409319610243925864, - "venv/lib/python3.13/site-packages/apscheduler/triggers/base.py": 1170652622104554892, - "venv/lib/python3.13/site-packages/_pytest/config/argparsing.py": 11156052029258891503, - "venv/lib/python3.13/site-packages/numpy/_core/umath.pyi": 11775804030935134661, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/passlib/tests/sample1b.cfg": 2872366861156549016, - "venv/lib/python3.13/site-packages/pygments/lexers/igor.py": 6506221273085723501, - "venv/lib/python3.13/site-packages/numpy/dtypes.pyi": 6713822658171717369, - "venv/lib/python3.13/site-packages/pandas/core/arrays/__init__.py": 10460719978124302175, - "venv/lib/python3.13/site-packages/pip/_internal/utils/urls.py": 8698341051522816167, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_astype.py": 15384141282611151560, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/cache_key.py": 11118819065204404106, - "venv/lib/python3.13/site-packages/sqlalchemy/util/compat.py": 16148553252010089561, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/WHEEL": 14550174241288068152, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/subrout.pyf": 4660465266594480405, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_indexing.py": 1926721846569184112, - "venv/lib/python3.13/site-packages/jsonschema_specifications/tests/__init__.py": 15130871412783076140, - "frontend/src/components/tasks/LogFilterBar.svelte": 5318774167984892372, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein.py": 17993169044119596860, - "frontend/src/components/git/__tests__/git_manager.unfinished_merge.integration.test.js": 4508809242640248036, - "venv/lib/python3.13/site-packages/pandas/io/spss.py": 864838144958947906, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/unused_registry.py": 10153622516112471812, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_util.py": 16908393806993809474, - "venv/lib/python3.13/site-packages/fastapi/openapi/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/models/scheme.py": 4101322315594430874, - "venv/lib/python3.13/site-packages/numpy/_core/numerictypes.pyi": 12144531601504755948, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/size/foo.f90": 18067977329435720684, - "venv/lib/python3.13/site-packages/numpy/polynomial/__init__.py": 15558318749939680074, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_meson.pyi": 2101854548535776875, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_polyutils.py": 675639791972685455, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/nattype.cpython-313-x86_64-linux-gnu.so": 2311012065007769341, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_nat.py": 18428782698385974380, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/_core/src/common/pythoncapi-compat/COPYING": 3474104874623144155, - "backend/src/core/utils/__init__.py": 12454773556575864508, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_frequencies.py": 14039315221824123200, - "venv/lib/python3.13/site-packages/anyio/abc/__init__.py": 11428476337116642278, - "venv/lib/python3.13/site-packages/gitdb/test/test_stream.py": 18159319442241857857, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/licenses/LICENSE": 8364608327598414179, - "venv/lib/python3.13/site-packages/anyio/streams/stapled.py": 9733127303038397237, - "venv/lib/python3.13/site-packages/numpy/lib/_array_utils_impl.pyi": 11535882608355652318, - "venv/lib/python3.13/site-packages/pandas/core/missing.py": 13332302791063948992, - "venv/lib/python3.13/site-packages/click/_termui_impl.py": 3296085065310341855, - "venv/lib/python3.13/site-packages/httpcore/_exceptions.py": 6716590711697088732, - "venv/lib/python3.13/site-packages/numpy/char/__init__.pyi": 12214207343146244743, - "venv/lib/python3.13/site-packages/pygments/formatters/_mapping.py": 13335227913146542481, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/dml.py": 6567627855667533645, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/__main__.py": 574438877257676911, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/__init__.py": 15130871412783076140, - "frontend/src/lib/stores/__tests__/mocks/environment.js": 16653269108049932073, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/bitwise_ops.py": 14350609278188982939, - "venv/lib/python3.13/site-packages/pygments/lexers/modeling.py": 15714077241620129689, - "venv/lib/python3.13/site-packages/pygments/lexers/scripting.py": 4167168074165473790, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_real/foo77.f": 16156304612888138777, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/passlib/utils/binary.py": 13123975436674239306, - "venv/lib/python3.13/site-packages/pip/_internal/models/wheel.py": 10473287225032326206, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_periodindex.py": 13430003945574795792, - "venv/lib/python3.13/site-packages/pygments/lexers/other.py": 6893672181003034910, - "venv/lib/python3.13/site-packages/PIL/MspImagePlugin.py": 3034490726971829439, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_droplevel.py": 2071197388394658690, - "frontend/src/components/llm/ValidationReport.svelte": 11810571826279890996, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/metadata.py": 1362166613223529108, - "venv/lib/python3.13/site-packages/h11/_readers.py": 832030916375670301, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/status_codes.py": 17005213506461710202, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/cli/index_command.py": 15798187258841839292, - "venv/lib/python3.13/site-packages/itsdangerous/signer.py": 3694661094753475840, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/constant_time.py": 2499026008403328245, - "venv/lib/python3.13/site-packages/pandas/arrays/__init__.py": 10005095663840461954, - "venv/lib/python3.13/site-packages/httpcore/_sync/interfaces.py": 1532245423878428608, - "venv/lib/python3.13/site-packages/pygments/filters/__init__.py": 2992007913496948339, - "venv/lib/python3.13/site-packages/numpy/fft/_helper.pyi": 9546918341939102632, - "frontend/build/_app/immutable/chunks/J6m7GrH4.js": 13522826261624448243, - "venv/lib/python3.13/site-packages/httpx/_decoders.py": 14478643473006178492, - "backend/src/core/utils/matching.py": 12567367681677699487, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_repr.py": 13147587049887075335, - "backend/src/api/routes/assistant/_routes.py": 6252816315418755346, - "backend/src/api/routes/git/_environment_routes.py": 1034235394475003092, - "venv/lib/python3.13/site-packages/anyio/_core/_testing.py": 14024940365851109155, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_compare.py": 3079569478684646491, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23533.f": 12558972205518833024, - "venv/lib/python3.13/site-packages/urllib3/http2/__init__.py": 62108352209996836, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_ops.py": 14420421526781215500, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_conversion.py": 6205112277291935767, - "venv/lib/python3.13/site-packages/numpy/_core/shape_base.pyi": 10225243791643474943, - "venv/lib/python3.13/site-packages/numpy/matlib.pyi": 8017902013455539981, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/client.py": 18443944554871937480, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/checks.pyx": 13187505236986855177, - "venv/lib/python3.13/site-packages/pandas/tests/libs/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/base.py": 14908084548919567658, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_usecols_basic.py": 16382444980424010514, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_repr.py": 5577699046802107144, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/strptime.cpython-313-x86_64-linux-gnu.so": 12654188486128938170, - "venv/lib/python3.13/site-packages/yaml/events.py": 745772917931702910, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_categorical.py": 1329115818264527103, - "frontend/src/lib/stores/__tests__/mocks/navigation.js": 10782992736745205981, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/METADATA": 10220680536734745103, - "venv/lib/python3.13/site-packages/numpy/f2py/__version__.py": 8588600299261398598, - "frontend/build/_app/immutable/nodes/12.B7q-tXSO.js": 5591260477204622200, - "backend/src/services/git/_merge.py": 16183885992149357137, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/__init__.py": 12906995259233516197, - "venv/lib/python3.13/site-packages/attr/_version_info.py": 3850449653182103457, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/masked_accumulations.py": 11428556645065711062, - "frontend/src/lib/ui/PageHeader.svelte": 3800784212388586861, - "venv/lib/python3.13/site-packages/jose/backends/base.py": 12795468809472351388, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/exceptions.py": 7518613450390473990, - "backend/src/plugins/translate/preview_review.py": 5584592578627646560, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/__init__.py": 6327819603201859020, - "backend/git_repos/remote/test-repo.git/objects/c5/b992984fe856bd81206304a881faa3087937cf": 2441623644664166468, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_frame.py": 4303613319747945709, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/hook-numpy.py": 5221550291012182443, - "frontend/src/components/TaskHistory.svelte": 7819646903874958430, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_packbits.py": 7592956764084658562, - "venv/lib/python3.13/site-packages/jeepney/tests/test_low_level.py": 3579024079580951234, - "venv/lib/python3.13/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7": 17875236748140157032, - "backend/src/services/resource_service.py": 1414472862621734532, - "venv/lib/python3.13/site-packages/httpx/_transports/mock.py": 13564349939188292363, - "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/tokens_mixins.py": 9923721909178724437, - "venv/lib/python3.13/site-packages/starlette/middleware/cors.py": 11384893784314197864, - "venv/lib/python3.13/site-packages/git/objects/submodule/root.py": 5322248117564025370, - "venv/lib/python3.13/site-packages/pandas/io/__init__.py": 9767690163638898709, - "backend/src/services/dataset_review/repositories/repository_pkg/_mutations.py": 11718998093543631478, - "venv/lib/python3.13/site-packages/pandas/io/feather_format.py": 13242733585787888812, - "venv/lib/python3.13/site-packages/git/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/groupby/__init__.py": 3015263524218708013, - "venv/lib/python3.13/site-packages/greenlet/slp_platformselect.h": 10428201768098464386, - "venv/lib/python3.13/site-packages/pygments/lexers/pony.py": 2720635393743617141, - "venv/lib/python3.13/site-packages/numpy/matlib.py": 112839038090033740, - "venv/lib/python3.13/site-packages/pygments/lexers/jmespath.py": 7426464251945393925, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py": 14307204206312829238, - "backend/src/core/__tests__/test_config_manager_compat.py": 656412918792001580, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/terminal_theme.py": 13727399800263579809, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_set_name.py": 9094608008538024609, - "frontend/build/_app/immutable/nodes/22.DXHem7KH.js": 18074896018871089141, - "venv/lib/python3.13/site-packages/idna/uts46data.py": 5698404064763638591, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_api.py": 1910541672533352625, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/persistence.py": 17908437937265384125, - "venv/lib/python3.13/site-packages/pandas/tests/libs/test_libalgos.py": 13934861984871432400, - "venv/lib/python3.13/site-packages/pydantic/v1/color.py": 14545509649623975912, - "venv/lib/python3.13/site-packages/jsonschema/tests/typing/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/hybrid.py": 14287665090144592501, - "venv/lib/python3.13/site-packages/numpy/f2py/__init__.py": 7470157159992827389, - "venv/lib/python3.13/site-packages/jaraco/classes/ancestry.py": 11742194518360056470, - "venv/lib/python3.13/site-packages/pandas/core/arrays/masked.py": 13977195666947626206, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py": 17873236864291624476, - "venv/lib/python3.13/site-packages/greenlet/tests/test_generator_nested.py": 12822240347707346718, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_groupby.py": 15721254196883995634, - "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/exceptions.py": 11303331612406662162, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_delete.py": 5958440386632506587, - "venv/lib/python3.13/site-packages/pandas/core/algorithms.py": 487939626203097713, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkeyutils-dfe70bd6.so.1.5": 9414227432578104677, - "venv/lib/python3.13/site-packages/jeepney/io/asyncio.py": 13239992245695516007, - "venv/lib/python3.13/site-packages/pandas/tests/frame/conftest.py": 15090201792072045503, - "venv/lib/python3.13/site-packages/greenlet/tests/test_version.py": 6317733744899804292, - "venv/lib/python3.13/site-packages/numpy/typing/__init__.pyi": 10058149460938883683, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_iter.py": 9232021002336641851, - "venv/lib/python3.13/site-packages/pip/__init__.py": 9449893869469432503, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_federal.py": 16758212916399857971, - "venv/lib/python3.13/site-packages/rsa/util.py": 13423880475585138638, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/__version__.py": 14138134075118474134, - "venv/lib/python3.13/site-packages/sqlalchemy/event/legacy.py": 13465911776953636949, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/_core/src/umath/svml/LICENSE": 9584102918819171104, - "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_des.py": 7198931807116651263, - "venv/lib/python3.13/site-packages/pygments/lexers/php.py": 17636450950688953288, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dropna.py": 3168969662216766293, - "venv/lib/python3.13/site-packages/pygments/token.py": 6987328478153445584, - "backend/src/services/reports/__init__.py": 11818812865847046400, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_twodim_base.py": 17623133613018058380, - "backend/src/services/git/_url.py": 15729080796864187707, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_nlargest_nsmallest.py": 11049656379959696695, - "backend/git_repos/remote/test-repo.git/objects/d8/3fe0db1279ef07c4c4f3de4156a629373b4057": 7507193819578792576, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/distro/__init__.py": 11414161642984633362, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_odf.py": 15484940480924122966, - "frontend/build/_app/immutable/nodes/16.DLQZ3A1Z.js": 5331929660123923733, - "venv/lib/python3.13/site-packages/pyasn1/codec/native/encoder.py": 120921270972591880, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE": 4274653168153720331, - "venv/lib/python3.13/site-packages/pandas/_libs/algos.pyi": 22405377601029952, - "venv/lib/python3.13/site-packages/starlette/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/methods.py": 8059372834301557565, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_box_unbox.py": 7579587620530953711, - "venv/lib/python3.13/site-packages/uvicorn/middleware/wsgi.py": 9179913252056394958, - "backend/git_repos/remote/test-repo.git/objects/6f/85e20ce3ef98cf07a2f102498b71b9462552c5": 3012017807908986452, - "venv/lib/python3.13/site-packages/pandas/_libs/byteswap.pyi": 6723628093359375823, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_split_partition.py": 2715491071550545667, - "backend/src/api/routes/assistant/_history.py": 16318881016647964852, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_jsonschema_test_suite.py": 12733761462141495972, - "venv/lib/python3.13/site-packages/pip/_internal/utils/retry.py": 15244280495983216204, - "venv/lib/python3.13/site-packages/pandas/io/common.py": 12088195203620154171, - "venv/lib/python3.13/site-packages/pydantic_core/_pydantic_core.cpython-313-x86_64-linux-gnu.so": 13917011878259810696, - "venv/lib/python3.13/site-packages/PIL/BdfFontFile.py": 10811640174253687845, - "venv/bin/pyrsa-sign": 15564653706771700451, - "venv/lib/python3.13/site-packages/pygments/lexers/_postgres_builtins.py": 2383906454995727700, - "frontend/src/components/backups/BackupManager.svelte": 15237659305406789107, - "venv/lib/python3.13/site-packages/packaging/_manylinux.py": 8268418900652790584, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/json.py": 14738429697319670035, - "frontend/src/lib/components/assistant/__tests__/assistant_confirmation.integration.test.js": 12582020574293031526, - "venv/lib/python3.13/site-packages/pandas/tests/libs/test_lib.py": 6721066015604956469, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/WHEEL": 18203500019759199992, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_indexing.py": 6539365174681852769, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/INSTALLER": 17282701611721059870, - "frontend/build/_app/immutable/chunks/DXB0WcN8.js": 6620985551681767720, - "backend/src/core/utils/superset_context_extractor/_recovery.py": 13298493527065532076, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7592/endpoint.py": 18260428408051728802, - "backend/src/services/clean_release/source_isolation.py": 18208654007489616188, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/sum_.py": 7062070517544958546, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/strptime.pyi": 5973671421648618563, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/interfaces.py": 5371646629319169153, - "venv/lib/python3.13/site-packages/referencing/tests/test_core.py": 8280983300775878144, - "venv/lib/python3.13/site-packages/numpy/core/_internal.py": 14816989375912210674, - "backend/src/plugins/translate/dictionary.py": 2903767700173238799, - "venv/lib/python3.13/site-packages/pygments/lexers/forth.py": 17623561228839319663, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi": 7801211423226951223, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_numba.py": 1548992314517942530, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_exceptions.py": 12145393002202744314, - "frontend/src/routes/datasets/review/ReviewWorkspaceHeader.svelte": 15302107925819930527, - "venv/lib/python3.13/site-packages/numpy/lib/_arraysetops_impl.py": 5583478355093966990, - "venv/lib/python3.13/site-packages/numpy/_utils/_inspect.py": 7029935879540617057, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/multiarray.pyi": 17232959648651278910, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/authorization_server.py": 2491654903543600678, - "venv/lib/python3.13/site-packages/pip/_internal/utils/misc.py": 17461379236189029253, - "frontend/src/lib/components/translate/CorrectionCell.svelte": 14340498120654577399, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/pubprivmod.f90": 8680230823849248800, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_astype.py": 11995587502880659624, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo_fixed.f90": 8079594129222364031, - "frontend/src/lib/components/assistant/__tests__/assistant_chat.integration.test.js": 13047006106880121194, - "backend/tests/test_task_persistence.py": 1764267414712263025, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_setitem.py": 14920902525192671548, - "merge_spec.py": 5285945727297582371, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/METADATA": 12747626683405487434, - "backend/src/plugins/translate/preview_prompt_helpers.py": 14303328860208074708, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/generate_umath_validation_data.cpp": 10880681943327843928, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_is_homogeneous_dtype.py": 15378147393056707851, - "venv/lib/python3.13/site-packages/websockets/speedups.c": 11800200877763464246, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_filters.py": 17271344092069736999, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/dotenv.py": 5872848911499749500, - "venv/lib/python3.13/site-packages/sqlalchemy/connectors/asyncio.py": 4200928269459447593, - "venv/lib/python3.13/site-packages/fastapi/dependencies/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix.pyi": 2700568594438441246, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/rethinkdb.py": 16413299263077970925, - "venv/lib/python3.13/site-packages/bcrypt/__init__.py": 11415155211917181362, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/test_nat.py": 7400568652984772972, - "venv/lib/python3.13/site-packages/pygments/styles/igor.py": 2291640843781128270, - "venv/lib/python3.13/site-packages/pygments/lexers/compiled.py": 8215290039991205531, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_indexing.py": 6039808271042864401, - "venv/lib/python3.13/site-packages/pygments/lexers/jsx.py": 13855228003748707341, - "venv/lib/python3.13/site-packages/pandas/core/window/doc.py": 4204367435727844696, - "backend/src/models/dataset_review_pkg/_clarification_models.py": 2289021476863746270, - "backend/git_repos/remote/test-repo.git/objects/4f/4e0958b3a42eff67a2b8cfd084d05c43e54716": 6040513978194442637, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_string.py": 10141066226714805009, - "venv/lib/python3.13/site-packages/dotenv/main.py": 7408889670575271484, - "backend/git_repos/remote/test-repo.git/hooks/fsmonitor-watchman.sample": 14381968406977928721, - "venv/lib/python3.13/site-packages/websockets/asyncio/client.py": 5694225754072131767, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rename.py": 16148017223289654683, - "venv/lib/python3.13/site-packages/pip/_internal/commands/download.py": 7533669665002975823, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_freq_attr.py": 1720704043778272895, - "venv/lib/python3.13/site-packages/pandas/io/formats/string.py": 14718123345899686696, - "venv/lib/python3.13/site-packages/smmap/test/test_tutorial.py": 16309370344201290582, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/align.py": 6078666505647454830, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/simple.py": 11050636051019777317, - "venv/lib/python3.13/site-packages/pandas/_libs/sparse.pyi": 12526865400413362140, - "venv/lib/python3.13/site-packages/pyasn1/codec/ber/decoder.py": 12653470212935324322, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py": 14216912708889351810, - "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/apps.py": 4219758952914498116, - "venv/lib/python3.13/site-packages/numpy/typing/tests/test_typing.py": 10311989961588249147, - "venv/lib/python3.13/site-packages/pandas/core/computation/expr.py": 13085709365673019494, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_struct_accessor.py": 6567451952835390075, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html.tpl": 12550218314797699304, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_datetime64.py": 16272266806084058743, - "venv/lib/python3.13/site-packages/pydantic/v1/schema.py": 10008526732895436361, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/WHEEL": 16784970174376303810, - "venv/lib/python3.13/site-packages/numpy/f2py/symbolic.pyi": 14558091964387571257, - "venv/lib/python3.13/site-packages/pandas/core/interchange/dataframe_protocol.py": 12857147443873820285, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/dml.py": 5340326603935367534, - "venv/lib/python3.13/site-packages/rsa/pkcs1.py": 2576732594642491910, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/base.py": 10514193453447954780, - "venv/lib/python3.13/site-packages/PIL/ImagePalette.py": 9227837918026991107, - "venv/lib/python3.13/site-packages/multipart/exceptions.py": 8580522204565816132, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py": 7624316342162916928, - "venv/lib/python3.13/site-packages/httpcore/_async/connection_pool.py": 932468678264370661, - "venv/lib/python3.13/site-packages/httpcore/_sync/http2.py": 11167798787131917524, - "venv/lib/python3.13/site-packages/pycparser/_build_tables.py": 569728086093219621, - "venv/lib/python3.13/site-packages/urllib3/util/__init__.py": 2848870790459558599, - "frontend/src/lib/components/reports/__tests__/report_detail.integration.test.js": 4193615240297330385, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_cell_widths.py": 5724379364993806351, - "backend/src/services/clean_release/compliance_execution_service.py": 3379474749353250488, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pygments/lexers/macaulay2.py": 8022891778577314212, - "frontend/src/app.css": 3020720639702954139, - "backend/src/plugins/llm_analysis/scheduler.py": 14673660738877638091, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/anyio/pytest_plugin.py": 4165280709813718099, - "frontend/src/components/DynamicForm.svelte": 12658559315809907844, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_constructors.py": 2786493777737472376, - "venv/lib/python3.13/site-packages/pygments/lexers/inferno.py": 9056274496469409594, - "frontend/src/services/gitService.js": 7044825476968825357, - "venv/lib/python3.13/site-packages/pandas/core/indexes/multi.py": 9115751979327393200, - "venv/lib/python3.13/site-packages/numpy/linalg/__init__.py": 15647756307608142577, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/kind/foo.f90": 1367964042730902899, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_isocalendar.py": 5704842983090753914, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_size.py": 14032390806503440750, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/characteristics.py": 2916810597149066609, - "frontend/src/lib/components/layout/__tests__/test_breadcrumbs.svelte.js": 1250794495161202602, - "venv/bin/pyrsa-keygen": 8222542582170363672, - "venv/lib/python3.13/site-packages/secretstorage/exceptions.py": 16701299261122689924, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/apps.py": 10758062668702044519, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_period.py": 7727606662611927293, - "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_timedelta.py": 364160935264757405, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_crosstab.py": 6631711416347033281, - "venv/lib/python3.13/site-packages/keyring/core.py": 2764269590123131634, - "venv/lib/python3.13/site-packages/packaging/utils.py": 3469957615920103670, - "venv/lib/python3.13/site-packages/cffi/_shimmed_dist_utils.py": 4824806157907607487, - "venv/lib/python3.13/site-packages/numpy/f2py/cfuncs.py": 10803011906582324302, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_openpyxl.py": 9542840527483618681, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_datetimelike.py": 5317270578347271174, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/loading.py": 3460142472461437916, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/test_indexing.py": 13703573544185051910, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_infer_dtype.py": 1647214604678171565, - "backend/src/api/routes/__tests__/test_reports_openapi_conformance.py": 17043883737206361151, - "venv/lib/python3.13/site-packages/smmap/util.py": 13276170835044840023, - "venv/lib/python3.13/site-packages/numpy/lib/_npyio_impl.py": 2215312866861772848, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_integer/foo90.f90": 3492659529812762861, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_arrow.py": 10068866425352207113, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/row.py": 9763935103055608874, - "venv/lib/python3.13/site-packages/pycparser/ply/ygen.py": 5520340773074632724, - "frontend/src/components/git/GitReleasePanel.svelte": 14875953299937841077, - "venv/lib/python3.13/site-packages/ecdsa/curves.py": 812969717084691115, - "venv/lib/python3.13/site-packages/cffi/vengine_cpy.py": 10684192171370688079, - "frontend/src/lib/ui/Icon.svelte": 2201964532717139995, - "venv/lib/python3.13/site-packages/pip/_internal/req/__init__.py": 12266077985828139928, - "venv/lib/python3.13/site-packages/numpy/core/__init__.py": 10397294636564169377, - "venv/lib/python3.13/site-packages/pandas/io/excel/_pyxlsb.py": 10035587889954731645, - "venv/lib/python3.13/site-packages/pytest/__init__.py": 6137272437722350673, - "frontend/src/routes/settings/git/__tests__/git_settings_page.ux.test.js": 5334904955024018051, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_from_scalar.py": 16520136036631155842, - "venv/lib/python3.13/site-packages/numpy/typing/mypy_plugin.py": 1306129775649200113, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/logging.py": 2426447364230673649, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_is_full.py": 9577318758326279694, - "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/__init__.py": 5896924546560667519, - "venv/lib/python3.13/site-packages/numpy/lib/mixins.py": 7404729635424818497, - "venv/lib/python3.13/site-packages/git/index/typ.py": 11661540784850363024, - "venv/lib/python3.13/site-packages/jeepney/tests/test_fds.py": 6257376331171761928, - "frontend/src/routes/migration/__tests__/migration_dashboard.ux.test.js": 17118608261683412409, - "venv/lib/python3.13/site-packages/pandas/_libs/tslib.pyi": 16170606956605100142, - "backend/src/plugins/translate/preview_response_parser.py": 15690759478655959205, - "venv/lib/python3.13/site-packages/pygments/lexers/c_cpp.py": 1211842877043321095, - "backend/src/models/auth.py.bak": 7050478675360007060, - "backend/alembic/versions/b1c2d3e4f5a6_add_source_hash_to_translation_records.py": 4775534557742900399, - "venv/lib/python3.13/site-packages/pygments/lexers/trafficscript.py": 776604244051744646, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/char.pyi": 13143560686049627445, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_cumulative.py": 16283954014170928273, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_object.py": 9215781825358309147, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/common.py": 9354442374897565498, - "venv/lib/python3.13/site-packages/itsdangerous/_json.py": 4872267972688724005, - "venv/lib/python3.13/site-packages/authlib/integrations/django_client/__init__.py": 14186136918454802843, - "venv/lib/python3.13/site-packages/referencing/py.typed": 15130871412783076140, - "venv/bin/pip": 13861749540792881808, - "frontend/build/_app/immutable/nodes/15.DvrdX5FQ.js": 7879930226751605252, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/attr/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/_writer.py": 15053365792216907149, - "venv/lib/python3.13/site-packages/pygments/lexers/tablegen.py": 2917626373516779857, - "venv/lib/python3.13/site-packages/httpx/_transports/__init__.py": 5931944625631942279, - "frontend/build/_app/immutable/nodes/3.BwAzxKYV.js": 8233995785147305685, - "venv/lib/python3.13/site-packages/ecdsa/eddsa.py": 15966858338456571506, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_eng_formatting.py": 14768815444701392013, - "backend/src/core/migration/archive_parser.py": 3022511117854063904, - "venv/lib/python3.13/site-packages/pygments/lexers/configs.py": 7712797939104760185, - "backend/src/models/dataset_review_pkg/_enums.py": 2243691494729792539, - "venv/lib/python3.13/site-packages/pygments/lexers/diff.py": 5930189593946259160, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nditer.pyi": 33523064068376750, - "venv/lib/python3.13/site-packages/websockets/asyncio/messages.py": 6848925149930551457, - "backend/src/core/utils/fileio.py": 5783081738676692209, - "venv/lib/python3.13/site-packages/passlib/handlers/pbkdf2.py": 16686685453577026643, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/RECORD": 11976403473353722969, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py": 12264234876933578367, - "venv/lib/python3.13/site-packages/anyio/abc/_subprocesses.py": 4297459042599291531, - "venv/lib/python3.13/site-packages/pygments/lexers/eiffel.py": 8964563077187051946, - "frontend/build/_app/immutable/chunks/DJ7pJ0kI.js": 5528949065320899171, - "venv/lib/python3.13/site-packages/jsonschema/exceptions.py": 15651767069704734674, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/dtype.pyi": 12178008080078679769, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rank.py": 5817408252050193538, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_subclass.py": 11096337912872573314, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_complex/foo90.f90": 15981076495193915107, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex.tpl": 8820045022551446255, - "frontend/src/lib/components/reports/reportTypeProfiles.js": 10752964062056890725, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/jws.py": 7505219131537941130, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/WHEEL": 5160964596297665692, - "venv/lib/python3.13/site-packages/numpy/lib/_type_check_impl.py": 15989335816452913951, - "venv/lib/python3.13/site-packages/numpy/version.pyi": 5075382895829889457, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi": 9405122752084210696, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_categorical_equal.py": 7942323667866280872, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/__init__.py": 2397613800206300456, - "venv/lib/python3.13/site-packages/greenlet/PyGreenlet.hpp": 6366432579621298231, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_util.py": 6573034224727513309, - "venv/lib/python3.13/site-packages/pandas/io/parsers/python_parser.py": 7297059565749331767, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_histograms.py": 47631283818191049, - "venv/lib/python3.13/site-packages/rsa/key.py": 4783269051050521475, - "frontend/src/routes/translate/+page.svelte": 15284819686967093613, - "venv/lib/python3.13/site-packages/anyio/__init__.py": 12752386096259972231, - "venv/lib/python3.13/site-packages/pydantic/_internal/_signature.py": 17075003201648027250, - "venv/lib/python3.13/site-packages/pip/_internal/cli/req_command.py": 2887890799766730546, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_longdouble.py": 9337218715436213122, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_copy.py": 3114918520437707410, - "venv/lib/python3.13/site-packages/starlette/testclient.py": 16088848330558215194, - "venv/lib/python3.13/site-packages/pandas/core/apply.py": 17080038932032802984, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_conversion.pyi": 11580106670226366710, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/authorization_server.py": 6858244712625056421, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_f2cmap.py": 5863341586534531594, - "venv/lib/python3.13/site-packages/numpy/_core/_umath_tests.pyi": 4587511199710546030, - "venv/lib/python3.13/site-packages/pandas/_libs/ops_dispatch.pyi": 16176428602589420913, - "venv/lib/python3.13/site-packages/pandas/api/__init__.py": 1145864207387918302, - "venv/lib/python3.13/site-packages/pandas/tests/extension/list/__init__.py": 10072943986583771248, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_label_or_level_utils.py": 3423644585913150841, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_round_trip.py": 14684057343786032776, - "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/WHEEL": 5076688779572520166, - "venv/bin/keyring": 1488968652276547659, - "venv/lib/python3.13/site-packages/pyasn1/type/namedval.py": 8273171503516887681, - "backend/alembic/script.py.mako": 7041141123739810216, - "venv/lib/python3.13/site-packages/passlib/handlers/fshp.py": 13298827601291507295, - "venv/lib/python3.13/site-packages/numpy/lib/user_array.pyi": 1968484998382771986, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/licenses/LICENSE": 16147999986886816451, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_iloc.py": 7586049606891014270, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_ratio.py": 940213488194452623, - "venv/lib/python3.13/site-packages/pandas/_libs/pandas_parser.cpython-313-x86_64-linux-gnu.so": 18056339336364727359, - "venv/lib/python3.13/site-packages/pygments/lexers/console.py": 18266795648198475028, - "backend/src/core/utils/network.py": 2942301957401471733, - "venv/lib/python3.13/site-packages/cffi/cparser.py": 5246372077864988755, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_doc.py": 7865575374100528149, - "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/_gen_files.py": 6273314671315377131, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_ipython_compat.py": 12632271159842988561, - "backend/src/services/clean_release/__tests__/test_preparation_service.py": 4958420988131940633, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/errors.py": 10750605030539582738, - "venv/lib/python3.13/site-packages/pandas/io/formats/format.py": 3364941338174434661, - "frontend/src/pages/Dashboard.svelte": 3653104499351855122, - "venv/lib/python3.13/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2": 13105940093474848953, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90": 15768643271492041853, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py": 14190849361275154667, - "venv/lib/python3.13/site-packages/pygments/lexers/carbon.py": 6753624244809529841, - "venv/lib/python3.13/site-packages/pandas/compat/pyarrow.py": 13693379998785127538, - "backend/src/services/__tests__/test_resource_service.py": 14435810729789665272, - "venv/lib/python3.13/site-packages/starlette/websockets.py": 13834731343216764204, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/__init__.py": 371829636800613137, - "venv/lib/python3.13/site-packages/attr/filters.pyi": 13942974755090135724, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/exclusions.py": 15852672500377116297, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/orderinglist.py": 10162099108656794338, - "venv/lib/python3.13/site-packages/httpcore/_trace.py": 9576253018891841832, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_polynomial.py": 3049262771098624825, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_transpose.py": 17983160984979323393, - "venv/lib/python3.13/site-packages/pandas/core/strings/__init__.py": 13025387151657797130, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/authorization_server.py": 13696038495666024258, - "venv/lib/python3.13/site-packages/pygments/lexers/dax.py": 10868881057512002309, - "backend/git_repos/remote/test-repo.git/hooks/post-update.sample": 4288868784459664203, - "backend/src/api/routes/dashboards/_helpers.py": 16683849709430404975, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_direct.py": 12680113511641199070, - "venv/lib/python3.13/site-packages/uvicorn/loops/asyncio.py": 16496916527760969173, - "venv/lib/python3.13/site-packages/numpy/_typing/_nbit_base.py": 7446626038222262489, - "venv/lib/python3.13/site-packages/starlette/middleware/__init__.py": 9524277524025372856, - "venv/lib/python3.13/site-packages/itsdangerous/exc.py": 11181421963755661477, - "venv/lib/python3.13/site-packages/typing_inspection/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/anyio/_core/_sockets.py": 10525237827959090532, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/halffloat.h": 16913381775994652343, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/wait.py": 6196757964348666082, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_item_selection.py": 1027989019709029615, - "venv/lib/python3.13/site-packages/pandas/plotting/_misc.py": 10202078355301731720, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_datetimeindex.py": 14816894350435545024, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_processors.py": 16557117595879208702, - "venv/lib/python3.13/site-packages/git/db.py": 6680123567509774609, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/segment.py": 2555584120510872966, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/RECORD": 11111103193315065053, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming.pyi": 4432290176776357346, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/METADATA": 3390257212824996989, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arraysetops.pyi": 1782641795267171928, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/__init__.py": 16416360448593978041, - "venv/lib/python3.13/site-packages/pandas/core/tools/timedeltas.py": 7221393731712061943, - "venv/lib/python3.13/site-packages/numpy/_expired_attrs_2_0.pyi": 1424133074692438241, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh24662.f90": 4241310200087270990, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/expression.py": 15511250785671695359, - "venv/lib/python3.13/site-packages/pandas/tests/extension/conftest.py": 16886862391161243448, - "venv/lib/python3.13/site-packages/PIL/BlpImagePlugin.py": 7209218638257731375, - "venv/lib/python3.13/site-packages/pygments/lexers/asm.py": 13861952972248758785, - "backend/src/plugins/translate/orchestrator_lang_stats.py": 5713612003349083382, - "backend/alembic/versions/2a7b8c9d0e1f_add_target_languages_to_translation_jobs.py": 7201017059554918882, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/RECORD": 12733654377842895588, - "venv/lib/python3.13/site-packages/numpy/random/__init__.pxd": 7355772669172093814, - "venv/lib/python3.13/site-packages/pandas/api/internals.py": 5188134630996087511, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_combine_first.py": 11425059090050867171, - "venv/lib/python3.13/site-packages/pygments/lexers/nimrod.py": 8457135214131458774, - "backend/src/services/reports/__tests__/test_type_profiles.py": 17262223295445285285, - "backend/src/services/dataset_review/repositories/session_repository.py": 4058785536575367912, - "venv/lib/python3.13/site-packages/anyio/abc/_sockets.py": 15042495744291042062, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi": 11455144434558323236, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/idnadata.py": 1169745920682458213, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/numpy/polynomial/legendre.pyi": 2029639875417260268, - "venv/lib/python3.13/site-packages/cryptography/x509/__init__.py": 4066756344049307453, - "venv/lib/python3.13/site-packages/pandas/_libs/pandas_datetime.cpython-313-x86_64-linux-gnu.so": 15874094681262240628, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_astype.py": 15768655715952923925, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_misc.py": 8706265665356094801, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_extension.py": 4831602527247293866, - "venv/lib/python3.13/site-packages/cffi/api.py": 5325821560978502135, - "venv/lib/python3.13/site-packages/numpy/f2py/_isocbind.pyi": 5786150108623563787, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_regression.py": 6742646011852052645, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/_core/einsumfunc.pyi": 4729765666018003634, - "venv/lib/python3.13/site-packages/tzlocal/utils.py": 7893867974548929154, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/models.py": 3567900447243180991, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/console.py": 3540660073442483692, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/__init__.py": 11850945878149145990, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_period_range.py": 9598872514187524706, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_character.py": 850554362222586199, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_calendar.py": 12313641252472031631, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_unique.py": 6234921572794573905, - "venv/lib/python3.13/site-packages/pandas/_config/__init__.py": 3577026529387563519, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_searchsorted.py": 11161416745923343741, - "venv/lib/python3.13/site-packages/pandas/tests/test_multilevel.py": 10500316376521962061, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/licenses/COPYING": 14459782230785388765, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_case_justify.py": 8204537837649550062, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_to_numpy.py": 14845850776625255794, - "venv/lib/python3.13/site-packages/pygments/styles/paraiso_dark.py": 3976779833379189837, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/histograms.pyi": 2281259341486424755, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/METADATA": 11557342107649194148, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_html.py": 12040484325988635032, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_overlaps.py": 2328652590379935311, - "venv/lib/python3.13/site-packages/pygments/lexers/codeql.py": 4254046699692048717, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_snap.py": 4515844385819802784, - "frontend/src/lib/components/dataset-review/__tests__/validation_findings_panel.ux.test.js": 8994492423600483794, - "venv/lib/python3.13/site-packages/numpy/lib/_iotools.py": 10522826373041592861, - "frontend/src/lib/components/layout/TopNavbar.svelte": 16593656019460608311, - "frontend/build/_app/immutable/nodes/31.DO2VkXtF.js": 13113501944684678688, - "frontend/build/_app/immutable/nodes/0.BgrzyjjB.js": 4978926897476899846, - "frontend/build/_app/immutable/chunks/4Mt7E5DY.js": 1876154373397748488, - "backend/src/services/clean_release/artifact_catalog_loader.py": 7672031618376179570, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_timezones.py": 4771674179164304731, - "venv/lib/python3.13/site-packages/packaging/_musllinux.py": 2568338440457080365, - "frontend/e2e/helpers/api.helper.js": 12740720187461301874, - "venv/lib/python3.13/site-packages/fastapi/security/open_id_connect_url.py": 3502444317759870079, - "venv/lib/python3.13/site-packages/itsdangerous/py.typed": 15130871412783076140, - "frontend/e2e/fixtures/auth.fixture.js": 12330457928638392604, - "frontend/public/vite.svg": 13568221685541582385, - "venv/lib/python3.13/site-packages/numpy/core/overrides.py": 11228841530565061867, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_insert.py": 9195027887301180927, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pydantic_core/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/decl_base.py": 8678387511873412922, - "venv/lib/python3.13/site-packages/pygments/styles/perldoc.py": 4857683935715743356, - "venv/lib/python3.13/site-packages/attr/__init__.py": 14436902698244718082, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/resources.py": 11533706401259147051, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_interval.py": 14749388246573356959, - "venv/lib/python3.13/site-packages/rapidfuzz/process_cpp.py": 16797760903996739079, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalar_ctors.py": 631744056514965940, - "venv/lib/python3.13/site-packages/pandas/core/computation/api.py": 17919983681396223380, - "venv/lib/python3.13/site-packages/pandas/core/indexes/interval.py": 17965911911189276907, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_symbolic.py": 8093576026032854125, - "venv/lib/python3.13/site-packages/pygments/lexers/_qlik_builtins.py": 1728058904137960444, - "venv/lib/python3.13/site-packages/PIL/__main__.py": 827665918723937817, - "venv/lib/python3.13/site-packages/pygments/lexers/sql.py": 15566262873151658034, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_elffile.py": 5728213398707817049, - "venv/lib/python3.13/site-packages/pygments/lexers/esoteric.py": 16839499623020685146, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/styles/_mapping.py": 11752660241391232497, - "venv/lib/python3.13/site-packages/numpy/_utils/_pep440.py": 15854257948148516490, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/models.py": 5656065513234782067, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_arithmetic.py": 15071337112968886738, - "venv/lib/python3.13/site-packages/httpcore/__init__.py": 5897259569277532401, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/idna-3.11.dist-info/WHEEL": 8600534672961461758, - "frontend/src/lib/components/dataset-review/CompiledSQLPreview.svelte": 4866254539173481462, - "backend/src/core/auth/__tests__/test_auth.py": 14999763239648705195, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/provision.py": 2676876852726658063, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/columns.py": 8488246354818721406, - "backend/git_repos/remote/test-repo.git/objects/a7/49f11fad695dff77faf1708c7320867d0be1df": 4641609158325033031, - "frontend/src/lib/components/layout/__tests__/sidebarNavigation.test.js": 8459006438402290167, - "venv/lib/python3.13/site-packages/numpy/_core/_methods.pyi": 9155045948490225716, - "venv/lib/python3.13/site-packages/numpy/random/mtrand.pyi": 17144590106028661128, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_overlaps.py": 8287716909793575347, - "venv/lib/python3.13/site-packages/pip/_internal/utils/_jaraco_text.py": 9046755357011730699, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/appengine.py": 16194997685865850655, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE": 13479831069780783137, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/pytestplugin.py": 1591034895268415944, - "venv/lib/python3.13/site-packages/pydantic/v1/tools.py": 1995883197897112278, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api2.pyx": 15936470837420356071, - "venv/lib/python3.13/site-packages/numpy/lib/recfunctions.py": 3001896031623204147, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arccos.csv": 3026156288992132911, - "venv/lib/python3.13/site-packages/referencing/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_take.py": 9847808489301498487, - "frontend/e2e/fixtures/global-setup.js": 1597253740213759490, - "frontend/src/routes/datasets/review/[id]/+page.svelte": 3248469759382215571, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arrayterator.pyi": 15722265241660279277, - "venv/lib/python3.13/site-packages/attr/_config.py": 1864824728504480204, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libgssapi_krb5-497db0c6.so.2.2": 6199424505696679197, - "venv/lib/python3.13/site-packages/pluggy/_result.py": 16790448391766505769, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/__init__.py": 12290228927283601067, - "backend/test_app.db": 2486636812009447051, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/urllib3/util/timeout.py": 17922362393077965047, - "venv/lib/python3.13/site-packages/referencing/__init__.py": 10093824711214801917, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/scalars.pyi": 3130685119595923378, - "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/__init__.py": 63497920264089252, - "venv/lib/python3.13/site-packages/referencing/retrieval.py": 11921179805977833120, - "venv/lib/python3.13/site-packages/authlib/oauth2/client.py": 7237359250450222680, - "venv/lib/python3.13/site-packages/_pytest/_io/__init__.py": 1510478951261938348, - "venv/lib/python3.13/site-packages/pandas/_version.py": 3480474785419232091, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/base.py": 6348888156686452825, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/__init__.py": 15130871412783076140, - "frontend/build/_app/immutable/nodes/35.DlfOaj-Z.js": 8253764223651453774, - "venv/lib/python3.13/site-packages/pandas/_libs/window/aggregations.pyi": 6072607880689125113, - "venv/lib/python3.13/site-packages/pandas/_libs/properties.pyi": 9268470215750269699, - "venv/lib/python3.13/site-packages/gitdb/db/pack.py": 13460574575424209609, - "venv/lib/python3.13/site-packages/_pytest/pathlib.py": 9719734558816066453, - "venv/lib/python3.13/site-packages/pandas/io/sas/__init__.py": 8095743504390517992, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/__init__.py": 293004106962245584, - "venv/lib/python3.13/site-packages/pygments/lexers/nix.py": 15050086330545600356, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL": 18203500019759199992, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_numeric.py": 5627177940393829333, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE.BSD": 16833702494864671773, - "venv/lib/python3.13/site-packages/passlib/utils/des.py": 2650106381178222229, - "venv/lib/python3.13/site-packages/numpy/f2py/diagnose.pyi": 8607205990821121708, - "venv/lib/python3.13/site-packages/pygments/lexers/tlb.py": 1169242051301155885, - "venv/lib/python3.13/site-packages/attr/converters.py": 5179615793507170642, - "venv/lib/python3.13/site-packages/greenlet/TBrokenGreenlet.cpp": 10822436772777706192, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/filters/__init__.py": 835924536855006596, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_parser.py": 3540203683732744499, - "venv/lib/python3.13/site-packages/numpy/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_size.py": 16658280641516916790, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_sequence.py": 3721630758772772345, - "venv/lib/python3.13/site-packages/sqlalchemy/util/concurrency.py": 1325673503812009695, - "backend/src/models/filter_state.py": 6470311179852241297, - "backend/src/plugins/mapper.py": 1970475023222782681, - "backend/tests/conftest.py": 14115149798000023183, - "frontend/src/routes/migration/+page.svelte": 7821836225621176583, - "backend/src/services/clean_release/stages/data_purity.py": 10459527906317168920, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/METADATA": 11759004913807981650, - "venv/lib/python3.13/site-packages/pygments/lexers/theorem.py": 15666523910367201285, - "frontend/src/routes/storage/backups/+page.svelte": 3437582895363203695, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_mrecords.py": 15952147778503828707, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_ndarray_backed.py": 10097812802469682233, - "venv/lib/python3.13/site-packages/pygments/lexers/yara.py": 17510792615476493957, - "venv/lib/python3.13/site-packages/pygments/lexers/varnish.py": 3608370156692616959, - "venv/lib/python3.13/site-packages/websockets/cli.py": 14049106025886056110, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/WHEEL": 1598805043198466373, - "venv/lib/python3.13/site-packages/PIL/PixarImagePlugin.py": 12061717157676819554, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_repr.py": 16609300578827398344, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py": 18325640697829098192, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_complex/foo77.f": 7353666717928699883, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_parse_iso8601.py": 9100947620267156161, - "backend/src/plugins/translate/__tests__/test_scheduler.py": 4988970087981965515, - "venv/lib/python3.13/site-packages/sqlalchemy/events.py": 9329355486544822483, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_upcast.py": 6496794053681247105, - "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/PIL/WalImageFile.py": 12442826195371137238, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/type_check.pyi": 9177256991985898824, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/parameters.py": 247312908510013930, - "venv/lib/python3.13/site-packages/pip/_internal/models/pylock.py": 16697828625021519459, - "venv/lib/python3.13/site-packages/dateutil/relativedelta.py": 5903095963079475484, - "backend/src/core/cot_logger.py": 3113579786931231764, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_s390_unix.h": 5161826643658505126, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/__main__.py": 6480933938145689964, - "backend/git_repos/remote/test-repo.git/objects/cf/d2dcbd55735b8cedf21e04e64ac627c6f9a458": 10982669277486885525, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_core_functionalities.py": 10449747865888948579, - "venv/lib/python3.13/site-packages/pygments/styles/borland.py": 17570558758932580659, - "backend/src/api/routes/__tests__/test_assistant_authz.py": 4130274102090064437, - "backend/src/core/auth/jwt.py": 15575717945774687118, - "backend/git_repos/remote/test-repo.git/hooks/pre-push.sample": 8029776382195911768, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/parsing.pyi": 11967691665766452312, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_getitem.py": 8414677531950073373, - "venv/lib/python3.13/site-packages/pygments/lexers/pascal.py": 5992422120590352714, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/requests.py": 14847842002253212098, - "venv/lib/python3.13/site-packages/passlib/ifc.py": 14479133654556657428, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_base.py": 15292769510056833117, - "venv/lib/python3.13/site-packages/pygments/lexers/haskell.py": 8011341851439354724, - "backend/src/plugins/translate/_batch_insert.py": 12482635271028646257, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/memory.py": 9947113720821563254, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_factorize.py": 5585211699185937865, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/assertion.py": 5287436128235488464, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/_mapping.py": 17519715342700184302, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_duplicates.py": 9830936017197354309, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_indexing.py": 9862204223281834360, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_formats.py": 13752366280743004410, - "venv/lib/python3.13/site-packages/sqlalchemy/event/attr.py": 5971663429221923939, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_date_range.py": 16128552513324017349, - "frontend/src/components/TaskList.svelte": 3024343043730631288, - "venv/lib/python3.13/site-packages/numpy/_core/_exceptions.py": 5570375156851166818, - "backend/tests/core/test_mapping_service.py": 6888870177029085220, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_nanfunctions.py": 2356468092336024365, - "venv/lib/python3.13/site-packages/pandas/_libs/missing.cpython-313-x86_64-linux-gnu.so": 1990755879067132155, - "venv/lib/python3.13/site-packages/PIL/_avif.pyi": 18222325750818585549, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/__init__.py": 9884041726796476720, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rank.py": 14115215895836854973, - "venv/lib/python3.13/site-packages/greenlet/greenlet.cpp": 3281107194043468270, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/dictionary.py": 9599439750713575741, - "frontend/src/components/RepositoryDashboardGrid.svelte": 14921738329941705036, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py": 5400174351499383072, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py": 14571251344510763303, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/numpyconfig.h": 13339221870252345205, - "backend/src/plugins/translate/orchestrator_runner.py": 1192466559618297192, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_getitem.py": 18202683049446557047, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_constructors.py": 6515602441449955627, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_inspect.py": 10573558345297891848, - "frontend/src/services/storageService.js": 14408290095426695791, - "venv/lib/python3.13/site-packages/PIL/ImageGrab.py": 11114379915762058868, - "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/fallback.py": 4260636031748548345, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_function_base.pyi": 10972502518588022706, - "venv/lib/python3.13/site-packages/sqlalchemy/event/registry.py": 2857989070743633709, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_timer.py": 8196003526646080498, - "venv/lib/python3.13/site-packages/numpy/lib/_version.py": 15294708923334674060, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_reindex.py": 15794750188594767026, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg2cffi.py": 5997687240967250164, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/tests/test_reloading.py": 17532116685329953400, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/processors.pyx": 7085380878820747579, - "venv/lib/python3.13/site-packages/uvicorn/logging.py": 12858188863836778374, - "frontend/src/lib/components/translate/TranslationMetricsDashboard.svelte": 8577281635452165836, - "venv/lib/python3.13/site-packages/rsa/randnum.py": 13958355153634534526, - "frontend/build/_app/immutable/nodes/26.8Y2ouxEe.js": 8154056349812602168, - "venv/lib/python3.13/site-packages/pydantic/v1/class_validators.py": 6471688474853407718, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arraypad.py": 4907193085512342162, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_css.py": 17765129030290410902, - "venv/lib/python3.13/site-packages/pygments/lexers/_sql_builtins.py": 5906655440517434734, - "frontend/src/lib/api.js": 1856641899861379694, - "venv/lib/python3.13/site-packages/keyring/backends/Windows.py": 4103830951042463184, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py": 6109201994963211857, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/reporters.py": 10760889726586439724, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/METADATA": 7727489762869155085, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_combine.py": 4446011286411407708, - "venv/lib/python3.13/site-packages/pandas/tests/frame/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_parsing.py": 2228959015420278458, - "frontend/src/routes/settings/FeaturesSettings.svelte": 14068252633661039168, - "venv/lib/python3.13/site-packages/h11/_receivebuffer.py": 4631433251046338381, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval.py": 1228451182688768814, - "frontend/build/_app/immutable/nodes/29.BCwh4wDu.js": 10880930024902682923, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_resampler_grouper.py": 8388490036390951341, - "venv/lib/python3.13/site-packages/sqlalchemy/pool/__init__.py": 4337679908168515343, - "backend/src/core/superset_profile_lookup.py": 5518507735632088337, - "backend/src/plugins/storage/__init__.py.bak": 7062955918227442388, - "backend/tests/services/clean_release/test_publication_service.py": 17277940125978730159, - "venv/lib/python3.13/site-packages/numpy/tests/test_numpy_version.py": 849232015288488204, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/RECORD": 13494296690334916257, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_complex.py": 4290059580478881700, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/meson.build.template": 9935732744553086652, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh22648.pyf": 15094859289098837494, - "venv/lib/python3.13/site-packages/pygments/lexers/jsonnet.py": 1314044008440065525, - "venv/lib/python3.13/site-packages/ecdsa/numbertheory.py": 13538480862642502330, - "backend/src/api/routes/__tests__/test_clean_release_api.py": 11565478953155085157, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/context.py": 1041624619197012753, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_aix.h": 13316272821279308986, - "venv/lib/python3.13/site-packages/pyasn1/codec/cer/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/__init__.py": 1948986914452928735, - "venv/lib/python3.13/site-packages/PIL/IcoImagePlugin.py": 14483964191652228364, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pygments/lexers/modula2.py": 6575895980250662093, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/METADATA": 10241403930811743893, - "venv/lib/python3.13/site-packages/secretstorage/defines.py": 9590959702075554048, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_arrayobject.py": 9578555381494297966, - "venv/lib/python3.13/site-packages/numpy/fft/tests/test_helper.py": 5362180645056413158, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_dtype.py": 12210524152630532747, - "venv/lib/python3.13/site-packages/pandas/core/arrays/_utils.py": 11574890848475750509, - "backend/src/core/config_manager.py": 18161236261317111528, - "frontend/build/_app/immutable/chunks/Dx5pMPrM.js": 12135044835772226705, - "frontend/build/_app/immutable/chunks/BoOsFBJ0.js": 11874060117929105318, - "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft.py": 6142062990691556076, - "venv/lib/python3.13/site-packages/_pytest/pytester.py": 5423287282155948827, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkrb5-fcafa220.so.3.3": 5620628698712971642, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_normalize.py": 3203921571999101793, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked_shared.py": 8453174300922339015, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_str_accessor.py": 4066094997616994612, - "venv/lib/python3.13/site-packages/pygments/lexers/xorg.py": 14591144191879110061, - "backend/src/services/clean_release/stages/internal_sources_only.py": 15680055221844544848, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_apply_relabeling.py": 3930092097678339743, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_unique.py": 16285418015531891530, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/endpoint.py": 8519226897299461194, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/RECORD": 10264342250058307301, - "venv/lib/python3.13/site-packages/cryptography/x509/ocsp.py": 17973800752927680404, - "venv/lib/python3.13/site-packages/_pytest/outcomes.py": 12782895027812738142, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_constructors.py": 1697610790604400105, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/_json.py": 6718137926109998531, - "venv/lib/python3.13/site-packages/jeepney/io/trio.py": 11859775321483330469, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_formats.py": 1265319125235346745, - "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/accessor.py": 8373575175447947401, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm32_gcc.h": 3561524604274567339, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_datetimelike.py": 10294379314868108649, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/METADATA": 5628172948035858892, - "venv/lib/python3.13/site-packages/numpy/_core/_string_helpers.pyi": 12043292763005874815, - "venv/lib/python3.13/site-packages/PIL/ImageStat.py": 18442709639217312689, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/METADATA": 3814104793342833872, - "venv/lib/python3.13/site-packages/urllib3/_collections.py": 3440910792774742262, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_routines.py": 4860173574365060471, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/revocation.py": 16178499278312777474, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_year.py": 1478857009124807836, - "venv/lib/python3.13/site-packages/pygments/lexers/ambient.py": 18106929781201758080, - "backend/src/plugins/git/llm_extension.py": 9347391649685791102, - "venv/lib/python3.13/site-packages/pip/_internal/exceptions.py": 2252826732781519645, - "backend/src/services/clean_release/__tests__/test_policy_engine.py": 9953185933720550640, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_repr.py": 7552782621374439569, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/implicit.py": 7379110378465568776, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/RECORD": 17545477863793260029, - "venv/lib/python3.13/site-packages/pandas/core/config_init.py": 16537122488227845090, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_tz_localize.py": 18409231586451494605, - "venv/lib/python3.13/site-packages/PIL/BmpImagePlugin.py": 16682567630621529903, - "venv/bin/activate.fish": 5275961582873298085, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/console.py": 10217327186846649646, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi": 16312114056447366970, - "frontend/build/_app/immutable/chunks/Bxli7MEx.js": 13142003860484323974, - "backend/src/api/routes/__tests__/test_clean_release_v2_release_api.py": 14275839608126658275, - "venv/lib/python3.13/site-packages/numpy/_core/memmap.py": 4093510602708416858, - "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/METADATA": 2624107638694809013, - "venv/lib/python3.13/site-packages/pydantic/experimental/missing_sentinel.py": 1637241331832367709, - "venv/lib/python3.13/site-packages/pydantic/warnings.py": 5142352784799639092, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_emoji_codes.py": 13901854719435716195, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/uts46data.py": 1867240043777383728, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_fsspec.py": 6936167344144998172, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/session.py": 5126234270435358377, - "frontend/src/lib/components/dataset-review/__tests__/us3_execution_batch.ux.test.js": 13416996904332574966, - "backend/src/plugins/translate/orchestrator_retry.py": 9287851697930332790, - "venv/lib/python3.13/site-packages/fastapi/cli.py": 13972351579061154035, - "venv/lib/python3.13/site-packages/pygments/styles/algol_nu.py": 6229131016121450375, - "venv/lib/python3.13/site-packages/pygments/styles/monokai.py": 12381683616720952636, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_nditer.py": 8341339612899904236, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_win_type.py": 18105114803686556748, - "venv/lib/python3.13/site-packages/pygments/lexers/arrow.py": 6699009974224818979, - "backend/src/services/git/_status.py": 11400014053359523156, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/conftest.py": 17897502508251413988, - "venv/lib/python3.13/site-packages/attr/validators.py": 4453080662115911998, - "venv/lib/python3.13/site-packages/websockets/__init__.py": 4916307256304054040, - "backend/src/services/git_service.py": 1930048176535450912, - "frontend/src/lib/components/reports/ReportsList.svelte": 15460090587871611258, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/multiarray.py": 3224049574922696945, - "frontend/build/_app/immutable/nodes/28.DY1VxtMo.js": 10916149061941853879, - "venv/lib/python3.13/site-packages/charset_normalizer/__main__.py": 8887772289570078278, - "backend/src/api/routes/assistant/_command_parser.py": 2745692387994130159, - "venv/lib/python3.13/site-packages/rapidfuzz/utils.py": 5682627611354455144, - "venv/lib/python3.13/site-packages/PIL/McIdasImagePlugin.py": 14137545069906812251, - "venv/lib/python3.13/site-packages/pandas/api/executors/__init__.py": 16954693181142010028, - "venv/lib/python3.13/site-packages/pandas/__init__.py": 793698514004377486, - "venv/lib/python3.13/site-packages/httpcore/_models.py": 2501866419898326733, - "frontend/src/components/auth/ProtectedRoute.svelte": 7705373237339863677, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated": 11193150813314469394, - "venv/lib/python3.13/site-packages/pillow.libs/libfreetype-ee1c40c4.so.6.20.4": 12301510769231120312, - "venv/lib/python3.13/site-packages/numpy/lib/_format_impl.pyi": 15745512451486888537, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/jose/__init__.py": 317573635113539563, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_month.py": 14597470286884431085, - "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/__init__.py": 18019562641348687547, - "venv/lib/python3.13/site-packages/typing_extensions.py": 8402965285733247527, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_construction.py": 10619501873883861745, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_2_complexcompat.h": 5001035774408914877, - "venv/lib/python3.13/site-packages/sqlalchemy/util/_has_cy.py": 11979732417254560424, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_format.py": 5231304674283854194, - "venv/lib/python3.13/site-packages/passlib/tests/sample1.cfg": 9597283806285213340, - "venv/lib/python3.13/site-packages/httpcore/_sync/http11.py": 5947339024588907032, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_2_compat.h": 6512969159139431485, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/scalar_string.f90": 15018631706178918578, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/RECORD": 16874983218652404911, - "venv/lib/python3.13/site-packages/pygments/lexers/_openedge_builtins.py": 4979988747924637739, - "venv/lib/python3.13/site-packages/websockets/typing.py": 13268801935274185287, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mutable.py": 9323088483998280629, - "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.pyi": 14150710436003340771, - "venv/lib/python3.13/site-packages/pip/_internal/commands/index.py": 16715578868094112894, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/passlib/handlers/roundup.py": 3844280972451753019, - "venv/lib/python3.13/site-packages/numpy/lib/_arrayterator_impl.pyi": 2744889206277418389, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_unary.py": 2573825678342936734, - "venv/lib/python3.13/site-packages/smmap/test/test_buf.py": 6910367739329016619, - "venv/lib/python3.13/site-packages/authlib/oauth1/__init__.py": 3692257288065292607, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/code.py": 9700811903057180696, - "venv/lib/python3.13/site-packages/jeepney/io/tests/test_asyncio.py": 2820168745710754136, - "venv/lib/python3.13/site-packages/pluggy/_manager.py": 18202550145040079612, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/index_tricks.py": 10051261976498916957, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers.py": 4940305787631493030, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_integer.py": 16102640589300356639, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_at.py": 1029744344133153888, - "venv/lib/python3.13/site-packages/referencing/tests/test_retrieval.py": 10782087416909177703, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/index_tricks.pyi": 6035507586990711471, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_subclass.py": 13490541871827928531, - "venv/lib/python3.13/site-packages/pandas/core/ops/array_ops.py": 10061020479033421596, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_errors.py": 3301889847545579393, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_concat.py": 3788461606817482165, - "venv/lib/python3.13/site-packages/ecdsa/ecdsa.py": 9770689913380927623, - "venv/lib/python3.13/site-packages/numpy/_array_api_info.pyi": 13283968924732680159, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_toml_compat.py": 10196543528439925412, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/datetimelike_accumulations.py": 14719894187829729175, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/instrumentation.py": 14882045449667214075, - "venv/lib/python3.13/site-packages/pandas/core/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/_pytest/debugging.py": 16135285365306979060, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_iteration.py": 15247340610412364508, - "venv/lib/python3.13/site-packages/pycparser/_c_ast.cfg": 2649342580905806389, - "venv/lib/python3.13/site-packages/numpy/lib/_datasource.py": 18136853038949826147, - "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_nonunique_indexes.py": 15468078561381939405, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_equals.py": 6429101196875333574, - "venv/lib/python3.13/site-packages/urllib3/util/ssl_match_hostname.py": 7411350247004265632, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_partial_slicing.py": 16219611534574666182, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_multiplier.f": 13432803601367981068, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_misc.pyi": 7544619194032232861, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_with_comments.f": 3980077223827767077, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_masm.obj": 11967637259540485652, - "venv/lib/python3.13/site-packages/numpy/_typing/_array_like.py": 2161873439361281488, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval_range.py": 9900908262700749861, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_astype.py": 1961831758405941258, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex_table.tpl": 8706980975714184465, - "venv/lib/python3.13/site-packages/numpy/lib/_arraypad_impl.pyi": 2186875333484796630, - "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_digest.py": 7988469818593853943, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_find_common_type.py": 9581516171321396333, - "venv/lib/python3.13/site-packages/pytest_asyncio/__init__.py": 8162213292669110211, - "venv/lib/python3.13/site-packages/pandas/_libs/hashtable.cpython-313-x86_64-linux-gnu.so": 16963890771704942465, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/RECORD": 1556051687830913019, - "venv/lib/python3.13/site-packages/pygments/lexers/_lua_builtins.py": 12653747099659257203, - "venv/lib/python3.13/site-packages/pygments/lexers/_googlesql_builtins.py": 12251289884604745945, - "venv/lib/python3.13/site-packages/passlib/tests/test_registry.py": 15377817946543064293, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_printing.py": 8859757563354666575, - "venv/lib/python3.13/site-packages/PIL/_imaging.pyi": 17119084207765761921, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/response.py": 15004896908941411698, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/mongodb.py": 5310116401542377882, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_alpha_unix.h": 2759424570606117942, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/parameters.py": 12219404446503940066, - "venv/lib/python3.13/site-packages/yaml/serializer.py": 1783761365703703558, - "frontend/build/_app/immutable/assets/AssistantChatPanel.D4L5jlt0.css": 10724144138366384732, - "venv/lib/python3.13/site-packages/anyio/_core/_contextmanagers.py": 1258491775823080427, - "venv/lib/python3.13/site-packages/numpy/_core/_struct_ufunc_tests.cpython-313-x86_64-linux-gnu.so": 13269324887178340397, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_repeat.py": 11360772447747837958, - "venv/lib/python3.13/site-packages/pygments/formatters/__init__.py": 8009871891954370829, - "frontend/src/routes/translate/dictionaries/[id]/+page.svelte": 17719561272401762626, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/engine.py": 2652248727360250985, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufuncs.py": 12732599294816239111, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_argon2.py": 11345706437113628133, - "backend/src/models/profile.py": 8992580618107123889, - "venv/lib/python3.13/site-packages/_pytest/faulthandler.py": 13329320306353718649, - "venv/lib/python3.13/site-packages/pandas/_libs/indexing.cpython-313-x86_64-linux-gnu.so": 13188040757764159731, - "venv/lib/python3.13/site-packages/pandas/core/reshape/merge.py": 300205528811693975, - "venv/lib/python3.13/site-packages/pandas/tests/reductions/test_reductions.py": 11624188672428941494, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/aws.py": 1364297790170663941, - "venv/lib/python3.13/site-packages/greenlet/TExceptionState.cpp": 17617354576371846109, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_concat.py": 4472503149811617440, - "backend/src/services/reports/__tests__/test_report_normalizer.py": 5179524010104259469, - "venv/lib/python3.13/site-packages/referencing/jsonschema.py": 14596871117484757502, - "venv/lib/python3.13/site-packages/dotenv/py.typed": 9796674040111366709, - "venv/lib/python3.13/site-packages/_pytest/skipping.py": 10561585274103209115, - "venv/lib/python3.13/site-packages/pydantic/json.py": 4109352930301629308, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_index_as_string.py": 13421551616136437100, - "backend/src/plugins/translate/__tests__/test_sql_generator.py": 4467071942040481147, - "backend/src/core/superset_client/_dashboards_crud.py": 4664728216214173491, - "venv/lib/python3.13/site-packages/gitdb/pack.py": 7828244200815444166, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_datetimelike.py": 15246580603900811749, - "venv/lib/python3.13/site-packages/cffi/_cffi_errors.h": 1479575326813300292, - "venv/lib/python3.13/site-packages/sqlalchemy/exc.py": 6372950288664776625, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/errors.py": 6538052228921426956, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/METADATA": 14126682758562488244, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_simd.py": 7577408467041941595, - "venv/lib/python3.13/site-packages/pygments/lexers/_usd_builtins.py": 8671446144574174964, - "venv/lib/python3.13/site-packages/cryptography/x509/base.py": 9124948989225782039, - "venv/lib/python3.13/site-packages/psycopg2/pool.py": 8855184580138330938, - "venv/lib/python3.13/site-packages/jsonschema/__init__.py": 6925762200139836824, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_convert_dtypes.py": 13612212066710266457, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/useless_applicator_schemas.py": 8395157526634674143, - "venv/lib/python3.13/site-packages/cryptography/x509/general_name.py": 4481582226129488535, - "venv/bin/activate": 14735074000123383125, - "backend/tests/services/dataset_review/test_superset_matrix.py": 5114797134613078913, - "venv/lib/python3.13/site-packages/ecdsa/test_der.py": 7117444285097824495, - "venv/lib/python3.13/site-packages/passlib/handlers/scrypt.py": 10089372287597257402, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/__init__.py": 11808051681178127650, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/fromnumeric.pyi": 8671744104085911610, - "venv/lib/python3.13/site-packages/cffi/_embedding.h": 9441285871823018603, - "venv/lib/python3.13/site-packages/httpcore/_backends/anyio.py": 6167729964577005634, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_array.py": 11271807719833350332, - "backend/src/schemas/dataset_review_pkg/_dtos.py": 13301885458265748263, - "venv/lib/python3.13/site-packages/numpy/core/einsumfunc.py": 3484247123731380377, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/ec_key.py": 5961540064444749833, - "venv/lib/python3.13/site-packages/numpy/random/_generator.pyi": 17167649524261942483, - "venv/lib/python3.13/site-packages/starlette/config.py": 16509394679506300256, - "venv/lib/python3.13/site-packages/attrs/exceptions.py": 2871247302586505373, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/REQUESTED": 15130871412783076140, - "backend/src/core/superset_client/_databases.py": 14837101840847724937, - "backend/src/services/clean_release/repositories/candidate_repository.py": 14784344453820731941, - "backend/src/plugins/translate/dictionary_filter.py": 18047895364995512274, - "venv/lib/python3.13/site-packages/cryptography/exceptions.py": 5173540025160237758, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_misc.py": 9190561773853901527, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/__init__.py": 1343779312297539596, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_dependency_group.py": 10505346210114745037, - "venv/lib/python3.13/site-packages/numpy/testing/_private/utils.py": 3646474165295296669, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/json.py": 15373167408891671190, - "frontend/e2e/tests/translation.e2e.js": 6244274143080191568, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_hermite_e.py": 8912795372542950449, - "venv/lib/python3.13/site-packages/pydantic/_internal/_decorators.py": 9928398334052202841, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/WHEEL": 9131187629260560775, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/key_set.py": 8485970749081951741, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/win64python2.npy": 11005857803794805939, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arithmetic.pyi": 467927803068643024, - "venv/lib/python3.13/site-packages/bcrypt/__about__.py": 11196369962175692786, - "venv/lib/python3.13/site-packages/pandas/core/sparse/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy.libs/libgfortran-040039e1-0352e75f.so.5.0.0": 13946067868274850557, - "venv/lib/python3.13/site-packages/pydantic/aliases.py": 14481980467204711659, - "venv/lib/python3.13/site-packages/numpy/fft/tests/test_pocketfft.py": 18025182347224285050, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_api.py": 6439927798101672423, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_setops.py": 14246225281428284850, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_is_unique.py": 3989602816674881215, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_sort_values.py": 834951665649981397, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/cymysql.py": 5570881524647789741, - "venv/lib/python3.13/site-packages/dateutil/tz/_common.py": 9009072600471223066, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_lexsort.py": 10394832796613968484, - "venv/lib/python3.13/site-packages/pytest/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/jeepney/io/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/METADATA": 6960169108624303030, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_join.py": 11910166566689889389, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_isin.py": 14387850595546682314, - "venv/lib/python3.13/site-packages/websockets/legacy/auth.py": 16685128086396181286, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_inference.py": 5741637509343419942, - "venv/lib/python3.13/site-packages/pygments/lexers/automation.py": 8021926838024836904, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_explode.py": 16195468192763502449, - "venv/lib/python3.13/site-packages/pygments/lexers/perl.py": 17014528337020572681, - "venv/lib/python3.13/site-packages/pydantic/_internal/_schema_gather.py": 3634138701088855517, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_join.py": 4213933887062089605, - "venv/lib/python3.13/site-packages/authlib/integrations/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pygments/formatters/bbcode.py": 8614391937525677922, - "venv/lib/python3.13/site-packages/httpx/_main.py": 1812303705973265093, - "venv/lib/python3.13/site-packages/pygments/lexer.py": 3658450949169647228, - "backend/src/models/__tests__/test_clean_release.py": 3448406855108346883, - "venv/lib/python3.13/site-packages/pygments/lexers/pointless.py": 17552020039609007881, - "venv/lib/python3.13/site-packages/gitdb/db/git.py": 13552203494737962026, - "backend/src/core/utils/superset_context_extractor/_base.py": 15730081123519745401, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/index_tricks.pyi": 11463747060334597941, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_repeat.py": 9155935990114743583, - "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/__init__.py": 18036348770966744795, - "venv/lib/python3.13/site-packages/numpy/ma/testutils.py": 9355402483340137461, - "venv/lib/python3.13/site-packages/PIL/ImageWin.py": 13635870584232081323, - "venv/lib/python3.13/site-packages/greenlet/TThreadState.hpp": 15599148954148720463, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/_pytest/recwarn.py": 15312759837838083596, - "venv/lib/python3.13/site-packages/pydantic/_internal/_validate_call.py": 4078236486720616395, - "backend/git_repos/remote/test-repo.git/hooks/update.sample": 8204581436750313444, - "venv/lib/python3.13/site-packages/pandas/tests/__init__.py": 15130871412783076140, - "backend/src/api/routes/translate/_run_routes.py": 6617818713940695689, - "venv/lib/python3.13/site-packages/apscheduler/executors/tornado.py": 6635576580306890718, - "venv/lib/python3.13/site-packages/git/diff.py": 6691274015605451565, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/numerictypes.pyi": 15565573472138344755, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/__init__.py": 2791238481813240414, - "backend/src/api/routes/__tests__/test_dataset_review_api.py": 17381354465400611694, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libcom_err-2abe824b.so.2.1": 12870528025628871295, - "venv/lib/python3.13/site-packages/passlib/utils/decor.py": 21351391767102899, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_timedelta.py": 7742506012012398830, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/period.cpython-313-x86_64-linux-gnu.so": 14468234464367691795, - "venv/lib/python3.13/site-packages/pip/_internal/cli/parser.py": 1064209424435927674, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/licenses/LICENSE": 14524289631770661180, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/METADATA": 13428590545328703138, - "venv/lib/python3.13/site-packages/numpy/_core/cversions.py": 9724467539503410469, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/types.py": 1343652083039949282, - "venv/lib/python3.13/site-packages/anyio/_core/_synchronization.py": 7050001375718876608, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_series_equal.py": 1223890028205011021, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/git/util.py": 7424113599506269603, - "venv/lib/python3.13/site-packages/jeepney/io/tests/utils.py": 10346859893683522113, - "venv/lib/python3.13/site-packages/pygments/lexers/oberon.py": 15220143799603451830, - "venv/lib/python3.13/site-packages/h11/__init__.py": 222801976520197308, - "backend/src/api/routes/__tests__/test_assistant_api.py": 16438212076178324033, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/licenses/LICENSE": 5563356551734678258, - "venv/lib/python3.13/site-packages/numpy/core/shape_base.py": 17925759824894973734, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_quoted_character.py": 2316632434571797367, - "venv/lib/python3.13/site-packages/numpy/_core/_dtype_ctypes.pyi": 14543653817631274394, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_count.py": 16947194157984708529, - "venv/lib/python3.13/site-packages/numpy/lib/scimath.py": 7616377937400918724, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_replace.py": 8165088653532047247, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py": 2609365889369107154, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_row.py": 918740441973901148, - "venv/lib/python3.13/site-packages/anyio/streams/buffered.py": 8916188172110578587, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_macosx.h": 3653129798702716366, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_stack_unstack.py": 3737891757817696405, - "venv/lib/python3.13/site-packages/pandas/io/sas/sas_constants.py": 14492427939536692313, - "venv/lib/python3.13/site-packages/PIL/_util.py": 17116054813914373606, - "venv/lib/python3.13/site-packages/yaml/tokens.py": 2279161238859232338, - "venv/lib/python3.13/site-packages/pygments/styles/lilypond.py": 12486578704132023691, - "venv/lib/python3.13/site-packages/pluggy/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/tnt.py": 4657130609241407766, - "venv/lib/python3.13/site-packages/fastapi/background.py": 16533963020573865222, - "venv/lib/python3.13/site-packages/pygments/lexers/gdscript.py": 12775803139854052838, - "frontend/playwright.config.js": 1601415616693761429, - "venv/lib/python3.13/site-packages/pandas/tests/resample/__init__.py": 15130871412783076140, - "backend/src/core/plugin_base.py": 11649432288706102843, - "backend/src/api/routes/__tests__/test_clean_release_legacy_compat.py": 10703957986116846695, - "venv/lib/python3.13/site-packages/pandas/_libs/sas.pyi": 873957906443703977, - "backend/src/services/reports/report_service.py": 17586405613867657190, - "backend/src/plugins/translate/preview_llm_client.py": 14412557858942627249, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/h11/_headers.py": 7592730288271984585, - "backend/src/plugins/translate/orchestrator_validation.py": 17464651621865127561, - "backend/tests/test_core_scheduler.py": 6589618269087393661, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming_py.py": 16133454512601432815, - "venv/lib/python3.13/site-packages/numpy/random/_mt19937.cpython-313-x86_64-linux-gnu.so": 85866616759631810, - "venv/lib/python3.13/site-packages/websockets/auth.py": 499195617702591757, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_strings.py": 7168544888340296373, - "venv/lib/python3.13/site-packages/passlib/tests/test_pwd.py": 10089138951415591061, - "backend/tests/test_translate_jobs.py": 16585154497956900995, - "backend/alembic/versions/aa1b2c3d4e5f_drop_deprecated_translate_columns.py": 15433357059529111004, - "venv/lib/python3.13/site-packages/greenlet/tests/test_cpp.py": 10982107081267457286, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_sort.py": 11941630642630249576, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/operators.py": 2468046993343796128, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_array_from_pyobj.py": 9596224861290975079, - "venv/lib/python3.13/site-packages/PIL/GbrImagePlugin.py": 7681313333602257802, - "backend/src/core/__tests__/test_superset_profile_lookup.py": 15590077829286810714, - "venv/lib/python3.13/site-packages/pyasn1/compat/integer.py": 7365270971777550573, - "venv/lib/python3.13/site-packages/rapidfuzz/__pyinstaller/test_rapidfuzz_packaging.py": 5189055608193366093, - "venv/lib/python3.13/site-packages/pandas/core/internals/managers.py": 13547912653290063698, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/base.py": 14734745827490220667, - "venv/lib/python3.13/site-packages/pandas/util/_doctools.py": 3766479022075611396, - "venv/lib/python3.13/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17": 4221600618602131476, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_assignability.pyi": 1718610984396277997, - "venv/lib/python3.13/site-packages/numpy/testing/_private/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/fft/__init__.pyi": 10354990065626209946, - "venv/lib/python3.13/site-packages/PIL/GribStubImagePlugin.py": 14954946414134984896, - "venv/lib/python3.13/site-packages/urllib3/poolmanager.py": 15431313180245757657, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_resolution.py": 18198858926948468112, - "venv/lib/python3.13/site-packages/authlib/oidc/core/errors.py": 18154419146257747681, - "venv/lib/python3.13/site-packages/PIL/ImagePath.py": 18323293175183057101, - "venv/lib/python3.13/site-packages/pandas/io/excel/__init__.py": 6662687963241471393, - "backend/src/services/clean_release/candidate_service.py": 8516915994721977806, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py": 18069619555394133945, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/__init__.py": 14571251344510763303, - "venv/lib/python3.13/site-packages/PIL/Jpeg2KImagePlugin.py": 16905402423248975204, - "venv/lib/python3.13/site-packages/pandas/core/frame.py": 2630807744775247533, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_find_replace.py": 262184394614748386, - "venv/lib/python3.13/site-packages/pygments/lexers/idl.py": 11454152060351801696, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_dict.py": 16252265723192124609, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dtypes.py": 4985057130807802395, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_multiindex.py": 13723677252432338937, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_functions.py": 2255133375699086300, - "venv/lib/python3.13/site-packages/ecdsa/test_ellipticcurve.py": 11125783981574901613, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/RECORD": 17594742868855466393, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_utils.py": 15197339054699289627, - "backend/src/schemas/__init__.py": 8700952869915187087, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_print.py": 598821365691498702, - "venv/lib/python3.13/site-packages/pandas/tests/extension/json/array.py": 7437107031079833232, - "venv/lib/python3.13/site-packages/pandas/_libs/groupby.pyi": 6154952803757623626, - "venv/lib/python3.13/site-packages/pandas/io/formats/_color_data.py": 15614976586613738953, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_argparse.py": 11111699418217357084, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/h11_impl.py": 1419719055394402145, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_setitem.py": 15731267129055947469, - "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_impl.py": 16610770935842519289, - "venv/lib/python3.13/site-packages/idna-3.11.dist-info/METADATA": 14036738037171597049, - "frontend/src/routes/dashboards/health/+page.svelte": 5234355531444674267, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/__init__.py": 15130871412783076140, - "backend/src/core/auth/__init__.py": 16435384828055133073, - "venv/lib/python3.13/site-packages/git/repo/fun.py": 9019364012746153312, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_indexing.py": 16291207621268530224, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_replace.py": 4953527309376861139, - "venv/lib/python3.13/site-packages/fastapi/middleware/trustedhost.py": 4285622102799027823, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi": 13016654355866474644, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/RECORD": 9461427699726982537, - "backend/src/api/routes/translate/_correction_routes.py": 12437040676784563126, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_week.py": 5756727157937218128, - "venv/lib/python3.13/site-packages/numpy/f2py/f2py2e.pyi": 14181518821845356636, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/LICENSE": 6989336036499641077, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_wrap.py": 17083394123203662880, - "venv/lib/python3.13/site-packages/jsonschema/_utils.py": 14237077105384631097, - "venv/lib/python3.13/site-packages/requests/utils.py": 17045260098091371478, - "venv/lib/python3.13/site-packages/pyasn1/codec/cer/encoder.py": 3261739474564948330, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sort_values.py": 12064896795288302730, - "venv/lib/python3.13/site-packages/pydantic/schema.py": 83238111330132033, - "frontend/src/lib/components/ui/MultiSelect.svelte": 1475503303018683038, - "venv/lib/python3.13/site-packages/websockets/extensions/__init__.py": 13067201313921664210, - "venv/lib/python3.13/site-packages/pandas/core/interchange/buffer.py": 12961802206383700922, - "venv/lib/python3.13/site-packages/_cffi_backend.cpython-313-x86_64-linux-gnu.so": 829323374625147265, - "frontend/src/assets/svelte.svg": 13872699371039797074, - "venv/lib/python3.13/site-packages/_pytest/config/__init__.py": 12787579251203510616, - "venv/lib/python3.13/site-packages/pygments/styles/manni.py": 11853576691280294949, - "venv/lib/python3.13/site-packages/pydantic/v1/annotated_types.py": 12925825196690299531, - "frontend/src/components/TaskLogViewer.svelte": 11262767195652916566, - "venv/lib/python3.13/site-packages/pip/_internal/locations/_distutils.py": 13559457590971821771, - "backend/src/core/async_superset_client.py": 17097960069181151584, - "frontend/src/components/git/CommitModal.svelte": 4151596094672629211, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_dtypes.py": 2313400030798822026, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_html.py": 7947998260347730581, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/requirements.py": 2362917888844255805, - "backend/src/plugins/translate/_llm_parse.py": 3278211416813203155, - "backend/git_repos/remote/test-repo.git/refs/heads/feature/e2e-update": 9577764946931187657, - "venv/lib/python3.13/site-packages/pyasn1/__init__.py": 8089201217593738032, - "venv/lib/python3.13/site-packages/gitdb/utils/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/serialize.py": 11139432164346742421, - "venv/lib/python3.13/site-packages/py.py": 16248211404003181569, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/tzconversion.cpython-313-x86_64-linux-gnu.so": 15960606468596245469, - "venv/lib/python3.13/site-packages/pygments/lexers/crystal.py": 3579547906957125755, - "venv/lib/python3.13/site-packages/pydantic/color.py": 1007422551673129827, - "venv/lib/python3.13/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.2.0": 2635192149914499986, - "venv/lib/python3.13/site-packages/httpx/__version__.py": 9473642134297828811, - "venv/lib/python3.13/site-packages/numpy.libs/libscipy_openblas64_-096271d3.so": 14338208504131470036, - "venv/lib/python3.13/site-packages/fastapi/_compat/v2.py": 15078491685917047095, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/misc/extended_precision.pyi": 6541258584648209609, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/RECORD": 10036839994791510159, - "venv/lib/python3.13/site-packages/pygments/lexers/_vim_builtins.py": 6842381248727719900, - "frontend/src/lib/components/translate/BulkReplaceModal.svelte": 9447617465987205060, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssltransport.py": 8148652555908329980, - "venv/lib/python3.13/site-packages/keyring/backends/chainer.py": 12526770797516553385, - "venv/lib/python3.13/site-packages/numpy/_typing/_ufunc.pyi": 6286629088867436848, - "venv/lib/python3.13/site-packages/pygments/util.py": 4815334059917765852, - "frontend/src/services/git-utils.js": 12982149055119314642, - "backend/src/schemas/auth.py": 12332369795585412464, - "backend/src/services/notifications/service.py": 7032100258837946310, - "frontend/src/components/StartupEnvironmentWizard.svelte": 13169478544862386336, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_drop.py": 17940792593116540139, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/ssh.py": 16262079536832961001, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/_typing.py": 10524021526716767489, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py": 8539232219382152238, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/util.py": 6088868370298560146, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log2.csv": 13979868713429167140, - "backend/src/plugins/translate/orchestrator_aggregator.py": 14747269098451697881, - "venv/lib/python3.13/site-packages/more_itertools/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_typing/_dtype_like.py": 1598511035344858524, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/philox-testset-1.csv": 2202360898679162333, - "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/RECORD": 3649834117451110628, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix.pyi": 2700568594438441246, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/abstract_interface/foo.f90": 14491312943942432024, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/python3.npy": 4957143805477405905, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_free.f90": 10939657740734987454, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_constructors.py": 9767900500541600486, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/background.py": 2105814165112049750, "venv/lib/python3.13/site-packages/numpy/lib/_user_array_impl.pyi": 7171810177801103765, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_day.py": 2200008998040663785, - "venv/lib/python3.13/site-packages/httpcore/_async/http11.py": 7565741048880549265, - "venv/lib/python3.13/site-packages/pygments/lexers/promql.py": 8929925488296216854, - "venv/lib/python3.13/site-packages/gitdb/db/base.py": 3375449584942578385, - "venv/lib/python3.13/site-packages/pygments/lexers/d.py": 18120801227801223376, - "venv/include/site/python3.13/greenlet/greenlet.h": 16216120538647882082, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/LICENSE": 6581019367004699816, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/base.py": 5924592154431932923, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/take.py": 3170415198452493008, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_indexing.py": 4063662953863959087, - "venv/lib/python3.13/site-packages/pydantic/experimental/pipeline.py": 9493054841465227788, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/spinner.py": 5564789578696016201, - "venv/lib/python3.13/site-packages/gitdb/test/test_base.py": 16305779366785148795, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_deprecations.py": 8310244516175542839, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/wrapper.py": 4633931060151989960, - "venv/lib/python3.13/site-packages/numpy/core/multiarray.py": 18368443598659711836, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/WHEEL": 8600534672961461758, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/converter.py": 9041278869295701566, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/ops.py": 13451323660386712332, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_complex.py": 12963449957363121481, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_take.py": 14969455660160053080, - "venv/lib/python3.13/site-packages/greenlet/greenlet_exceptions.hpp": 8819301638282185623, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/LICENSE": 2032205056284080825, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_expanding.py": 12504275097476819918, - "backend/src/core/auth/config.py": 8065625913451826937, - "venv/lib/python3.13/site-packages/pip/_internal/cli/base_command.py": 10660882478126415399, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_formats.py": 9738552308554950419, - "backend/src/services/clean_release/repositories/approval_repository.py": 15069637305272665109, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/requirements.py": 11478648568700804705, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api1.c": 8494977275215578998, - "venv/lib/python3.13/site-packages/attr/_make.py": 2348458829123990579, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_matplotlib.py": 12775850858284584296, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_array.py": 12514884344165043136, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE": 3996324383113221529, - "venv/lib/python3.13/site-packages/pygments/console.py": 3540660073442483692, - "venv/lib/python3.13/site-packages/pytest_asyncio/plugin.py": 13414541723622354359, - "venv/lib/python3.13/site-packages/packaging/_elffile.py": 9546225990833172494, - "backend/src/models/config.py": 7631082065091961320, - "venv/lib/python3.13/site-packages/pandas/core/indexers/__init__.py": 1756397319068017890, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/test_pyinstaller.py": 9430762168079129025, - "venv/lib/python3.13/site-packages/uvicorn/lifespan/on.py": 2866195356090164296, - "backend/tests/services/clean_release/test_policy_resolution_service.py": 3471271299977247598, - "venv/lib/python3.13/site-packages/apscheduler/executors/base.py": 1980520974511822101, - "venv/lib/python3.13/site-packages/PIL/GdImageFile.py": 16875784236394545058, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py": 15644105878811738516, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py": 7707707044867513457, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_kurt.py": 2898715045429898166, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_pbkdf2.py": 4977067068389993374, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/printing.py": 8681519649669408795, - "venv/lib/python3.13/site-packages/dateutil/tzwin.py": 5149446703746204349, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/retry.py": 17371295199208325375, - "frontend/src/lib/stores/__tests__/mocks/env_public.js": 2540122820969872185, - "venv/lib/python3.13/site-packages/PIL/ImageMorph.py": 13861961228125789866, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/schema.py": 16029542421991709659, - "venv/lib/python3.13/site-packages/pandas/_config/display.py": 433650013567734821, - "backend/git_repos/remote/test-repo.git/hooks/pre-commit.sample": 102291230237676317, - "venv/lib/python3.13/site-packages/_pytest/mark/__init__.py": 9343015549300275714, - "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/ext.py": 15699809032725838985, - "venv/lib/python3.13/site-packages/pandas/core/ops/docstrings.py": 3721650738518391256, - "venv/lib/python3.13/site-packages/pygments/lexers/data.py": 9365024327689738663, - "venv/lib/python3.13/site-packages/numpy/core/overrides.pyi": 1968648615494204783, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_tools.py": 13994164937603424236, - "venv/lib/python3.13/site-packages/numpy/_core/getlimits.py": 7842717073693731093, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_setops.py": 15365064654930699428, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libpq-9b38f5e3.so.5.17": 9680474575710585826, - "venv/lib/python3.13/site-packages/pip/_internal/build_env.py": 3614358934066127900, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_query_eval.py": 17613800806748649144, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timedeltas.pyi": 3783371827926657291, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/precision.f90": 5518911932373565642, - "venv/lib/python3.13/site-packages/dateutil/tz/_factories.py": 7538654189286887518, - "backend/src/services/__tests__/test_llm_plugin_persistence.py": 2413185961042174999, - "venv/lib/python3.13/site-packages/pandas/errors/__init__.py": 13444371880185740908, - "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_datetime.py": 3499461736474530062, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_arithmetic.py": 11620920548943067949, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_inclusive.py": 1389676378885557519, - "backend/src/core/database.py": 6142911633510653132, - "venv/lib/python3.13/site-packages/packaging/licenses/__init__.py": 15879493360260891293, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/INSTALLER": 17282701611721059870, - "backend/git_repos/remote/test-repo.git/objects/8c/4ea7958b7a7e140d27e1e7d8d1f9912fdf5992": 5862166356451798197, - "venv/lib/python3.13/site-packages/_pytest/main.py": 931018496411984909, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/histograms.pyi": 9255620158831643201, - "venv/lib/python3.13/site-packages/numpy/exceptions.pyi": 13942486291715303235, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic/_internal/_fields.py": 2692892815545218335, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/poly1305.py": 10854598965202354516, - "venv/lib/python3.13/site-packages/pygments/styles/bw.py": 869630132791421268, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/associationproxy.py": 7421910137064160936, - "docker/frontend.Dockerfile": 9514032629617942525, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/qt.py": 12828696264909048448, - "venv/lib/python3.13/site-packages/pydantic/v1/typing.py": 13467331592583800299, - "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/__init__.py": 17630019785411546070, - "venv/lib/python3.13/site-packages/attrs/setters.py": 5775359015245600592, + "venv/lib/python3.13/site-packages/pandas/core/window/online.py": 13551140636252302201, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_can_hold_element.py": 5406431247116557833, + "venv/lib/python3.13/site-packages/uvicorn/middleware/wsgi.py": 9179913252056394958, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sample.py": 16877779557071324115, + "venv/lib/python3.13/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.2.0": 2635192149914499986, + "venv/lib/python3.13/site-packages/pygments/styles/borland.py": 17570558758932580659, + "frontend/src/routes/settings/git/+page.svelte": 9547035239167234477, + "venv/lib/python3.13/site-packages/anyio/from_thread.py": 7973678341601453474, "venv/lib/python3.13/site-packages/starlette/routing.py": 16063812008141874150, - "scripts/build_offline_docker_bundle.sh": 9577721838839060974, - "venv/lib/python3.13/site-packages/pandas/tests/resample/conftest.py": 1643522609234951699, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_numba.py": 6409810497251251179, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_aggregate.py": 15038915958422670700, - "venv/lib/python3.13/site-packages/pygments/lexers/numbair.py": 17382646010399794697, - "venv/lib/python3.13/site-packages/httpcore/_backends/trio.py": 8394426709857317737, - "backend/src/services/mapping_service.py": 9713400496587758211, - "venv/lib/python3.13/site-packages/numpy/strings/__init__.py": 6523674574341354095, - "venv/lib/python3.13/site-packages/pip/_vendor/__init__.py": 11734104142988812647, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_cli.py": 3173259257428855556, - "venv/lib/python3.13/site-packages/numpy/testing/__init__.pyi": 8126257788928282891, - "venv/lib/python3.13/site-packages/numpy/_core/_dtype_ctypes.py": 5564496700647900501, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein.pyi": 2700568594438441246, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_scalar_compat.py": 1306236983392218709, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/descriptor_props.py": 7044852927393650707, - "frontend/src/lib/api/reports.js": 2328857814720054000, - "venv/lib/python3.13/site-packages/numpy/lib/_index_tricks_impl.pyi": 5892973170789971535, - "venv/lib/python3.13/site-packages/pandas/io/excel/_util.py": 6664989864423807444, - "venv/lib/python3.13/site-packages/pyasn1/type/error.py": 1479878696626082697, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_api.py": 7131036004750554905, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/color_triplet.py": 17264298271771184, - "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/jws_eddsa.py": 833927568269372333, - "venv/lib/python3.13/site-packages/numpy/testing/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/util.py": 955993052529739164, - "backend/src/services/clean_release/approval_service.py": 15944489428318420008, - "venv/lib/python3.13/site-packages/pandas/tests/libs/test_hashtable.py": 7762405492052106717, - "backend/src/plugins/translate/orchestrator_run_completion.py": 5945172469962331273, - "venv/lib/python3.13/site-packages/git/objects/base.py": 11498407361286170399, - "venv/lib/python3.13/site-packages/cffi/setuptools_ext.py": 30796527302561458, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/packages.py": 11689856177725665974, - "venv/lib/python3.13/site-packages/numpy/f2py/src/fortranobject.c": 2519219289444051739, - "venv/lib/python3.13/site-packages/fastapi/dependencies/utils.py": 7687214523082385505, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/keyring/backends/macOS/api.py": 4502902558534812719, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/errors.py": 14634768861119075506, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_chained_assignment_deprecation.py": 7694137945143129474, - "venv/lib/python3.13/site-packages/pyasn1/type/univ.py": 7163437624197683039, - "venv/lib/python3.13/site-packages/pandas/core/arrays/categorical.py": 15993211255162930859, - "venv/lib/python3.13/site-packages/git/index/base.py": 641556304637379636, - "venv/lib/python3.13/site-packages/pip/_internal/operations/freeze.py": 3469845570614985559, - "venv/lib/python3.13/site-packages/PIL/ImageDraw2.py": 13610162107593278891, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_indexing.py": 16264430536704066847, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_round.py": 14996007456708990295, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_dtype.py": 5336980126536664360, - "backend/tests/test_translate_history.py": 14504549443376034614, - "venv/lib/python3.13/site-packages/pygments/lexers/templates.py": 16267123844830647955, - "backend/src/api/routes/__tests__/test_git_api.py": 43259826036955162, - "backend/src/plugins/llm_analysis/__tests__/test_service.py": 9850768293526486431, - "backend/src/core/task_manager/graph.py": 1566662881946484762, - "venv/lib/python3.13/site-packages/numpy/_array_api_info.py": 9709101823494959741, - "venv/lib/python3.13/site-packages/numpy/_core/_internal.pyi": 6840742333427164920, - "venv/lib/python3.13/site-packages/passlib/apps.py": 4633269405597895766, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_object_arr.py": 4725156416161661681, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_indexing.py": 5063545640498065297, - "backend/git_repos/remote/test-repo.git/objects/aa/ea042a37c6f7bd010d91db93951328da7f01cc": 11936716919619613939, - "venv/lib/python3.13/site-packages/keyring/backends/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/operations/prepare.py": 13514839972066861359, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi": 10784666243744187693, - "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/array.py": 1919242530821725197, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/queue.py": 7820997545569991670, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/heuristics.py": 1422768761337195135, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_arrow_interface.py": 5231449831607036031, - "venv/lib/python3.13/site-packages/git/objects/util.py": 691018806932355307, - "venv/lib/python3.13/site-packages/urllib3/connectionpool.py": 7493427857878469165, - "venv/lib/python3.13/site-packages/pandas/tests/test_common.py": 8987965560487646705, - "frontend/src/routes/settings/__tests__/settings_page.integration.test.js": 8641041148256525929, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/useless_keywords.py": 11487954623214475915, - "frontend/src/components/git/useGitManager.js": 5317184945628692154, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_timedeltas.py": 4118671843063545221, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/__init__.py": 15130871412783076140, - "backend/src/services/reports/__tests__/test_report_service.py": 6045116534626984913, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/integration.py": 12670848015915724967, - "venv/lib/python3.13/site-packages/pydantic/_internal/_dataclasses.py": 15256193972947054890, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/utils.py": 3710235316419562274, - "venv/lib/python3.13/site-packages/pandas/util/__init__.py": 4070574585004336241, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_index.py": 12015738970771703312, - "venv/lib/python3.13/site-packages/PIL/PsdImagePlugin.py": 4347581352716313298, - "venv/lib/python3.13/site-packages/jeepney/__init__.py": 1063800617763464773, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/base.py": 16052592982063844259, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/random.py": 12722750410117529986, - "venv/lib/python3.13/site-packages/jsonschema_specifications/__init__.py": 5732822354953774657, - "venv/lib/python3.13/site-packages/pip/_internal/cache.py": 210214424535803946, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/literal.py": 5641382379370828704, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/__init__.py": 11709551233929312136, - "venv/lib/python3.13/site-packages/numpy/core/_dtype.py": 2806449741844148191, - "venv/lib/python3.13/site-packages/numpy/core/_dtype_ctypes.py": 17055498803745289016, - "venv/lib/python3.13/site-packages/pandas/_libs/groupby.cpython-313-x86_64-linux-gnu.so": 14931394220112658268, - "venv/lib/python3.13/site-packages/pandas/core/internals/api.py": 14632030170441237968, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_qcut.py": 8972418112914954758, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/layout.py": 11554376181083053156, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/RECORD": 7363618870628306370, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/aead.py": 8740476942925346444, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_loc.py": 2127584756555503873, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_ticks.py": 11649965080303468085, - "venv/lib/python3.13/site-packages/PIL/PcfFontFile.py": 8867692961463798279, - "backend/src/plugins/translate/__tests__/test_inline_correction.py": 3644785257160613130, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_string.py": 13234624995755549329, - "venv/lib/python3.13/site-packages/PIL/_imagingcms.pyi": 12476347428820346383, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/RECORD": 7914594107698271488, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_constructors.py": 6440526981746306640, - "venv/lib/python3.13/site-packages/pip/_internal/commands/cache.py": 1892313355296776523, - "venv/lib/python3.13/site-packages/numpy/polynomial/polyutils.pyi": 8195943561787777127, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_common.py": 9097104320321411408, - "backend/src/models/report.py": 9185954411073383239, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_common.py": 10797243274520625867, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cos.csv": 12896264205153363031, - "backend/src/dependencies.py": 9481683691730170837, - "venv/lib/python3.13/site-packages/numpy/random/_philox.cpython-313-x86_64-linux-gnu.so": 9916143171057774705, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/RECORD": 17341460504914308184, - "venv/lib/python3.13/site-packages/pygments/lexers/_luau_builtins.py": 13690910306072616818, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_csv.py": 571991535656576735, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/palette.py": 17383863392192572184, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_partial_indexing.py": 4132091154215910029, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_expanding.py": 9047466276603454007, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/pickleable.py": 7712040860601343075, - "frontend/build/_app/immutable/chunks/RH3HxiAM.js": 15426109189074801931, - "venv/lib/python3.13/site-packages/h11/_events.py": 13800479928851716538, - "backend/src/services/__tests__/test_llm_provider.py": 4705572506930455768, - "backend/src/models/mapping.py": 14856915199884993204, - "venv/lib/python3.13/site-packages/sqlalchemy/util/_py_collections.py": 16825222625411635946, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_datetime.py": 4179112383995346046, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein_py.py": 11350239659973489646, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/licenses/AUTHORS": 3558407083075395848, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath_complex.py": 11732242536199439023, - "frontend/src/lib/i18n/index.ts": 2428391315568750665, - "venv/lib/python3.13/site-packages/pygments/lexers/scdoc.py": 8481749542463754279, - "frontend/src/components/backups/BackupList.svelte": 14417854869668960310, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_astype.py": 4975959187621745360, - "venv/lib/python3.13/site-packages/numpy/_core/defchararray.py": 15550230459945996915, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/interface.py": 3134071530627935964, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/warnings_and_errors.pyi": 3151453262733619734, + "venv/lib/python3.13/site-packages/PIL/ImageTk.py": 17063969714816564357, + "venv/lib/python3.13/site-packages/gitdb/test/test_example.py": 3039934065817753241, + "venv/lib/python3.13/site-packages/pydantic/_internal/_git.py": 8760779092674434712, + "venv/lib/python3.13/site-packages/numpy/_utils/_pep440.pyi": 6796322258258182775, + "backend/src/api/routes/translate/_job_routes.py": 4714287089454305764, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_numeric.py": 9383693732009547935, + "venv/lib/python3.13/site-packages/pandas/core/arrays/string_.py": 14865733321317939478, + "venv/lib/python3.13/site-packages/pygments/lexers/phix.py": 16775285097768256238, + "backend/test_pat_api.py": 4206656943734821967, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py": 1437580234680265326, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_repeat.py": 9155935990114743583, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_combine.py": 4446011286411407708, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/gevent.py": 4811840397266785551, + "venv/lib/python3.13/site-packages/yaml/reader.py": 9873075843010693205, + "venv/lib/python3.13/site-packages/dotenv/main.py": 7408889670575271484, + "backend/src/api/routes/connections.py": 6022659034509664689, + "venv/lib/python3.13/site-packages/rapidfuzz/__pyinstaller/__init__.py": 1229691061011958769, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_matrix_linalg.py": 2858987911347541177, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh17797.f90": 17319074662077763768, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_expired_attrs_2_0.py": 8786558894094307341, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_util.py": 6573034224727513309, + "venv/lib/python3.13/site-packages/cryptography/hazmat/__init__.py": 6534110674636458866, + "venv/lib/python3.13/site-packages/numpy/polynomial/polynomial.pyi": 9935587108964614958, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_query_eval.py": 17613800806748649144, + "venv/lib/python3.13/site-packages/pandas/io/sas/sasreader.py": 12766780210114366112, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_datetime.py": 7862725028865965163, + "venv/lib/python3.13/site-packages/pygments/lexers/q.py": 15426466074881683794, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_aix.h": 13316272821279308986, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_seed_sequence.py": 7687465232954593311, + "venv/lib/python3.13/site-packages/pandas/core/methods/describe.py": 17006836623161521092, + "frontend/src/components/EnvSelector.svelte": 3937920133889630193, "venv/lib/python3.13/site-packages/sqlalchemy/orm/scoping.py": 17216492046645992674, - "venv/lib/python3.13/site-packages/PIL/GimpGradientFile.py": 9777026720028891154, - "venv/lib/python3.13/site-packages/click/parser.py": 13988544851350599869, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/numeric.pyi": 17005748821769179511, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/pretty.py": 2448541115957861214, - "venv/lib/python3.13/site-packages/fastapi/datastructures.py": 727178955746650271, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein_py.py": 1933257612725836484, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel.py": 17112989332785349705, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/METADATA": 15888766579203341778, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_function_base.py": 15241999259666702619, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/METADATA": 9586902338916246692, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90": 6219951399575860362, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/models.py": 17356033861792227817, - "venv/lib/python3.13/site-packages/pydantic_settings/utils.py": 14396350455520958703, - "backend/src/scripts/seed_permissions.py": 2712668643177555956, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi": 16042272072158438261, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_set.py": 534498057184394558, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nested_sequence.pyi": 11245460325970663922, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/LICENSE": 16510279186416777136, - "venv/lib/python3.13/site-packages/typing_inspection/typing_objects.py": 16856718240972376883, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/__init__.pyi": 17469792319379909312, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/WHEEL": 16223367184831500348, - "venv/lib/python3.13/site-packages/numpy/_utils/__init__.pyi": 13530522898409268883, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/parsing.cpython-313-x86_64-linux-gnu.so": 13104135217735363438, - "venv/lib/python3.13/site-packages/pandas/core/_numba/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/plotting/_core.py": 6766059152026241747, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_dict.py": 808180749933361743, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_get.py": 6509102681661636928, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/errors.py": 12935154705443176852, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_groupby.py": 2738671407653333726, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/__init__.py": 16123561007855424016, - "venv/lib/python3.13/site-packages/click/core.py": 16793133181718891193, - "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reindex.py": 8772423071604000084, - "venv/lib/python3.13/site-packages/pygments/formatters/html.py": 1918541918263449443, - "backend/src/core/scheduler.py.bak": 15045927989195339728, - "backend/src/core/utils/superset_context_extractor/_pii.py": 14826864290194304173, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/REQUESTED": 15130871412783076140, - "backend/src/plugins/debug.py": 2035734953696955393, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arctan.csv": 4581185622290535488, - "backend/src/__init__.py": 11250920420388310655, - "venv/lib/python3.13/site-packages/websockets/version.py": 5853118844880112885, - "venv/lib/python3.13/site-packages/pandas/_libs/ops_dispatch.cpython-313-x86_64-linux-gnu.so": 5284769758475394095, - "venv/lib/python3.13/site-packages/PIL/ImageEnhance.py": 3218405223202808764, - "venv/lib/python3.13/site-packages/urllib3/util/proxy.py": 17667887856427739069, - "backend/src/core/middleware/__init__.py": 13917394130915533209, - "venv/lib/python3.13/site-packages/iniconfig/exceptions.py": 16501270224069836264, - "venv/lib/python3.13/site-packages/PIL/_imagingft.pyi": 1385456134120145584, - "venv/bin/httpx": 6651007446865716794, - "frontend/src/routes/settings/__tests__/settings_page.ux.test.js": 8756428349518151160, - "venv/lib/python3.13/site-packages/pydantic/v1/dataclasses.py": 7833468513057242440, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_deprecations.py": 16367195310156359251, - "frontend/src/routes/admin/users/+page.svelte": 4464001185352807842, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_parquet.py": 11050150015772440923, - "venv/lib/python3.13/site-packages/numpy/f2py/capi_maps.py": 2490579175967301457, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_chebyshev.py": 8054411443686791426, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_sas.py": 9446226619493404132, - "venv/lib/python3.13/site-packages/greenlet/TThreadStateCreator.hpp": 9887867766190459665, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/conftest.py": 3691712173202219606, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/base.cpython-313-x86_64-linux-gnu.so": 8335798324308957127, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_arithmetic.py": 17427754419626622853, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_asfreq.py": 6162659555626011770, - "venv/lib/python3.13/site-packages/_pytest/stash.py": 14430252294763173610, - "frontend/src/components/tools/DebugTool.svelte": 17267560034225794881, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/socks.py": 17581293673028078134, - "venv/lib/python3.13/site-packages/referencing/_attrs.py": 14434891919747863272, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_searchsorted.py": 11208047646304753715, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_uninstall.py": 3515239440812977025, - "venv/lib/python3.13/site-packages/starlette/status.py": 16192064443996706569, - "venv/lib/python3.13/site-packages/pandas/io/orc.py": 12754290195886557668, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_version.pyi": 3636944488233043883, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh17859.f": 13562390882286135024, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_dlpack.py": 7908102652282922952, - "venv/lib/python3.13/site-packages/pandas/core/tools/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/pool/impl.py": 4687705587963980337, - "venv/lib/python3.13/site-packages/PIL/WebPImagePlugin.py": 5378349556563611996, - "venv/lib/python3.13/site-packages/yaml/cyaml.py": 9157893742065554693, - "venv/lib/python3.13/site-packages/greenlet/PyModule.cpp": 3464405102256525511, - "venv/lib/python3.13/site-packages/httpcore/_async/http_proxy.py": 13364803556177997526, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_as_unit.py": 8492383355919959393, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_mask.py": 9654897363729130542, - "venv/lib/python3.13/site-packages/_pytest/legacypath.py": 7512065138259788426, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/shape_base.pyi": 5046405609030418900, - "venv/lib/python3.13/site-packages/rapidfuzz/process_cpp_impl.cpython-313-x86_64-linux-gnu.so": 11767771662042404251, - "venv/lib/python3.13/site-packages/sqlalchemy/connectors/__init__.py": 17194870661869873083, - "venv/lib/python3.13/site-packages/pandas/_libs/sas.cpython-313-x86_64-linux-gnu.so": 16309838137741124637, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/METADATA": 3179724236887811680, - "venv/lib/python3.13/site-packages/numpy/_utils/_inspect.pyi": 17825266810219495672, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/lib/_user_array_impl.py": 13115032674230220791, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/licenses/_spdx.py": 17182188548503720124, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/parameters.py": 1647490964392525933, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_frame.py": 2169381747938271444, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/visitors.py": 5190923415390076080, - "venv/lib/python3.13/site-packages/pygments/lexers/srcinfo.py": 16466766917840327610, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_unix.h": 9608771997528633681, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/codec.py": 14814999235499530522, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi": 2777456956260371820, - "frontend/src/routes/settings/+page.ts": 3719008513710037840, - "venv/lib/python3.13/site-packages/pygments/lexers/mosel.py": 1877592344012288438, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/inference.py": 2786441797589123900, - "backend/src/api/routes/__tests__/test_reports_detail_api.py": 7284151749869192310, - "venv/lib/python3.13/site-packages/pip/_internal/cli/progress_bars.py": 7584699216537478969, - "backend/src/services/clean_release/stages/__init__.py": 974103157080822760, - "venv/lib/python3.13/site-packages/pyasn1/codec/native/decoder.py": 15336592439379775543, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_ufunclike.py": 13752381070039804384, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_assumed_shape.py": 18361009188431483164, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/cx_oracle.py": 10093932131797570986, - "venv/lib/python3.13/site-packages/charset_normalizer/__init__.py": 12412600648990392633, - "venv/lib/python3.13/site-packages/ecdsa/der.py": 9374566189581725372, - "backend/tests/scripts/test_clean_release_cli.py": 13978106497618764226, - "frontend/build/_app/immutable/chunks/DsnmJJEf.js": 17416107759626312632, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_linux.h": 15772978805500070727, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_to_xml.py": 8477770807916990981, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_halfyear.py": 587199217232946404, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/test_round.py": 7912161077874611432, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/fromnumeric.pyi": 6708743411405679061, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__ufunc_api.c": 11535375410441493281, - "backend/src/models/dataset_review_pkg/__init__.py": 17789694606496652579, - "venv/lib/python3.13/site-packages/PIL/ImageDraw.py": 12919304671639673744, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_http_headers.py": 13187746870209705951, - "venv/lib/python3.13/site-packages/rapidfuzz/process_py.py": 17563673072076876125, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/var_.py": 12699521091170347311, - "venv/lib/python3.13/site-packages/numpy/lib/_histograms_impl.pyi": 6534825471013879522, - "venv/lib/python3.13/site-packages/pandas/io/pytables.py": 17482934215513855928, - "backend/src/api/routes/clean_release_v2.py": 12814311709297749713, - "venv/lib/python3.13/site-packages/git/index/fun.py": 18338379518768926372, - "venv/lib/python3.13/site-packages/idna/compat.py": 9758194415584776667, - "frontend/build/_app/immutable/assets/0.DGC1mqmM.css": 14666194691754113816, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/gh_22819.pyf": 14717748358749934995, - "venv/lib/python3.13/site-packages/pygments/lexers/business.py": 10410439210806697214, - "venv/lib/python3.13/site-packages/cryptography/hazmat/asn1/asn1.py": 8801155055979135092, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_coercion.py": 7261787308019145312, - "venv/lib/python3.13/site-packages/pydantic/types.py": 785880062468926292, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py": 9623344347519683527, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_set_index.py": 10971093361190283675, - "venv/lib/python3.13/site-packages/pip/_internal/cli/command_context.py": 9426036980437931533, - "venv/lib/python3.13/site-packages/numpy/ctypeslib/_ctypeslib.py": 12636954896699095212, - "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft.pyi": 1521384724035973688, - "venv/lib/python3.13/site-packages/_pytest/_version.py": 4890545974654141536, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_regression.py": 4611768764484593979, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/__init__.py": 4265012785873472600, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_numpy_compat.py": 9112925138440787555, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/compat.py": 5871636909854554063, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_indexing.py": 7181087459615188551, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_show_versions.py": 10577134135855180356, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_odswriter.py": 5134385709728943904, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_combine_concat.py": 3201068805128232483, - "venv/lib/python3.13/site-packages/_pytest/raises.py": 8188402179490363767, - "venv/lib/python3.13/site-packages/pygments/lexers/iolang.py": 10997512999728724130, - "venv/lib/python3.13/site-packages/attr/validators.pyi": 15579625896285277321, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_amd64_unix.h": 16679226724722970205, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_numba.py": 1668304729617150075, - "venv/lib/python3.13/site-packages/jsonschema/__main__.py": 18136546137047911521, - "venv/lib/python3.13/site-packages/pillow.libs/libpng16-4a38ea05.so.16.53.0": 13136089038268964667, - "backend/src/api/routes/dataset_review_pkg/_routes.py": 11040245149296528009, - "venv/lib/python3.13/site-packages/pip/_internal/commands/uninstall.py": 11003472265011262515, - "venv/lib/python3.13/site-packages/pandas/core/indexes/api.py": 13750417165301467381, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_spinners.py": 15873416546130487469, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_groupby.py": 12709199432838648700, - "venv/lib/python3.13/site-packages/jaraco/functools/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic/v1/json.py": 16596969681914729251, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling.py": 18221459425751198218, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/issue232.py": 6498198296113395367, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_extract.py": 14547819021277949280, - "venv/lib/python3.13/site-packages/pandas/tests/internals/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/PIL/JpegImagePlugin.py": 10621639599916796689, - "backend/src/models/auth.py": 8146256910993395749, - "venv/lib/python3.13/site-packages/pygments/lexers/elpi.py": 5736689911777977822, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/pyproject.py": 12684373765476932108, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/core": 10616484054735611337, - "frontend/static/favicon.svg": 6451919037497541980, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py": 6067836157632573182, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_astype.py": 4023134352880775277, - "venv/lib/python3.13/site-packages/pip/_internal/commands/help.py": 4175797322922912326, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_interval.py": 2911379732293827726, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_tz_convert.py": 77283525137564255, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/pg_catalog.py": 15726448028057859831, - "backend/src/services/dataset_review/repositories/__tests__/test_session_repository.py": 18317443814450756666, - "backend/tests/services/clean_release/test_candidate_manifest_services.py": 16861589402854148894, - "venv/lib/python3.13/site-packages/referencing/_attrs.pyi": 10030665705880994025, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix.py": 4672871351134074735, - "venv/lib/python3.13/site-packages/greenlet/greenlet_refs.hpp": 8525862687669040510, - "venv/lib/python3.13/site-packages/fastapi/templating.py": 10760135144345238340, - "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension.cpython-313-x86_64-linux-gnu.so": 1211491156495529145, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/applicator": 6616723520993329538, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/shape.pyi": 17197248408326188931, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_ewm.py": 13789842684407148830, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/RECORD": 1051307407005554409, - "venv/lib/python3.13/site-packages/psycopg2/sql.py": 18041240927130590808, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/period.pyi": 13110894861187422750, - "venv/lib/python3.13/site-packages/pandas/util/_test_decorators.py": 17930801441803090445, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_function.py": 13492077564015386528, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/screen.py": 6933591906297023845, - "venv/lib/python3.13/site-packages/pandas/api/typing/__init__.py": 6438268275857060114, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_level_values.py": 12490886203425393290, - "venv/lib/python3.13/site-packages/pygments/lexers/_csound_builtins.py": 14530739818491398298, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_cpp.cpython-313-x86_64-linux-gnu.so": 14187094676876471848, - "venv/lib/python3.13/site-packages/pandas/core/tools/times.py": 6560679305255812809, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_cat.py": 15988884721768567895, - "venv/lib/python3.13/site-packages/sqlalchemy/future/engine.py": 4639404437703898767, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/WHEEL": 7145482834744213753, - "venv/lib/python3.13/site-packages/pygments/styles/staroffice.py": 11694998942433220413, - "frontend/src/routes/+error.svelte": 9437886843842311915, - "frontend/build/_app/immutable/nodes/23.CFncMs3X.js": 14893442706232563898, - "backend/tests/test_dashboards_api.py": 2278794209397518464, - "venv/lib/python3.13/site-packages/numpy/testing/_private/extbuild.py": 4984721349618127021, - "venv/lib/python3.13/site-packages/httpx/_auth.py": 1283189552342958900, - "venv/lib/python3.13/site-packages/pandas/_version_meson.py": 4875297137037630519, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_generic.py": 1098361087956787007, - "frontend/build/_app/immutable/nodes/1.B8QydpXl.js": 6880647685586948034, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/WHEEL": 7454950858448014158, - "venv/lib/python3.13/site-packages/gitdb/db/mem.py": 15823812455996199993, - "venv/lib/python3.13/site-packages/authlib/oauth2/__init__.py": 13682931764896414722, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/licenses/LICENSE": 14316979437290727897, - "venv/lib/python3.13/site-packages/pip/_internal/req/constructors.py": 17485271035479378662, - "venv/lib/python3.13/site-packages/anyio/abc/_testing.py": 16484863782452886547, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/dtypes.py": 9839461501970023861, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reorder_levels.py": 10996225584998355824, - "venv/lib/python3.13/site-packages/greenlet/tests/test_extension_interface.py": 11693583111513457974, - "venv/lib/python3.13/site-packages/numpy/_configtool.pyi": 9670892208858157218, - "venv/lib/python3.13/site-packages/pandas/core/interchange/column.py": 9498044216416177656, - "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/array.py": 3517673819082574078, - "venv/lib/python3.13/site-packages/starlette/middleware/authentication.py": 15211131264936212938, - "venv/lib/python3.13/site-packages/pandas/core/internals/construction.py": 893951849732478990, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_index_tricks.py": 4676293127859087991, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/__init__.py": 8558541715982163200, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_duplicated.py": 14676058112867601208, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_c_parser_only.py": 3038797485572319804, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_iterator.py": 13869355993837330406, - "venv/lib/python3.13/site-packages/pip/_internal/models/__init__.py": 13482731985065116750, - "venv/lib/python3.13/site-packages/pydantic_settings/version.py": 17263591404988984480, - "venv/lib/python3.13/site-packages/numpy/f2py/func2subr.py": 338595621218646492, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string.py": 3834067244989779682, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/serializer.py": 8708767945343850816, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_between.py": 337429135216881486, - "venv/lib/python3.13/site-packages/idna-3.11.dist-info/RECORD": 11541505360973709787, - "venv/lib/python3.13/site-packages/pygments/lexers/zig.py": 470431199354307668, - "frontend/src/routes/settings/automation/+page.svelte": 17397435134589275932, - "venv/lib/python3.13/site-packages/pandas/core/resample.py": 13814298871925341617, - "venv/lib/python3.13/site-packages/pandas/_testing/contexts.py": 11714205921752896137, - "venv/lib/python3.13/site-packages/jsonschema/validators.py": 3832874295500213309, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/RECORD": 9964194961227523130, - "venv/lib/python3.13/site-packages/pip/_internal/network/session.py": 293771075394156394, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/index.py": 2763962019423787504, - "venv/lib/python3.13/site-packages/attr/setters.pyi": 6670509359139243236, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_categorical.py": 18254320571347851153, - "venv/lib/python3.13/site-packages/pygments/lexers/sgf.py": 6802546617450210439, - "venv/lib/python3.13/site-packages/pygments/lexers/minecraft.py": 10133579583270214110, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/RECORD": 2024211292009381421, - "venv/lib/python3.13/site-packages/pandas/core/groupby/base.py": 16888506204910366302, - "venv/lib/python3.13/site-packages/httpcore/_backends/mock.py": 6849131425727092784, - "venv/lib/python3.13/site-packages/pluggy/_version.py": 7195758686717994475, - "frontend/build/favicon.png": 16740551781088792605, - "venv/lib/python3.13/site-packages/pandas/core/computation/ops.py": 18250656489649699560, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_formats.py": 2601044064677727807, - "venv/lib/python3.13/site-packages/authlib/oidc/core/userinfo.py": 17201158389976619872, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/printoptions.pyi": 16758392990920041462, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_datetime_index.py": 15448494560143263150, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_mem_overlap.py": 4202716587079637350, - "venv/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd": 1476688171642957054, - "venv/lib/python3.13/site-packages/numpy/_core/records.py": 11414828908088050950, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_copy.py": 12902342280706372953, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/assertion_session.py": 18109848200936213195, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_interaction.py": 12216477658994324787, - "venv/lib/python3.13/site-packages/_pytest/nodes.py": 515939386237558331, - "venv/lib/python3.13/site-packages/numpy/core/records.py": 12604652690721760437, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_matmul.py": 9323220618335072725, - "venv/lib/python3.13/site-packages/pygments/lexers/mojo.py": 8616283481592061285, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/attributes.py": 5068814626384132900, - "venv/lib/python3.13/site-packages/pydantic/mypy.py": 10034028441785588819, - "venv/lib/python3.13/site-packages/pandas/util/_tester.py": 1033951890304257539, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_insert.py": 15536994417338770457, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/fields.pyi": 15420142722808118826, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_almost_equal.py": 9333355453468475330, - "backend/src/scripts/seed_superset_load_test.py": 12317164691465196579, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/mean_.py": 3641008929910474457, - "venv/lib/python3.13/site-packages/greenlet/greenlet_thread_support.hpp": 7773996382104849037, - "venv/lib/python3.13/site-packages/numpy/core/_dtype_ctypes.pyi": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23598Warn.f90": 7589258200398878529, - "venv/lib/python3.13/site-packages/pandas/tests/test_errors.py": 10116716310156374885, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/collections.cpython-313-x86_64-linux-gnu.so": 6157288238855118017, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi": 13850254283540522444, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/claims.py": 14794441479740527265, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pandas/tests/api/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/pymysql.py": 12923876736367229454, - "venv/lib/python3.13/site-packages/PIL/features.py": 3481835375516797487, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_normalize.py": 7378656958631172603, - "venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py": 16951268065271931235, - "frontend/src/lib/components/reports/__tests__/report_detail.ux.test.js": 11878832350632571462, - "venv/lib/python3.13/site-packages/ecdsa/test_malformed_sigs.py": 2606295770491528880, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_regression.py": 9375525053479844400, - "venv/lib/python3.13/site-packages/requests/compat.py": 5836590172733661320, - "venv/lib/python3.13/site-packages/keyring/backends/libsecret.py": 11621088556661567306, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_pickle.py": 4216445955812104014, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_chaining_and_caching.py": 15814259766479305290, - "venv/lib/python3.13/site-packages/pytest_asyncio/py.typed": 15130871412783076140, - "backend/src/services/dataset_review/orchestrator_pkg/_commands.py": 15474996500928063708, - "venv/lib/python3.13/site-packages/numpy/lib/_scimath_impl.pyi": 8879196542984811747, - "venv/lib/python3.13/site-packages/pandas/core/arrays/numpy_.py": 16641729409992576358, - "venv/lib/python3.13/site-packages/pandas/compat/_constants.py": 3909166275649444824, - "venv/lib/python3.13/site-packages/pandas/tests/test_take.py": 17628004130770326677, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_pickle.py": 6232650893735715362, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multiarray.py": 5928288171180750841, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/char.pyi": 1639810799219814643, - "venv/lib/python3.13/site-packages/psycopg2/_ipaddress.py": 12332672835751787869, - "venv/lib/python3.13/site-packages/numpy/char/__init__.py": 4428218097234308768, - "venv/lib/python3.13/site-packages/websockets/__main__.py": 11948055520555854616, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_timedelta.py": 17052461094717926538, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex_longtable.tpl": 12723621983797415444, - "venv/lib/python3.13/site-packages/PIL/PaletteFile.py": 4104323659569809769, - "venv/lib/python3.13/site-packages/yaml/constructor.py": 8731384179016992045, - "venv/lib/python3.13/site-packages/numpy/lib/_arraypad_impl.py": 6348811074249398741, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/RECORD": 16740224557818847141, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_autocorr.py": 1092316868398391792, - "venv/lib/python3.13/site-packages/pandas/core/sorting.py": 689057022713741051, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_infer_objects.py": 6769980076977692890, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/operators.py": 5584982192355398255, - "venv/lib/python3.13/site-packages/PIL/WmfImagePlugin.py": 15685062825106444247, - "venv/lib/python3.13/site-packages/pygments/lexers/kuin.py": 2818054539831699366, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_np_datetime.py": 18363183516409621205, - "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py": 5995058808539530576, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi": 10548370574281981402, - "venv/lib/python3.13/site-packages/bcrypt/_bcrypt.abi3.so": 8691731321358529264, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_astype.py": 4178231007649608531, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_json_table_schema.py": 14454690938977069049, - "venv/lib/python3.13/site-packages/pyasn1/codec/ber/eoo.py": 5126566925877730303, - "venv/lib/python3.13/site-packages/numpy/f2py/setup.cfg": 17974180080760231128, - "venv/lib/python3.13/site-packages/pandas/tests/internals/test_internals.py": 2049484047553296860, - "venv/lib/python3.13/site-packages/charset_normalizer/api.py": 9172704759115759638, - "venv/lib/python3.13/site-packages/pygments/lexers/webassembly.py": 17811970490091406867, - "venv/lib/python3.13/site-packages/numpy/lib/_utils_impl.py": 13012775703413938576, - "frontend/build/_app/immutable/nodes/18.BWeHlFau.js": 1125159330861650302, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_tzconversion.py": 7205566353454584259, - "venv/lib/python3.13/site-packages/pandas/tests/extension/json/test_json.py": 12422315190455428620, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/__init__.py": 15487893533770969571, - "backend/src/core/migration_engine.py": 1303635539349402052, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/candidates.py": 5951912505933673835, - "venv/lib/python3.13/site-packages/_pytest/python_api.py": 12953851690889336092, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_sparse_accessor.py": 6774374030220202353, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/types.py": 12298292195929126306, - "venv/lib/python3.13/site-packages/git/refs/symbolic.py": 14996822770181935589, - "venv/lib/python3.13/site-packages/numpy/f2py/_src_pyf.py": 546976622482819095, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_npfuncs.py": 13987318550267921389, - "frontend/src/routes/datasets/+page.svelte": 1253723176637759895, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_array_ops.py": 6709502157317299163, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/__init__.py": 10834852742917144496, - "venv/lib/python3.13/site-packages/numpy/f2py/use_rules.pyi": 18395688193449688360, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_missing.py": 6224750552277937853, - "venv/lib/python3.13/site-packages/pydantic/v1/errors.py": 11245135449608452720, - "venv/lib/python3.13/site-packages/pycparser/ply/lex.py": 3393278208465358140, - "venv/lib/python3.13/site-packages/python_multipart/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/httpx/py.typed": 15130871412783076140, - "backend/src/models/__tests__/test_models.py": 15975002719327784362, - "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/__init__.py": 14268033439436797364, - "venv/lib/python3.13/site-packages/numpy/ma/core.py": 338350463523585845, - "venv/lib/python3.13/site-packages/tzlocal/windows_tz.py": 11696765495002954868, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_s3.py": 17425535047477778484, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_transpose.py": 1686867045869336370, - "backend/alembic.ini": 8897071018956157084, - "venv/lib/python3.13/site-packages/PIL/FliImagePlugin.py": 13364963053197422923, - "venv/lib/python3.13/site-packages/pydantic/validators.py": 8292819706488319845, - "venv/lib/python3.13/site-packages/pandas/io/stata.py": 14370692318835340323, - "venv/lib/python3.13/site-packages/pip/_vendor/typing_extensions.py": 10158933506062403688, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_stack.py": 5316826578695144945, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_both.f90": 13943066317159236257, - "venv/lib/python3.13/site-packages/passlib/tests/sample1c.cfg": 13088198405762342506, - "venv/lib/python3.13/site-packages/pandas/core/api.py": 3390809109543982410, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/indexable.py": 4131796922597075758, - "frontend/build/_app/immutable/chunks/DOxI2NAm.js": 11236647372068635428, - "venv/lib/python3.13/site-packages/numpy/_core/numerictypes.py": 6205675182996213576, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/hmac.py": 18132740541139891824, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayobject.h": 4345432890284821918, - "venv/lib/python3.13/site-packages/pygments/lexers/praat.py": 54226477748516386, - "backend/src/api/routes/__init__.py": 7861712296282676167, - "venv/lib/python3.13/site-packages/jsonschema/tests/_suite.py": 6307666366417438489, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reindex_like.py": 1407890639206728014, - "venv/lib/python3.13/site-packages/pygments/lexers/solidity.py": 5071425960622305629, - "venv/lib/python3.13/site-packages/pip/_internal/utils/direct_url_helpers.py": 6075890513530296650, - "venv/lib/python3.13/site-packages/click/_compat.py": 14451519072991457993, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/hiworld.f90": 6321872653169140461, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh26920/two_mods_with_no_public_entities.f90": 12296500845667555672, - "venv/lib/python3.13/site-packages/pandas/core/reshape/concat.py": 2218848863149192467, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/common.py": 10996276696597806957, - "run.sh": 4808871544409245302, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/subversion.py": 7423946096970870727, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py": 5132658725516243311, - "backend/src/api/routes/assistant/_admin_routes.py": 3380446401429936332, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/default_comparator.py": 47118577003622736, - "venv/lib/python3.13/site-packages/PIL/XVThumbImagePlugin.py": 7472134175570205454, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/annotation.py": 15855576199737688124, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/validator.py": 11486125578281617670, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust.abi3.so": 2537152913308578487, - "venv/lib/python3.13/site-packages/ecdsa/test_sha3.py": 12459459298663975730, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/linalg.pyi": 7217817172953767893, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_integer.f90": 8308927438994838783, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_util.py": 16024147572807865219, - "venv/lib/python3.13/site-packages/numpy/core/numeric.py": 17025007229779320230, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/METADATA": 12295263493152296681, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_delete.py": 3485374671877063217, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_inference.py": 16402427186697071465, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/cast.py": 342228968652072052, - "venv/lib/python3.13/site-packages/numpy/tests/test__all__.py": 10689265249302359388, - "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/functions.py": 14107377669163193871, - "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/__init__.py": 15991623390785635773, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_distutils.pyi": 3595910367556664837, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_types.py": 7175518113263603341, - "venv/lib/python3.13/site-packages/ecdsa/ssh.py": 17010933326090778158, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_categorical.py": 9923236395692943732, - "backend/src/services/clean_release/stages/base.py": 16622496357822528953, - "backend/src/services/clean_release/__init__.py": 18311663871116449547, - "backend/src/plugins/search.py": 888817404897740233, - "backend/tests/test_logger.py": 11506419828617508917, - "backend/src/services/clean_release/demo_data_service.py": 1822246829322620623, - "venv/lib/python3.13/site-packages/numpy/polynomial/hermite_e.py": 3654583356259850174, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arraysetops.py": 10588903945244480732, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_contains.py": 5273759677032634868, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/__init__.py": 15130871412783076140, - "backend/src/plugins/translate/_token_budget.py": 102333806375699922, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_constructors.py": 11786151805350138436, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py": 5071697837617938064, - "venv/lib/python3.13/site-packages/pygments/lexers/_lilypond_builtins.py": 1766946089314631488, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/inout.f90": 1521999519583206538, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/METADATA": 9041650844081036822, - "venv/lib/python3.13/site-packages/ecdsa/ellipticcurve.py": 15624510849346629163, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/__init__.py": 14571251344510763303, - "venv/lib/python3.13/site-packages/cryptography/x509/extensions.py": 10197248868682803019, - "venv/lib/python3.13/site-packages/pydantic/_migration.py": 17982816821930887921, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/__init__.py": 15735839022111230173, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/RECORD": 11604408378998955169, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/RECORD": 3205266407680661753, - "venv/lib/python3.13/site-packages/pydantic/error_wrappers.py": 11273827025986230629, - "venv/lib/python3.13/site-packages/websockets/sync/utils.py": 15135020989207191168, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/METADATA": 6502714564886871819, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_arithmetic.py": 4858019700859362660, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_inf.py": 8659210689723088321, - "venv/lib/python3.13/site-packages/cryptography/x509/certificate_transparency.py": 11337143186866439208, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ufuncobject.h": 5112456258078662871, - "venv/lib/python3.13/site-packages/pygments/formatters/terminal256.py": 11473927781167132440, - "venv/lib/python3.13/site-packages/pygments/lexers/matlab.py": 1880915927722177654, - "venv/lib/python3.13/site-packages/pygments/lexers/vip.py": 11287963054551122004, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/bitgen.h": 12421210767114721499, - "venv/lib/python3.13/site-packages/numpy/random/bit_generator.pxd": 14261507718442469988, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py": 16386268386376675175, - "venv/lib/python3.13/site-packages/passlib/handlers/windows.py": 8969739861295277439, - "venv/lib/python3.13/site-packages/numpy/_core/_rational_tests.cpython-313-x86_64-linux-gnu.so": 13475521165331256711, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_insert.py": 17383986803728810587, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/help.py": 3124654001287175629, - "venv/lib/python3.13/site-packages/pygments/lexers/ampl.py": 4594260378653369985, - "venv/lib/python3.13/site-packages/passlib/context.py": 10362592407593745107, - "venv/lib/python3.13/site-packages/pygments/lexers/wren.py": 6259586056260713984, - "venv/lib/python3.13/site-packages/pygments/lexers/fift.py": 7537570342576781911, - "frontend/src/lib/components/translate/__tests__/test_bulk_replace_modal.svelte.js": 6802604718120565742, - "frontend/src/routes/dashboards/[id]/components/DashboardTaskHistory.svelte": 8800115118935646769, - "backend/src/api/routes/assistant/_schemas.py": 6735060826070731731, - "venv/lib/python3.13/site-packages/pydantic_settings/exceptions.py": 18300876747412267999, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/tools.py": 6437315459200419827, - "backend/src/plugins/translate/__tests__/test_dictionary_prompt_builder.py": 12854863376472707556, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/unix.py": 13808187640638677050, - "frontend/src/lib/components/layout/__tests__/test_sidebar.svelte.js": 1424894894434906249, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/themes.py": 6451091097727599550, - "venv/lib/python3.13/site-packages/pandas/core/window/expanding.py": 14141093310397856286, - "backend/src/plugins/translate/prompt_builder.py": 9619706108488955349, - "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/integration.py": 3085827906490477329, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/test_transform.py": 5674175311567817854, - "frontend/src/components/tasks/LogEntryRow.svelte": 3694709927263161265, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc64_linux.h": 4071314837793906998, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_between_time.py": 14266333058913745751, - "venv/lib/python3.13/site-packages/pip/_internal/utils/virtualenv.py": 14416705841810221305, - "venv/lib/python3.13/site-packages/pygments/lexers/slash.py": 8320676560518108343, - "venv/lib/python3.13/site-packages/numpy/polynomial/_polytypes.pyi": 7528777458251688517, - "frontend/src/lib/components/translate/TranslationRunProgress.svelte": 18041933754930100165, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/session.py": 15060063324909302240, - "frontend/build/_app/immutable/chunks/DNK-l8sb.js": 12498166761664912995, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/RECORD": 8201759541483070364, - "venv/lib/python3.13/site-packages/pydantic/_internal/_repr.py": 1758478941817868344, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_finfo.py": 17174674209412768422, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_parse_dates.py": 7597935994945336408, - "venv/lib/python3.13/site-packages/sqlalchemy/util/_collections.py": 7772437080414835462, - "venv/lib/python3.13/site-packages/numpy/matrixlib/__init__.py": 18402126171936308228, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_serialization.py": 2011519400081029270, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_logical.py": 6242457515917145500, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_from_dummies.py": 5670811108950300761, - "venv/lib/python3.13/site-packages/rapidfuzz/__init__.pyi": 13131938031654453415, - "venv/lib/python3.13/site-packages/numpy/_core/lib/npy-pkg-config/npymath.ini": 1071371630695963467, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_latex.py": 15077617224435782028, - "venv/lib/python3.13/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4": 2483101806045986252, - "venv/lib/python3.13/site-packages/pandas/util/_exceptions.py": 14426860079366867683, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_install.py": 7181005402818830655, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_latex.py": 2628895559914914693, - "venv/lib/python3.13/site-packages/anyio/_core/_resources.py": 8463932838064724564, - "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/WHEEL": 5838667082726674838, - "venv/lib/python3.13/site-packages/httpcore/_synchronization.py": 10997080307461682786, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/claims.py": 12645788445743898136, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pygments/styles/trac.py": 13968346768164381833, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/WHEEL": 15858869568085970864, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_character/foo90.f90": 2435648607844815947, - "venv/lib/python3.13/site-packages/pygments/lexers/chapel.py": 7619603166448145621, - "venv/lib/python3.13/site-packages/pygments/lexers/floscript.py": 944042220740663491, - "venv/lib/python3.13/site-packages/pygments/lexers/comal.py": 769727871242464458, - "venv/lib/python3.13/site-packages/starlette/formparsers.py": 9019779181100355515, - "venv/lib/python3.13/site-packages/dateutil/tz/__init__.py": 9617254832690762236, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/INSTALLER": 17282701611721059870, - "backend/src/plugins/translate/__tests__/test_dictionary_correction.py": 7234669541203364452, - "venv/lib/python3.13/site-packages/pydantic/env_settings.py": 18250976255197243083, - "backend/src/api/routes/assistant/_llm_planner_intent.py": 16189718762013093878, - "venv/lib/python3.13/site-packages/pygments/lexers/sas.py": 6128008194712914874, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_offsets.py": 4499538899492148499, - "backend/src/api/routes/git/_helpers.py": 6888678759460652166, - "venv/lib/python3.13/site-packages/numpy/__init__.pyi": 15820654525292895396, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_where.py": 14167991754625133668, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_quarter.py": 11099677280196239755, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_network.py": 13159427333040109523, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/plugin.py": 16042078006552521613, - "venv/lib/python3.13/site-packages/pygments/lexers/smalltalk.py": 6113431347120223592, - "backend/src/plugins/translate/_run_source.py": 11569137727611732019, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/WHEEL": 6514509858522675228, - "backend/git_repos/remote/test-repo.git/hooks/sendemail-validate.sample": 8058833260784074657, - "frontend/src/routes/settings/MigrationSettings.svelte": 3323392929444734663, - "venv/lib/python3.13/site-packages/numpy/linalg/_umath_linalg.pyi": 7674087576653964854, - "venv/lib/python3.13/site-packages/passlib/tests/utils.py": 15403198680231294263, - "venv/lib/python3.13/site-packages/numpy/random/_mt19937.pyi": 15904463104068500379, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/json.py": 6429651405841289922, - "venv/lib/python3.13/site-packages/rpds/__init__.py": 5862197328247012275, - "venv/lib/python3.13/site-packages/pygments/lexers/_cl_builtins.py": 16540712925368297957, - "venv/lib/python3.13/site-packages/pydantic/v1/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/requests/_internal_utils.py": 4091305333167213279, - "venv/lib/python3.13/site-packages/passlib/handlers/bcrypt.py": 8125664010268654055, - "frontend/src/routes/settings/+page.svelte": 8601836419948434099, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_regression.py": 16266600037241221681, - "backend/tests/test_translate_executor_filter.py": 11717560360659156703, - "backend/git_repos/remote/test-repo.git/objects/00/fcf77cecdf261aef91eda792ab3384a3339922": 1527330822006618217, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/well_known.py": 7183795183137931709, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/__main__.py": 487896753130729554, - "venv/lib/python3.13/site-packages/_pytest/config/exceptions.py": 3199245296954654462, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_index.py": 4908727359687606870, - "frontend/src/routes/datasets/[id]/+page.svelte": 14911166036063098761, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_map.py": 10769974470610467636, - "venv/lib/python3.13/site-packages/numpy/_core/defchararray.pyi": 2277933368373498515, - "venv/lib/python3.13/site-packages/greenlet/TGreenletGlobals.cpp": 17400526028982558937, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/validation": 13992741783834278677, - "venv/lib/python3.13/site-packages/numpy/tests/test_public_api.py": 11741922758622705449, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/offsets.pyi": 13173581775000480811, - "venv/lib/python3.13/site-packages/pandas/_config/config.py": 1494288055210911451, - "venv/lib/python3.13/site-packages/authlib/oidc/core/claims.py": 2035724920423374302, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/value_attrspec/gh21665.f90": 11945588837236968550, - "backend/src/api/routes/assistant/_dataset_review_dispatch.py": 10108558091463171824, - "backend/src/models/git.py": 6898938895423263836, - "venv/lib/python3.13/site-packages/packaging/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/itsdangerous/__init__.py": 6969210114978365656, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/__init__.py": 2345997696115514124, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_non_compound.f90": 8048650253889213460, - "venv/lib/python3.13/site-packages/numpy/polynomial/_polybase.pyi": 15864712173815045309, - "venv/lib/python3.13/site-packages/pip/_internal/network/utils.py": 13421242949994555055, - "venv/lib/python3.13/site-packages/pip/_internal/wheel_builder.py": 3893922370396791826, - "frontend/e2e/e2e-nohealth.mjs": 5921562935931064381, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_strings.py": 7379299916213794543, - "venv/lib/python3.13/site-packages/pip/_internal/utils/temp_dir.py": 8657533190026387896, - "frontend/src/lib/api/translate/datasources.js": 17202165717960970061, - "venv/lib/python3.13/site-packages/numpy/testing/_private/__init__.pyi": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_isna.py": 18394053826166267096, - "backend/tests/scripts/test_clean_release_tui.py": 14700450036639944764, - "venv/lib/python3.13/site-packages/authlib/oauth1/client.py": 7314311571224771, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_logical.py": 6818185860296232476, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/greenlet/tests/test_greenlet_trash.py": 6191655521667576604, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi": 8666343427862784832, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_grouping.py": 5994909693214299971, - "venv/lib/python3.13/site-packages/pandas/core/window/numba_.py": 1444123360986509769, "backend/src/core/migration/dry_run_orchestrator.py": 8630137056901487805, - "venv/lib/python3.13/site-packages/sqlalchemy/event/api.py": 987321343916500337, - "venv/lib/python3.13/site-packages/pycparser/ply/yacc.py": 4218889705926129841, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/passlib/ext/django/__init__.py": 11713862539944289631, - "venv/lib/python3.13/site-packages/pandas/util/_print_versions.py": 15326663505771588740, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_unique.py": 3148372351781648868, - "backend/src/api/routes/assistant/_resolvers.py": 1139669723103531814, - "venv/lib/python3.13/site-packages/gitdb/stream.py": 3035738824550231197, - "frontend/build/_app/immutable/chunks/2-sJyMFl.js": 17823400295919968278, - "venv/lib/python3.13/site-packages/authlib/integrations/django_client/apps.py": 14151733532064278336, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/testing.pyi": 9317922890783549326, - "venv/lib/python3.13/site-packages/urllib3/contrib/__init__.py": 15130871412783076140, - "backend/src/plugins/migration.py": 16567640288127443175, - "venv/lib/python3.13/site-packages/starlette/middleware/base.py": 16850428285382256618, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_partial.py": 15129217814262096441, - "frontend/src/lib/components/dataset-review/SourceIntakePanel.svelte": 13922687579631047714, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_non_unique.py": 15286893322149413712, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/attr/exceptions.pyi": 12323493441583681402, - "venv/lib/python3.13/site-packages/pydantic/__init__.py": 11536052293866174672, - "venv/lib/python3.13/site-packages/passlib/handlers/__init__.py": 3424087230285514388, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_methods.py": 12694335778731418517, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/subcomponents.py": 10365594934527289233, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_update.py": 12293424926920594944, - "venv/lib/python3.13/site-packages/pandas/core/arrays/integer.py": 7775055011080964709, - "venv/lib/python3.13/site-packages/fastapi/concurrency.py": 17937688838625807004, - "backend/git_repos/remote/test-repo.git/HEAD": 12394318939628232491, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/__init__.py": 6532094538918910232, - "venv/lib/python3.13/site-packages/pydantic/generics.py": 15019381413806459410, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/array_api_info.pyi": 7887489694871300469, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/binding.py": 17078280153372356796, - "venv/lib/python3.13/site-packages/pandas/core/indexes/accessors.py": 14394872772838047912, - "venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py": 7271614043537119143, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/theme.py": 14225878259183479398, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_cpp_avx2.cpython-313-x86_64-linux-gnu.so": 12574929384355254457, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_dialect.py": 4700488504252803159, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/aioodbc.py": 12704729841432715246, - "venv/lib/python3.13/site-packages/pycparser/ply/__init__.py": 5040371336745852622, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/licenses/LICENSE": 8438117004702803716, - "venv/lib/python3.13/site-packages/pandas/core/arrays/numeric.py": 17834058423729918687, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/METADATA": 15970460108484113417, - "venv/lib/python3.13/site-packages/pandas/tests/config/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel.py": 7728646523045538484, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_readers.py": 2136472634307645842, - "venv/lib/python3.13/site-packages/httpx/_api.py": 6697370469329778523, - "venv/lib/python3.13/site-packages/pandas/plotting/__init__.py": 13230487326686617492, - "venv/lib/python3.13/site-packages/idna/intranges.py": 12536174834761591006, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_fields.py": 16222559851336781264, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/types.py": 16795741817129898714, - "venv/lib/python3.13/site-packages/numpy/polynomial/hermite_e.pyi": 13068936038543812082, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/token.py": 6987328478153445584, - "venv/lib/python3.13/site-packages/pygments/lexers/webidl.py": 8097260111959278117, - "frontend/src/lib/utils.js": 5436516952434475239, - "venv/lib/python3.13/site-packages/pygments/styles/rainbow_dash.py": 12236746494379891602, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/METADATA": 14608873187265321271, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi": 18143251582901996072, - "venv/lib/python3.13/site-packages/jeepney/bindgen.py": 7094585345946943534, - "venv/lib/python3.13/site-packages/numpy/lib/_function_base_impl.py": 14034239842770171660, - "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/array.py": 12658302948819867972, - "venv/lib/python3.13/site-packages/pyasn1/codec/ber/encoder.py": 8912119133548489544, - "venv/lib/python3.13/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2": 5320647379976541240, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/WHEEL": 16097436423493754389, - "venv/bin/py.test": 2593802493707545818, - "venv/lib/python3.13/site-packages/iniconfig/_version.py": 8497474654470220170, - "frontend/playwright-report/index.html": 14077910029911296246, - "frontend/build/_app/immutable/nodes/27.Ybxz9hPL.js": 15180937521134474651, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/RECORD": 12555714734722889695, - "venv/lib/python3.13/site-packages/urllib3/contrib/socks.py": 645086578806871685, - "venv/lib/python3.13/site-packages/click/_utils.py": 16491408631876616271, - "venv/lib/python3.13/site-packages/fastapi/security/api_key.py": 6965937678104291169, - "venv/lib/python3.13/site-packages/pip/_internal/operations/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic/deprecated/config.py": 12280996227531856230, - "venv/lib/python3.13/site-packages/pygments/lexers/factor.py": 15788613154609197002, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/constants.pyi": 15633065380510755171, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_subclassing.py": 17318983445227658412, - "venv/lib/python3.13/site-packages/pandas/_libs/testing.pyi": 16691791330088523786, - "venv/lib/python3.13/site-packages/fastapi/utils.py": 15402403831700548944, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler_py.py": 16189204441438239231, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarbuffer.py": 16859789411010045795, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/mypy.py": 823265492261272631, - "venv/lib/python3.13/site-packages/keyring/backends/kwallet.py": 3071915635647280308, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/sphinxext.py": 2403717774564798878, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarrayobject.h": 7320510589635636690, - "venv/lib/python3.13/site-packages/pandas/core/util/hashing.py": 13106575357604888913, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_logical_ops.py": 4438104524064299182, - "venv/lib/python3.13/site-packages/gitdb/exc.py": 13975852664048821278, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_py_util.py": 12836989066113400538, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_cat_accessor.py": 4304062895283374927, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/__init__.py": 8807410829260170597, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/reserved_words.py": 8022121780993497971, - "venv/lib/python3.13/site-packages/numpy/random/bit_generator.pyi": 15790738442952696034, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/rsa.py": 5392922995791487437, - "venv/lib/python3.13/site-packages/PIL/ImageColor.py": 17058618058554970738, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/RECORD": 6349071557579241461, - "venv/lib/python3.13/site-packages/pycparser/ast_transforms.py": 9032453625977464506, - "venv/lib/python3.13/site-packages/rapidfuzz/utils_py.py": 12341806772632276946, - "venv/lib/python3.13/site-packages/pandas/tseries/offsets.py": 13750652921710295115, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_set.py": 14375107704596905983, - "venv/lib/python3.13/site-packages/fastapi/routing.py": 466387159689567541, - "venv/lib/python3.13/site-packages/dotenv/parser.py": 17651523026132242005, - "venv/lib/python3.13/site-packages/pandas/tests/test_register_accessor.py": 16661086720613729974, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_shift.py": 14026124784027171225, - "venv/lib/python3.13/site-packages/pluggy/_hooks.py": 6941854999025808196, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_indexerrors.py": 4434868847540549873, - "venv/lib/python3.13/site-packages/pandas/core/groupby/groupby.py": 5536922766239875007, - "venv/lib/python3.13/site-packages/rapidfuzz/_common_py.py": 15410157970973169427, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_typing/_scalars.py": 17701938912160369190, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/WHEEL": 13347410390513723930, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/RECORD": 15865206372525596795, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/fields.py": 10090313990429695520, - "venv/lib/python3.13/site-packages/numpy/tests/test_warnings.py": 3154249157134620649, - "venv/lib/python3.13/site-packages/pygments/lexers/meson.py": 14659991367778746658, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/statreload.py": 5018382301336802445, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_conversion.py": 9159276697339089788, - "venv/lib/python3.13/site-packages/pillow.libs/libharfbuzz-0692f733.so.0.61230.0": 23110287346167671, - "venv/lib/python3.13/site-packages/pandas/core/arrays/interval.py": 16281221279220043867, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/events.py": 7576713358952064464, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_partial_slicing.py": 15567512240469921599, - "venv/lib/python3.13/site-packages/greenlet/TPythonState.cpp": 12828594265749606443, - "venv/lib/python3.13/site-packages/pandas/_testing/compat.py": 10172779814048259850, - "venv/lib/python3.13/site-packages/PIL/PSDraw.py": 1927169421822446045, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_limited_api.py": 15788485008764560845, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_any_index.py": 10800968419286329268, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/__init__.py": 15971002342788501945, - "venv/lib/python3.13/site-packages/pygments/lexers/pddl.py": 9256112535059995841, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/intranges.py": 12536174834761591006, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_kind.py": 18178830861475480607, - "venv/lib/python3.13/site-packages/pandas/core/reshape/__init__.py": 15130871412783076140, - "frontend/build/_app/immutable/chunks/Bl4U_RKh.js": 1682675857949667017, - "venv/lib/python3.13/site-packages/pandas/core/reshape/api.py": 16364136812252343076, - "venv/lib/python3.13/site-packages/pygments/lexers/ride.py": 14096748896451437594, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/RECORD": 8971487317739420905, - "venv/lib/python3.13/site-packages/greenlet/greenlet.h": 16216120538647882082, - "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_spec_conformance.py": 16448324304809345527, - "venv/lib/python3.13/site-packages/httpcore/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pillow.libs/libXau-154567c4.so.6.0.0": 4340972632724893052, - "venv/lib/python3.13/site-packages/pygments/lexers/maxima.py": 11824576541091274641, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/__init__.py": 15130871412783076140, - "backend/src/models/dataset_review_pkg/_semantic_models.py": 6267455409655567066, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_two_greenlets.py": 11156275429806391390, - "venv/lib/python3.13/site-packages/pip/_internal/utils/glibc.py": 12335359492756627313, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py": 6509914623926583629, - "backend/src/services/notifications/__init__.py": 13930898146447654299, - "backend/src/services/git/_base.py": 9705469664041515959, - "venv/lib/python3.13/site-packages/cffi/lock.py": 13507686939203117974, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/numerictypes.pyi": 15443101937711720707, - "venv/lib/python3.13/site-packages/pandas/core/interchange/utils.py": 11401792151107207834, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pop.py": 14885271225856187795, - "frontend/src/lib/components/dataset-review/LaunchConfirmationPanel.svelte": 14399834101283315718, - "venv/lib/python3.13/site-packages/_pytest/doctest.py": 6126919596776592278, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multithreading.py": 12547048606098186681, - "venv/lib/python3.13/site-packages/httpcore/_async/__init__.py": 491192949420297153, - "venv/lib/python3.13/site-packages/pyasn1/type/namedtype.py": 1859990775875190116, - "backend/src/api/routes/health.py": 4494840518139445701, - "venv/lib/python3.13/site-packages/numpy/typing/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_index_equal.py": 10617870815989304510, - "venv/lib/python3.13/site-packages/cryptography/x509/oid.py": 13909847799728532602, - "venv/lib/python3.13/site-packages/PIL/Image.py": 13615925856053031482, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/_src_pyf.pyi": 8916922961301555974, - "venv/lib/python3.13/site-packages/pandas/core/internals/concat.py": 12151675567885981464, - "backend/src/plugins/llm_analysis/__init__.py": 9254812131558249924, - "venv/lib/python3.13/site-packages/cffi/__init__.py": 13427266446746498548, - "venv/lib/python3.13/site-packages/pandas/core/util/numba_.py": 3535857372998653863, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arrayterator.py": 1646530870049791291, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7521/client.py": 17305914656270781911, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/RECORD": 8104089156015954779, - "backend/src/plugins/backup.py": 9697280948668596192, - "venv/lib/python3.13/site-packages/numpy/_core/__init__.pyi": 2783897020308040960, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_coercion.py": 3551994404797560483, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arrayprint.py": 5912583751693302370, - "backend/src/plugins/translate/executor.py": 15866803979457728942, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_fillna.py": 13675584998644907265, - "venv/lib/python3.13/site-packages/pygments/modeline.py": 6194365452131561478, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_msvc.h": 14580207065003376324, - "venv/lib/python3.13/site-packages/numpy/f2py/f90mod_rules.pyi": 18290764713161282980, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_dtypes.py": 6831042272921908068, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/util.py": 4815334059917765852, - "backend/src/core/logger/__tests__/test_logger.py": 4188397720199242180, - "backend/src/api/routes/clean_release.py": 1984604735131504761, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libpcre-9513aab5.so.1.2.0": 12298861477332583668, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_tz_convert.py": 17957207974799052653, - "frontend/src/routes/tools/storage/+page.svelte": 2651964385884112547, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_melt.py": 15663807247682146566, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/traversals.py": 1188980668212022868, - "venv/lib/python3.13/site-packages/numpy/lib/_shape_base_impl.pyi": 12052895927933479005, - "venv/lib/python3.13/site-packages/numpy/_core/_simd.pyi": 13553578040186939249, - "backend/tests/test_translate_scheduler_execution.py": 16687335504320865378, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/jwt_bearer.py": 6973859422068490274, - "frontend/src/routes/settings/connections/+page.svelte": 276661107137418305, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_openssl.py": 10446441599800965961, - "venv/lib/python3.13/site-packages/pyasn1/codec/der/decoder.py": 11876648884087997745, - "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pillow.libs/liblzma-61b1002e.so.5.8.2": 11405063484938458842, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_coercion.py": 3339075591248270762, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_sort_index.py": 13517883160584591966, - "frontend/src/routes/dashboards/[id]/components/DashboardGitManager.svelte": 14665567599893731601, - "backend/src/api/routes/git_schemas.py": 9243114525622127446, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286_bc.pyf": 10893958728966010450, - "backend/src/api/routes/storage.py": 17448492494022569347, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/models.py": 17870758731501836303, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/random.pyi": 9425735458050148191, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_chunksize.py": 7107619871245389835, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_version.py": 10384171076976071398, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/__init__.py": 3969805865048730851, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_masm.asm": 15349921092257597740, - "backend/src/plugins/translate/service_utils.py": 15103456860964805370, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_equals.py": 9903250467264848187, - "venv/lib/python3.13/site-packages/pandas/tests/extension/list/array.py": 8065856342131357421, - "venv/lib/python3.13/site-packages/pycparser/__init__.py": 16499940957411260458, - "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/accessors.py": 12743680296510533030, - "venv/lib/python3.13/site-packages/itsdangerous/encoding.py": 205863946173486958, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_series.py": 16418555817529711079, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/utils.py": 9959199071030996679, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/json.py": 4660603129768960095, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/auto.py": 12818217385551437286, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/_pytest/_py/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_meson.py": 5735043585893007971, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_to_pydatetime.py": 1129954411080617001, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate.py": 16723865897349422996, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/writeonly.py": 14213960431308620600, - "backend/src/models/dataset_review_pkg/_filter_models.py": 8426742165406106645, - "backend/src/plugins/llm_analysis/plugin.py": 17227799960135116601, - "backend/tests/core/test_defensive_guards.py": 1048600814279591148, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/__init__.py": 15130871412783076140, - "frontend/src/lib/components/dataset-review/ValidationFindingsPanel.svelte": 2403276296409515448, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/scalars.py": 3468820466230647963, - "venv/lib/python3.13/site-packages/more_itertools/more.pyi": 4844596605492825806, - "venv/lib/python3.13/site-packages/pygments/lexers/lilypond.py": 1088755646568511197, - "backend/src/services/clean_release/repositories/audit_repository.py": 9617813121624417458, - "venv/lib/python3.13/site-packages/pandas/_libs/reshape.cpython-313-x86_64-linux-gnu.so": 10639750501333255943, - "backend/src/core/database.py.bak": 14909628735913201532, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/exc.py": 3242780937124999391, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/collections.py": 16114931075157411913, - "backend/src/plugins/translate/dictionary_import_export.py": 12639118203353044308, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi": 17458894097215345719, - "backend/tests/test_translate_scheduler_guard.py": 13396608843530344156, - "backend/tests/core/migration/test_dry_run_orchestrator.py": 5158126098685923841, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/applicator": 6870991911243684132, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/scalars.pyi": 17683675356659300769, - "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_gen_files.py": 11149423183253618378, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_read_errors.py": 4559483361564472117, - "venv/lib/python3.13/site-packages/referencing/tests/test_jsonschema.py": 9815500901482570619, - "venv/lib/python3.13/site-packages/numpy/lib/_twodim_base_impl.pyi": 15509415708991012734, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_cython.py": 2933400021016349431, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_astype.py": 16700461036658228009, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/METADATA": 4954909612926293404, - "venv/lib/python3.13/site-packages/pandas/tests/base/common.py": 13335865314907577354, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_value_counts.py": 9352540710376306520, - "backend/src/core/superset_client/_dashboards_filters.py": 11002883972618719697, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_concat.py": 1351478313334379336, - "venv/lib/python3.13/site-packages/pandas/tests/extension/list/test_list.py": 4538625980063375611, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/lib/_stride_tricks_impl.py": 5260748170237305627, - "frontend/src/components/llm/DocPreview.svelte": 25645090129568414, - "backend/src/plugins/translate/__tests__/test_clickhouse_insert_integration.py": 1476468269208921287, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/factory.py": 3042005457138956499, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_xport.py": 14080914637071212225, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_constructors.py": 9815164146739254076, - "backend/src/plugins/translate/__tests__/test_dictionary_filter.py": 12872406014365116097, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/__init__.py": 71159121705871510, - "venv/lib/python3.13/site-packages/pydantic/deprecated/copy_internals.py": 1245428320513062166, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_setops.py": 13440916133402971190, - "venv/lib/python3.13/site-packages/pandas/core/groupby/categorical.py": 16588862198627920420, - "venv/lib/python3.13/site-packages/cffi/verifier.py": 8473599757770867754, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_shift.py": 8547819448301023303, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_quarter.py": 6795026338946382805, - "venv/lib/python3.13/site-packages/pygments/styles/__init__.py": 18383248976818885498, - "venv/lib/python3.13/site-packages/cryptography/x509/name.py": 15338066443257445241, - "venv/lib/python3.13/site-packages/ecdsa/test_ecdsa.py": 17595025859105321562, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_format.py": 9331389900588353667, - "venv/lib/python3.13/site-packages/passlib/handlers/argon2.py": 835074952952017434, - "venv/lib/python3.13/site-packages/pygments/lexers/freefem.py": 9851243865301700231, - "venv/lib/python3.13/site-packages/pygments/lexers/ezhil.py": 10294520768762308887, - "frontend/src/lib/stores/activity.js": 14023344642294459631, - "frontend/build/_app/immutable/chunks/BoPlBqXU.js": 15621955836226522600, - "frontend/src/routes/admin/settings/+page.svelte": 15536865086528222650, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/hybrid.py": 5793056975404534989, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cffi/parse.py": 2427019397934437210, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/rec.pyi": 14615751247243515028, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_truncate.py": 9623613657871046837, - "venv/lib/python3.13/site-packages/click/types.py": 6491651131669287534, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/METADATA": 3044554568188160018, - "venv/lib/python3.13/site-packages/jeepney/io/tests/conftest.py": 13381752264278264218, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/__main__.py": 8412594868333244844, - "venv/lib/python3.13/site-packages/keyring/backend.py": 14185808762437650951, - "venv/lib/python3.13/site-packages/greenlet/__init__.py": 3447613556981242475, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/zookeeper.py": 4318643109309626098, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_skew.py": 5276102682005383261, - "venv/lib/python3.13/site-packages/numpy/lib/_twodim_base_impl.py": 4154852745131464543, - "venv/lib/python3.13/site-packages/numpy/lib/_datasource.pyi": 5894423389796456573, - "venv/lib/python3.13/site-packages/passlib/tests/test_utils_md4.py": 15270721044910698449, - "venv/lib/python3.13/site-packages/httpx/_types.py": 12461152436147308761, - "frontend/src/lib/api/translate/schedules.js": 8616345664085016472, - "backend/src/core/superset_client/_user_projection.py": 16484323195475306883, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/METADATA": 8985010079096958084, - "venv/lib/python3.13/site-packages/pip/_internal/index/sources.py": 11609272011565024668, - "venv/lib/python3.13/site-packages/apscheduler/executors/twisted.py": 2695602672085615762, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/licenses/LICENSE": 12688029424398428498, - "backend/src/api/routes/assistant/_dispatch.py": 3811422882986895565, - "venv/lib/python3.13/site-packages/jeepney/tests/test_auth.py": 15125055415702968414, "venv/lib/python3.13/site-packages/numpy/_core/arrayprint.py": 1262543237476191714, - "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension_cpp.cpython-313-x86_64-linux-gnu.so": 7659849621107414188, - "venv/lib/python3.13/site-packages/_pytest/freeze_support.py": 494952714451267295, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/licenses/COPYING": 14459782230785388765, - "venv/lib/python3.13/site-packages/pandas/_libs/hashing.cpython-313-x86_64-linux-gnu.so": 16124435225170610034, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/__init__.py": 5118993772178969104, - "venv/lib/python3.13/site-packages/PIL/DdsImagePlugin.py": 10646832373516499548, - "venv/lib/python3.13/site-packages/h11/_state.py": 11398755254809751139, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/__init__.py": 7062045842767697645, - "venv/lib/python3.13/site-packages/tzlocal/__init__.py": 11017072814026497364, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_pop.py": 5700439923973346681, - "venv/lib/python3.13/site-packages/numpy.libs/libquadmath-96973f99-934c22de.so.0.0.0": 5098713761946118139, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.pxd": 13413785818999584986, - "venv/lib/python3.13/site-packages/_pytest/_io/terminalwriter.py": 16852767249156780980, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_api.py": 13739775047493489785, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/nditer.py": 10038360623032425884, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_npy_units.py": 8966226962799105383, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/reflection.py": 5951113078754792806, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath.py": 13010939919217862164, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_typing.py": 17589387690638097975, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/WHEEL": 14929202952940710322, - "venv/lib/python3.13/site-packages/pandas/tests/extension/date/array.py": 18073740473413382768, - "venv/lib/python3.13/site-packages/pluggy/_warnings.py": 2664977718908223842, - "venv/lib/python3.13/site-packages/pyasn1/type/constraint.py": 16776615503418773283, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/AUTHORS": 10073225185964928425, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/rule.py": 5318344538761246105, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/shape_base.pyi": 10291383658131961346, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/__init__.py": 8880435562116660648, - "venv/lib/python3.13/site-packages/numpy/linalg/__init__.pyi": 18409133021422984774, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_duplicate_labels.py": 10663105616336167414, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/state_changes.py": 11425629729736599320, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/misc.py": 6571241778569465264, - "venv/lib/python3.13/site-packages/requests/hooks.py": 9888227370911151341, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9207/__init__.py": 8434616194114282088, - "venv/lib/python3.13/site-packages/pandas/tests/window/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/exc.py": 1448374203226983757, - "venv/lib/python3.13/site-packages/pygments/lexers/snobol.py": 414946539602526513, - "frontend/build/_app/immutable/chunks/D9dVwiHl.js": 14131011399955207172, - "backend/src/api/routes/git/__init__.py": 14824479456728364642, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_public_dtype_api_table.h": 8933016749764021181, - "venv/lib/python3.13/site-packages/tzlocal/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/passlib/registry.py": 5050675058011850564, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/__init__.py": 14571251344510763303, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_mangle_dupes.py": 15613858733226279352, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/test_indexing.py": 2274965639578580723, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_mips_unix.h": 17373389962405490482, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/WHEEL": 7414522633964952515, - "venv/lib/python3.13/site-packages/pip/_internal/utils/filesystem.py": 7716285033598020316, - "venv/lib/python3.13/site-packages/pandas/api/indexers/__init__.py": 17431573013142626187, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_constructors.py": 12118296571694122743, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_dialect.py": 6294522482440261756, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_xml.py": 6906547816798138000, - "venv/lib/python3.13/site-packages/pygments/lexers/installers.py": 5083244110640899732, - "venv/lib/python3.13/site-packages/pygments/lexers/fortran.py": 6859638690245583968, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__multiarray_api.h": 16138871162713175599, - "venv/lib/python3.13/site-packages/uvicorn/loops/uvloop.py": 5385425357504191161, - "venv/lib/python3.13/site-packages/pip/_internal/cli/autocompletion.py": 7651919329635563739, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_tokenizer.py": 7994281991455916540, - "venv/lib/python3.13/site-packages/numpy/_core/__init__.py": 14951958843029076911, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi": 9835891299056543360, - "venv/lib/python3.13/site-packages/numpy/lib/array_utils.py": 18135114588643176359, - "venv/lib/python3.13/site-packages/pandas/tests/computation/test_eval.py": 2921337784087808487, - "venv/lib/python3.13/site-packages/pygments/lexers/make.py": 5345282370426217663, - "frontend/src/lib/components/translate/__tests__/test_correction_cell.svelte.js": 2314051239468628554, - "backend/src/api/routes/llm.py": 9139371360302897928, - "backend/src/api/routes/reports.py": 5647380957044157360, - "venv/lib/python3.13/site-packages/pygments/lexers/dotnet.py": 17970884907837213099, - "venv/lib/python3.13/site-packages/pandas/io/excel/_base.py": 1251545894005373734, - "scripts/scan_secrets.sh": 599173385111063848, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_string_array.py": 8260883866404398980, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/generator_pcg64_np121.pkl.gz": 4708588000144933291, - "venv/lib/python3.13/site-packages/numpy/_core/memmap.pyi": 14124415711399771715, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh25211.f": 1486878017876900890, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_bar.py": 7791068963246005463, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_pickle.py": 2910383574326146698, - "frontend/build/_app/immutable/chunks/CV7dXtfg.js": 15129819915415394723, - "venv/lib/python3.13/site-packages/pygments/lexers/asc.py": 10744437946030875496, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/env.py": 1254612137164491329, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_skew_kurt.py": 15225601437354712351, - "venv/lib/python3.13/site-packages/PIL/PpmImagePlugin.py": 7107324729714470853, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/__init__.py": 13841777369501476946, - "venv/lib/python3.13/site-packages/git/types.py": 13960696584646279283, - "frontend/e2e/tests/git.e2e.js": 5892730242199126550, - "backend/src/api/routes/translate/_schedule_routes.py": 18180097500694105300, - "venv/lib/python3.13/site-packages/pip/_internal/utils/__init__.py": 15130871412783076140, - "backend/src/api/routes/translate/_job_routes.py": 217949482917696293, - "backend/src/models/dataset_review_pkg/_execution_models.py": 9810012962062422666, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-exp2.csv": 10950201682596097452, - "backend/src/services/security_badge_service.py": 6269749758059921511, - "venv/lib/python3.13/site-packages/pyasn1/type/__init__.py": 15728752901274520502, - "backend/tests/test_translate_scheduler.py": 14274816721941617887, - "venv/lib/python3.13/site-packages/anyio/streams/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/METADATA": 4868544280955034757, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_promote.py": 16601872688404846307, - "venv/lib/python3.13/site-packages/pandas/io/formats/style.py": 13235403689320479165, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x86_msvc.h": 2465089365642299646, - "venv/lib/python3.13/site-packages/PIL/ImageFilter.py": 10974179993355630141, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/token.py": 4747545058753492487, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_hist_method.py": 2109257663592928, - "backend/git_repos/remote/test-repo.git/info/exclude": 6403833611826357791, - "venv/lib/python3.13/site-packages/numpy/lib/_version.pyi": 10804755840730584157, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_distutils.py": 1948707545068786, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate_nonkeyword_arguments.py": 11676809974120007408, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_halfyear.py": 9376272342364384767, - "venv/lib/python3.13/site-packages/keyring/py.typed": 15130871412783076140, - "frontend/static/favicon.png": 16740551781088792605, - "backend/src/core/migration/__init__.py": 13075189211840127611, - "backend/src/plugins/translate/preview_session_serializer.py": 8901687711861433007, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/gitdb/util.py": 645937410168583692, - "venv/lib/python3.13/site-packages/pip/_internal/models/search_scope.py": 9282393652860589543, - "venv/lib/python3.13/site-packages/pip/_internal/models/direct_url.py": 4619204214785230341, - "venv/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py": 1246582552828542841, - "venv/lib/python3.13/site-packages/pygments/lexers/arturo.py": 4565524340706235725, - "backend/src/api/routes/__tests__/test_tasks_logs.py": 18076509977474947273, - "backend/src/models/task.py": 10701108436197477339, - "build.sh": 2979280474875068, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/expressions.py": 8015786996064244656, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/scanner.py": 5640381644804445932, - "venv/lib/python3.13/site-packages/attrs/converters.py": 13109003765349201809, - "venv/lib/python3.13/site-packages/numpy/_distributor_init.py": 1101690714183863290, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/utils.h": 3920393832993063886, - "venv/lib/python3.13/site-packages/pydantic/_internal/_mock_val_ser.py": 12265320534388472158, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/vector.py": 9941185556118343263, - "venv/lib/python3.13/site-packages/authlib/jose/jwk.py": 13560749074922587626, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_type_check.py": 3935091606923106753, - "venv/lib/python3.13/site-packages/itsdangerous/timed.py": 12571102606719555007, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/__init__.py": 2246704695838251846, - "venv/lib/python3.13/site-packages/pluggy/_tracing.py": 7276210024011809655, - "venv/lib/python3.13/site-packages/numpy/lib/npyio.pyi": 3212440968296555560, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_reshape.py": 5572426834735088916, - "frontend/src/lib/ui/Button.svelte": 921807193049478213, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/control.py": 2034518223411945438, - "venv/lib/python3.13/site-packages/fastapi/middleware/gzip.py": 436886407566263171, - "venv/lib/python3.13/site-packages/numpy/_core/lib/pkgconfig/numpy.pc": 14713682399742251335, - "venv/lib/python3.13/site-packages/PIL/JpegPresets.py": 12342262642420923471, - "venv/lib/python3.13/site-packages/git/refs/__init__.py": 16246686106073400519, - "venv/lib/python3.13/site-packages/yaml/error.py": 5626374410579058436, - "venv/lib/python3.13/site-packages/psycopg2/errors.py": 10441360078612452560, - "frontend/src/lib/components/translate/TranslationPreview.svelte": 3234775946311369733, - "frontend/vite.config.js": 982595057268821071, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libsasl2-883649fd.so.3.0.0": 13306917506408577991, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/accesstype.f90": 877982462186396830, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/r.py": 14263133575134645005, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_categorical.py": 9615571808720893016, - "backend/src/services/clean_release/policy_engine.py": 3180817867716931725, - "backend/src/plugins/translate/_run_service.py": 9256226506466064345, - "venv/lib/python3.13/site-packages/requests/__init__.py": 2604491098990438229, - "venv/lib/python3.13/site-packages/starlette/convertors.py": 17839747154274354605, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/filter.py": 16846063190466267618, - "venv/lib/python3.13/site-packages/dotenv/__main__.py": 16883579879172186355, - "venv/lib/python3.13/site-packages/passlib/ext/__init__.py": 15240312484046875203, - "venv/lib/python3.13/site-packages/attrs/filters.py": 6844006230924162452, - "venv/lib/python3.13/site-packages/_pytest/unraisableexception.py": 4597178803320514675, - "venv/lib/python3.13/site-packages/numpy/lib/_nanfunctions_impl.py": 11621577915097515056, - "venv/lib/python3.13/site-packages/numpy/_core/function_base.pyi": 8343632640078378312, - "venv/lib/python3.13/site-packages/pandas/io/parsers/base_parser.py": 15148258424429418380, - "venv/lib/python3.13/site-packages/PIL/SunImagePlugin.py": 7661622930404688367, - "venv/lib/python3.13/site-packages/yaml/resolver.py": 6669674521776449098, - "frontend/src/lib/components/reports/__tests__/reports_page.integration.test.js": 16463062768004950066, - "backend/src/plugins/translate/dictionary_crud.py": 17858252266960667195, - "backend/src/api/routes/__tests__/conftest.py": 8465980330386544642, - "backend/src/services/notifications/__tests__/test_notification_service.py": 2377464079178202565, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_math.h": 16701045088211015518, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/provision.py": 9472538482404392519, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_partial.py": 3151286293440416036, - "backend/git_repos/remote/test-repo.git/objects/f7/6ee984d9d47c3cd0b362fdf60a47162bbc202d": 5351983130474596028, - "venv/lib/python3.13/site-packages/numpy/f2py/__main__.py": 12567751646090102167, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/util.py": 18279366777506483176, - "venv/lib/python3.13/site-packages/pip/_internal/cli/spinners.py": 7664056305019151182, - "venv/lib/python3.13/site-packages/pygments/lexers/asn1.py": 15030988816882821134, - "backend/src/plugins/translate/orchestrator.py": 2899451611486868631, - "venv/lib/python3.13/site-packages/numpy/_core/_internal.py": 13056946834347643109, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_get_numeric_data.py": 5896318696417090902, - "venv/lib/python3.13/site-packages/pydantic_settings/main.py": 17272314000918984790, - "backend/src/core/task_manager/task_logger.py": 12820629458199400734, - "backend/git_repos/remote/test-repo.git/refs/heads/main": 7667767390913789840, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro.py": 183817263146423033, - "venv/lib/python3.13/site-packages/anyio/abc/_eventloop.py": 2023190981288767991, + "backend/git_repos/remote/test-repo.git/refs/heads/dev": 8596267258668462395, + "backend/src/core/task_manager/models.py": 14810225773071673070, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py": 2873060848310644552, + "venv/lib/python3.13/site-packages/PIL/TiffTags.py": 8688883943071546469, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/resource_protector.py": 9147671710440653567, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/distributions.h": 17162252287980242413, + "venv/lib/python3.13/site-packages/pydantic/_internal/_docs_extraction.py": 5210114991139191634, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufunc_config.pyi": 2005481648919369399, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7521/__init__.py": 635200170992032966, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/licenses/LICENSE": 7959949171752474553, + "venv/lib/python3.13/site-packages/numpy/random/_common.pxd": 3402284125943848851, + "venv/lib/python3.13/site-packages/numpy/__init__.pxd": 13527602429695748857, + "venv/bin/keyring": 1488968652276547659, + "frontend/src/routes/settings/+page.svelte": 8601836419948434099, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/base.py": 13269563625127294513, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_longdouble.py": 9337218715436213122, + "venv/lib/python3.13/site-packages/jeepney/io/trio.py": 11859775321483330469, + "venv/lib/python3.13/site-packages/requests/api.py": 12339139862411341381, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_constructors.py": 12628643543371952431, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/hiworld.f90": 6321872653169140461, + "venv/lib/python3.13/site-packages/numpy/_utils/_inspect.pyi": 17825266810219495672, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_complex.py": 4290059580478881700, + "venv/lib/python3.13/site-packages/numpy/ctypeslib/__init__.pyi": 13208953770241664384, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_astype.py": 15275720655739710249, + "venv/lib/python3.13/site-packages/dateutil/parser/isoparser.py": 18015430204844361067, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/METADATA": 6502714564886871819, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64_np126.pkl.gz": 1630203486813146863, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/base.py": 5294446834530589760, + "venv/lib/python3.13/site-packages/passlib/ext/django/utils.py": 8118896525895185626, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/resultproxy.pyx": 5760108632332714287, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/async_app.py": 4329794049222609894, + "venv/lib/python3.13/site-packages/pandas/core/computation/check.py": 16048939716341154196, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/enumerated.py": 16623643153933348755, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/json.py": 6429651405841289922, + "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs.pyi": 9282436354926617898, + "venv/lib/python3.13/site-packages/numpy/random/_generator.cpython-313-x86_64-linux-gnu.so": 15625019745021657670, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_select_dtypes.py": 3530442956913622572, + "venv/lib/python3.13/site-packages/urllib3/py.typed": 12220177918227495093, + "venv/lib/python3.13/site-packages/pandas/tests/io/xml/conftest.py": 17514079438846557943, + "venv/lib/python3.13/site-packages/_pytest/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_builtin_md4.py": 16840174243259839994, + "venv/lib/python3.13/site-packages/sqlalchemy/util/_py_collections.py": 16825222625411635946, + "venv/lib/python3.13/site-packages/pip/_internal/commands/check.py": 6937252393012787214, + "venv/lib/python3.13/site-packages/fastapi/openapi/constants.py": 1111838716953068285, + "venv/lib/python3.13/site-packages/passlib/tests/sample1c.cfg": 13088198405762342506, + "venv/lib/python3.13/site-packages/yaml/composer.py": 13619070314468518566, + "venv/lib/python3.13/site-packages/uvicorn/_subprocess.py": 13965754246493254447, + "frontend/src/lib/stores/__tests__/setupTests.js": 13316015450930652502, + "venv/lib/python3.13/site-packages/ecdsa/test_rw_lock.py": 1572802971060634697, + "venv/lib/python3.13/site-packages/greenlet/PyGreenletUnswitchable.cpp": 3160733517193315684, + "venv/lib/python3.13/site-packages/pandas/core/roperator.py": 2587829042468916489, + "frontend/build/_app/immutable/chunks/DXUsjDzY.js": 18242831136557949498, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_datetimeindex.py": 14816894350435545024, "venv/lib/python3.13/site-packages/numpy/f2py/f90mod_rules.py": 2953876934840155920, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/WHEEL": 8954358347596196608, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_timeseries_window.py": 1973365560758236222, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_invalid_arg.py": 610891871484326055, + "venv/lib/python3.13/site-packages/pycparser/c_lexer.py": 10964496587169353564, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_constructors.py": 17219764538851313252, + "venv/lib/python3.13/site-packages/smmap/test/test_buf.py": 6910367739329016619, + "venv/lib/python3.13/site-packages/PIL/ImagePalette.py": 9227837918026991107, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_strings.py": 7379299916213794543, + "venv/lib/python3.13/site-packages/gitdb/test/test_util.py": 541144638852210407, + "backend/src/core/middleware/trace.py": 13093835356377196397, + "venv/lib/python3.13/site-packages/cffi/verifier.py": 8473599757770867754, + "backend/src/core/logger/__tests__/test_logger.py": 4188397720199242180, + "venv/lib/python3.13/site-packages/pandas/util/_tester.py": 1033951890304257539, + "venv/lib/python3.13/site-packages/passlib/tests/test_ext_django.py": 3210697476292094384, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/protocol.py": 932296179250981622, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_pickle.py": 388513670243918273, + "venv/lib/python3.13/site-packages/sqlalchemy/future/engine.py": 4639404437703898767, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/layout.py": 11554376181083053156, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_interpolate.py": 7354685880215444946, + "venv/lib/python3.13/site-packages/greenlet/TThreadStateDestroy.cpp": 13749797532421836328, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_keys.py": 10813898277355150779, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/json.py": 14755215397454910426, + "venv/lib/python3.13/site-packages/PIL/IptcImagePlugin.py": 14329453455296600824, + "backend/src/core/superset_client/_datasets.py": 4813403545392307482, + "backend/src/services/clean_release/preparation_service.py": 10596397721803950912, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/flatiter.pyi": 9598576095384661517, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/index_tricks.pyi": 6035507586990711471, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/common.py": 2075178842766962782, + "frontend/src/lib/components/reports/reportTypeProfiles.js": 10752964062056890725, + "venv/lib/python3.13/site-packages/anyio/abc/_subprocesses.py": 4297459042599291531, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_mangle_dupes.py": 15613858733226279352, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_reductions.py": 17810094294132819208, + "venv/lib/python3.13/site-packages/pandas/_typing.py": 17795648994662434211, + "venv/lib/python3.13/site-packages/pydantic/deprecated/class_validators.py": 2200511838255373813, + "venv/lib/python3.13/site-packages/pandas/io/parsers/c_parser_wrapper.py": 5841064965672872661, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/zip-safe": 15240312484046875203, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/version.py": 14723293207188512766, + "backend/src/api/routes/__tests__/test_dataset_review_api.py": 17381354465400611694, + "venv/lib/python3.13/site-packages/_pytest/assertion/util.py": 16957445183087315124, + "backend/alembic/versions/b1c2d3e4f5a6_add_source_hash_to_translation_records.py": 4775534557742900399, + "venv/lib/python3.13/site-packages/pandas/tests/test_sorting.py": 10751098438703044961, + "venv/lib/python3.13/site-packages/numpy/random/c_distributions.pxd": 16574161095720077595, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_indexing.py": 3841182456456779012, + "frontend/src/lib/ui/Input.svelte": 8632025378593263475, + "venv/lib/python3.13/site-packages/numpy/lib/format.pyi": 11752225430594536662, + "frontend/src/lib/api/__tests__/reports_api.test.js": 11820587361929895100, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reset_index.py": 5946666595195952693, + "venv/lib/python3.13/site-packages/pip/_internal/models/selection_prefs.py": 14700113736620314923, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/__main__.py": 8412594868333244844, + "venv/lib/python3.13/site-packages/pandas/tests/libs/test_hashtable.py": 7762405492052106717, + "venv/lib/python3.13/site-packages/numpy/lib/_arraysetops_impl.pyi": 3111521453255595221, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/lambdas.py": 13377298868598623228, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_cumulative.py": 11752712818547022872, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_npfuncs.py": 13987318550267921389, + "venv/lib/python3.13/site-packages/pygments/lexers/bqn.py": 11823648528816858738, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_numpy.py": 9663734591667845940, + "backend/src/plugins/translate/preview_prompt_helpers.py": 14303328860208074708, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/__init__.py": 6489437464172324468, + "venv/lib/python3.13/site-packages/numpy/_core/overrides.py": 252940520997718714, + "venv/lib/python3.13/site-packages/websockets/legacy/client.py": 4032878587330592478, + "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_xml_dtypes.py": 18293138335799308439, + "venv/lib/python3.13/site-packages/pygments/lexers/apdlexer.py": 14222752852221009085, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_interpolate.py": 6154072863387383113, + "venv/lib/python3.13/site-packages/pydantic_settings/exceptions.py": 18300876747412267999, + "venv/lib/python3.13/site-packages/pygments/lexers/wowtoc.py": 17527844575999013592, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sort_values.py": 12064896795288302730, + "frontend/src/lib/stores/__tests__/assistantChat.test.js": 11822882112255142537, + "venv/lib/python3.13/site-packages/pandas/tests/test_register_accessor.py": 16661086720613729974, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_indexing.py": 1926721846569184112, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_case_when.py": 4133174129660834805, + "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/test_from_dict.py": 4937173601709369119, + "venv/lib/python3.13/site-packages/numpy/lib/_format_impl.py": 1809069379864985298, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_integer.py": 16102640589300356639, + "venv/lib/python3.13/site-packages/pandas/core/frame.py": 2630807744775247533, + "venv/lib/python3.13/site-packages/pip/_internal/network/__init__.py": 1586148254475575526, + "venv/lib/python3.13/site-packages/PIL/CurImagePlugin.py": 17697303205012181529, + "venv/lib/python3.13/site-packages/gitdb/util.py": 645937410168583692, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_numba.py": 6409810497251251179, + "venv/lib/python3.13/site-packages/pyasn1/type/namedval.py": 8273171503516887681, + "venv/lib/python3.13/site-packages/starlette/middleware/gzip.py": 4321371046149637632, + "venv/lib/python3.13/site-packages/cffi/_imp_emulation.py": 17246725564704952212, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/models.py": 17870758731501836303, + "venv/lib/python3.13/site-packages/starlette/schemas.py": 697416731579555195, + "venv/lib/python3.13/site-packages/pandas/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/METADATA": 1266134223155266488, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/licenses/LICENSE": 11199044866758471950, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_util.py": 16024147572807865219, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_iteration.py": 15247340610412364508, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked_shared.py": 8453174300922339015, + "venv/lib/python3.13/site-packages/pandas/core/algorithms.py": 487939626203097713, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/plugin.py": 16042078006552521613, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/zip-safe": 15240312484046875203, + "venv/lib/python3.13/site-packages/dotenv/ipython.py": 15904966766060247908, + "frontend/src/lib/components/layout/__tests__/test_breadcrumbs.svelte.js": 1250794495161202602, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9207/parameter.py": 2793853093222900337, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/replace.py": 1708865864686705833, + "frontend/src/lib/components/translate/CorrectionCell.svelte": 14340498120654577399, + "dist/docker/frontend.1.2.0.tar.xz": 2118312929856113798, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py": 7019253290755243568, + "venv/lib/python3.13/site-packages/numpy/typing/__init__.py": 3608665862759745048, + "venv/lib/python3.13/site-packages/pandas/compat/__init__.py": 6077099417711209303, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_aggregate.py": 15038915958422670700, + "venv/lib/python3.13/site-packages/cffi/api.py": 5325821560978502135, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/nonce.py": 18219168479887197733, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_cut.py": 7800833253841657380, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_comparison.py": 5348781442514871089, + "venv/lib/python3.13/site-packages/urllib3/connectionpool.py": 7493427857878469165, + "venv/lib/python3.13/site-packages/pygments/lexers/markup.py": 10311057264960923433, + "venv/lib/python3.13/site-packages/packaging/_elffile.py": 9546225990833172494, + "venv/lib/python3.13/site-packages/_pytest/pastebin.py": 13946273207624603063, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/METADATA": 13633829318759752611, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/highlighter.py": 10615901258492570740, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/WHEEL": 5160964596297665692, + "backend/src/plugins/translate/orchestrator_lang_stats.py": 5713612003349083382, + "venv/lib/python3.13/site-packages/PIL/ImageTransform.py": 7825940907094338808, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/numerictypes.pyi": 15565573472138344755, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/repr.py": 839417422880281122, + "frontend/src/components/git/__tests__/git_manager.unfinished_merge.integration.test.js": 4508809242640248036, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_month.py": 14597470286884431085, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/RECORD": 9502524172853437600, + "venv/lib/python3.13/site-packages/websockets/http.py": 9406523480132204760, + "backend/src/plugins/translate/dictionary.py": 2903767700173238799, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/request.py": 10484280068366411541, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_year.py": 17441853503700184299, + "backend/src/core/cot_logger.py": 3113579786931231764, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/strptime.cpython-313-x86_64-linux-gnu.so": 12654188486128938170, + "venv/lib/python3.13/site-packages/pydantic/deprecated/json.py": 17692639396786690144, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/candidates.py": 5951912505933673835, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/__version__.py": 14138134075118474134, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/jose/jws.py": 11592462993417182096, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py": 13763154154862871596, + "venv/lib/python3.13/site-packages/pygments/lexers/felix.py": 2334148799642808111, + "venv/lib/python3.13/site-packages/anyio/functools.py": 4300781896135050327, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo_free.f90": 8821492401453445757, + "frontend/src/lib/components/reports/ReportCard.svelte": 13714680961668469204, + "venv/lib/python3.13/site-packages/anyio/streams/file.py": 15232345967545920863, + "venv/lib/python3.13/site-packages/attrs/validators.py": 10346563361083429998, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/revocation.py": 5718403706971163960, + "backend/git_repos/remote/test-repo.git/objects/aa/ea042a37c6f7bd010d91db93951328da7f01cc": 11936716919619613939, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/websockets_impl.py": 15673691977157706075, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_astype.py": 7542068949396266883, + "venv/lib/python3.13/site-packages/python_multipart/exceptions.py": 5971058243218049183, + "venv/lib/python3.13/site-packages/httpx/_status_codes.py": 1758440600462491839, + "frontend/build/_app/immutable/chunks/2dOUpm6k.js": 11811637653151731489, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/tools.py": 6437315459200419827, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_invalid.py": 2762344062554575805, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_cumulative.py": 15644124412739892167, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_non_compound.f90": 8048650253889213460, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/METADATA": 14126682758562488244, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/refresh_token.py": 17927903035152872556, + "venv/lib/python3.13/site-packages/keyring/testing/util.py": 11195868112805409554, + "venv/lib/python3.13/site-packages/pandas/tests/computation/test_compat.py": 11655000938111420543, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/array.py": 13840510238256626632, + "venv/lib/python3.13/site-packages/pygments/lexers/solidity.py": 5071425960622305629, + "venv/lib/python3.13/site-packages/pandas/tests/api/test_api.py": 13385690673368400635, + "venv/lib/python3.13/site-packages/pycparser/lextab.py": 16045770806700381661, + "venv/lib/python3.13/site-packages/fastapi/middleware/trustedhost.py": 4285622102799027823, + "venv/lib/python3.13/site-packages/git/refs/tag.py": 9979537867501757110, + "frontend/src/lib/i18n/index.ts": 2428391315568750665, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_delitem.py": 16538190861492829338, + "frontend/build/_app/immutable/chunks/DbvlB3FG.js": 9250036256942101295, + "backend/src/api/routes/translate/_dictionary_routes.py": 5480137091791704976, + "backend/src/models/config.py": 7631082065091961320, + "frontend/src/app.css": 3020720639702954139, + "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/exceptions.py": 11303331612406662162, + "venv/lib/python3.13/site-packages/jsonschema/tests/_suite.py": 6307666366417438489, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/prompt.py": 9561640601516933380, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel_editable.py": 14352954849821931255, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/declarative/__init__.py": 2436195108273216959, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/idnadata.py": 1169745920682458213, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/WHEEL": 3749476255729626245, + "venv/bin/normalizer": 10972303485259566838, + "venv/lib/python3.13/site-packages/pygments/styles/lovelace.py": 15082819162722685616, + "backend/src/services/rbac_permission_catalog.py": 1524462697902103767, + "venv/lib/python3.13/site-packages/numpy/_core/_type_aliases.py": 1644743742545329282, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_unicode_ddl.py": 2569618488804767890, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/py.typed": 9796674040111366709, + "venv/lib/python3.13/site-packages/numpy/_core/_dtype.pyi": 17662618580381221543, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_stack.py": 5316826578695144945, + "venv/lib/python3.13/site-packages/attr/_funcs.py": 5302917072419624193, + "venv/lib/python3.13/site-packages/numpy/linalg/lapack_lite.cpython-313-x86_64-linux-gnu.so": 11074560904305737689, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/validator_creation.py": 2745563768861102999, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/funcfortranname.pyf": 1361426175133186231, + "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/_gen_files.py": 6273314671315377131, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/events.py": 15099787454570172797, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_formats.py": 9738552308554950419, + "venv/lib/python3.13/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7": 17875236748140157032, + "venv/lib/python3.13/site-packages/pandas/core/api.py": 3390809109543982410, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_dialect.py": 4700488504252803159, "venv/lib/python3.13/site-packages/pygments/lexers/testing.py": 17148598391210353576, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE": 17675192170670564526, - "venv/lib/python3.13/site-packages/passlib/crypto/digest.py": 15890463288512025688, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/conftest.py": 6137462119729731945, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_append.py": 17016125916761365423, - "venv/lib/python3.13/site-packages/authlib/deprecate.py": 3563885283090710443, - "venv/lib/python3.13/site-packages/websockets/datastructures.py": 5180442040351387281, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_update_delete.py": 1317337950621091021, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_mixins.py": 12351373879926460719, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64-testset-1.csv": 5708101386018266998, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/numeric.pyi": 17785360553418386488, + "venv/lib/python3.13/site-packages/numpy/_core/__init__.py": 14951958843029076911, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/common.py": 10996276696597806957, + "venv/lib/python3.13/site-packages/keyring/compat/py312.py": 17581691618899404491, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py": 10843527833285941674, + "venv/lib/python3.13/site-packages/numpy/testing/_private/__init__.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_boxplot_method.py": 7635131059308651529, + "venv/lib/python3.13/site-packages/PIL/Image.py": 13615925856053031482, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_iloc.py": 16160558158155038350, + "frontend/src/routes/settings/automation/+page.svelte": 17397435134589275932, + "backend/src/core/auth/security.py": 8289703096420999159, + "venv/lib/python3.13/site-packages/ecdsa/test_pyecdsa.py": 14542286382742044648, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_repeat.py": 11360772447747837958, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_tz_convert.py": 13349243029437881949, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/METADATA": 15876173086384975957, + "venv/lib/python3.13/site-packages/pydantic/_internal/_discriminated_union.py": 1818179910730401509, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_doc.py": 7865575374100528149, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/RECORD": 16342326945648353387, + "venv/lib/python3.13/site-packages/pip/_internal/wheel_builder.py": 3893922370396791826, + "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py": 5995058808539530576, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_mrecords.py": 15952147778503828707, + "venv/lib/python3.13/site-packages/ecdsa/test_jacobi.py": 1249543655136186433, + "venv/lib/python3.13/site-packages/pandas/core/arrays/_arrow_string_mixins.py": 16862663427780315543, + "venv/lib/python3.13/site-packages/apscheduler/triggers/date.py": 9545774812177853725, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_easter.py": 3397863170068576196, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_series.py": 16418555817529711079, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/pickleable.py": 7712040860601343075, + "venv/lib/python3.13/site-packages/tzlocal/unix.py": 995019116408448073, + "venv/lib/python3.13/site-packages/gitdb/const.py": 14122142034887286559, + "venv/lib/python3.13/site-packages/PIL/PcxImagePlugin.py": 1691405132377495336, + "venv/lib/python3.13/site-packages/yaml/tokens.py": 2279161238859232338, + "venv/lib/python3.13/site-packages/pygments/lexers/rego.py": 16022844238903541738, + "venv/lib/python3.13/site-packages/pandas/util/__init__.py": 4070574585004336241, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein.py": 17993169044119596860, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/licenses/LICENSE": 5757922580822401219, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_reduction.py": 2671872764983553906, + "venv/lib/python3.13/site-packages/PIL/_version.py": 3025206805667405876, + "venv/lib/python3.13/site-packages/dateutil/zoneinfo/__init__.py": 10261654903106416888, + "venv/lib/python3.13/site-packages/pygments/lexers/gleam.py": 5161116162065925222, + "frontend/src/routes/dashboards/+page.svelte": 12050524336689510248, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS": 17022185907188244883, + "backend/src/models/dataset_review_pkg/_profile_models.py": 3121807680272913669, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_take.py": 9847808489301498487, + "backend/src/api/routes/git/_merge_routes.py": 2019590524299108754, + "backend/src/plugins/llm_analysis/plugin.py": 17227799960135116601, + "frontend/build/_app/immutable/chunks/C7eYvQrc.js": 190161940265310594, + "backend/git_repos/remote/test-repo.git/objects/38/0395343915d386a8d58774cc6c6677205065e8": 5481382229802988191, + "backend/tests/test_log_persistence.py": 11073909507089982937, + "venv/lib/python3.13/site-packages/pydantic/v1/utils.py": 902648247561165429, + "backend/src/core/migration/risk_assessor.py": 1061977005072298440, + "venv/lib/python3.13/site-packages/passlib/tests/test_totp.py": 9150389741890748343, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_loc.py": 17839380711970027363, + "venv/lib/python3.13/site-packages/uvicorn/middleware/asgi2.py": 5355343704425405009, + "venv/lib/python3.13/site-packages/pandas/core/arrays/floating.py": 1215586266958421991, + "venv/lib/python3.13/site-packages/pygments/styles/colorful.py": 15708848112363953394, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_antijoin.py": 14435396877404907826, + "backend/git_repos/remote/test-repo.git/objects/ee/59553241ef084b83d3351ba4c33caf2ed9a840": 11587106407031972706, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/validation": 13992741783834278677, + "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.pxd": 9126772093305708921, + "venv/lib/python3.13/site-packages/pygments/lexers/web.py": 11104721221615804497, + "venv/lib/python3.13/site-packages/uvicorn/loops/uvloop.py": 5385425357504191161, + "venv/lib/python3.13/site-packages/fastapi/_compat/may_v1.py": 9880083742927480960, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/markers.py": 8297667990263004097, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/block_docstring/foo.f": 2489756567993745076, + "venv/lib/python3.13/site-packages/ecdsa/errors.py": 11755424742691057760, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_sorting.py": 10523740688498427929, + "venv/include/site/python3.13/greenlet/greenlet.h": 16216120538647882082, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_interval.py": 8549680643865283913, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/np_datetime.pyi": 2884703536776830012, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_matplotlib.py": 12775850858284584296, + "venv/lib/python3.13/site-packages/jsonschema/_legacy_keywords.py": 16481666133229715822, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_math.h": 16701045088211015518, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_getlimits.py": 118041882543413669, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pipe.py": 7400355977900310233, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_object.py": 9215781825358309147, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_astype.py": 4854809596041987380, + "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/METADATA": 14543822270526146783, + "venv/lib/python3.13/site-packages/rapidfuzz/process.py": 3870006735299537016, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_chunksize.py": 7107619871245389835, + "venv/lib/python3.13/site-packages/numpy/f2py/rules.pyi": 1342380029484127983, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/common.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/greenlet/TMainGreenlet.cpp": 9489520001674089404, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/exceptions.py": 14982764273485726199, + "venv/lib/python3.13/site-packages/numpy/_core/einsumfunc.py": 11393954913234866059, + "venv/lib/python3.13/site-packages/itsdangerous/serializer.py": 14271229091461164933, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/token_validator.py": 13917237710752731397, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_federal.py": 16758212916399857971, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_asof.py": 18383318159051131669, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/dictionary.py": 9599439750713575741, + "frontend/src/services/storageService.js": 14408290095426695791, + "frontend/build/_app/immutable/chunks/CRVzg5g_.js": 16221258449455332676, + "backend/git_repos/remote/test-repo.git/hooks/pre-rebase.sample": 15693225890270078290, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/signals.py": 13677199634497673845, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py": 7624316342162916928, + "venv/lib/python3.13/site-packages/pandas/core/interchange/dataframe_protocol.py": 12857147443873820285, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_formats.py": 13500155167624433622, + "venv/bin/websockets": 12099863324306500376, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/assertions.py": 5556667947376168765, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arithmetic.py": 3209727509456212551, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_append.py": 9644955836191900614, + "frontend/src/lib/api.js": 1856641899861379694, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libsasl2-883649fd.so.3.0.0": 13306917506408577991, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/base.py": 13634605726041717070, + "frontend/src/routes/datasets/[id]/+page.svelte": 14911166036063098761, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_two_greenlets.py": 11156275429806391390, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi": 16048852379621461316, + "venv/lib/python3.13/site-packages/pandas/core/groupby/indexing.py": 18009437216172136227, + "venv/lib/python3.13/site-packages/pygments/lexers/theorem.py": 15666523910367201285, + "venv/lib/python3.13/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2": 5320647379976541240, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/default_styles.py": 4469204219504675080, + "venv/lib/python3.13/site-packages/cryptography/exceptions.py": 5173540025160237758, + "venv/lib/python3.13/site-packages/pydantic/_internal/_serializers.py": 12077180322353709930, + "venv/lib/python3.13/site-packages/pygments/lexers/ncl.py": 14838368780033177943, + "venv/lib/python3.13/site-packages/numpy/lib/_utils_impl.pyi": 15767546107856827543, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_resolution.py": 9651416588266430520, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/__init__.py": 11283047029180207588, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_common.py": 9446944526144164255, + "venv/lib/python3.13/site-packages/numpy/rec/__init__.py": 7467092880535460658, + "venv/lib/python3.13/site-packages/numpy/ma/extras.py": 7559838309481824664, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_file_buffer_url.py": 15377043158761455858, + "venv/lib/python3.13/site-packages/pandas/_libs/reshape.pyi": 88721900806893992, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/METADATA": 15658158392301945427, + "frontend/src/lib/api/translate.js": 18140498250896378509, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_warnings.py": 13071210233876253749, + "frontend/build/_app/immutable/chunks/DPLPFnYm.js": 2792883742193989670, + "venv/lib/python3.13/site-packages/sqlalchemy/pool/__init__.py": 4337679908168515343, + "venv/lib/python3.13/site-packages/pygments/styles/algol.py": 3040373291664740876, + "venv/lib/python3.13/site-packages/apscheduler/executors/pool.py": 10344126569001032241, + "venv/lib/python3.13/site-packages/referencing/jsonschema.py": 14596871117484757502, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_character.py": 17168707712220699738, + "venv/lib/python3.13/site-packages/jose/jwe.py": 3325660353225624025, + "venv/lib/python3.13/site-packages/pandas/io/sql.py": 12592024569011796790, + "venv/lib/python3.13/site-packages/PIL/SunImagePlugin.py": 7661622930404688367, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/METADATA": 3786116428839780263, + "venv/lib/python3.13/site-packages/pandas/_testing/_warnings.py": 5640964566228306285, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_numba.py": 1548992314517942530, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/__init__.py": 11009955319062089477, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_item.py": 17619314877770917080, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/RECORD": 16874983218652404911, + "venv/lib/python3.13/site-packages/pyasn1/compat/__init__.py": 5902203086150636670, + "venv/lib/python3.13/site-packages/pygments/lexers/_julia_builtins.py": 8846111188795315103, + "venv/lib/python3.13/site-packages/pandas/_libs/writers.cpython-313-x86_64-linux-gnu.so": 6878855127769203372, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_readlines.py": 15928258358116399067, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_truncate.py": 6478126371906156409, + "venv/lib/python3.13/site-packages/numpy/dtypes.py": 14128421398870718692, + "venv/lib/python3.13/site-packages/passlib/hash.py": 5238710192614935875, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_arithmetic.py": 14858832264660410908, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/METADATA": 5628172948035858892, + "venv/lib/python3.13/site-packages/smmap/util.py": 13276170835044840023, + "venv/lib/python3.13/site-packages/PIL/PdfImagePlugin.py": 16082854250442815862, + "venv/lib/python3.13/site-packages/git/objects/submodule/base.py": 10140490301897269395, + "venv/lib/python3.13/site-packages/pycparser/_ast_gen.py": 5464347629908906775, + "venv/lib/python3.13/site-packages/smmap/test/test_util.py": 5634593621291240094, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/licenses/LICENSE": 3509878235770224233, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/nested_secrets.py": 15691917061715429369, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_symbolic.py": 8093576026032854125, + "venv/lib/python3.13/site-packages/numpy/_core/_dtype_ctypes.py": 5564496700647900501, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/connection.py": 15405047955974108860, + "venv/lib/python3.13/site-packages/idna-3.11.dist-info/RECORD": 11541505360973709787, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_index_col.py": 17604191644943383567, + "frontend/src/lib/components/assistant/__tests__/assistant_chat.integration.test.js": 13047006106880121194, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_array.py": 11271807719833350332, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/histograms.pyi": 9255620158831643201, + "backend/src/core/utils/superset_context_extractor/_filters.py": 281666313889333545, + "venv/lib/python3.13/site-packages/authlib/__init__.py": 8957417237987377675, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_character.py": 850554362222586199, + "backend/src/api/routes/clean_release.py": 1984604735131504761, + "backend/src/services/auth_service.py": 17642785219801916280, + "venv/lib/python3.13/site-packages/websockets/asyncio/router.py": 15039562376314233669, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/stride_tricks.pyi": 8257977532799807847, + "venv/lib/python3.13/site-packages/numpy/_core/function_base.pyi": 8343632640078378312, + "venv/lib/python3.13/site-packages/pandas/core/interchange/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_pipe.py": 8255917221095334212, + "venv/lib/python3.13/site-packages/PIL/ImageChops.py": 16368812693381154921, + "venv/lib/python3.13/site-packages/pygments/styles/_mapping.py": 11752660241391232497, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_common.py": 10797243274520625867, + "venv/lib/python3.13/site-packages/fastapi/_compat/model_field.py": 392699021682253569, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_integrity.py": 12010564145080323987, + "venv/lib/python3.13/site-packages/pygments/styles/manni.py": 11853576691280294949, + "frontend/build/_app/immutable/nodes/14.Ww8U3eXX.js": 9188657451611180151, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_clip.py": 13498704233745189154, + "venv/lib/python3.13/site-packages/uvicorn/_compat.py": 2593000889619875759, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/metadata.py": 7204343250279221076, + "venv/lib/python3.13/site-packages/requests/compat.py": 5836590172733661320, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/WHEEL": 17410883677306885019, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalar_methods.py": 14881910898871057761, + "venv/lib/python3.13/site-packages/referencing/tests/test_core.py": 8280983300775878144, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_constructors.py": 13890224577680389718, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_tz_localize.py": 18409231586451494605, + "venv/lib/python3.13/site-packages/pyasn1/codec/ber/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/default.py": 7906029092844029127, + "venv/lib/python3.13/site-packages/fastapi/__init__.py": 11054203163075417954, + "venv/lib/python3.13/site-packages/pygments/lexers/inferno.py": 9056274496469409594, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/PIL/AvifImagePlugin.py": 1872412416505003364, + "venv/lib/python3.13/site-packages/sqlalchemy/event/attr.py": 5971663429221923939, + "backend/src/plugins/translate/orchestrator_cancel.py": 673611364664367049, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/matrix.pyi": 15667024840812783911, + "venv/lib/python3.13/site-packages/numpy/f2py/cfuncs.pyi": 8232620851756907417, + "venv/lib/python3.13/site-packages/pandas/tests/extension/json/array.py": 7437107031079833232, + "venv/lib/python3.13/site-packages/httpx/_transports/base.py": 6498990531443644896, + "venv/lib/python3.13/site-packages/ecdsa/test_curves.py": 6577762025900435885, + "venv/lib/python3.13/site-packages/pydantic/v1/validators.py": 1060954771151908883, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_na_indexing.py": 8712547126522523899, + "venv/lib/python3.13/site-packages/multipart/__init__.py": 6496114190873890851, "venv/lib/python3.13/site-packages/numpy/_core/tests/test_half.py": 3121836756584726126, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_period_range.py": 9598872514187524706, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_string.py": 11422235699126032386, + "venv/lib/python3.13/site-packages/pip/_internal/cli/req_command.py": 2887890799766730546, + "backend/git_repos/remote/test-repo.git/objects/cf/d2dcbd55735b8cedf21e04e64ac627c6f9a458": 10982669277486885525, + "venv/lib/python3.13/site-packages/numpy/f2py/crackfortran.pyi": 9206355685192026844, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py": 2285778903282667561, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_defchararray.py": 15135904718007443306, + "venv/lib/python3.13/site-packages/idna-3.11.dist-info/WHEEL": 8600534672961461758, + "venv/lib/python3.13/site-packages/pygments/lexers/monte.py": 15158829991357994573, + "venv/lib/python3.13/site-packages/pygments/lexers/gcodelexer.py": 13712494327007684318, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/adapters.py": 2224938661429637508, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/horizontal_shard.py": 17615732108308858890, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/METADATA": 317417773265681256, + "venv/lib/python3.13/site-packages/pygments/lexers/kuin.py": 2818054539831699366, + "backend/src/models/dataset_review_pkg/_session_models.py": 3332173837386512819, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/mod.pyi": 10591120373577657317, + "venv/lib/python3.13/site-packages/attrs/setters.py": 5775359015245600592, + "venv/lib/python3.13/site-packages/numpy/f2py/_src_pyf.py": 546976622482819095, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/__init__.py": 12290228927283601067, + "backend/src/plugins/git_plugin.py": 13646960709476277927, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pyasn1/codec/ber/encoder.py": 8912119133548489544, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_shape_base.py": 8837845103338426570, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_tz_convert.py": 17957207974799052653, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_periodindex.py": 13430003945574795792, + "backend/src/core/config_models.py": 4264626520931642357, + "venv/bin/activate.csh": 14513616043256836238, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/authorization_server.py": 13696038495666024258, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/connection.py": 5582413226288987808, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_tokenizer.py": 7994281991455916540, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arithmetic.pyi": 10265823318697442495, + "venv/lib/python3.13/site-packages/greenlet/greenlet_msvc_compat.hpp": 12504008513945919250, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/indexable.py": 4131796922597075758, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_asfreq.py": 12721047184483392773, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/conftest.py": 16571782049241458769, + "scripts/gen_semantics.py": 11397714264377363083, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/etcd.py": 4078354986605069279, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/transforms.py": 3773159138960141434, + "venv/lib/python3.13/site-packages/tzlocal/utils.py": 7893867974548929154, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/__main__.py": 6480933938145689964, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/poly1305.py": 10854598965202354516, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_constructors.py": 6515602441449955627, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_reductions.py": 2816859231048302619, + "venv/lib/python3.13/site-packages/numpy/lib/_version.py": 15294708923334674060, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_formats.py": 13752366280743004410, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/interfaces.py": 4890958419958257958, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/util.cpython-313-x86_64-linux-gnu.so": 12473903676666680134, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/build_tracker.py": 9389444024234384408, + "venv/lib/python3.13/site-packages/httpcore/_async/interfaces.py": 18250473733460571816, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py": 14946223589457772924, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_histograms.py": 47631283818191049, + "venv/lib/python3.13/site-packages/pandas/core/indexes/datetimelike.py": 4356700619632833878, + "venv/lib/python3.13/site-packages/cffi/lock.py": 13507686939203117974, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_where.py": 14167991754625133668, + "venv/lib/python3.13/site-packages/cryptography/fernet.py": 10137792148038140630, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_fillna.py": 4610666845291315333, + "frontend/src/services/taskService.js": 11368052191249479533, + "backend/src/services/clean_release/compliance_execution_service.py": 3379474749353250488, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/wheel.py": 13979536782410081712, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/__init__.py": 1197579313959289096, + "venv/lib/python3.13/site-packages/pydantic/v1/parse.py": 5875950480538559709, + "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/accessor.py": 8373575175447947401, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_api.py": 10514120091521589282, + "venv/lib/python3.13/site-packages/pip/_internal/self_outdated_check.py": 991029278889407558, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/base.py": 14908084548919567658, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_datetime.py": 7456744745424297814, + "venv/lib/python3.13/site-packages/cffi/vengine_gen.py": 6582900613549620556, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkrb5support-d0bcff84.so.0.1": 16819924515291719993, + "venv/lib/python3.13/site-packages/pandas/_libs/index.pyi": 17679349633640606985, + "venv/lib/python3.13/site-packages/pandas/tests/base/__init__.py": 15130871412783076140, + "backend/src/plugins/translate/__tests__/test_orthogonal_fixes.py": 15839990777181837988, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_defmatrix.py": 2982572083770917411, + "venv/lib/python3.13/site-packages/pydantic/tools.py": 8931184638883701008, + "venv/lib/python3.13/site-packages/pandas/tests/libs/test_join.py": 5982692266872978444, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/__init__.py": 15340047930888693984, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ndarray.pyi": 14369009813591437391, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_skew.py": 5276102682005383261, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_concat.py": 10207975532842927134, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/basereload.py": 14479857245734482609, + "backend/git_repos/remote/test-repo.git/objects/99/38d17c3f4199e53e4d4ebc253fe9c840caa505": 8414792171590415839, + "backend/src/plugins/search.py": 888817404897740233, + "venv/lib/python3.13/site-packages/cryptography/x509/general_name.py": 4481582226129488535, + "backend/git_repos/remote/test-repo.git/hooks/pre-push.sample": 8029776382195911768, + "venv/lib/python3.13/site-packages/pip/_internal/network/session.py": 293771075394156394, + "venv/lib/python3.13/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4": 2483101806045986252, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_offsets_properties.py": 2340780879864207500, + "venv/lib/python3.13/site-packages/numpy/f2py/auxfuncs.py": 2234931733687557433, + "venv/lib/python3.13/site-packages/pandas/core/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/util.py": 2176177435997659667, + "venv/lib/python3.13/site-packages/numpy/random/_mt19937.pyi": 15904463104068500379, + "venv/lib/python3.13/site-packages/_pytest/tracemalloc.py": 5530234062530858720, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mysqldb.py": 2138006249556140141, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_selectable_constructors.py": 84919308502240880, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py": 6509914623926583629, + "venv/lib/python3.13/site-packages/urllib3/http2/probe.py": 4069929463671970243, + "venv/lib/python3.13/site-packages/pygments/lexers/pointless.py": 17552020039609007881, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/WHEEL": 7145482834744213753, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__ufunc_api.h": 4516275133897904047, + "frontend/src/components/RepositoryDashboardGrid.svelte": 14921738329941705036, + "frontend/build/_app/immutable/nodes/3.BHgbzLHa.js": 8892570056432734626, + "frontend/build/_app/immutable/chunks/DsnmJJEf.js": 17416107759626312632, + "venv/lib/python3.13/site-packages/httpx/_exceptions.py": 18399489130669465891, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py": 18325640697829098192, + "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/__init__.py": 12911374670789466961, + "venv/lib/python3.13/site-packages/gitdb/fun.py": 55226330810782184, + "venv/lib/python3.13/site-packages/pydantic/_internal/_repr.py": 1758478941817868344, + "venv/lib/python3.13/site-packages/pandas/_libs/window/aggregations.pyi": 6072607880689125113, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_join.py": 4213933887062089605, + "venv/lib/python3.13/site-packages/PIL/FliImagePlugin.py": 13364963053197422923, + "backend/src/models/storage.py": 1218824901001897736, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi": 10784666243744187693, + "venv/lib/python3.13/site-packages/apscheduler/executors/base.py": 1980520974511822101, + "venv/lib/python3.13/site-packages/numpy/polynomial/_polytypes.pyi": 7528777458251688517, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/chararray.pyi": 9683985931409244216, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/discovery.py": 12479996594187326798, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_both.f90": 13943066317159236257, + "venv/lib/python3.13/site-packages/websockets/utils.py": 17624459810483092475, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cosh.csv": 9287774220881887502, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval_tree.py": 15789443159423302291, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_series_equal.py": 1223890028205011021, + "venv/lib/python3.13/site-packages/pip/_internal/cli/index_command.py": 15798187258841839292, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multithreading.py": 12547048606098186681, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_unique.py": 3148372351781648868, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_astype.py": 11995587502880659624, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_regression.py": 4611768764484593979, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_common.py": 12064185052519470358, + "frontend/src/routes/settings/connections/+page.svelte": 276661107137418305, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/decl_class.py": 6328411894571735935, + "backend/src/api/routes/dashboards/_schemas.py": 10686942001147126057, + "venv/lib/python3.13/site-packages/greenlet/TThreadState.hpp": 15599148954148720463, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_resolution.py": 6076761538303762297, + "backend/src/api/routes/translate/_preview_routes.py": 16234500901707822839, + "backend/src/services/clean_release/manifest_builder.py": 5683864742902531449, + "venv/lib/python3.13/site-packages/pip/_internal/cli/parser.py": 1064209424435927674, + "venv/lib/python3.13/site-packages/pandas/core/arrays/numeric.py": 17834058423729918687, + "venv/lib/python3.13/site-packages/pygments/styles/trac.py": 13968346768164381833, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py3-objarr.npy": 17303060773267383537, + "backend/src/services/dataset_review/orchestrator_pkg/_helpers.py": 11613130235340753050, + "backend/src/plugins/translate/preview_session_serializer.py": 8901687711861433007, + "venv/lib/python3.13/site-packages/pandas/core/indexes/timedeltas.py": 13653393430363556843, + "venv/lib/python3.13/site-packages/pip/_internal/utils/hashes.py": 17310331665429541812, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_validators.py": 14178329676643700151, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_elffile.py": 5728213398707817049, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_month.py": 1613806538807726074, + "venv/lib/python3.13/site-packages/_pytest/pytester.py": 5423287282155948827, + "venv/lib/python3.13/site-packages/pandas/_libs/pandas_parser.cpython-313-x86_64-linux-gnu.so": 18056339336364727359, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/compiler.py": 11662494978292401568, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/__init__.py": 3619091571279924576, + "venv/lib/python3.13/site-packages/charset_normalizer/cli/__main__.py": 2148876100501691980, + "venv/lib/python3.13/site-packages/pygments/lexers/dns.py": 17149871769553794654, + "frontend/src/routes/datasets/review/[id]/__tests__/dataset_review_workspace.ux.test.js": 4105775024258653726, + "venv/lib/python3.13/site-packages/fastapi/openapi/docs.py": 16735218221639179927, + "venv/lib/python3.13/site-packages/numpy/tests/test_scripts.py": 5790352482583964348, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_raises.py": 9678418010293693275, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/__init__.py": 8807410829260170597, + "venv/lib/python3.13/site-packages/pydantic/annotated_handlers.py": 10186120300163345360, + "venv/lib/python3.13/site-packages/keyring/backends/SecretService.py": 17482492072907438453, + "venv/lib/python3.13/site-packages/gitdb/utils/encoding.py": 1668793658272579497, + "backend/src/services/notifications/__tests__/test_notification_service.py": 2377464079178202565, + "venv/lib/python3.13/site-packages/numpy/f2py/__init__.pyi": 3566887042414273892, + "backend/src/models/dataset_review_pkg/_filter_models.py": 8426742165406106645, + "venv/lib/python3.13/site-packages/pandas/core/interchange/buffer.py": 12961802206383700922, + "backend/src/api/routes/translate/_metrics_routes.py": 13468336445030118059, + "venv/lib/python3.13/site-packages/ecdsa/__init__.py": 6237633580090653788, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/strptime.pyi": 5973671421648618563, + "venv/lib/python3.13/site-packages/pygments/lexers/mime.py": 7768464764849718825, + "backend/src/plugins/translate/service_inline_correction.py": 11066393548140180037, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_autocorr.py": 1092316868398391792, + "frontend/build/_app/immutable/nodes/29.DWx1nvfs.js": 9709484005787767021, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/errors.py": 10750605030539582738, + "backend/src/plugins/llm_analysis/service.py": 5318741399446187226, + "frontend/src/components/Toast.svelte": 4155277822937119359, + "venv/lib/python3.13/site-packages/charset_normalizer/legacy.py": 1706599349563920562, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_label_or_level_utils.py": 3423644585913150841, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi": 18143251582901996072, + "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/__init__.py": 4390908730288159455, + "venv/lib/python3.13/site-packages/pygments/lexers/scripting.py": 4167168074165473790, + "backend/src/plugins/translate/dictionary_crud.py": 17858252266960667195, + "venv/lib/python3.13/site-packages/greenlet/tests/leakcheck.py": 10179165748538820557, + "venv/lib/python3.13/site-packages/anyio/_core/_sockets.py": 10525237827959090532, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py": 5071697837617938064, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata.py": 2021612995853910808, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/instrumentation.py": 14882045449667214075, + "venv/lib/python3.13/site-packages/fastapi/middleware/cors.py": 7452860773712601508, + "venv/lib/python3.13/site-packages/pandas/compat/numpy/function.py": 18405870240333383757, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/WHEEL": 9788895026336324100, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_slp_switch.py": 16490710972475154509, + "venv/lib/python3.13/site-packages/PIL/ImageFilter.py": 10974179993355630141, + "venv/lib/python3.13/site-packages/numpy/_core/records.pyi": 14194354215405544730, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/sqlalchemy.py": 811968833735951956, + "frontend/src/routes/reports/llm/[taskId]/report_page.contract.test.js": 4825093389030464765, + "backend/src/plugins/translate/orchestrator_exec.py": 16849763962423948658, + "backend/src/plugins/translate/__tests__/test_executor.py": 14442607617569532284, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/boa.py": 14409319610243925864, + "dist/docker/ss-tools.1.1.0.tar.xz": 14627825683119220800, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_logical_ops.py": 16166386974005224415, + "venv/lib/python3.13/site-packages/numpy/_core/_multiarray_umath.cpython-313-x86_64-linux-gnu.so": 2888939866336522308, + "backend/git_repos/remote/test-repo.git/objects/c5/b992984fe856bd81206304a881faa3087937cf": 2441623644664166468, + "venv/lib/python3.13/site-packages/starlette/endpoints.py": 3379755567024530053, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_constructors.py": 7466113171256856591, + "venv/lib/python3.13/site-packages/_pytest/_code/source.py": 9488112979192923739, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_generator_mt19937.py": 7299586490442539723, + "venv/lib/python3.13/site-packages/pydantic/type_adapter.py": 10162988530225478692, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/random/_sfc64.pyi": 3536657185495782642, + "venv/lib/python3.13/site-packages/dateutil/utils.py": 7067026915090881998, + "venv/lib/python3.13/site-packages/pygments/plugin.py": 18006138132596504101, + "venv/lib/python3.13/site-packages/pandas/_libs/arrays.cpython-313-x86_64-linux-gnu.so": 8634234308863090562, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/align.py": 6078666505647454830, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_normalize.py": 7378656958631172603, + "venv/lib/python3.13/site-packages/keyring/util/platform_.py": 16978095707950463638, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/datonly.f90": 10495925225338237742, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby_subclass.py": 5540948578269213810, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/collections.pyx": 17138729833735744777, + "backend/tests/test_task_manager.py": 1706217361689506763, + "backend/git_repos/remote/test-repo.git/objects/79/b070ad8af7bbc12169f7660d2a7a72ec7a889a": 8153595714065675791, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_function.py": 14142346897145169685, + "venv/lib/python3.13/site-packages/fastapi/openapi/utils.py": 9058442333718187759, + "venv/lib/python3.13/site-packages/numpy/lib/_arraypad_impl.py": 6348811074249398741, + "venv/lib/python3.13/site-packages/pyasn1/type/base.py": 6801504886392649787, + "venv/lib/python3.13/site-packages/PIL/GimpPaletteFile.py": 2040459799887417392, + "venv/lib/python3.13/site-packages/requests/adapters.py": 17161109043243436200, + "backend/src/services/clean_release/repositories/artifact_repository.py": 9040122866024534865, + "venv/lib/python3.13/site-packages/psycopg2/_json.py": 9729420372294281405, + "venv/lib/python3.13/site-packages/greenlet/tests/test_stack_saved.py": 7767924647054186572, + "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.cpython-313-x86_64-linux-gnu.so": 16604252871044637047, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arctanh.csv": 8620268345075425735, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/resolver.py": 9931394693284776391, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_formats.py": 18080627205081311773, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timedeltas.pyi": 3783371827926657291, + "venv/lib/python3.13/site-packages/websockets/sync/router.py": 10335595955948355382, + "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_algorithms.py": 15219408648894515493, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py": 17873236864291624476, + "venv/lib/python3.13/site-packages/jaraco/classes/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/__init__.py": 237070345717942041, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_ddl.py": 3690189094298044728, + "venv/lib/python3.13/site-packages/referencing/_attrs.pyi": 10030665705880994025, + "venv/lib/python3.13/site-packages/httpcore/_sync/connection.py": 1539337414493486168, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_datetime.py": 13781712980921881470, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/RECORD": 7810411361439269754, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/WHEEL": 15858869568085970864, + "frontend/src/components/TaskLogViewer.svelte": 11262767195652916566, + "backend/src/models/filter_state.py": 6470311179852241297, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/themes.py": 6451091097727599550, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arrayprint.pyi": 2424868797160722318, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/__init__.py": 15130871412783076140, + "backend/conftest.py": 16521922883434363388, + "frontend/src/routes/dashboards/[id]/components/DashboardTaskHistory.svelte": 8800115118935646769, + "venv/lib/python3.13/site-packages/pandas/core/_numba/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE": 16499431172938528491, + "frontend/build/_app/immutable/chunks/B90ABsQ9.js": 13613302137140904970, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_windows.py": 13341168721223961872, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arctan.csv": 4581185622290535488, + "venv/lib/python3.13/site-packages/pandas/tests/extension/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/RECORD": 5169907629260560698, + "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension_cpp.cpp": 4590574206187223887, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/pubprivmod.f90": 8680230823849248800, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_nlargest_nsmallest.py": 11049656379959696695, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/provision.py": 2676876852726658063, + "backend/src/services/clean_release/repositories/candidate_repository.py": 14784344453820731941, + "venv/lib/python3.13/site-packages/ecdsa/test_keys.py": 17117188373419689467, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo.f": 5690596225005490325, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/mod_derived_types.f90": 2556756676983488922, + "venv/lib/python3.13/site-packages/numpy/matlib.pyi": 8017902013455539981, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/__init__.py": 13749066369790839334, + "venv/lib/python3.13/site-packages/pydantic/py.typed": 15130871412783076140, + "frontend/src/components/llm/DocPreview.svelte": 25645090129568414, + "backend/src/services/resource_service.py": 1414472862621734532, + "backend/src/plugins/git/llm_extension.py": 9347391649685791102, + "venv/lib/python3.13/site-packages/pip/_internal/locations/_sysconfig.py": 4773855595767526182, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/dotenv.py": 5872848911499749500, + "venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py": 6853955946028131785, + "venv/lib/python3.13/site-packages/pandas/io/sas/__init__.py": 8095743504390517992, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh22648.pyf": 15094859289098837494, + "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_timedelta.py": 364160935264757405, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/AUTHORS": 10073225185964928425, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_timezones.py": 15157687716502574038, + "venv/lib/python3.13/site-packages/attr/_next_gen.py": 16353246941851015420, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_nep50_promotions.py": 6318578947214302182, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/accessors.py": 12743680296510533030, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/signals.py": 10390443713463805090, + "venv/lib/python3.13/site-packages/_pytest/_code/__init__.py": 6211607282116942091, + "venv/lib/python3.13/site-packages/pandas/tseries/__init__.py": 2648641118117738895, + "venv/lib/python3.13/site-packages/PIL/PaletteFile.py": 4104323659569809769, + "venv/lib/python3.13/site-packages/pyasn1/codec/ber/decoder.py": 12653470212935324322, + "venv/lib/python3.13/site-packages/typing_inspection/introspection.py": 13916695705179237047, + "venv/lib/python3.13/site-packages/pip/_vendor/__init__.py": 11734104142988812647, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufuncs.pyi": 14995898537484305307, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_os.h": 7883047506449405400, + "venv/lib/python3.13/site-packages/passlib/tests/test_apps.py": 10454136535890937237, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_reductions.py": 3227705565578016389, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_cell_widths.py": 5724379364993806351, + "venv/lib/python3.13/site-packages/pandas/core/ops/__init__.py": 4049432353810047365, + "venv/lib/python3.13/site-packages/jaraco/context/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/licenses/LICENSE": 2345070715845618109, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_constructors.py": 9478848417896027917, + "backend/src/core/task_manager/__init__.py": 15991802770215124472, + "backend/src/api/routes/translate/_helpers.py": 13265933139767815312, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/row.py": 9763935103055608874, + "backend/src/services/clean_release/enums.py": 7365670144442292671, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_timer.py": 8196003526646080498, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/__init__.py": 15130871412783076140, + "backend/src/services/clean_release/repositories/policy_repository.py": 10990781278715170404, + "backend/src/plugins/translate/_llm_http.py": 13936219393017392941, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/processors.pyx": 7085380878820747579, + "venv/lib/python3.13/site-packages/PIL/_util.py": 17116054813914373606, + "venv/lib/python3.13/site-packages/numpy/fft/__init__.pyi": 10354990065626209946, + "venv/lib/python3.13/site-packages/pygments/lexers/lilypond.py": 1088755646568511197, + "venv/lib/python3.13/site-packages/urllib3/util/ssl_match_hostname.py": 7411350247004265632, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/WHEEL": 2823347510103459191, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/styled.py": 8726407298858811635, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/RECORD": 10552906886624188222, + "venv/lib/python3.13/site-packages/websockets/sync/connection.py": 2791040669094103200, + "venv/lib/python3.13/site-packages/websockets/legacy/server.py": 5390090919193784186, + "venv/lib/python3.13/site-packages/pandas/core/indexes/datetimes.py": 14331984919364185787, + "venv/lib/python3.13/site-packages/pyasn1/type/univ.py": 7163437624197683039, + "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/__init__.py": 8811477458865810434, + "frontend/build/_app/immutable/nodes/0.BPAWJ_4K.js": 14702605435993783864, + "venv/lib/python3.13/site-packages/pandas/io/formats/__init__.py": 18140261896107421679, + "venv/lib/python3.13/site-packages/charset_normalizer/md__mypyc.cpython-313-x86_64-linux-gnu.so": 12629680116730190225, + "backend/src/core/utils/dataset_mapper.py": 13413818977924738147, + "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_spec_conformance.py": 16448324304809345527, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_all_methods.py": 18227706645906325527, + "frontend/build/_app/immutable/chunks/C3s8enYH.js": 9141759639804281041, + "venv/lib/python3.13/site-packages/keyring/backend_complete.zsh": 14339032329370660432, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/__init__.py": 6654484356035994666, + "venv/lib/python3.13/site-packages/ecdsa/ellipticcurve.py": 15624510849346629163, + "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/__init__.py": 17630019785411546070, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/applicator": 6870991911243684132, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_emoji_replace.py": 8166203537440976347, + "venv/lib/python3.13/site-packages/pandas/_config/localization.py": 11197430792343731762, + "venv/lib/python3.13/site-packages/numpy/version.py": 1497063540123613501, + "venv/lib/python3.13/site-packages/sqlalchemy/pool/events.py": 13473858896579666058, + "backend/src/plugins/mapper.py": 1970475023222782681, + "venv/lib/python3.13/site-packages/jaraco/classes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_polynomial.py": 3049262771098624825, + "venv/lib/python3.13/site-packages/pip/__main__.py": 574438877257676911, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cpu_dispatcher.py": 2063037275809439611, + "venv/lib/python3.13/site-packages/pandas/tests/generic/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/dtypes.pyi": 6713822658171717369, + "venv/lib/python3.13/site-packages/pandas/io/excel/_calamine.py": 13354427767660487637, + "venv/lib/python3.13/site-packages/pandas/core/internals/concat.py": 12151675567885981464, + "venv/lib/python3.13/site-packages/numpy/_core/numeric.py": 12261531924304979741, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/sum_.py": 7062070517544958546, + "venv/lib/python3.13/site-packages/ecdsa/ecdh.py": 12596317261561755793, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_reindex.py": 15794750188594767026, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py": 9888795404090331319, + "venv/lib/python3.13/site-packages/pandas/_libs/indexing.pyi": 90995502095752726, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/casting.py": 12226803454582253097, + "venv/lib/python3.13/site-packages/pygments/lexers/ldap.py": 17455983150181177257, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/quoted_character/foo.f": 15318083678609435813, + "venv/bin/pyrsa-priv2pub": 16766314338551408621, + "venv/lib/python3.13/site-packages/numpy/random/_pcg64.cpython-313-x86_64-linux-gnu.so": 5759445712745875888, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/min_max_.py": 13457611930368041821, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-np0-objarr.npy": 1615546603475261360, + "venv/lib/python3.13/site-packages/authlib/common/errors.py": 16082974228565515177, + "venv/lib/python3.13/site-packages/pip/_internal/utils/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/core/overrides.pyi": 1968648615494204783, + "venv/lib/python3.13/site-packages/dotenv/parser.py": 17651523026132242005, + "venv/lib/python3.13/site-packages/passlib/apps.py": 4633269405597895766, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_categorical.py": 12897027063618569795, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_dtypes.py": 2313400030798822026, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_almost_equal.py": 9333355453468475330, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_interval.py": 2911379732293827726, + "venv/lib/python3.13/site-packages/pygments/lexers/configs.py": 7712797939104760185, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_endian.h": 2761502363895204652, + "frontend/src/lib/components/assistant/__tests__/assistant_first_message.integration.test.js": 16494645867501045726, + "backend/src/core/task_manager/manager.py": 31861937937351404, + "venv/lib/python3.13/site-packages/numpy/_utils/_convertions.py": 12886275429547303345, + "backend/src/models/dataset_review_pkg/_finding_models.py": 17608383421420046491, + "backend/git_repos/remote/test-repo.git/refs/heads/feature/e2e-update": 9577764946931187657, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_construction.py": 6564829381134214401, + "backend/git_repos/remote/test-repo.git/objects/5a/82ef700fef88b69cd480e4025283809496ee20": 7003383965314354150, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_construction.py": 10619501873883861745, + "venv/lib/python3.13/site-packages/greenlet/TBrokenGreenlet.cpp": 10822436772777706192, + "venv/lib/python3.13/site-packages/_pytest/cacheprovider.py": 5114545353355728201, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_apply.py": 12349190935180702377, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data": 9599129816090399315, + "frontend/build/_app/immutable/chunks/E7GrCWq7.js": 3260953078626904174, + "venv/lib/python3.13/site-packages/passlib/crypto/digest.py": 15890463288512025688, + "venv/lib/python3.13/site-packages/pygments/lexers/yara.py": 17510792615476493957, + "venv/lib/python3.13/site-packages/requests/__version__.py": 6677532709758546816, + "venv/lib/python3.13/site-packages/pandas/tests/test_optional_dependency.py": 7930709646653025355, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/RECORD": 9461427699726982537, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/multiarray.pyi": 6368268452184570195, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_chebyshev.py": 8054411443686791426, + "venv/lib/python3.13/site-packages/attr/_compat.py": 4016698632899969390, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/__init__.py": 11121941644106061453, + "venv/lib/python3.13/site-packages/pydantic/_internal/_forward_ref.py": 10623110912945011703, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_timezones.py": 8042029178538467146, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_map.py": 10769974470610467636, + "venv/lib/python3.13/site-packages/passlib/tests/sample1.cfg": 9597283806285213340, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_latex.py": 2628895559914914693, + "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/tokens_mixins.py": 9923721909178724437, + "venv/lib/python3.13/site-packages/passlib/tests/_test_bad_register.py": 5446848310854472376, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_freq_attr.py": 17290447066681837965, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/WHEEL": 13347410390513723930, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/WHEEL": 7314207500206292683, + "venv/lib/python3.13/site-packages/httpx/_types.py": 12461152436147308761, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/memory.py": 9947113720821563254, + "venv/lib/python3.13/site-packages/apscheduler/executors/tornado.py": 6635576580306890718, + "venv/lib/python3.13/site-packages/fastapi/exceptions.py": 12665775976182239091, + "venv/lib/python3.13/site-packages/numpy/_core/umath.py": 6132761780113682667, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/token.py": 11655733747403312358, + "venv/lib/python3.13/site-packages/pandas/tests/api/test_types.py": 8889829773923216769, + "venv/lib/python3.13/site-packages/pandas/io/parsers/python_parser.py": 7297059565749331767, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/WHEEL": 13232065379159720345, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/json.py": 4660603129768960095, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_align.py": 10284128457194204574, + "venv/lib/python3.13/site-packages/pygments/lexers/verifpal.py": 9190813166686923928, + "venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py": 16951268065271931235, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rank.py": 5817408252050193538, + "frontend/src/lib/components/translate/TranslationRunGlobalIndicator.svelte": 16210598715819306972, + "backend/src/api/routes/assistant/__init__.py": 14959302162073618175, + "backend/src/services/profile_service.py": 7430451608615934464, + "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/WHEEL": 5179340427739743287, + "venv/lib/python3.13/site-packages/httpcore/_sync/http11.py": 5947339024588907032, + "venv/lib/python3.13/site-packages/numpy/_utils/__init__.py": 7731065084036767848, + "venv/lib/python3.13/site-packages/pygments/lexers/zig.py": 470431199354307668, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_parse_iso8601.py": 9100947620267156161, + "venv/lib/python3.13/site-packages/pydantic/_internal/_utils.py": 10936299012115637790, + "frontend/src/routes/profile/__tests__/profile-settings-state.integration.test.js": 3674649277514557450, + "venv/lib/python3.13/site-packages/numpy/_core/fromnumeric.pyi": 13945478633722616250, + "venv/lib/python3.13/site-packages/jeepney/low_level.py": 6546206679858571608, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/markers.py": 5247208668583898949, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/scalars.py": 3468820466230647963, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/collections.py": 16114931075157411913, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_numpy.py": 4073641912755651877, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/METADATA": 11557342107649194148, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/licenses/LICENSE": 3868190977070717994, + "venv/lib/python3.13/site-packages/pandas/core/internals/blocks.py": 6448406236246476333, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_logical.py": 6818185860296232476, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/httpcore/_backends/trio.py": 8394426709857317737, + "venv/lib/python3.13/site-packages/pygments/lexers/installers.py": 5083244110640899732, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel_legacy.py": 12735901522735836481, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py": 15644105878811738516, + "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi": 3254633032236269842, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_internals.py": 10472508540875131797, + "venv/lib/python3.13/site-packages/numpy/core/numeric.py": 17025007229779320230, + "venv/lib/python3.13/site-packages/pygments/lexers/typst.py": 8883289726601667104, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x86_unix.h": 13709837360414450184, + "venv/lib/python3.13/site-packages/numpy/tests/test_public_api.py": 11741922758622705449, + "venv/lib/python3.13/site-packages/pygments/lexers/ecl.py": 12886695201994337568, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/zookeeper.py": 4318643109309626098, + "venv/lib/python3.13/site-packages/pandas/tests/computation/test_eval.py": 2921337784087808487, + "venv/lib/python3.13/site-packages/httpcore/_ssl.py": 6665087294869504820, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/dtype.py": 9342837412280377086, + "venv/lib/python3.13/site-packages/pandas/_libs/parsers.pyi": 18402185996588014111, + "venv/lib/python3.13/site-packages/pygments/lexers/vyper.py": 6477559246065994199, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/console.py": 3540660073442483692, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/licenses/LICENSE": 6653202620765194772, + "venv/lib/python3.13/site-packages/numpy/_utils/_convertions.pyi": 362674842164060822, + "venv/lib/python3.13/site-packages/pygments/styles/__init__.py": 18383248976818885498, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/WHEEL": 16784970174376303810, + "venv/lib/python3.13/site-packages/pygments/lexers/ml.py": 7510453371068494792, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/sync.py": 6189260178302531376, + "frontend/build/_app/immutable/chunks/BQZKMTAB.js": 16299439739655813122, + "venv/lib/python3.13/site-packages/passlib/handlers/mssql.py": 2800599582708170195, + "backend/src/core/task_manager/persistence.py": 7896628499516364250, + "venv/lib/python3.13/site-packages/anyio/streams/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timedeltas.cpython-313-x86_64-linux-gnu.so": 17089839649971421164, + "frontend/src/components/MappingTable.svelte": 17937756426921453860, + "backend/src/plugins/__init__.py": 17194112070692432889, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_setitem.py": 2059440410065814114, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_cumulative.py": 6346947559103505068, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_arithmetic.py": 4858019700859362660, + "venv/lib/python3.13/site-packages/numpy/random/_philox.cpython-313-x86_64-linux-gnu.so": 9916143171057774705, + "venv/lib/python3.13/site-packages/attrs/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_interaction.py": 12216477658994324787, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/METADATA": 15987199384245264478, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalar_ctors.py": 631744056514965940, + "venv/lib/python3.13/site-packages/sqlalchemy/pool/impl.py": 4687705587963980337, + "backend/src/api/routes/assistant/_llm_planner.py": 444517242115816139, + "backend/src/services/clean_release/approval_service.py": 15944489428318420008, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/color.py": 15062855556511243610, + "backend/src/core/utils/fileio.py": 5783081738676692209, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh17859.f": 13562390882286135024, + "venv/lib/python3.13/site-packages/pip/_internal/commands/hash.py": 11824898770873127699, + "venv/lib/python3.13/site-packages/pandas/tests/extension/list/__init__.py": 10072943986583771248, + "venv/lib/python3.13/site-packages/dateutil/tz/_factories.py": 7538654189286887518, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/styles/__init__.py": 9482393721453335937, + "venv/lib/python3.13/site-packages/pycparser/plyparser.py": 5251740466238035035, + "venv/lib/python3.13/site-packages/click/shell_completion.py": 5858110451169927373, + "venv/lib/python3.13/site-packages/urllib3/connection.py": 12761371748350595804, + "frontend/src/lib/components/reports/__tests__/reports_page.integration.test.js": 16463062768004950066, + "backend/tests/services/clean_release/test_demo_mode_isolation.py": 1970652424726919519, + "venv/lib/python3.13/site-packages/click/_compat.py": 14451519072991457993, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/wrapper.py": 14599195010683170123, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/RECORD": 12555714734722889695, + "venv/lib/python3.13/site-packages/pygments/lexers/archetype.py": 8995143180482517233, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/RECORD": 2024211292009381421, + "venv/lib/python3.13/site-packages/pygments/lexers/rust.py": 8605690716125176329, + "backend/git_repos/remote/test-repo.git/objects/22/91d2eb86d77accf7401f8952778809cd1aa4d4": 5120428041118096941, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py": 9559295461619813890, + "venv/lib/python3.13/site-packages/pip/_internal/models/installation_report.py": 14534544543677907640, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/RECORD": 6518517239543344179, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ma.py": 15912582628112164509, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64-testset-1.csv": 16078879475693341404, + "venv/lib/python3.13/site-packages/PIL/features.py": 3481835375516797487, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_isoc.py": 4923640657296076239, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_eng_formatting.py": 14768815444701392013, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_highlight.py": 7573043358244876807, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/style.py": 12654125988995362593, + "venv/lib/python3.13/site-packages/PIL/JpegPresets.py": 12342262642420923471, + "venv/bin/pygmentize": 2166491742035772877, + "backend/src/services/dataset_review/semantic_resolver.py": 8447496149691924829, + "backend/ss_tools_backend.egg-info/PKG-INFO": 15134841326777953914, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_repr.py": 7552782621374439569, + "backend/git_repos/remote/test-repo.git/refs/heads/master": 12485529318667335076, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/__init__.py": 11709551233929312136, + "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.pyi": 14150710436003340771, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi": 14119032813912827271, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_limited_api.py": 15788485008764560845, + "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py": 9627328185578406121, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh25337/data.f90": 13833561828029901615, + "venv/lib/python3.13/site-packages/starlette/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/exceptions.pyi": 13942486291715303235, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/provision.py": 9472538482404392519, + "backend/tests/scripts/test_clean_release_tui.py": 14700450036639944764, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_real.py": 5283415082530228716, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_extras.py": 16160090335191788104, + "venv/lib/python3.13/site-packages/pandas/io/api.py": 8275376846208437741, + "backend/tests/test_translate_corrections.py": 1228642484417924184, + "backend/git_repos/remote/test-repo.git/objects/4e/227f4d8289ea657ae813b1460f979ae4b676b3": 5659284628452785331, + "frontend/build/_app/immutable/chunks/Bqz-gzay.js": 1272988762853580208, + "venv/lib/python3.13/site-packages/pygments/filter.py": 16846063190466267618, + "venv/lib/python3.13/site-packages/pydantic/v1/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/utils/filetypes.py": 4415340223268174913, + "venv/lib/python3.13/site-packages/h11/_abnf.py": 10456996134895429201, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_na_values.py": 13527837495439739279, + "backend/tests/test_resource_hubs.py": 3990299394875930767, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_conversion.py": 7507083194555424923, + "frontend/src/routes/settings/+page.ts": 3719008513710037840, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_orm_types.py": 5508682532707462217, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/dtype.pyi": 465999539608816848, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test__datasource.py": 1747755531265478106, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arrayterator.py": 3076316311545674897, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_constructors.py": 1697610790604400105, + "venv/lib/python3.13/site-packages/attr/setters.py": 12467854389745942025, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_ops.py": 3875181889032080505, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/__init__.py": 11526998905763262175, + "backend/src/services/profile_utils.py": 3954310438409803447, + "venv/lib/python3.13/site-packages/cffi/backend_ctypes.py": 2042566833861899211, + "venv/lib/python3.13/site-packages/httpx/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/_pytest/stash.py": 14430252294763173610, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/requests.py": 14847842002253212098, + "venv/lib/python3.13/site-packages/gitdb/base.py": 7927279446353696534, + "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/METADATA": 14158024963562115116, + "venv/lib/python3.13/site-packages/pydantic/v1/schema.py": 10008526732895436361, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_constructors.pyi": 164538008396001632, + "venv/lib/python3.13/site-packages/uvicorn/logging.py": 12858188863836778374, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_formats.py": 10263085276270778330, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_construction.py": 13953424340346625390, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/RECORD": 17545477863793260029, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi": 13061638961405460334, + "frontend/build/_app/immutable/chunks/DFqXhIRP.js": 2264066891682996356, + "venv/lib/python3.13/site-packages/pillow.libs/libbrotlidec-b57ddf63.so.1.2.0": 10032590058372320813, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/licenses/LICENSE": 10253862887434903467, + "venv/lib/python3.13/site-packages/numpy/lib/_iotools.py": 10522826373041592861, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ma.pyi": 8186102816080813799, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_memmap.py": 8709963808115492688, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/unused_registry.py": 10153622516112471812, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/METADATA": 12295263493152296681, + "venv/lib/python3.13/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0": 116215608212382352, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/vectorized.pyi": 15498895254516573071, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_astype.py": 6578539240745332772, + "venv/lib/python3.13/site-packages/PIL/ImageOps.py": 3884310863548175682, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/index.py": 2763962019423787504, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/meson.build": 17468163147765825687, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_filters.py": 17271344092069736999, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_period.py": 12593777226419608212, + "venv/lib/python3.13/site-packages/httpx/_urlparse.py": 8270294590945652412, + "venv/lib/python3.13/site-packages/pydantic_settings/main.py": 17272314000918984790, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_any_index.py": 10800968419286329268, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cpu_features.py": 955759654189150497, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_api_info.py": 16491629653122827368, + "venv/lib/python3.13/site-packages/pycparser/c_ast.py": 5942107079119742, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_factorize.py": 5585211699185937865, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/WHEEL": 12054782055241301457, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein_py.py": 11350239659973489646, + "venv/lib/python3.13/site-packages/rsa/parallel.py": 4968566722541778371, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py": 16550134594771291234, + "venv/lib/python3.13/site-packages/PIL/_imagingmorph.cpython-313-x86_64-linux-gnu.so": 11171810899664471137, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_head_tail.py": 1906121476322841736, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/h11_impl.py": 1419719055394402145, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/bitwise_ops.pyi": 15598239133239520456, + "venv/lib/python3.13/site-packages/pygments/lexers/tnt.py": 4657130609241407766, + "venv/lib/python3.13/site-packages/pygments/lexers/_mql_builtins.py": 2376212048709413586, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi": 7385072545198817771, + "frontend/src/components/tasks/TaskLogPanel.svelte": 4685456099513280294, + "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/array.py": 3517673819082574078, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/__init__.py": 15130871412783076140, + "frontend/src/routes/dashboards/__tests__/dashboard-profile-override.integration.test.js": 15198772446275187033, + "frontend/src/components/git/GitOperationsPanel.svelte": 5140779139910068800, + "venv/lib/python3.13/site-packages/rsa/pem.py": 3118524021576082054, + "venv/lib/python3.13/site-packages/pyasn1/codec/native/decoder.py": 15336592439379775543, + "venv/lib/python3.13/site-packages/greenlet/TGreenletGlobals.cpp": 17400526028982558937, + "venv/lib/python3.13/site-packages/pip/_internal/commands/cache.py": 1892313355296776523, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/fft.pyi": 14454280827038327842, + "venv/lib/python3.13/site-packages/numpy/_core/records.py": 11414828908088050950, + "venv/lib/python3.13/site-packages/pandas/_version.py": 3480474785419232091, + "venv/lib/python3.13/site-packages/jeepney/io/asyncio.py": 13239992245695516007, + "venv/lib/python3.13/site-packages/more_itertools/recipes.pyi": 16788810745659802820, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/table.py": 16856253349556498073, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/type_check.pyi": 1599910480066368464, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_symbol.py": 10792387279408528886, + "venv/lib/python3.13/site-packages/pygments/lexers/qlik.py": 3881663935630350152, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_xlsxwriter.py": 8445547874832015203, + "venv/lib/python3.13/site-packages/pandas/io/formats/html.py": 11849941990375030601, + "venv/lib/python3.13/site-packages/numpy/_core/defchararray.py": 15550230459945996915, + "venv/lib/python3.13/site-packages/pygments/lexers/rita.py": 8105458520706587972, + "venv/lib/python3.13/site-packages/pygments/__init__.py": 14493583771211110135, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_join.py": 17508073052750406350, + "venv/lib/python3.13/site-packages/_pytest/assertion/truncate.py": 14000392306994773741, + "venv/lib/python3.13/site-packages/packaging/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/events.py": 9329355486544822483, + "venv/lib/python3.13/site-packages/pygments/lexers/shell.py": 3842338968014057744, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_intervalindex.py": 5053113227747333759, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_setops.py": 14246225281428284850, + "frontend/e2e/run-e2e.sh": 8106714116467101372, + "frontend/build/_app/immutable/nodes/21.B8iGzflD.js": 12737324929601250854, + "backend/src/core/utils/superset_compilation_adapter.py": 4974836712746468095, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_argparse.py": 11111699418217357084, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_timedeltas.py": 1175883320586860493, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_constructors.py": 16197656939536784142, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/METADATA": 2053484635654179443, + "venv/lib/python3.13/site-packages/passlib/handlers/des_crypt.py": 15304795681178011265, + "venv/lib/python3.13/site-packages/jeepney/auth.py": 10565040329507087892, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/METADATA": 10220680536734745103, + "venv/lib/python3.13/site-packages/numpy/core/numerictypes.py": 5776941405348611027, + "venv/lib/python3.13/site-packages/pycparser/__init__.py": 16499940957411260458, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/RECORD": 3283324710045856319, + "frontend/build/_app/immutable/nodes/17.AIpSrnun.js": 10779164293550106138, + "frontend/build/_app/immutable/chunks/BypEb7aB.js": 647416496892430106, + "backend/git_repos/remote/test-repo.git/hooks/applypatch-msg.sample": 12627299623252391515, + "venv/lib/python3.13/site-packages/numpy/core/umath.py": 4476812261188108155, + "venv/lib/python3.13/site-packages/pandas/core/reshape/merge.py": 300205528811693975, + "venv/lib/python3.13/site-packages/_pytest/_py/path.py": 8464061867075119556, + "venv/lib/python3.13/site-packages/pandas/_testing/asserters.py": 272063856832951430, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/__init__.py": 6327819603201859020, + "backend/src/core/superset_profile_lookup.py": 5518507735632088337, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_dst.py": 12243642467695371088, + "frontend/src/components/git/GitWorkspacePanel.svelte": 15810952071932060330, + "backend/git_repos/remote/test-repo.git/hooks/pre-merge-commit.sample": 10013699873067956556, + "venv/lib/python3.13/site-packages/greenlet/greenlet.h": 16216120538647882082, + "venv/lib/python3.13/site-packages/pip/_internal/models/link.py": 7172346414535657925, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/METADATA": 5045041742469375466, + "venv/lib/python3.13/site-packages/pip/_internal/commands/wheel.py": 16397273591245583356, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/scalars.pyi": 3130685119595923378, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api1.c": 8494977275215578998, + "venv/lib/python3.13/site-packages/pydantic/class_validators.py": 4643597082531287188, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/type_api.py": 10299750173867399533, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/__init__.py": 15130871412783076140, + "frontend/src/lib/stores/__tests__/mocks/stores.js": 14098417748659067309, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_reindex.py": 12459492712890114705, + "venv/lib/python3.13/site-packages/uvicorn/importer.py": 5449629250971153435, + "venv/lib/python3.13/site-packages/websockets/legacy/http.py": 16266924390281399720, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/meson.build": 8784756284679859367, + "frontend/src/routes/datasets/review/useReviewSession.js": 2378011913105385059, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23598Warn.f90": 7589258200398878529, + "backend/src/api/routes/environments.py": 1329328901500854319, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/warnings_and_errors.pyi": 9019577563960071498, + "venv/lib/python3.13/site-packages/numpy/_core/printoptions.pyi": 16758392990920041462, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/authenticate_client.py": 16886645731942472285, + "backend/src/services/clean_release/__tests__/test_preparation_service.py": 4958420988131940633, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/associationproxy.py": 7421910137064160936, + "venv/lib/python3.13/site-packages/pip/_internal/exceptions.py": 2252826732781519645, + "backend/src/api/routes/git/_config_routes.py": 6093940098740660772, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_logical/foo90.f90": 12508663906609241323, + "backend/src/plugins/translate/orchestrator_validation.py": 17464651621865127561, + "venv/lib/python3.13/site-packages/rsa/asn1.py": 3861968161559322784, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_polynomial.pyi": 9134949577567498894, + "venv/lib/python3.13/site-packages/cffi/recompiler.py": 17809252277700094304, + "venv/lib/python3.13/site-packages/pandas/_libs/testing.pyi": 16691791330088523786, + "venv/lib/python3.13/site-packages/pandas/core/arrays/_mixins.py": 14293848457775268010, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_promote.py": 16601872688404846307, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_cpp_avx2.cpython-313-x86_64-linux-gnu.so": 12574929384355254457, + "venv/lib/python3.13/site-packages/httpcore/_utils.py": 3255581092836273826, + "venv/lib/python3.13/site-packages/authlib/oauth2/auth.py": 8455258275234626534, + "venv/lib/python3.13/site-packages/pandas/tests/resample/__init__.py": 15130871412783076140, + "backend/src/plugins/translate/_run_service.py": 9256226506466064345, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_unix.h": 9608771997528633681, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/__init__.py": 14571251344510763303, + "venv/lib/python3.13/site-packages/numpy/f2py/func2subr.pyi": 16573082220135508510, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/licenses/LICENSE": 14316979437290727897, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/licenses/LICENSE": 3868190977070717994, + "venv/lib/python3.13/site-packages/pandas/compat/numpy/__init__.py": 1037113402100731082, + "venv/lib/python3.13/site-packages/pandas/core/_numba/executor.py": 2205130934861422769, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_timedelta.py": 17052461094717926538, + "venv/lib/python3.13/site-packages/numpy/fft/_helper.py": 15906444100774706395, + "venv/lib/python3.13/site-packages/fastapi/param_functions.py": 14585101566697773072, + "venv/lib/python3.13/site-packages/keyring/backends/kwallet.py": 3071915635647280308, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_fsspec.py": 6936167344144998172, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_stringdtype.py": 8381476847196129074, + "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/__init__.py": 15130871412783076140, + "frontend/build/_app/immutable/nodes/20.DC6qt-rz.js": 13114248361276192045, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_reindex.py": 15680924058960901067, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/operators.py": 5584982192355398255, + "venv/lib/python3.13/site-packages/dateutil/parser/_parser.py": 9443336890192151397, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/RECORD": 1164466882742493155, + "venv/lib/python3.13/site-packages/PIL/GimpGradientFile.py": 9777026720028891154, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/METADATA": 6656194161182818439, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_msvc.h": 17581467060937454503, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_masm.obj": 11967637259540485652, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/hooks.py": 9888227370911151341, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/flow_control.py": 4822804840057360506, + "backend/src/services/git/_base.py": 9705469664041515959, + "venv/lib/python3.13/site-packages/pandas/core/tools/numeric.py": 8510988912136285022, + "venv/lib/python3.13/site-packages/pygments/lexers/praat.py": 54226477748516386, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_dlpack.py": 7908102652282922952, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/shape_base.pyi": 10291383658131961346, + "venv/lib/python3.13/site-packages/pandas/core/tools/datetimes.py": 13313374952742129866, + "venv/lib/python3.13/site-packages/pandas/io/excel/_base.py": 1251545894005373734, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mutable.py": 9323088483998280629, + "venv/lib/python3.13/site-packages/pygments/styles/inkpot.py": 10516710471319090846, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_npy_units.py": 8966226962799105383, + "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_time.py": 10463741033950978270, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh26920/two_mods_with_one_public_routine.f90": 7957683453180939605, + "backend/alembic/versions/ed310b33f02c_multi_language_translation_tables.py": 1424919631205944664, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/content": 12465123883296161860, + "venv/lib/python3.13/site-packages/smmap/test/test_mman.py": 8977119225749253844, + "venv/lib/python3.13/site-packages/urllib3/response.py": 1987354357306756790, + "venv/lib/python3.13/site-packages/pygments/lexers/_cocoa_builtins.py": 15468347167912293394, + "venv/lib/python3.13/site-packages/pandas/_libs/internals.cpython-313-x86_64-linux-gnu.so": 2008633361686956377, + "venv/lib/python3.13/site-packages/pygments/lexers/_tsql_builtins.py": 829193091321611630, + "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension.c": 9318655518998644962, + "venv/lib/python3.13/site-packages/pydantic/_internal/_schema_generation_shared.py": 23345689300073549, + "venv/lib/python3.13/site-packages/h11/_events.py": 13800479928851716538, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/bitwise_ops.py": 14350609278188982939, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_arithmetic.py": 15071337112968886738, + "venv/lib/python3.13/site-packages/jose/backends/__init__.py": 16581763658239070112, + "venv/lib/python3.13/site-packages/websockets/cli.py": 14049106025886056110, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/array_api_info.pyi": 7887489694871300469, + "venv/lib/python3.13/site-packages/passlib/tests/utils.py": 15403198680231294263, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_iterrows.py": 3791886201566670087, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_csv.py": 10737444103906389448, + "venv/lib/python3.13/site-packages/greenlet/greenlet_cpython_compat.hpp": 8396413256279803400, + "venv/lib/python3.13/site-packages/pandas/_libs/tslib.pyi": 16170606956605100142, + "venv/lib/python3.13/site-packages/PIL/ImageFont.py": 15621336334706847865, + "frontend/build/_app/immutable/chunks/BcfE2z-U.js": 4830415404582879309, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_drop_duplicates.py": 5874427993953991216, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/misc.py": 6571241778569465264, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/passlib/ext/django/models.py": 12386223748379294996, + "venv/lib/python3.13/site-packages/ecdsa/test_ecdh.py": 3338834550392548171, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/test_numba.py": 8250377774229977284, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/entities.py": 8001287806688585081, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/websockets_sansio_impl.py": 17221368219485351394, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_validate.py": 2133732492454460539, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/rsa.py": 5392922995791487437, + "venv/lib/python3.13/site-packages/uvicorn/lifespan/off.py": 16254524872582859561, + "venv/lib/python3.13/site-packages/pillow.libs/liblzma-61b1002e.so.5.8.2": 11405063484938458842, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_info.py": 15151894356374015812, + "venv/lib/python3.13/site-packages/referencing/tests/test_exceptions.py": 10846225989746274213, + "frontend/src/lib/components/reports/__tests__/report_detail.ux.test.js": 11878832350632571462, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_setitem.py": 10389770446834773837, + "venv/bin/pip3.13": 13861749540792881808, + "backend/tests/test_translate_jobs.py": 16585154497956900995, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/util.py": 2866856507760047219, + "venv/lib/python3.13/site-packages/authlib/oauth1/client.py": 7314311571224771, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarbuffer.py": 16859789411010045795, + "venv/lib/python3.13/site-packages/click/_termui_impl.py": 3296085065310341855, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multiprocessing.py": 5522490547285108448, + "venv/lib/python3.13/site-packages/pygments/lexers/codeql.py": 4254046699692048717, + "venv/lib/python3.13/site-packages/packaging/utils.py": 3469957615920103670, + "frontend/src/lib/stores/environmentContext.js": 1762535408632658714, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/WHEEL": 13232065379159720345, + "venv/lib/python3.13/site-packages/rapidfuzz/__init__.pyi": 13131938031654453415, + "venv/lib/python3.13/site-packages/requests/packages.py": 7733041271118298220, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/response.py": 15004896908941411698, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_setops.py": 17350958906336246626, + "venv/lib/python3.13/site-packages/pandas/io/excel/_xlrd.py": 14430937200583666658, + "venv/lib/python3.13/site-packages/numpy/_array_api_info.pyi": 13283968924732680159, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_unicode.py": 1103608932321322989, + "venv/lib/python3.13/site-packages/pandas/tests/frame/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/PIL/DdsImagePlugin.py": 10646832373516499548, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_printing.py": 8859757563354666575, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/base.py": 16052592982063844259, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/tags.py": 254599446317461188, + "venv/lib/python3.13/site-packages/fastapi/middleware/gzip.py": 436886407566263171, + "venv/lib/python3.13/site-packages/urllib3/contrib/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_transpose.py": 17983160984979323393, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/nattype.pyi": 1830368009811266890, + "venv/lib/python3.13/site-packages/typing_inspection/typing_objects.py": 16856718240972376883, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py3-objarr.npz": 12369168483236619421, + "venv/lib/python3.13/site-packages/pandas/core/interchange/from_dataframe.py": 8278998381856028462, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_time_series.py": 5205199092955498507, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libgssapi_krb5-497db0c6.so.2.2": 6199424505696679197, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_timedelta.py": 12822713918114715561, + "venv/lib/python3.13/site-packages/pygments/formatters/img.py": 18230180171537565208, + "venv/lib/python3.13/site-packages/pygments/styles/lilypond.py": 12486578704132023691, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_odswriter.py": 5134385709728943904, + "venv/lib/python3.13/site-packages/packaging/licenses/_spdx.py": 16440031845441362300, + "venv/lib/python3.13/site-packages/psycopg2/_range.py": 7184417109068014771, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/queue.py": 7820997545569991670, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/identity.py": 326059526167697655, + "venv/lib/python3.13/site-packages/PIL/XpmImagePlugin.py": 6644626557482464312, + "venv/lib/python3.13/site-packages/authlib/integrations/django_client/integration.py": 13610682193839598457, + "venv/lib/python3.13/site-packages/_pytest/skipping.py": 10561585274103209115, + "venv/lib/python3.13/site-packages/keyring/devpi_client.py": 3445890176686211982, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/licenses/LICENSE": 9235234428907927646, + "venv/lib/python3.13/site-packages/pygments/lexers/css.py": 517586374264113606, + "frontend/src/lib/stores/__tests__/taskDrawer.test.js": 12307450726550947042, + "frontend/src/lib/ui/Icon.svelte": 2201964532717139995, + "venv/lib/python3.13/site-packages/numpy/lib/_nanfunctions_impl.pyi": 12566839271245057531, + "venv/lib/python3.13/site-packages/numpy/_core/shape_base.pyi": 10225243791643474943, + "frontend/src/lib/components/reports/__tests__/reports_filter_performance.test.js": 10583581505638859039, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_numeric.py": 9417128508433693658, "venv/lib/python3.13/site-packages/sqlalchemy/sql/coercions.py": 5112358449376598662, - "venv/lib/python3.13/site-packages/h11/_util.py": 9362339074207904329, + "venv/lib/python3.13/site-packages/secretstorage/item.py": 15486045386471912693, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_tzconversion.py": 7205566353454584259, + "backend/src/plugins/translate/preview_executor.py": 7636554040403814604, + "venv/lib/python3.13/site-packages/jose/backends/_asn1.py": 14123487576864105793, + "venv/lib/python3.13/site-packages/greenlet/tests/test_gc.py": 6383305344377882524, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_timedelta.py": 7742506012012398830, + "venv/lib/python3.13/site-packages/bcrypt/_bcrypt.abi3.so": 8691731321358529264, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_cpp_exception.py": 11851283355840567373, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/logging.py": 2426447364230673649, + "venv/lib/python3.13/site-packages/dateutil/easter.py": 14631233890122048084, + "frontend/build/_app/immutable/chunks/Bw0blrxX.js": 4274410390963331825, + "backend/src/models/dashboard.py": 8479838979214366697, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/implicit.py": 5400555157488808948, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_equals.py": 18261810467289276844, + "venv/lib/python3.13/site-packages/pandas/compat/_constants.py": 3909166275649444824, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi": 1065808244870331598, + "frontend/src/routes/admin/roles/+page.svelte": 1343040884276845574, + "backend/src/api/routes/translate/_schedule_routes.py": 18180097500694105300, + "venv/lib/python3.13/site-packages/rapidfuzz/process_cpp.py": 16797760903996739079, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/path_registry.py": 8410829659513707067, + "venv/lib/python3.13/site-packages/fastapi/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_timestamp.py": 12253372102602993034, + "venv/lib/python3.13/site-packages/keyring/backends/fail.py": 5792496235026678021, + "venv/lib/python3.13/site-packages/pygments/lexers/minecraft.py": 10133579583270214110, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/device_code.py": 6712610002227849281, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_common.py": 2223069451949206319, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/token.py": 6987328478153445584, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_groupby_shift_diff.py": 1210657479716368827, + "venv/lib/python3.13/site-packages/pyasn1/codec/der/decoder.py": 11876648884087997745, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_value_counts.py": 5534713464063604301, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_format.py": 9331389900588353667, + "venv/lib/python3.13/site-packages/pandas/tests/internals/test_internals.py": 2049484047553296860, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/philox-testset-1.csv": 2202360898679162333, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_sas.py": 9446226619493404132, + "venv/lib/python3.13/site-packages/numpy/_core/overrides.pyi": 13121243505132110607, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/compiler.py": 13924519162400330589, + "frontend/src/lib/components/health/PolicyForm.svelte": 16556369076015031814, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_json_table_schema_ext_dtype.py": 13021437050542691118, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/RECORD": 8201759541483070364, + "venv/lib/python3.13/site-packages/pip/_internal/models/direct_url.py": 4619204214785230341, + "venv/lib/python3.13/site-packages/pandas/_libs/join.cpython-313-x86_64-linux-gnu.so": 2947947484481830203, + "venv/lib/python3.13/site-packages/pydantic/_internal/_generate_schema.py": 7343380095251236503, + "venv/lib/python3.13/site-packages/pandas/core/arrays/timedeltas.py": 7318851108932357510, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arraysetops.py": 10588903945244480732, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_readers.py": 2136472634307645842, + "frontend/build/_app/immutable/chunks/gnz6SBPl.js": 11312702971088716611, + "frontend/src/lib/components/translate/TranslationMetricsDashboard.svelte": 8577281635452165836, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_level_values.py": 12490886203425393290, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py": 2609365889369107154, + "venv/lib/python3.13/site-packages/pygments/lexers/javascript.py": 16869490851285457857, + "frontend/src/routes/migration/__tests__/migration_dashboard.ux.test.js": 17118608261683412409, + "venv/lib/python3.13/site-packages/pluggy/_tracing.py": 7276210024011809655, + "venv/lib/python3.13/site-packages/pygments/styles/zenburn.py": 1031869867933871309, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9207/__init__.py": 8434616194114282088, + "venv/lib/python3.13/site-packages/fastapi/_compat/v2.py": 15078491685917047095, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64dxsm-testset-1.csv": 9129730764673472086, + "frontend/build/_app/immutable/chunks/Cvm7P5dV.js": 4585441182838434632, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/fetch.py": 13937019222549208796, + "venv/lib/python3.13/site-packages/pandas/tseries/holiday.py": 1134358927599488799, + "venv/lib/python3.13/site-packages/pygments/lexers/julia.py": 13516407944275342328, + "venv/lib/python3.13/site-packages/pandas/api/typing/__init__.py": 6438268275857060114, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/LICENSE": 6774760218010069963, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libcom_err-2abe824b.so.2.1": 12870528025628871295, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/offsets.cpython-313-x86_64-linux-gnu.so": 6726636942028566415, + "venv/lib/python3.13/site-packages/pandas/io/formats/excel.py": 797619981868084011, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/aioodbc.py": 12704729841432715246, + "venv/lib/python3.13/site-packages/pydantic/deprecated/parse.py": 819235411736647763, + "venv/lib/python3.13/site-packages/git/objects/commit.py": 12317865358846331802, + "venv/lib/python3.13/site-packages/fastapi/requests.py": 14587947416691824903, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/authorization_server.py": 6858244712625056421, + "backend/src/plugins/translate/orchestrator_runner.py": 1192466559618297192, + "venv/lib/python3.13/site-packages/pandas/core/computation/align.py": 13027916530558901817, + "backend/src/api/routes/__tests__/test_reports_api.py": 8830242634438523357, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_api.py": 16743710460729009914, + "venv/lib/python3.13/site-packages/numpy/_core/lib/libnpymath.a": 17555816778997028283, + "venv/lib/python3.13/site-packages/httpcore/_async/http2.py": 16350817785499681224, + "venv/lib/python3.13/site-packages/numpy/_core/_simd.pyi": 13553578040186939249, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/__init__.py": 15130871412783076140, + "backend/src/plugins/translate/preview_constants.py": 13394123036128511085, + "venv/lib/python3.13/site-packages/numpy/ma/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein.pyi": 2700568594438441246, + "venv/lib/python3.13/site-packages/rpds/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/sgf.py": 6802546617450210439, + "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/unrolled.py": 12651425412640834530, + "venv/lib/python3.13/site-packages/fastapi/applications.py": 4975013401500183420, + "venv/lib/python3.13/site-packages/pandas/api/__init__.py": 1145864207387918302, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/securetransport.py": 12104888897121018676, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_nat.py": 18428782698385974380, + "venv/lib/python3.13/site-packages/apscheduler/triggers/base.py": 1170652622104554892, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_str_accessor.py": 4066094997616994612, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/exceptions.py": 7518613450390473990, + "venv/lib/python3.13/site-packages/pandas/io/html.py": 2727247063231114153, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pydantic/schema.py": 83238111330132033, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_numpyconfig.h": 18150055639397773687, + "venv/lib/python3.13/site-packages/pandas/_testing/contexts.py": 11714205921752896137, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/base_key.py": 10402800587070352851, + "venv/lib/python3.13/site-packages/pydantic/v1/color.py": 14545509649623975912, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_csv.py": 6678500392137188521, + "venv/lib/python3.13/site-packages/attr/_config.py": 1864824728504480204, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/RECORD": 4857922668040624663, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/einsumfunc.pyi": 8902765738896588686, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/__init__.py": 10470644151952252331, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/util.pyx": 649821942746469002, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/core/einsumfunc.py": 3484247123731380377, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_pad.pyi": 14755435694146003896, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/token_endpoint.py": 6118770923176099889, + "backend/src/core/auth/jwt.py": 15575717945774687118, + "venv/lib/python3.13/site-packages/pygments/lexers/tcl.py": 10343667975436015855, + "backend/git_repos/remote/test-repo.git/objects/17/66251d8cb2693136e09ea3def3e776559cb722": 1137762010493457272, + "venv/lib/python3.13/site-packages/pip/_internal/utils/filesystem.py": 7716285033598020316, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_distutils.pyi": 3595910367556664837, + "venv/lib/python3.13/site-packages/keyring/backends/libsecret.py": 11621088556661567306, + "venv/lib/python3.13/site-packages/_pytest/terminal.py": 885450969703476729, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_coercion.py": 3551994404797560483, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_index.py": 4908727359687606870, + "backend/src/schemas/__init__.py": 8700952869915187087, + "venv/lib/python3.13/site-packages/pandas/plotting/_misc.py": 10202078355301731720, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/astype_copy.pkl": 4470155972891419163, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/control.py": 2034518223411945438, + "venv/lib/python3.13/site-packages/fastapi/logger.py": 11590581556317053213, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/asyncio.py": 11442130378027628520, + "venv/lib/python3.13/site-packages/pandas/io/excel/_odswriter.py": 17220892094904423676, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py": 16386268386376675175, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/cells.py": 8299309127027168194, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_item_selection.py": 1027989019709029615, + "venv/lib/python3.13/site-packages/jeepney/tests/secrets_introspect.xml": 10717038359151125278, + "venv/lib/python3.13/site-packages/smmap/test/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/base_server.py": 9643197259080504542, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/twisted.py": 16059862619165885730, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_function.py": 644452398244782315, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_value_attrspec.py": 7741590618654448240, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/stride_tricks.pyi": 5844806555773292985, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_partial.py": 3151286293440416036, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/test_indexing.py": 1947969642791009285, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/WHEEL": 9100692507274722091, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py": 6152202474302791232, + "frontend/src/lib/stores/sidebar.js": 8409084311045055153, + "frontend/src/lib/components/translate/BulkCorrectionSidebar.svelte": 10114621552038076221, + "venv/lib/python3.13/site-packages/jeepney/io/__init__.py": 2568357146184259175, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libldap-2974a1ba.so.2.0.200": 13590569080612602445, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/conftest.py": 8406022190801970256, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/masked_reductions.py": 633644255158859565, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_libfrequencies.py": 16302676625743291594, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_decimal.py": 3515468590005709183, + "backend/src/core/scheduler.py.bak": 15045927989195339728, + "backend/src/services/dataset_review/__init__.py": 15781509495698823404, + "venv/lib/python3.13/site-packages/pillow.libs/libjpeg-32d42e18.so.62.4.0": 11717944412021329207, + "venv/lib/python3.13/site-packages/rapidfuzz/process_py.py": 17563673072076876125, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_multiplier.f": 13432803601367981068, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/test_as_unit.py": 4283520188709399244, + "venv/lib/python3.13/site-packages/pip/_internal/__init__.py": 7060345458485901709, + "venv/lib/python3.13/site-packages/ecdsa/test_ecdsa.py": 17595025859105321562, + "venv/lib/python3.13/site-packages/itsdangerous/encoding.py": 205863946173486958, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_combine_concat.py": 3201068805128232483, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_infer_objects.py": 6769980076977692890, + "frontend/svelte.config.js": 8473636210766821560, + "venv/lib/python3.13/site-packages/fastapi/testclient.py": 2606236077497278662, + "backend/tests/core/test_git_service_gitea_pr.py": 6098719224379185148, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_duplicated.py": 6659959750254523427, + "frontend/src/routes/datasets/review/__tests__/dataset_review_entry.ux.test.js": 5439236328736424365, + "venv/lib/python3.13/site-packages/pygments/lexers/lisp.py": 11872331622183590758, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/subrout.f": 18215492757907465667, + "venv/lib/python3.13/site-packages/referencing/tests/test_retrieval.py": 10782087416909177703, + "venv/lib/python3.13/site-packages/pip/_internal/operations/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_abc.py": 10164280045317807365, + "venv/lib/python3.13/site-packages/starlette/_exception_handler.py": 9892172656847200124, + "venv/lib/python3.13/site-packages/cryptography/x509/__init__.py": 4066756344049307453, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/pyinstaller-smoke.py": 13570990531070630950, + "backend/src/plugins/translate/preview_resolve_provider.py": 7349483761713339246, + "venv/lib/python3.13/site-packages/yaml/loader.py": 18284689412149643959, + "venv/lib/python3.13/site-packages/attr/filters.py": 14156141488477438777, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/histograms.pyi": 2281259341486424755, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_attr_equal.py": 5612259834202470413, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_replace.py": 4953527309376861139, + "venv/lib/python3.13/site-packages/pygments/lexers/resource.py": 8057351545636349791, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_xlrd.py": 9982457234958102003, + "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/WHEEL": 7454950858448014158, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/proxy.py": 13008557041076030198, + "venv/lib/python3.13/site-packages/anyio/_core/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_join.py": 1697622393195784944, + "venv/lib/python3.13/site-packages/PIL/_imagingcms.pyi": 12476347428820346383, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/privatemod.f90": 8999550841368314739, + "venv/lib/python3.13/site-packages/pygments/lexers/wren.py": 6259586056260713984, + "venv/lib/python3.13/site-packages/pygments/lexers/freefem.py": 9851243865301700231, + "venv/lib/python3.13/site-packages/sqlalchemy/types.py": 15819795572817819102, + "venv/lib/python3.13/site-packages/pandas/io/excel/_pyxlsb.py": 10035587889954731645, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dtypes.py": 4985057130807802395, + "venv/lib/python3.13/site-packages/pygments/lexers/dsls.py": 11696359794961833087, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_api.py": 13319208721442328400, + "venv/lib/python3.13/site-packages/PIL/PngImagePlugin.py": 5076219228736706283, + "frontend/src/routes/settings/MigrationSettings.svelte": 3323392929444734663, + "venv/lib/python3.13/site-packages/pandas/io/formats/printing.py": 3054136648863371285, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_unsupported.py": 9115440166074553860, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/apps.py": 10758062668702044519, + "venv/lib/python3.13/site-packages/sqlalchemy/event/api.py": 987321343916500337, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_crosstab.py": 6631711416347033281, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/index_tricks.py": 10051261976498916957, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/ccalendar.cpython-313-x86_64-linux-gnu.so": 11019871270094058038, + "frontend/src/routes/dashboards/[id]/components/DashboardGitManager.svelte": 14665567599893731601, + "frontend/src/components/git/DeploymentModal.svelte": 16301125393395343650, + "backend/git_repos/remote/test-repo.git/objects/4f/4e0958b3a42eff67a2b8cfd084d05c43e54716": 6040513978194442637, + "venv/lib/python3.13/site-packages/greenlet/slp_platformselect.h": 10428201768098464386, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_randomstate.py": 11205714006000849926, + "venv/lib/python3.13/site-packages/attr/_version_info.pyi": 7141309436445210354, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_2_complexcompat.h": 5001035774408914877, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_qcut.py": 8972418112914954758, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/test_transform.py": 5674175311567817854, + "venv/lib/python3.13/site-packages/pandas/_libs/window/indexers.cpython-313-x86_64-linux-gnu.so": 9380059465932560412, + "venv/lib/python3.13/site-packages/secretstorage/dhcrypto.py": 8860116996905452758, + "venv/lib/python3.13/site-packages/_pytest/_argcomplete.py": 3586514420674089892, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_set_axis.py": 4097534573847151853, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/liblber-1c9097e2.so.2.0.200": 2651879839738900594, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_dict_compat.py": 18196543090455290455, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/api.py": 13134394673408254097, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_subclass.py": 11096337912872573314, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming.py": 3762934316884129514, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi": 9294219058621261971, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/WHEEL": 7127684561765977531, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/__init__.py": 10920760520224795596, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE": 17675192170670564526, + "venv/lib/python3.13/site-packages/PIL/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/jeepney/bus_messages.py": 5871341372541525842, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/RECORD": 6187512110158566509, + "venv/lib/python3.13/site-packages/pandas/_libs/interval.pyi": 15698173755300703836, + "venv/lib/python3.13/site-packages/httpcore/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_scalar_compat.py": 1306236983392218709, + "venv/lib/python3.13/site-packages/jsonschema_specifications/_core.py": 14812112544772987164, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_at_time.py": 15352346149584081864, + "venv/lib/python3.13/site-packages/pycparser/ast_transforms.py": 9032453625977464506, + "venv/lib/python3.13/site-packages/_pytest/subtests.py": 14573790885130724739, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_neighborhood_iterator_imp.h": 10634781863364525895, + "venv/lib/python3.13/site-packages/uvicorn/middleware/proxy_headers.py": 13206297306768491360, + "venv/lib/python3.13/site-packages/pygments/filters/__init__.py": 2992007913496948339, + "venv/lib/python3.13/site-packages/pandas/tests/reductions/test_reductions.py": 11624188672428941494, + "venv/lib/python3.13/site-packages/jsonschema/tests/typing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/fastapi/middleware/wsgi.py": 3706578020491442104, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/scripts.py": 8759605303886441976, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_compat.py": 11481259393140789881, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/elements.py": 11185011314498348980, + "frontend/src/routes/datasets/review/review-workspace-helpers.js": 8577563379877694502, + "backend/src/plugins/llm_analysis/__tests__/test_client_headers.py": 5527172390260032966, + "venv/lib/python3.13/site-packages/numpy/lib/_arraysetops_impl.py": 5583478355093966990, + "venv/lib/python3.13/site-packages/pip/_internal/models/index.py": 2839270935469791607, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_array_from_pyobj.py": 9596224861290975079, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame.py": 16757570551941104401, + "venv/lib/python3.13/site-packages/pandas/core/arrays/categorical.py": 15993211255162930859, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_api.py": 14120915875574640262, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/click/termui.py": 7022374827798605437, + "venv/lib/python3.13/site-packages/pygments/lexers/fift.py": 7537570342576781911, + "venv/lib/python3.13/site-packages/fastapi/encoders.py": 1914192268055730299, + "venv/lib/python3.13/site-packages/pygments/lexers/sql.py": 15566262873151658034, + "venv/lib/python3.13/site-packages/numpy/polynomial/chebyshev.py": 1590647503660777156, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE.APACHE": 11041304845352917971, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_value_counts.py": 15633881149834196174, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/api.py": 9829629144629841277, + "venv/lib/python3.13/site-packages/greenlet/tests/test_cpp.py": 10982107081267457286, + "venv/lib/python3.13/site-packages/passlib/handlers/ldap_digests.py": 8658529184965699766, + "venv/lib/python3.13/site-packages/pandas/tests/api/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py": 10265081145401348863, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_zips.py": 5184894018177148648, + "venv/lib/python3.13/site-packages/numpy/polynomial/__init__.py": 15558318749939680074, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/parameters.py": 1647490964392525933, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_categorical_equal.py": 7942323667866280872, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_check_indexer.py": 2929031395357057009, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_drop.py": 17940792593116540139, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix.pyi": 2700568594438441246, + "venv/lib/python3.13/site-packages/authlib/jose/__init__.py": 317573635113539563, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_isin.py": 11330491145602008796, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_comparison.py": 4611207880323503098, + "venv/lib/python3.13/site-packages/sqlalchemy/inspection.py": 8563914460959280101, + "venv/lib/python3.13/site-packages/pygments/lexers/carbon.py": 6753624244809529841, + "venv/lib/python3.13/site-packages/pygments/lexers/robotframework.py": 11507713622179102496, + "venv/lib/python3.13/site-packages/click/decorators.py": 2920877667855377423, + "venv/lib/python3.13/site-packages/pandas/api/interchange/__init__.py": 181911269762882069, + "venv/lib/python3.13/site-packages/sqlalchemy/log.py": 10101221585967121334, + "venv/lib/python3.13/site-packages/packaging/markers.py": 11602308203217831543, + "frontend/build/_app/immutable/chunks/BuRkO16S.js": 9587040733399939559, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py": 17106903014205241774, + "backend/alembic/env.py": 14677445323675634060, + "backend/git_repos/remote/test-repo.git/objects/00/fcf77cecdf261aef91eda792ab3384a3339922": 1527330822006618217, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_integer/foo77.f": 12000068001851270396, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/lexers/thingsdb.py": 6073447481627395832, + "backend/src/models/__tests__/test_models.py": 15975002719327784362, + "venv/lib/python3.13/site-packages/pandas/core/window/rolling.py": 6316477981414191778, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_block_internals.py": 17935662848672401507, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/period.pyi": 13110894861187422750, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/plugin.py": 18006138132596504101, + "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft.pyi": 1521384724035973688, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/processors.py": 4817637175145012571, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/abc.py": 6227782083136374888, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/RECORD": 18314788057673509075, + "venv/lib/python3.13/site-packages/websockets/legacy/exceptions.py": 16025779645869134942, + "venv/lib/python3.13/site-packages/numpy/testing/print_coercion_tables.pyi": 3814281717779245045, + "venv/lib/python3.13/site-packages/numpy/random/bit_generator.pxd": 14261507718442469988, + "venv/lib/python3.13/site-packages/numpy/polynomial/hermite_e.py": 3654583356259850174, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate_nonkeyword_arguments.py": 11676809974120007408, + "venv/lib/python3.13/site-packages/pyasn1/codec/cer/decoder.py": 17559787396729804535, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_parse_dates.py": 5344929031479212951, + "venv/lib/python3.13/site-packages/pydantic/errors.py": 3506829204186508192, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/collections.cpython-313-x86_64-linux-gnu.so": 6157288238855118017, + "venv/lib/python3.13/site-packages/pygments/lexers/modeling.py": 15714077241620129689, + "frontend/src/lib/components/dataset-review/__tests__/source_intake_panel.ux.test.js": 13445861056598482363, + "backend/src/services/clean_release/repositories/manifest_repository.py": 12395698948312301073, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/__init__.py": 14481526616887213120, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_formats.py": 17821648708413143557, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_monotonic.py": 14648437502004398715, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_compression.py": 3167245427092658522, + "venv/lib/python3.13/site-packages/pip/_internal/utils/subprocess.py": 3095012838116670328, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_latex.py": 15077617224435782028, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_asymmetric.py": 6903778603779934572, + "venv/lib/python3.13/site-packages/pandas/_libs/parsers.cpython-313-x86_64-linux-gnu.so": 14134106903573638108, + "venv/lib/python3.13/site-packages/numpy.libs/libquadmath-96973f99-934c22de.so.0.0.0": 5098713761946118139, + "venv/lib/python3.13/site-packages/pip/_internal/utils/logging.py": 9639351759822608724, + "venv/lib/python3.13/site-packages/httpx/_transports/wsgi.py": 11981127094916412794, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_sparse.py": 14343335524508450058, + "venv/lib/python3.13/site-packages/passlib/handlers/sun_md5_crypt.py": 1949993216707182407, + "venv/lib/python3.13/site-packages/pygments/lexers/teraterm.py": 16132676290138105984, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/writeonly.py": 14213960431308620600, + "frontend/build/_app/immutable/nodes/22.BJHvtv0h.js": 5549431036175803158, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/licenses/LICENSE": 1126906383149772681, + "frontend/playwright.config.js": 1601415616693761429, + "backend/src/services/clean_release/mappers.py": 8684357784135236729, + "venv/lib/python3.13/site-packages/pygments/lexers/lean.py": 14518351619544450286, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/extending.pyx": 756189645898997788, + "venv/lib/python3.13/site-packages/httpcore/_backends/sync.py": 576247220834179928, + "backend/src/core/utils/superset_context_extractor/_base.py": 15730081123519745401, + "venv/lib/python3.13/site-packages/annotated_doc/__init__.py": 6834198874252778425, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_converters.py": 8869440774594127419, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_feather.py": 13613400750755530364, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/request.py": 17642741955458391050, + "frontend/src/lib/api/translate/datasources.js": 17202165717960970061, + "backend/src/services/clean_release/facade.py": 11231787492455424065, + "venv/lib/python3.13/site-packages/pip/_internal/cli/spinners.py": 7664056305019151182, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/__init__.py": 7062045842767697645, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_hist_method.py": 2109257663592928, + "backend/src/services/git/_branch.py": 9229581689526423389, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_searchsorted.py": 11161416745923343741, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_pivot.py": 334735766122314163, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_backend.pyi": 13083543811193933305, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_categorical.py": 9615571808720893016, + "docker/all-in-one.Dockerfile": 10896793266219904099, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/urllib3/filepost.py": 3814725067598042920, + "backend/tests/services/clean_release/test_report_audit_immutability.py": 4097909280121147581, + "venv/lib/python3.13/site-packages/pip/_internal/commands/uninstall.py": 11003472265011262515, + "venv/lib/python3.13/site-packages/numpy/lib/_type_check_impl.py": 15989335816452913951, + "venv/lib/python3.13/site-packages/urllib3/contrib/pyopenssl.py": 11839715589709210412, + "venv/lib/python3.13/site-packages/jeepney/io/tests/test_blocking.py": 6312017389529916004, + "venv/lib/python3.13/site-packages/passlib/tests/test_utils_handlers.py": 556092537518149789, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_dataframe.py": 14945138617962156057, + "venv/lib/python3.13/site-packages/gitdb/db/pack.py": 13460574575424209609, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_polyutils.py": 675639791972685455, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/__init__.py": 1923528231486706442, + "backend/git_repos/remote/test-repo.git/config": 14478893374498894766, + "backend/git_repos/remote/test-repo.git/objects/71/47ad0836409b35c1650dddf5fa6329ba61a824": 16601919569600972016, + "venv/lib/python3.13/site-packages/pandas/core/common.py": 14578909424716153057, + "venv/lib/python3.13/site-packages/pip/_internal/utils/setuptools_build.py": 13594639612360346306, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/passlib/utils/des.py": 2650106381178222229, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dropna.py": 3168969662216766293, + "venv/lib/python3.13/site-packages/pygments/lexers/comal.py": 769727871242464458, + "venv/lib/python3.13/site-packages/apscheduler/__init__.py": 8652514118183227412, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_astype.py": 7497268667246913350, + "venv/lib/python3.13/site-packages/numpy/lib/_npyio_impl.py": 2215312866861772848, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_size.py": 14032390806503440750, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_bar.py": 7791068963246005463, + "venv/lib/python3.13/site-packages/git/objects/tree.py": 10239027037919781330, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_structures.py": 16375837477294135345, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_size.py": 12449835577388069407, + "venv/lib/python3.13/site-packages/starlette/middleware/httpsredirect.py": 16837082808103815044, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libcrypto-2e26a48f.so.3": 3658133521245392852, + "venv/lib/python3.13/site-packages/numpy/lib/_function_base_impl.pyi": 2628035888703031029, + "venv/lib/python3.13/site-packages/pandas/core/interchange/dataframe.py": 16525846817331842080, + "venv/lib/python3.13/site-packages/numpy/testing/_private/extbuild.py": 4984721349618127021, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz.py": 1094797446508902066, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_log_render.py": 18076931145915444473, + "venv/lib/python3.13/site-packages/typing_extensions.py": 8402965285733247527, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/live_render.py": 14619617939683800204, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_parser.py": 3540203683732744499, + "venv/lib/python3.13/site-packages/jose/constants.py": 10880650415673457194, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi": 8666343427862784832, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_real/foo90.f90": 58572216018544419, + "venv/lib/python3.13/site-packages/pandas/core/arrays/period.py": 11560984428402318984, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_conversion.py": 6205112277291935767, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c": 17333399794446198412, + "venv/lib/python3.13/site-packages/starlette/_utils.py": 8384087194580626069, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_npfuncs.py": 8238385897366878558, + "venv/lib/python3.13/site-packages/attr/validators.py": 4453080662115911998, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_quantile.py": 11966156706220948315, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_legendre.py": 18266595775500927868, + "venv/lib/python3.13/site-packages/numpy/f2py/use_rules.pyi": 18395688193449688360, + "venv/lib/python3.13/site-packages/pandas/_testing/compat.py": 10172779814048259850, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_function_base.pyi": 10972502518588022706, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_cte.py": 9274103293201050794, + "venv/lib/python3.13/site-packages/dotenv/version.py": 13508433229287636267, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test__iotools.py": 6260912730310453037, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cffi/parse.py": 2427019397934437210, + "venv/lib/python3.13/site-packages/pandas/core/arrays/base.py": 664515424699746697, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/getlimits.py": 7842717073693731093, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq_py.py": 16054175754674285311, + "venv/lib/python3.13/site-packages/pandas/core/arrays/interval.py": 16281221279220043867, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_setops.py": 8622608042929141013, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_sas7bdat.py": 8963983384208121526, + "venv/lib/python3.13/site-packages/httpcore/_backends/anyio.py": 6167729964577005634, + "venv/lib/python3.13/site-packages/pygments/styles/monokai.py": 12381683616720952636, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_arrow_compat.py": 17818294260710640443, + "venv/lib/python3.13/site-packages/pygments/lexers/ooc.py": 14540210212631538007, + "docker/frontend.Dockerfile": 13262735279052210084, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_character/foo90.f90": 2435648607844815947, + "venv/lib/python3.13/site-packages/click/__init__.py": 9261629899056870564, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/sdist.py": 9490366272695301385, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/pyodbc.py": 8175468565413744516, + "backend/src/core/utils/superset_context_extractor/_recovery.py": 13298493527065532076, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/evaluator.py": 6348022789899831255, + "venv/lib/python3.13/site-packages/PIL/PcfFontFile.py": 8867692961463798279, + "backend/src/api/routes/git/_gitea_routes.py": 14644218433873522624, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/_arrow_utils.py": 17808805047762566525, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/test_round.py": 7912161077874611432, + "venv/lib/python3.13/site-packages/_pytest/terminalprogress.py": 5490989904517343259, + "venv/lib/python3.13/site-packages/_pytest/config/findpaths.py": 7867603756389940562, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_indexers.py": 6773751569163287047, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/models.py": 9513172366009392193, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/assignOnlyModule.f90": 15967199601254912096, + "venv/lib/python3.13/site-packages/sqlalchemy/util/preloaded.py": 3719702436309355562, + "venv/lib/python3.13/site-packages/pydantic/aliases.py": 14481980467204711659, + "venv/lib/python3.13/site-packages/numpy/_core/numerictypes.pyi": 12144531601504755948, + "venv/lib/python3.13/site-packages/httpx/_urls.py": 4219389176352582046, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/WHEEL": 8600534672961461758, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_misc.pyi": 7544619194032232861, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_set_name.py": 9094608008538024609, + "venv/lib/python3.13/site-packages/pandas/tests/strings/__init__.py": 5060190599837877599, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_parquet.py": 11050150015772440923, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_combine_first.py": 11425059090050867171, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/persistence.py": 17908437937265384125, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/_orm_constructors.py": 4276726508722638048, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/__init__.py": 9820770319106921495, + "venv/lib/python3.13/site-packages/PIL/_imagingft.cpython-313-x86_64-linux-gnu.so": 11054435406031360190, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/RECORD": 10036839994791510159, + "frontend/build/_app/immutable/chunks/CI0JKmO9.js": 14565018379746999131, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/python.py": 17886036670342116501, + "venv/lib/python3.13/site-packages/jeepney/tests/test_wrappers.py": 4813328996575597980, + "venv/lib/python3.13/site-packages/numpy/char/__init__.pyi": 12214207343146244743, + "venv/lib/python3.13/site-packages/greenlet/TThreadStateCreator.hpp": 9887867766190459665, + "venv/lib/python3.13/site-packages/numpy/lib/_index_tricks_impl.pyi": 5892973170789971535, + "venv/lib/python3.13/site-packages/ecdsa/util.py": 10543788809724099209, + "frontend/src/components/PasswordPrompt.svelte": 13739802421315835398, + "venv/lib/python3.13/site-packages/rapidfuzz/_feature_detector_cpp.cpython-313-x86_64-linux-gnu.so": 16337157355618216738, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_common.h": 14732581790650403546, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/core.py": 2300277198409164253, + "frontend/build/_app/immutable/chunks/CTQDxOi3.js": 17756418498848031423, + "backend/src/services/clean_release/stages/no_external_endpoints.py": 11899278509901673808, + "frontend/src/lib/stores/__tests__/test_taskDrawer.js": 13582869875796637016, + "venv/lib/python3.13/site-packages/pandas/util/_exceptions.py": 14426860079366867683, + "backend/src/services/llm_provider.py": 9619956052011769991, + "venv/lib/python3.13/site-packages/websockets/legacy/auth.py": 16685128086396181286, + "venv/lib/python3.13/site-packages/pip/_internal/operations/install/__init__.py": 10456333337205488584, + "venv/lib/python3.13/site-packages/websockets/sync/utils.py": 15135020989207191168, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/LICENSE": 6581019367004699816, + "venv/lib/python3.13/site-packages/jaraco/classes/properties.py": 6976928770004942858, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/RECORD": 1689342214025776630, + "venv/lib/python3.13/site-packages/passlib/utils/pbkdf2.py": 15802959653228956404, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/core.py": 14576109242055156193, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_describe.py": 362374422228593281, + "venv/lib/python3.13/site-packages/numpy/typing/__init__.pyi": 10058149460938883683, + "venv/lib/python3.13/site-packages/pandas/tests/interchange/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/conftest.py": 6137462119729731945, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/concat.py": 14737724508458849795, + "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/test_from_records.py": 12217508428903265797, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_iter.py": 9232021002336641851, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_quarter.py": 6795026338946382805, + "venv/lib/python3.13/site-packages/pygments/styles/onedark.py": 17580335614588531275, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_equals.py": 9903250467264848187, + "frontend/src/lib/components/dataset-review/__tests__/us3_execution_batch.ux.test.js": 13416996904332574966, + "venv/lib/python3.13/site-packages/numpy/tests/test_lazyloading.py": 17465787495701737655, + "frontend/build/_app/immutable/nodes/33.CfdkY3dS.js": 2445330550997666273, + "backend/src/core/mapping_service.py": 15428037653286485748, + "backend/src/api/routes/plugins.py": 4567336078922104278, + "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft_umath.cpython-313-x86_64-linux-gnu.so": 16443444849116065961, + "venv/lib/python3.13/site-packages/pandas/core/internals/api.py": 14632030170441237968, + "venv/lib/python3.13/site-packages/idna/core.py": 7725813731640753267, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_base_indexer.py": 3129123098288498633, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_like.pyi": 1968570015765106620, + "venv/lib/python3.13/site-packages/git/refs/log.py": 5175801243332619268, + "backend/src/plugins/translate/prompt_builder.py": 9619706108488955349, + "venv/lib/python3.13/site-packages/pip/_internal/operations/freeze.py": 3469845570614985559, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/__init__.py": 5863110456909134678, + "venv/lib/python3.13/site-packages/fastapi/datastructures.py": 727178955746650271, + "venv/lib/python3.13/site-packages/cryptography/hazmat/asn1/__init__.py": 4290669519959060720, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_resample_api.py": 3278209206670699265, + "venv/lib/python3.13/site-packages/pillow.libs/libXau-154567c4.so.6.0.0": 4340972632724893052, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh25337/use_data.f90": 14624074967635860696, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/oauth1_session.py": 1911069558956893789, + "venv/lib/python3.13/site-packages/dateutil/tz/win.py": 8427821225251397364, + "frontend/build/_app/immutable/chunks/Ba6EBhoo.js": 2037374271067685831, + "venv/lib/python3.13/site-packages/numpy/_typing/_dtype_like.py": 1598511035344858524, + "backend/src/api/routes/dataset_review.py": 3689614039699023362, + "venv/lib/python3.13/site-packages/numpy/_core/_internal.py": 13056946834347643109, + "venv/lib/python3.13/site-packages/numpy/_core/_methods.pyi": 9155045948490225716, + "venv/lib/python3.13/site-packages/passlib/pwd.py": 14727089240749133060, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_util.py": 13997184496924925110, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_riscv_unix.h": 8607317131295864391, + "venv/lib/python3.13/site-packages/pip/_internal/cli/command_context.py": 9426036980437931533, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/utils.py": 3710235316419562274, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_wrap.py": 17083394123203662880, + "frontend/e2e/helpers/api.helper.js": 12740720187461301874, + "backend/src/services/reports/__tests__/test_type_profiles.py": 17262223295445285285, + "venv/lib/python3.13/site-packages/git/cmd.py": 8854786163152637148, + "venv/lib/python3.13/site-packages/pydantic/error_wrappers.py": 11273827025986230629, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/config.py": 10707678943298497676, + "venv/lib/python3.13/site-packages/pygments/lexers/prql.py": 1159462562014166646, + "backend/src/core/utils/network.py": 2942301957401471733, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/constrain.py": 6513876973118703677, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/mongodb.py": 5310116401542377882, + "backend/src/plugins/translate/_batch_sizer.py": 14803922067332951736, + "venv/lib/python3.13/site-packages/numpy/lib/_histograms_impl.py": 13446184230476677032, + "venv/lib/python3.13/site-packages/rsa/key.py": 4783269051050521475, + "venv/lib/python3.13/site-packages/pluggy/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oidc/core/errors.py": 18154419146257747681, + "venv/lib/python3.13/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17": 7615380692384566654, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/dtype.pyi": 12178008080078679769, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_argon2.py": 11345706437113628133, + "venv/lib/python3.13/site-packages/dotenv/cli.py": 7952654621986067973, + "frontend/src/lib/stores/assistantChat.js": 13807808925025688939, + "frontend/src/lib/components/layout/sidebarNavigation.js": 1277379523298972456, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_modules.py": 16835987029123241300, + "backend/src/api/routes/__tests__/test_connections_routes.py": 18044815559820610056, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/ecdsa/_version.py": 17707102226558781833, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/errors.py": 17581857895562494222, + "frontend/src/routes/settings/MigrationMappingsTable.svelte": 4467573699012255407, + "venv/lib/python3.13/site-packages/pygments/lexers/business.py": 10410439210806697214, + "venv/lib/python3.13/site-packages/numpy/__config__.pyi": 1422114139050700402, + "venv/lib/python3.13/site-packages/pygments/lexers/factor.py": 15788613154609197002, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_analytics.py": 8155550493311083506, + "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/__init__.py": 6758781485387665020, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_ops.py": 14420421526781215500, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/METADATA": 10241403930811743893, + "backend/src/api/routes/clean_release_v2.py": 12814311709297749713, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/selectable.py": 14646717349365560549, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/fields.py": 10090313990429695520, + "venv/lib/python3.13/site-packages/numpy/core/function_base.py": 12696640832638144604, + "backend/src/api/routes/__tests__/test_git_status_route.py": 11848061697215496182, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_print.py": 598821365691498702, + "venv/lib/python3.13/site-packages/pandas/core/strings/__init__.py": 13025387151657797130, + "venv/lib/python3.13/site-packages/pygments/lexers/_usd_builtins.py": 8671446144574174964, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_misc.py": 9190561773853901527, + "venv/lib/python3.13/site-packages/pygments/unistring.py": 18037463865539157041, + "venv/lib/python3.13/site-packages/pillow.libs/libpng16-4a38ea05.so.16.53.0": 13136089038268964667, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/licenses/LICENSE": 17020744174398828059, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_inference.py": 5741637509343419942, + "venv/lib/python3.13/site-packages/starlette/authentication.py": 10905269573809129547, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatter.py": 16499277113779414101, + "venv/lib/python3.13/site-packages/attr/_cmp.pyi": 14443711863388606665, + "venv/lib/python3.13/site-packages/PIL/Hdf5StubImagePlugin.py": 15654153796225833950, + "venv/lib/python3.13/site-packages/yaml/scanner.py": 8554164423030397366, + "venv/lib/python3.13/site-packages/dateutil/tz/tz.py": 5258008267965780817, + "venv/lib/python3.13/site-packages/psycopg2/_ipaddress.py": 12332672835751787869, + "venv/lib/python3.13/site-packages/pydantic_settings/version.py": 17263591404988984480, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/utils.py": 617314300548081590, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/code.py": 9700811903057180696, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/RECORD": 963865046004908868, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/__init__.py": 9106887608906281686, + "venv/lib/python3.13/site-packages/PIL/WmfImagePlugin.py": 15685062825106444247, + "venv/lib/python3.13/site-packages/ecdsa/numbertheory.py": 13538480862642502330, + "venv/lib/python3.13/site-packages/_yaml/__init__.py": 3395829783751571350, + "venv/lib/python3.13/site-packages/numpy/f2py/__version__.pyi": 9759534743796867731, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/validator.py": 14200019408839159476, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nbit_base_example.pyi": 8571452382806614924, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_swaplevel.py": 3584770792383216626, + "venv/lib/python3.13/site-packages/pandas/io/common.py": 12088195203620154171, + "venv/lib/python3.13/site-packages/gitdb/db/loose.py": 17467413653016810702, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/auto.py": 12818217385551437286, + "venv/lib/python3.13/site-packages/pygments/style.py": 17393199235575070210, + "venv/lib/python3.13/site-packages/numpy/random/mtrand.pyi": 17144590106028661128, + "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/__init__.py": 4761936067832638585, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_constructors.py": 6440526981746306640, + "venv/lib/python3.13/site-packages/urllib3/util/ssltransport.py": 1175688460659745788, + "frontend/build/_app/immutable/chunks/CA7O3zHN.js": 783829162929040261, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_masm.obj": 2884737706935637437, + "venv/lib/python3.13/site-packages/passlib/handlers/roundup.py": 3844280972451753019, + "backend/src/api/routes/__init__.py": 7861712296282676167, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/comparisons.pyi": 4158883009780474220, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_semicolon_split.py": 8153770165829451525, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_conversion_utils.py": 1567199588622767277, + "venv/lib/python3.13/site-packages/rsa/__init__.py": 14623742580410014505, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/common.py": 16314033415206173235, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_frozen.py": 3484963987053884566, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py": 14571251344510763303, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/pysqlcipher.py": 11225173272050906977, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro_py.py": 11991492232381887787, + "venv/lib/python3.13/site-packages/numpy/core/_dtype.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_concat.py": 1351478313334379336, + "backend/src/services/clean_release/stages/internal_sources_only.py": 15680055221844544848, + "backend/src/plugins/storage/__init__.py": 5046554941488079204, + "venv/lib/python3.13/site-packages/_pytest/pathlib.py": 9719734558816066453, + "venv/lib/python3.13/site-packages/numpy/_core/umath.pyi": 11775804030935134661, + "venv/lib/python3.13/site-packages/fastapi/middleware/__init__.py": 5289703478893407762, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/tzconversion.pyi": 10947021928755741366, + "venv/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd": 1476688171642957054, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_first_valid_index.py": 15763400665851423183, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py": 15294662527620994511, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/einsumfunc.pyi": 200771351328522379, + "venv/lib/python3.13/site-packages/numpy/linalg/__init__.pyi": 18409133021422984774, + "venv/lib/python3.13/site-packages/pandas/tests/frame/conftest.py": 15090201792072045503, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/getitem.py": 556339939822508169, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/__init__.py": 14522970260621605208, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_frame.py": 4303613319747945709, + "venv/lib/python3.13/site-packages/PIL/__init__.py": 10393984345353752724, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/result.py": 12262298207886620908, + "venv/lib/python3.13/site-packages/pyasn1/type/useful.py": 10313387611927801339, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_apply.py": 8103417303073393969, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/testing.pyi": 9317922890783549326, + "venv/lib/python3.13/site-packages/PIL/QoiImagePlugin.py": 17663704273100331654, + "venv/lib/python3.13/site-packages/numpy/fft/__init__.py": 9343449448737026658, + "frontend/src/components/TaskHistory.svelte": 7819646903874958430, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-exp2.csv": 10950201682596097452, + "venv/lib/python3.13/site-packages/pandas/core/interchange/utils.py": 11401792151107207834, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/util.py": 9373891872370603585, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_overrides.py": 92685611709898742, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_ujson.py": 12184194085993665945, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_datetime64.py": 16272266806084058743, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/constants.pyi": 4415188581374004936, + "venv/lib/python3.13/site-packages/git/objects/util.py": 691018806932355307, + "venv/lib/python3.13/site-packages/pip/_internal/utils/compat.py": 1841193561752758336, + "venv/lib/python3.13/site-packages/pip/_internal/operations/install/wheel.py": 3531093454660385247, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_errstate.py": 10788459171326750780, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_xport.py": 14080914637071212225, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_datetimes.py": 7889573945417063183, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/client_credentials.py": 256154392957334831, + "venv/lib/python3.13/site-packages/numpy/random/_examples/numba/extending_distributions.py": 209769687436320665, + "venv/lib/python3.13/site-packages/numpy/f2py/use_rules.py": 17277594393032382485, + "venv/lib/python3.13/site-packages/websockets/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/_libs/interval.cpython-313-x86_64-linux-gnu.so": 8964760352224019544, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_list_accessor.py": 8613662386779664039, + "venv/lib/python3.13/site-packages/requests/certs.py": 16052880877156864882, + "venv/lib/python3.13/site-packages/pip/_internal/req/__init__.py": 12266077985828139928, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/signature.py": 3614545297259098566, + "venv/lib/python3.13/site-packages/pandas/tests/tools/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pydantic/decorator.py": 6984214881365537811, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/funcfortranname.f": 9330535808093475892, + "venv/lib/python3.13/site-packages/starlette/middleware/__init__.py": 9524277524025372856, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/WHEEL": 12146818530001975731, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_polybase.pyi": 3404315099794022355, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/__init__.py": 10357835306532281617, + "venv/lib/python3.13/site-packages/pygments/cmdline.py": 15628499088643246809, + "venv/bin/pyrsa-keygen": 8222542582170363672, + "venv/lib/python3.13/site-packages/pygments/styles/murphy.py": 8177992406082781615, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/multiarray.pyi": 17232959648651278910, + "backend/src/core/auth/__init__.py": 16435384828055133073, + "backend/src/services/dataset_review/repositories/__tests__/test_session_repository.py": 18317443814450756666, + "backend/tests/services/dataset_review/test_superset_matrix.py": 5114797134613078913, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/util.py": 3591114320020964752, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/core": 6622984507059115517, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/METADATA": 12747626683405487434, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/constant_time.py": 2499026008403328245, + "venv/lib/python3.13/site-packages/starlette/datastructures.py": 12097180838087229563, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/aead.py": 8740476942925346444, + "venv/lib/python3.13/site-packages/git/refs/head.py": 16271128287606894569, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pycparser/_c_ast.cfg": 2649342580905806389, + "backend/src/core/migration/archive_parser.py": 3022511117854063904, + "backend/src/api/routes/dashboards/_detail_routes.py": 12522696473630508473, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/serializer.py": 8708767945343850816, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/hstore.py": 9700253004947691961, + "venv/lib/python3.13/site-packages/pandas/core/arrays/datetimes.py": 10585034798097337148, + "backend/src/services/clean_release/demo_data_service.py": 1822246829322620623, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/legacy/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix_py.py": 6653895521961110080, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_rewrite_warning.py": 4895919872954538758, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/requirements.py": 11478648568700804705, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_serialization.py": 2011519400081029270, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/binding.py": 17078280153372356796, + "venv/lib/python3.13/site-packages/pip/_internal/network/xmlrpc.py": 5064964778750366059, + "venv/lib/python3.13/site-packages/fastapi/security/utils.py": 2616633862993539558, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_setops.py": 9991233160569430204, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/random.py": 12722750410117529986, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/events.py": 10224214051422678828, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/METADATA": 2604612822968175379, + "frontend/src/lib/components/layout/__tests__/test_topNavbar.svelte.js": 11053755879172333925, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_interval.py": 2613503970235591726, + "venv/lib/python3.13/site-packages/httpx/_api.py": 6697370469329778523, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_indexerrors.py": 4434868847540549873, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_multi_thread.py": 5660352470978621226, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_transpose.py": 1686867045869336370, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/RECORD": 17341460504914308184, + "venv/lib/python3.13/site-packages/_pytest/unittest.py": 10848803633530338204, + "venv/lib/python3.13/site-packages/secretstorage/util.py": 1004887530903069622, + "venv/lib/python3.13/site-packages/git/exc.py": 14278238357119816365, + "venv/lib/python3.13/site-packages/numpy/_core/getlimits.pyi": 15746478550640231553, + "backend/src/app.py": 4855165033640359841, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/shape.py": 13410030168622484801, + "venv/lib/python3.13/site-packages/PIL/PsdImagePlugin.py": 4347581352716313298, + "venv/lib/python3.13/site-packages/attr/_cmp.py": 3297594878548179300, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/issue232.py": 6498198296113395367, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/utils.py": 9959199071030996679, + "venv/lib/python3.13/site-packages/pydantic/version.py": 3699343596421001359, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/automap.py": 4672057253309608464, + "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js": 2331331717663585059, + "venv/lib/python3.13/site-packages/pyasn1/codec/der/encoder.py": 4790267438222037867, + "venv/lib/python3.13/site-packages/typing_inspection/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_time_grouper.py": 3203729024111501071, + "venv/lib/python3.13/site-packages/httpx/_decoders.py": 14478643473006178492, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/region.py": 12579403230062395563, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_generator_mt19937_regressions.py": 8981142329261965538, + "venv/lib/python3.13/site-packages/pandas/util/_validators.py": 10201915528715968165, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/request.py": 10492090878715126550, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/conftest.py": 3691712173202219606, + "venv/lib/python3.13/site-packages/pygments/lexers/ambient.py": 18106929781201758080, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_duplicates.py": 9830936017197354309, + "backend/src/core/ws_log_handler.py": 7507069843556560249, + "venv/lib/python3.13/site-packages/authlib/integrations/__init__.py": 15130871412783076140, + "backend/git_repos/remote/test-repo.git/objects/d5/0298a42699f39e4601c0aa23eab07bcb0703c7": 1966124163198751340, + "venv/lib/python3.13/site-packages/pluggy/__init__.py": 8269188363563356631, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/websockets/legacy/protocol.py": 762692033188392424, + "venv/lib/python3.13/site-packages/pandas/tests/test_take.py": 17628004130770326677, + "venv/lib/python3.13/site-packages/pandas/io/sas/sas_constants.py": 14492427939536692313, + "venv/lib/python3.13/site-packages/pygments/lexers/_sql_builtins.py": 5906655440517434734, + "venv/lib/python3.13/site-packages/pydantic/v1/_hypothesis_plugin.py": 6383299780629629080, + "backend/src/plugins/translate/executor.py": 15866803979457728942, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/rule.py": 5318344538761246105, + "venv/lib/python3.13/site-packages/greenlet/TExceptionState.cpp": 17617354576371846109, + "venv/lib/python3.13/site-packages/uvicorn/py.typed": 15240312484046875203, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/METADATA": 1684451390569121499, + "venv/lib/python3.13/site-packages/pydantic/functional_validators.py": 5835339743072048940, + "venv/lib/python3.13/site-packages/_pytest/unraisableexception.py": 4597178803320514675, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/ops.py": 13451323660386712332, + "venv/lib/python3.13/site-packages/pygments/lexers/eiffel.py": 8964563077187051946, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/WHEEL": 16097436423493754389, + "frontend/src/components/git/ConflictResolver.svelte": 2318922269446496715, + "venv/lib/python3.13/site-packages/pydantic/networks.py": 15767095796055034509, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py": 3369246520501764730, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/array.py": 12658302948819867972, + "frontend/src/lib/components/translate/TargetSchemaHint.svelte": 4679159885307545370, + "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/scipy_sparse.py": 2091608752719976909, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_stmts.f90": 6123192245816905092, + "backend/src/plugins/translate/dictionary_entries.py": 11394786590056973146, + "venv/lib/python3.13/site-packages/_pytest/setupplan.py": 7496801885995567141, + "venv/lib/python3.13/site-packages/cryptography/x509/extensions.py": 10197248868682803019, + "venv/lib/python3.13/site-packages/numpy/lib/_shape_base_impl.pyi": 12052895927933479005, + "venv/lib/python3.13/site-packages/pandas/core/missing.py": 13332302791063948992, + "frontend/src/types/dashboard.ts": 9718666955722367566, + "frontend/build/_app/immutable/nodes/4.BzDVorUu.js": 13882527286566275521, + "venv/lib/python3.13/site-packages/passlib/utils/compat/_ordered_dict.py": 14248790502300368024, + "venv/lib/python3.13/site-packages/sqlalchemy/connectors/asyncio.py": 4200928269459447593, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py": 5728866271812501558, + "run.sh": 4808871544409245302, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_describe.py": 14493300276133670380, + "venv/lib/python3.13/site-packages/pandas/core/tools/times.py": 6560679305255812809, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_inference.py": 16402427186697071465, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/oauth2_session.py": 7076806577412682835, + "venv/lib/python3.13/site-packages/websockets/asyncio/connection.py": 17044409627448400723, + "venv/lib/python3.13/site-packages/numpy/f2py/__version__.py": 8588600299261398598, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/__init__.py": 371829636800613137, + "venv/lib/python3.13/site-packages/PIL/ExifTags.py": 6869879826623916830, + "venv/lib/python3.13/site-packages/PIL/FpxImagePlugin.py": 18245056799205041866, + "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_enc_cryptography.py": 4383854709657749855, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_dtype.py": 12210524152630532747, + "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/METADATA": 11439969143853665311, + "venv/lib/python3.13/site-packages/pygments/lexers/x10.py": 6167378515780115912, + "venv/lib/python3.13/site-packages/pydantic/v1/error_wrappers.py": 5701679786078971939, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_find_common_type.py": 9581516171321396333, + "venv/lib/python3.13/site-packages/httpcore/_async/socks_proxy.py": 9026788710898138090, + "venv/lib/python3.13/site-packages/pydantic/json_schema.py": 15678278224696353978, + "venv/lib/python3.13/site-packages/pandas/tests/frame/common.py": 7426635866622531875, + "venv/lib/python3.13/site-packages/passlib/handlers/fshp.py": 13298827601291507295, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/bar.py": 12859947592168238832, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_explode.py": 18263694040596159591, + "venv/lib/python3.13/site-packages/pygments/lexers/func.py": 12257919753150082714, + "venv/lib/python3.13/site-packages/numpy/f2py/diagnose.pyi": 8607205990821121708, + "venv/lib/python3.13/site-packages/pydantic/v1/networks.py": 13262073155118055511, + "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_digest.py": 7988469818593853943, + "venv/lib/python3.13/site-packages/PIL/ImageDraw2.py": 13610162107593278891, + "frontend/src/routes/datasets/+page.svelte": 1253723176637759895, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_abstract_interface.py": 17625870734108222276, + "venv/lib/python3.13/site-packages/pandas/io/excel/_odfreader.py": 2760916559416783928, + "venv/lib/python3.13/site-packages/_pytest/python_api.py": 12953851690889336092, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/filesize.py": 13234856188049714485, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_unique.py": 6234921572794573905, + "frontend/vite.config.js": 982595057268821071, + "frontend/build/_app/immutable/nodes/9.DlvTV67I.js": 7721982509129807119, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_conversion.pyi": 11580106670226366710, + "venv/lib/python3.13/site-packages/numpy/lib/_type_check_impl.pyi": 2667658052734929089, + "venv/lib/python3.13/site-packages/pygments/lexers/unicon.py": 1155454077052833821, + "backend/src/services/clean_release/__init__.py": 18311663871116449547, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_partial_indexing.py": 4132091154215910029, + "venv/lib/python3.13/site-packages/numpy/lib/_nanfunctions_impl.py": 11621577915097515056, + "venv/lib/python3.13/site-packages/pyasn1/codec/native/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_delete.py": 3485374671877063217, + "venv/lib/python3.13/site-packages/pip/_internal/models/wheel.py": 10473287225032326206, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_round.py": 9358309072340573675, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/naming.py": 14503932124671438340, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/RECORD": 9964194961227523130, + "venv/lib/python3.13/site-packages/pandas/_testing/_io.py": 14264259716673715185, + "frontend/src/routes/migration/mappings/+page.svelte": 4566398049366943407, + "backend/src/plugins/git/__init__.py": 2144831474780401625, + "venv/lib/python3.13/site-packages/pip/_internal/cache.py": 210214424535803946, + "venv/lib/python3.13/site-packages/pandas/tests/extension/list/array.py": 8065856342131357421, + "venv/lib/python3.13/site-packages/rapidfuzz/__pyinstaller/test_rapidfuzz_packaging.py": 5189055608193366093, + "frontend/src/routes/datasets/review/ReviewWorkspaceLeftSidebar.svelte": 9009994851177005358, + "venv/lib/python3.13/site-packages/websockets/exceptions.py": 12048063047468402740, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/foo_deps.f90": 14350239197565389508, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libk5crypto-b1f99d5c.so.3.1": 10669523137596317954, + "venv/lib/python3.13/site-packages/pygments/lexers/_lilypond_builtins.py": 1766946089314631488, + "frontend/src/components/tasks/TaskResultPanel.svelte": 7735278333136205649, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_hashing.py": 11119284926039008503, + "venv/lib/python3.13/site-packages/pygments/styles/native.py": 4559566444883341527, + "venv/lib/python3.13/site-packages/pygments/lexers/modula2.py": 6575895980250662093, + "venv/lib/python3.13/site-packages/pillow.libs/libharfbuzz-0692f733.so.0.61230.0": 23110287346167671, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/endpoint.py": 13389763148720370546, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/graphql.py": 2307854666015224677, + "venv/lib/python3.13/site-packages/anyio/_core/_resources.py": 8463932838064724564, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_pickle.py": 3419420815386925630, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py": 12264234876933578367, + "backend/src/plugins/translate/_llm_call.py": 3746383528387033101, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_ssl_constants.py": 14834514243239777933, + "venv/lib/python3.13/site-packages/pydantic/deprecated/config.py": 12280996227531856230, + "venv/lib/python3.13/site-packages/pandas/api/extensions/__init__.py": 882327406374020760, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/WHEEL": 7795541085444298627, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_take.py": 1216902953519121176, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/WHEEL": 8600534672961461758, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming.pyi": 4432290176776357346, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/blocking.py": 3483388533957772681, + "venv/lib/python3.13/site-packages/ecdsa/der.py": 9374566189581725372, + "venv/lib/python3.13/site-packages/pydantic/_internal/_validators.py": 2939255306814626438, + "venv/lib/python3.13/site-packages/jeepney/tests/test_auth.py": 15125055415702968414, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_array.f90": 9711940829820746513, + "venv/lib/python3.13/site-packages/numpy/_core/strings.pyi": 1981676808027146409, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_searchsorted.py": 12074107109575676897, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_csky_gcc.h": 12929785267195988209, + "venv/lib/python3.13/site-packages/numpy/_core/_string_helpers.pyi": 12043292763005874815, + "venv/lib/python3.13/site-packages/numpy/lib/stride_tricks.py": 548928042543500365, + "venv/lib/python3.13/site-packages/numpy/lib/scimath.pyi": 18165025261847276375, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_compression.py": 8577756801858495168, + "frontend/e2e/tests/translation.e2e.js": 6244274143080191568, + "backend/tests/conftest.py": 14115149798000023183, + "venv/lib/python3.13/site-packages/pandas/tests/test_algos.py": 11860014896449369497, + "backend/alembic/versions/543d43d752b8_migrate_old_dictionary_entries_and_.py": 10988663686444687907, + "frontend/build/_app/immutable/chunks/CTk7LksI.js": 14741048309207626554, + "venv/lib/python3.13/site-packages/fastapi/__main__.py": 10755252341326986079, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/progress.py": 5951745251426856398, + "venv/lib/python3.13/site-packages/pip/_internal/models/pylock.py": 16697828625021519459, + "venv/lib/python3.13/site-packages/anyio/_core/_exceptions.py": 11969894261631227715, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi": 16042272072158438261, + "venv/lib/python3.13/site-packages/PIL/ImtImagePlugin.py": 17599267755504817169, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_infer_objects.py": 16868563755487479303, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/heuristics.py": 1422768761337195135, + "venv/lib/python3.13/site-packages/authlib/jose/drafts/__init__.py": 4770885427721822507, + "venv/lib/python3.13/site-packages/attr/converters.py": 5179615793507170642, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/base.py": 11386927749822539057, + "venv/lib/python3.13/site-packages/numpy/lib/_shape_base_impl.py": 16539612003028676816, + "venv/lib/python3.13/site-packages/numpy/typing/tests/test_runtime.py": 12534621594420844770, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_assign.py": 2647902466315482406, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_hermite_e.py": 8912795372542950449, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_uninstall.py": 3515239440812977025, + "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/test_decimal.py": 17811784255174057561, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/types.py": 356973910046950951, + "frontend/playwright-report/index.html": 14077910029911296246, + "venv/lib/python3.13/site-packages/numpy.libs/libscipy_openblas64_-096271d3.so": 14338208504131470036, + "venv/lib/python3.13/site-packages/_pytest/_code/code.py": 5248836309618416369, + "venv/lib/python3.13/site-packages/pandas/core/ops/dispatch.py": 7041711677358147534, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_lexsort.py": 10394832796613968484, + "venv/lib/python3.13/site-packages/_pytest/config/exceptions.py": 3199245296954654462, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/__init__.py": 2833016678144975576, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_mips_unix.h": 17373389962405490482, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/certs.py": 13366788049827102313, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/modules.pyi": 14176187662591164602, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_use.f90": 2657057181044959432, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_old_base.py": 191359377446257900, + "backend/src/services/reports/normalizer.py": 11408466232944555336, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/precision.f90": 5518911932373565642, + "venv/lib/python3.13/site-packages/apscheduler/triggers/calendarinterval.py": 12481650996882675949, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/METADATA": 9041650844081036822, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/__init__.py": 8880435562116660648, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_utils.pyi": 12312677132342982866, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reorder_levels.py": 10996225584998355824, + "backend/tests/services/clean_release/test_policy_resolution_service.py": 3471271299977247598, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_dists.py": 16746363359320577809, + "venv/lib/python3.13/site-packages/authlib/oauth2/__init__.py": 13682931764896414722, + "venv/lib/python3.13/site-packages/jeepney/bus.py": 5163075760432139100, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/__init__.py": 348469143777130970, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x32_unix.h": 9165722966153119887, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_function.py": 13492077564015386528, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_sort_index.py": 13517883160584591966, + "venv/lib/python3.13/site-packages/numpy/lib/format.py": 14971167445246135440, + "backend/tests/test_auth.py": 6167020718035755646, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_series.py": 2980850649986213051, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/WHEEL": 5838667082726674838, + "venv/lib/python3.13/site-packages/numpy/lib/_arrayterator_impl.py": 4037074830103951000, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_implementation.py": 12245524932757110911, + "venv/lib/python3.13/site-packages/passlib/utils/__init__.py": 11704122205941631503, + "venv/lib/python3.13/site-packages/passlib/tests/__main__.py": 16477180140297957650, + "venv/lib/python3.13/site-packages/pandas/arrays/__init__.py": 10005095663840461954, + "venv/lib/python3.13/site-packages/PIL/PcdImagePlugin.py": 922809545463280224, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/indexers/__init__.py": 1756397319068017890, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_api.py": 13739775047493489785, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_row.py": 918740441973901148, + "venv/lib/python3.13/site-packages/ecdsa/curves.py": 812969717084691115, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/core/indexes/category.py": 18192569199634406001, + "venv/lib/python3.13/site-packages/websockets/legacy/framing.py": 12759022769700230409, + "venv/lib/python3.13/site-packages/packaging/pylock.py": 15346942039643310253, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/LICENSE": 12064892310002036996, + "venv/lib/python3.13/site-packages/anyio/_core/_asyncio_selector_thread.py": 1760597191437520000, + "backend/src/services/clean_release/repositories/compliance_repository.py": 7402628017251283691, + "venv/lib/python3.13/site-packages/anyio/_core/_tasks.py": 14104828341875599130, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/qt.py": 12828696264909048448, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq.pyi": 16372699564794732463, + "venv/lib/python3.13/site-packages/_pytest/mark/structures.py": 12237146603608917650, + "venv/lib/python3.13/site-packages/numpy/random/_common.pyi": 5094115692952609118, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286.pyf": 14358606965464506398, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_nth.py": 17151595277666975085, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/codec.py": 14814999235499530522, + "venv/lib/python3.13/site-packages/dotenv/variables.py": 5438726379749803751, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm32_gcc.h": 3561524604274567339, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_cov_corr.py": 13652339565475304679, + "venv/lib/python3.13/site-packages/numpy/_typing/_shape.py": 12667553664122376205, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_read_fwf.py": 13684564756628524738, + "frontend/src/lib/stores/__tests__/mocks/env_public.js": 2540122820969872185, + "venv/lib/python3.13/site-packages/pydantic/deprecated/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/dotenv/__init__.py": 15464030923609356017, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_cython_aggregations.py": 10818895573637904764, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/theme.py": 14225878259183479398, + "frontend/src/lib/components/translate/TranslationRunResult.svelte": 3992997916593732645, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/METADATA": 4954909612926293404, + "venv/lib/python3.13/site-packages/urllib3/util/wait.py": 14629837381061032546, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/rethinkdb.py": 16413299263077970925, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_fillna.py": 9297637486401098611, + "frontend/src/services/gitService.js": 7044825476968825357, + "backend/src/plugins/translate/__tests__/test_dictionary_crud.py": 11087404884677896422, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_macos.py": 7028037591427052891, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/syntax.py": 18070449217682341495, + "venv/lib/python3.13/site-packages/pip/_vendor/typing_extensions.py": 10158933506062403688, + "venv/lib/python3.13/site-packages/pandas/_libs/lib.cpython-313-x86_64-linux-gnu.so": 6452315003728497116, + "frontend/build/_app/immutable/nodes/16.Ddm2P6Xv.js": 12894357498590591683, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg2cffi.py": 5997687240967250164, + "venv/lib/python3.13/site-packages/PIL/ImageShow.py": 11437096951764124817, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/licenses/COPYING": 15270149301471737292, + "venv/lib/python3.13/site-packages/numpy/f2py/auxfuncs.pyi": 10077265709692546934, + "venv/lib/python3.13/site-packages/numpy/_core/_string_helpers.py": 17192211156810267818, + "venv/lib/python3.13/site-packages/pygments/lexers/foxpro.py": 14032656072384708293, + "venv/lib/python3.13/site-packages/psycopg2/sql.py": 18041240927130590808, + "backend/src/core/utils/superset_context_extractor/__init__.py": 1074191108198498747, + "backend/git_repos/remote/test-repo.git/objects/6a/f2b28e314c04fb4e03476c12d6491213591512": 4526311953587849385, + "venv/lib/python3.13/site-packages/pyasn1/codec/ber/eoo.py": 5126566925877730303, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rank.py": 14115215895836854973, + "venv/lib/python3.13/site-packages/jsonschema/protocols.py": 847332300543820834, + "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs_scalars.pyi": 1826323011169529229, + "venv/lib/python3.13/site-packages/pandas/core/arrays/__init__.py": 10460719978124302175, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/fastapi/temp_pydantic_v1_params.py": 9436036880518047720, + "venv/lib/python3.13/site-packages/pandas/core/window/ewm.py": 12143982379243011357, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_snap.py": 4515844385819802784, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_compat.py": 6032546839876195115, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_shape_base.py": 4117141349022217163, + "venv/lib/python3.13/site-packages/sqlalchemy/util/concurrency.py": 1325673503812009695, + "venv/lib/python3.13/site-packages/pygments/lexers/math.py": 1647133236144311250, + "frontend/build/_app/immutable/chunks/D0x3O7MA.js": 5796228701724686318, + "venv/lib/python3.13/site-packages/pyasn1/codec/cer/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/authlib/oidc/registration/__init__.py": 9448552677419908109, + "venv/lib/python3.13/site-packages/passlib/handlers/pbkdf2.py": 16686685453577026643, + "venv/lib/python3.13/site-packages/numpy/_core/_struct_ufunc_tests.cpython-313-x86_64-linux-gnu.so": 13269324887178340397, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_utils.py": 8668650648802195016, + "venv/lib/python3.13/site-packages/numpy/version.pyi": 5075382895829889457, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90": 6219951399575860362, + "venv/lib/python3.13/site-packages/pandas/tests/window/conftest.py": 10673264126684571493, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_append.py": 13152738905565588661, + "venv/lib/python3.13/site-packages/_pytest/doctest.py": 6126919596776592278, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_constructors.py": 9767900500541600486, + "venv/lib/python3.13/site-packages/git/objects/submodule/root.py": 5322248117564025370, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_compare.py": 171535659467902751, + "backend/src/plugins/translate/__tests__/test_dictionary_filter.py": 12872406014365116097, + "venv/lib/python3.13/site-packages/starlette/staticfiles.py": 11256974306202558529, + "venv/lib/python3.13/site-packages/pluggy/_callers.py": 1042673447718196223, + "venv/lib/python3.13/site-packages/passlib/handlers/postgres.py": 14162382430051693313, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/REQUESTED": 15130871412783076140, + "docker/frontend.entrypoint.sh": 11397342350356400663, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/take.py": 3170415198452493008, + "venv/lib/python3.13/site-packages/more_itertools/__init__.py": 9858612105173082060, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/array_constructors.py": 6727209833819502644, + "venv/lib/python3.13/site-packages/pip/_internal/models/scheme.py": 4101322315594430874, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/sync_app.py": 14788764260762890368, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_deprecations.py": 8310244516175542839, + "venv/lib/python3.13/site-packages/anyio/pytest_plugin.py": 4165280709813718099, + "venv/lib/python3.13/site-packages/pandas/core/computation/parsing.py": 3084943521520476999, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_subclassing.py": 17318983445227658412, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_tz_localize.py": 4937713043686953098, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_indexing.py": 14552860427542050771, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_to_offset.py": 3929599794655343911, + "venv/lib/python3.13/site-packages/pydantic/v1/class_validators.py": 6471688474853407718, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_expanding.py": 9047466276603454007, + "frontend/build/_app/immutable/chunks/BlE1D1OH.js": 15319402638214325430, + "venv/lib/python3.13/site-packages/pandas/core/groupby/__init__.py": 3015263524218708013, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_ufunc.py": 669019702416198889, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arrayprint.pyi": 2053388407376896377, + "venv/lib/python3.13/site-packages/urllib3/util/ssl_.py": 11720964010284185952, + "backend/src/api/routes/dashboards/__init__.py": 15214026957520044598, + "venv/lib/python3.13/site-packages/httpx/_content.py": 1301854837767395687, + "venv/lib/python3.13/site-packages/pandas/core/methods/__init__.py": 15130871412783076140, + "backend/src/api/routes/dashboards/_router.py": 8641007051243802224, + "venv/lib/python3.13/site-packages/gitdb/db/__init__.py": 2615504918450276693, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_export_format.py": 17862222951776199694, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix.pyi": 2700568594438441246, + "venv/lib/python3.13/site-packages/referencing/tests/test_jsonschema.py": 9815500901482570619, + "venv/lib/python3.13/site-packages/numpy/_typing/_extended_precision.py": 4201820494689784136, + "venv/lib/python3.13/site-packages/pygments/lexers/jslt.py": 11805394130669644345, + "venv/lib/python3.13/site-packages/pygments/lexers/_stan_builtins.py": 1961875544235948177, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py": 3960540415600165213, + "venv/lib/python3.13/site-packages/pandas/_libs/groupby.cpython-313-x86_64-linux-gnu.so": 14931394220112658268, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_string.py": 9224234539232195189, + "venv/lib/python3.13/site-packages/attrs/converters.py": 13109003765349201809, + "venv/lib/python3.13/site-packages/sqlalchemy/schema.py": 16029542421991709659, + "venv/lib/python3.13/site-packages/git/util.py": 7424113599506269603, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/factory.py": 3042005457138956499, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/test_interval_new.py": 3893421355544517336, + "venv/lib/python3.13/site-packages/pandas/tests/extension/json/__init__.py": 7877061921210840955, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers.py": 4940305787631493030, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/oct_key.py": 11504245602045724, + "venv/lib/python3.13/site-packages/pycparser/yacctab.py": 18018314512916353707, + "venv/lib/python3.13/site-packages/numpy/f2py/capi_maps.py": 2490579175967301457, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_quoting.py": 1147992698412929658, + "venv/lib/python3.13/site-packages/urllib3/__init__.py": 1854778274753799815, + "venv/lib/python3.13/site-packages/pygments/lexers/sophia.py": 15971500155124949058, + "frontend/src/routes/settings/LoggingSettings.svelte": 1737218883899664063, + "venv/lib/python3.13/site-packages/pip/_internal/models/target_python.py": 422323125651848065, + "venv/lib/python3.13/site-packages/rapidfuzz/_common_py.py": 15410157970973169427, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_infer_dtype.py": 1647214604678171565, + "frontend/build/_app/immutable/nodes/23.CSjTM9NG.js": 13450534552253478548, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/WHEEL": 9131187629260560775, + "frontend/build/_app/immutable/chunks/CFh-aOc_.js": 16795336353623031933, + "backend/src/models/__tests__/test_clean_release.py": 3448406855108346883, + "venv/lib/python3.13/site-packages/pygments/lexers/smalltalk.py": 6113431347120223592, + "venv/lib/python3.13/site-packages/numpy/_core/arrayprint.pyi": 84606125837677197, + "backend/git_repos/remote/test-repo.git/hooks/prepare-commit-msg.sample": 7530253302780245896, + "frontend/build/_app/immutable/chunks/DU4MtuMl.js": 14717365893620949586, + "frontend/build/_app/immutable/chunks/CNLYuUB9.js": 17587259240659633356, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_arithmetic.py": 13320788210970132239, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/common.py": 9354442374897565498, + "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/__init__.py": 15991623390785635773, + "venv/lib/python3.13/site-packages/numpy/_pytesttester.pyi": 5750506937526308405, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/WHEEL": 16097436423493754389, + "backend/src/core/config_manager.py": 18161236261317111528, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_conversion.py": 12184280074522274780, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_count.py": 9186538441380080087, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/numeric.py": 14451517189908259173, + "venv/lib/python3.13/site-packages/numpy/_core/_exceptions.py": 5570375156851166818, + "venv/lib/python3.13/site-packages/multipart/multipart.py": 26386459953377432, + "venv/lib/python3.13/site-packages/jose/__init__.py": 15575670403380555945, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/reporters.py": 10760889726586439724, + "venv/lib/python3.13/site-packages/_pytest/junitxml.py": 5871715626272366062, + "venv/lib/python3.13/site-packages/pygments/styles/rrt.py": 9490973359165080360, + "backend/src/services/dataset_review/event_logger.py": 8083530196989488371, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/__init__.py": 15130871412783076140, + "backend/git_repos/remote/test-repo.git/objects/e9/1109abe29d5228675fecd6fc38a097147c090d": 15716642455993350072, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_excel.py": 5467043641314706635, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/appengine.py": 16194997685865850655, + "venv/lib/python3.13/site-packages/pygments/lexers/_googlesql_builtins.py": 12251289884604745945, + "venv/lib/python3.13/site-packages/pygments/lexers/macaulay2.py": 8022891778577314212, + "venv/lib/python3.13/site-packages/pandas/plotting/_core.py": 6766059152026241747, + "venv/lib/python3.13/site-packages/numpy/fft/tests/test_pocketfft.py": 18025182347224285050, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/json.py": 14738429697319670035, + "backend/src/api/routes/translate/_run_routes.py": 6617818713940695689, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/gh_22819.pyf": 14717748358749934995, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/jeepney/io/tests/test_trio.py": 7459901627473962540, + "venv/lib/python3.13/site-packages/apscheduler/executors/twisted.py": 2695602672085615762, + "venv/lib/python3.13/site-packages/pydantic/validate_call_decorator.py": 11130572937843915026, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_version.pyi": 18093228021414910594, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/ranges.py": 14549386056660231279, + "venv/lib/python3.13/site-packages/pandas/core/window/__init__.py": 15180240812077877933, + "frontend/build/favicon.svg": 6451919037497541980, + "venv/lib/python3.13/site-packages/pandas/tests/strings/conftest.py": 12065119814157197510, + "venv/lib/python3.13/site-packages/numpy/lib/_ufunclike_impl.pyi": 9854069702366900663, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_logical_ops.py": 4438104524064299182, + "venv/lib/python3.13/site-packages/PIL/EpsImagePlugin.py": 1824020964179364491, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_polynomial.pyi": 4266795948450921502, + "venv/lib/python3.13/site-packages/requests/exceptions.py": 6474239743209354989, + "venv/lib/python3.13/site-packages/smmap/test/lib.py": 2924931247676024085, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/pytestplugin.py": 1591034895268415944, + "venv/lib/python3.13/site-packages/pygments/lexers/python.py": 8995519134978505744, + "frontend/src/routes/+layout.svelte": 2748734957389681795, + "venv/lib/python3.13/site-packages/annotated_types/__init__.py": 7367790549779882749, + "frontend/build/_app/immutable/chunks/x6uj_Szm.js": 18390522503436031837, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/urllib3/_version.py": 839747992523118887, + "venv/lib/python3.13/site-packages/pygments/lexers/scdoc.py": 8481749542463754279, + "venv/lib/python3.13/site-packages/pydantic/plugin/__init__.py": 16803973597469216174, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_getitem.py": 11882213323878588707, + "venv/lib/python3.13/site-packages/websockets/speedups.cpython-313-x86_64-linux-gnu.so": 10941658763526595989, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/datasource.pyi": 80441145804744162, + "venv/lib/python3.13/site-packages/numpy/core/_dtype_ctypes.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_dict.py": 16252265723192124609, + "venv/lib/python3.13/site-packages/numpy/linalg/lapack_lite.pyi": 14069586330277925998, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/conftest.py": 25473177671450048, + "frontend/src/lib/components/health/HealthMatrix.svelte": 13165441444996153191, + "frontend/src/components/tools/ConnectionList.svelte": 13697819455163305485, + "backend/src/api/routes/translate/__init__.py": 6357999798616465776, + "frontend/src/routes/dashboards/[id]/components/DashboardLinkedResources.svelte": 8279080994517688482, + "venv/lib/python3.13/site-packages/secretstorage/__init__.py": 4535964275649588672, + "backend/src/plugins/translate/orchestrator_aggregator.py": 14747269098451697881, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh2848.f90": 5799106109999071412, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/authorization_code.py": 4958605540994687737, + "venv/lib/python3.13/site-packages/numpy/ma/extras.pyi": 15292036493781556342, + "venv/lib/python3.13/site-packages/pygments/formatters/latex.py": 7514533384468139434, + "venv/lib/python3.13/site-packages/fastapi/responses.py": 6092572095549573593, + "venv/lib/python3.13/site-packages/pillow.libs/libfreetype-ee1c40c4.so.6.20.4": 12301510769231120312, + "venv/lib/python3.13/site-packages/jsonschema/validators.py": 3832874295500213309, + "backend/git_repos/remote/test-repo.git/objects/ed/0432f88f5f7d95b26ecde34345abe741dd9db2": 13426916511127204463, + "venv/lib/python3.13/site-packages/jeepney/io/threading.py": 525625939662612746, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi": 13850254283540522444, + "venv/lib/python3.13/site-packages/numpy/lib/user_array.py": 14003456655595459585, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_rank.py": 5398520257852104723, + "venv/lib/python3.13/site-packages/pygments/lexers/capnproto.py": 15713281507099411738, + "frontend/build/_app/immutable/nodes/27.Dn-mhUTi.js": 2848146029949297716, + "venv/lib/python3.13/site-packages/numpy/random/tests/__init__.py": 15130871412783076140, + "backend/src/api/auth.py": 13309519397410879911, + "venv/lib/python3.13/site-packages/numpy/matrixlib/defmatrix.py": 4940170059946018356, + "frontend/build/_app/immutable/chunks/BLdlpp5i.js": 11984092703547102139, + "backend/src/services/clean_release/candidate_service.py": 8516915994721977806, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/oauth1_client.py": 3129955464287331242, + "venv/lib/python3.13/site-packages/cryptography/x509/name.py": 15338066443257445241, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_categorical.py": 1329115818264527103, + "venv/lib/python3.13/site-packages/pandas/io/formats/string.py": 14718123345899686696, + "backend/src/services/git_service.py": 1930048176535450912, + "venv/lib/python3.13/site-packages/keyring/completion.py": 1027436016070040568, + "frontend/e2e/fixtures/global-setup.js": 1597253740213759490, + "backend/src/plugins/translate/dictionary_correction.py": 18051915404774774954, + "venv/lib/python3.13/site-packages/numpy/linalg/_linalg.py": 9654828595008925976, + "venv/lib/python3.13/site-packages/pygments/styles/emacs.py": 4540417536507245024, + "backend/src/services/git/_merge.py": 16183885992149357137, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/conversion.pyi": 16976386782787920450, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE": 4274653168153720331, + "venv/lib/python3.13/site-packages/fastapi/utils.py": 15402403831700548944, + "venv/lib/python3.13/site-packages/numpy/__init__.pyi": 15820654525292895396, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_drop_duplicates.py": 2397396876872403048, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/multiprocess.py": 10047012560534876149, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo_fixed.f90": 8079594129222364031, + "venv/lib/python3.13/site-packages/jose/backends/ecdsa_backend.py": 2684176977865283060, + "venv/lib/python3.13/site-packages/pip/_internal/commands/freeze.py": 8644678595442275485, + "venv/lib/python3.13/site-packages/referencing/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_index.py": 12015738970771703312, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/validator.py": 11486125578281617670, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/generator_pcg64_np121.pkl.gz": 4708588000144933291, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/scalar_string.f90": 15018631706178918578, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_indexing.py": 16264430536704066847, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_ratio.py": 940213488194452623, + "venv/lib/python3.13/site-packages/pyasn1/type/constraint.py": 16776615503418773283, + "venv/lib/python3.13/site-packages/pytest_asyncio/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/iolang.py": 10997512999728724130, + "venv/lib/python3.13/site-packages/authlib/oidc/discovery/well_known.py": 8259335680633926377, + "venv/lib/python3.13/site-packages/websockets/asyncio/server.py": 885415484558949506, + "frontend/src/routes/git/+page.svelte": 14169430923974356254, + "backend/src/core/middleware/__init__.py": 13917394130915533209, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_mem_overlap.py": 4202716587079637350, + "backend/src/scripts/seed_superset_load_test.py": 12317164691465196579, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_setops.py": 15365064654930699428, + "backend/src/services/clean_release/repository.py": 11403333156347178483, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_pbkdf2.py": 4977067068389993374, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_errors.py": 3301889847545579393, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/f2py/cfuncs.py": 10803011906582324302, + "venv/bin/activate": 14735074000123383125, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/errors.py": 16711622442922413520, + "venv/lib/python3.13/site-packages/pandas/tests/series/__init__.py": 15130871412783076140, + "backend/src/plugins/llm_analysis/scheduler.py": 14673660738877638091, + "venv/lib/python3.13/site-packages/jeepney/io/tests/conftest.py": 13381752264278264218, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/licenses/_spdx.py": 17182188548503720124, + "venv/lib/python3.13/site-packages/_pytest/_py/error.py": 2257336434271433543, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api2.pyx": 15936470837420356071, + "venv/lib/python3.13/site-packages/PIL/_typing.py": 17407980360703360848, + "venv/lib/python3.13/site-packages/keyring/core.py": 2764269590123131634, + "venv/lib/python3.13/site-packages/ecdsa/ecdsa.py": 9770689913380927623, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/auto.py": 15947958974558543657, + "venv/lib/python3.13/site-packages/certifi/cacert.pem": 14727832973577663826, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/jwt.py": 9642615960197748105, + "venv/lib/python3.13/site-packages/packaging/requirements.py": 2896326326372719999, + "venv/lib/python3.13/site-packages/pandas/io/formats/info.py": 215303194287834907, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_constructors.py": 11065058462752831997, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_loop.py": 6502725909989655118, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_categorical.py": 18254320571347851153, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_timezones.py": 4771674179164304731, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_chaining_and_caching.py": 15814259766479305290, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/characteristics.py": 2916810597149066609, + "venv/lib/python3.13/site-packages/PIL/ImageWin.py": 13635870584232081323, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_printing.py": 1901396869745313303, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/base.py": 13444129650880426353, + "frontend/src/components/TaskList.svelte": 3024343043730631288, + "venv/lib/python3.13/site-packages/starlette/middleware/trustedhost.py": 8302185291610019926, + "venv/lib/python3.13/site-packages/passlib/tests/test_hosts.py": 8284535274820610802, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/models.py": 5656065513234782067, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_re.py": 1296579393600719224, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_function_base.py": 15241999259666702619, + "venv/lib/python3.13/site-packages/fastapi/staticfiles.py": 4094330072433302614, + "venv/lib/python3.13/site-packages/requests/sessions.py": 6936640856092320928, + "venv/lib/python3.13/site-packages/numpy/_typing/_nbit_base.pyi": 6546751036506752550, + "venv/lib/python3.13/site-packages/numpy/__init__.py": 2331213407497901634, + "venv/lib/python3.13/site-packages/pandas/_libs/sparse.cpython-313-x86_64-linux-gnu.so": 2051484129454294720, + "venv/lib/python3.13/site-packages/attr/_make.py": 2348458829123990579, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_numeric_only.py": 13610631681447961840, + "venv/lib/python3.13/site-packages/pandas/_libs/ops.cpython-313-x86_64-linux-gnu.so": 10490009128553397250, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_repr.py": 5577699046802107144, + "venv/lib/python3.13/site-packages/PIL/_imagingcms.cpython-313-x86_64-linux-gnu.so": 15198265718775753589, + "venv/lib/python3.13/site-packages/pygments/lexers/ruby.py": 6898093948224302592, + "venv/lib/python3.13/site-packages/pygments/lexers/automation.py": 8021926838024836904, + "venv/lib/python3.13/site-packages/keyring/testing/backend.py": 14295829193445781542, + "venv/lib/python3.13/site-packages/pygments/lexers/oberon.py": 15220143799603451830, + "frontend/src/routes/datasets/review/__tests__/dataset_review_entry.test.js": 7689381541193660594, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/RECORD": 15865206372525596795, + "backend/src/services/clean_release/publication_service.py": 1882863137548904782, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/__init__.py": 4781700006554860887, + "venv/lib/python3.13/site-packages/pandas/core/arrays/integer.py": 7775055011080964709, + "venv/lib/python3.13/site-packages/PIL/TgaImagePlugin.py": 9208942494595222259, + "frontend/src/lib/components/reports/ReportsList.svelte": 15460090587871611258, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/__init__.py": 5027355874704300832, + "backend/tests/test_dashboards_api.py": 2278794209397518464, "venv/lib/python3.13/site-packages/numpy/polynomial/chebyshev.pyi": 5269136485429780038, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rename_axis.py": 12432900682994622455, + "venv/lib/python3.13/site-packages/dotenv/__main__.py": 16883579879172186355, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_misc.py": 16393451200513733144, + "backend/src/api/routes/git/__init__.py": 14824479456728364642, + "venv/lib/python3.13/site-packages/numpy/ma/__init__.py": 214772578978182427, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/RECORD": 11111103193315065053, + "frontend/src/pages/Dashboard.svelte": 3653104499351855122, + "backend/alembic/versions/aa1b2c3d4e5f_drop_deprecated_translate_columns.py": 15433357059529111004, + "frontend/build/_app/immutable/chunks/Bbsm9eoK.js": 15498683014087735706, + "venv/lib/python3.13/site-packages/greenlet/greenlet_refs.hpp": 8525862687669040510, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_tools.py": 13994164937603424236, + "frontend/src/routes/dashboards/health/+page.svelte": 5234355531444674267, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_from_dummies.py": 5670811108950300761, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize_py.py": 6518425342376455821, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/locations/base.py": 7966628150470073365, + "venv/lib/python3.13/site-packages/pydantic/experimental/pipeline.py": 9493054841465227788, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler.pyi": 9003794318682878317, + "venv/lib/python3.13/site-packages/numpy/_core/_exceptions.pyi": 3661113433078225952, + "venv/lib/python3.13/site-packages/packaging/specifiers.py": 2800449842990194437, + "backend/src/services/health_service.py": 7295235621662158359, + "venv/lib/python3.13/site-packages/pycparser/_build_tables.py": 569728086093219621, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/useless_keywords.py": 11487954623214475915, + "venv/lib/python3.13/site-packages/pygments/lexers/actionscript.py": 8829560731160428621, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/keywrap.py": 10424037418528425800, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_get.py": 10255752806860493777, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/__main__.py": 11917862648584782420, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/f2py/func2subr.py": 338595621218646492, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_finalize.py": 12539815426478689538, + "venv/lib/python3.13/site-packages/httpx/_multipart.py": 2181282475656908730, + "venv/lib/python3.13/site-packages/passlib/crypto/des.py": 14699826058580193499, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_categorical.py": 9923236395692943732, + "venv/lib/python3.13/site-packages/httpcore/_async/__init__.py": 491192949420297153, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/parsing.pyi": 11967691665766452312, + "venv/lib/python3.13/site-packages/idna/package_data.py": 6583909243002417298, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_core.py": 12712110303898046818, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/unicode_comment.f90": 11326797716215117266, + "venv/lib/python3.13/site-packages/ecdsa/keys.py": 10281170640484982154, + "venv/lib/python3.13/site-packages/passlib/handlers/scrypt.py": 10089372287597257402, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_windows_renderer.py": 1076842273781909680, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_nlargest.py": 1423106021399469694, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_subplots.py": 4596089143375088346, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/reductions/test_stat_reductions.py": 11569525436540769152, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/manifest.py": 16998683210177680416, + "venv/lib/python3.13/site-packages/gitdb/typ.py": 16374739906244805047, + "venv/lib/python3.13/site-packages/pandas/_testing/_hypothesis.py": 12298650110193262367, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/__init__.py": 13841777369501476946, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/default_comparator.py": 47118577003622736, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/infer.py": 12541904372617915365, + "venv/lib/python3.13/site-packages/pygments/styles/stata_dark.py": 324072437809944751, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_shift.py": 14681514853406253657, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reindex.py": 8772423071604000084, + "backend/src/schemas/auth.py": 12332369795585412464, + "backend/src/plugins/translate/__tests__/test_target_schema.py": 11106552605714639145, + "venv/lib/python3.13/site-packages/cryptography/x509/base.py": 9124948989225782039, + "venv/lib/python3.13/site-packages/jeepney/io/blocking.py": 4699555965372200059, + "venv/lib/python3.13/site-packages/idna/uts46data.py": 5698404064763638591, + "venv/lib/python3.13/site-packages/pip/_internal/operations/install/editable_legacy.py": 8145740626773638218, + "venv/lib/python3.13/site-packages/numpy/ma/testutils.pyi": 3899348061346041413, + "frontend/src/routes/tools/debug/+page.svelte": 8699044541980877686, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/fromnumeric.py": 3792079757208879362, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/timeout.py": 1807228452024740476, + "venv/lib/python3.13/site-packages/apscheduler/util.py": 11440701924954413440, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_constructors.py": 11786151805350138436, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_date_range.py": 16128552513324017349, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_libsparse.py": 1859997684694949029, + "venv/lib/python3.13/site-packages/dateutil/_version.py": 8279235793001245767, + "venv/lib/python3.13/site-packages/pygments/lexers/bare.py": 18266858932333619451, + "venv/lib/python3.13/site-packages/numpy/tests/__init__.py": 15130871412783076140, + "venv/bin/httpx": 6651007446865716794, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_constructors.py": 5627819885594450614, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/simple.py": 11050636051019777317, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/base.py": 10514193453447954780, + "frontend/src/lib/components/dataset-review/ExecutionMappingReview.svelte": 6341989866442424314, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/array_constructors.pyi": 4993066609272697419, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/websockets/__init__.py": 4916307256304054040, + "venv/lib/python3.13/site-packages/httpcore/__init__.py": 5897259569277532401, + "venv/lib/python3.13/site-packages/pandas/compat/pickle_compat.py": 11073483984394766474, + "venv/lib/python3.13/site-packages/ecdsa/_sha3.py": 10353612776869489378, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/utils.py": 2959395751217827103, + "venv/lib/python3.13/site-packages/sqlalchemy/util/queue.py": 1289234691048379395, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-objarr.npy": 9694707264403109829, + "venv/lib/python3.13/site-packages/pandas/core/indexing.py": 15507869313676722071, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/pymssql.py": 6650008663791598065, + "venv/lib/python3.13/site-packages/pygments/lexers/typoscript.py": 6706632522710582762, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/common_with_division.f": 13517753924061311074, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/setup.py": 17086801293303202021, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/dependency.py": 7300594038182867460, + "venv/lib/python3.13/site-packages/websockets/auth.py": 499195617702591757, + "backend/src/plugins/translate/service_bulk_replace.py": 5355744069308185607, + "venv/lib/python3.13/site-packages/jsonschema/cli.py": 9813914882090789748, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/compat.py": 5871636909854554063, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html.tpl": 12550218314797699304, + "frontend/src/routes/datasets/review/ReviewWorkspaceHeader.svelte": 15302107925819930527, + "merge_kilo.py": 4282227344165325430, + "backend/tests/test_translate_scheduler_execution.py": 16687335504320865378, + "venv/lib/python3.13/site-packages/numpy/_core/__init__.pyi": 2783897020308040960, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/char.pyi": 13143560686049627445, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_extint128.py": 11074657869101074458, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_chaining_and_caching.py": 11784574265874608859, + "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/fallback.py": 4260636031748548345, + "venv/lib/python3.13/site-packages/pygments/lexers/chapel.py": 7619603166448145621, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/warnings_and_errors.py": 11172336980866895356, + "venv/lib/python3.13/site-packages/pygments/styles/coffee.py": 17584414468786822371, + "venv/lib/python3.13/site-packages/numpy/_typing/_array_like.py": 2161873439361281488, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/METADATA": 16498441272591167134, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/value_attrspec/gh21665.f90": 11945588837236968550, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/_libs/testing.cpython-313-x86_64-linux-gnu.so": 16758333404587340103, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_byteswap.py": 5090287710338893350, + "venv/lib/python3.13/site-packages/git/objects/fun.py": 15014209679156260865, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufuncs.pyi": 1808147181379894521, + "venv/lib/python3.13/site-packages/pygments/styles/paraiso_dark.py": 3976779833379189837, + "venv/lib/python3.13/site-packages/pandas/core/indexes/range.py": 3838277376774246164, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/METADATA": 14070889071949105584, + "venv/lib/python3.13/site-packages/greenlet/_greenlet.cpython-313-x86_64-linux-gnu.so": 6036818030377883416, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi": 7801211423226951223, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_cat_accessor.py": 4304062895283374927, + "frontend/src/components/tools/MapperTool.svelte": 5334953422209152843, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/extension_types.py": 1856757457657310231, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/util.py": 4815334059917765852, + "venv/lib/python3.13/site-packages/_pytest/hookspec.py": 387790426108810884, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA_py.py": 2494967094400350388, + "venv/lib/python3.13/site-packages/pygments/lexers/textfmts.py": 17438453283146671997, + "backend/src/services/clean_release/source_isolation.py": 18208654007489616188, + "venv/lib/python3.13/site-packages/_pytest/deprecated.py": 5452408732344157294, + "venv/lib/python3.13/site-packages/cffi/model.py": 13544803366359102016, + "venv/lib/python3.13/site-packages/fastapi/dependencies/utils.py": 7687214523082385505, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_clip.py": 11111183698178681331, + "venv/lib/python3.13/site-packages/keyring/util/__init__.py": 9635016046220094473, + "venv/lib/python3.13/site-packages/numpy/lib/_datasource.py": 18136853038949826147, + "backend/git_repos/remote/test-repo.git/objects/c2/491dfd8c841bacd5f491510f6334aa4a626f00": 6297303620364618482, + "venv/lib/python3.13/site-packages/pandas/core/methods/to_dict.py": 4653628436393663485, + "venv/lib/python3.13/site-packages/numpy/_core/memmap.pyi": 14124415711399771715, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_float.py": 10455718110956856820, + "venv/lib/python3.13/site-packages/pandas/tests/extension/list/test_list.py": 4538625980063375611, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel.py": 7728646523045538484, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_recfunctions.py": 16014503284544747867, + "venv/lib/python3.13/site-packages/_pytest/legacypath.py": 7512065138259788426, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/conftest.py": 12368472226536104037, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_transform.py": 18159263102656491974, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_sql.py": 3901697517087276687, + "venv/lib/python3.13/site-packages/py.py": 16248211404003181569, + "backend/src/plugins/translate/__tests__/test_dictionary_correction.py": 7234669541203364452, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string_arrow.py": 10008395772220468318, + "venv/lib/python3.13/site-packages/numpy/fft/_helper.pyi": 9546918341939102632, + "venv/lib/python3.13/site-packages/_pytest/freeze_support.py": 494952714451267295, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_npfuncs.py": 6132674295193898715, + "venv/lib/python3.13/site-packages/rsa/transform.py": 12261738253972114335, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/sync_openid.py": 5670082466989878756, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/multiarray.py": 3224049574922696945, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/test_indexing.py": 2274965639578580723, + "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_internal/commands/inspect.py": 1401259241736437656, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_reshape.py": 5572426834735088916, + "venv/lib/python3.13/site-packages/anyio/streams/stapled.py": 9733127303038397237, + "venv/lib/python3.13/site-packages/pandas/core/ops/array_ops.py": 10061020479033421596, + "venv/lib/python3.13/site-packages/PIL/_imagingtk.pyi": 18222325750818585549, + "venv/lib/python3.13/site-packages/PIL/MicImagePlugin.py": 13540523615822507963, + "venv/lib/python3.13/site-packages/idna-3.11.dist-info/INSTALLER": 17282701611721059870, + "frontend/e2e/tests/smoke.e2e.js": 11130903009452044456, + "backend/src/api/routes/storage.py": 17448492494022569347, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/METADATA": 6438256145634479451, + "backend/git_repos/remote/test-repo.git/hooks/push-to-checkout.sample": 4825338927654285910, + "venv/lib/python3.13/site-packages/gitdb/stream.py": 3035738824550231197, + "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_gen_files.py": 11149423183253618378, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_dict.py": 808180749933361743, + "venv/lib/python3.13/site-packages/anyio/_core/_contextmanagers.py": 1258491775823080427, + "frontend/vitest.config.js": 142965001777137074, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/nditer.py": 10038360623032425884, + "venv/lib/python3.13/site-packages/urllib3/util/url.py": 15992369651965016538, + "venv/lib/python3.13/site-packages/anyio/abc/_eventloop.py": 2023190981288767991, + "venv/lib/python3.13/site-packages/passlib/handlers/windows.py": 8969739861295277439, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_processors.py": 16557117595879208702, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/LICENSE": 6989336036499641077, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_category.py": 3944898528119364040, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/base.py": 10205051944814316388, + "venv/lib/python3.13/site-packages/starlette/applications.py": 13591448461234020757, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/RECORD": 5612689057373270213, + "venv/lib/python3.13/site-packages/passlib/tests/test_utils_md4.py": 15270721044910698449, + "venv/lib/python3.13/site-packages/pygments/lexers/maxima.py": 11824576541091274641, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_real.f90": 9097998998863007705, + "venv/lib/python3.13/site-packages/numpy/random/__init__.pyi": 13833571330152615376, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/_core/src/highway/LICENSE": 15636145745140922094, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_extension_array_equal.py": 16119106336497630796, + "backend/tests/test_models.py": 3998442321184404421, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/__init__.py": 2791238481813240414, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/__init__.py": 4014740126161973332, + "venv/lib/python3.13/site-packages/cryptography/x509/certificate_transparency.py": 11337143186866439208, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/authorization_server.py": 2913800420669417152, + "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/RECORD": 173225030102092319, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/cx_oracle.py": 10093932131797570986, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/__init__.py": 12975130533860125272, + "venv/lib/python3.13/site-packages/urllib3/_base_connection.py": 14495079097019980154, + "venv/lib/python3.13/site-packages/pip/_internal/cli/main_parser.py": 7942770969280622910, + "venv/lib/python3.13/site-packages/python_multipart/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/uvicorn/_types.py": 3339389597716220585, + "venv/lib/python3.13/site-packages/pandas/core/arrays/numpy_.py": 16641729409992576358, + "frontend/src/lib/stores/__tests__/mocks/navigation.js": 10782992736745205981, + "backend/src/core/encryption_key.py": 10697135200011385036, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/setup.py": 5482352991573617756, + "venv/lib/python3.13/site-packages/numpy/polynomial/_polybase.pyi": 15864712173815045309, + "venv/lib/python3.13/site-packages/typing_inspection/typing_objects.pyi": 18193727720492050602, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/METADATA": 1862765380818895200, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/resource_protector.py": 11539718751174980004, + "venv/lib/python3.13/site-packages/jsonschema/_types.py": 9250091433305395923, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/revocation.py": 16178499278312777474, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_f2cmap.py": 5863341586534531594, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_join.py": 17874591841487372992, + "venv/lib/python3.13/site-packages/httpcore/_async/connection_pool.py": 932468678264370661, + "venv/lib/python3.13/site-packages/pandas/core/indexes/multi.py": 9115751979327393200, + "venv/lib/python3.13/site-packages/pygments/styles/default.py": 13992125975366109635, + "backend/src/scripts/clean_release_cli.py": 14467814161661747234, + "backend/src/api/routes/settings.py": 12171289292260529147, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_getitem.py": 8414677531950073373, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/licenses/LICENSE": 1641332741515411734, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/METADATA": 11759004913807981650, + "frontend/src/lib/api/translate/dictionaries.js": 13928848549982189213, + "venv/lib/python3.13/site-packages/pygments/styles/autumn.py": 8750937312198920971, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/INSTALLER": 17282701611721059870, + "frontend/build/_app/immutable/nodes/8.CJnlPTb8.js": 11286935217176131290, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh26681.f90": 1515497186927052106, + "venv/lib/python3.13/site-packages/numpy/lib/recfunctions.pyi": 10487441680587530350, + "venv/lib/python3.13/site-packages/pandas/io/pickle.py": 5418646169167774144, + "backend/src/services/__tests__/test_llm_prompt_templates.py": 17912427710321938757, + "venv/lib/python3.13/site-packages/idna/idnadata.py": 200840860629525970, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/rec.pyi": 14615751247243515028, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_function.py": 7048185308307653546, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_constructors.py": 979131987837682435, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix.py": 4672871351134074735, + "venv/lib/python3.13/site-packages/apscheduler/executors/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarrayobject.h": 7320510589635636690, + "venv/lib/python3.13/site-packages/_pytest/assertion/rewrite.py": 2425990712758915831, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_timeseries_window.py": 1973365560758236222, + "venv/lib/python3.13/site-packages/pandas/core/window/common.py": 17956497339875932377, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_ticks.py": 11649965080303468085, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/traversals.py": 1188980668212022868, + "venv/lib/python3.13/site-packages/numpy/_utils/_pep440.py": 15854257948148516490, + "venv/lib/python3.13/site-packages/fastapi/security/__init__.py": 1345944646061334046, + "venv/lib/python3.13/site-packages/websockets/datastructures.py": 5180442040351387281, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/assertion.py": 5287436128235488464, + "venv/lib/python3.13/site-packages/jeepney/tests/test_fds.py": 6257376331171761928, + "venv/lib/python3.13/site-packages/numpy/core/overrides.py": 11228841530565061867, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_parameter.py": 15173522343126004527, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_ufunc.py": 3326502989311831856, + "venv/lib/python3.13/site-packages/passlib/handlers/md5_crypt.py": 7669328623914474137, + "venv/lib/python3.13/site-packages/httpcore/_sync/socks_proxy.py": 4418971149260853240, + "venv/lib/python3.13/site-packages/sqlalchemy/util/_has_cy.py": 11979732417254560424, + "venv/lib/python3.13/site-packages/dateutil/__init__.py": 17666544837260663800, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/METADATA": 3643456577199395707, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_fileno.py": 15541504502174047167, + "venv/lib/python3.13/site-packages/uvicorn/protocols/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/tablegen.py": 2917626373516779857, + "venv/lib/python3.13/site-packages/pygments/lexers/haskell.py": 8011341851439354724, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py": 5324490103277723813, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex_table.tpl": 8706980975714184465, + "venv/lib/python3.13/site-packages/pygments/lexers/_stata_builtins.py": 18053452765493556047, + "frontend/static/favicon.png": 16740551781088792605, + "frontend/src/routes/settings/git/__tests__/git_settings_page.ux.test.js": 5334904955024018051, + "frontend/src/routes/translate/history/+page.svelte": 9504117584329454876, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/locations/__init__.py": 8147012724727395488, + "venv/lib/python3.13/site-packages/pandas/core/computation/expressions.py": 10684284531040203747, + "venv/lib/python3.13/site-packages/passlib/handlers/phpass.py": 16489430001449160264, + "venv/lib/python3.13/site-packages/authlib/jose/jwk.py": 13560749074922587626, + "venv/lib/python3.13/site-packages/numpy/_core/lib/npy-pkg-config/npymath.ini": 1071371630695963467, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_win_type.py": 18105114803686556748, + "venv/lib/python3.13/site-packages/pandas/_libs/sas.cpython-313-x86_64-linux-gnu.so": 16309838137741124637, + "venv/lib/python3.13/site-packages/numpy/core/_dtype.py": 2806449741844148191, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/console.py": 10217327186846649646, + "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py": 63497920264089252, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/__init__.py": 3577295959173028042, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_indexing.py": 16291207621268530224, + "venv/lib/python3.13/site-packages/pygments/styles/perldoc.py": 4857683935715743356, + "venv/lib/python3.13/site-packages/numpy/_core/fromnumeric.py": 9409852116555866847, + "venv/lib/python3.13/site-packages/pygments/styles/friendly_grayscale.py": 16840106759769837649, + "venv/lib/python3.13/site-packages/pygments/lexers/matlab.py": 1880915927722177654, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_types.py": 4083297168618981717, + "backend/src/services/git/_status.py": 11400014053359523156, + "venv/lib/python3.13/site-packages/gitdb/db/mem.py": 15823812455996199993, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_cpp_avx2.cpython-313-x86_64-linux-gnu.so": 2991745295485163924, + "venv/lib/python3.13/site-packages/pydantic/v1/types.py": 10761779263335288559, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_cpp.cpython-313-x86_64-linux-gnu.so": 10263790384087091349, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby_dropna.py": 3620959914439334511, + "venv/lib/python3.13/site-packages/pandas/io/sas/sas_xport.py": 16525568795475918874, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_aarch64_gcc.h": 8140470539757491899, + "venv/lib/python3.13/site-packages/numpy/__config__.py": 15794735729525094396, + "venv/lib/python3.13/site-packages/pycparser/ply/lex.py": 3393278208465358140, + "venv/lib/python3.13/site-packages/cryptography/hazmat/_oid.py": 755042927629281577, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_equals.py": 11041884432990762650, + "venv/lib/python3.13/site-packages/jaraco/functools/__init__.pyi": 2872039192528394677, + "venv/lib/python3.13/site-packages/cffi/vengine_cpy.py": 10684192171370688079, + "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_regression.py": 5652583095949741238, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh24662.f90": 4241310200087270990, + "venv/lib/python3.13/site-packages/pandas/core/col.py": 4221271461723119525, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_chained_assignment_deprecation.py": 7694137945143129474, + "venv/lib/python3.13/site-packages/pygments/lexers/varnish.py": 3608370156692616959, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/WHEEL": 7414522633964952515, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkrb5-fcafa220.so.3.3": 5620628698712971642, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/hybrid.py": 5793056975404534989, + "frontend/postcss.config.js": 5714274776976071678, + "backend/src/services/__tests__/test_rbac_permission_catalog.py": 5190751380981933250, + "backend/git_repos/remote/test-repo.git/hooks/sendemail-validate.sample": 8058833260784074657, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py": 8530403239168529668, + "venv/lib/python3.13/site-packages/pandas/core/sparse/api.py": 9094651265692218821, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html_table.tpl": 17198355067645888735, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/licenses/LICENSE.rst": 5960743202700406649, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/module_data_docstring.f90": 18245403117623015312, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/requirements.py": 2362917888844255805, + "backend/git_repos/remote/test-repo.git/objects/3e/05ec6ef6504483c4bc7d00f0d0272c38ec661f": 11182016264585388842, + "venv/lib/python3.13/site-packages/uvicorn/protocols/utils.py": 6147480543268737542, + "frontend/src/components/git/GitReleasePanel.svelte": 14875953299937841077, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_pickle.py": 4216445955812104014, + "venv/lib/python3.13/site-packages/numpy/lib/_scimath_impl.pyi": 8879196542984811747, + "venv/lib/python3.13/site-packages/pygments/lexers/html.py": 17288963642862550116, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/licenses/LICENSE": 8438117004702803716, + "venv/lib/python3.13/site-packages/pip/py.typed": 10243553515949422671, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/validation": 5398883285871046811, + "venv/lib/python3.13/site-packages/websockets/version.py": 5853118844880112885, + "venv/lib/python3.13/site-packages/pandas/tests/extension/date/__init__.py": 16789767433439616593, + "venv/lib/python3.13/site-packages/pyasn1/codec/native/encoder.py": 120921270972591880, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/WHEEL": 7454950858448014158, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/METADATA": 16700674024421191168, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_frame.py": 9378623452601244234, + "venv/lib/python3.13/site-packages/pygments/lexers/diff.py": 5930189593946259160, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_ewm.py": 12153690217678546798, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_partial_slicing.py": 15567512240469921599, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/inout.f90": 1521999519583206538, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_nlargest.py": 14518132768753249360, + "venv/lib/python3.13/site-packages/pygments/styles/rainbow_dash.py": 12236746494379891602, + "venv/lib/python3.13/site-packages/numpy/_core/_dtype.py": 7796703383405149774, + "venv/lib/python3.13/site-packages/anyio/__init__.py": 12752386096259972231, + "venv/lib/python3.13/site-packages/pandas/_libs/ops_dispatch.cpython-313-x86_64-linux-gnu.so": 5284769758475394095, + "venv/lib/python3.13/site-packages/httpcore/_sync/http2.py": 11167798787131917524, + "venv/lib/python3.13/site-packages/pygments/lexers/jmespath.py": 7426464251945393925, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_deprecated_kwargs.py": 10379929935087904974, + "venv/lib/python3.13/site-packages/starlette/formparsers.py": 9019779181100355515, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/RECORD": 18294169019244826301, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_toml_compat.py": 10196543528439925412, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/hashes.py": 8545380307201732345, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc64_aix.h": 8706347224105630468, + "venv/lib/python3.13/site-packages/numpy/_core/_dtype_ctypes.pyi": 14543653817631274394, + "venv/lib/python3.13/site-packages/sqlalchemy/util/_collections.py": 7772437080414835462, + "venv/lib/python3.13/site-packages/greenlet/__init__.py": 3447613556981242475, + "venv/lib/python3.13/site-packages/numpy/lib/scimath.py": 7616377937400918724, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_finfo.py": 17174674209412768422, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/numeric.pyi": 17005748821769179511, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_calendar.py": 12313641252472031631, + "venv/lib/python3.13/site-packages/websockets/asyncio/messages.py": 6848925149930551457, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/vector.py": 9941185556118343263, + "venv/lib/python3.13/site-packages/pandas/plotting/__init__.py": 13230487326686617492, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix_py.py": 17041764258638228993, + "venv/lib/python3.13/site-packages/pygments/lexers/procfile.py": 3860651022061090738, + "venv/lib/python3.13/site-packages/pip/_internal/commands/help.py": 4175797322922912326, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/installed.py": 18153165899841229597, + "venv/lib/python3.13/site-packages/pandas/tests/test_multilevel.py": 10500316376521962061, + "venv/lib/python3.13/site-packages/starlette/middleware/exceptions.py": 10408538054406276433, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_timedelta_range.py": 15081095442418142820, + "venv/lib/python3.13/site-packages/pygments/styles/pastie.py": 15784474766258831882, + "venv/lib/python3.13/site-packages/click/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/conftest.py": 747626550806435763, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/__init__.py": 16123561007855424016, + "venv/lib/python3.13/site-packages/pygments/styles/arduino.py": 4578385147314541233, + "venv/lib/python3.13/site-packages/passlib/utils/decor.py": 21351391767102899, + "backend/src/plugins/translate/orchestrator_query.py": 4760681990145471312, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7636/challenge.py": 6388445104761482746, + "venv/lib/python3.13/site-packages/urllib3/contrib/socks.py": 645086578806871685, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_arithmetic.py": 11620920548943067949, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_values.py": 430620320423334461, + "backend/src/services/reports/__init__.py": 11818812865847046400, + "backend/src/core/utils/superset_context_extractor/_templates.py": 6790136732701012567, + "backend/src/api/routes/assistant/_schemas.py": 6735060826070731731, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/hybrid.py": 14287665090144592501, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_array_ops.py": 6709502157317299163, + "frontend/src/lib/components/dataset-review/SourceIntakePanel.svelte": 13922687579631047714, + "venv/lib/python3.13/site-packages/urllib3/util/proxy.py": 17667887856427739069, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_nditer.py": 8341339612899904236, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_append_common.py": 2377351120083195530, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_astype.py": 15384141282611151560, + "venv/lib/python3.13/site-packages/PIL/ImageDraw.py": 12919304671639673744, + "venv/lib/python3.13/site-packages/urllib3/util/__init__.py": 2848870790459558599, + "frontend/tailwind.config.js": 13139381085024634801, + "backend/git_repos/remote/test-repo.git/hooks/pre-receive.sample": 6118492409684431911, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval_range.py": 9900908262700749861, + "venv/lib/python3.13/site-packages/pandas/tests/config/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/apscheduler/executors/debug.py": 14072221218785494847, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_functions.py": 2255133375699086300, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_searchsorted.py": 11208047646304753715, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8693/__init__.py": 11065844267208884531, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_parse_dates.py": 7597935994945336408, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64-testset-2.csv": 5423145402839576695, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/provision.py": 17812733620485633975, + "venv/lib/python3.13/site-packages/requests/cookies.py": 4997226307650350876, + "backend/src/plugins/translate/__tests__/test_clickhouse_insert_integration.py": 1476468269208921287, + "backend/src/plugins/translate/service_utils.py": 15103456860964805370, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/__init__.py": 16532856661318424631, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_get_value.py": 389530025760539462, + "venv/lib/python3.13/site-packages/keyring/cli.py": 10996746519742056101, + "venv/bin/pytest": 2593802493707545818, + "venv/lib/python3.13/site-packages/charset_normalizer/constant.py": 3070316197495651997, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_strings.py": 17398806130402098912, + "backend/src/services/clean_release/__tests__/test_compliance_orchestrator.py": 6332087444349093252, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_period_index.py": 6634414375581820058, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/base.py": 5924592154431932923, + "backend/src/core/utils/superset_context_extractor/_pii.py": 14826864290194304173, + "venv/lib/python3.13/site-packages/PIL/ImageEnhance.py": 3218405223202808764, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/token.py": 4161760290367932793, + "frontend/src/lib/components/reports/__tests__/report_card.ux.test.js": 14899927226278257748, + "venv/lib/python3.13/site-packages/pyasn1/error.py": 11036037300994516747, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_update_delete.py": 1317337950621091021, + "venv/lib/python3.13/site-packages/_pytest/debugging.py": 16135285365306979060, + "venv/lib/python3.13/site-packages/git/index/util.py": 5022401275553420722, + "frontend/src/routes/tools/storage/+page.svelte": 2651964385884112547, + "backend/tests/services/clean_release/test_publication_service.py": 17277940125978730159, + "backend/src/core/__init__.py": 8673978627093182792, + "venv/lib/python3.13/site-packages/authlib/oidc/core/userinfo.py": 17201158389976619872, + "venv/lib/python3.13/site-packages/pygments/lexers/xorg.py": 14591144191879110061, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/hook-numpy.py": 5221550291012182443, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/android.py": 8607703347015852195, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_integer/foo90.f90": 3492659529812762861, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_indexing.py": 5910217172351020811, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/aiomysql.py": 12999962380333482189, + "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/RECORD": 3649834117451110628, + "venv/lib/python3.13/site-packages/python_multipart/__init__.py": 10290895261363712562, + "venv/lib/python3.13/site-packages/numpy/linalg/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/fromnumeric.pyi": 6708743411405679061, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_format.py": 16150524965028369071, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_quantile.py": 17110581927381599978, + "venv/lib/python3.13/site-packages/cffi/commontypes.py": 11198107299826138465, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/fastapi/security/http.py": 8465565118555441408, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/__init__.py": 13331622784664204066, + "venv/lib/python3.13/site-packages/pandas/core/arrays/boolean.py": 8821671562937866269, + "venv/lib/python3.13/site-packages/pandas/tests/apply/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_drop.py": 15751236355035730554, + "venv/lib/python3.13/site-packages/pygments/lexers/verification.py": 16645885125604874183, + "backend/src/api/routes/__tests__/test_clean_release_api.py": 11565478953155085157, + "venv/lib/python3.13/site-packages/numpy/lib/mixins.py": 7404729635424818497, + "venv/lib/python3.13/site-packages/pydantic/_internal/_generics.py": 16438159042939059717, + "venv/lib/python3.13/site-packages/pydantic/deprecated/decorator.py": 8609500261161560793, + "venv/lib/python3.13/site-packages/h11/_util.py": 9362339074207904329, + "frontend/src/lib/components/layout/Breadcrumbs.svelte": 10874106485242690185, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/RECORD": 11788532857617688351, + "frontend/src/components/git/GitMergeDialog.svelte": 17029360862035548928, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_skiprows.py": 8764515842253490735, + "venv/lib/python3.13/site-packages/jsonschema/_typing.py": 13152346021901861822, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py": 10057637461647348368, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/memmap.pyi": 15629663272474054909, + "venv/lib/python3.13/site-packages/git/compat.py": 16843345645628515492, + "venv/lib/python3.13/site-packages/packaging/__init__.py": 5479277484104486860, + "frontend/build/_app/immutable/nodes/26.B5shsbCb.js": 10517441798519321050, + "venv/lib/python3.13/site-packages/click/_textwrap.py": 14586282603215052310, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/authorization_server.py": 2491654903543600678, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_emoji_codes.py": 13901854719435716195, + "venv/lib/python3.13/site-packages/pydantic/v1/dataclasses.py": 7833468513057242440, + "backend/src/plugins/llm_analysis/models.py": 10099813950073320264, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/linalg.pyi": 7217817172953767893, + "venv/lib/python3.13/site-packages/uvicorn/__main__.py": 6086938803696646644, + "backend/src/api/routes/profile.py": 11866770263441371105, + "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/WHEEL": 8600534672961461758, + "venv/lib/python3.13/site-packages/anyio/lowlevel.py": 11919467357746648592, + "venv/lib/python3.13/site-packages/authlib/oidc/discovery/models.py": 6924198551176217533, + "venv/lib/python3.13/site-packages/pip/_internal/utils/urls.py": 8698341051522816167, + "venv/lib/python3.13/site-packages/anyio/abc/__init__.py": 11428476337116642278, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_coercion.py": 7261787308019145312, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_fillna.py": 13675584998644907265, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_textreader.py": 388955620768371652, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/implicit.py": 7379110378465568776, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string.py": 3834067244989779682, + "venv/lib/python3.13/site-packages/referencing/_core.py": 14744795336121513230, + "venv/lib/python3.13/site-packages/cffi/error.py": 8147505969912539538, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_sparc_sun_gcc.h": 2915128971664712180, + "venv/lib/python3.13/site-packages/greenlet/tests/test_leaks.py": 1219835696230215605, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/dtypes.cpython-313-x86_64-linux-gnu.so": 657138415665704488, + "venv/lib/python3.13/site-packages/fastapi/_compat/__init__.py": 12380131786677943349, + "venv/lib/python3.13/site-packages/greenlet/tests/test_greenlet.py": 10727595500186011102, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/npyio.pyi": 14147712281086095231, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_formats.py": 12299393760307251036, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_np_datetime.py": 18363183516409621205, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_odf.py": 15484940480924122966, + "venv/lib/python3.13/site-packages/pandas/io/orc.py": 12754290195886557668, + "venv/lib/python3.13/site-packages/charset_normalizer/cli/__init__.py": 9702005609966176016, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_indexing.py": 6539365174681852769, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_freq_attr.py": 7685756734926749093, + "venv/lib/python3.13/site-packages/pandas/io/sas/sas7bdat.py": 17851617851457266799, + "venv/lib/python3.13/site-packages/httpcore/_sync/interfaces.py": 1532245423878428608, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_ndarray.py": 6863874753941288585, + "venv/lib/python3.13/site-packages/pandas/_testing/__init__.py": 10127496080404419481, + "venv/lib/python3.13/site-packages/numpy/_configtool.py": 2946953194004101078, + "venv/lib/python3.13/site-packages/pygments/lexers/_asy_builtins.py": 1665617945818958781, + "backend/src/api/routes/translate/_correction_routes.py": 12437040676784563126, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/client.py": 18443944554871937480, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py": 353446217435156470, + "venv/lib/python3.13/site-packages/passlib/exc.py": 15559705487889657091, + "venv/lib/python3.13/site-packages/pydantic/parse.py": 13750341403702794392, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_functions.py": 16376319335326812580, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/test_na_scalar.py": 13950899907067372014, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_size.py": 16658280641516916790, + "venv/lib/python3.13/site-packages/pygments/lexers/asm.py": 13861952972248758785, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_to_julian_date.py": 6868080396693831272, + "venv/lib/python3.13/site-packages/pygments/lexers/webidl.py": 8097260111959278117, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_laguerre.py": 7475592201750602042, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_cisco.py": 1786475632318043669, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_describe.py": 11923715539897559626, + "venv/lib/python3.13/site-packages/pandas/tests/apply/common.py": 1113935558495455492, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_datetimes.py": 8863748366184419339, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_typing.py": 17589387690638097975, + "frontend/src/pages/Settings.svelte": 12818597464628135154, + "venv/lib/python3.13/site-packages/numpy/lib/_twodim_base_impl.py": 4154852745131464543, + "venv/lib/python3.13/site-packages/pytest/__main__.py": 8747175113746141224, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_is_homogeneous_dtype.py": 15378147393056707851, + "venv/lib/python3.13/site-packages/pip/__init__.py": 9449893869469432503, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_repr.py": 13147587049887075335, + "frontend/src/routes/migration/+page.svelte": 7821836225621176583, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath.py": 13010939919217862164, + "frontend/build/_app/immutable/nodes/31.ByXnyjKT.js": 4805131197880171588, + "venv/lib/python3.13/site-packages/pandas/tests/apply/conftest.py": 13798335354961261346, + "venv/lib/python3.13/site-packages/pyasn1/type/char.py": 16518487114777185541, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_holiday.py": 8541197358003711845, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/config_init.py": 16537122488227845090, + "backend/src/plugins/translate/metrics.py": 16289306156708185830, + "backend/tests/test_translate_executor_filter.py": 11717560360659156703, + "venv/lib/python3.13/site-packages/pip/_internal/commands/configuration.py": 1608697090566485893, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/greenlet/TStackState.cpp": 16720079760074325527, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayobject.h": 4345432890284821918, + "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/__init__.py": 9083396324667433335, + "backend/src/plugins/translate/__tests__/test_dictionary_prompt_builder.py": 12854863376472707556, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/database.py": 7111764828004587758, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/spinner.py": 5564789578696016201, + "venv/lib/python3.13/site-packages/_pytest/helpconfig.py": 3033477806668470951, + "venv/lib/python3.13/site-packages/jsonschema/exceptions.py": 15651767069704734674, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_astype.py": 1961831758405941258, + "venv/lib/python3.13/site-packages/httpcore/_synchronization.py": 10997080307461682786, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_msvc.h": 14580207065003376324, + "venv/lib/python3.13/site-packages/pip/_internal/utils/temp_dir.py": 8657533190026387896, + "backend/src/api/routes/health.py": 4494840518139445701, + "backend/src/api/routes/__tests__/conftest.py": 8465980330386544642, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_quarter.py": 11099677280196239755, + "venv/lib/python3.13/site-packages/pydantic/_migration.py": 17982816821930887921, + "venv/lib/python3.13/site-packages/fastapi/middleware/asyncexitstack.py": 7733356903092860495, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval.py": 1228451182688768814, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/palette.py": 17383863392192572184, + "venv/lib/python3.13/site-packages/pandas/core/arrays/masked.py": 13977195666947626206, + "venv/lib/python3.13/site-packages/pygments/lexers/_ada_builtins.py": 16331776886501464264, + "venv/lib/python3.13/site-packages/dateutil/parser/__init__.py": 11377431154251655738, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/LICENSE": 16343563559291870811, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_args_and_kwargs.py": 3381939712123764154, + "backend/src/api/routes/dataset_review_pkg/_dependencies.py": 15939232213193276681, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286_bc.pyf": 10893958728966010450, + "venv/lib/python3.13/site-packages/passlib/handlers/oracle.py": 12959175637015399815, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/useless_applicator_schemas.py": 8395157526634674143, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/licenses/__init__.py": 2635182244050911910, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/base.cpython-313-x86_64-linux-gnu.so": 8335798324308957127, + "venv/lib/python3.13/site-packages/pandas/core/ops/mask_ops.py": 16152832446926420035, + "venv/lib/python3.13/site-packages/pandas/core/ops/invalid.py": 10186546927135277579, + "venv/lib/python3.13/site-packages/PIL/GifImagePlugin.py": 16073125611077200693, + "venv/lib/python3.13/site-packages/PIL/WebPImagePlugin.py": 5378349556563611996, + "venv/lib/python3.13/site-packages/git/diff.py": 6691274015605451565, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_elements_constructors.py": 9279447066034364952, + "venv/lib/python3.13/site-packages/numpy/lib/_arraypad_impl.pyi": 2186875333484796630, + "venv/lib/python3.13/site-packages/pip/_internal/cli/main.py": 9304034369762028739, + "venv/lib/python3.13/site-packages/pygments/lexers/tls.py": 3552078393009383412, + "venv/lib/python3.13/site-packages/pygments/lexers/int_fiction.py": 8806961041808606055, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.py": 17538029557373507617, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/models.py": 17356033861792227817, + "venv/lib/python3.13/site-packages/git/remote.py": 1694919255653049944, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py": 14307204206312829238, + "venv/lib/python3.13/site-packages/jsonschema/__init__.py": 6925762200139836824, + "venv/lib/python3.13/site-packages/fastapi/params.py": 14263655860695381481, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_pairwise.py": 2673370322448160842, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_concat.py": 16549010224568175202, + "backend/src/services/clean_release/__tests__/test_policy_engine.py": 9953185933720550640, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_loadtxt.py": 17562784940619942447, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_twodim_base.py": 17623133613018058380, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arraypad.py": 4907193085512342162, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/legacy/resolver.py": 2492962412506082234, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_missing.py": 2976310411820303374, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/mod.py": 2054876501774773382, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_kurt.py": 2898715045429898166, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_non_unique.py": 15286893322149413712, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/_typing.py": 17598638528781632158, + "venv/lib/python3.13/site-packages/h11/_writers.py": 8585823094975171480, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/named_types.py": 6099185243355915896, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/licenses/COPYING": 14459782230785388765, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_count.py": 16947194157984708529, + "venv/lib/python3.13/site-packages/_pytest/warning_types.py": 10695097290648045427, + "venv/lib/python3.13/site-packages/pygments/lexers/soong.py": 10273453675034306814, + "venv/lib/python3.13/site-packages/numpy/_core/memmap.py": 4093510602708416858, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_console.py": 11657469008721907972, + "frontend/src/routes/admin/settings/llm/+page.svelte": 17057143078453873391, + "venv/lib/python3.13/site-packages/iniconfig/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_compound.f90": 15012692484070385863, + "venv/lib/python3.13/site-packages/anyio/_core/_fileio.py": 4507100568401692983, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming_py.py": 16133454512601432815, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_categorical.py": 8844412630511751140, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel.py": 17112989332785349705, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7592/endpoint.py": 18260428408051728802, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_win32_console.py": 18092547253031555768, + "venv/lib/python3.13/site-packages/cryptography/x509/verification.py": 1079694784860492682, + "venv/lib/python3.13/site-packages/pandas/core/groupby/categorical.py": 16588862198627920420, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz.pyi": 7410507092040239447, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/ec_key.py": 5961540064444749833, + "venv/lib/python3.13/site-packages/numpy/lib/_iotools.pyi": 12873243737872788349, + "venv/lib/python3.13/site-packages/itsdangerous/timed.py": 12571102606719555007, + "venv/lib/python3.13/site-packages/numpy/lib/_twodim_base_impl.pyi": 15509415708991012734, + "venv/lib/python3.13/site-packages/pygments/lexers/arrow.py": 6699009974224818979, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL": 18203500019759199992, + "frontend/build/_app/immutable/nodes/5.hzY6jedY.js": 14935624921626766291, + "backend/src/api/routes/translate/_run_list_routes.py": 18118346695557887371, + "venv/lib/python3.13/site-packages/numpy.libs/libgfortran-040039e1-0352e75f.so.5.0.0": 13946067868274850557, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_args.py": 5821040955806257450, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py": 6067836157632573182, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/conftest.py": 2643915042664055969, + "venv/lib/python3.13/site-packages/git/objects/blob.py": 8972374723153211283, + "venv/lib/python3.13/site-packages/tzlocal/win32.py": 1949985224569608978, + "venv/lib/python3.13/site-packages/numpy/ma/README.rst": 13203411621071845216, + "venv/lib/python3.13/site-packages/pygments/styles/abap.py": 11543320440974964547, + "backend/src/services/notifications/service.py": 7032100258837946310, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/generic.py": 17755579497690180620, + "venv/lib/python3.13/site-packages/pip/_internal/utils/compatibility_tags.py": 15862649917149158291, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/markup.py": 5413800947725916538, + "venv/lib/python3.13/site-packages/numpy/tests/test_numpy_version.py": 849232015288488204, + "venv/lib/python3.13/site-packages/pandas/core/tools/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pydantic/_internal/_fields.py": 2692892815545218335, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/statreload.py": 5018382301336802445, + "venv/lib/python3.13/site-packages/pygments/styles/algol_nu.py": 6229131016121450375, + "venv/lib/python3.13/site-packages/pygments/styles/sas.py": 12363791134941577382, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_string_array.py": 8260883866404398980, + "venv/lib/python3.13/site-packages/pygments/lexers/elpi.py": 5736689911777977822, + "frontend/build/_app/immutable/chunks/fRqASoRb.js": 6973962389671135221, + "venv/lib/python3.13/site-packages/pygments/styles/nord.py": 8469538903422182155, + "backend/src/services/clean_release/report_builder.py": 6953311294119437848, + "venv/lib/python3.13/site-packages/PIL/report.py": 9428754440615681790, + "venv/lib/python3.13/site-packages/rapidfuzz/utils.pyi": 7400725037332728015, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_take.py": 14969455660160053080, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA.pyi": 2700568594438441246, + "venv/lib/python3.13/site-packages/pygments/styles/gruvbox.py": 9489017112545247388, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/RECORD": 3205266407680661753, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/test_pyinstaller.py": 9430762168079129025, + "venv/lib/python3.13/site-packages/PIL/McIdasImagePlugin.py": 14137545069906812251, + "venv/lib/python3.13/site-packages/yaml/representer.py": 10550136298978225013, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion": 2607512361823362698, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/index.py": 15694995431926521471, + "backend/src/plugins/translate/preview_session_ops.py": 14499196532448992687, + "venv/lib/python3.13/site-packages/numpy/polynomial/hermite.pyi": 3573629536236108391, + "frontend/build/_app/immutable/nodes/24.BgGKAWGX.js": 7880228307857935108, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/modes.py": 6832635056228445650, + "venv/lib/python3.13/site-packages/numpy/_core/_rational_tests.cpython-313-x86_64-linux-gnu.so": 13475521165331256711, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/util.py": 10640907133050862176, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/wsproto_impl.py": 3072714633272661847, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/char.pyi": 1639810799219814643, + "backend/src/models/assistant.py": 15004657265198809796, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/RECORD": 4487477737768669516, + "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/_pytest/runner.py": 5772610501857496741, + "venv/lib/python3.13/site-packages/greenlet/CObjects.cpp": 3454797518210223926, + "venv/lib/python3.13/site-packages/pandas/core/arrays/datetimelike.py": 394614958716301173, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_droplevel.py": 2071197388394658690, + "venv/lib/python3.13/site-packages/git/objects/submodule/__init__.py": 12958523219496107878, + "venv/lib/python3.13/site-packages/pygments/lexers/openscad.py": 13045825115225232396, + "venv/lib/python3.13/site-packages/websockets/__main__.py": 11948055520555854616, + "backend/src/api/routes/assistant/_routes.py": 6252816315418755346, + "venv/lib/python3.13/site-packages/ecdsa/rfc6979.py": 11564966030899162026, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_header.py": 3564391095263545879, + "backend/alembic_test.db": 14995253579408279707, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/__init__.pyi": 17469792319379909312, + "venv/lib/python3.13/site-packages/pygments/lexers/sieve.py": 15757825442941567629, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test__version.py": 9037916251087760255, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_indexing.py": 11572911419313573163, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/totp.py": 11888568940387752607, + "venv/lib/python3.13/site-packages/pandas/core/groupby/numba_.py": 15997665748332235683, + "venv/lib/python3.13/site-packages/iniconfig/__init__.py": 12623265899068631092, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/__init__.py": 16211693040174992594, + "venv/lib/python3.13/site-packages/pandas/core/indexes/interval.py": 17965911911189276907, + "venv/lib/python3.13/site-packages/pandas/util/_test_decorators.py": 17930801441803090445, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_indexing_slow.py": 12558235638488427077, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/pyodbc.py": 11271266527234292020, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_setitem.py": 14920902525192671548, + "venv/lib/python3.13/site-packages/numpy/lib/tests/__init__.py": 15130871412783076140, + "backend/src/scripts/test_dataset_dashboard_relations.py": 6373309008834670516, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_constructors.py": 12118296571694122743, + "frontend/src/routes/tools/mapper/+page.svelte": 11954517841045690204, + "backend/src/plugins/translate/preview_review.py": 5584592578627646560, + "venv/lib/python3.13/site-packages/pandas/_libs/_cyutility.cpython-313-x86_64-linux-gnu.so": 3372660143512868174, + "venv/lib/python3.13/site-packages/gitdb/exc.py": 13975852664048821278, + "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft.py": 6142062990691556076, + "venv/lib/python3.13/site-packages/click/testing.py": 15973659312284678327, + "venv/lib/python3.13/site-packages/websockets/asyncio/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/cryptography/hazmat/asn1/asn1.py": 8801155055979135092, + "venv/lib/python3.13/site-packages/pydantic/deprecated/copy_internals.py": 1245428320513062166, + "venv/lib/python3.13/site-packages/numpy/lib/_scimath_impl.py": 14696841109142419143, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arcsin.csv": 1665171675551692225, + "venv/lib/python3.13/site-packages/pydantic/plugin/_loader.py": 792663962985957671, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_fiscal.py": 14652343698825214870, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/__init__.py": 293004106962245584, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_is_monotonic.py": 12899848089975919515, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_map.py": 4761668276463940924, + "venv/lib/python3.13/site-packages/requests/utils.py": 17045260098091371478, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_put.py": 8547660958963625817, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/retry.py": 17371295199208325375, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/__init__.py": 1798074863773727377, + "venv/lib/python3.13/site-packages/urllib3/util/connection.py": 15511685694589961094, + "venv/lib/python3.13/site-packages/uvicorn/server.py": 15714008348292243019, + "venv/lib/python3.13/site-packages/pygments/lexers/clean.py": 17772169928835025327, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/containers.py": 5969831151685016772, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/nested_sequence.pyi": 10985533017688918283, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/nditer.pyi": 2351219156711800159, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/dtypes.pyi": 15114028503984522176, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_analytics.py": 4510712334676848202, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_fields.py": 16222559851336781264, + "venv/lib/python3.13/site-packages/pyasn1/codec/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_partial.py": 15129217814262096441, + "venv/lib/python3.13/site-packages/pandas/io/json/_normalize.py": 15938855324762935595, + "frontend/build/_app/immutable/assets/0.DWB1eHi4.css": 9171035187624906932, + "venv/lib/python3.13/site-packages/pydantic/v1/fields.py": 3948219773415054006, + "frontend/src/lib/stores/__tests__/sidebar.test.js": 5168138864675110669, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_astype.py": 4023134352880775277, + "frontend/src/lib/ui/LanguageSwitcher.svelte": 3899734183369041614, + "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_builtin.py": 74545289993348593, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh26920/two_mods_with_no_public_entities.f90": 12296500845667555672, + "backend/src/services/dataset_review/clarification_engine.py": 13640221555439415988, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm32_ios.h": 6751259472945638998, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/relationships.py": 8401569216905291119, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7636/__init__.py": 913610541217778747, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ctypeslib.pyi": 8623725566434725526, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_regression.py": 12593643817685777170, + "venv/lib/python3.13/site-packages/pandas/tests/test_col.py": 14781555956509956371, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_scalar_compat.py": 10068989979144965125, + "venv/lib/python3.13/site-packages/pygments/lexers/_csound_builtins.py": 14530739818491398298, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pydantic_settings/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_formats.py": 2743326139283991615, + "venv/lib/python3.13/site-packages/pydantic/_internal/_dataclasses.py": 15256193972947054890, + "venv/lib/python3.13/site-packages/pandas/compat/pyarrow.py": 13693379998785127538, + "venv/lib/python3.13/site-packages/git/objects/submodule/util.py": 8621897576747443758, + "backend/src/services/clean_release/stages/base.py": 344723354852893815, + "venv/lib/python3.13/site-packages/pandas/io/excel/_util.py": 6664989864423807444, + "backend/src/plugins/translate/_utils.py": 9570375434532627675, + "backend/git_repos/remote/test-repo.git/objects/52/ec4a78c629329b8b572ec9d5205271c111baac": 18054296544295201561, + "venv/lib/python3.13/site-packages/PIL/MpoImagePlugin.py": 644327650732339301, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/reflection.py": 1799734694597531652, + "venv/lib/python3.13/site-packages/pydantic/_internal/_decorators.py": 9928398334052202841, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_common.py": 3559416690270529904, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_operators.py": 12686786829906210592, + "venv/lib/python3.13/site-packages/pygments/lexers/c_cpp.py": 1211842877043321095, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_array.py": 12514884344165043136, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/licenses/LICENSE": 12688029424398428498, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/RECORD": 3617343778671172258, + "venv/lib/python3.13/site-packages/passlib/handlers/misc.py": 18255658377109333797, + "venv/lib/python3.13/site-packages/pandas/testing.py": 18352975429944961593, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/modules.pyi": 131293606732000587, + "venv/lib/python3.13/site-packages/pandas/_libs/window/indexers.pyi": 9911899303567570646, + "venv/lib/python3.13/site-packages/anyio/_core/_signals.py": 1204322949639513552, + "venv/lib/python3.13/site-packages/ecdsa/test_numbertheory.py": 2117130219401053225, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/__init__.py": 11850945878149145990, + "venv/lib/python3.13/site-packages/pandas/tests/test_downstream.py": 5635510753354256507, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/PIL/_imagingft.pyi": 1385456134120145584, + "venv/lib/python3.13/site-packages/authlib/jose/errors.py": 15231759002942436632, + "venv/lib/python3.13/site-packages/pip/_internal/utils/egg_link.py": 18211947508793805393, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/matlib.py": 112839038090033740, + "venv/lib/python3.13/site-packages/passlib/apache.py": 2357244937629445006, + "venv/lib/python3.13/site-packages/pygments/formatters/pangomarkup.py": 17135620955205945255, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_character/foo77.f": 4046503346951676582, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_constructors.py": 9815164146739254076, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_amd64_unix.h": 16679226724722970205, + "venv/lib/python3.13/site-packages/pygments/lexers/trafficscript.py": 776604244051744646, + "frontend/src/lib/components/translate/__tests__/test_bulk_replace_modal.svelte.js": 6802604718120565742, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/licenses/LICENSE.PSF": 13208428090829817329, + "venv/lib/python3.13/site-packages/attr/setters.pyi": 6670509359139243236, + "frontend/src/routes/settings/StorageSettings.svelte": 1953157077500445570, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/color_triplet.py": 17264298271771184, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_find_replace.py": 262184394614748386, + "venv/lib/python3.13/site-packages/idna/codec.py": 4260241549062101779, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi": 1846673463183660140, + "venv/lib/python3.13/site-packages/PIL/BlpImagePlugin.py": 7209218638257731375, + "frontend/src/components/DashboardGrid.svelte": 17669234585849525689, + "backend/src/core/utils/matching.py": 12567367681677699487, + "venv/lib/python3.13/site-packages/pytest_asyncio/plugin.py": 13414541723622354359, + "venv/lib/python3.13/site-packages/keyring/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_callback.py": 1689177048527329209, + "venv/lib/python3.13/site-packages/numpy/core/fromnumeric.py": 2136433423902202138, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/methods.py": 8059372834301557565, + "venv/lib/python3.13/site-packages/anyio/to_process.py": 16627578499791368365, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_duplicated.py": 14676058112867601208, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_generic.py": 1098361087956787007, + "venv/lib/python3.13/site-packages/git/types.py": 13960696584646279283, + "frontend/src/routes/storage/backups/+page.svelte": 3437582895363203695, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_xs.py": 1897144171324167738, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/WHEEL": 2357997949040430835, + "backend/src/plugins/translate/preview_response_parser.py": 15690759478655959205, + "backend/git_repos/remote/test-repo.git/objects/48/c3fde4d5fff5bf98e9bcaa5f328b199aa18292": 6121250272621110311, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_pytables_missing.py": 12154582133989896069, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/__init__.py": 17454177076687312424, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_between.py": 337429135216881486, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_datetimelike.py": 5317270578347271174, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_data.py": 2397937327057341, + "venv/lib/python3.13/site-packages/charset_normalizer/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/jose/backends/native.py": 50023158618000658, + "venv/lib/python3.13/site-packages/rpds/__init__.pyi": 12037474523494903587, + "backend/src/api/routes/__tests__/test_reports_detail_api.py": 7284151749869192310, + "venv/lib/python3.13/site-packages/starlette/middleware/sessions.py": 11719848399661632707, + "venv/bin/numpy-config": 17104619511899110252, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/licenses/LICENSE": 11986475601091748012, + "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_deprecations.py": 14624516389510242394, + "venv/lib/python3.13/site-packages/numpy/f2py/_isocbind.py": 15031197044862908440, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/context.py": 1041624619197012753, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/INSTALLER": 17282701611721059870, + "venv/bin/pyrsa-encrypt": 5858278204727417482, + "venv/lib/python3.13/site-packages/numpy/_array_api_info.py": 9709101823494959741, + "venv/lib/python3.13/site-packages/httpcore/_backends/mock.py": 6849131425727092784, + "venv/lib/python3.13/site-packages/_pytest/python.py": 1829073958095716309, + "venv/lib/python3.13/site-packages/pygments/lexers/_vim_builtins.py": 6842381248727719900, + "venv/lib/python3.13/site-packages/PIL/ImageFile.py": 15765130658900167517, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/dtypes.py": 9839461501970023861, + "venv/lib/python3.13/site-packages/secretstorage/collection.py": 17903258621904912493, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nested_sequence.pyi": 11245460325970663922, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/strategies.py": 14007486769065345085, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/METADATA": 3814104793342833872, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/gdscript.py": 12775803139854052838, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/isocintrin/isoCtests.f90": 6208802899442270399, + "venv/lib/python3.13/site-packages/pandas/io/parsers/base_parser.py": 15148258424429418380, + "venv/lib/python3.13/site-packages/numpy/_typing/_nbit_base.py": 7446626038222262489, + "venv/lib/python3.13/site-packages/numpy/_core/shape_base.py": 3996519099530770308, + "venv/lib/python3.13/site-packages/git/index/__init__.py": 7874728461616959441, + "venv/lib/python3.13/site-packages/sqlalchemy/connectors/aioodbc.py": 2018840826888846321, + "venv/lib/python3.13/site-packages/pip/__pip-runner__.py": 1138979712722199296, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/hi77.f": 10617763407280454334, + "venv/lib/python3.13/site-packages/urllib3/_collections.py": 3440910792774742262, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_ints.py": 5616705208267050659, + "venv/lib/python3.13/site-packages/pycparser/ply/ctokens.py": 1599952198962458730, + "venv/bin/dotenv": 953953349803507198, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/__init__.py": 96341051676048910, + "venv/lib/python3.13/site-packages/jsonschema_specifications/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_interval_pyarrow.py": 3849382723890414899, + "venv/lib/python3.13/site-packages/PIL/IcnsImagePlugin.py": 1870235606309784691, + "backend/src/api/routes/assistant/_command_parser.py": 2745692387994130159, + "venv/lib/python3.13/site-packages/anyio/abc/_resources.py": 8330687082933028623, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/WHEEL": 16784970174376303810, + "venv/lib/python3.13/site-packages/pydantic/_internal/_import_utils.py": 4029157986210295967, + "venv/lib/python3.13/site-packages/numpy/testing/overrides.pyi": 17408923209056015964, + "venv/lib/python3.13/site-packages/numpy/lib/_function_base_impl.py": 14034239842770171660, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/rec.pyi": 9140655366667421698, + "venv/lib/python3.13/site-packages/click/formatting.py": 6694583529073729642, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_logical/foo77.f": 16250175448122328648, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_append.py": 17016125916761365423, + "venv/lib/python3.13/site-packages/fastapi/cli.py": 13972351579061154035, + "venv/lib/python3.13/site-packages/pandas/core/reshape/pivot.py": 4736553530021653868, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/METADATA": 9586902338916246692, + "venv/lib/python3.13/site-packages/anyio/_core/_streams.py": 6436461519284884601, + "venv/lib/python3.13/site-packages/pygments/lexers/promql.py": 8929925488296216854, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/RECORD": 6349071557579241461, + "venv/lib/python3.13/site-packages/pygments/lexers/_sourcemod_builtins.py": 11809503654078535014, + "venv/lib/python3.13/site-packages/_pytest/scope.py": 7603155109542903644, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/printing.py": 8681519649669408795, + "venv/lib/python3.13/site-packages/requests/hooks.py": 9888227370911151341, + "venv/lib/python3.13/site-packages/psycopg2/__init__.py": 15798412693009721199, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_pyf_src.py": 12351476647369971852, + "venv/lib/python3.13/site-packages/h11/_readers.py": 832030916375670301, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_distutils.py": 1948707545068786, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge.py": 11366935134260232329, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_three_greenlets2.py": 11100501798741918610, + "venv/lib/python3.13/site-packages/starlette/exceptions.py": 15978811612997200737, + "venv/lib/python3.13/site-packages/sqlalchemy/connectors/__init__.py": 17194870661869873083, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_pickle.py": 2910383574326146698, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/groupby.py": 14661033005768429774, + "backend/src/core/auth/__tests__/test_auth.py": 14999763239648705195, + "venv/lib/python3.13/site-packages/sqlalchemy/event/base.py": 18238453132776154057, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_legend.py": 13094583566764796297, + "venv/lib/python3.13/site-packages/git/refs/__init__.py": 16246686106073400519, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_missing.py": 3991199131191840903, + "venv/lib/python3.13/site-packages/greenlet/greenlet_allocator.hpp": 11041111583319491309, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libpq-9b38f5e3.so.5.17": 9680474575710585826, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/diagnose.py": 17275977405061138181, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/attributes.py": 5068814626384132900, + "backend/src/plugins/translate/scheduler.py": 7566547314463268121, + "frontend/src/services/git-utils.js": 12982149055119314642, + "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/integration.py": 3085827906490477329, + "venv/lib/python3.13/site-packages/smmap/mman.py": 9091562788592406032, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/WHEEL": 7454950858448014158, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_nunique.py": 8450574751331186943, + "venv/lib/python3.13/site-packages/pygments/lexers/webassembly.py": 17811970490091406867, + "venv/lib/python3.13/site-packages/jsonschema_specifications/__init__.py": 5732822354953774657, + "venv/lib/python3.13/site-packages/pygments/lexers/parasail.py": 7758704230750989282, + "venv/lib/python3.13/site-packages/dotenv/py.typed": 9796674040111366709, + "backend/src/api/routes/__tests__/test_clean_release_source_policy.py": 15242462571646635922, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_masm.asm": 15349921092257597740, + "venv/lib/python3.13/site-packages/pandas/io/excel/__init__.py": 6662687963241471393, + "venv/lib/python3.13/site-packages/pygments/lexer.py": 3658450949169647228, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/WHEEL": 18203500019759199992, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_join.py": 13115782559805895662, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/auth.py": 13542332344403032059, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test__exceptions.py": 12099001631178696189, + "venv/lib/python3.13/site-packages/pip/_internal/main.py": 13711402795965346761, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/websockets/legacy/handshake.py": 376095144657994920, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/boxplot.py": 7090586111222952862, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_manylinux.py": 12272275001961360101, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timezones.pyi": 17528421279543420867, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_repeat.py": 16971624301893342868, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_stata.py": 3030675968330529905, + "venv/lib/python3.13/site-packages/httpcore/_api.py": 16499985295426060327, + "venv/lib/python3.13/site-packages/bcrypt/__about__.py": 11196369962175692786, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/authorization_server.py": 17967809814827547139, + "venv/lib/python3.13/site-packages/numpy/f2py/capi_maps.pyi": 10638891136586198429, + "venv/lib/python3.13/site-packages/greenlet/TGreenlet.cpp": 4121171004360760212, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/scope.py": 4096190764836489091, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cffi/extending.py": 9859383893070793914, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_shift.py": 8547819448301023303, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_argsort.py": 7320661835159648143, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/ssh.py": 16262079536832961001, + "venv/lib/python3.13/site-packages/passlib/utils/compat/__init__.py": 17369882236606423129, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/METADATA": 3618776395694990076, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/engine.py": 2652248727360250985, + "venv/lib/python3.13/site-packages/pandas/io/formats/_color_data.py": 15614976586613738953, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/exc.py": 3242780937124999391, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/misc/extended_precision.pyi": 6541258584648209609, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/base.py": 3250660921154829815, + "venv/lib/python3.13/site-packages/pygments/lexers/pawn.py": 18127303119414402594, + "frontend/src/lib/components/reports/ReportDetailPanel.svelte": 16014663571033060148, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/resultproxy.cpython-313-x86_64-linux-gnu.so": 6011605826065363427, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufuncs.py": 12732599294816239111, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_mask.py": 9654897363729130542, + "venv/lib/python3.13/site-packages/h11/_version.py": 9334144031400715479, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arrayterator.py": 1646530870049791291, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/parameters.py": 247312908510013930, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/LICENSE": 11167201188673981085, + "backend/src/services/reports/report_service.py": 17586405613867657190, + "venv/lib/python3.13/site-packages/sqlalchemy/util/deprecations.py": 7020540470348910770, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_common_basic.py": 1945891789924713537, + "venv/lib/python3.13/site-packages/pygments/lexers/graphviz.py": 15677908982985025500, + "backend/src/plugins/llm_analysis/__tests__/test_service.py": 9850768293526486431, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_tz_convert.py": 77283525137564255, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/jwk.py": 6458001384702613165, + "venv/lib/python3.13/site-packages/jose/backends/cryptography_backend.py": 2875270748627611635, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/controller.py": 5450931608244830335, + "venv/lib/python3.13/site-packages/dateutil/tz/_common.py": 9009072600471223066, + "venv/lib/python3.13/site-packages/authlib/deprecate.py": 3563885283090710443, + "venv/lib/python3.13/site-packages/numpy/strings/__init__.py": 6523674574341354095, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/rnc.py": 9747352274729854620, + "frontend/src/components/tasks/LogFilterBar.svelte": 5318774167984892372, + "backend/src/plugins/translate/preview.py": 5205686418280116079, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/assertion_client.py": 4261295109880943573, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_matmul.py": 16169282225324014901, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_file.py": 5180401483285462901, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi": 9405122752084210696, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_astype.py": 4975959187621745360, + "venv/lib/python3.13/site-packages/gitdb/pack.py": 7828244200815444166, + "venv/lib/python3.13/site-packages/numpy/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/PIL/ContainerIO.py": 7551929914241379005, + "venv/lib/python3.13/site-packages/itsdangerous/__init__.py": 6969210114978365656, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timestamps.cpython-313-x86_64-linux-gnu.so": 13209491675968970365, + "venv/lib/python3.13/site-packages/ecdsa/ssh.py": 17010933326090778158, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/WHEEL": 11630459739183915695, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE": 14230156892574098522, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize.pyi": 6616985736007157309, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.cpython-313-x86_64-linux-gnu.so": 12776951671822017500, + "venv/lib/python3.13/site-packages/pygments/lexers/whiley.py": 218468511185731869, + "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/base.py": 15872835330892203433, + "frontend/build/_app/immutable/chunks/1pQSCx4e.js": 16909609204690409294, + "venv/lib/python3.13/site-packages/numpy/polynomial/laguerre.pyi": 11310761736182213265, + "venv/lib/python3.13/site-packages/pygments/formatters/other.py": 13124903290103898118, + "venv/lib/python3.13/site-packages/six.py": 948867418687428421, + "venv/lib/python3.13/site-packages/pydantic/dataclasses.py": 12384956801113860889, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/bitwise_ops.pyi": 751490187478960891, + "frontend/build/_app/immutable/nodes/35.CU1hxtCR.js": 14353643668738837213, + "backend/src/services/reports/__tests__/test_report_service.py": 6045116534626984913, + "frontend/src/routes/settings/__tests__/settings_page.ux.test.js": 8756428349518151160, + "venv/lib/python3.13/site-packages/numpy/matrixlib/__init__.py": 18402126171936308228, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE": 14610443802372107702, + "venv/lib/python3.13/site-packages/rapidfuzz/utils_cpp.cpython-313-x86_64-linux-gnu.so": 16145829319198889672, + "venv/lib/python3.13/site-packages/psycopg2/pool.py": 8855184580138330938, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/client_auth.py": 3301527187487914220, + "venv/lib/python3.13/site-packages/pandas/_libs/properties.pyi": 9268470215750269699, + "venv/lib/python3.13/site-packages/pandas/core/groupby/generic.py": 4857114071347950833, + "venv/lib/python3.13/site-packages/pyasn1/codec/streaming.py": 13202773554072937140, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_interp_fillna.py": 5530041283991655415, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/env.py": 1254612137164491329, + "venv/lib/python3.13/site-packages/dateutil/rrule.py": 398469817784230512, + "venv/lib/python3.13/site-packages/_pytest/outcomes.py": 12782895027812738142, + "venv/lib/python3.13/site-packages/pygments/formatters/__init__.py": 8009871891954370829, + "venv/lib/python3.13/site-packages/pygments/lexers/prolog.py": 599539463980699865, + "venv/lib/python3.13/site-packages/pandas/core/accessor.py": 1188716996113179524, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/errors.py": 12935154705443176852, + "backend/src/core/task_manager/__tests__/test_context.py": 4211690952139950648, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/uvicorn/loops/asyncio.py": 16496916527760969173, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/pyproject.py": 12684373765476932108, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_factorize.py": 17995673140216929494, + "venv/lib/python3.13/site-packages/numpy/ma/__init__.pyi": 1855615156913010107, + "venv/lib/python3.13/site-packages/numpy/_utils/_inspect.py": 7029935879540617057, + "venv/lib/python3.13/site-packages/pandas/tests/test_errors.py": 10116716310156374885, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_isna.py": 18394053826166267096, + "venv/lib/python3.13/site-packages/typing_inspection/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_cython.py": 2933400021016349431, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/METADATA": 15225661995655327539, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatters/__init__.py": 3247870839323520754, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/__init__.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_random.py": 4179188367630060654, + "frontend/src/lib/components/assistant/AssistantChatPanel.svelte": 4130047433623185888, + "frontend/src/lib/components/layout/TopNavbar.svelte": 16593656019460608311, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_struct_accessor.py": 6567451952835390075, + "backend/src/services/clean_release/policy_resolution_service.py": 5075709738950902327, + "frontend/src/components/git/GitManager.svelte": 2759220622954168718, + "backend/src/services/clean_release/stages/__init__.py": 11595548160903612178, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_sorted.py": 1899608688401238388, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ndarray_misc.pyi": 16219573290116396099, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_hour.py": 13754646634123368797, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arrayterator.pyi": 7439348655567232744, + "frontend/src/routes/settings/settings-utils.js": 4790951495955131309, + "venv/lib/python3.13/site-packages/passlib/handlers/django.py": 66638338316838351, + "frontend/src/lib/stores/health.js": 1061942219531952418, + "venv/lib/python3.13/site-packages/pydantic/plugin/_schema_validator.py": 857640644840976862, + "venv/lib/python3.13/site-packages/pygments/lexers/esoteric.py": 16839499623020685146, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_from_scalar.py": 16520136036631155842, + "venv/lib/python3.13/site-packages/pygments/formatters/bbcode.py": 8614391937525677922, + "venv/lib/python3.13/site-packages/rapidfuzz/_utils.py": 14374663810542207121, + "venv/lib/python3.13/site-packages/jeepney/io/common.py": 15160647397460834508, + "venv/lib/python3.13/site-packages/numpy/ma/LICENSE": 6723325434476453127, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_datetime_index.py": 15448494560143263150, + "venv/lib/python3.13/site-packages/click/globals.py": 18353671282454331523, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/hooks.py": 8580161128344266243, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/anyio/to_thread.py": 12767326212338028587, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_take.py": 3281943380342853080, + "frontend/src/lib/ui/Select.svelte": 11354509509920497811, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/models.py": 16636119441941357281, + "venv/lib/python3.13/site-packages/pandas/_libs/groupby.pyi": 6154952803757623626, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/tree.py": 4991806303236874829, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_version.py": 10384171076976071398, + "venv/lib/python3.13/site-packages/pycparser/ply/yacc.py": 4218889705926129841, + "venv/lib/python3.13/site-packages/PIL/PdfParser.py": 13710342183037972042, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_crackfortran.py": 10278720705326601943, + "venv/lib/python3.13/site-packages/pandas/tests/config/test_localization.py": 9524481848419616725, + "venv/lib/python3.13/site-packages/apscheduler/job.py": 1858376671986108667, + "venv/lib/python3.13/site-packages/pandas/core/reshape/concat.py": 2218848863149192467, + "frontend/src/lib/ui/Button.svelte": 921807193049478213, + "venv/lib/python3.13/site-packages/pandas/_libs/json.cpython-313-x86_64-linux-gnu.so": 2436285663630821963, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_fillna.py": 7244491410004453166, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_records.py": 6252761812228230408, + "venv/lib/python3.13/site-packages/passlib/tests/test_apache.py": 12515001998770565375, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_meson.py": 5735043585893007971, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_reductions.py": 1713831062142840146, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/provision.py": 13156893203444936309, + "venv/lib/python3.13/site-packages/PIL/GribStubImagePlugin.py": 14954946414134984896, + "venv/lib/python3.13/site-packages/python_multipart/multipart.py": 5677735019292537174, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/licenses/LICENSE": 14524289631770661180, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_interface.py": 13648006002292914247, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_index_as_string.py": 292438690259156869, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_s3.py": 17425535047477778484, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/status_codes.py": 17005213506461710202, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pop.py": 14885271225856187795, + "venv/lib/python3.13/site-packages/cryptography/__init__.py": 641702726372647770, + "venv/lib/python3.13/site-packages/pip/_internal/utils/_log.py": 13011536737418204268, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/mt19937-testset-1.csv": 16349400027062875699, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_isetitem.py": 14895552405828068177, + "frontend/src/lib/components/translate/ScheduleConfig.svelte": 14007615494976044075, + "venv/lib/python3.13/site-packages/pydantic/v1/decorator.py": 6124748023704700724, + "venv/lib/python3.13/site-packages/pandas/tests/libs/__init__.py": 15130871412783076140, + "frontend/build/_app/immutable/assets/9.tn0RQdqM.css": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/apps.py": 4219758952914498116, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py": 1331438198531942242, + "venv/lib/python3.13/site-packages/jeepney/tests/test_bindgen.py": 8637878018232418583, + "backend/git_repos/remote/test-repo.git/objects/5d/9eb555c4cac2d3ffdba84c07682b154fe4180d": 10756202165146702691, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/__init__.py": 2345997696115514124, + "venv/lib/python3.13/site-packages/packaging/_structures.py": 13086687542872305890, + "venv/lib/python3.13/site-packages/passlib/__init__.py": 6987142392711441525, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/versioncontrol.py": 13742159245132241245, + "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/RECORD": 7266315886702289726, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_inspect.py": 10573558345297891848, + "venv/lib/python3.13/site-packages/authlib/oidc/core/util.py": 5364455058429522633, + "venv/lib/python3.13/site-packages/pydantic/functional_serializers.py": 15285359935059345032, + "venv/lib/python3.13/site-packages/pygments/lexers/_lua_builtins.py": 12653747099659257203, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/_libs/__init__.py": 17117112389651696580, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_ufunc.py": 5025605639221470838, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_contains.py": 17630310725250553247, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_pop.py": 5700439923973346681, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_common.f": 5913807803369559749, + "venv/lib/python3.13/site-packages/numpy/ma/core.py": 338350463523585845, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/help.py": 3124654001287175629, + "venv/lib/python3.13/site-packages/h11/__init__.py": 222801976520197308, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/authorization_server.py": 724388765673082720, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_inf.py": 8659210689723088321, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath_accuracy.py": 3904008607472505376, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/util.py": 6088868370298560146, + "venv/lib/python3.13/site-packages/anyio/to_interpreter.py": 8369454842687342401, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/engines.py": 10876954465293959720, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/random.pyi": 1808392097712315455, + "frontend/src/components/llm/ValidationReport.svelte": 11810571826279890996, + "venv/lib/python3.13/site-packages/numpy/random/_mt19937.cpython-313-x86_64-linux-gnu.so": 85866616759631810, + "venv/lib/python3.13/site-packages/numpy/ma/mrecords.pyi": 8945514863366384484, + "backend/src/core/__tests__/test_superset_profile_lookup.py": 15590077829286810714, + "backend/src/core/superset_client/_dashboards_list.py": 16574697057051064609, + "backend/src/services/git/_url.py": 15729080796864187707, + "venv/lib/python3.13/site-packages/pandas/_config/display.py": 433650013567734821, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/core/_utils.py": 14108063453670701289, + "venv/lib/python3.13/site-packages/pip/_internal/build_env.py": 3614358934066127900, + "venv/lib/python3.13/site-packages/pygments/lexers/_cl_builtins.py": 16540712925368297957, + "backend/src/services/clean_release/policy_engine.py": 3180817867716931725, + "venv/lib/python3.13/site-packages/pandas/io/_util.py": 13608922148814398500, + "backend/git_repos/remote/test-repo.git/hooks/post-update.sample": 4288868784459664203, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/warnings.py": 2552021607611112605, + "venv/lib/python3.13/site-packages/numpy/_core/_asarray.pyi": 3940937389249665490, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_py_util.py": 12836989066113400538, + "venv/lib/python3.13/site-packages/rsa/core.py": 13203947234024924497, + "venv/lib/python3.13/site-packages/pluggy/_manager.py": 18202550145040079612, + "venv/lib/python3.13/site-packages/packaging/_tokenizer.py": 7442392076059866359, + "backend/src/services/clean_release/repositories/publication_repository.py": 11208425895213508165, + "venv/lib/python3.13/site-packages/websockets/asyncio/client.py": 5694225754072131767, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh25211.pyf": 10179237442840865225, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/serialize.py": 11139432164346742421, + "venv/lib/python3.13/site-packages/numpy/_core/_type_aliases.pyi": 15848834171197104301, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-tan.csv": 6233924374281534211, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_missing.py": 6224750552277937853, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/METADATA": 7788873460115135563, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_mask.py": 5451866071307236899, + "venv/lib/python3.13/site-packages/numpy/testing/__init__.py": 2831275254313750978, + "venv/lib/python3.13/site-packages/pandas/__init__.py": 793698514004377486, + "venv/lib/python3.13/site-packages/httpx/_client.py": 1063593889704982038, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/zip-safe": 15240312484046875203, + "venv/lib/python3.13/site-packages/websockets/http11.py": 11022534176398053082, + "docker/nginx.conf": 14595959129793115016, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/traceback.py": 2535227583726271746, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/utils.h": 3920393832993063886, + "backend/git_repos/remote/test-repo.git/objects/6f/85e20ce3ef98cf07a2f102498b71b9462552c5": 3012017807908986452, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/timeseries.py": 17641722582848932332, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_drop_duplicates.py": 12601598844977346213, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_csv.py": 571991535656576735, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/auth.py": 912521029864094489, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/__init__.py": 9884041726796476720, + "venv/lib/python3.13/site-packages/authlib/oidc/core/models.py": 1370998944213578392, + "venv/lib/python3.13/site-packages/numpy/lib/_stride_tricks_impl.pyi": 9243829615414967057, + "venv/lib/python3.13/site-packages/websockets/asyncio/async_timeout.py": 7267209982032642028, + "venv/lib/python3.13/site-packages/requests/structures.py": 2668010839316715865, + "venv/lib/python3.13/site-packages/pandas/io/json/_table_schema.py": 3103776773020058805, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/cli.py": 6382193953727339271, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_timezones.py": 1962830142478494009, + "venv/lib/python3.13/site-packages/PIL/Jpeg2KImagePlugin.py": 16905402423248975204, + "frontend/build/_app/immutable/nodes/11.CxjyUvgv.js": 15353727294407537515, + "backend/src/plugins/translate/orchestrator_sql_rows.py": 13473935462270832541, + "venv/lib/python3.13/site-packages/pandas/tests/reductions/__init__.py": 16150188643076000414, + "venv/lib/python3.13/site-packages/pygments/styles/gh_dark.py": 7717523746712391809, + "venv/lib/python3.13/site-packages/numpy/f2py/_src_pyf.pyi": 8916922961301555974, + "venv/lib/python3.13/site-packages/pygments/lexers/mips.py": 2078929831513352031, + "venv/lib/python3.13/site-packages/smmap/__init__.py": 4557520096828426601, + "venv/lib/python3.13/site-packages/ecdsa/test_der.py": 7117444285097824495, + "venv/lib/python3.13/site-packages/pydantic/deprecated/tools.py": 16466182352694741629, + "venv/lib/python3.13/site-packages/pyasn1/debug.py": 6305633719847955310, + "venv/lib/python3.13/site-packages/pip/_internal/network/cache.py": 10606522397693824641, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarraytypes.h": 6765088137325865789, + "venv/lib/python3.13/site-packages/iniconfig/exceptions.py": 16501270224069836264, + "venv/lib/python3.13/site-packages/_pytest/_py/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/_libs/index.cpython-313-x86_64-linux-gnu.so": 18409579812171549318, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/git/repo/fun.py": 9019364012746153312, + "venv/lib/python3.13/site-packages/pygments/formatters/irc.py": 2133711525226123259, + "venv/lib/python3.13/site-packages/sqlalchemy/util/tool_support.py": 4926732415520779988, + "venv/lib/python3.13/site-packages/pygments/lexers/fortran.py": 6859638690245583968, + "venv/lib/python3.13/site-packages/passlib/ifc.py": 14479133654556657428, + "venv/lib/python3.13/site-packages/pandas/core/reshape/encoding.py": 12702053687535473061, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libssl-81ffa89e.so.3": 13913673119166658781, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_packbits.py": 7592956764084658562, + "frontend/build/_app/immutable/nodes/13.DAJ9ekq2.js": 10273571297813670605, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/__init__.py": 1343779312297539596, + "venv/lib/python3.13/site-packages/numpy/lib/_polynomial_impl.py": 12771179468704314203, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_conversion.py": 9159276697339089788, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_overlaps.py": 2328652590379935311, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_function_base.py": 16624804022675533740, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/size/foo.f90": 18067977329435720684, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi": 3893434234020223151, + "venv/lib/python3.13/site-packages/rpds/rpds.cpython-313-x86_64-linux-gnu.so": 561326734302492859, + "backend/src/plugins/translate/__tests__/test_dictionary_utils.py": 12007616543185225081, + "venv/bin/pyrsa-verify": 6762739642629904442, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/WHEEL": 6514509858522675228, + "venv/lib/python3.13/site-packages/pandas/util/_decorators.py": 14780166101442507665, + "backend/src/core/superset_client/__init__.py": 14560361361214953450, + "venv/lib/python3.13/site-packages/cffi/pkgconfig.py": 16057517851163939571, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/dml.py": 17308908394336670576, + "venv/lib/python3.13/site-packages/jeepney/io/tests/test_asyncio.py": 2820168745710754136, + "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/websockets/speedups.pyi": 10322382420215791091, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_join.py": 1364886077926604427, + "venv/lib/python3.13/site-packages/rsa/pkcs1.py": 2576732594642491910, + "venv/lib/python3.13/site-packages/click/types.py": 6491651131669287534, + "venv/lib/python3.13/site-packages/pydantic/_internal/_internal_dataclass.py": 13206778611516171760, + "venv/lib/python3.13/site-packages/numpy/core/__init__.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/style.py": 15214295655795348821, + "venv/lib/python3.13/site-packages/passlib/tests/sample1b.cfg": 2872366861156549016, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_freq_attr.py": 1720704043778272895, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_insert.py": 6970975909565157982, + "backend/src/plugins/translate/__tests__/test_lang_detect.py": 16256377911223482185, + "venv/lib/python3.13/site-packages/jeepney/tests/test_bus_messages.py": 4323093138307306385, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/tornado.py": 6491136785917169991, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/RECORD": 6488682447051657004, + "venv/lib/python3.13/site-packages/anyio/streams/tls.py": 4191898645554875562, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi": 11455144434558323236, + "backend/src/api/routes/assistant/_dispatch.py": 3811422882986895565, + "frontend/build/_app/immutable/chunks/DvPRmPmp.js": 8114859252616489039, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_set_index.py": 10971093361190283675, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/git.py": 17060377178521307324, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py": 2042509334195547606, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_other.py": 783701524491896337, + "venv/lib/python3.13/site-packages/pandas/io/pytables.py": 17482934215513855928, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_windows.py": 9171347078900057357, + "venv/lib/python3.13/site-packages/pandas/core/window/numba_.py": 1444123360986509769, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_to_xml.py": 8477770807916990981, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/multipart/decoders.py": 11346752866822986212, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_no_deprecated_api.h": 7896028550808252043, + "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_linalg.py": 2939739913218718132, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_py.py": 6428078990080243608, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/__init__.py": 14571251344510763303, + "venv/lib/python3.13/site-packages/cryptography/utils.py": 18088508841978595788, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/url.py": 9692934100602135106, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufunc_config.py": 14728417910466146460, + "venv/lib/python3.13/site-packages/pandas/_libs/ops.pyi": 1192312467209548763, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_sort.py": 11941630642630249576, + "venv/lib/python3.13/site-packages/sqlalchemy/util/compat.py": 16148553252010089561, + "venv/lib/python3.13/site-packages/jose/backends/rsa_backend.py": 13507186353881931758, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_regression.py": 9375525053479844400, + "venv/lib/python3.13/site-packages/git/index/typ.py": 11661540784850363024, + "venv/lib/python3.13/site-packages/pytest_asyncio/__init__.py": 8162213292669110211, + "venv/lib/python3.13/site-packages/pygments/__main__.py": 13200500591994479045, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/WHEEL": 5990830714395966792, + "venv/bin/Activate.ps1": 1196103427939049710, + "frontend/src/lib/stores.js": 8062876368729352764, + "frontend/src/components/git/CommitHistory.svelte": 61942790722897211, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/METADATA": 6557531107125553027, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_value_counts.py": 13270420637302622174, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f90continuation.f90": 17056591497459381871, + "backend/src/models/__tests__/test_report_models.py": 14916807060334836854, + "venv/lib/python3.13/site-packages/numpy/_pytesttester.py": 17737911110576747508, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/scoping.py": 18223258186431020473, + "venv/lib/python3.13/site-packages/httpx/_transports/__init__.py": 5931944625631942279, + "backend/src/plugins/migration.py": 16567640288127443175, + "backend/src/__init__.py": 11250920420388310655, + "venv/lib/python3.13/site-packages/numpy/typing/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/tests/test_warnings.py": 3154249157134620649, + "venv/lib/python3.13/site-packages/rsa/cli.py": 1753949198467694190, + "venv/lib/python3.13/site-packages/pandas/tests/resample/conftest.py": 1643522609234951699, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_join.py": 2585969863606902743, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_where.py": 3272402211717453881, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_core_functionalities.py": 10449747865888948579, + "venv/lib/python3.13/site-packages/pandas/io/formats/format.py": 3364941338174434661, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py": 1359143503575245224, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_subclass.py": 16342917051908786497, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reset_index.py": 14490875921264161445, + "venv/lib/python3.13/site-packages/jeepney/__init__.py": 1063800617763464773, + "venv/lib/python3.13/site-packages/numpy/lib/array_utils.pyi": 14646405559193539455, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation": 4826455560768665215, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_filter.py": 2388681477981649268, + "venv/lib/python3.13/site-packages/pygments/lexers/yang.py": 7409365668425173823, + "venv/lib/python3.13/site-packages/fastapi/security/oauth2.py": 1925394177931547776, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_simd.py": 7577408467041941595, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkeyutils-dfe70bd6.so.1.5": 9414227432578104677, + "venv/lib/python3.13/site-packages/pydantic/main.py": 14086938579850319884, + "frontend/build/_app/immutable/chunks/wGslGEg4.js": 7568691983055374884, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/decl_base.py": 8678387511873412922, + "venv/lib/python3.13/site-packages/numpy/core/records.py": 12604652690721760437, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pluggy/_version.py": 7195758686717994475, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA.py": 17817123894903120316, + "venv/lib/python3.13/site-packages/pip/_internal/operations/check.py": 16650663913976953800, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_multiarray.py": 3592197154340095431, + "backend/src/core/superset_client/_base.py": 17832258524611728315, + "frontend/src/lib/components/layout/__tests__/test_sidebar.svelte.js": 1424894894434906249, + "venv/lib/python3.13/site-packages/apscheduler/events.py": 10748346950729364899, + "venv/lib/python3.13/site-packages/pygments/lexers/ul4.py": 9580182474451220952, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_cross.py": 17742712348672218852, + "venv/lib/python3.13/site-packages/pygments/lexers/kusto.py": 16285533608924436308, + "venv/lib/python3.13/site-packages/_pytest/config/__init__.py": 12787579251203510616, + "venv/lib/python3.13/site-packages/secretstorage/defines.py": 9590959702075554048, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/errors.py": 12777931960088171310, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py": 14190849361275154667, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_accessor.py": 10074496835594855786, + "backend/src/core/database.py.bak": 14909628735913201532, + "venv/lib/python3.13/site-packages/pip/_internal/network/lazy_wheel.py": 12936988990566680659, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/socks.py": 17581293673028078134, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_assignability.pyi": 1718610984396277997, + "venv/lib/python3.13/site-packages/pandas/_libs/hashing.pyi": 5241441378073929968, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/shape_base.pyi": 5046405609030418900, + "venv/lib/python3.13/site-packages/anyio/streams/text.py": 12507591237176920223, + "venv/lib/python3.13/site-packages/_pytest/logging.py": 10972553724755511468, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_shift.py": 9952689832827833247, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/base.py": 16714704323747942110, + "venv/lib/python3.13/site-packages/httpcore/_backends/__init__.py": 15130871412783076140, + "backend/src/plugins/translate/service_datasource.py": 10240814407336170041, + "venv/lib/python3.13/site-packages/_pytest/setuponly.py": 10959102379908419762, + "venv/lib/python3.13/site-packages/PIL/BmpImagePlugin.py": 16682567630621529903, + "backend/git_repos/remote/test-repo.git/hooks/commit-msg.sample": 13435789416588783681, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/RECORD": 10264342250058307301, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/use_modules.f90": 3913612933340746297, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/lexers/srcinfo.py": 16466766917840327610, + "venv/lib/python3.13/site-packages/urllib3/http2/__init__.py": 62108352209996836, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/format": 12697928260201325593, + "venv/lib/python3.13/site-packages/pandas/_libs/internals.pyi": 11662356720550765508, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/__init__.py": 7316739139609490520, + "venv/lib/python3.13/site-packages/pandas/core/window/expanding.py": 14141093310397856286, + "frontend/build/_app/immutable/nodes/1.ClKXV3I2.js": 5760470200614905177, + "backend/git_repos/remote/test-repo.git/hooks/update.sample": 8204581436750313444, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/literal.py": 5641382379370828704, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_diff.py": 2216748778018882333, + "venv/lib/python3.13/site-packages/numpy/random/_pcg64.pyi": 14785496840737986355, + "venv/lib/python3.13/site-packages/pycparser/ply/cpp.py": 1665654017894222868, + "venv/lib/python3.13/site-packages/sqlalchemy/util/typing.py": 17638587764345605306, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/types.py": 12298292195929126306, + "venv/lib/python3.13/site-packages/pandas/core/util/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_offsets.py": 4499538899492148499, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_series.pyi": 7112486730197067087, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/keyring/backends/Windows.py": 4103830951042463184, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/__init__.py": 15735839022111230173, + "venv/lib/python3.13/site-packages/pydantic/_internal/_config.py": 12760390602912369447, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/strings.pyi": 15361498560917514616, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7521/client.py": 17305914656270781911, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_apply_relabeling.py": 3930092097678339743, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_insert.py": 9195027887301180927, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/dtype.py": 5553691086633215767, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_iloc.py": 7586049606891014270, + "venv/lib/python3.13/site-packages/cryptography/__about__.py": 10471312538528457144, + "venv/lib/python3.13/site-packages/passlib/win32.py": 5311393450489898748, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/conftest.py": 17897502508251413988, + "frontend/build/_app/immutable/chunks/voZEUQBO.js": 14236307922338214156, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_with_comments.f": 3980077223827767077, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_algos.py": 5356470832688354593, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_constructors.py": 2439700578107653984, + "venv/lib/python3.13/site-packages/fastapi/middleware/httpsredirect.py": 5775982317459922443, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_is_monotonic.py": 4626065848596214108, + "venv/lib/python3.13/site-packages/pycparser/c_generator.py": 14922277346364091122, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/progress_bar.py": 15595912766961891283, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/errors.py": 6538052228921426956, + "venv/lib/python3.13/site-packages/tzlocal/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/_libs/algos.pyi": 22405377601029952, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_clip.py": 8087139801274517318, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/RECORD": 12575893084587070195, + "venv/lib/python3.13/site-packages/PIL/_avif.cpython-313-x86_64-linux-gnu.so": 5243449968857258659, + "venv/lib/python3.13/site-packages/PIL/FitsImagePlugin.py": 618556384932056120, + "venv/lib/python3.13/site-packages/pandas/core/internals/construction.py": 893951849732478990, + "venv/lib/python3.13/site-packages/multipart/exceptions.py": 8580522204565816132, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_contains.py": 5273759677032634868, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_week.py": 5756727157937218128, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/METADATA": 15970460108484113417, + "venv/lib/python3.13/site-packages/pip/_vendor/distro/__init__.py": 11414161642984633362, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/ma/LICENSE": 6723325434476453127, + "backend/src/services/profile_preference_service.py": 58722622434127499, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_f2py2e.py": 8571347023940385644, + "venv/lib/python3.13/site-packages/numpy/random/bit_generator.pyi": 15790738442952696034, + "venv/lib/python3.13/site-packages/httpx/_transports/asgi.py": 12335675489870745729, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/bazaar.py": 5630511062945201327, + "venv/lib/python3.13/site-packages/numpy/ma/mrecords.py": 687170905107114309, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/__init__.py": 4265012785873472600, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_transform.py": 6759417099641034692, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_hashtable.py": 2620207240930665390, + "venv/lib/python3.13/site-packages/pandas/tests/config/test_config.py": 4630144191929135452, + "venv/lib/python3.13/site-packages/numpy/lib/npyio.pyi": 3212440968296555560, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/nit.py": 18262907536841158657, + "venv/lib/python3.13/site-packages/pygments/lexers/pddl.py": 9256112535059995841, + "venv/lib/python3.13/site-packages/pandas/core/_numba/extensions.py": 4132402557064663751, + "backend/src/api/routes/git/_router.py": 8701683910668868827, + "backend/src/plugins/translate/__tests__/test_dictionary.py": 12126432977797732683, + "backend/src/plugins/translate/orchestrator_retry.py": 9287851697930332790, + "frontend/src/services/toolsService.js": 1568142461283466080, + "venv/lib/python3.13/site-packages/PIL/GbrImagePlugin.py": 7681313333602257802, + "venv/bin/pyrsa-decrypt": 10929163076272054227, + "venv/lib/python3.13/site-packages/secretstorage/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/array.py": 1919242530821725197, + "backend/src/schemas/dataset_review.py": 15720223123457526104, + "backend/src/api/routes/reports.py": 5647380957044157360, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/resource_protector.py": 17080006010679257864, + "backend/src/services/__tests__/test_llm_provider.py": 4705572506930455768, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_indexing.py": 9862204223281834360, + "backend/src/services/clean_release/audit_service.py": 3614108458934359126, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_parser.py": 8145921552236189367, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/base.py": 3628510830969664111, + "venv/lib/python3.13/site-packages/passlib/handlers/bcrypt.py": 8125664010268654055, + "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/METADATA": 2624107638694809013, + "backend/tests/test_smoke_plugins.py": 10704454611361370435, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_tz_localize.py": 14495969595744172955, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/licenses/LICENSE": 4672913476475760762, + "backend/src/core/plugin_base.py": 11649432288706102843, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_grouping.py": 5994909693214299971, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_generic.py": 1297407268239966429, + "venv/lib/python3.13/site-packages/gitdb/db/base.py": 3375449584942578385, + "venv/lib/python3.13/site-packages/pip/_internal/cli/autocompletion.py": 7651919329635563739, + "venv/lib/python3.13/site-packages/idna/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/_config/dates.py": 3863381688916127265, + "backend/alembic.ini": 8897071018956157084, + "backend/git_repos/remote/test-repo.git/HEAD": 12394318939628232491, + "frontend/build/_app/immutable/chunks/BsX-ti3M.js": 3696367511864558476, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_cat.py": 15988884721768567895, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_groupby.py": 2738671407653333726, + "venv/lib/python3.13/site-packages/numpy/_typing/_scalars.py": 17701938912160369190, + "venv/lib/python3.13/site-packages/pandas/core/interchange/column.py": 9498044216416177656, + "venv/lib/python3.13/site-packages/passlib/crypto/__init__.py": 16409196868630049365, + "venv/lib/python3.13/site-packages/pandas/core/indexes/extension.py": 7193879749426425951, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_invalid_arg.py": 610891871484326055, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_comparison.py": 11333735187162513512, + "backend/src/core/task_manager/event_bus.py": 15798578020529126889, + "venv/lib/python3.13/site-packages/passlib/utils/md4.py": 4521366665754877351, + "venv/lib/python3.13/site-packages/numpy/f2py/symbolic.py": 16854377502491291093, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_ccalendar.py": 8819357623337533489, + "venv/lib/python3.13/site-packages/keyring/backends/chainer.py": 12526770797516553385, + "venv/lib/python3.13/site-packages/pluggy/_hooks.py": 6941854999025808196, + "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_numeric.py": 18037815278545274402, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/assertsql.py": 4633484475514351889, + "venv/lib/python3.13/site-packages/cryptography/x509/oid.py": 13909847799728532602, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/integration.py": 12670848015915724967, + "venv/lib/python3.13/site-packages/PIL/BdfFontFile.py": 10811640174253687845, + "venv/lib/python3.13/site-packages/urllib3/exceptions.py": 9687187566231423953, + "venv/lib/python3.13/site-packages/uvicorn/middleware/message_logger.py": 14825516604555033580, + "venv/lib/python3.13/site-packages/rsa/pkcs1_v2.py": 3533398238491175229, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/macos.py": 17442393555211213147, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_timegrouper.py": 276805119790266454, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/__init__.py": 13584649922093198724, + "venv/lib/python3.13/site-packages/numpy/lib/_polynomial_impl.pyi": 2042169688753984918, + "venv/lib/python3.13/site-packages/h11/_headers.py": 7592730288271984585, + "venv/lib/python3.13/site-packages/attrs/__init__.py": 9502968706258875910, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_format.py": 5231304674283854194, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/__init__.py": 260774374497653876, + "venv/lib/python3.13/site-packages/pygments/styles/paraiso_light.py": 15941591873059208999, + "backend/src/api/__init__.py": 5287505122015708040, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_simd_module.py": 7122050193390298178, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_compression.py": 8061288329598682752, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libselinux-0922c95c.so.1": 16516617710645376769, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/char.f90": 12203871998988759364, + "frontend/src/components/TaskRunner.svelte": 18014857434320509117, + "backend/src/core/superset_client/_charts.py": 8101226087578568224, + "backend/src/services/clean_release/__tests__/test_audit_service.py": 1679130450221264383, + "backend/src/plugins/translate/orchestrator_config.py": 1227864697811313446, + "venv/lib/python3.13/site-packages/fastapi/_compat/main.py": 13016492818231995760, + "venv/lib/python3.13/site-packages/pip/_internal/index/collector.py": 7454652626329467900, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/py.typed": 9796674040111366709, + "venv/lib/python3.13/site-packages/passlib/tests/sample_config_1s.cfg": 1809713544666311828, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_shares_memory.py": 2911029123657970431, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_strptime.py": 14328510310436552635, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/oauth2_client.py": 6742098857947604729, + "venv/lib/python3.13/site-packages/click/exceptions.py": 9734955259447933725, "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23598.f90": 1409455010615482779, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/RECORD": 12598309574903741388, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_empty.py": 6845813091876023610, + "venv/lib/python3.13/site-packages/websockets/connection.py": 5168795926684067030, + "venv/lib/python3.13/site-packages/sqlalchemy/util/__init__.py": 15821192733097665649, + "venv/lib/python3.13/site-packages/pygments/lexers/tlb.py": 1169242051301155885, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_delitem.py": 14336697139511118920, + "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_impl.py": 16610770935842519289, + "venv/lib/python3.13/site-packages/pandas/tests/io/generate_legacy_storage_files.py": 11015954144633661960, + "venv/lib/python3.13/site-packages/numpy/ctypeslib/__init__.py": 2401931196871484449, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_encs.py": 9703572751543253904, + "venv/lib/python3.13/site-packages/_pytest/_io/__init__.py": 1510478951261938348, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh27697.f90": 4990763135487995517, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_convert_dtypes.py": 5005259275646154894, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/asyncmy.py": 11808138763443525443, + "venv/lib/python3.13/site-packages/yaml/dumper.py": 11376022992370902766, + "venv/lib/python3.13/site-packages/anyio/abc/_testing.py": 16484863782452886547, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/cffi/ffiplatform.py": 6782148110863549472, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/WHEEL": 14550174241288068152, + "venv/lib/python3.13/site-packages/authlib/oidc/registration/claims.py": 4161520263207458028, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/extending_distributions.pyx": 15302775787158991386, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_ewm.py": 13789842684407148830, + "venv/lib/python3.13/site-packages/idna/intranges.py": 12536174834761591006, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_inclusive.py": 1389676378885557519, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_split_partition.py": 2715491071550545667, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/io/parsers/arrow_parser_wrapper.py": 11745253171984606573, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/foo.f": 6349567809926050379, + "frontend/src/lib/components/reports/__tests__/reports_list.ux.test.js": 16252194679528846126, + "frontend/src/lib/components/translate/BulkReplaceModal.svelte": 9447617465987205060, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/connectionpool.py": 10453724680327835821, + "venv/lib/python3.13/site-packages/pip/_internal/commands/__init__.py": 3795218871212151351, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_year.py": 1478857009124807836, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/exc.py": 1448374203226983757, + "frontend/src/routes/settings/notifications/+page.svelte": 14504217413720856827, + "venv/lib/python3.13/site-packages/_pytest/_io/saferepr.py": 8025234471485188730, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/_mapping.py": 17519715342700184302, + "venv/lib/python3.13/site-packages/pydantic/_internal/_decorators_v1.py": 16723743964226526155, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_concat.py": 4472503149811617440, + "venv/lib/python3.13/site-packages/numpy/polynomial/_polybase.py": 893743087939984792, + "venv/lib/python3.13/site-packages/authlib/jose/util.py": 14843923624043422219, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/common.py": 11384497819737275399, + "venv/lib/python3.13/site-packages/pygments/styles/lightbulb.py": 12433916113773598760, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/getlimits.pyi": 93747984191461691, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/licenses/LICENSE": 1424673738228762254, + "venv/lib/python3.13/site-packages/passlib/handlers/scram.py": 12281469744083867450, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/cacert.pem": 15624463015628939254, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate.py": 16723865897349422996, + "frontend/e2e/tests/settings.e2e.js": 14741334477359695649, + "frontend/build/_app/immutable/chunks/Bhogwjd0.js": 5613453459417995897, + "backend/src/models/mapping.py": 14856915199884993204, + "backend/tests/test_smoke_app.py": 7819901244710945164, + "backend/tests/services/clean_release/test_candidate_manifest_services.py": 16861589402854148894, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/METADATA": 6960169108624303030, + "backend/git_repos/remote/test-repo.git/description": 15262637409357137373, + "venv/lib/python3.13/site-packages/more_itertools/more.py": 1631135582441184133, + "venv/lib/python3.13/site-packages/_pytest/monkeypatch.py": 2635774457434545573, + "venv/lib/python3.13/site-packages/gitdb/test/__init__.py": 18393574323937353933, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/registration.py": 14639972512303032712, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_info.py": 10615285239043745712, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_indexing.py": 14717641281147152159, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_clipboard.py": 12674078499544938252, + "venv/lib/python3.13/site-packages/rpds/__init__.py": 5862197328247012275, + "venv/lib/python3.13/site-packages/numpy/random/_pickle.pyi": 16081120364372391381, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/RECORD": 1051307407005554409, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286.f90": 1249061697041863692, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/functions.py": 16567226076808693246, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_alter_axes.py": 11338712836362534969, + "frontend/src/types/backup.ts": 1741234034896689348, + "frontend/src/lib/api/translate/schedules.js": 8616345664085016472, + "frontend/src/lib/components/reports/__tests__/report_type_profiles.test.js": 498330292141991614, + "frontend/src/routes/profile/+page.svelte": 17979719303737794427, + "venv/lib/python3.13/site-packages/numpy/_core/_methods.py": 16805668769357938792, + "backend/git_repos/remote/test-repo.git/hooks/pre-commit.sample": 102291230237676317, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro.pyi": 3145980717589050713, + "backend/git_repos/remote/test-repo.git/objects/93/9cc583a18267406014c57617ccb557569f6aaf": 5474754694741999746, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/RECORD": 9678861487447993169, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_indexing.py": 7181087459615188551, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/RECORD": 17594742868855466393, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/recfunctions.py": 18330899924171767482, + "backend/src/plugins/translate/__tests__/test_scheduler.py": 4988970087981965515, + "venv/lib/python3.13/site-packages/passlib/tests/test_context_deprecated.py": 7876919198015151018, + "venv/lib/python3.13/site-packages/pandas/core/ops/missing.py": 9493665944764255854, + "venv/lib/python3.13/site-packages/pip/_vendor/pkg_resources/__init__.py": 1677532855362260338, + "backend/src/plugins/translate/__tests__/test_inline_correction.py": 3644785257160613130, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/__init__.py": 15130871412783076140, + "frontend/src/lib/api/translate/runs.js": 1220731879179347641, + "venv/lib/python3.13/site-packages/urllib3/_request_methods.py": 13671055114247516883, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/models.py": 11521700876708601977, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_indexing.py": 546024765756472196, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_openpyxl.py": 9542840527483618681, + "venv/lib/python3.13/site-packages/numpy/testing/_private/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/git/__init__.py": 15867730798565725003, + "venv/lib/python3.13/site-packages/numpy/lib/_arrayterator_impl.pyi": 2744889206277418389, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi": 4376871621615688626, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_set_value.py": 4166411740676564820, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/__init__.py": 11157967642611612522, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_function_base.pyi": 2792940598392356268, + "venv/lib/python3.13/site-packages/numpy/random/_pickle.py": 7774620933480975313, + "venv/lib/python3.13/site-packages/pandas/io/formats/console.py": 10370334487585281127, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE": 3996324383113221529, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi": 16312114056447366970, + "venv/lib/python3.13/site-packages/numpy/_core/_operand_flag_tests.cpython-313-x86_64-linux-gnu.so": 12296711931541109624, + "frontend/build/_app/env.js": 8815854342083926790, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/key_set.py": 8485970749081951741, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/WHEEL": 16223367184831500348, + "venv/lib/python3.13/site-packages/pandas/core/indexes/frozen.py": 1419685664276640120, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE": 17284252174641192866, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_range.py": 3544406211185340973, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh25211.f": 1486878017876900890, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_multiindex.py": 13723677252432338937, + "backend/src/services/security_badge_service.py": 6269749758059921511, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_public_dtype_api_table.h": 8933016749764021181, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/conftest.py": 9673372914396625461, + "venv/lib/python3.13/site-packages/fastapi/security/base.py": 15674297568104917749, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/__init__.py": 15130871412783076140, + "backend/src/api/routes/translate/_router.py": 4164547666727936398, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_null_file.py": 6885565068723353414, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/version.py": 5000350193835202949, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py": 14995426099932276090, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/pg8000.py": 6580512354643849828, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/cache_key.py": 11118819065204404106, + "venv/lib/python3.13/site-packages/pygments/lexers/usd.py": 934820244673741695, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/WHEEL": 16097436423493754389, + "frontend/src/lib/components/dataset-review/CompiledSQLPreview.svelte": 4866254539173481462, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/METADATA": 3390257212824996989, + "venv/lib/python3.13/site-packages/pydantic_core/core_schema.py": 8106298745123589494, + "venv/lib/python3.13/site-packages/starlette/__init__.py": 3252794766897205870, + "venv/lib/python3.13/site-packages/iniconfig/_parse.py": 11418441008427032090, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/chararray.pyi": 17340224970247832290, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/util.py": 955993052529739164, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/__init__.py": 16146480198665866916, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarinherit.py": 15240535501243623986, + "venv/lib/python3.13/site-packages/PIL/ImagePath.py": 18323293175183057101, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_pickle.py": 8705060420848529055, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_hour.py": 14128508606361694814, + "venv/lib/python3.13/site-packages/httpx/__init__.py": 6383055693166097719, + "venv/lib/python3.13/site-packages/pandas/tests/util/conftest.py": 11143177766735481660, + "venv/lib/python3.13/site-packages/yaml/error.py": 5626374410579058436, + "venv/lib/python3.13/site-packages/pandas/core/indexes/api.py": 13750417165301467381, + "venv/lib/python3.13/site-packages/pygments/lexers/asn1.py": 15030988816882821134, + "venv/lib/python3.13/site-packages/_pytest/recwarn.py": 15312759837838083596, + "venv/lib/python3.13/site-packages/PIL/ImageMode.py": 2361901066832921091, + "venv/lib/python3.13/site-packages/pygments/lexers/apl.py": 16767474673619335683, + "venv/lib/python3.13/site-packages/bcrypt/_bcrypt.pyi": 15067467792538416274, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/INSTALLER": 17282701611721059870, + "backend/src/services/clean_release/repositories/audit_repository.py": 9617813121624417458, + "venv/pyvenv.cfg": 2513607356761047446, + "frontend/src/lib/components/dataset-review/__tests__/us2_semantic_workspace.ux.test.js": 3550956860258259058, + "venv/lib/python3.13/site-packages/git/objects/base.py": 11498407361286170399, + "venv/lib/python3.13/site-packages/numpy/lib/_user_array_impl.py": 13115032674230220791, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/__init__.py": 7526309124863950484, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_timedeltaindex.py": 2359681317403710563, + "venv/lib/python3.13/site-packages/sqlalchemy/util/topological.py": 11586868018611359415, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/azure.py": 13529763490186254462, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/mt19937-testset-2.csv": 14641856424618845798, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/__init__.py": 13331622784664204066, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arraymethod.py": 14421188237635557797, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/__init__.py": 9997757256282720103, + "venv/lib/python3.13/site-packages/h11/py.typed": 12358286306858197118, + "venv/lib/python3.13/site-packages/numpy/f2py/cb_rules.py": 11397521081216402594, + "venv/lib/python3.13/site-packages/numpy/_core/defchararray.pyi": 2277933368373498515, + "frontend/build/_app/immutable/chunks/DahbS9be.js": 1297770004698741582, + "frontend/src/routes/storage/+page.svelte": 5003283673039328108, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/resource_protector.py": 4823504113176750140, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/well_known.py": 7183795183137931709, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex_longtable.tpl": 12723621983797415444, + "venv/lib/python3.13/site-packages/pyasn1/type/tag.py": 13912273274509186651, + "backend/tests/core/test_migration_engine.py": 7419155921858935534, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_cumulative.py": 16283954014170928273, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/emath.pyi": 3718540478840842664, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_missing.py": 1963705411068820866, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_algs.py": 2479791018067637690, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_extending.py": 10202091354750153497, + "venv/lib/python3.13/site-packages/pygments/lexers/idl.py": 11454152060351801696, + "venv/lib/python3.13/site-packages/pygments/lexers/fantom.py": 1986459352773446836, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/__main__.py": 487896753130729554, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_misc.py": 8706265665356094801, + "venv/lib/python3.13/site-packages/pygments/styles/friendly.py": 13799024964803741891, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/__init__.pyi": 16164841755339571545, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_bcrypt.py": 11146468670439284889, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/npyio.pyi": 15811156298637131744, + "venv/lib/python3.13/site-packages/passlib/hosts.py": 11171402820797380938, + "venv/lib/python3.13/site-packages/pycparser/ply/ygen.py": 5520340773074632724, + "venv/lib/python3.13/site-packages/websockets/server.py": 16599051743322571790, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_types.py": 7175518113263603341, + "venv/lib/python3.13/site-packages/pydantic/root_model.py": 20625057828723317, + "venv/lib/python3.13/site-packages/numpy/f2py/_isocbind.pyi": 5786150108623563787, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_indexing.py": 6039808271042864401, + "venv/lib/python3.13/site-packages/jsonschema/__main__.py": 18136546137047911521, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/_typing/_nbit.py": 15498810174380798405, + "venv/lib/python3.13/site-packages/pygments/lexers/spice.py": 1376126320935115350, + "venv/lib/python3.13/site-packages/pygments/formatters/terminal.py": 14380579279194052030, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_methods.py": 12694335778731418517, + "venv/lib/python3.13/site-packages/authlib/common/encoding.py": 52296066492753953, + "venv/lib/python3.13/site-packages/passlib/handlers/__init__.py": 3424087230285514388, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/assertion_session.py": 18109848200936213195, + "venv/lib/python3.13/site-packages/git/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/philox-testset-2.csv": 7063857529719738394, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/wrappers.py": 315409799569602977, + "backend/git_repos/remote/test-repo.git/info/exclude": 6403833611826357791, + "venv/lib/python3.13/site-packages/pygments/lexers/bibtex.py": 14652372822443154388, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_size.py": 8527839563560550806, + "venv/lib/python3.13/site-packages/git/index/base.py": 641556304637379636, + "backend/src/api/routes/dashboards/_action_routes.py": 11814954258886577640, + "venv/lib/python3.13/site-packages/pip/_vendor/distro/distro.py": 12494639376332486204, + "venv/lib/python3.13/site-packages/yaml/_yaml.cpython-313-x86_64-linux-gnu.so": 16990140871649227895, + "backend/src/plugins/translate/__tests__/test_preview.py": 2014051431239347014, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/METADATA": 13428590545328703138, + "venv/lib/python3.13/site-packages/starlette/status.py": 16192064443996706569, + "venv/lib/python3.13/site-packages/attr/converters.pyi": 17675091788614033166, + "venv/lib/python3.13/site-packages/rapidfuzz/_feature_detector.py": 15458248567257759500, + "venv/lib/python3.13/site-packages/pandas/core/ops/docstrings.py": 3721650738518391256, + "venv/lib/python3.13/site-packages/pygments/lexers/_scilab_builtins.py": 17453812809700086888, + "venv/lib/python3.13/site-packages/psycopg2/extensions.py": 14197445323992851566, + "venv/lib/python3.13/site-packages/keyring/backend.py": 14185808762437650951, + "venv/lib/python3.13/site-packages/pandas/core/indexes/base.py": 496956059910401121, + "venv/lib/python3.13/site-packages/gitdb/__init__.py": 15381521749253695923, + "venv/lib/python3.13/site-packages/authlib/oauth2/base.py": 12948318231066662045, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/METADATA": 10707390829735099042, + "frontend/src/components/Footer.svelte": 17748559656923032, + "venv/lib/python3.13/site-packages/pip/_internal/commands/lock.py": 14782882714168174465, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/uvicorn/lifespan/on.py": 2866195356090164296, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_sh_gcc.h": 3574353221233465215, + "venv/lib/python3.13/site-packages/referencing/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/passlib/tests/test_utils.py": 10362977406431569031, + "venv/lib/python3.13/site-packages/PIL/_imagingmorph.pyi": 18222325750818585549, + "venv/lib/python3.13/site-packages/numpy/ma/core.pyi": 4829891173366130328, + "venv/lib/python3.13/site-packages/packaging/_musllinux.py": 2568338440457080365, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_indexing.py": 4063662953863959087, + "backend/src/services/clean_release/repositories/report_repository.py": 17952038790457725175, + "venv/lib/python3.13/site-packages/numpy/tests/test_numpy_config.py": 3636377988901907424, + "venv/lib/python3.13/site-packages/pygments/regexopt.py": 16073437303824961930, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_setops.py": 13440916133402971190, + "venv/lib/python3.13/site-packages/pygments/lexers/futhark.py": 10102535873433759899, + "backend/tests/core/migration/test_archive_parser.py": 1909788158234142574, + "venv/lib/python3.13/site-packages/authlib/consts.py": 14226604841596736870, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/__init__.py": 5895297076117159245, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/cache.py": 15037055977924167732, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_copy.py": 3114918520437707410, + "venv/lib/python3.13/site-packages/pygments/console.py": 3540660073442483692, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f77fixedform.f95": 10898637805043867370, + "venv/lib/python3.13/site-packages/numpy/testing/_private/extbuild.pyi": 18253950285509265097, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_masm.asm": 16630507336149184509, + "venv/lib/python3.13/site-packages/numpy/_expired_attrs_2_0.pyi": 1424133074692438241, + "venv/lib/python3.13/site-packages/yaml/resolver.py": 6669674521776449098, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/flatiter.py": 3066469329738423021, + "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs_scalars.py": 652332294655046106, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/METADATA": 732041908491732594, + "venv/lib/python3.13/site-packages/numpy/_core/tests/_natype.py": 12013743717306900860, + "venv/lib/python3.13/site-packages/greenlet/tests/test_generator.py": 14156412320760444199, + "venv/lib/python3.13/site-packages/pydantic/utils.py": 1533455264689378477, + "venv/lib/python3.13/site-packages/numpy/tests/test_reloading.py": 17532116685329953400, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log10.csv": 13441294827017400897, + "venv/lib/python3.13/site-packages/passlib/tests/test_pwd.py": 10089138951415591061, + "venv/lib/python3.13/site-packages/pydantic/generics.py": 15019381413806459410, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_timestamp.py": 10308799534491190078, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_kwargs.py": 10173906126211473463, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_reflection.py": 10520778598547003532, + "venv/lib/python3.13/site-packages/yaml/serializer.py": 1783761365703703558, + "venv/lib/python3.13/site-packages/pygments/styles/solarized.py": 11231143047572616298, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/applicator": 6616723520993329538, + "venv/lib/python3.13/site-packages/_pytest/nodes.py": 515939386237558331, + "venv/lib/python3.13/site-packages/jaraco/functools/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/psycopg2/tz.py": 9966680685796585198, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_py.py": 13809503317864539103, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/nattype.cpython-313-x86_64-linux-gnu.so": 2311012065007769341, + "venv/lib/python3.13/site-packages/pygments/styles/vim.py": 2621036947954523349, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_integer.f90": 8308927438994838783, + "venv/lib/python3.13/site-packages/pygments/lexers/pony.py": 2720635393743617141, + "frontend/src/lib/auth/permissions.js": 12787489292887903923, + "frontend/src/lib/api/translate/corrections.js": 3619404083693055292, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/_psycopg_common.py": 4111797647365870137, + "venv/lib/python3.13/site-packages/pydantic/experimental/__init__.py": 492399139963056461, + "frontend/build/_app/immutable/chunks/DCvpiDYN.js": 12431819423986978734, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/__init__.py": 8632038387100622009, + "backend/src/core/auth/oauth.py": 9925908783612235042, + "venv/lib/python3.13/site-packages/pygments/lexers/arturo.py": 4565524340706235725, + "venv/lib/python3.13/site-packages/pygments/lexers/other.py": 6893672181003034910, + "backend/src/api/routes/__tests__/test_clean_release_v2_release_api.py": 14275839608126658275, + "backend/tests/test_core_scheduler.py": 6589618269087393661, + "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/RECORD": 15194367076254806710, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/base.py": 7855217087916771270, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_gcs.py": 7733247456252965901, + "backend/src/models/dataset_review.py": 5814500849969423218, + "backend/src/services/dataset_review/repositories/repository_pkg/_mutations.py": 11718998093543631478, + "backend/src/plugins/translate/orchestrator_planner.py": 9681702657993216474, + "frontend/src/lib/api/assistant.js": 15470667170083225911, + "venv/lib/python3.13/site-packages/numpy/_core/function_base.py": 5676611841071163854, + "venv/lib/python3.13/site-packages/passlib/tests/backports.py": 17098448557554464521, + "frontend/src/lib/auth/store.ts": 14669655798912377598, + "backend/src/api/routes/git_schemas.py": 9243114525622127446, + "frontend/src/lib/stores/__tests__/test_datasetReviewSession.js": 12620073136419991103, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/twodim_base.pyi": 10156504423258357540, + "backend/src/services/clean_release/repositories/__init__.py": 9926779835387630811, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_hermite.py": 3628609433179387988, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_envs.py": 5657151394155576509, + "venv/lib/python3.13/site-packages/idna/__init__.py": 6489437464172324468, + "venv/lib/python3.13/site-packages/pydantic/v1/generics.py": 1150594223414883339, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_expanding.py": 12504275097476819918, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/crud.py": 805684028038896506, + "venv/lib/python3.13/site-packages/pygments/lexers/console.py": 18266795648198475028, + "venv/lib/python3.13/site-packages/pydantic/experimental/arguments_schema.py": 8644805798814234457, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_is_full.py": 9577318758326279694, + "venv/lib/python3.13/site-packages/yaml/events.py": 745772917931702910, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/watchfilesreload.py": 13062440477475586751, + "venv/lib/python3.13/site-packages/rsa/common.py": 10921682819204792805, + "backend/src/schemas/profile.py": 7950698901810733002, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_timedelta64.py": 16821719402662529276, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/checks.pyx": 13187505236986855177, + "venv/lib/python3.13/site-packages/anyio/_core/_synchronization.py": 7050001375718876608, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/LICENSE": 8177430849046795595, + "venv/bin/pip3": 13861749540792881808, + "venv/lib/python3.13/site-packages/PIL/IcoImagePlugin.py": 14483964191652228364, + "venv/lib/python3.13/site-packages/PIL/SgiImagePlugin.py": 6916200065790425497, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_produces_warning.py": 750781117570375777, + "venv/lib/python3.13/site-packages/jose/backends/base.py": 12795468809472351388, + "venv/lib/python3.13/site-packages/numpy/f2py/src/fortranobject.c": 2519219289444051739, + "venv/lib/python3.13/site-packages/annotated_doc/main.py": 3384049281532298500, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_round.py": 14996007456708990295, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/token_validator.py": 2932866595454490527, + "backend/src/api/routes/__tests__/test_reports_openapi_conformance.py": 17043883737206361151, + "venv/lib/python3.13/site-packages/numpy/lib/_histograms_impl.pyi": 6534825471013879522, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_converter.py": 7709581879446228856, + "venv/lib/python3.13/site-packages/PIL/ImageCms.py": 5610897002957128546, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/conftest.py": 4124267277224879990, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_insert.py": 15536994417338770457, + "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/array.py": 13040461386712513615, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/common/gh19161.f90": 7691871466158049079, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/base.py": 14734745827490220667, + "backend/src/services/__tests__/test_health_service.py": 5498183976797488518, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_results.py": 18145930285449734975, + "venv/lib/python3.13/site-packages/starlette/requests.py": 4582424111350387010, + "frontend/build/_app/immutable/chunks/C0tSL4mX.js": 15286960687416499074, + "backend/src/plugins/translate/_batch_proc.py": 17909054704914750048, + "backend/src/services/notifications/__init__.py": 13930898146447654299, + "venv/lib/python3.13/site-packages/passlib/tests/__init__.py": 16543763165305017760, + "backend/src/plugins/translate/preview_prompt_builder.py": 2354938052590494405, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_style.py": 14810883299259169406, + "venv/lib/python3.13/site-packages/websockets/sync/server.py": 7966978001578584901, + "venv/lib/python3.13/site-packages/numpy/random/__init__.py": 11732100564412485633, + "venv/lib/python3.13/site-packages/itsdangerous/exc.py": 11181421963755661477, + "venv/lib/python3.13/site-packages/websockets/headers.py": 13587146967490088657, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/jws.py": 7505219131537941130, + "venv/lib/python3.13/site-packages/cffi/_embedding.h": 9441285871823018603, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-objarr.npz": 9481735723557962988, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein.pyi": 12925006572914814268, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/array_like.py": 2778905818573625118, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html_style.tpl": 3352086677417301397, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_nanfunctions.py": 2356468092336024365, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_copy_deprecation.py": 16045426957636349035, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_sort_values.py": 15072305514178699398, + "venv/lib/python3.13/site-packages/PIL/GdImageFile.py": 16875784236394545058, + "venv/lib/python3.13/site-packages/PIL/ImageMorph.py": 13861961228125789866, + "frontend/build/_app/immutable/chunks/DVED-6ks.js": 11096828156569191966, + "venv/lib/python3.13/site-packages/anyio/_backends/_trio.py": 4764555436057754985, + "backend/alembic/script.py.mako": 7041141123739810216, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_show_versions.py": 10577134135855180356, + "venv/lib/python3.13/site-packages/numpy/lib/_array_utils_impl.pyi": 11535882608355652318, + "venv/lib/python3.13/site-packages/PIL/FontFile.py": 112053841436523305, + "venv/lib/python3.13/site-packages/bcrypt/__init__.py": 11415155211917181362, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_arrow_interface.py": 9757086292358759236, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_records.py": 18167578114159312327, + "venv/lib/python3.13/site-packages/pygments/styles/igor.py": 2291640843781128270, + "backend/src/services/dataset_review/clarification_pkg/_helpers.py": 4822867945130807759, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_loongarch64_linux.h": 6566098590441297326, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/authorization_server.py": 4427151727224472650, + "venv/lib/python3.13/site-packages/numpy/testing/overrides.py": 11819432487830192978, + "venv/lib/python3.13/site-packages/pandas/core/internals/ops.py": 4740509262379451243, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_s390_unix.h": 5161826643658505126, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_get_numeric_data.py": 5896318696417090902, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_day.py": 6371851881186970754, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/contains.py": 3098087827310439993, + "backend/test.db": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_sorting.py": 8944017570338511677, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_dtypes.py": 481191723198819568, + "venv/lib/python3.13/site-packages/pydantic/typing.py": 6661252174518316760, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/_version.py": 15336513445621042105, + "venv/lib/python3.13/site-packages/h11/_connection.py": 6971907312737339559, + "venv/lib/python3.13/site-packages/referencing/__init__.py": 10093824711214801917, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/METADATA": 7214286447912789067, + "venv/lib/python3.13/site-packages/pandas/_libs/sparse.pyi": 12526865400413362140, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mariadbconnector.py": 14865906347579451546, + "venv/lib/python3.13/site-packages/httpcore/_backends/base.py": 5491727479625093183, + "venv/lib/python3.13/site-packages/certifi/__main__.py": 13417658012431779061, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_arithmetic.py": 16829312896275893002, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_libgroupby.py": 9985769511561272200, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/instrumentation.py": 13198832283145198959, + "venv/lib/python3.13/site-packages/pygments/lexers/devicetree.py": 9820277168995231927, + "venv/lib/python3.13/site-packages/pandas/io/parsers/readers.py": 7899068668225389287, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/profiling.py": 16030397164203895281, + "venv/lib/python3.13/site-packages/pygments/styles/staroffice.py": 11694998942433220413, + "venv/lib/python3.13/site-packages/greenlet/tests/test_greenlet_trash.py": 6191655521667576604, + "venv/lib/python3.13/site-packages/attr/validators.pyi": 15579625896285277321, + "venv/lib/python3.13/site-packages/websockets/sync/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_concatenate_chunks.py": 9693420220003544490, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_smoke.py": 7476432112986643847, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/_core/src/umath/svml/LICENSE": 9584102918819171104, + "frontend/build/index.html": 15397611647551607992, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/names.py": 705261158040926128, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ufuncobject.h": 5112456258078662871, + "backend/src/models/report.py": 9185954411073383239, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/__init__.py": 6532094538918910232, + "venv/lib/python3.13/site-packages/pandas/io/json/_json.py": 1393095374713367445, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arccos.csv": 3026156288992132911, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/cymysql.py": 5570881524647789741, + "venv/lib/python3.13/site-packages/git/refs/symbolic.py": 14996822770181935589, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/METADATA": 6596896092754256988, + "venv/lib/python3.13/site-packages/keyring/credentials.py": 14515496037842724455, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_ufunclike.py": 13752381070039804384, + "venv/lib/python3.13/site-packages/pygments/lexers/graph.py": 10445044822847205061, + "venv/lib/python3.13/site-packages/pandas/_libs/hashing.cpython-313-x86_64-linux-gnu.so": 16124435225170610034, + "frontend/src/lib/ui/PageHeader.svelte": 3800784212388586861, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi": 3533739482029983817, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/registry.py": 13306388361671753373, + "frontend/public/vite.svg": 13568221685541582385, + "frontend/build/_app/immutable/nodes/18.kOLzJ0KO.js": 1254982904420212524, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/datasource.pyi": 16752667877866430577, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/RECORD": 17985800801793506250, + "venv/lib/python3.13/site-packages/cryptography/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi": 1626154870044880426, + "venv/lib/python3.13/site-packages/httpx/_main.py": 1812303705973265093, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/accesstype.f90": 877982462186396830, + "venv/lib/python3.13/site-packages/pandas/util/_print_versions.py": 15326663505771588740, + "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_utils.py": 2329717399120006435, + "venv/lib/python3.13/site-packages/PIL/_imagingmath.pyi": 18222325750818585549, + "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/__init__.py": 8705044848308260480, + "venv/lib/python3.13/site-packages/pip/_internal/utils/virtualenv.py": 14416705841810221305, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_clearing_run_switches.py": 3020294789560975101, + "venv/lib/python3.13/site-packages/pip/_internal/cli/base_command.py": 10660882478126415399, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/np_datetime.cpython-313-x86_64-linux-gnu.so": 7840846965295537844, + "scripts/scan_secrets.sh": 599173385111063848, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_complex/foo90.f90": 15981076495193915107, + "venv/lib/python3.13/site-packages/numpy/polynomial/polyutils.py": 12355826783958402233, + "venv/lib/python3.13/site-packages/gitdb/utils/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/groupby/groupby.py": 5536922766239875007, + "venv/lib/python3.13/site-packages/pandas/core/reshape/reshape.py": 5387892304726762127, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/wheel.py": 828222664427570058, + "venv/lib/python3.13/site-packages/numpy/_core/_internal.pyi": 6840742333427164920, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_formats.py": 3525283725314253763, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi": 11733449165276720901, + "venv/lib/python3.13/site-packages/PIL/XbmImagePlugin.py": 12256750478268246137, + "venv/lib/python3.13/site-packages/secretstorage/exceptions.py": 16701299261122689924, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_fillna.py": 7349777469648334282, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/licenses/LICENSE": 5669644120528099197, + "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension_cpp.cpython-313-x86_64-linux-gnu.so": 7659849621107414188, + "venv/lib/python3.13/site-packages/pip/_internal/operations/prepare.py": 13514839972066861359, + "venv/lib/python3.13/site-packages/pygments/lexers/wgsl.py": 9718384325049172855, + "venv/lib/python3.13/site-packages/pygments/lexers/mojo.py": 8616283481592061285, + "frontend/src/routes/settings/EnvironmentsTab.svelte": 1326318857426265025, + "frontend/build/_app/immutable/nodes/30.DoZyP-WO.js": 17329801849756758708, + "backend/src/services/clean_release/compliance_orchestrator.py": 10585043190405940115, + "venv/lib/python3.13/site-packages/attr/exceptions.py": 11532465891810816417, + "backend/src/services/dataset_review/repositories/session_repository.py": 4058785536575367912, + "backend/src/api/routes/mappings.py": 7071183920129492341, + "backend/git_repos/remote/test-repo.git/objects/a1/3525f5f44e26d8fbec3226bd488d14793575a2": 3742572048019652365, + "venv/lib/python3.13/site-packages/requests/help.py": 1885413874621672882, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/__init__.py": 8093984834068317399, + "venv/lib/python3.13/site-packages/pydantic/v1/tools.py": 1995883197897112278, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/metadata.py": 1362166613223529108, + "venv/lib/python3.13/site-packages/numpy/_core/strings.py": 3623885046208831106, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_explode.py": 16195468192763502449, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/exclusions.py": 15852672500377116297, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg.py": 8023549900603235601, + "venv/lib/python3.13/site-packages/gitdb/db/git.py": 13552203494737962026, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_kind.py": 18178830861475480607, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/period.cpython-313-x86_64-linux-gnu.so": 14468234464367691795, + "venv/lib/python3.13/site-packages/fastapi/background.py": 16533963020573865222, + "venv/lib/python3.13/site-packages/pydantic/v1/env_settings.py": 6194387033830177219, + "venv/lib/python3.13/site-packages/numpy/core/__init__.py": 10397294636564169377, + "venv/lib/python3.13/site-packages/numpy/_distributor_init.py": 1101690714183863290, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23879.f90": 13174951794239860144, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/RECORD": 1556051687830913019, + "venv/lib/python3.13/site-packages/charset_normalizer/version.py": 9948878594498587774, + "venv/lib/python3.13/site-packages/numpy/char/__init__.py": 4428218097234308768, + "frontend/build/_app/immutable/nodes/10.Et8hAACh.js": 3185986399829130568, + "venv/lib/python3.13/site-packages/websockets/sync/client.py": 10892557975919033983, + "backend/src/core/task_manager/__tests__/test_task_logger.py": 8175976176924379623, + "venv/lib/python3.13/site-packages/PIL/_deprecate.py": 15076725072094847812, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/cursor.py": 8074527784886981710, + "venv/lib/python3.13/site-packages/click/parser.py": 13988544851350599869, + "backend/src/core/task_manager/task_logger.py": 12820629458199400734, + "backend/src/models/translate.py": 1714500577896249923, + "venv/lib/python3.13/site-packages/numpy/lib/__init__.pyi": 1537495515469182226, + "venv/lib/python3.13/site-packages/numpy/testing/print_coercion_tables.py": 11758491058846790938, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_add_prefix_suffix.py": 4815518357936092237, + "venv/lib/python3.13/site-packages/pandas/io/xml.py": 326466573926392764, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_formats.py": 5259100336852479395, + "backend/src/plugins/translate/__tests__/test_token_budget.py": 9612693566837223655, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_dml_constructors.py": 4497038002189188311, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_day.py": 2200008998040663785, + "backend/src/api/routes/__tests__/test_assistant_api.py": 16438212076178324033, + "backend/src/api/routes/git/_repo_routes.py": 7367823490321383813, + "backend/git_repos/remote/test-repo.git/refs/heads/preprod": 2288780285329550368, + "venv/lib/python3.13/site-packages/pip/_internal/utils/deprecation.py": 7435269308988385470, + "venv/lib/python3.13/site-packages/numpy/exceptions.py": 10981418339663118022, + "venv/lib/python3.13/site-packages/keyring/__main__.py": 14602212239605295451, + "venv/lib/python3.13/site-packages/websockets/extensions/__init__.py": 13067201313921664210, + "venv/lib/python3.13/site-packages/pandas/core/groupby/base.py": 16888506204910366302, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_julian_date.py": 850085757774959003, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_numpy_array_equal.py": 2089426719574307767, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_to_numpy.py": 14845850776625255794, + "venv/lib/python3.13/site-packages/jaraco/context/__init__.py": 10975097417056278427, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/METADATA": 3474626408138844944, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/lexers/_postgres_builtins.py": 2383906454995727700, + "backend/src/api/routes/admin.py": 15812940668560248046, + "venv/lib/python3.13/site-packages/urllib3/util/response.py": 6106698559175827207, + "venv/lib/python3.13/site-packages/charset_normalizer/md.cpython-313-x86_64-linux-gnu.so": 1835299664481804968, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/providers.py": 7267821734584612032, + "venv/lib/python3.13/site-packages/pydantic/_internal/_core_utils.py": 13248004771466837645, + "venv/lib/python3.13/site-packages/pandas/compat/_optional.py": 12714208019736797073, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/constructors.py": 7587476800569414769, + "venv/lib/python3.13/site-packages/click/_utils.py": 16491408631876616271, + "backend/src/core/task_manager/context.py": 17543992255093146942, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/framework_integration.py": 3935346152156572025, + "backend/git_repos/remote/test-repo.git/objects/8c/4ea7958b7a7e140d27e1e7d8d1f9912fdf5992": 5862166356451798197, + "venv/lib/python3.13/site-packages/keyring/http.py": 1408024724330078009, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayscalars.h": 16142050006935459679, + "venv/lib/python3.13/site-packages/cffi/setuptools_ext.py": 30796527302561458, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_resolution.py": 18198858926948468112, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_timedeltas.py": 4118671843063545221, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/sql.py": 13315906751371033170, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/negative_bounds/issue_20853.f90": 3911644649277659333, + "venv/lib/python3.13/site-packages/pyasn1/__init__.py": 8089201217593738032, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_indexing.py": 16623126293364224089, + "venv/lib/python3.13/site-packages/dateutil/_common.py": 12492546559232079071, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_copy.py": 11335108864615756235, + "venv/lib/python3.13/site-packages/_pytest/raises.py": 8188402179490363767, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_arithmetic.py": 17043958604607035425, + "venv/lib/python3.13/site-packages/PIL/FtexImagePlugin.py": 8196606399875185931, + "venv/lib/python3.13/site-packages/charset_normalizer/api.py": 9172704759115759638, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64-testset-2.csv": 4052796393463357888, + "backend/src/plugins/translate/orchestrator_sql.py": 15420456250044832567, + "dist/docker/ss-tools.current.tar.xz": 12481237908945663094, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_missing.py": 7034102519042351965, + "venv/lib/python3.13/site-packages/numpy/matrixlib/defmatrix.pyi": 17903213294220335051, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/__init__.py": 15130871412783076140, + "backend/src/models/dataset_review_pkg/_mapping_models.py": 6232602161916984422, + "venv/lib/python3.13/site-packages/numpy/lib/_index_tricks_impl.py": 13574106461973044500, + "venv/lib/python3.13/site-packages/pip/_internal/req/constructors.py": 17485271035479378662, + "venv/lib/python3.13/site-packages/pandas/_libs/json.pyi": 10989301892466547548, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_get_dummies.py": 14871264482622327003, + "venv/lib/python3.13/site-packages/PIL/_imagingtk.cpython-313-x86_64-linux-gnu.so": 1708198947135304326, + "frontend/src/app.html": 10207534912546549080, + "frontend/src/lib/utils.js": 5436516952434475239, + "backend/tests/services/clean_release/test_approval_service.py": 8359796700245201345, + "venv/lib/python3.13/site-packages/PIL/DcxImagePlugin.py": 11767274218348117481, + "venv/lib/python3.13/site-packages/pandas/io/iceberg.py": 13137128885014736233, + "venv/lib/python3.13/site-packages/uvicorn/config.py": 17317823506849880916, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_str.py": 149688376805129532, + "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/okp_key.py": 10312614562914096039, + "venv/lib/python3.13/site-packages/websockets/streams.py": 15786581670248099415, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py": 18069619555394133945, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/__init__.py": 12849371269359608058, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cos.csv": 12896264205153363031, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rename.py": 16148017223289654683, + "venv/lib/python3.13/site-packages/sqlalchemy/event/__init__.py": 16182540084654095394, + "frontend/src/components/storage/FileList.svelte": 11661146151896000393, + "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/RECORD": 12015288851076448205, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/util.py": 387985965709546512, + "venv/lib/python3.13/site-packages/pydantic/datetime_parse.py": 196119761382305574, + "venv/lib/python3.13/site-packages/numpy/f2py/common_rules.py": 7352635707860427145, + "venv/lib/python3.13/site-packages/_cffi_backend.cpython-313-x86_64-linux-gnu.so": 829323374625147265, + "backend/src/core/migration_engine.py": 1303635539349402052, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_period.py": 3419297908709788013, + "backend/src/services/clean_release/stages/data_purity.py": 10459527906317168920, + "backend/src/services/reports/type_profiles.py": 8365014439236739390, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multiarray.py": 5928288171180750841, + "backend/git_repos/remote/test-repo.git/objects/59/3a37acec7d2bddce10df90ab17bc9ede52e523": 1117161574576783985, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_compare.py": 3079569478684646491, + "venv/lib/python3.13/site-packages/sqlalchemy/event/legacy.py": 13465911776953636949, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/declarative/extensions.py": 217122171232375592, + "venv/lib/python3.13/site-packages/pygments/lexers/data.py": 9365024327689738663, + "frontend/src/routes/tools/backups/+page.svelte": 6796050751535238723, + "frontend/src/components/Navbar.svelte": 10594730954703520477, + "venv/lib/python3.13/site-packages/psycopg2/errors.py": 10441360078612452560, + "venv/lib/python3.13/site-packages/authlib/common/__init__.py": 15130871412783076140, + "frontend/src/lib/components/assistant/__tests__/assistant_confirmation.integration.test.js": 12582020574293031526, + "venv/lib/python3.13/site-packages/pygments/lexers/slash.py": 8320676560518108343, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_fillna.py": 8802093795040069423, + "backend/src/api/routes/datasets.py": 8495307661445562003, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/RECORD": 2688648742701423549, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/ccalendar.pyi": 15789956857032062129, + "venv/lib/python3.13/site-packages/PIL/TiffImagePlugin.py": 6845043550424565106, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_apply.py": 11248068903302454630, + "venv/lib/python3.13/site-packages/_pytest/reports.py": 13930709338396699351, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_normalize.py": 3203921571999101793, + "venv/lib/python3.13/site-packages/numpy/lib/_utils_impl.py": 13012775703413938576, + "frontend/src/routes/+layout.ts": 8392799000856778740, + "venv/lib/python3.13/site-packages/greenlet/tests/test_tracing.py": 10227316489696807112, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/__init__.py": 63497920264089252, + "venv/lib/python3.13/site-packages/cffi/__init__.py": 13427266446746498548, + "frontend/src/routes/translate/dictionaries/[id]/+page.svelte": 17719561272401762626, + "venv/lib/python3.13/site-packages/pygments/lexers/roboconf.py": 1335271183806115470, + "venv/lib/python3.13/site-packages/anyio/streams/memory.py": 11762722143503428823, + "venv/lib/python3.13/site-packages/passlib/tests/test_registry.py": 15377817946543064293, + "backend/tests/core/migration/test_dry_run_orchestrator.py": 5158126098685923841, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_cpp.cpython-313-x86_64-linux-gnu.so": 14187094676876471848, + "venv/lib/python3.13/site-packages/numpy/_typing/_ufunc.py": 16859854811012717088, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_shift.py": 14026124784027171225, + "venv/lib/python3.13/site-packages/pandas/tests/extension/uuid/test_uuid.py": 13955678427426850807, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_django.py": 8455054295577203929, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_html.py": 12040484325988635032, + "venv/lib/python3.13/site-packages/PIL/ImageQt.py": 6607270889359138659, + "venv/lib/python3.13/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17": 4221600618602131476, + "venv/lib/python3.13/site-packages/greenlet/TUserGreenlet.cpp": 16258622236210473101, + "venv/lib/python3.13/site-packages/pandas/core/computation/expr.py": 13085709365673019494, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_replace.py": 8165088653532047247, + "venv/lib/python3.13/site-packages/git/db.py": 6680123567509774609, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/box.py": 14303526978791498662, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/wrapper.py": 4633931060151989960, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_polynomial.py": 777287409151500309, + "venv/lib/python3.13/site-packages/pandas/core/groupby/ops.py": 2036968385544457016, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_validate.py": 12789481642730855139, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_network.py": 13159427333040109523, + "venv/lib/python3.13/site-packages/pygments/formatters/svg.py": 11686316844190214147, + "frontend/src/components/llm/__tests__/provider_config.integration.test.js": 12605115626277870995, + "frontend/build/_app/immutable/chunks/CnYH3mIf.js": 6533250047888326055, + "venv/lib/python3.13/site-packages/websockets/asyncio/compatibility.py": 9716993942839407921, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/dtype_api.h": 17040779421165903019, + "venv/lib/python3.13/site-packages/pip/_internal/commands/download.py": 7533669665002975823, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/util.py": 1520899420719605380, + "venv/lib/python3.13/site-packages/jeepney/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/itsdangerous/url_safe.py": 13454753900702274266, + "venv/lib/python3.13/site-packages/click/utils.py": 13475604420010022458, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/licenses/LICENSE": 12684353321716745791, + "venv/lib/python3.13/site-packages/requests/models.py": 9104898985870652256, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_palettes.py": 13495896173068490516, + "venv/lib/python3.13/site-packages/passlib/tests/test_context.py": 15195609282700801214, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/dml.py": 6567627855667533645, + "venv/lib/python3.13/site-packages/keyring/backends/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/greenlet/greenlet_internal.hpp": 13173115501223013762, + "backend/test_app.db": 2486636812009447051, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_dependency_group.py": 10505346210114745037, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/token.py": 4747545058753492487, + "venv/lib/python3.13/site-packages/pydantic/v1/config.py": 12050640083719340958, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/operators.f90": 5949265961908386974, + "venv/lib/python3.13/site-packages/PIL/ImageGrab.py": 11114379915762058868, + "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/RECORD": 15574202654585730126, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/measure.py": 18327922742808984428, + "venv/lib/python3.13/site-packages/attr/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/more_itertools/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/base.py": 13454394827268856575, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/_libs/arrays.pyi": 12629806207276576877, + "venv/lib/python3.13/site-packages/pandas/_libs/sas.pyi": 873957906443703977, + "venv/lib/python3.13/site-packages/pandas/_libs/byteswap.cpython-313-x86_64-linux-gnu.so": 17856848989827220388, + "venv/lib/python3.13/site-packages/PIL/ImageStat.py": 18442709639217312689, + "backend/src/services/clean_release/__tests__/test_source_isolation.py": 17714198919084455758, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_read_errors.py": 4559483361564472117, + "backend/src/scripts/create_admin.py": 16927424133554976030, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/specifiers.py": 12284901056355482991, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/yaml.py": 17801117405950663611, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_dict_of_blocks.py": 11646835537993064324, + "venv/lib/python3.13/site-packages/numpy/_core/lib/npy-pkg-config/mlib.ini": 16151597765994697599, + "venv/lib/python3.13/site-packages/pygments/lexers/_lasso_builtins.py": 4006621424665751347, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/__init__.py": 15130871412783076140, + "frontend/src/lib/components/layout/Sidebar.svelte": 8588237337148619706, + "frontend/src/routes/translate/dictionaries/+page.svelte": 1038433841421198720, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/unistring.py": 18037463865539157041, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_strings.py": 7168544888340296373, + "venv/lib/python3.13/site-packages/sqlalchemy/event/registry.py": 2857989070743633709, + "venv/lib/python3.13/site-packages/pandas/io/formats/css.py": 11288129826285529457, + "venv/lib/python3.13/site-packages/pandas/io/__init__.py": 9767690163638898709, + "venv/lib/python3.13/site-packages/starlette/middleware/wsgi.py": 12506262030845301606, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarprint.py": 9482100952562512933, + "venv/lib/python3.13/site-packages/yaml/constructor.py": 8731384179016992045, + "venv/lib/python3.13/site-packages/pygments/lexers/numbair.py": 17382646010399794697, + "venv/lib/python3.13/site-packages/pydantic/v1/annotated_types.py": 12925825196690299531, + "venv/lib/python3.13/site-packages/pygments/lexers/make.py": 5345282370426217663, + "venv/lib/python3.13/site-packages/pip/_internal/utils/appdirs.py": 539688259643447487, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/__init__.py": 11808051681178127650, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/missing.py": 11241703105777668183, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/__init__.py": 15130871412783076140, + "frontend/build/_app/immutable/nodes/19.DFFxoqkd.js": 7975543221448362163, + "backend/src/api/routes/dashboards/_projection.py": 1559143255780155174, + "venv/lib/python3.13/site-packages/pandas/core/shared_docs.py": 2173578869755325502, + "venv/lib/python3.13/site-packages/pip/_vendor/distro/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/oracledb.py": 7158791242292470472, + "venv/lib/python3.13/site-packages/PIL/_imagingmath.cpython-313-x86_64-linux-gnu.so": 77725273398858074, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/core": 10616484054735611337, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_indexing.py": 14461606056665485421, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/styles/material.py": 14325514369696961874, + "venv/lib/python3.13/site-packages/pygments/lexers/_scheme_builtins.py": 5722444920479775453, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/testing/_private/utils.py": 3646474165295296669, + "venv/lib/python3.13/site-packages/numpy/_core/_simd.cpython-313-x86_64-linux-gnu.so": 12609666221355091416, + "venv/lib/python3.13/site-packages/pandas/errors/__init__.py": 13444371880185740908, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_three_greenlets.py": 10923534235697247269, + "venv/lib/python3.13/site-packages/pandas/_libs/hashtable.cpython-313-x86_64-linux-gnu.so": 16963890771704942465, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_datetime.py": 1678885152993000592, + "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/functions.py": 14107377669163193871, + "venv/lib/python3.13/site-packages/pandas/core/computation/eval.py": 3176226283265954028, + "venv/lib/python3.13/site-packages/jeepney/tests/test_bus.py": 4260827599660763641, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_indexing.py": 8943385096811168079, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/base.py": 7110726987481713080, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_randomstate_regression.py": 17425202198134409689, + "venv/lib/python3.13/site-packages/numpy/polynomial/legendre.py": 1731362089136926666, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_c_parser_only.py": 3038797485572319804, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/mypy.ini": 4763385838822685881, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/state_changes.py": 11425629729736599320, + "venv/lib/python3.13/site-packages/numpy/random/_generator.pyi": 17167649524261942483, + "venv/lib/python3.13/site-packages/git/refs/remote.py": 4391983355222612205, + "venv/lib/python3.13/site-packages/rsa/randnum.py": 13958355153634534526, + "venv/lib/python3.13/site-packages/pygments/styles/vs.py": 4188729978573652106, + "venv/lib/python3.13/site-packages/sqlalchemy/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/yaml/cyaml.py": 9157893742065554693, + "frontend/src/lib/api/translate/__tests__/test-target-schema.test.js": 2329724860725977662, + "venv/lib/python3.13/site-packages/pandas/tests/construction/test_extract_array.py": 3100523370314150013, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arrayterator.pyi": 15722265241660279277, + "frontend/src/routes/datasets/review/ReviewWorkspaceRightRail.svelte": 13437011381072252917, + "frontend/src/routes/reports/llm/[taskId]/+page.svelte": 14394593511269407852, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_map.py": 6556132946198785761, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_loc.py": 2127584756555503873, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/RECORD": 7914594107698271488, + "venv/lib/python3.13/site-packages/numpy/f2py/crackfortran.py": 12796890117561096360, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/segment.py": 2555584120510872966, + "backend/src/api/routes/dashboards/_helpers.py": 16683849709430404975, + "venv/lib/python3.13/site-packages/keyring/testing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/reshape/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/util.py": 4890614159013873000, + "venv/lib/python3.13/site-packages/tzlocal/windows_tz.py": 11696765495002954868, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_round.py": 8336918400205461173, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_util.py": 16908393806993809474, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_multi.py": 4612816468258071810, + "backend/src/scripts/seed_permissions.py": 2712668643177555956, + "backend/src/api/routes/assistant/_history.py": 16318881016647964852, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_as_unit.py": 8492383355919959393, + "backend/src/plugins/translate/dictionary_import_export.py": 12639118203353044308, + "backend/src/plugins/translate/__tests__/test_dictionary_import.py": 7271610466914322056, + "backend/src/api/routes/tasks.py": 14935470445091298678, + "frontend/build/_app/immutable/chunks/AokmZN-I.js": 16413474655951004736, + "venv/lib/python3.13/site-packages/greenlet/greenlet.cpp": 3281107194043468270, + "backend/src/api/routes/__tests__/test_tasks_logs.py": 18076509977474947273, + "venv/lib/python3.13/site-packages/websockets/extensions/base.py": 2457233337788783873, + "venv/lib/python3.13/site-packages/_pytest/_version.py": 4890545974654141536, + "scripts/build_offline_docker_bundle.sh": 9577721838839060974, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_counting.py": 5628494712451120258, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/schema.py": 5391655516870611151, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/dim2.py": 5767600151459095125, + "backend/src/api/routes/__tests__/test_clean_release_v2_api.py": 13464989331176891726, + "venv/lib/python3.13/site-packages/pandas/tests/test_common.py": 8987965560487646705, + "venv/lib/python3.13/site-packages/pandas/_libs/ops_dispatch.pyi": 16176428602589420913, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_arrow.py": 10068866425352207113, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_between_time.py": 14266333058913745751, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_json_table_schema.py": 14454690938977069049, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/httptools_impl.py": 10367325397209016951, + "frontend/src/lib/stores/__tests__/mocks/state.js": 3616783395254238777, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_apply.py": 7511915990531229598, + "venv/lib/python3.13/site-packages/pygments/lexers/rebol.py": 10460732731157940232, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/fields.cpython-313-x86_64-linux-gnu.so": 16927263232848238698, + "backend/src/services/reports/__tests__/test_report_normalizer.py": 5179524010104259469, + "backend/src/plugins/translate/_llm_parse.py": 3278211416813203155, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/provider.py": 16463243654123731993, + "venv/lib/python3.13/site-packages/pandas/core/series.py": 11618272682977710696, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_2_compat.h": 6512969159139431485, + "backend/src/core/scheduler.py": 2472649939852521889, + "backend/git_repos/remote/test-repo.git/hooks/pre-applypatch.sample": 15598058327720909861, + "venv/lib/python3.13/site-packages/psycopg2/errorcodes.py": 6711830404954314463, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_subclass.py": 13490541871827928531, + "venv/lib/python3.13/site-packages/pandas/core/ops/common.py": 17314999825118928100, + "venv/lib/python3.13/site-packages/starlette/middleware/errors.py": 1337979724602864440, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_arrow_interface.py": 5231449831607036031, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_combine.py": 16193618152415684421, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/twodim_base.pyi": 3773329770170248877, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate_kwarg.py": 10417724544218303733, + "venv/lib/python3.13/site-packages/git/objects/__init__.py": 2110615482320355676, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/scanner.py": 5640381644804445932, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/__init__.py": 18036348770966744795, + "venv/lib/python3.13/site-packages/numpy/_typing/_ufunc.pyi": 6286629088867436848, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_combine_first.py": 3100691245280812910, + "venv/lib/python3.13/site-packages/pygments/lexers/bdd.py": 5389493859905397060, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_reductions.py": 8258332365408303156, + "venv/lib/python3.13/site-packages/numpy/_globals.pyi": 12839879732484756979, + "venv/lib/python3.13/site-packages/pydantic/v1/datetime_parse.py": 10467114625921924095, + "venv/lib/python3.13/site-packages/pygments/lexers/floscript.py": 944042220740663491, + "venv/lib/python3.13/site-packages/jaraco/classes/meta.py": 15930255620248873425, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nditer.pyi": 33523064068376750, + "venv/lib/python3.13/site-packages/numpy/_globals.py": 8736093011628027941, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/datetimelike_accumulations.py": 14719894187829729175, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_factorize.py": 861897342553280506, + "backend/src/core/auth/logger.py": 9289916075840905359, + "backend/src/services/git/_gitea.py": 16061594414833486958, + "venv/lib/python3.13/site-packages/pydantic_core/_pydantic_core.cpython-313-x86_64-linux-gnu.so": 13917011878259810696, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py": 18229054440703471493, + "venv/lib/python3.13/site-packages/numpy/random/_common.cpython-313-x86_64-linux-gnu.so": 12834724130890991478, + "venv/lib/python3.13/site-packages/referencing/retrieval.py": 11921179805977833120, + "venv/lib/python3.13/site-packages/pygments/lexers/templates.py": 16267123844830647955, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_arithmetic.py": 17449383588949771785, + "frontend/test-results/translation.e2e.js-Transla-49baf-te-a-translation-job-via-UI-chromium/trace.zip": 14597002665264983691, + "venv/lib/python3.13/site-packages/starlette/config.py": 16509394679506300256, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/provision.py": 7362363963464621570, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_numeric.py": 17391095502314929042, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/METADATA": 4868544280955034757, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_select.py": 17823338162428379468, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_stride_tricks.py": 1064774375151677743, + "venv/lib/python3.13/site-packages/rapidfuzz/__init__.py": 12462153783886855740, + "venv/lib/python3.13/site-packages/ecdsa/test_eddsa.py": 1785854649532849946, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py": 14216912708889351810, + "backend/src/plugins/translate/preview_llm_client.py": 14412557858942627249, + "venv/lib/python3.13/site-packages/numpy/_distributor_init.pyi": 1308368231471324581, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_usecols_basic.py": 16382444980424010514, + "venv/lib/python3.13/site-packages/_pytest/fixtures.py": 1442767529726551116, + "frontend/src/services/__tests__/gitService.test.js": 12845562082447336909, + "backend/src/services/clean_release/dto.py": 11031410734734770552, + "venv/lib/python3.13/site-packages/numpy/lib/user_array.pyi": 1968484998382771986, + "frontend/src/components/backups/BackupList.svelte": 14417854869668960310, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/__init__.py": 14571251344510763303, + "frontend/build/_app/immutable/nodes/32.Bo1GxLer.js": 123653512846239462, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_add_prefix_suffix.py": 8367793476246001244, + "venv/lib/python3.13/site-packages/pygments/sphinxext.py": 2768161754523156130, + "backend/src/core/__tests__/test_superset_preview_pipeline.py": 5338719285630543394, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/fromnumeric.pyi": 8671744104085911610, + "venv/lib/python3.13/site-packages/pydantic/v1/main.py": 213087273729911492, + "venv/lib/python3.13/site-packages/PIL/ImageMath.py": 7395449734007598797, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/zip-safe": 15240312484046875203, + "venv/lib/python3.13/site-packages/pip/_internal/utils/misc.py": 17461379236189029253, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/shape.pyi": 17197248408326188931, + "venv/lib/python3.13/site-packages/pygments/lexers/stata.py": 7249891970174867363, + "venv/lib/python3.13/site-packages/numpy/_core/_ufunc_config.pyi": 9291444594181042963, + "frontend/e2e/tests/migration.e2e.js": 12564023806718668322, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_compat.py": 4677414058216516380, + "backend/src/services/clean_release/artifact_catalog_loader.py": 7672031618376179570, + "venv/lib/python3.13/site-packages/pip/_internal/utils/direct_url_helpers.py": 6075890513530296650, + "backend/tests/test_logger.py": 11506419828617508917, + "venv/lib/python3.13/site-packages/pydantic_settings/__init__.py": 4374954204580208673, + "venv/lib/python3.13/site-packages/pandas/api/internals.py": 5188134630996087511, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/REQUESTED": 15130871412783076140, + "backend/src/core/async_superset_client.py": 17097960069181151584, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/const_vs_enum.py": 12873459583943748931, + "venv/lib/python3.13/site-packages/anyio/streams/buffered.py": 8916188172110578587, + "venv/lib/python3.13/site-packages/httpx/_auth.py": 1283189552342958900, + "venv/lib/python3.13/site-packages/websockets/imports.py": 1995356703044158461, + "venv/lib/python3.13/site-packages/jose/utils.py": 1926138853970725083, + "venv/lib/python3.13/site-packages/pillow.libs/libavif-01e67780.so.16.3.0": 13947441788826399574, + "venv/lib/python3.13/site-packages/numpy/ma/testutils.py": 9355402483340137461, + "backend/alembic/versions/c4a3a2f74bfe_add_missing_columns_needs_review_.py": 4320606555167902916, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_to_pydatetime.py": 1129954411080617001, + "venv/lib/python3.13/site-packages/pandas/core/arrays/_utils.py": 11574890848475750509, + "backend/src/core/task_manager/lifecycle.py": 7861582737135324044, + "backend/src/api/routes/assistant/_dataset_review_dispatch.py": 10108558091463171824, + "backend/tests/services/clean_release/test_compliance_execution_service.py": 5924200441771414883, + "venv/lib/python3.13/site-packages/starlette/testclient.py": 16088848330558215194, + "venv/lib/python3.13/site-packages/pip/_internal/pyproject.py": 6155748929233245415, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_asof.py": 15792528637923603240, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_datetime.py": 4179112383995346046, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_iceberg.py": 1726421917529457420, + "venv/lib/python3.13/site-packages/pandas/io/formats/xml.py": 12235904458551067063, + "frontend/src/lib/components/layout/TaskDrawer.svelte": 11803999908168836613, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/jwe.py": 10478268710546063196, + "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_salsa.py": 1756536674254931838, + "venv/lib/python3.13/site-packages/urllib3/util/timeout.py": 17922362393077965047, + "venv/lib/python3.13/site-packages/pip/_internal/cli/progress_bars.py": 7584699216537478969, + "venv/lib/python3.13/site-packages/greenlet/tests/__init__.py": 1181423074160870921, + "venv/lib/python3.13/site-packages/numpy/core/_dtype_ctypes.py": 17055498803745289016, + "venv/lib/python3.13/site-packages/numpy/testing/tests/test_utils.py": 5291132432383518704, + "venv/lib/python3.13/site-packages/numpy/ctypeslib/_ctypeslib.py": 12636954896699095212, + "venv/lib/python3.13/site-packages/charset_normalizer/md.py": 2029760700380476138, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/claims.py": 12645788445743898136, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/json.py": 15085143436056608404, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_indexing.py": 17106010337164216722, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/_cmd.py": 14954780419054588164, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/structs.py": 4479429145468072604, + "venv/lib/python3.13/site-packages/pydantic_settings/utils.py": 14396350455520958703, + "venv/lib/python3.13/site-packages/python_multipart/decoders.py": 14252672585219598429, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/shape.pyi": 2188930129299348535, + "venv/lib/python3.13/site-packages/pandas/io/formats/style.py": 13235403689320479165, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/RECORD": 3288669175908898843, + "venv/lib/python3.13/site-packages/numpy/_typing/_char_codes.py": 14162745886150625150, + "backend/src/plugins/backup.py": 9697280948668596192, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/astype.py": 9925183787411796679, + "venv/lib/python3.13/site-packages/attrs/exceptions.py": 2871247302586505373, + "venv/lib/python3.13/site-packages/pandas/_version_meson.py": 4875297137037630519, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_unstack.py": 11834917665446437163, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_html.py": 7947998260347730581, + "frontend/src/routes/settings/LlmSettings.svelte": 11336336338708911991, + "frontend/src/components/auth/ProtectedRoute.svelte": 7705373237339863677, + "venv/lib/python3.13/site-packages/psycopg2/extras.py": 7510107741729866600, + "frontend/src/lib/stores/taskDrawer.js": 6659505033581293370, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_constructors.py": 17392287676196409733, + "venv/lib/python3.13/site-packages/greenlet/PyGreenlet.cpp": 7360124705400993707, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/METADATA": 4975169119201255384, + "venv/lib/python3.13/site-packages/attr/_typing_compat.pyi": 2823472697859409877, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arcsinh.csv": 13695545125848146013, + "venv/lib/python3.13/site-packages/numpy/random/lib/libnpyrandom.a": 1802449692091040396, + "venv/lib/python3.13/site-packages/PIL/MpegImagePlugin.py": 7726254767528154514, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_base.py": 15292769510056833117, + "venv/lib/python3.13/site-packages/pygments/lexers/erlang.py": 11757064262773184741, + "venv/lib/python3.13/site-packages/pydantic/v1/json.py": 16596969681914729251, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_bool.py": 433342705586552936, + "venv/lib/python3.13/site-packages/pygments/lexers/jsx.py": 13855228003748707341, + "venv/lib/python3.13/site-packages/pandas/core/generic.py": 10174952306641057447, + "venv/lib/python3.13/site-packages/_pytest/assertion/__init__.py": 16392348866405910618, + "venv/lib/python3.13/site-packages/keyring/compat/properties.py": 1562771115138037410, + "venv/lib/python3.13/site-packages/fastapi/dependencies/models.py": 8626894872248212015, + "venv/lib/python3.13/site-packages/pandas/_libs/hashtable.pyi": 15034917167424979097, + "venv/lib/python3.13/site-packages/gitdb/test/test_base.py": 16305779366785148795, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dot.py": 16876560325283070437, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/session.py": 15060063324909302240, + "venv/lib/python3.13/site-packages/pygments/formatters/html.py": 1918541918263449443, + "venv/lib/python3.13/site-packages/pygments/lexers/dalvik.py": 5549983892200382076, + "venv/lib/python3.13/site-packages/packaging/tags.py": 1999137344425005827, + "venv/bin/f2py": 11006035631504708368, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/types.py": 13384984564922916167, + "venv/lib/python3.13/site-packages/numpy/doc/ufuncs.py": 11706048944901534664, + "venv/lib/python3.13/site-packages/attr/filters.pyi": 13942974755090135724, + "venv/lib/python3.13/site-packages/apscheduler/executors/gevent.py": 17122637996105344344, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_api.py": 6439927798101672423, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_retain_attributes.py": 16210262356844956764, + "backend/src/core/logger.py": 2069537382060633888, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_period.py": 9715843209581883915, + "backend/src/models/git.py": 6898938895423263836, + "backend/src/services/git/_sync.py": 14233419521256437438, + "venv/lib/python3.13/site-packages/pyasn1/type/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_version.pyi": 3636944488233043883, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_asof.py": 8656532774394927388, + "venv/lib/python3.13/site-packages/certifi/__init__.py": 9045580998764948967, + "backend/src/plugins/translate/_run_source.py": 11569137727611732019, + "venv/lib/python3.13/site-packages/passlib/tests/test_utils_pbkdf2.py": 17016810698578473773, + "venv/lib/python3.13/site-packages/pygments/lexers/ride.py": 14096748896451437594, + "venv/lib/python3.13/site-packages/apscheduler/triggers/combining.py": 1264860868414723829, + "backend/src/plugins/translate/__init__.py": 12400577052797809611, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-sin.csv": 1443087417808027268, + "venv/lib/python3.13/site-packages/numpy/lib/__init__.py": 12211229657513986410, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/rsa_key.py": 7092106298733667895, + "venv/lib/python3.13/site-packages/rapidfuzz/utils.py": 5682627611354455144, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_to_xarray.py": 15341013524814290960, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_css.py": 17765129030290410902, + "venv/lib/python3.13/site-packages/charset_normalizer/cd.py": 8687667152597941021, + "venv/lib/python3.13/site-packages/anyio/abc/_sockets.py": 15042495744291042062, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_floats.py": 3064615530495290792, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_set_value.py": 17480833128128893268, + "venv/lib/python3.13/site-packages/pandas/io/parsers/__init__.py": 11752833703934347122, + "venv/lib/python3.13/site-packages/pygments/util.py": 4815334059917765852, + "venv/bin/pip": 13861749540792881808, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_docs.py": 17898499890274685198, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/pymysql.py": 12923876736367229454, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_arrayobject.py": 9578555381494297966, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_direct.py": 12680113511641199070, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh15035.f": 13126319439858352711, + "frontend/src/lib/Counter.svelte": 4002153662176313030, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/METADATA": 3044554568188160018, + "backend/src/models/task.py": 10701108436197477339, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_format.py": 1947585389944838076, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_numeric.py": 5627177940393829333, + "venv/lib/python3.13/site-packages/attrs/filters.py": 6844006230924162452, + "venv/lib/python3.13/site-packages/PIL/_imaging.cpython-313-x86_64-linux-gnu.so": 1425926264271197601, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_rolling.py": 11118160360072677569, + "venv/lib/python3.13/site-packages/numpy/f2py/rules.py": 9322914583460630877, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/METADATA": 2810323639884879396, + "backend/src/api/routes/__tests__/test_migration_routes.py": 4357515184436771537, + "venv/lib/python3.13/site-packages/pandas/io/formats/csvs.py": 17223598248259691292, + "venv/lib/python3.13/site-packages/anyio/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/jeepney/wrappers.py": 15234251727654692435, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling.py": 18221459425751198218, + "venv/lib/python3.13/site-packages/pandas/api/types/__init__.py": 3995030354191071797, + "backend/src/plugins/translate/__tests__/__init__.py": 2490542523242946173, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/typst.tpl": 5055419073126793137, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/RECORD": 13494296690334916257, + "venv/lib/python3.13/site-packages/pip/_internal/network/utils.py": 13421242949994555055, + "venv/lib/python3.13/site-packages/_pytest/main.py": 931018496411984909, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/json_schema_test_suite.py": 6152158310190822762, + "run_clean_tui.sh": 14305120550349644601, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_utils.py": 15197339054699289627, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexer.py": 14400766876373764268, + "venv/lib/python3.13/site-packages/pandas/io/formats/style_render.py": 13586834368514801953, + "venv/lib/python3.13/site-packages/keyring/compat/__init__.py": 7578020229796085753, + "venv/bin/jsonschema": 16516374846693491442, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/LICENSE": 14599279238716790189, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_quoted_character.py": 2316632434571797367, + "venv/lib/python3.13/site-packages/jsonschema/tests/fuzz_validate.py": 2328585939822059352, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_series.py": 10922287546912569276, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/annotation.py": 15855576199737688124, + "venv/lib/python3.13/site-packages/numpy/linalg/_linalg.pyi": 9629457630163613604, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/compat.py": 17520043776344667309, + "venv/lib/python3.13/site-packages/pygments/lexers/crystal.py": 3579547906957125755, + "venv/lib/python3.13/site-packages/numpy/fft/tests/test_helper.py": 5362180645056413158, + "backend/src/services/__tests__/test_resource_service.py": 14435810729789665272, + "venv/lib/python3.13/site-packages/pip/_internal/utils/unpacking.py": 106471890743211548, + "venv/lib/python3.13/site-packages/authlib/oauth1/__init__.py": 3692257288065292607, + "backend/src/api/routes/__tests__/test_clean_release_legacy_compat.py": 10703957986116846695, + "venv/lib/python3.13/site-packages/h11/_receivebuffer.py": 4631433251046338381, + "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/recarray_from_file.fits": 15116318600514274152, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/RECORD": 14375680579341422646, + "venv/lib/python3.13/site-packages/pip/_internal/commands/index.py": 16715578868094112894, + "venv/lib/python3.13/site-packages/pandas/core/indexes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libpcre-9513aab5.so.1.2.0": 12298861477332583668, + "venv/lib/python3.13/site-packages/greenlet/platform/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/commands/search.py": 8292218231992728142, + "venv/lib/python3.13/site-packages/pandas/core/strings/object_array.py": 17631047188839635539, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_diff.py": 7420674239386436885, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_case_justify.py": 8204537837649550062, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_pandas.py": 10894229569442891394, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/RECORD": 8104089156015954779, + "backend/src/plugins/storage/__init__.py.bak": 7062955918227442388, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_groupby.py": 15721254196883995634, + "venv/lib/python3.13/site-packages/numpy/_core/_umath_tests.pyi": 4587511199710546030, + "venv/lib/python3.13/site-packages/numpy/conftest.py": 8971879716683736515, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/mapped_collection.py": 11377280960650304531, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/types.py": 1343652083039949282, + "venv/lib/python3.13/site-packages/websockets/legacy/__init__.py": 12332512329533591682, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh24008.f": 3872245077994936272, + "venv/lib/python3.13/site-packages/pandas/_libs/writers.pyi": 10494773026133244183, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reindex.py": 16348619731902304844, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/groupby.py": 12749730954888633240, + "venv/lib/python3.13/site-packages/pygments/lexers/_qlik_builtins.py": 1728058904137960444, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pydantic/_internal/_model_construction.py": 694471028676746110, + "frontend/src/routes/settings/__tests__/settings_page.integration.test.js": 8641041148256525929, + "venv/lib/python3.13/site-packages/pandas/_libs/byteswap.pyi": 6723628093359375823, + "venv/lib/python3.13/site-packages/PIL/JpegImagePlugin.py": 10621639599916796689, + "backend/src/api/routes/__tests__/test_assistant_authz.py": 4130274102090064437, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/comparisons.py": 7327629888601690759, + "backend/src/plugins/translate/preview_token_estimator.py": 254295902082954386, + "venv/lib/python3.13/site-packages/numpy/random/__init__.pxd": 7355772669172093814, + "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/jws_eddsa.py": 833927568269372333, + "venv/lib/python3.13/site-packages/PIL/TarIO.py": 13651401276968618561, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pip/_internal/network/auth.py": 6159841209618753296, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/_cryptography_key.py": 388489172928969873, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/sphinxext.py": 2403717774564798878, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/packages.py": 11689856177725665974, + "venv/lib/python3.13/site-packages/charset_normalizer/__main__.py": 8887772289570078278, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_replace.py": 8784361132920473760, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/endpoint.py": 8519226897299461194, + "frontend/src/lib/components/dataset-review/SemanticLayerReview.svelte": 10805621354490209991, + "backend/delete_running_tasks.py": 7776896567014157554, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_dtypes.py": 6831042272921908068, + "venv/lib/python3.13/site-packages/jsonschema/tests/typing/test_all_concrete_validators_match_protocol.py": 14824388798676578409, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/RECORD": 7363618870628306370, + "venv/lib/python3.13/site-packages/pluggy/_result.py": 16790448391766505769, + "venv/lib/python3.13/site-packages/pandas/tests/base/common.py": 13335865314907577354, + "venv/lib/python3.13/site-packages/numpy/linalg/__init__.py": 15647756307608142577, + "venv/lib/python3.13/site-packages/PIL/_imaging.pyi": 17119084207765761921, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/pygments/lexers/email.py": 4355246279485460399, + "venv/lib/python3.13/site-packages/jsonschema/_format.py": 8987698648383779883, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq.py": 13853220736499979380, + "venv/lib/python3.13/site-packages/pandas/_libs/lib.pyi": 3049004444338566197, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/decl_api.py": 5287018911951723034, + "frontend/src/lib/components/dataset-review/LaunchConfirmationPanel.svelte": 14399834101283315718, + "venv/lib/python3.13/site-packages/pydantic_core/__init__.py": 10563134104783445328, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_arithmetic.py": 13304014482504911016, + "backend/src/core/superset_client/_datasets_preview_filters.py": 12835417730902013107, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/filters/__init__.py": 835924536855006596, + "venv/lib/python3.13/site-packages/keyring/backends/macOS/__init__.py": 1010937986753403630, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated": 11193150813314469394, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_cli.py": 3173259257428855556, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data": 11957232619107868023, + "venv/lib/python3.13/site-packages/h11/_state.py": 11398755254809751139, + "venv/lib/python3.13/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0": 7322566017497612912, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/memmap.pyi": 2834143910417841603, + "venv/lib/python3.13/site-packages/pandas/core/tools/timedeltas.py": 7221393731712061943, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_repr.py": 16609300578827398344, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_hist_box_by.py": 16197297231683144299, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_xs.py": 11073752361562791165, + "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/client_mixin.py": 17980753662107479779, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/baked.py": 6911138208603240867, + "venv/lib/python3.13/site-packages/numpy/polynomial/__init__.pyi": 8708830448398500675, + "venv/lib/python3.13/site-packages/yaml/parser.py": 18021832376874455801, + "frontend/src/lib/components/translate/__tests__/test_translation_preview.svelte.js": 15091004230843271151, + "frontend/src/components/__tests__/task_log_viewer.test.js": 6512653335179659416, + "venv/lib/python3.13/site-packages/numpy/polynomial/legendre.pyi": 2029639875417260268, + "venv/lib/python3.13/site-packages/pygments/lexers/smv.py": 8253688483040957894, + "venv/lib/python3.13/site-packages/rsa/py.typed": 11041940105507257053, + "frontend/src/routes/dashboards/[id]/+page.svelte": 12833231703682809118, + "venv/lib/python3.13/site-packages/pip/_internal/network/download.py": 5256731341219268693, + "venv/lib/python3.13/site-packages/tzlocal/__init__.py": 11017072814026497364, + "venv/lib/python3.13/site-packages/uvicorn/middleware/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_extension.py": 17245018204352082978, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_overlaps.py": 8287716909793575347, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_numba.py": 203614377324678234, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/licenses/LICENSE": 6808958893921859106, + "frontend/build/favicon.png": 16740551781088792605, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/type_check.pyi": 9177256991985898824, + "frontend/test-results/translation.e2e.js-Transla-49baf-te-a-translation-job-via-UI-chromium/video.webm": 3868075359950286684, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex.tpl": 8820045022551446255, + "backend/tests/core/test_defensive_guards.py": 1048600814279591148, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/locators.py": 7638945613579396718, + "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/__init__.py": 4870269250323682576, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/licenses/LICENSE": 3868190977070717994, + "venv/lib/python3.13/site-packages/httpcore/_exceptions.py": 6716590711697088732, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7592/__init__.py": 1398617034174236358, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arccosh.csv": 5882025767947638305, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_ordered.py": 13827016781743929164, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/provision.py": 8707620698060818654, + "venv/lib/python3.13/site-packages/pandas/core/apply.py": 17080038932032802984, + "venv/lib/python3.13/site-packages/pygments/scanner.py": 5640381644804445932, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/__init__.py": 15130871412783076140, + "frontend/build/_app/immutable/nodes/28.7UWY6EEj.js": 1668941890818938340, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py": 6109201994963211857, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/comparisons.pyi": 9338084426044982038, + "backend/src/models/dataset_review_pkg/_clarification_models.py": 2289021476863746270, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_setops.py": 15196593522537569500, + "venv/lib/python3.13/site-packages/PIL/ImageColor.py": 17058618058554970738, + "venv/lib/python3.13/site-packages/numpy/testing/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/bootstrap.py": 3865947239497500815, + "venv/lib/python3.13/site-packages/cffi/parse_c_type.h": 9889309594462820068, + "frontend/src/routes/admin/settings/+page.svelte": 15536865086528222650, + "venv/lib/python3.13/site-packages/websockets/extensions/permessage_deflate.py": 12957105912018691390, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_numba.py": 18148155441554555618, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE.BSD": 3858254215169937333, + "venv/lib/python3.13/site-packages/numpy/core/shape_base.py": 17925759824894973734, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_coercion.py": 3339075591248270762, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/operators.py": 2468046993343796128, + "venv/lib/python3.13/site-packages/uvicorn/lifespan/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/missing.py": 14589973874359353799, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/numpyconfig.h": 13339221870252345205, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/test_astype.py": 563689238486630866, + "venv/lib/python3.13/site-packages/pygments/lexers/elm.py": 14683437310498104916, + "venv/lib/python3.13/site-packages/numpy/_core/printoptions.py": 3897105663572772838, + "backend/src/services/mapping_service.py": 9713400496587758211, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/__init__.py": 8924316361489544973, + "venv/lib/python3.13/site-packages/apscheduler/triggers/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/_array_utils_impl.py": 14446508217220482719, + "backend/src/plugins/translate/dictionary_validation.py": 16674754716565921261, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_arithmetic.py": 976970179757115407, + "backend/git_repos/remote/test-repo.git/refs/heads/main": 7667767390913789840, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/__init__.py": 5933622200264572885, + "venv/lib/python3.13/site-packages/greenlet/tests/test_weakref.py": 6780204527427742510, + "venv/lib/python3.13/site-packages/websockets/client.py": 5229500079651465772, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi": 9835891299056543360, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_protocols.py": 5019018645804313814, + "venv/lib/python3.13/site-packages/httpcore/_sync/http_proxy.py": 14037211594707072958, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE": 13479831069780783137, + "frontend/src/lib/components/layout/__tests__/test_taskDrawer.svelte.js": 15288009749873977442, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_values.py": 8372572954663628844, + "frontend/build/_app/immutable/nodes/36.BcV_E3IG.js": 8139280535909361285, + "venv/lib/python3.13/site-packages/greenlet/PyModule.cpp": 3464405102256525511, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/commands/completion.py": 4435231315212798769, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath_complex.py": 11732242536199439023, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_arithmetics.py": 16527169124402715210, + "venv/lib/python3.13/site-packages/numpy/_core/einsumfunc.pyi": 4729765666018003634, + "backend/src/core/superset_client/_user_projection.py": 16484323195475306883, + "backend/src/services/clean_release/manifest_service.py": 10873340336255220063, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/METADATA": 15888766579203341778, + "venv/lib/python3.13/site-packages/pip/_internal/cli/__init__.py": 11914508471759255927, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-exp.csv": 601782991752922510, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/LICENSE": 16510279186416777136, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/gcp.py": 12328409672947966867, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/generate_umath_validation_data.cpp": 10880681943327843928, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_pick.py": 15760492005471315814, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/RECORD": 2963644632913976754, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_dtype.py": 5336980126536664360, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_encoding.py": 6622474614967398246, + "venv/lib/python3.13/site-packages/gitdb/test/test_stream.py": 18159319442241857857, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/expression.py": 15511250785671695359, + "venv/lib/python3.13/site-packages/pip/_internal/models/format_control.py": 12916176880659590456, + "venv/lib/python3.13/site-packages/httpcore/_async/connection.py": 2155744160496556069, + "venv/lib/python3.13/site-packages/uvicorn/workers.py": 7213290478118197047, + "venv/lib/python3.13/site-packages/pygments/lexers/cplint.py": 13990118342267278047, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/__init__.py": 2246704695838251846, + "venv/lib/python3.13/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz": 17626265752554406355, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/mapper.py": 16715864918034312591, + "frontend/build/_app/immutable/chunks/BdM_DyAU.js": 4733561840148651548, + "backend/src/api/routes/git/_deps.py": 12613530531412985767, + "venv/lib/python3.13/site-packages/pydantic/env_settings.py": 18250976255197243083, + "backend/src/core/__tests__/test_native_filters.py": 823253235973274872, + "venv/lib/python3.13/site-packages/pygments/lexers/mosel.py": 1877592344012288438, + "backend/src/plugins/debug.py": 2035734953696955393, + "backend/src/scripts/init_auth_db.py": 7729644769215024318, + "venv/lib/python3.13/site-packages/httpcore/_backends/auto.py": 10488908050307887802, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_utils.py": 4612923732868929770, + "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/fields.py": 8923326131649837922, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_period.py": 6255181868181182780, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/RECORD": 11976403473353722969, + "backend/src/services/__tests__/test_encryption_manager.py": 7097521778855634174, + "frontend/src/lib/api/translate/target-schema.js": 10665479411127476571, + "venv/lib/python3.13/site-packages/keyring/backends/macOS/api.py": 4502902558534812719, + "venv/lib/python3.13/site-packages/websockets/typing.py": 13268801935274185287, + "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_datetime.py": 3499461736474530062, + "venv/lib/python3.13/site-packages/numpy/linalg/_umath_linalg.cpython-313-x86_64-linux-gnu.so": 17652852308919396403, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_unary.py": 7128845965976836334, + "venv/lib/python3.13/site-packages/_pytest/mark/__init__.py": 9343015549300275714, + "venv/lib/python3.13/site-packages/passlib/handlers/digests.py": 18158237109145814857, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_tolist.py": 8343058000369672317, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reindex_like.py": 1407890639206728014, + "venv/lib/python3.13/site-packages/smmap/test/test_tutorial.py": 16309370344201290582, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/introspection.py": 5447179017910128771, + "venv/lib/python3.13/site-packages/authlib/oidc/core/claims.py": 2035724920423374302, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_equals.py": 9405821443172167066, + "venv/lib/python3.13/site-packages/yaml/nodes.py": 3463622922914760653, + "venv/lib/python3.13/site-packages/authlib/oauth2/client.py": 7237359250450222680, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/uts46data.py": 1867240043777383728, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/asymmetric_key.py": 14948661854506285135, + "venv/lib/python3.13/site-packages/pandas/core/util/hashing.py": 13106575357604888913, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tseries/offsets.py": 13750652921710295115, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_convert_dtypes.py": 13612212066710266457, + "venv/lib/python3.13/site-packages/pygments/styles/tango.py": 12389250878249075539, + "venv/lib/python3.13/site-packages/itsdangerous/_json.py": 4872267972688724005, + "frontend/build/_app/immutable/nodes/6.DHI2yJZf.js": 7419036002917505171, + "venv/lib/python3.13/site-packages/pydantic_core/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/dylan.py": 16246299896150112270, + "venv/lib/python3.13/site-packages/pydantic/v1/mypy.py": 17076910404409672245, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_parsing.py": 2228959015420278458, + "venv/lib/python3.13/site-packages/pyasn1/type/namedtype.py": 1859990775875190116, + "venv/lib/python3.13/site-packages/pygments/lexers/urbi.py": 1611762607688882372, + "backend/src/api/routes/__tests__/test_profile_api.py": 1724401885939803766, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_classes.py": 1440926036579216168, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_read.py": 8825002468745406134, + "venv/lib/python3.13/site-packages/pygments/lexers/ada.py": 17032408976634308999, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/RECORD": 10052481303799123207, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel_py.py": 9112851333217812996, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/jupyter.py": 4446535289156468239, + "venv/lib/python3.13/site-packages/pandas/core/computation/common.py": 5369352684655954608, + "venv/lib/python3.13/site-packages/pandas/core/indexes/period.py": 1181348384346239378, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_numba.py": 1668304729617150075, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_infer_datetimelike.py": 17304541521108700317, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/mypy.py": 823265492261272631, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_period.py": 6047041810867211174, + "venv/lib/python3.13/site-packages/pygments/lexers/_vbscript_builtins.py": 9882134558469491349, + "venv/lib/python3.13/site-packages/pygments/lexers/json5.py": 9736695186548899403, + "backend/src/api/routes/git/_repo_lifecycle_routes.py": 6605622512801609889, + "venv/lib/python3.13/site-packages/packaging/version.py": 13470993734108007779, + "venv/lib/python3.13/site-packages/_pytest/threadexception.py": 10464996327276961035, + "venv/lib/python3.13/site-packages/numpy/_core/numerictypes.py": 6205675182996213576, + "venv/lib/python3.13/site-packages/pyasn1/compat/integer.py": 7365270971777550573, + "venv/lib/python3.13/site-packages/pandas/tests/internals/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_get_dummies.py": 16112674981222844375, + "venv/lib/python3.13/site-packages/gitdb/test/lib.py": 13294941660283059872, + "venv/lib/python3.13/site-packages/apscheduler/triggers/interval.py": 3964550092873794670, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/models/search_scope.py": 9282393652860589543, + "venv/lib/python3.13/site-packages/numpy/testing/__init__.pyi": 8126257788928282891, + "venv/lib/python3.13/site-packages/sqlalchemy/connectors/pyodbc.py": 4146960201984489604, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/METADATA": 9458019064618635438, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_regression.py": 16293647824734937323, + "venv/lib/python3.13/site-packages/pip/_internal/cli/cmdoptions.py": 12107733000019393631, + "venv/lib/python3.13/site-packages/pip/_internal/cli/status_codes.py": 9143625681947330756, + "venv/lib/python3.13/site-packages/pydantic/v1/typing.py": 13467331592583800299, + "venv/lib/python3.13/site-packages/PIL/PSDraw.py": 1927169421822446045, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/mercurial.py": 335201628064585213, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_fillna.py": 16297834601116528166, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein_py.py": 1933257612725836484, + "venv/lib/python3.13/site-packages/numpy/testing/_private/utils.pyi": 17639497083041129225, + "frontend/src/routes/storage/repos/+page.svelte": 3849368960648953479, + "venv/lib/python3.13/site-packages/pandas/_config/__init__.py": 3577026529387563519, + "frontend/src/components/git/GitInitPanel.svelte": 3002620133377315800, + "venv/lib/python3.13/site-packages/pygments/lexers/textedit.py": 14872291021083255414, + "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py": 2375452080667815941, + "venv/lib/python3.13/site-packages/anyio/abc/_tasks.py": 16839170934610571514, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/random.pyi": 9425735458050148191, + "backend/alembic/versions/2a7b8c9d0e1f_add_target_languages_to_translation_jobs.py": 7201017059554918882, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_iterator.py": 13869355993837330406, + "frontend/src/lib/stores/__tests__/mocks/environment.js": 16653269108049932073, + "venv/lib/python3.13/site-packages/pydantic/v1/version.py": 2758971830527526972, + "venv/lib/python3.13/site-packages/passlib/handlers/mysql.py": 11165762635383041460, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/_libs/reshape.cpython-313-x86_64-linux-gnu.so": 10639750501333255943, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_free.f90": 10939657740734987454, + "venv/lib/python3.13/site-packages/numpy/core/arrayprint.py": 9652368112174245943, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_freq_code.py": 13758353172962109140, + "frontend/src/routes/profile/__tests__/fixtures/profile.fixtures.js": 2726190101012864209, + "venv/lib/python3.13/site-packages/rapidfuzz/process_cpp_impl.cpython-313-x86_64-linux-gnu.so": 11767771662042404251, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufunclike.pyi": 14623308681600207918, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_pydatetime.py": 16228315407662560992, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/pkg_resources.py": 14271077832999370068, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/columns.py": 8488246354818721406, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_spss.py": 4865360315909532603, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_pickle.py": 16196792378104396231, + "backend/src/models/dataset_review_pkg/_semantic_models.py": 6267455409655567066, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/shared.py": 1162754506656505196, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_pivot_multilevel.py": 9830258607305392103, + "frontend/src/lib/components/assistant/__tests__/assistant_clarification.integration.test.js": 12258270009984504212, + "frontend/src/routes/settings/FeaturesSettings.svelte": 14068252633661039168, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/inference.py": 2786441797589123900, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/zip-safe": 15240312484046875203, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/METADATA": 3179724236887811680, + "venv/lib/python3.13/site-packages/jsonschema/_utils.py": 14237077105384631097, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_arithmetic.py": 16045758521544316139, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_cpu.h": 13799366908726531089, + "venv/lib/python3.13/site-packages/pandas/tests/window/__init__.py": 15130871412783076140, + "frontend/build/_app/immutable/chunks/BbkjCG-u.js": 8279216661890316784, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE.BSD": 16833702494864671773, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_mixed.py": 3476101699679108025, + "venv/lib/python3.13/site-packages/pip/_internal/utils/packaging.py": 15555781487631855604, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/win64python2.npy": 11005857803794805939, + "venv/lib/python3.13/site-packages/pydantic/__init__.py": 11536052293866174672, + "venv/lib/python3.13/site-packages/numpy/_typing/_nested_sequence.py": 7827259347937485408, + "venv/lib/python3.13/site-packages/numpy/polynomial/polynomial.py": 7658234162211356265, + "venv/lib/python3.13/site-packages/pygments/lexers/_openedge_builtins.py": 4979988747924637739, + "frontend/build/_app/immutable/nodes/12.C24K2clO.js": 12089197551894969042, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/__init__.py": 15130871412783076140, + "backend/src/schemas/health.py": 13764741380188041840, + "venv/lib/python3.13/site-packages/pydantic/_internal/_core_metadata.py": 5704137311404303574, + "venv/lib/python3.13/site-packages/pyasn1/type/error.py": 1479878696626082697, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/putmask.py": 10934101690788549526, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_common.py": 9097104320321411408, + "venv/lib/python3.13/site-packages/PIL/__main__.py": 827665918723937817, + "venv/lib/python3.13/site-packages/pygments/lexers/algebra.py": 9651893228421050246, + "venv/lib/python3.13/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0": 17866578820357536656, + "dist/docker/backend.1.2.0.tar.xz": 15111524255417105836, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_categorical.py": 10863578845754547294, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/dml.py": 6519732236745017861, + "venv/lib/python3.13/site-packages/numpy/fft/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel.pyi": 16372699564794732463, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pandas/util/_doctools.py": 3766479022075611396, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/url.py": 1558176735588971829, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/nested_schemas.py": 4114645644496880787, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/fields.pyi": 15420142722808118826, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_equals.py": 6429101196875333574, + "venv/lib/python3.13/site-packages/pytest/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_install.py": 7181005402818830655, + "venv/lib/python3.13/site-packages/fastapi/security/open_id_connect_url.py": 3502444317759870079, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_isin.py": 14387850595546682314, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_array_to_datetime.py": 3467480435568672840, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/base.py": 16891437410462671317, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/ext.py": 8361831054662096695, + "venv/lib/python3.13/site-packages/numpy/lib/_datasource.pyi": 5894423389796456573, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_io.py": 4199750143323741326, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/lexers/_php_builtins.py": 2344562378679281201, + "venv/lib/python3.13/site-packages/pygments/lexers/teal.py": 10004159499175716139, + "frontend/src/components/StartupEnvironmentWizard.svelte": 13169478544862386336, + "backend/src/core/superset_client/_dashboards_filters.py": 11002883972618719697, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/asyncio.py": 2517623574187179319, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/parsing.cpython-313-x86_64-linux-gnu.so": 13104135217735363438, + "venv/lib/python3.13/site-packages/numpy/rec/__init__.pyi": 1782063765067823837, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_halfyear.py": 587199217232946404, + "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/METADATA": 3188324716322823755, + "venv/lib/python3.13/site-packages/rapidfuzz/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssltransport.py": 8148652555908329980, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_setops.py": 16240008859650640717, + "venv/lib/python3.13/site-packages/numpy/_core/_asarray.py": 3468915833437229425, + "venv/lib/python3.13/site-packages/fastapi/openapi/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/api/executors/__init__.py": 16954693181142010028, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler_py.py": 16189204441438239231, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_html.py": 7732330576029516854, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/offsets.pyi": 13173581775000480811, + "venv/lib/python3.13/site-packages/pandas/core/arraylike.py": 11439602957100017713, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/dml.py": 5340326603935367534, + "venv/lib/python3.13/site-packages/pygments/lexers/special.py": 4972294202790455038, + "backend/git_repos/remote/test-repo.git/objects/f7/6ee984d9d47c3cd0b362fdf60a47162bbc202d": 5351983130474596028, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_index_new.py": 796607958391882182, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/bitgen.h": 12421210767114721499, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_sort_values.py": 834951665649981397, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_file_handling.py": 732772718210067599, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_period.py": 10309599277099605395, + "venv/lib/python3.13/site-packages/pygments/lexers/functional.py": 15896849233007178031, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90": 15768643271492041853, + "backend/src/models/auth.py": 8146256910993395749, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/text.py": 6096215585499446070, + "venv/lib/python3.13/site-packages/pygments/lexers/hdl.py": 6772823608124143123, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/__init__.py": 10834852742917144496, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/kind/foo.f90": 1367964042730902899, + "backend/src/plugins/translate/orchestrator.py": 2899451611486868631, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/subrout.pyf": 4660465266594480405, + "venv/lib/python3.13/site-packages/authlib/common/urls.py": 13627272625165922482, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py": 8539232219382152238, + "venv/lib/python3.13/site-packages/pygments/lexers/basic.py": 12723021007042054402, + "venv/lib/python3.13/site-packages/itsdangerous/signer.py": 3694661094753475840, + "frontend/src/lib/stores/__tests__/test_sidebar.js": 113566022614194798, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/descriptor_props.py": 7044852927393650707, + "venv/lib/python3.13/site-packages/_pytest/_io/wcwidth.py": 13515196388826152383, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_indexing.py": 81180636019259296, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/accumulate.py": 5780225603819849877, + "venv/lib/python3.13/site-packages/numpy/f2py/f90mod_rules.pyi": 18290764713161282980, + "venv/lib/python3.13/site-packages/numpy/_core/multiarray.py": 4484782354376574355, + "venv/lib/python3.13/site-packages/pygments/lexers/snobol.py": 414946539602526513, + "backend/src/services/__init__.py": 15123879863527585264, + "backend/tests/scripts/test_clean_release_tui_v2.py": 16893299982170941753, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_asof.py": 17616601748321325187, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/__init__.py": 1948986914452928735, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_dtypes_basic.py": 10917162988625838981, + "backend/alembic/versions/8dd0a93af539_drop_deprecated_source_language_column_.py": 3574830605384611294, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/requests.py": 6703055041957748929, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/orderinglist.py": 10162099108656794338, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py": 7707707044867513457, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/__init__.py": 15487893533770969571, + "venv/lib/python3.13/site-packages/pygments/lexers/tal.py": 447505725492547461, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_sequence.py": 3721630758772772345, + "venv/lib/python3.13/site-packages/numpy/tests/test_configtool.py": 8208415015478205502, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/converter.py": 9041278869295701566, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/unitofwork.py": 3177255974394221645, + "frontend/build/_app/immutable/chunks/BPGBzR36.js": 17958176020731804885, + "venv/lib/python3.13/site-packages/greenlet/greenlet_thread_support.hpp": 7773996382104849037, + "frontend/src/components/tools/ConnectionForm.svelte": 4060811448046342875, + "venv/lib/python3.13/site-packages/pandas/_libs/algos.cpython-313-x86_64-linux-gnu.so": 15706331654215762588, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_astype.py": 4178231007649608531, + "backend/src/plugins/translate/_token_budget.py": 102333806375699922, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__multiarray_api.c": 9134176670140958459, + "venv/lib/python3.13/site-packages/pandas/api/typing/aliases.py": 11194270368147942988, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/__init__.py": 3969805865048730851, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_interval_array_equal.py": 15654625365223535344, + "frontend/src/lib/components/translate/TranslationPreview.svelte": 3234775946311369733, + "backend/src/plugins/translate/_lang_detect.py": 12055315268276451173, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/RECORD": 11904769847385571600, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi": 16934250836612138541, + "backend/src/schemas/settings.py": 7182606947764184429, + "frontend/src/routes/datasets/review/+page.svelte": 12909115647298935839, + "frontend/build/_app/immutable/nodes/7.CB2y5Tnt.js": 14716930412873771218, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/masked_accumulations.py": 11428556645065711062, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_api.py": 1910541672533352625, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_replace.py": 18039668944453454689, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_alpha_unix.h": 2759424570606117942, + "venv/lib/python3.13/site-packages/authlib/common/security.py": 2291133227104016684, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/mock.py": 14010776046610111182, + "venv/lib/python3.13/site-packages/starlette/types.py": 6372850128669191435, + "venv/lib/python3.13/site-packages/requests/auth.py": 912521029864094489, + "venv/lib/python3.13/site-packages/numpy/random/_sfc64.cpython-313-x86_64-linux-gnu.so": 17186695607612591922, + "backend/src/api/routes/git/_environment_routes.py": 1034235394475003092, + "venv/lib/python3.13/site-packages/pandas/core/construction.py": 10646956189518908985, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_align.py": 6050248183327934780, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_map.py": 1115471561925426082, + "frontend/build/_app/immutable/chunks/ikwS1dR6.js": 3267599179274813039, + "venv/lib/python3.13/site-packages/PIL/_tkinter_finder.py": 14045496501810535432, + "frontend/src/routes/admin/users/+page.svelte": 4464001185352807842, + "venv/lib/python3.13/site-packages/ecdsa/test_malformed_sigs.py": 2606295770491528880, + "venv/lib/python3.13/site-packages/pydantic/fields.py": 4142211199816898047, + "venv/lib/python3.13/site-packages/numpy/lib/recfunctions.py": 3001896031623204147, + "venv/lib/python3.13/site-packages/pandas/core/arrays/string_arrow.py": 16997970607998635570, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_casting_floatingpoint_errors.py": 4301355720042319835, + "venv/lib/python3.13/site-packages/pip/_internal/commands/debug.py": 13528633965821062950, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/pg_catalog.py": 15726448028057859831, + "venv/lib/python3.13/site-packages/pip/_internal/locations/_distutils.py": 13559457590971821771, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arraypad.pyi": 12178766981280242620, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_at.py": 1029744344133153888, + "venv/lib/python3.13/site-packages/git/index/fun.py": 18338379518768926372, + "venv/lib/python3.13/site-packages/pygments/lexers/maple.py": 7402467573829618534, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize.py": 15511055314565873928, + "venv/lib/python3.13/site-packages/greenlet/greenlet_slp_switch.hpp": 1694714764745718414, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_timestamp_method.py": 11393911418463808195, + "venv/lib/python3.13/site-packages/pygments/lexers/nix.py": 15050086330545600356, + "venv/lib/python3.13/site-packages/pygments/lexers/csound.py": 2175454840368374515, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/setitem.py": 9552868454186447925, + "venv/bin/fastapi": 12400009726251862770, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/requests.py": 1102963893193914979, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/vectorized.cpython-313-x86_64-linux-gnu.so": 5441755022198996487, + "venv/lib/python3.13/site-packages/pandas/tseries/frequencies.py": 2262381949755250516, + "frontend/src/lib/ui/Card.svelte": 3442526978752993023, + "venv/lib/python3.13/site-packages/fastapi/routing.py": 466387159689567541, + "venv/lib/python3.13/site-packages/PIL/WalImageFile.py": 12442826195371137238, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_index.py": 1551768441102117466, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_meson.pyi": 2101854548535776875, + "venv/lib/python3.13/site-packages/_pytest/compat.py": 10046464101087327473, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_frame_equal.py": 12459816298158655274, + "venv/lib/python3.13/site-packages/urllib3/poolmanager.py": 15431313180245757657, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_string.py": 15542851215119662814, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_liboffsets.py": 14705822637347212540, + "venv/lib/python3.13/site-packages/websockets/protocol.py": 6401227903827084901, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_cumulative.py": 8178093067175155877, + "venv/lib/python3.13/site-packages/pygments/lexers/r.py": 14263133575134645005, + "venv/lib/python3.13/site-packages/passlib/ext/django/__init__.py": 11713862539944289631, + "venv/lib/python3.13/site-packages/pandas/_libs/pandas_datetime.cpython-313-x86_64-linux-gnu.so": 15874094681262240628, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_complex/foo77.f": 7353666717928699883, + "venv/lib/python3.13/site-packages/pydantic/_internal/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/gitdb/test/test_pack.py": 7518388297247535189, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mariadb.py": 3109042476851791996, + "venv/lib/python3.13/site-packages/pandas/core/nanops.py": 18291534943985310005, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi": 17458894097215345719, + "venv/lib/python3.13/site-packages/pandas/tests/util/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_custom_dtypes.py": 12322100282959605055, + "venv/lib/python3.13/site-packages/numpy/_typing/__init__.py": 18242238390157333247, + "backend/src/models/llm.py": 14295626272101666880, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/RECORD": 9974324769263969827, + "venv/lib/python3.13/site-packages/jaraco/functools/__init__.py": 15334412919279565528, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_scalar_compat.py": 10534925655070162459, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_http_headers.py": 13187746870209705951, + "venv/lib/python3.13/site-packages/jeepney/io/tests/utils.py": 10346859893683522113, + "venv/lib/python3.13/site-packages/numpy/linalg/_umath_linalg.pyi": 7674087576653964854, + "venv/lib/python3.13/site-packages/passlib/utils/handlers.py": 10182859005870689026, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/tzconversion.cpython-313-x86_64-linux-gnu.so": 15960606468596245469, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_block_docstring.py": 18146459246837890489, + "venv/lib/python3.13/site-packages/greenlet/TPythonState.cpp": 12828594265749606443, + "venv/lib/python3.13/site-packages/dateutil/tz/__init__.py": 9617254832690762236, + "frontend/src/lib/components/translate/TermCorrectionPopup.svelte": 5276611147503580165, + "venv/lib/python3.13/site-packages/greenlet/platform/setup_switch_x64_masm.cmd": 8473866644286785815, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/WHEEL": 8600534672961461758, + "venv/lib/python3.13/site-packages/urllib3/util/util.py": 12490259045660543460, + "frontend/build/_app/immutable/entry/start.DvtINOvX.js": 17331712932946685898, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/reporter.py": 6510864297510700136, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/unix.py": 13808187640638677050, + "venv/lib/python3.13/site-packages/pandas/tests/test_flags.py": 411845322592830527, + "venv/lib/python3.13/site-packages/sqlalchemy/__init__.py": 9751988289698484530, + "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_impl.py": 12056958946481531279, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rename.py": 4890779493250245903, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/test_interval.py": 18040371224712437126, + "venv/lib/python3.13/site-packages/starlette/websockets.py": 13834731343216764204, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/six.py": 1161259802604920635, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_dialect.py": 6294522482440261756, + "venv/lib/python3.13/site-packages/gitdb/db/ref.py": 1176701624460337371, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_deprecations.py": 16124509063246256847, + "venv/lib/python3.13/site-packages/jose/jwt.py": 3405491994268385178, + "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/rsa/util.py": 13423880475585138638, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/WHEEL": 8954358347596196608, + "venv/lib/python3.13/site-packages/pydantic/_internal/_namespace_utils.py": 5237766366340181382, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_repr.py": 11737029058271003097, + "venv/lib/python3.13/site-packages/pandas/io/spss.py": 864838144958947906, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/WHEEL": 7454950858448014158, + "venv/lib/python3.13/site-packages/smmap/buf.py": 18231775424238352734, + "backend/src/dependencies.py": 9481683691730170837, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/live.py": 8586058300967410643, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/introspection.py": 14645217065508644154, + "venv/lib/python3.13/site-packages/greenlet/TGreenlet.hpp": 6993553444981671786, + "frontend/src/lib/auth/__tests__/permissions.test.js": 13555349356008297952, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/__init__.py": 8558541715982163200, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata_editable.py": 12494407279914732338, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata_legacy.py": 9226692984248279094, + "venv/lib/python3.13/site-packages/numpy/tests/test_ctypeslib.py": 9592016432737074765, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/strings.pyi": 402863478592154500, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/ecdsa/test_sha3.py": 12459459298663975730, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/__init__.py": 12906995259233516197, + "venv/lib/python3.13/site-packages/greenlet/greenlet_exceptions.hpp": 8819301638282185623, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py": 5132658725516243311, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/cmac.py": 12011944740750051829, + "venv/lib/python3.13/site-packages/pydantic/warnings.py": 5142352784799639092, + "venv/lib/python3.13/site-packages/starlette/background.py": 10232175205397808417, + "venv/lib/python3.13/site-packages/numpy/typing/tests/test_isfile.py": 14544060093268573418, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/api.py": 12339139862411341381, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_unary.py": 2573825678342936734, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_quantile.py": 4225791949463893856, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/base.py": 6348888156686452825, + "venv/lib/python3.13/site-packages/pip/_vendor/distro/__main__.py": 2688850704829116818, + "venv/lib/python3.13/site-packages/sqlalchemy/future/__init__.py": 17688444679736059779, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.pxd": 13413785818999584986, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/WHEEL": 691462085217888236, + "venv/lib/python3.13/site-packages/pygments/styles/dracula.py": 12379322008538174078, + "frontend/src/routes/reports/+page.svelte": 17831076184881844976, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize_cpp.cpython-313-x86_64-linux-gnu.so": 7490281502544276964, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/__init__.py": 697601512486720554, + "venv/lib/python3.13/site-packages/_pytest/tmpdir.py": 10834220332037364219, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/flatiter.pyi": 6885824496927786205, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cbrt.csv": 8929553891827331780, + "venv/lib/python3.13/site-packages/authlib/integrations/django_client/apps.py": 14151733532064278336, + "venv/bin/uvicorn": 3776670267111625708, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/roles.py": 5448455900674232810, + "frontend/src/components/llm/ProviderConfig.svelte": 10540903648131362498, + "backend/src/api/routes/dashboards/_listing_routes.py": 1750634467656242702, + "backend/src/plugins/translate/sql_generator.py": 900251269659959067, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_markdown.py": 9964642152916165317, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/METADATA": 18410956221497090898, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/orm.py": 7554417559838785150, + "frontend/src/lib/components/translate/TranslationRunProgress.svelte": 18041933754930100165, + "venv/lib/python3.13/site-packages/numpy/random/_examples/numba/extending.py": 16515485226251040454, + "venv/lib/python3.13/site-packages/httpcore/_sync/connection_pool.py": 8159971229245441880, + "frontend/build/_app/immutable/nodes/34.CxkaozWN.js": 11471496810613880452, + "venv/lib/python3.13/site-packages/pygments/formatters/_mapping.py": 13335227913146542481, + "venv/lib/python3.13/site-packages/pydantic/_internal/_known_annotated_metadata.py": 9308620143218174987, + "frontend/src/routes/+page.svelte": 16267809857510759396, + "venv/lib/python3.13/site-packages/numpy/ctypeslib/_ctypeslib.pyi": 10360538024015064036, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_unary.py": 8046543893978198672, + "backend/src/services/dataset_review/orchestrator.py": 8780497744077644822, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/json.py": 15373167408891671190, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufunclike.pyi": 12215374902556647369, + "venv/lib/python3.13/site-packages/pandas/core/indexers/objects.py": 409599993084996593, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_duplicate_labels.py": 10663105616336167414, + "venv/lib/python3.13/site-packages/pandas/core/computation/api.py": 17919983681396223380, + "venv/lib/python3.13/site-packages/numpy/core/defchararray.py": 11371045148957547088, + "venv/lib/python3.13/site-packages/numpy/f2py/__main__.py": 12567751646090102167, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/cast.py": 342228968652072052, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_python_parser_only.py": 12231449578582108346, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_spinners.py": 15873416546130487469, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pct_change.py": 18056235438452125034, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_setops.py": 10550603120090683350, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/interfaces.py": 5371646629319169153, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_downcast.py": 10399746645741452200, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_astype.py": 8633811117672837999, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/METADATA": 3448868793744358515, + "venv/lib/python3.13/site-packages/httpx/__version__.py": 9473642134297828811, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/__init__.py": 5118993772178969104, + "venv/bin/py.test": 2593802493707545818, + "backend/src/core/task_manager/cleanup.py": 8316318318890394605, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-tanh.csv": 6674536825156196036, + "venv/lib/python3.13/site-packages/pip/_internal/models/__init__.py": 13482731985065116750, + "venv/lib/python3.13/site-packages/anyio/abc/_streams.py": 8089057973257658396, + "venv/lib/python3.13/site-packages/jeepney/io/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby.py": 16180421154734310873, + "backend/test_auth.db": 18214842050920965999, + "venv/lib/python3.13/site-packages/pip/_internal/utils/glibc.py": 12335359492756627313, + "venv/lib/python3.13/site-packages/sqlalchemy/util/_concurrency_py3k.py": 7301817934902711510, + "venv/lib/python3.13/site-packages/fastapi/_compat/shared.py": 5249003014594464718, + "venv/lib/python3.13/site-packages/pygments/lexers/ampl.py": 4594260378653369985, + "backend/src/models/dataset_review_pkg/_enums.py": 2243691494729792539, + "backend/tests/test_translate_scheduler.py": 14274816721941617887, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/__init__.py": 15130871412783076140, + "backend/tests/test_translate_history.py": 14504549443376034614, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/endpoints.py": 18334891787808122725, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/util.py": 18279366777506483176, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/redis.py": 11313520438600819390, + "venv/lib/python3.13/site-packages/pandas/io/excel/_openpyxl.py": 6676451564208867775, + "venv/lib/python3.13/site-packages/pydantic/experimental/missing_sentinel.py": 1637241331832367709, + "venv/bin/pyrsa-sign": 15564653706771700451, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_replace.py": 15992095120302643273, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/interface.py": 3134071530627935964, + "venv/lib/python3.13/site-packages/numpy/tests/test__all__.py": 10689265249302359388, + "venv/lib/python3.13/site-packages/pygments/styles/stata_light.py": 16319330015324455277, + "backend/src/core/task_manager/graph.py": 1566662881946484762, + "backend/src/api/routes/assistant/_llm_planner_intent.py": 16189718762013093878, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cython.py": 14695721638531081573, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py": 2516476609539242190, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/dynamic.py": 15220116196072524330, + "venv/lib/python3.13/site-packages/anyio/_core/_tempfile.py": 230288423480899091, + "venv/lib/python3.13/site-packages/numpy/_typing/_add_docstring.py": 14657346268890680694, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_indexing.py": 5063545640498065297, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/licenses/LICENSE": 6965457853328313914, + "venv/lib/python3.13/site-packages/pygments/lexers/c_like.py": 13004061780700827047, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_to_timestamp.py": 17572983799929378095, + "backend/src/core/utils/async_network.py": 2763204398131017281, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/background.py": 2105814165112049750, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/fixed_string.f90": 8654788371538544793, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_groupby.py": 12709199432838648700, + "venv/lib/python3.13/site-packages/pip/_internal/utils/retry.py": 15244280495983216204, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_index_tricks.py": 4676293127859087991, + "venv/lib/python3.13/site-packages/PIL/_binary.py": 14039167720582222043, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh18335.f90": 1126438609189294255, + "venv/lib/python3.13/site-packages/pandas/_libs/window/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/base.py": 10262717073058743378, + "venv/lib/python3.13/site-packages/pandas/io/clipboard/__init__.py": 3656451154829206939, + "venv/lib/python3.13/site-packages/fastapi/dependencies/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pydantic/_internal/_mock_val_ser.py": 12265320534388472158, + "venv/lib/python3.13/site-packages/PIL/XVThumbImagePlugin.py": 7472134175570205454, + "frontend/src/lib/utils/debounce.js": 16884470786640632815, + "backend/src/services/clean_release/stages/manifest_consistency.py": 14323717074129560178, + "venv/lib/python3.13/site-packages/passlib/totp.py": 14590474309565233318, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/screen.py": 6933591906297023845, + "venv/lib/python3.13/site-packages/pygments/lexers/parsers.py": 12372594608244797844, + "venv/lib/python3.13/site-packages/pygments/lexers/sas.py": 6128008194712914874, + "venv/lib/python3.13/site-packages/itsdangerous/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_series.py": 17126297747681689408, + "venv/lib/python3.13/site-packages/passlib/ext/__init__.py": 15240312484046875203, + "frontend/build/_app/immutable/nodes/15.C2_WFfq2.js": 13111853760541228797, + "venv/lib/python3.13/site-packages/fastapi/websockets.py": 9910052969532075719, + "venv/lib/python3.13/site-packages/ecdsa/_rwlock.py": 7971972922423146201, + "backend/src/api/routes/git/_helpers.py": 6888678759460652166, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_regression.py": 6742646011852052645, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_store.py": 1500300322083708794, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ma.pyi": 6467636381637286867, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/utils.py": 8633356372647820801, + "venv/lib/python3.13/site-packages/_pytest/timing.py": 14080119171718125986, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/common/block.f": 10727418304254548946, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_ops.py": 16346030307660048773, + "venv/lib/python3.13/site-packages/pygments/formatters/groff.py": 6480830447984073574, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/licenses/LICENSE": 13322127602069971876, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_color.py": 3700828402084646308, + "venv/lib/python3.13/site-packages/pygments/lexers/compiled.py": 8215290039991205531, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/test_astype.py": 10171766562093740708, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/structures.py": 2668010839316715865, + "venv/lib/python3.13/site-packages/anyio/_core/_typedattr.py": 17584691045493791349, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py": 9623344347519683527, + "venv/lib/python3.13/site-packages/numpy/lib/_npyio_impl.pyi": 6576645822227068922, + "venv/lib/python3.13/site-packages/pygments/lexers/blueprint.py": 6370363226580199085, + "venv/lib/python3.13/site-packages/packaging/_parser.py": 13394093358675095309, + "venv/lib/python3.13/site-packages/packaging/_manylinux.py": 8268418900652790584, + "venv/lib/python3.13/site-packages/pandas/_libs/tslib.cpython-313-x86_64-linux-gnu.so": 10742615805788605480, + "frontend/build/_app/immutable/chunks/B8AtCuU6.js": 13246100544061806572, + "venv/lib/python3.13/site-packages/pip/_internal/utils/entrypoints.py": 11268059714209889385, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_round.py": 1299086932398824299, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arrayprint.py": 5912583751693302370, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_index_equal.py": 10617870815989304510, + "backend/src/plugins/translate/_batch_insert.py": 12482635271028646257, + "backend/src/core/superset_client/_databases.py": 14837101840847724937, + "venv/lib/python3.13/site-packages/_pytest/stepwise.py": 3527630676691417317, + "venv/lib/python3.13/site-packages/cffi/cparser.py": 5246372077864988755, + "venv/lib/python3.13/site-packages/jose/exceptions.py": 8562012933958941039, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_3kcompat.h": 5377305123299457337, + "venv/lib/python3.13/site-packages/numpy/_core/multiarray.pyi": 3494871767602648807, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/visitors.py": 5190923415390076080, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/file_proxy.py": 17695135735211897444, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/filter.py": 16846063190466267618, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/AB.inc": 10441778083831997423, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-expm1.csv": 8710594949902856122, + "venv/lib/python3.13/site-packages/httpcore/_async/http11.py": 7565741048880549265, + "frontend/eslint.config.js": 14296985543214702398, + "venv/lib/python3.13/site-packages/referencing/typing.py": 8296636464219681747, + "venv/lib/python3.13/site-packages/passlib/tests/tox_support.py": 9200774792427691602, + "backend/src/core/superset_client/_dashboards_crud.py": 4664728216214173491, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_join.py": 1131792466825856990, + "venv/lib/python3.13/site-packages/attr/__init__.py": 14436902698244718082, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/einsumfunc.py": 9944042006439149561, + "venv/lib/python3.13/site-packages/pip/_internal/commands/show.py": 11839987586497822300, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/string.f": 17328443345813567449, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_datetimelike.py": 15246580603900811749, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_astype.py": 8505605634958454768, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/hist.py": 10928173425078493095, + "venv/lib/python3.13/site-packages/yaml/__init__.py": 11044333164208875121, + "frontend/src/services/connectionService.js": 16613277497380191542, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/__init__.py": 15130871412783076140, + "backend/tests/scripts/test_clean_release_cli.py": 13978106497618764226, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/RECORD": 9803861100978586236, + "venv/lib/python3.13/site-packages/cffi/cffi_opcode.py": 8411344362428947268, + "venv/lib/python3.13/site-packages/numpy/f2py/f2py2e.py": 738588649412338185, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/LICENSE": 2032205056284080825, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/_json.py": 6718137926109998531, + "venv/lib/python3.13/site-packages/numpy/lib/introspect.pyi": 12239924839764265507, + "venv/lib/python3.13/site-packages/pandas/tseries/api.py": 14785127136180503704, + "frontend/src/routes/translate/[id]/+page.svelte": 1911443262444004956, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_complex.py": 12963449957363121481, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/bulk_persistence.py": 2307818727114646866, + "venv/lib/python3.13/site-packages/websockets/frames.py": 4901850477414613953, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/licenses/LICENSE": 4123064337800029995, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_real/foo77.f": 16156304612888138777, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/METADATA": 13695483537390128881, + "venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py": 7271614043537119143, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_datetime.py": 11417836378782978454, + "venv/lib/python3.13/site-packages/pandas/core/methods/selectn.py": 13552176539021625776, + "venv/lib/python3.13/site-packages/pydantic/config.py": 1450073446492183677, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/test_nat.py": 7400568652984772972, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_setops.py": 5208912445718807372, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/reduce.py": 14976712507854054776, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_common.py": 2265736743367879051, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/query.py": 3867868366067025348, + "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/WHEEL": 5076688779572520166, + "venv/lib/python3.13/site-packages/authlib/oidc/discovery/__init__.py": 308178910015974550, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler.py": 1341849861184131135, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/base.py": 10200916670889920659, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_deprecations.py": 16367195310156359251, + "venv/lib/python3.13/site-packages/pydantic/_internal/_validate_call.py": 4078236486720616395, + "venv/lib/python3.13/site-packages/git/repo/__init__.py": 6173604284490891047, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/_writer.py": 15053365792216907149, + "venv/lib/python3.13/site-packages/pygments/lexers/graphics.py": 13783143864729682444, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/errors.py": 14634768861119075506, + "venv/lib/python3.13/site-packages/numpy/f2py/symbolic.pyi": 14558091964387571257, + "venv/lib/python3.13/site-packages/requests/__init__.py": 2604491098990438229, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/panel.py": 17832701246248000383, + "venv/lib/python3.13/site-packages/numpy/lib/_ufunclike_impl.py": 12251264586530536622, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arrayobject.py": 13337664596833150958, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_user_array.py": 8711697474193296376, + "venv/lib/python3.13/site-packages/numpy/tests/test_matlib.py": 14395481530627870882, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/_internal_utils.py": 4091305333167213279, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_period.py": 15671388508498441412, + "venv/lib/python3.13/site-packages/PIL/_webp.pyi": 18222325750818585549, + "venv/lib/python3.13/site-packages/PIL/BufrStubImagePlugin.py": 5520941821175895889, + "venv/lib/python3.13/site-packages/anyio/_backends/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/_libs/indexing.cpython-313-x86_64-linux-gnu.so": 13188040757764159731, + "venv/lib/python3.13/site-packages/pyasn1/type/opentype.py": 340146737126677655, + "venv/lib/python3.13/site-packages/pygments/formatters/rtf.py": 5850574956253747036, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/claims.py": 11853156183819186599, + "venv/lib/python3.13/site-packages/pygments/lexers/berry.py": 4540479522141160472, + "backend/src/models/clean_release.py": 6080208142954589647, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/RECORD": 7320381591791379627, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py": 8079219938116542284, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/argon2.py": 15389474901714096890, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pluggy/_warnings.py": 2664977718908223842, + "venv/lib/python3.13/site-packages/greenlet/greenlet_compiler_compat.hpp": 465436185632243991, + "frontend/src/components/DynamicForm.svelte": 12658559315809907844, + "venv/lib/python3.13/site-packages/rapidfuzz/utils_py.py": 12341806772632276946, + "venv/lib/python3.13/site-packages/pandas/io/excel/_xlsxwriter.py": 16873939324418752965, + "venv/lib/python3.13/site-packages/pygments/lexers/igor.py": 6506221273085723501, + "frontend/build/_app/immutable/chunks/DA-mqwbe.js": 17228797594481881608, + "backend/src/core/__tests__/test_throttled_scheduler.py": 10949494963069000037, + "venv/lib/python3.13/site-packages/anyio/_core/_testing.py": 14024940365851109155, + "venv/lib/python3.13/site-packages/keyring/backends/null.py": 12740996416911604870, + "venv/lib/python3.13/site-packages/pygments/lexers/gsql.py": 15294109558028161389, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/RECORD": 11604408378998955169, + "backend/src/core/migration/__init__.py": 13075189211840127611, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/async_openid.py": 8708980645667847439, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/licenses/LICENSE": 16147999986886816451, + "venv/lib/python3.13/site-packages/pandas/tests/libs/test_libalgos.py": 13934861984871432400, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_update.py": 12293424926920594944, + "venv/lib/python3.13/site-packages/pydantic/types.py": 785880062468926292, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/terminal_theme.py": 13727399800263579809, + "backend/src/api/routes/dataset_review_pkg/_routes.py": 11040245149296528009, + "venv/lib/python3.13/site-packages/fastapi/exception_handlers.py": 9907950997607808699, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_truncate.py": 9623613657871046837, + "venv/lib/python3.13/site-packages/numpy/typing/tests/test_typing.py": 10311989961588249147, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_concat.py": 3788461606817482165, + "venv/lib/python3.13/site-packages/charset_normalizer/__init__.py": 12412600648990392633, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/LICENSE": 8423899413955829149, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/resources.py": 11533706401259147051, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_period.py": 7727606662611927293, + "venv/lib/python3.13/site-packages/pygments/lexers/_luau_builtins.py": 13690910306072616818, + "venv/lib/python3.13/site-packages/pandas/core/util/numba_.py": 3535857372998653863, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_base.py": 16710163879060522196, + "venv/lib/python3.13/site-packages/pygments/styles/xcode.py": 14124729477757765388, + "backend/src/plugins/llm_analysis/__init__.py": 9254812131558249924, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_index.py": 10837492069089787028, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/METADATA": 8985010079096958084, + "venv/lib/python3.13/site-packages/authlib/oidc/core/__init__.py": 16029653645350087968, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufunc_config.pyi": 11754104063443791746, + "venv/lib/python3.13/site-packages/numpy/core/multiarray.py": 18368443598659711836, + "venv/lib/python3.13/site-packages/authlib/integrations/django_client/__init__.py": 14186136918454802843, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/connection.py": 8190661510572400096, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/generator_pcg64_np126.pkl.gz": 9677994062701347206, + "venv/lib/python3.13/site-packages/numpy/polynomial/hermite_e.pyi": 13068936038543812082, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_normalize.py": 11373923576259976755, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_reductions.py": 14432782234851468060, + "venv/lib/python3.13/site-packages/dateutil/zoneinfo/rebuild.py": 1813298167468704155, + "backend/src/services/clean_release/__tests__/test_stages.py": 15353751625742444422, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/errors.py": 4817746830102488448, + "venv/lib/python3.13/site-packages/pydantic/v1/__init__.py": 1642038155370734658, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arithmetic.pyi": 467927803068643024, + "venv/lib/python3.13/site-packages/numpy/f2py/src/fortranobject.h": 5980733638838895780, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/clsregistry.py": 1589692649837935355, + "frontend/build/_app/immutable/chunks/CjNbyeiE.js": 13814062364361575028, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_month.py": 8485374160446988786, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/lexers/agile.py": 5686162551416231457, + "venv/lib/python3.13/site-packages/pandas/api/indexers/__init__.py": 17431573013142626187, + "frontend/build/_app/immutable/chunks/BLWhLUWr.js": 10944150245569987395, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_matmul.py": 9323220618335072725, + "venv/lib/python3.13/site-packages/jeepney/io/tests/test_threading.py": 6656552495241857519, + "docker/nginx.ssl.conf": 12350396037548059686, + "venv/lib/python3.13/site-packages/ecdsa/eddsa.py": 15966858338456571506, + "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/__init__.py": 5896924546560667519, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/linalg.pyi": 269481015135399748, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reindex_like.py": 13803156447991282315, + "frontend/src/lib/api/translate/jobs.js": 9613844538417291513, + "backend/src/core/auth/repository.py": 7314530014494164270, + "backend/src/schemas/dataset_review_pkg/_composites.py": 1898056130177244572, + "venv/lib/python3.13/site-packages/certifi/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/python3.npy": 4957143805477405905, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_sample.py": 4641567828238191927, + "venv/lib/python3.13/site-packages/more_itertools/more.pyi": 4844596605492825806, + "venv/lib/python3.13/site-packages/click/core.py": 16793133181718891193, + "venv/lib/python3.13/site-packages/rapidfuzz/process.pyi": 6959881293311340830, + "venv/lib/python3.13/site-packages/pandas/core/flags.py": 4690844374637430013, + "venv/lib/python3.13/site-packages/pip/_internal/index/__init__.py": 14829074315307489628, + "venv/lib/python3.13/site-packages/pandas/core/reshape/melt.py": 14109947554124551986, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_quantile.py": 11273403743157110261, + "venv/lib/python3.13/site-packages/pandas/core/sparse/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_ipython_compat.py": 12632271159842988561, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_astype.py": 11386658862732393123, + "venv/lib/python3.13/site-packages/keyring/backend_complete.bash": 16589214602970214174, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_sparse_accessor.py": 6774374030220202353, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log.csv": 221209423454319618, + "venv/lib/python3.13/site-packages/numpy/lib/npyio.py": 6782361985454523908, + "venv/lib/python3.13/site-packages/pandas/core/computation/pytables.py": 16326122536715961388, + "venv/lib/python3.13/site-packages/httpx/_transports/default.py": 8391302827983907910, + "venv/lib/python3.13/site-packages/pydantic_core/_pydantic_core.pyi": 16799580742094025110, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/plugin_base.py": 2880434680251108786, + "venv/lib/python3.13/site-packages/git/objects/tag.py": 7954808535585493300, + "venv/lib/python3.13/site-packages/pygments/lexers/d.py": 18120801227801223376, + "backend/src/models/connection.py": 7467905739729526898, + "backend/src/services/notifications/providers.py": 5844970860921555598, + "venv/lib/python3.13/site-packages/httpcore/_trace.py": 9576253018891841832, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log2.csv": 13979868713429167140, + "venv/lib/python3.13/site-packages/rsa/prime.py": 10820898885044917095, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/hmac.py": 18132740541139891824, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_skew_kurt.py": 15225601437354712351, + "backend/src/services/clean_release/__tests__/test_manifest_builder.py": 9320699981861675127, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/meson.build": 9642189398934130247, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_extract.py": 14547819021277949280, + "frontend/src/components/MissingMappingModal.svelte": 11264881226066623003, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_get.py": 6509102681661636928, + "venv/lib/python3.13/site-packages/pygments/token.py": 6987328478153445584, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_subclass.py": 12453252499544981915, + "venv/lib/python3.13/site-packages/pip/_internal/utils/datetime.py": 6816292030061301011, + "venv/lib/python3.13/site-packages/pandas/core/internals/managers.py": 13547912653290063698, + "venv/lib/python3.13/site-packages/pydantic/color.py": 1007422551673129827, + "venv/lib/python3.13/site-packages/urllib3/util/retry.py": 17988032431204662756, + "venv/lib/python3.13/site-packages/fastapi/openapi/models.py": 1680354178147364813, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_string.py": 13234624995755549329, + "venv/lib/python3.13/site-packages/referencing/_attrs.py": 14434891919747863272, + "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/INSTALLER": 17282701611721059870, + "frontend/src/routes/+error.svelte": 9437886843842311915, + "frontend/src/components/git/CommitModal.svelte": 4151596094672629211, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi": 13016654355866474644, + "frontend/src/routes/+page.ts": 11160596731849880920, + "venv/lib/python3.13/site-packages/pandas/util/version/__init__.py": 3844072588696074141, + "backend/src/api/routes/migration.py": 6030566471113208264, + "frontend/src/routes/dashboards/health/__tests__/health_page.integration.test.js": 11653729504599199718, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_openssl.py": 10446441599800965961, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_frequencies.py": 14039315221824123200, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_utils.pyi": 3708905060001289515, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py": 8864112842559211971, + "backend/_convert_defs.py": 208535643309836247, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_delete.py": 5958440386632506587, + "venv/lib/python3.13/site-packages/iniconfig/_version.py": 8497474654470220170, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_assumed_shape.py": 18361009188431483164, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/wait.py": 6196757964348666082, + "venv/lib/python3.13/site-packages/referencing/tests/test_referencing_suite.py": 8875120876162738440, + "venv/lib/python3.13/site-packages/jsonschema/_keywords.py": 949562792260528762, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/warnings_and_errors.pyi": 3151453262733619734, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/numerictypes.pyi": 15443101937711720707, + "venv/lib/python3.13/site-packages/PIL/MspImagePlugin.py": 3034490726971829439, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/loading.py": 3460142472461437916, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/incfile.f90": 4348588746493647387, + "venv/lib/python3.13/site-packages/pycparser/ply/__init__.py": 5040371336745852622, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/parameters.py": 12219404446503940066, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/__main__.py": 111505188798650285, + "venv/lib/python3.13/site-packages/uvicorn/main.py": 5843333502356171120, + "venv/lib/python3.13/site-packages/pandas/io/feather_format.py": 13242733585787888812, + "venv/lib/python3.13/site-packages/keyring/errors.py": 4587094338672775040, + "venv/lib/python3.13/site-packages/pygments/lexers/meson.py": 14659991367778746658, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/METADATA": 7727489762869155085, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi": 2777456956260371820, + "venv/lib/python3.13/site-packages/pandas/tests/io/xml/__init__.py": 15130871412783076140, + "frontend/src/assets/svelte.svg": 13872699371039797074, + "venv/lib/python3.13/site-packages/pip/_internal/configuration.py": 2563100675379605810, + "frontend/src/routes/settings/DatabaseConnectionsTab.svelte": 834010895835527896, + "frontend/src/components/tasks/LogEntryRow.svelte": 3694709927263161265, + "backend/src/services/clean_release/__tests__/test_report_builder.py": 17265459530244848426, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/util.py": 5252158959761945519, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_dropna.py": 17272771246760486947, + "venv/lib/python3.13/site-packages/bcrypt/py.typed": 15130871412783076140, + "backend/tests/core/test_mapping_service.py": 6888870177029085220, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_typst.py": 14619529283550788275, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f77comments.f": 4801926170672147659, + "frontend/src/lib/stores/activity.js": 14023344642294459631, + "frontend/src/lib/api/datasetReview.js": 3023829599261929428, + "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/backend.py": 9072112660082423691, + "frontend/src/components/git/BranchSelector.svelte": 12975425183125935169, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py": 16768579082462294745, + "backend/src/schemas/__tests__/test_settings_and_health_schemas.py": 13526616847756581689, + "backend/alembic/README": 17625003422504608299, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_slice.py": 9936085512921529417, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_is_monotonic.py": 12769599198035357753, + "venv/lib/python3.13/site-packages/pandas/tests/extension/conftest.py": 16886862391161243448, + "venv/lib/python3.13/site-packages/pandas/tests/computation/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/errors.py": 2147619440137604907, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_object_arr.py": 4725156416161661681, + "venv/lib/python3.13/site-packages/pygments/lexers/savi.py": 95400050302239274, + "venv/lib/python3.13/site-packages/pygments/lexers/supercollider.py": 15306357945850389082, + "venv/lib/python3.13/site-packages/pygments/lexers/tact.py": 1164971357219795420, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_monotonic.py": 11817523305776951162, + "venv/lib/python3.13/site-packages/cffi/_shimmed_dist_utils.py": 4824806157907607487, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust.abi3.so": 2537152913308578487, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/matrixlib/__init__.pyi": 1942236362568669510, + "venv/lib/python3.13/site-packages/greenlet/tests/test_version.py": 6317733744899804292, + "venv/lib/python3.13/site-packages/pandas/core/indexes/accessors.py": 14394872772838047912, + "frontend/src/lib/components/dataset-review/__tests__/validation_findings_panel.ux.test.js": 8994492423600483794, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__multiarray_api.h": 16138871162713175599, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/RECORD": 8971487317739420905, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_shape_manipulation.py": 12598431412396627042, + "venv/lib/python3.13/site-packages/pandas/errors/cow.py": 14381282473643980776, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_map.py": 32086858815359344, + "backend/src/api/routes/__tests__/test_datasets.py": 14530822388357135497, + "backend/src/api/routes/assistant/_dataset_review.py": 14508672919199309579, + "venv/lib/python3.13/site-packages/passlib/handlers/cisco.py": 15004707325761459775, + "backend/src/api/routes/git/_repo_operations_routes.py": 5819532622410034169, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/__init__.py": 15971002342788501945, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/response.py": 9594165377270752433, + "venv/lib/python3.13/site-packages/pygments/lexers/vip.py": 11287963054551122004, + "venv/lib/python3.13/site-packages/pandas/tests/io/conftest.py": 5864037534050136837, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_value_counts.py": 9352540710376306520, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/__init__.py": 3673322722277252961, + "venv/lib/python3.13/site-packages/pandas/io/json/__init__.py": 12333505155070172626, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_indexing.py": 9988098331562906950, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sort_index.py": 14187428934500390688, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.pyx": 11739218099400096619, + "venv/lib/python3.13/site-packages/dateutil/tzwin.py": 5149446703746204349, + "frontend/build/_app/immutable/nodes/2.Dz8ZoWTl.js": 14910365511578481297, + "venv/lib/python3.13/site-packages/numpy/_core/_multiarray_tests.cpython-313-x86_64-linux-gnu.so": 442168371609469538, + "venv/lib/python3.13/site-packages/pygments/styles/fruity.py": 7925019839136894457, + "venv/lib/python3.13/site-packages/numpy/f2py/diagnose.py": 503331864022631297, + "venv/lib/python3.13/site-packages/pygments/lexers/text.py": 10572727755736597715, + "backend/src/core/plugin_loader.py": 245217431000027879, + "frontend/src/lib/api/reports.js": 2328857814720054000, + "docker/backend.Dockerfile": 4384294014726084339, + "venv/lib/python3.13/site-packages/jsonschema/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py": 6712732248328458871, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_comment.py": 5603075924832933306, + "venv/lib/python3.13/site-packages/PIL/ImageText.py": 15322496455608242001, + "venv/lib/python3.13/site-packages/numpy/_configtool.pyi": 9670892208858157218, + "backend/src/models/dataset_review_pkg/_execution_models.py": 9810012962062422666, + "backend/git_repos/remote/test-repo.git/hooks/fsmonitor-watchman.sample": 14381968406977928721, + "venv/lib/python3.13/site-packages/pyasn1/type/tagmap.py": 14075859042659927673, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_partial_slicing.py": 16219611534574666182, + "venv/lib/python3.13/site-packages/attr/__init__.pyi": 13203080513025719049, + "venv/lib/python3.13/site-packages/pydantic/v1/errors.py": 11245135449608452720, + "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arrayprint.py": 13335063050941743734, + "venv/lib/python3.13/site-packages/pandas/tests/construction/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_repeat.py": 18394463352314692642, + "venv/lib/python3.13/site-packages/_pytest/capture.py": 17850967053989495422, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/compat.py": 9758194415584776667, + "venv/lib/python3.13/site-packages/pandas/_libs/join.pyi": 369262334342439364, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_m68k_gcc.h": 6580173800099450404, + "venv/lib/python3.13/site-packages/websockets/uri.py": 264376168984862773, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/licenses/AUTHORS": 2987771679926243782, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timezones.cpython-313-x86_64-linux-gnu.so": 1137453907225619959, + "venv/lib/python3.13/site-packages/cffi/_cffi_errors.h": 1479575326813300292, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/strategies.py": 15673926142454922581, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/types.py": 16795741817129898714, + "venv/lib/python3.13/site-packages/PIL/SpiderImagePlugin.py": 12234762087257163606, + "venv/lib/python3.13/site-packages/passlib/context.py": 10362592407593745107, + "venv/lib/python3.13/site-packages/pandas/_libs/missing.pyi": 13543139288840944411, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_astype.py": 16700461036658228009, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/_core/src/common/pythoncapi-compat/COPYING": 3474104874623144155, + "venv/lib/python3.13/site-packages/fastapi/security/api_key.py": 6965937678104291169, + "dist/docker/ss-tools.20260517.tar.xz": 10542870312371880474, + "venv/lib/python3.13/site-packages/idna-3.11.dist-info/METADATA": 14036738037171597049, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/uvicorn/__init__.py": 11517239807926185665, + "venv/lib/python3.13/site-packages/pandas/core/resample.py": 13814298871925341617, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/result.py": 8306497889916212025, + "venv/lib/python3.13/site-packages/fastapi/_compat/v1.py": 9776181748061371513, + "venv/lib/python3.13/site-packages/jeepney/fds.py": 16573439672758641560, + "venv/lib/python3.13/site-packages/pygments/lexers/go.py": 11118104397271513417, + "venv/lib/python3.13/site-packages/pygments/lexers/_mysql_builtins.py": 16087227298679432006, + "venv/lib/python3.13/site-packages/fastapi/types.py": 3867821246650502267, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_rowcount.py": 6682800584070485197, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/version.py": 6401479036177132374, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_set.py": 534498057184394558, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/modules.py": 9023244176010175562, + "venv/lib/python3.13/site-packages/packaging/metadata.py": 9168255069163141470, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_unique.py": 16285418015531891530, + "frontend/src/lib/toasts.js": 199299975383904134, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_mem_policy.py": 13856626567322091253, + "venv/lib/python3.13/site-packages/attrs/__init__.pyi": 14353885498883901855, + "venv/lib/python3.13/site-packages/pygments/lexers/pascal.py": 5992422120590352714, + "frontend/src/routes/profile/__tests__/profile-preferences.integration.test.js": 6561454515118560091, + "frontend/build/_app/immutable/entry/app.Dr2zsoIX.js": 613407012631171820, + "venv/lib/python3.13/site-packages/numpy/lib/_format_impl.pyi": 15745512451486888537, + "venv/lib/python3.13/site-packages/PIL/PixarImagePlugin.py": 12061717157676819554, + "backend/src/api/routes/__tests__/test_dashboards.py": 14899529124453053148, + "backend/src/models/dataset_review_pkg/__init__.py": 17789694606496652579, + "backend/tests/test_task_persistence.py": 1764267414712263025, + "backend/src/scripts/__init__.py": 5400372851656282343, + "venv/lib/python3.13/site-packages/websockets/speedups.c": 11800200877763464246, + "venv/lib/python3.13/site-packages/git/config.py": 1724894144987553201, + "venv/lib/python3.13/site-packages/httpx/_models.py": 6516278895118988231, + "frontend/src/components/git/useGitManager.js": 5317184945628692154, + "backend/src/core/database.py": 6142911633510653132, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_asfreq.py": 6162659555626011770, + "frontend/e2e/fixtures/auth.fixture.js": 12330457928638392604, + "venv/lib/python3.13/site-packages/greenlet/tests/test_generator_nested.py": 12822240347707346718, + "venv/lib/python3.13/site-packages/passlib/handlers/argon2.py": 835074952952017434, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_apply_relabeling.py": 5600949862632014700, + "venv/lib/python3.13/site-packages/pygments/lexers/amdgpu.py": 17249439604111838979, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_reductions.py": 3575617237516305456, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/processors.cpython-313-x86_64-linux-gnu.so": 18139875206371157315, + "venv/lib/python3.13/site-packages/numpy/_core/_ufunc_config.py": 7365943844063702766, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_copy.py": 12902342280706372953, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/claims.py": 14794441479740527265, + "venv/lib/python3.13/site-packages/numpy/lib/array_utils.py": 18135114588643176359, + "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_des.py": 7198931807116651263, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/lexers/qvt.py": 1895735583818227972, + "venv/lib/python3.13/site-packages/pygments/lexers/cddl.py": 1303059539145221713, + "venv/lib/python3.13/site-packages/pygments/lexers/j.py": 9766594937623918053, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_style.py": 6849613206971398029, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_dt_accessor.py": 2229616362327032253, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/_typing.py": 10524021526716767489, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/emoji.py": 9166774203918731896, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x86_msvc.h": 2465089365642299646, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi": 10548370574281981402, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_engines.py": 2790877023773269276, + "backend/src/api/routes/assistant/_resolvers.py": 1139669723103531814, + "backend/src/services/git/_remote_providers.py": 15093805025432566446, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_frame.py": 2169381747938271444, + "backend/src/services/git/__init__.py": 14011752637167919253, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_logical.py": 6242457515917145500, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_upcast.py": 6496794053681247105, + "venv/lib/python3.13/site-packages/httpcore/_sync/__init__.py": 7676937747094511752, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_isocalendar.py": 5704842983090753914, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_pickle.py": 6232650893735715362, + "backend/src/services/llm_prompt_templates.py": 5706065356933042518, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/cookies.py": 4997226307650350876, + "venv/lib/python3.13/site-packages/pygments/lexers/dax.py": 10868881057512002309, + "venv/lib/python3.13/site-packages/pygments/lexers/nimrod.py": 8457135214131458774, + "venv/lib/python3.13/site-packages/pygments/lexers/hexdump.py": 10665271113239513484, + "venv/lib/python3.13/site-packages/requests/status_codes.py": 17005213506461710202, + "venv/lib/python3.13/site-packages/starlette/responses.py": 14081178833432955042, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_linux.h": 15772978805500070727, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_regression.py": 16266600037241221681, + "venv/lib/python3.13/site-packages/pygments/lexers/rdf.py": 14488319292387226505, + "backend/src/services/clean_release/repositories/approval_repository.py": 15069637305272665109, + "venv/lib/python3.13/site-packages/pandas/_libs/properties.cpython-313-x86_64-linux-gnu.so": 7092136701092358552, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/ddl.py": 5006132143435653867, + "venv/lib/python3.13/site-packages/httpcore/_async/http_proxy.py": 13364803556177997526, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_casting_unittests.py": 18157503533859249155, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/state.py": 10500170103357297551, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/apply.py": 3906017176873949738, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/quantile.py": 17341029201525362074, + "frontend/src/lib/components/dataset-review/ValidationFindingsPanel.svelte": 2403276296409515448, + "venv/lib/python3.13/site-packages/pip/_internal/commands/list.py": 13035925292530461722, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/filewrapper.py": 17786759398959482432, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/filepost.py": 16698380375728063923, + "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/__init__.py": 14268033439436797364, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_mod.f90": 5765181406654284736, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_dtypes.py": 7550022036887594386, + "venv/lib/python3.13/site-packages/pandas/io/stata.py": 14370692318835340323, + "venv/lib/python3.13/site-packages/pygments/lexers/objective.py": 10966124906622044512, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_names.py": 10037208029090713121, + "venv/lib/python3.13/site-packages/greenlet/tests/test_throw.py": 4119265751381210399, + "frontend/e2e/e2e-nohealth.mjs": 5921562935931064381, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/events.py": 7576713358952064464, + "venv/lib/python3.13/site-packages/sqlalchemy/exc.py": 6372950288664776625, + "venv/lib/python3.13/site-packages/pandas/core/computation/scope.py": 16859504937881548797, + "frontend/src/routes/login/+page.svelte": 18430869485200259448, + "frontend/src/services/adminService.js": 6375990585512014277, + "venv/lib/python3.13/site-packages/starlette/middleware/cors.py": 11384893784314197864, + "venv/lib/python3.13/site-packages/pandas/core/sorting.py": 689057022713741051, + "venv/lib/python3.13/site-packages/pandas/core/reshape/tile.py": 17137524194129840833, + "venv/lib/python3.13/site-packages/git/refs/reference.py": 2038789918710608481, + "frontend/src/lib/ui/index.ts": 6883965364006817450, + "frontend/src/routes/translate/+page.svelte": 15284819686967093613, + "venv/lib/python3.13/site-packages/pydantic/mypy.py": 10034028441785588819, + "venv/lib/python3.13/site-packages/numpy/lib/stride_tricks.pyi": 5879290708972838025, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_asfreq.py": 2701081989348180239, + "venv/lib/python3.13/site-packages/greenlet/PyGreenlet.hpp": 6366432579621298231, + "venv/lib/python3.13/site-packages/pandas/io/parquet.py": 14415622950469421518, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_musllinux.py": 2423350951094915747, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/__init__.py": 71159121705871510, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/WHEEL": 1598805043198466373, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_insert.py": 11635164392966270621, + "venv/lib/python3.13/site-packages/pandas/tests/test_aggregation.py": 16863055892192070549, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_iat.py": 3570464615146398178, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_old_ma.py": 18116460138221458026, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_type_check.py": 3935091606923106753, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/schema.py": 8358664670620586363, + "venv/lib/python3.13/site-packages/urllib3/http2/connection.py": 1661620860881397554, + "venv/lib/python3.13/site-packages/cffi/_cffi_include.h": 13094899814611950155, + "venv/lib/python3.13/site-packages/httpx/_utils.py": 4836536051177895209, + "venv/lib/python3.13/site-packages/pip/_internal/index/package_finder.py": 12631116673181479779, + "venv/lib/python3.13/site-packages/pandas/_libs/missing.cpython-313-x86_64-linux-gnu.so": 1990755879067132155, + "frontend/src/lib/components/translate/__tests__/test_correction_cell.svelte.js": 2314051239468628554, + "frontend/build/_app/immutable/assets/AssistantChatPanel.D4L5jlt0.css": 10724144138366384732, + "frontend/build/_app/immutable/chunks/bchWgZ40.js": 11426695936045525423, + "venv/lib/python3.13/site-packages/pandas/core/strings/accessor.py": 14021462534679430426, + "frontend/test-results/translation.e2e.js-Transla-49baf-te-a-translation-job-via-UI-chromium/test-failed-1.png": 5297796663331551625, + "backend/src/services/clean_release/exceptions.py": 14631509303697939633, + "backend/src/services/dataset_review/orchestrator_pkg/_commands.py": 15474996500928063708, + "backend/src/plugins/translate/__tests__/test_orchestrator.py": 5221172340992429147, + "frontend/e2e/tests/git.e2e.js": 5892730242199126550, + "venv/lib/python3.13/site-packages/pygments/lexers/_css_builtins.py": 17478340487186531268, + "frontend/src/lib/stores/__tests__/test_activity.js": 15599963775430388097, + "backend/src/plugins/translate/superset_executor.py": 454191269003159946, + "backend/tests/services/clean_release/test_compliance_task_integration.py": 682622548217611215, + "backend/tests/test_translate_scheduler_guard.py": 13396608843530344156, + "backend/src/models/__init__.py": 13280325675752905975, + "venv/lib/python3.13/site-packages/pygments/lexers/jsonnet.py": 1314044008440065525, + "venv/lib/python3.13/site-packages/pydantic/_internal/_schema_gather.py": 3634138701088855517, + "venv/lib/python3.13/site-packages/starlette/convertors.py": 17839747154274354605, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_types.py": 651959450717569029, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/reshaping.py": 18085648077811502689, + "backend/src/plugins/translate/orchestrator_run_completion.py": 5945172469962331273, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/licenses/AUTHORS": 3558407083075395848, + "frontend/src/routes/datasets/review/[id]/+page.svelte": 3248469759382215571, + "venv/lib/python3.13/site-packages/numpy/core/getlimits.py": 14257687540182552408, + "venv/lib/python3.13/site-packages/PIL/ImageSequence.py": 16459886231802763032, + "backend/src/plugins/storage/plugin.py": 13669428465597027289, + "venv/lib/python3.13/site-packages/numpy/f2py/setup.cfg": 17974180080760231128, + "backend/git_repos/remote/test-repo.git/objects/ae/8d2f5dec5d421b2d6cc1eebaad6d2ef901a90d": 15877648001251681939, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/aws.py": 1364297790170663941, + "venv/lib/python3.13/site-packages/_pytest/warnings.py": 8633394774569709013, + "venv/lib/python3.13/site-packages/_pytest/__init__.py": 3769333500910148571, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_where.py": 16584772339591698754, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_subclass.py": 10949229764696473939, + "frontend/build/_app/immutable/chunks/CA1pzeTf.js": 4029128264487796302, + "backend/git_repos/remote/test-repo.git/objects/22/c0ea49cea7e5138fb91b25b1bc0e101ae6e017": 17630871400599334193, + "venv/lib/python3.13/site-packages/httpx/_config.py": 8800538050293498928, + "venv/lib/python3.13/site-packages/psycopg2/_psycopg.cpython-313-x86_64-linux-gnu.so": 13471342289207537479, + "backend/git_repos/remote/test-repo.git/objects/d8/3fe0db1279ef07c4c4f3de4156a629373b4057": 7507193819578792576, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/METADATA": 13776251749114562660, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_backend.py": 1472021608501071055, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_round_trip.py": 14684057343786032776, + "venv/lib/python3.13/site-packages/PIL/ImImagePlugin.py": 15452956038794399492, + "venv/lib/python3.13/site-packages/yaml/emitter.py": 6036657460416912844, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_pct_change.py": 10313980265441433173, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/padding.py": 7470483648602195268, + "venv/lib/python3.13/site-packages/_pytest/pytester_assertions.py": 1899505062406979663, + "venv/lib/python3.13/site-packages/pip/_internal/models/candidate.py": 3099785363867247334, + "venv/lib/python3.13/site-packages/_pytest/_io/terminalwriter.py": 16852767249156780980, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufunclike.py": 12077553320554633586, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/adapter.py": 5908944827805063108, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_masked.py": 5380551301916549925, + "venv/lib/python3.13/site-packages/pygments/lexers/forth.py": 17623561228839319663, + "frontend/build/_app/immutable/nodes/25.37VWnQhi.js": 8414604631908590137, + "venv/lib/python3.13/site-packages/numpy/random/mtrand.cpython-313-x86_64-linux-gnu.so": 16146459667121787202, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/session.py": 5126234270435358377, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py": 7852235015155694076, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/test_numpy.py": 9825804096508014886, + "venv/lib/python3.13/site-packages/pygments/modeline.py": 6194365452131561478, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/models.py": 3567900447243180991, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js": 10530710876604536879, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix.py": 4440659352851541547, + "venv/lib/python3.13/site-packages/pandas/tests/test_expressions.py": 16378925536309828288, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/conftest.py": 13388202260795998613, + "venv/lib/python3.13/site-packages/annotated_types/test_cases.py": 5123395674810472016, + "venv/lib/python3.13/site-packages/pandas/tests/test_nanops.py": 8709105600366913011, + "venv/lib/python3.13/site-packages/numpy/strings/__init__.pyi": 6213864891045042045, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/styles/_mapping.py": 11752660241391232497, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_drop.py": 11341278355685583133, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/toml.py": 2225382735669153136, + "venv/lib/python3.13/site-packages/numpy/lib/mixins.pyi": 15597536290223628777, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_insert.py": 17383986803728810587, + "venv/lib/python3.13/site-packages/pandas/core/indexers/utils.py": 5861072573716897447, + "venv/lib/python3.13/site-packages/pandas/core/sample.py": 11913688303879867963, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_macosx.h": 3653129798702716366, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_data_list.py": 1131520422778420758, + "venv/lib/python3.13/site-packages/passlib/crypto/_md4.py": 379335134151814809, + "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs.py": 15657897994221955882, + "venv/lib/python3.13/site-packages/pytest/__init__.py": 6137272437722350673, + "venv/lib/python3.13/site-packages/more_itertools/recipes.py": 5254043689078173976, + "backend/src/scripts/clean_release_tui.py": 12384906707876740394, + "backend/src/plugins/llm_analysis/__tests__/test_screenshot_service.py": 17792688368296989200, + "backend/git_repos/remote/test-repo.git/objects/a7/49f11fad695dff77faf1708c7320867d0be1df": 4641609158325033031, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/jwt_bearer.py": 6973859422068490274, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_exceptions.py": 15290185665769490169, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/padding.py": 11244071766694094554, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_scalar.py": 2434773821902319678, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/strategy_options.py": 16342048970907383117, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/libdivide.h": 5314232500579481313, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_masked_matrix.py": 1444179242134203344, + "venv/lib/python3.13/site-packages/pycparser/c_parser.py": 3954138286651284327, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jws_algs.py": 11920621906391796226, + "venv/lib/python3.13/site-packages/packaging/licenses/__init__.py": 15879493360260891293, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_extension.py": 4831602527247293866, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_bin_groupby.py": 14831211659124136806, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23533.f": 12558972205518833024, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_constructors.py": 2786493777737472376, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/pager.py": 18072372651585577904, + "venv/lib/python3.13/site-packages/annotated_doc/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/annotated_types/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pydantic/_internal/_signature.py": 17075003201648027250, + "venv/lib/python3.13/site-packages/numpy/f2py/__init__.py": 7470157159992827389, + "venv/lib/python3.13/site-packages/passlib/handlers/sha2_crypt.py": 8171587560325812664, + "backend/src/schemas/dataset_review_pkg/_dtos.py": 13301885458265748263, + "venv/lib/python3.13/site-packages/numpy/f2py/cb_rules.pyi": 12275242654430570028, + "venv/lib/python3.13/site-packages/pydantic/_internal/_typing_extra.py": 14843908493613991959, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/__init__.py": 4752355175318979033, + "venv/lib/python3.13/site-packages/referencing/exceptions.py": 2535322334430110414, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api_latest.c": 5472633890472031814, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/create.py": 16693261531832306870, + "venv/lib/python3.13/site-packages/authlib/oidc/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/LICENSE": 16174281248426886206, + "venv/lib/python3.13/site-packages/pygments/lexers/ezhil.py": 10294520768762308887, + "frontend/src/components/backups/BackupManager.svelte": 15237659305406789107, + "frontend/src/components/tools/DebugTool.svelte": 17267560034225794881, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_head_tail.py": 13047338070883375426, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timestamps.pyi": 51728851886466199, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_equivalence.py": 17843623343419137458, + "venv/lib/python3.13/site-packages/pandas/core/computation/ops.py": 18250656489649699560, + "venv/lib/python3.13/site-packages/pip/_internal/commands/install.py": 17631777189475433503, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/METADATA": 14180973198574731599, + "venv/lib/python3.13/site-packages/pygments/styles/bw.py": 869630132791421268, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/halffloat.h": 16913381775994652343, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/test_indexing.py": 13703573544185051910, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/expression.py": 1248029135284283479, + "venv/lib/python3.13/site-packages/numpy/_core/lib/pkgconfig/numpy.pc": 14713682399742251335, + "backend/git_repos/remote/test-repo.git/refs/heads/feature/test": 7714224145564125988, + "venv/lib/python3.13/site-packages/jeepney/bindgen.py": 7094585345946943534, + "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/METADATA": 8128818962678047497, + "venv/lib/python3.13/site-packages/numpy/f2py/common_rules.pyi": 2104100025130695295, + "venv/lib/python3.13/site-packages/pyasn1/codec/cer/encoder.py": 3261739474564948330, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/content": 16257335642847993866, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/scalars.pyi": 17683675356659300769, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/publicmod.f90": 2174121054736811903, + "venv/lib/python3.13/site-packages/pandas/tests/libs/test_lib.py": 6721066015604956469, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/base.py": 17992335652981439676, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_box_unbox.py": 7579587620530953711, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_ndarray_backed.py": 10097812802469682233, + "venv/lib/python3.13/site-packages/pygments/lexers/haxe.py": 1915270891525929751, + "venv/lib/python3.13/site-packages/idna/compat.py": 9758194415584776667, + "venv/lib/python3.13/site-packages/pandas/tests/extension/date/array.py": 18073740473413382768, + "venv/lib/python3.13/site-packages/pygments/lexers/hare.py": 8693002231020751711, + "backend/src/models/auth.py.bak": 7050478675360007060, + "docker/backend.entrypoint.sh": 1034669340368151691, + "venv/lib/python3.13/site-packages/passlib/utils/binary.py": 13123975436674239306, + "venv/lib/python3.13/site-packages/jaraco/classes/ancestry.py": 11742194518360056470, + "venv/lib/python3.13/site-packages/attr/_version_info.py": 3850449653182103457, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/windows.py": 16452996247375488034, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/licenses/COPYING": 14459782230785388765, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_select.py": 7083040959665006634, + "venv/lib/python3.13/site-packages/requests/_internal_utils.py": 4091305333167213279, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/__init__.py": 2397613800206300456, + "venv/lib/python3.13/site-packages/numpy/polynomial/laguerre.py": 151202984060101867, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log1p.csv": 16333455295913164408, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_formats.py": 2601044064677727807, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/RECORD": 12733654377842895588, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_initialstub_already_started.py": 5562030563802006923, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/models.py": 15928924478695638423, + "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/test_array_with_attr.py": 6568496539994758985, "venv/lib/python3.13/site-packages/pandas/tests/extension/base/io.py": 11072022722163954973, "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_cov_corr.py": 8117511855230249212, - "backend/git_repos/remote/test-repo.git/refs/heads/master": 12485529318667335076, - "venv/lib/python3.13/site-packages/apscheduler/executors/gevent.py": 17122637996105344344, - "backend/src/services/__tests__/test_llm_prompt_templates.py": 17912427710321938757, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_randomstate.py": 11205714006000849926, - "venv/lib/python3.13/site-packages/numpy/testing/print_coercion_tables.py": 11758491058846790938, - "venv/lib/python3.13/site-packages/jsonschema/_typing.py": 13152346021901861822, - "venv/lib/python3.13/site-packages/numpy/core/defchararray.py": 11371045148957547088, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_stringdtype.py": 8381476847196129074, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_excel.py": 5467043641314706635, - "frontend/build/_app/immutable/nodes/36.ezLH2TGV.js": 8634796778012649005, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/oct_key.py": 11504245602045724, - "backend/src/core/utils/async_network.py": 2763204398131017281, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_mixed.py": 3476101699679108025, - "venv/lib/python3.13/site-packages/authlib/oidc/discovery/models.py": 6924198551176217533, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_old_ma.py": 18116460138221458026, - "venv/lib/python3.13/site-packages/numpy/lib/__init__.pyi": 1537495515469182226, - "venv/lib/python3.13/site-packages/numpy/lib/_arrayterator_impl.py": 4037074830103951000, - "backend/src/api/routes/translate/__init__.py": 6357999798616465776, - "backend/src/services/clean_release/audit_service.py": 3614108458934359126, - "venv/lib/python3.13/site-packages/dotenv/version.py": 13508433229287636267, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/conversion.pyi": 16976386782787920450, - "venv/lib/python3.13/site-packages/sqlalchemy/log.py": 10101221585967121334, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_formats.py": 3525283725314253763, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming.py": 3762934316884129514, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/scope.py": 4096190764836489091, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_common.f": 5913807803369559749, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_comparisons.py": 2764694394636775220, - "venv/lib/python3.13/site-packages/pandas/core/groupby/numba_.py": 15997665748332235683, - "venv/lib/python3.13/site-packages/pandas/io/excel/_xlsxwriter.py": 16873939324418752965, - "venv/lib/python3.13/site-packages/fastapi/requests.py": 14587947416691824903, - "venv/lib/python3.13/site-packages/pandas/tests/io/conftest.py": 5864037534050136837, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/__init__.py": 10470644151952252331, - "venv/lib/python3.13/site-packages/pygments/lexers/erlang.py": 11757064262773184741, - "frontend/src/lib/ui/index.ts": 6883965364006817450, - "venv/lib/python3.13/site-packages/sqlalchemy/future/__init__.py": 17688444679736059779, - "venv/lib/python3.13/site-packages/jeepney/tests/secrets_introspect.xml": 10717038359151125278, - "venv/lib/python3.13/site-packages/pandas/conftest.py": 747626550806435763, - "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/array.py": 13040461386712513615, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_arrow_compat.py": 17818294260710640443, - "venv/lib/python3.13/site-packages/ecdsa/test_ecdh.py": 3338834550392548171, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py3-objarr.npy": 17303060773267383537, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufunclike.py": 12077553320554633586, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_monotonic.py": 11817523305776951162, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_quantile.py": 11966156706220948315, - "venv/lib/python3.13/site-packages/pandas/tests/construction/test_extract_array.py": 3100523370314150013, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_win32_console.py": 18092547253031555768, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ma.pyi": 6467636381637286867, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reindex.py": 16348619731902304844, - "venv/lib/python3.13/site-packages/greenlet/tests/test_weakref.py": 6780204527427742510, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/RECORD": 18314788057673509075, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_scrypt.py": 8106466515670064013, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_python_parser_only.py": 12231449578582108346, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-objarr.npz": 9481735723557962988, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/bulk_persistence.py": 2307818727114646866, - "frontend/src/lib/stores/__tests__/test_sidebar.js": 113566022614194798, - "backend/git_repos/remote/test-repo.git/objects/ae/8d2f5dec5d421b2d6cc1eebaad6d2ef901a90d": 15877648001251681939, - "venv/lib/python3.13/site-packages/_pytest/compat.py": 10046464101087327473, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/__init__.py": 11526998905763262175, - "venv/lib/python3.13/site-packages/attr/_funcs.py": 5302917072419624193, - "venv/lib/python3.13/site-packages/httpcore/_async/interfaces.py": 18250473733460571816, - "frontend/src/routes/settings/settings-utils.js": 4790951495955131309, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_cpp.cpython-313-x86_64-linux-gnu.so": 10263790384087091349, - "backend/src/api/routes/dataset_review_pkg/_dependencies.py": 15939232213193276681, - "backend/git_repos/remote/test-repo.git/hooks/pre-receive.sample": 6118492409684431911, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_tolist.py": 8343058000369672317, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/random/bit_generator.cpython-313-x86_64-linux-gnu.so": 2574035311375507054, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log.csv": 221209423454319618, - "venv/lib/python3.13/site-packages/pygments/styles/gh_dark.py": 7717523746712391809, - "venv/lib/python3.13/site-packages/fastapi/security/http.py": 8465565118555441408, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_log_render.py": 18076931145915444473, - "venv/lib/python3.13/site-packages/authlib/consts.py": 14226604841596736870, - "venv/lib/python3.13/site-packages/jose/jwt.py": 3405491994268385178, - "frontend/src/lib/components/reports/ReportCard.svelte": 13714680961668469204, - "frontend/src/routes/settings/LoggingSettings.svelte": 1737218883899664063, - "venv/lib/python3.13/site-packages/starlette/middleware/wsgi.py": 12506262030845301606, - "venv/lib/python3.13/site-packages/pydantic/v1/mypy.py": 17076910404409672245, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_shift.py": 9952689832827833247, - "venv/lib/python3.13/site-packages/pygments/lexers/ruby.py": 6898093948224302592, - "venv/lib/python3.13/site-packages/pydantic/main.py": 14086938579850319884, - "venv/lib/python3.13/site-packages/rapidfuzz/__pyinstaller/__init__.py": 1229691061011958769, - "frontend/build/_app/immutable/nodes/33.iYr8xRUi.js": 4371667319710520041, - "venv/lib/python3.13/site-packages/rsa/prime.py": 10820898885044917095, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_utils.py": 4612923732868929770, - "frontend/e2e/tests/smoke.e2e.js": 11130903009452044456, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-exp.csv": 601782991752922510, - "venv/lib/python3.13/site-packages/pip/_internal/cli/status_codes.py": 9143625681947330756, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/styles/__init__.py": 9482393721453335937, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_scalar_compat.py": 10068989979144965125, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/functions.py": 16567226076808693246, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/index.py": 15694995431926521471, - "venv/lib/python3.13/site-packages/git/objects/submodule/__init__.py": 12958523219496107878, - "venv/lib/python3.13/site-packages/_pytest/monkeypatch.py": 2635774457434545573, - "venv/lib/python3.13/site-packages/numpy/_core/shape_base.py": 3996519099530770308, - "venv/lib/python3.13/site-packages/pygments/lexers/usd.py": 934820244673741695, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/flow_control.py": 4822804840057360506, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_empty.py": 13006241382741353569, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_protocols.py": 5019018645804313814, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_store.py": 1500300322083708794, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/timeout.py": 1807228452024740476, - "venv/lib/python3.13/site-packages/numpy/lib/_npyio_impl.pyi": 6576645822227068922, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc64_aix.h": 8706347224105630468, - "venv/lib/python3.13/site-packages/apscheduler/triggers/combining.py": 1264860868414723829, - "venv/lib/python3.13/site-packages/numpy/ma/__init__.py": 214772578978182427, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_dtypes.py": 13065857166166716628, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/strings.pyi": 15361498560917514616, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/unitofwork.py": 3177255974394221645, - "venv/lib/python3.13/site-packages/pandas/core/groupby/indexing.py": 18009437216172136227, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize_cpp.cpython-313-x86_64-linux-gnu.so": 7490281502544276964, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_to_timestamp.py": 17572983799929378095, - "venv/lib/python3.13/site-packages/fastapi/params.py": 14263655860695381481, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arraypad.pyi": 12178766981280242620, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rename.py": 4890779493250245903, - "venv/lib/python3.13/site-packages/ecdsa/test_curves.py": 6577762025900435885, - "venv/lib/python3.13/site-packages/pandas/tests/base/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/backend.py": 9072112660082423691, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_unary.py": 7128845965976836334, - "venv/lib/python3.13/site-packages/pygments/lexers/ooc.py": 14540210212631538007, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_mem_policy.py": 13856626567322091253, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/block_docstring/foo.f": 2489756567993745076, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/type_api.py": 10299750173867399533, - "venv/lib/python3.13/site-packages/pygments/styles/stata_light.py": 16319330015324455277, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/licenses/LICENSE": 6808958893921859106, - "venv/lib/python3.13/site-packages/jaraco/classes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/main.py": 13711402795965346761, - "venv/lib/python3.13/site-packages/keyring/devpi_client.py": 3445890176686211982, - "venv/lib/python3.13/site-packages/attr/setters.py": 12467854389745942025, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/abc.py": 6227782083136374888, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/mt19937-testset-1.csv": 16349400027062875699, - "backend/git_repos/remote/test-repo.git/hooks/prepare-commit-msg.sample": 7530253302780245896, - "frontend/build/_app/immutable/nodes/24.CSPGrWA3.js": 869128617737549280, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/interfaces.py": 4890958419958257958, - "venv/lib/python3.13/site-packages/requests/models.py": 9104898985870652256, - "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/__init__.py": 3521833849634327520, - "backend/src/services/git/__init__.py": 14011752637167919253, - "venv/lib/python3.13/site-packages/pandas/core/arrays/floating.py": 1215586266958421991, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_tz_convert.py": 13349243029437881949, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_factorize.py": 17995673140216929494, - "venv/lib/python3.13/site-packages/pygments/lexers/ecl.py": 12886695201994337568, - "venv/lib/python3.13/site-packages/click/formatting.py": 6694583529073729642, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/__init__.py": 2833016678144975576, - "venv/lib/python3.13/site-packages/fastapi/middleware/httpsredirect.py": 5775982317459922443, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/package_data.py": 3078502124870585867, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_strptime.py": 14328510310436552635, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_constructors.py": 2439700578107653984, - "venv/lib/python3.13/site-packages/pygments/styles/sas.py": 12363791134941577382, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py": 18229054440703471493, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufuncs.pyi": 1808147181379894521, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE": 16499431172938528491, - "venv/lib/python3.13/site-packages/keyring/backends/null.py": 12740996416911604870, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/region.py": 12579403230062395563, - "venv/lib/python3.13/site-packages/multipart/decoders.py": 11346752866822986212, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix_py.py": 17041764258638228993, - "venv/lib/python3.13/site-packages/keyring/completion.py": 1027436016070040568, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/INSTALLER": 17282701611721059870, - "dist/docker/ss-tools.1.1.0.tar.xz": 14627825683119220800, - "venv/lib/python3.13/site-packages/starlette/_utils.py": 8384087194580626069, - "frontend/src/routes/admin/roles/+page.svelte": 1343040884276845574, - "frontend/build/_app/immutable/chunks/B19Q4MUf.js": 8384959676363720729, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_sorting.py": 8944017570338511677, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/oauth1_session.py": 1911069558956893789, - "venv/lib/python3.13/site-packages/git/objects/fun.py": 15014209679156260865, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexer.py": 14400766876373764268, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_string.py": 9224234539232195189, - "backend/src/api/routes/dashboards/_schemas.py": 10686942001147126057, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/sync_app.py": 14788764260762890368, - "venv/lib/python3.13/site-packages/yaml/scanner.py": 8554164423030397366, - "venv/lib/python3.13/site-packages/cryptography/__init__.py": 641702726372647770, - "venv/lib/python3.13/site-packages/httpcore/_async/socks_proxy.py": 9026788710898138090, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/hooks.py": 8580161128344266243, - "venv/lib/python3.13/site-packages/pygments/lexers/apl.py": 16767474673619335683, - "backend/src/api/routes/translate/_router.py": 4164547666727936398, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py": 6712732248328458871, - "backend/git_repos/remote/test-repo.git/objects/e9/1109abe29d5228675fecd6fc38a097147c090d": 15716642455993350072, - "venv/lib/python3.13/site-packages/jeepney/bus_messages.py": 5871341372541525842, - "venv/lib/python3.13/site-packages/websockets/streams.py": 15786581670248099415, - "venv/lib/python3.13/site-packages/numpy/_core/numeric.py": 12261531924304979741, - "venv/lib/python3.13/site-packages/numpy/_distributor_init.pyi": 1308368231471324581, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_asof.py": 8656532774394927388, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_series.py": 2980850649986213051, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/compiler.py": 13924519162400330589, - "venv/lib/python3.13/site-packages/websockets/sync/server.py": 7966978001578584901, - "venv/lib/python3.13/site-packages/pydantic/v1/main.py": 213087273729911492, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_legend.py": 13094583566764796297, - "venv/lib/python3.13/site-packages/psycopg2/_range.py": 7184417109068014771, - "venv/lib/python3.13/site-packages/PIL/Hdf5StubImagePlugin.py": 15654153796225833950, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE.BSD": 3858254215169937333, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_indexing.py": 5910217172351020811, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/philox-testset-2.csv": 7063857529719738394, - "venv/lib/python3.13/site-packages/numpy/polynomial/polynomial.py": 7658234162211356265, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_analytics.py": 8155550493311083506, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arraymethod.py": 14421188237635557797, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/profiling.py": 16030397164203895281, - "venv/lib/python3.13/site-packages/sqlalchemy/util/tool_support.py": 4926732415520779988, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/request.py": 10492090878715126550, - "venv/lib/python3.13/site-packages/pip/_internal/commands/list.py": 13035925292530461722, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64-testset-1.csv": 16078879475693341404, - "venv/lib/python3.13/site-packages/numpy/polynomial/chebyshev.py": 1590647503660777156, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_timestamp_method.py": 11393911418463808195, - "venv/lib/python3.13/site-packages/numpy/random/_common.pyi": 5094115692952609118, - "venv/lib/python3.13/site-packages/keyring/credentials.py": 14515496037842724455, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_equals.py": 11041884432990762650, - "venv/lib/python3.13/site-packages/_pytest/logging.py": 10972553724755511468, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_engines.py": 2790877023773269276, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/hook-numpy.pyi": 14233146512272397376, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_freq_attr.py": 7685756734926749093, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_masked.py": 5380551301916549925, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/dynamic.py": 15220116196072524330, - "venv/lib/python3.13/site-packages/PIL/IptcImagePlugin.py": 14329453455296600824, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/__init__.py": 3619091571279924576, - "venv/lib/python3.13/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz": 17626265752554406355, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/version.py": 6401479036177132374, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/constructors.py": 7587476800569414769, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/RECORD": 7844752443022514265, - "venv/lib/python3.13/site-packages/numpy/lib/user_array.py": 14003456655595459585, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dot.py": 16876560325283070437, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_indexing.py": 546024765756472196, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_comment.py": 5603075924832933306, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/connection.py": 5582413226288987808, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_slp_switch.py": 16490710972475154509, - "venv/lib/python3.13/site-packages/numpy/core/_utils.py": 14108063453670701289, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_unicode_ddl.py": 2569618488804767890, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/strategy_options.py": 16342048970907383117, - "venv/lib/python3.13/site-packages/PIL/PngImagePlugin.py": 5076219228736706283, - "venv/lib/python3.13/site-packages/charset_normalizer/legacy.py": 1706599349563920562, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/METADATA": 11439969143853665311, - "frontend/src/lib/stores/__tests__/mocks/state.js": 3616783395254238777, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/dtype.py": 9342837412280377086, - "venv/lib/python3.13/site-packages/numpy/_core/printoptions.py": 3897105663572772838, - "venv/lib/python3.13/site-packages/authlib/common/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_case_when.py": 4133174129660834805, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mariadb.py": 3109042476851791996, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/websockets/extensions/base.py": 2457233337788783873, - "venv/lib/python3.13/site-packages/gitdb/test/test_example.py": 3039934065817753241, - "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/unrolled.py": 12651425412640834530, - "frontend/src/routes/login/+page.svelte": 18430869485200259448, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/adapters.py": 2224938661429637508, - "venv/lib/python3.13/site-packages/numpy/_typing/_extended_precision.py": 4201820494689784136, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_constructors.py": 9478848417896027917, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq.py": 13853220736499979380, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_factorize.py": 861897342553280506, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_repeat.py": 16971624301893342868, - "venv/lib/python3.13/site-packages/httpx/_config.py": 8800538050293498928, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_multi.py": 4612816468258071810, - "venv/lib/python3.13/site-packages/sqlalchemy/util/typing.py": 17638587764345605306, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/hstore.py": 9700253004947691961, - "venv/lib/python3.13/site-packages/pygments/lexers/savi.py": 95400050302239274, - "venv/lib/python3.13/site-packages/pygments/lexers/parasail.py": 7758704230750989282, - "venv/bin/pyrsa-encrypt": 5858278204727417482, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/METADATA": 2810323639884879396, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_arithmetic.py": 17043958604607035425, - "venv/lib/python3.13/site-packages/pandas/io/formats/css.py": 11288129826285529457, - "frontend/src/components/git/GitWorkspacePanel.svelte": 15810952071932060330, - "frontend/build/_app/immutable/nodes/7.DpRF6JXW.js": 11481132326681627493, - "backend/src/core/task_manager/context.py": 17543992255093146942, - "backend/src/api/routes/dashboards/_projection.py": 1559143255780155174, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_size.py": 8527839563560550806, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_get_value.py": 389530025760539462, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/py.typed": 9796674040111366709, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_index_as_string.py": 292438690259156869, - "venv/lib/python3.13/site-packages/attr/exceptions.py": 11532465891810816417, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/auth.py": 912521029864094489, - "venv/lib/python3.13/site-packages/_pytest/config/compat.py": 13175516717549204627, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/__init__.py": 9997757256282720103, - "venv/lib/python3.13/site-packages/numpy/fft/__init__.py": 9343449448737026658, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_skiprows.py": 8764515842253490735, - "venv/lib/python3.13/site-packages/charset_normalizer/md__mypyc.cpython-313-x86_64-linux-gnu.so": 12629680116730190225, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/shared.py": 1162754506656505196, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/__init__.py": 13331622784664204066, - "venv/lib/python3.13/site-packages/cffi/pkgconfig.py": 16057517851163939571, - "venv/lib/python3.13/site-packages/itsdangerous/url_safe.py": 13454753900702274266, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/recfunctions.py": 18330899924171767482, - "venv/lib/python3.13/site-packages/numpy/f2py/symbolic.py": 16854377502491291093, - "venv/lib/python3.13/site-packages/git/exc.py": 14278238357119816365, - "frontend/e2e/tests/settings.e2e.js": 14741334477359695649, - "venv/lib/python3.13/site-packages/uvicorn/protocols/utils.py": 6147480543268737542, - "frontend/src/lib/components/translate/__tests__/test_translation_preview.svelte.js": 15091004230843271151, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_conversion_utils.py": 1567199588622767277, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_compression.py": 8061288329598682752, - "venv/lib/python3.13/site-packages/attr/_cmp.pyi": 14443711863388606665, - "venv/lib/python3.13/site-packages/pydantic/_internal/_forward_ref.py": 10623110912945011703, - "venv/lib/python3.13/site-packages/ecdsa/ecdh.py": 12596317261561755793, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/asymmetric_key.py": 14948661854506285135, - "venv/lib/python3.13/site-packages/pygments/lexers/berry.py": 4540479522141160472, - "venv/lib/python3.13/site-packages/httpcore/_backends/__init__.py": 15130871412783076140, - "frontend/src/routes/tools/backups/+page.svelte": 6796050751535238723, - "venv/lib/python3.13/site-packages/numpy/lib/_stride_tricks_impl.pyi": 9243829615414967057, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_laguerre.py": 7475592201750602042, - "backend/src/api/routes/assistant/_dataset_review.py": 14508672919199309579, - "venv/lib/python3.13/site-packages/pandas/tests/test_flags.py": 411845322592830527, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/resolver.py": 9931394693284776391, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS": 17022185907188244883, - "backend/src/plugins/translate/dictionary_correction.py": 18051915404774774954, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/licenses/LICENSE.PSF": 13208428090829817329, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/_version.py": 15336513445621042105, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_cisco.py": 1786475632318043669, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/__init__.py": 15130871412783076140, - "backend/src/services/dataset_review/semantic_resolver.py": 8447496149691924829, - "frontend/src/routes/settings/MigrationMappingsTable.svelte": 4467573699012255407, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_fillna.py": 4610666845291315333, - "venv/lib/python3.13/site-packages/pip/_internal/operations/check.py": 16650663913976953800, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/resource_protector.py": 9147671710440653567, - "venv/lib/python3.13/site-packages/pygments/styles/xcode.py": 14124729477757765388, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/processors.cpython-313-x86_64-linux-gnu.so": 18139875206371157315, - "venv/lib/python3.13/site-packages/pip/_internal/network/download.py": 5256731341219268693, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/engines.py": 10876954465293959720, - "backend/src/models/dataset_review.py": 5814500849969423218, - "venv/lib/python3.13/site-packages/pygments/lexers/grammar_notation.py": 9009644754106884095, - "venv/lib/python3.13/site-packages/urllib3/http2/probe.py": 4069929463671970243, - "venv/lib/python3.13/site-packages/cffi/recompiler.py": 17809252277700094304, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/__init__.py": 5895297076117159245, - "venv/lib/python3.13/site-packages/numpy/polynomial/hermite.py": 6617116180936986481, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_map.py": 32086858815359344, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/__init__.py": 11157967642611612522, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/signals.py": 13677199634497673845, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/vectorized.cpython-313-x86_64-linux-gnu.so": 5441755022198996487, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_io.py": 4199750143323741326, - "venv/lib/python3.13/site-packages/pandas/io/parquet.py": 14415622950469421518, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/METADATA": 3643456577199395707, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/contains.py": 3098087827310439993, - "venv/lib/python3.13/site-packages/numpy/linalg/tests/__init__.py": 15130871412783076140, - "backend/src/api/routes/dashboards/_listing_routes.py": 1750634467656242702, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/__init__.py": 8632038387100622009, - "venv/lib/python3.13/site-packages/numpy/dtypes.py": 14128421398870718692, - "venv/lib/python3.13/site-packages/numpy/random/_philox.pyi": 7503018432880404291, - "frontend/src/lib/components/health/PolicyForm.svelte": 16556369076015031814, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_clipboard.py": 12674078499544938252, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/lambdas.py": 13377298868598623228, - "venv/lib/python3.13/site-packages/pygments/lexers/ml.py": 7510453371068494792, - "backend/src/services/clean_release/repositories/artifact_repository.py": 9040122866024534865, - "backend/src/plugins/translate/_llm_call.py": 698303364119968671, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_round.py": 9358309072340573675, - "venv/lib/python3.13/site-packages/secretstorage/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/jose/constants.py": 10880650415673457194, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_alter_axes.py": 11338712836362534969, - "backend/src/api/routes/tasks.py": 14935470445091298678, - "venv/lib/python3.13/site-packages/tzlocal/unix.py": 995019116408448073, - "venv/lib/python3.13/site-packages/pycparser/c_ast.py": 5942107079119742, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/tornado.py": 6491136785917169991, - "venv/lib/python3.13/site-packages/greenlet/tests/__init__.py": 1181423074160870921, - "venv/lib/python3.13/site-packages/_pytest/fixtures.py": 1442767529726551116, - "venv/lib/python3.13/site-packages/numpy/_core/_multiarray_tests.cpython-313-x86_64-linux-gnu.so": 442168371609469538, - "venv/lib/python3.13/site-packages/numpy/_core/strings.py": 3623885046208831106, - "venv/lib/python3.13/site-packages/jeepney/auth.py": 10565040329507087892, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_period.py": 15671388508498441412, - "frontend/test-results/translation.e2e.js-Transla-49baf-te-a-translation-job-via-UI-chromium/video.webm": 3868075359950286684, - "venv/lib/python3.13/site-packages/httpcore/_sync/http_proxy.py": 14037211594707072958, - "venv/lib/python3.13/site-packages/pygments/lexers/_sourcemod_builtins.py": 11809503654078535014, - "venv/lib/python3.13/site-packages/pandas/tests/test_col.py": 14781555956509956371, - "venv/lib/python3.13/site-packages/pandas/io/formats/info.py": 215303194287834907, - "venv/lib/python3.13/site-packages/cryptography/x509/verification.py": 1079694784860492682, - "venv/lib/python3.13/site-packages/ecdsa/__init__.py": 6237633580090653788, - "venv/lib/python3.13/site-packages/fastapi/middleware/asyncexitstack.py": 7733356903092860495, - "venv/lib/python3.13/site-packages/psycopg2/extras.py": 7510107741729866600, - "venv/lib/python3.13/site-packages/click/termui.py": 7022374827798605437, - "frontend/src/lib/stores/taskDrawer.js": 6659505033581293370, - "frontend/build/_app/env.js": 8815854342083926790, - "backend/src/models/__init__.py": 13280325675752905975, - "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_regression.py": 5652583095949741238, - "venv/lib/python3.13/site-packages/PIL/GimpPaletteFile.py": 2040459799887417392, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/resource_protector.py": 17080006010679257864, - "venv/lib/python3.13/site-packages/pygments/lexers/_scheme_builtins.py": 5722444920479775453, - "venv/lib/python3.13/site-packages/anyio/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_constructors.py": 979131987837682435, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_file_buffer_url.py": 15377043158761455858, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_elements_constructors.py": 9279447066034364952, - "venv/lib/python3.13/site-packages/pandas/tests/extension/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/keyring/__init__.py": 991260689223167957, - "venv/lib/python3.13/site-packages/pandas/io/parsers/c_parser_wrapper.py": 5841064965672872661, - "venv/lib/python3.13/site-packages/pygments/formatters/svg.py": 11686316844190214147, - "backend/src/services/clean_release/repositories/manifest_repository.py": 12395698948312301073, - "venv/lib/python3.13/site-packages/numpy/random/lib/libnpyrandom.a": 1802449692091040396, - "venv/lib/python3.13/site-packages/anyio/streams/memory.py": 11762722143503428823, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_pickle.py": 3419420815386925630, - "venv/lib/python3.13/site-packages/pydantic/type_adapter.py": 10162988530225478692, - "venv/lib/python3.13/site-packages/pygments/lexers/openscad.py": 13045825115225232396, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/progress_bar.py": 15595912766961891283, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_join.py": 1131792466825856990, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_interpolate.py": 7354685880215444946, - "venv/lib/python3.13/site-packages/certifi/__init__.py": 9045580998764948967, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_clearing_run_switches.py": 3020294789560975101, - "venv/lib/python3.13/site-packages/fastapi/_compat/v1.py": 9776181748061371513, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/__init__.py": 13749066369790839334, - "venv/lib/python3.13/site-packages/annotated_types/__init__.py": 7367790549779882749, - "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/okp_key.py": 10312614562914096039, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_raises.py": 9678418010293693275, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_textreader.py": 388955620768371652, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_setops.py": 5208912445718807372, - "venv/lib/python3.13/site-packages/pandas/core/methods/describe.py": 17006836623161521092, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/asyncio.py": 11442130378027628520, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_multi_thread.py": 5660352470978621226, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix_py.py": 6653895521961110080, - "venv/lib/python3.13/site-packages/websockets/legacy/framing.py": 12759022769700230409, - "venv/lib/python3.13/site-packages/jsonschema/_types.py": 9250091433305395923, - "venv/lib/python3.13/site-packages/starlette/_exception_handler.py": 9892172656847200124, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/RECORD": 17985800801793506250, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/hooks.py": 9888227370911151341, - "venv/lib/python3.13/site-packages/numpy/conftest.py": 8971879716683736515, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/ddl.py": 5006132143435653867, - "venv/lib/python3.13/site-packages/pygments/lexers/bdd.py": 5389493859905397060, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler.pyi": 9003794318682878317, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_arithmetics.py": 16527169124402715210, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi": 3893434234020223151, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/licenses/LICENSE": 11199044866758471950, - "backend/src/core/superset_client/_base.py": 17832258524611728315, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_style.py": 6849613206971398029, - "venv/lib/python3.13/site-packages/websockets/client.py": 5229500079651465772, - "venv/lib/python3.13/site-packages/pip/_internal/commands/install.py": 17631777189475433503, - "venv/lib/python3.13/site-packages/httpx/_transports/asgi.py": 12335675489870745729, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufuncs.pyi": 14995898537484305307, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f77fixedform.f95": 10898637805043867370, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/__init__.py": 6654484356035994666, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py": 15294662527620994511, - "venv/lib/python3.13/site-packages/certifi/core.py": 7472627735517449185, - "venv/lib/python3.13/site-packages/jeepney/io/tests/test_blocking.py": 6312017389529916004, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_dists.py": 16746363359320577809, - "venv/lib/python3.13/site-packages/numpy/lib/array_utils.pyi": 14646405559193539455, - "venv/lib/python3.13/site-packages/numpy/lib/mixins.pyi": 15597536290223628777, - "venv/lib/python3.13/site-packages/pandas/core/internals/blocks.py": 6448406236246476333, - "venv/lib/python3.13/site-packages/pillow.libs/libjpeg-32d42e18.so.62.4.0": 11717944412021329207, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_rank.py": 5398520257852104723, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/errors.py": 16711622442922413520, - "venv/lib/python3.13/site-packages/pip/_internal/models/target_python.py": 422323125651848065, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/util.pyx": 649821942746469002, - "venv/lib/python3.13/site-packages/websockets/legacy/server.py": 5390090919193784186, - "venv/lib/python3.13/site-packages/git/objects/tree.py": 10239027037919781330, - "venv/lib/python3.13/site-packages/pycparser/yacctab.py": 18018314512916353707, - "venv/lib/python3.13/site-packages/passlib/handlers/des_crypt.py": 15304795681178011265, - "backend/src/services/notifications/providers.py": 5844970860921555598, - "backend/conftest.py": 16521922883434363388, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/provision.py": 7362363963464621570, - "venv/lib/python3.13/site-packages/pygments/lexers/urbi.py": 1611762607688882372, - "venv/lib/python3.13/site-packages/pygments/formatters/pangomarkup.py": 17135620955205945255, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_initialstub_already_started.py": 5562030563802006923, - "venv/lib/python3.13/site-packages/pygments/lexers/go.py": 11118104397271513417, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_drop_duplicates.py": 5874427993953991216, - "venv/lib/python3.13/site-packages/pandas/core/indexes/category.py": 18192569199634406001, - "frontend/src/lib/components/health/HealthMatrix.svelte": 13165441444996153191, - "venv/lib/python3.13/site-packages/passlib/tests/test_apache.py": 12515001998770565375, - "backend/tests/services/clean_release/test_approval_service.py": 8359796700245201345, - "venv/lib/python3.13/site-packages/numpy/random/_examples/numba/extending_distributions.py": 209769687436320665, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/funcfortranname.pyf": 1361426175133186231, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_freq_code.py": 13758353172962109140, - "venv/lib/python3.13/site-packages/websockets/connection.py": 5168795926684067030, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/state.py": 10500170103357297551, - "frontend/src/lib/components/reports/__tests__/report_card.ux.test.js": 14899927226278257748, - "venv/lib/python3.13/site-packages/pandas/io/api.py": 8275376846208437741, - "backend/src/api/routes/dashboards/_detail_routes.py": 12522696473630508473, - "venv/lib/python3.13/site-packages/pygments/lexers/_mapping.py": 12987629396101138833, - "frontend/src/routes/dashboards/[id]/components/DashboardLinkedResources.svelte": 8279080994517688482, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8693/__init__.py": 11065844267208884531, - "venv/lib/python3.13/site-packages/smmap/test/lib.py": 2924931247676024085, - "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_enc_cryptodome.py": 15753279711312689193, - "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/jsonschema_specifications/tests/test_jsonschema_specifications.py": 12693210357718751894, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/cookies.py": 4997226307650350876, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi": 4376871621615688626, - "venv/lib/python3.13/site-packages/pandas/core/window/online.py": 13551140636252302201, - "venv/lib/python3.13/site-packages/multipart/multipart.py": 26386459953377432, - "venv/lib/python3.13/site-packages/pygments/lexers/resource.py": 8057351545636349791, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/base.py": 7855217087916771270, - "venv/lib/python3.13/site-packages/pip/_internal/network/lazy_wheel.py": 12936988990566680659, - "venv/lib/python3.13/site-packages/pandas/_libs/join.pyi": 369262334342439364, - "venv/lib/python3.13/site-packages/pandas/io/excel/_odfreader.py": 2760916559416783928, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata.py": 2021612995853910808, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/common/gh19161.f90": 7691871466158049079, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_day.py": 6371851881186970754, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_encoding.py": 6622474614967398246, - "backend/src/plugins/__init__.py": 17194112070692432889, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libssl-81ffa89e.so.3": 13913673119166658781, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/LICENSE": 16174281248426886206, - "venv/lib/python3.13/site-packages/numpy/_core/fromnumeric.py": 9409852116555866847, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_array.f90": 9711940829820746513, - "venv/lib/python3.13/site-packages/passlib/utils/handlers.py": 10182859005870689026, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_cross.py": 17742712348672218852, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_ddl.py": 3690189094298044728, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/python.py": 17886036670342116501, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ma.py": 15912582628112164509, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_reflection.py": 10520778598547003532, - "frontend/src/types/dashboard.ts": 9718666955722367566, - "frontend/build/_app/immutable/chunks/tONMA49r.js": 7570814772386244995, - "frontend/src/components/git/BranchSelector.svelte": 12975425183125935169, - "backend/src/api/routes/__tests__/test_git_status_route.py": 11848061697215496182, - "backend/src/services/superset_lookup_service.py": 16520439978260397080, - "backend/src/plugins/translate/__tests__/test_dictionary_import.py": 7271610466914322056, - "venv/lib/python3.13/site-packages/pygments/lexers/algebra.py": 9651893228421050246, - "backend/src/api/routes/translate/_metrics_routes.py": 13468336445030118059, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/highlighter.py": 10615901258492570740, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/distributions.h": 17162252287980242413, - "venv/lib/python3.13/site-packages/pyasn1/codec/ber/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/pandas/io/json/_normalize.py": 15938855324762935595, - "venv/lib/python3.13/site-packages/httpcore/_sync/socks_proxy.py": 4418971149260853240, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/io/sas/sas7bdat.py": 17851617851457266799, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel.pyi": 16372699564794732463, - "venv/lib/python3.13/site-packages/passlib/tests/test_context.py": 15195609282700801214, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_repeat.py": 18394463352314692642, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/fastapi/middleware/wsgi.py": 3706578020491442104, - "venv/lib/python3.13/site-packages/pandas/core/computation/engines.py": 1889823242704769952, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_replace.py": 18039668944453454689, - "venv/lib/python3.13/site-packages/pydantic/plugin/_loader.py": 792663962985957671, - "venv/lib/python3.13/site-packages/pygments/lexers/_julia_builtins.py": 8846111188795315103, - "venv/lib/python3.13/site-packages/numpy/strings/__init__.pyi": 6213864891045042045, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_algos.py": 5356470832688354593, - "venv/lib/python3.13/site-packages/numpy/lib/_scimath_impl.py": 14696841109142419143, - "backend/src/api/routes/git/_gitea_routes.py": 14644218433873522624, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/bitwise_ops.pyi": 751490187478960891, - "venv/lib/python3.13/site-packages/numpy/_core/_exceptions.pyi": 3661113433078225952, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/astype_copy.pkl": 4470155972891419163, - "venv/lib/python3.13/site-packages/pandas/_libs/lib.cpython-313-x86_64-linux-gnu.so": 6452315003728497116, - "venv/lib/python3.13/site-packages/git/objects/submodule/util.py": 8621897576747443758, - "venv/lib/python3.13/site-packages/urllib3/_base_connection.py": 14495079097019980154, - "venv/lib/python3.13/site-packages/pandas/io/json/__init__.py": 12333505155070172626, - "venv/lib/python3.13/site-packages/numpy/tests/test_ctypeslib.py": 9592016432737074765, - "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/fields.py": 8923326131649837922, - "venv/lib/python3.13/site-packages/pydantic/_internal/_validators.py": 2939255306814626438, - "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/nditer.pyi": 2351219156711800159, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/file_proxy.py": 17695135735211897444, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_casting_floatingpoint_errors.py": 4301355720042319835, - "venv/lib/python3.13/site-packages/referencing/_core.py": 14744795336121513230, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_ndarray.py": 6863874753941288585, - "venv/lib/python3.13/site-packages/greenlet/tests/test_stack_saved.py": 7767924647054186572, - "venv/lib/python3.13/site-packages/pandas/io/iceberg.py": 13137128885014736233, - "venv/lib/python3.13/site-packages/pandas/core/reshape/encoding.py": 12702053687535473061, - "backend/src/services/clean_release/compliance_orchestrator.py": 10585043190405940115, - "venv/lib/python3.13/site-packages/fastapi/exceptions.py": 12665775976182239091, - "venv/lib/python3.13/site-packages/_pytest/timing.py": 14080119171718125986, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_legendre.py": 18266595775500927868, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/database.py": 7111764828004587758, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion": 2607512361823362698, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_astype.py": 4854809596041987380, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_dtypes.py": 7550022036887594386, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_equals.py": 9405821443172167066, - "venv/lib/python3.13/site-packages/passlib/crypto/_md4.py": 379335134151814809, - "venv/lib/python3.13/site-packages/passlib/tests/test_apps.py": 10454136535890937237, - "venv/lib/python3.13/site-packages/pygments/lexers/julia.py": 13516407944275342328, - "venv/lib/python3.13/site-packages/numpy/lib/format.py": 14971167445246135440, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_polybase.pyi": 3404315099794022355, - "venv/lib/python3.13/site-packages/passlib/tests/test_totp.py": 9150389741890748343, - "venv/lib/python3.13/site-packages/authlib/common/encoding.py": 52296066492753953, - "venv/lib/python3.13/site-packages/numpy/lib/scimath.pyi": 18165025261847276375, - "docker/backend.entrypoint.sh": 3113473166911458895, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py": 3960540415600165213, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_pairwise.py": 2673370322448160842, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_masm.asm": 16630507336149184509, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/filepost.py": 16698380375728063923, - "venv/lib/python3.13/site-packages/PIL/SpiderImagePlugin.py": 12234762087257163606, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_put.py": 8547660958963625817, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_dtypes.py": 481191723198819568, - "venv/lib/python3.13/site-packages/numpy/testing/__init__.py": 2831275254313750978, - "venv/lib/python3.13/site-packages/pandas/tests/util/conftest.py": 11143177766735481660, - "frontend/src/lib/stores/__tests__/test_activity.js": 15599963775430388097, - "venv/lib/python3.13/site-packages/urllib3/_request_methods.py": 13671055114247516883, - "frontend/build/_app/immutable/chunks/iUWBOIA7.js": 17929809282036781253, - "backend/git_repos/remote/test-repo.git/objects/59/3a37acec7d2bddce10df90ab17bc9ede52e523": 1117161574576783985, - "venv/lib/python3.13/site-packages/authlib/common/security.py": 2291133227104016684, - "venv/lib/python3.13/site-packages/pygments/styles/paraiso_light.py": 15941591873059208999, - "frontend/src/lib/stores/__tests__/mocks/stores.js": 14098417748659067309, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_quantile.py": 17110581927381599978, - "venv/lib/python3.13/site-packages/pygments/styles/zenburn.py": 1031869867933871309, - "venv/lib/python3.13/site-packages/pandas/core/arrays/base.py": 664515424699746697, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/__init__.py": 1856412417337875350, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/provider.py": 16463243654123731993, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_drop_duplicates.py": 12601598844977346213, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_observance.py": 18178414966262524534, - "venv/lib/python3.13/site-packages/numpy/testing/_private/extbuild.pyi": 18253950285509265097, - "venv/lib/python3.13/site-packages/typing_inspection/introspection.py": 13916695705179237047, - "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/METADATA": 3188324716322823755, - "venv/lib/python3.13/site-packages/urllib3/util/retry.py": 17988032431204662756, - "venv/lib/python3.13/site-packages/pygments/lexers/rego.py": 16022844238903541738, - "venv/lib/python3.13/site-packages/pygments/lexers/json5.py": 9736695186548899403, - "frontend/src/routes/+page.ts": 11160596731849880920, - "venv/lib/python3.13/site-packages/uvicorn/__main__.py": 6086938803696646644, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA.py": 17817123894903120316, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/utils/datetime.py": 6816292030061301011, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py": 14995426099932276090, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_resolution.py": 9651416588266430520, - "backend/src/models/dashboard.py": 8479838979214366697, - "venv/lib/python3.13/site-packages/_pytest/subtests.py": 14573790885130724739, - "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py": 9627328185578406121, - "venv/lib/python3.13/site-packages/_pytest/tmpdir.py": 10834220332037364219, - "venv/lib/python3.13/site-packages/apscheduler/triggers/interval.py": 3964550092873794670, - "venv/lib/python3.13/site-packages/numpy/_typing/_shape.py": 12667553664122376205, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_logical_ops.py": 16166386974005224415, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_misc.py": 16393451200513733144, - "venv/lib/python3.13/site-packages/gitdb/__init__.py": 15381521749253695923, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/config.py": 10707678943298497676, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_add_prefix_suffix.py": 4815518357936092237, - "venv/lib/python3.13/site-packages/yaml/_yaml.cpython-313-x86_64-linux-gnu.so": 16990140871649227895, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/licenses/LICENSE": 13322127602069971876, - "frontend/tailwind.config.js": 13139381085024634801, - "venv/lib/python3.13/site-packages/anyio/_core/_asyncio_selector_thread.py": 1760597191437520000, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/pysqlcipher.py": 11225173272050906977, - "backend/src/core/superset_client/__init__.py": 14560361361214953450, - "venv/lib/python3.13/site-packages/pygments/formatter.py": 11156733836937309465, - "venv/lib/python3.13/site-packages/pygments/lexers/blueprint.py": 6370363226580199085, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_polynomial.pyi": 9134949577567498894, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_constructors.py": 17392287676196409733, - "venv/lib/python3.13/site-packages/websockets/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_compression.py": 3167245427092658522, - "venv/bin/pyrsa-verify": 6762739642629904442, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cosh.csv": 9287774220881887502, - "venv/lib/python3.13/site-packages/_pytest/setuponly.py": 10959102379908419762, - "venv/lib/python3.13/site-packages/pandas/core/arrays/timedeltas.py": 7318851108932357510, - "backend/src/plugins/translate/metrics.py": 16289306156708185830, - "venv/lib/python3.13/site-packages/pydantic/experimental/__init__.py": 492399139963056461, - "venv/lib/python3.13/site-packages/rsa/pem.py": 3118524021576082054, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/filesize.py": 13234856188049714485, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_data.py": 2397937327057341, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_re.py": 1296579393600719224, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_quoting.py": 1147992698412929658, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_floats.py": 3064615530495290792, - "venv/lib/python3.13/site-packages/pandas/core/series.py": 11618272682977710696, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/licenses/LICENSE": 12684353321716745791, - "venv/lib/python3.13/site-packages/numpy/lib/_iotools.pyi": 12873243737872788349, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/PIL/PdfParser.py": 13710342183037972042, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh26681.f90": 1515497186927052106, - "venv/lib/python3.13/site-packages/pandas/tests/computation/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/click/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_numpy.py": 4073641912755651877, - "venv/lib/python3.13/site-packages/fastapi/temp_pydantic_v1_params.py": 9436036880518047720, - "frontend/src/lib/components/translate/TranslationRunResult.svelte": 3992997916593732645, - "backend/src/models/llm.py": 14295626272101666880, - "frontend/svelte.config.js": 8473636210766821560, - "backend/src/services/clean_release/exceptions.py": 14631509303697939633, - "backend/tests/core/migration/test_archive_parser.py": 1909788158234142574, - "venv/lib/python3.13/site-packages/httpx/_urls.py": 4219389176352582046, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE.APACHE": 8359973023624924624, - "venv/lib/python3.13/site-packages/numpy/__config__.py": 15794735729525094396, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/WHEEL": 12054782055241301457, - "venv/lib/python3.13/site-packages/numpy/_core/overrides.py": 252940520997718714, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/RECORD": 12598309574903741388, - "venv/lib/python3.13/site-packages/pygments/lexers/unicon.py": 1155454077052833821, - "venv/lib/python3.13/site-packages/packaging/pylock.py": 15346942039643310253, - "venv/lib/python3.13/site-packages/typing_inspection/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/PIL/IcnsImagePlugin.py": 1870235606309784691, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arrayprint.py": 13335063050941743734, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/strategies.py": 14007486769065345085, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/color.py": 15062855556511243610, - "venv/lib/python3.13/site-packages/pydantic/_internal/_serializers.py": 12077180322353709930, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/METADATA": 18410956221497090898, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel_py.py": 9112851333217812996, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_retain_attributes.py": 16210262356844956764, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/sync.py": 6189260178302531376, - "venv/lib/python3.13/site-packages/numpy/lib/_histograms_impl.py": 13446184230476677032, - "venv/lib/python3.13/site-packages/_pytest/pastebin.py": 13946273207624603063, - "backend/src/core/task_manager/event_bus.py": 15798578020529126889, - "venv/lib/python3.13/site-packages/PIL/_imagingmath.pyi": 18222325750818585549, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/__main__.py": 11917862648584782420, - "venv/lib/python3.13/site-packages/pandas/core/ops/dispatch.py": 7041711677358147534, - "venv/lib/python3.13/site-packages/passlib/apache.py": 2357244937629445006, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/token_validator.py": 2932866595454490527, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/computation/test_compat.py": 11655000938111420543, - "venv/lib/python3.13/site-packages/pandas/tests/api/test_api.py": 13385690673368400635, - "venv/lib/python3.13/site-packages/gitdb/test/lib.py": 13294941660283059872, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/fromnumeric.py": 3792079757208879362, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/format": 12697928260201325593, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/websockets_sansio_impl.py": 17221368219485351394, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/missing.py": 11241703105777668183, - "venv/lib/python3.13/site-packages/psycopg2/__init__.py": 15798412693009721199, - "venv/lib/python3.13/site-packages/charset_normalizer/md.cpython-313-x86_64-linux-gnu.so": 1835299664481804968, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_diff.py": 7420674239386436885, - "frontend/src/components/storage/FileUpload.svelte": 14805293086068620697, - "venv/lib/python3.13/site-packages/pydantic/_internal/_discriminated_union.py": 1818179910730401509, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/pyinstaller-smoke.py": 13570990531070630950, - "venv/lib/python3.13/site-packages/numpy/f2py/_isocbind.py": 15031197044862908440, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/common.py": 2075178842766962782, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/tags.py": 254599446317461188, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_numeric_only.py": 13610631681447961840, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_types.py": 651959450717569029, - "venv/lib/python3.13/site-packages/httpx/_models.py": 6516278895118988231, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_dataframe.py": 14945138617962156057, - "backend/src/plugins/translate/__tests__/test_preview.py": 2014051431239347014, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_setops.py": 16240008859650640717, - "venv/lib/python3.13/site-packages/numpy/typing/tests/test_isfile.py": 14544060093268573418, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_str.py": 149688376805129532, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/core/numerictypes.py": 5776941405348611027, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/__init__.py": 15130871412783076140, - "backend/src/api/routes/translate/_helpers.py": 13265933139767815312, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/legacy/resolver.py": 2492962412506082234, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/dateutil/parser/__init__.py": 11377431154251655738, - "venv/lib/python3.13/site-packages/pandas/core/col.py": 4221271461723119525, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/websockets/imports.py": 1995356703044158461, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_api.py": 14120915875574640262, - "venv/lib/python3.13/site-packages/pygments/styles/colorful.py": 15708848112363953394, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/licenses/LICENSE": 1126906383149772681, - "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/METADATA": 8128818962678047497, - "venv/lib/python3.13/site-packages/uvicorn/__init__.py": 11517239807926185665, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/licenses/LICENSE": 4672913476475760762, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_reduction.py": 1049551473665255648, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/result.py": 12262298207886620908, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_ops.py": 16346030307660048773, - "backend/git_repos/remote/test-repo.git/hooks/pre-merge-commit.sample": 10013699873067956556, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_randomstate_regression.py": 17425202198134409689, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/memmap.pyi": 2834143910417841603, - "venv/lib/python3.13/site-packages/httpcore/_backends/auto.py": 10488908050307887802, - "venv/lib/python3.13/site-packages/pip/__pip-runner__.py": 1138979712722199296, - "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/WHEEL": 8600534672961461758, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_frame_equal.py": 12459816298158655274, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel_legacy.py": 12735901522735836481, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_categorical.py": 12897027063618569795, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_api.py": 16743710460729009914, - "venv/bin/fastapi": 12400009726251862770, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/jupyter.py": 4446535289156468239, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/url.py": 9692934100602135106, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath_accuracy.py": 3904008607472505376, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/casting.py": 12226803454582253097, - "venv/lib/python3.13/site-packages/passlib/handlers/sha1_crypt.py": 5752556581809938954, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/fft/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/markup.py": 10311057264960923433, - "frontend/src/routes/datasets/review/review-workspace-helpers.js": 8577563379877694502, - "venv/lib/python3.13/site-packages/urllib3/response.py": 1987354357306756790, - "venv/lib/python3.13/site-packages/pygments/lexers/css.py": 517586374264113606, - "frontend/src/routes/datasets/review/ReviewWorkspaceRightRail.svelte": 13437011381072252917, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_mod.f90": 5765181406654284736, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/LICENSE": 8423899413955829149, - "venv/lib/python3.13/site-packages/attr/_typing_compat.pyi": 2823472697859409877, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/authorization_server.py": 724388765673082720, - "venv/lib/python3.13/site-packages/pip/_internal/network/xmlrpc.py": 5064964778750366059, - "venv/lib/python3.13/site-packages/pyasn1/codec/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_regression.py": 12593643817685777170, - "venv/lib/python3.13/site-packages/pygments/lexers/haxe.py": 1915270891525929751, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/licenses/LICENSE": 5757922580822401219, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_period.py": 6255181868181182780, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/macos.py": 17442393555211213147, - "venv/lib/python3.13/site-packages/idna/__init__.py": 6489437464172324468, - "venv/lib/python3.13/site-packages/referencing/exceptions.py": 2535322334430110414, - "venv/lib/python3.13/site-packages/pandas/core/ops/common.py": 17314999825118928100, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/licenses/LICENSE": 7959949171752474553, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_semicolon_split.py": 8153770165829451525, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/plugin.py": 18006138132596504101, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/common.py": 11384497819737275399, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/LICENSE": 14599279238716790189, - "venv/lib/python3.13/site-packages/PIL/_imagingmath.cpython-313-x86_64-linux-gnu.so": 77725273398858074, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/twodim_base.pyi": 3773329770170248877, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/dateutil/parser/_parser.py": 9443336890192151397, - "venv/lib/python3.13/site-packages/fastapi/testclient.py": 2606236077497278662, - "venv/lib/python3.13/site-packages/packaging/tags.py": 1999137344425005827, - "venv/lib/python3.13/site-packages/PIL/ImageFont.py": 15621336334706847865, - "venv/lib/python3.13/site-packages/uvicorn/loops/auto.py": 13086005977087619545, - "frontend/build/_app/immutable/nodes/11.hjip6Y23.js": 15351861233783503570, - "backend/src/services/profile_preference_service.py": 58722622434127499, - "backend/src/plugins/git/__init__.py": 2144831474780401625, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_contains.py": 17630310725250553247, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_getlimits.py": 118041882543413669, - "frontend/build/_app/immutable/chunks/BsdYA8vJ.js": 17313445894049649179, - "venv/lib/python3.13/site-packages/PIL/ImageSequence.py": 16459886231802763032, - "frontend/build/_app/immutable/chunks/hPO6SNG0.js": 8027434811274919386, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_util.py": 13997184496924925110, - "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_deprecations.py": 14624516389510242394, - "venv/lib/python3.13/site-packages/pandas/_libs/json.pyi": 10989301892466547548, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/sync_openid.py": 5670082466989878756, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_indexing.py": 14717641281147152159, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_bin_groupby.py": 14831211659124136806, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/__init__.py": 15130871412783076140, - "frontend/src/routes/dashboards/[id]/+page.svelte": 12833231703682809118, - "venv/lib/python3.13/site-packages/rapidfuzz/_feature_detector_cpp.cpython-313-x86_64-linux-gnu.so": 16337157355618216738, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufunclike.pyi": 12215374902556647369, - "venv/lib/python3.13/site-packages/numpy/f2py/common_rules.py": 7352635707860427145, - "backend/src/core/utils/superset_context_extractor/_filters.py": 281666313889333545, - "venv/lib/python3.13/site-packages/pandas/core/nanops.py": 18291534943985310005, - "venv/lib/python3.13/site-packages/pandas/io/_util.py": 13608922148814398500, - "venv/lib/python3.13/site-packages/pygments/lexers/pawn.py": 18127303119414402594, - "venv/lib/python3.13/site-packages/anyio/_core/_signals.py": 1204322949639513552, - "venv/lib/python3.13/site-packages/httpcore/_ssl.py": 6665087294869504820, - "frontend/build/_app/immutable/chunks/WFgopCIu.js": 4767118587366045802, - "backend/git_repos/remote/test-repo.git/objects/79/b070ad8af7bbc12169f7660d2a7a72ec7a889a": 8153595714065675791, - "venv/lib/python3.13/site-packages/anyio/_core/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/websockets/extensions/permessage_deflate.py": 12957105912018691390, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/aiomysql.py": 12999962380333482189, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/modules.pyi": 14176187662591164602, - "venv/lib/python3.13/site-packages/numpy/random/_common.cpython-313-x86_64-linux-gnu.so": 12834724130890991478, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_html.py": 7732330576029516854, - "venv/lib/python3.13/site-packages/pygments/lexers/_cocoa_builtins.py": 15468347167912293394, - "venv/lib/python3.13/site-packages/numpy/testing/print_coercion_tables.pyi": 3814281717779245045, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/__init__.py": 8924316361489544973, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_masked_matrix.py": 1444179242134203344, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_implementation.py": 12245524932757110911, - "venv/lib/python3.13/site-packages/pydantic/v1/networks.py": 13262073155118055511, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_to_julian_date.py": 6868080396693831272, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalar_methods.py": 14881910898871057761, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_get_dummies.py": 14871264482622327003, - "venv/lib/python3.13/site-packages/pygments/lexers/monte.py": 15158829991357994573, - "frontend/build/_app/immutable/chunks/ikwS1dR6.js": 3267599179274813039, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/string.tpl": 15796203549130590784, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/__init__.py": 8811477458865810434, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_regression.py": 16293647824734937323, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_indexing.py": 9988098331562906950, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_string.py": 11422235699126032386, - "frontend/src/routes/profile/__tests__/profile-preferences.integration.test.js": 6561454515118560091, - "backend/src/api/routes/__tests__/test_migration_routes.py": 4357515184436771537, - "venv/lib/python3.13/site-packages/numpy/f2py/auxfuncs.py": 2234931733687557433, - "backend/src/api/routes/plugins.py": 4567336078922104278, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_extension.py": 17245018204352082978, - "venv/lib/python3.13/site-packages/greenlet/TMainGreenlet.cpp": 9489520001674089404, - "venv/lib/python3.13/site-packages/pygments/lexers/verifpal.py": 9190813166686923928, - "backend/src/models/storage.py": 1218824901001897736, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_records.py": 18167578114159312327, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f90continuation.f90": 17056591497459381871, - "venv/lib/python3.13/site-packages/pandas/core/sample.py": 11913688303879867963, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_datetime.py": 7456744745424297814, - "venv/lib/python3.13/site-packages/urllib3/exceptions.py": 9687187566231423953, - "venv/lib/python3.13/site-packages/urllib3/util/util.py": 12490259045660543460, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_xlrd.py": 9982457234958102003, - "venv/lib/python3.13/site-packages/authlib/oidc/registration/__init__.py": 9448552677419908109, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/requests.py": 6703055041957748929, - "venv/lib/python3.13/site-packages/fastapi/param_functions.py": 14585101566697773072, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_round.py": 1299086932398824299, - "venv/lib/python3.13/site-packages/httpcore/_backends/base.py": 5491727479625093183, - "venv/lib/python3.13/site-packages/pydantic/functional_validators.py": 5835339743072048940, - "venv/lib/python3.13/site-packages/pip/_internal/commands/search.py": 8292218231992728142, - "frontend/src/lib/stores/__tests__/test_datasetReviewSession.js": 12620073136419991103, - "backend/_convert_defs.py": 208535643309836247, - "venv/lib/python3.13/site-packages/pip/_internal/utils/wheel.py": 450504439085405418, - "venv/lib/python3.13/site-packages/pydantic/v1/_hypothesis_plugin.py": 6383299780629629080, - "frontend/src/routes/dashboards/[id]/components/DashboardHeader.svelte": 5572977872383619871, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py": 9888795404090331319, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/rsa/core.py": 13203947234024924497, - "venv/lib/python3.13/site-packages/gitdb/db/ref.py": 1176701624460337371, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/setup.py": 17086801293303202021, - "backend/src/api/routes/assistant/_llm_planner.py": 444517242115816139, - "backend/src/plugins/translate/_batch_proc.py": 9916377448262126536, - "venv/lib/python3.13/site-packages/cffi/vengine_gen.py": 6582900613549620556, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_cov_corr.py": 13652339565475304679, - "venv/lib/python3.13/site-packages/numpy/core/_multiarray_umath.py": 10973016138581934035, - "venv/lib/python3.13/site-packages/dateutil/rrule.py": 398469817784230512, - "venv/lib/python3.13/site-packages/pygments/lexers/tcl.py": 10343667975436015855, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timestamps.cpython-313-x86_64-linux-gnu.so": 13209491675968970365, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/licenses/LICENSE": 9235234428907927646, - "venv/lib/python3.13/site-packages/pygments/lexers/supercollider.py": 15306357945850389082, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_combine.py": 16193618152415684421, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_feather.py": 13613400750755530364, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_fileno.py": 15541504502174047167, - "venv/lib/python3.13/site-packages/ecdsa/_version.py": 17707102226558781833, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_head_tail.py": 1906121476322841736, - "venv/lib/python3.13/site-packages/pandas/io/pickle.py": 5418646169167774144, - "frontend/build/_app/immutable/chunks/Bn0PWGM8.js": 3309051336151057391, - "backend/src/services/clean_release/__tests__/test_report_builder.py": 17265459530244848426, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_append.py": 9644955836191900614, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/styles/pastie.py": 15784474766258831882, - "venv/lib/python3.13/site-packages/passlib/handlers/scram.py": 12281469744083867450, - "venv/lib/python3.13/site-packages/_pytest/warnings.py": 8633394774569709013, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_null_file.py": 6885565068723353414, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh15035.f": 13126319439858352711, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/licenses/LICENSE": 1641332741515411734, - "venv/lib/python3.13/site-packages/itsdangerous/serializer.py": 14271229091461164933, - "backend/src/services/git/_remote_providers.py": 15093805025432566446, - "backend/git_repos/remote/test-repo.git/objects/5a/82ef700fef88b69cd480e4025283809496ee20": 7003383965314354150, - "venv/lib/python3.13/site-packages/smmap/test/test_util.py": 5634593621291240094, - "venv/lib/python3.13/site-packages/httpx/_transports/wsgi.py": 11981127094916412794, - "venv/lib/python3.13/site-packages/starlette/schemas.py": 697416731579555195, - "venv/lib/python3.13/site-packages/pydantic/v1/generics.py": 1150594223414883339, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_base.py": 16710163879060522196, - "frontend/src/lib/components/layout/sidebarNavigation.js": 1277379523298972456, - "backend/src/api/routes/git/_repo_operations_routes.py": 5819532622410034169, - "backend/src/services/rbac_permission_catalog.py": 1524462697902103767, - "venv/lib/python3.13/site-packages/pandas/tests/generic/__init__.py": 15130871412783076140, - "backend/src/api/routes/dataset_review.py": 3689614039699023362, - "venv/lib/python3.13/site-packages/websockets/frames.py": 4901850477414613953, - "venv/lib/python3.13/site-packages/pydantic/_internal/_docs_extraction.py": 5210114991139191634, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_sh_gcc.h": 3574353221233465215, - "venv/lib/python3.13/site-packages/pip/_internal/utils/logging.py": 9639351759822608724, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/fastapi/security/__init__.py": 1345944646061334046, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/WHEEL": 2823347510103459191, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/keyring/backends/macOS/__init__.py": 1010937986753403630, - "venv/lib/python3.13/site-packages/pluggy/_callers.py": 1042673447718196223, - "backend/src/plugins/translate/plugin.py": 9225230324052126034, - "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/_arrow_utils.py": 17808805047762566525, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/__init__.py": 15130871412783076140, - "frontend/build/_app/immutable/chunks/DnU4uHLm.js": 18020186069872902477, - "venv/lib/python3.13/site-packages/more_itertools/__init__.py": 9858612105173082060, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/proxy.py": 13008557041076030198, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh25211.pyf": 10179237442840865225, - "venv/lib/python3.13/site-packages/PIL/CurImagePlugin.py": 17697303205012181529, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/panel.py": 17832701246248000383, - "venv/lib/python3.13/site-packages/pandas/core/arraylike.py": 11439602957100017713, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/utils.py": 8633356372647820801, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py": 16550134594771291234, - "venv/lib/python3.13/site-packages/rsa/asn1.py": 3861968161559322784, - "venv/lib/python3.13/site-packages/numpy/polynomial/__init__.pyi": 8708830448398500675, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi": 14119032813912827271, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_index.py": 10837492069089787028, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/METADATA": 2604612822968175379, - "frontend/src/lib/components/reports/__tests__/reports_filter_performance.test.js": 10583581505638859039, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/einsumfunc.pyi": 200771351328522379, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/core.py": 2199607970842512780, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py3-objarr.npz": 12369168483236619421, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/request.py": 17642741955458391050, - "venv/lib/python3.13/site-packages/numpy/lib/_arraysetops_impl.pyi": 3111521453255595221, - "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_enc_cryptography.py": 4383854709657749855, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_markdown.py": 9964642152916165317, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/ma/LICENSE": 6723325434476453127, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/names.py": 705261158040926128, - "venv/lib/python3.13/site-packages/PIL/_imagingcms.cpython-313-x86_64-linux-gnu.so": 15198265718775753589, - "venv/lib/python3.13/site-packages/jsonschema/cli.py": 9813914882090789748, - "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs_scalars.pyi": 1826323011169529229, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_format.py": 16150524965028369071, - "venv/lib/python3.13/site-packages/PIL/ImageMode.py": 2361901066832921091, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/provision.py": 17812733620485633975, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/__init__.py": 260774374497653876, - "venv/lib/python3.13/site-packages/fastapi/_compat/shared.py": 5249003014594464718, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_cut.py": 7800833253841657380, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_select.py": 7083040959665006634, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh24008.f": 3872245077994936272, - "venv/lib/python3.13/site-packages/PIL/_binary.py": 14039167720582222043, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/strings.pyi": 402863478592154500, - "frontend/src/services/__tests__/gitService.test.js": 12845562082447336909, - "venv/lib/python3.13/site-packages/pip/_internal/utils/setuptools_build.py": 13594639612360346306, - "backend/src/models/translate.py": 1714500577896249923, - "venv/lib/python3.13/site-packages/apscheduler/util.py": 11440701924954413440, - "backend/src/plugins/translate/service_bulk_replace.py": 5355744069308185607, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_reductions.py": 1713831062142840146, - "venv/lib/python3.13/site-packages/passlib/utils/md4.py": 4521366665754877351, - "venv/lib/python3.13/site-packages/urllib3/py.typed": 12220177918227495093, - "frontend/src/lib/ui/Select.svelte": 11354509509920497811, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/twodim_base.pyi": 10156504423258357540, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_get_numeric_data.py": 11747933921770969706, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_asof.py": 18383318159051131669, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_accessor.py": 10074496835594855786, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/licenses/LICENSE": 11986475601091748012, - "venv/lib/python3.13/site-packages/passlib/tests/test_hosts.py": 8284535274820610802, - "venv/lib/python3.13/site-packages/git/refs/log.py": 5175801243332619268, - "venv/lib/python3.13/site-packages/numpy/f2py/crackfortran.pyi": 9206355685192026844, - "venv/lib/python3.13/site-packages/authlib/oauth2/auth.py": 8455258275234626534, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_map.py": 4761668276463940924, - "venv/lib/python3.13/site-packages/PIL/_imagingmorph.pyi": 18222325750818585549, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/declarative/__init__.py": 2436195108273216959, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py": 8530403239168529668, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/structs.py": 4479429145468072604, - "venv/lib/python3.13/site-packages/numpy/linalg/_linalg.py": 9654828595008925976, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_palettes.py": 13495896173068490516, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/securetransport.py": 12104888897121018676, - "venv/lib/python3.13/site-packages/_pytest/warning_types.py": 10695097290648045427, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_npfuncs.py": 8238385897366878558, - "venv/lib/python3.13/site-packages/numpy/rec/__init__.py": 7467092880535460658, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/hi77.f": 10617763407280454334, - "venv/lib/python3.13/site-packages/yaml/reader.py": 9873075843010693205, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/provision.py": 13156893203444936309, - "frontend/src/routes/settings/notifications/+page.svelte": 14504217413720856827, - "backend/git_repos/remote/test-repo.git/objects/4e/227f4d8289ea657ae813b1460f979ae4b676b3": 5659284628452785331, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/flatiter.pyi": 6885824496927786205, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/REQUESTED": 15130871412783076140, - "dist/docker/ss-tools.20260517.tar.xz": 10542870312371880474, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/mapper.py": 16715864918034312591, - "backend/src/core/superset_client/_datasets_preview.py": 16476837380317508068, - "venv/lib/python3.13/site-packages/pip/_internal/commands/completion.py": 4435231315212798769, - "venv/lib/python3.13/site-packages/psycopg2/_json.py": 9729420372294281405, - "venv/lib/python3.13/site-packages/urllib3/http2/connection.py": 1661620860881397554, - "venv/lib/python3.13/site-packages/pip/_internal/commands/inspect.py": 1401259241736437656, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh25337/use_data.f90": 14624074967635860696, - "backend/src/core/utils/superset_compilation_adapter.py": 4974836712746468095, - "backend/git_repos/remote/test-repo.git/refs/heads/dev": 8596267258668462395, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/secrets.py": 17816662030600756342, - "venv/lib/python3.13/site-packages/websockets/legacy/http.py": 16266924390281399720, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_clip.py": 8087139801274517318, - "venv/lib/python3.13/site-packages/greenlet/greenlet_cpython_compat.hpp": 8396413256279803400, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/processors.py": 4817637175145012571, - "venv/lib/python3.13/site-packages/pyasn1/codec/streaming.py": 13202773554072937140, - "venv/lib/python3.13/site-packages/rapidfuzz/_feature_detector.py": 15458248567257759500, - "venv/lib/python3.13/site-packages/requests/status_codes.py": 17005213506461710202, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/cffi/commontypes.py": 11198107299826138465, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/METADATA": 16700674024421191168, - "frontend/src/routes/tools/mapper/+page.svelte": 11954517841045690204, - "venv/bin/activate.csh": 14513616043256836238, - "venv/lib/python3.13/site-packages/pydantic/functional_serializers.py": 15285359935059345032, - "backend/src/plugins/translate/orchestrator_sql.py": 15420456250044832567, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi": 13061638961405460334, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_isetitem.py": 14895552405828068177, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js": 10530710876604536879, - "backend/delete_running_tasks.py": 7776896567014157554, - "venv/lib/python3.13/site-packages/greenlet/platform/setup_switch_x64_masm.cmd": 8473866644286785815, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_interp_fillna.py": 5530041283991655415, - "venv/lib/python3.13/site-packages/httpcore/_utils.py": 3255581092836273826, - "venv/lib/python3.13/site-packages/pip/_internal/commands/check.py": 6937252393012787214, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_kwargs.py": 10173906126211473463, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/compiler.py": 11662494978292401568, - "frontend/build/_app/immutable/nodes/19.DeFTT8VV.js": 10315863231029001542, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_validators.py": 14178329676643700151, - "venv/lib/python3.13/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0": 17866578820357536656, - "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_linalg.py": 2939739913218718132, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_formats.py": 18080627205081311773, - "backend/src/core/logger.py": 2069537382060633888, - "backend/src/plugins/translate/_llm_http.py": 13936219393017392941, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/plugin_base.py": 2880434680251108786, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_exceptions.py": 15290185665769490169, - "venv/lib/python3.13/site-packages/pydantic/_internal/_decorators_v1.py": 16723743964226526155, - "venv/lib/python3.13/site-packages/numpy/_typing/_add_docstring.py": 14657346268890680694, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_deprecations.py": 16124509063246256847, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cpu_features.py": 955759654189150497, - "venv/lib/python3.13/site-packages/pandas/core/methods/selectn.py": 13552176539021625776, - "venv/lib/python3.13/site-packages/requests/structures.py": 2668010839316715865, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/provision.py": 8707620698060818654, - "venv/lib/python3.13/site-packages/PIL/ImageMath.py": 7395449734007598797, - "venv/lib/python3.13/site-packages/pydantic/utils.py": 1533455264689378477, - "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/METADATA": 14180973198574731599, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arrayterator.pyi": 7439348655567232744, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/RECORD": 5612689057373270213, - "venv/lib/python3.13/site-packages/_pytest/assertion/truncate.py": 14000392306994773741, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/entities.py": 8001287806688585081, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/pyodbc.py": 8175468565413744516, - "venv/lib/python3.13/site-packages/pygments/lexers/prolog.py": 599539463980699865, - "venv/lib/python3.13/site-packages/pydantic/_internal/_schema_generation_shared.py": 23345689300073549, - "venv/lib/python3.13/site-packages/gitdb/test/test_pack.py": 7518388297247535189, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_datetimes.py": 7889573945417063183, - "venv/lib/python3.13/site-packages/numpy/linalg/_umath_linalg.cpython-313-x86_64-linux-gnu.so": 17652852308919396403, - "venv/lib/python3.13/site-packages/git/compat.py": 16843345645628515492, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/_libs/sparse.cpython-313-x86_64-linux-gnu.so": 2051484129454294720, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/json_schema_test_suite.py": 6152158310190822762, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/endpoint.py": 13389763148720370546, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cython.py": 14695721638531081573, - "venv/lib/python3.13/site-packages/pandas/_libs/byteswap.cpython-313-x86_64-linux-gnu.so": 17856848989827220388, - "venv/lib/python3.13/site-packages/_pytest/scope.py": 7603155109542903644, - "venv/lib/python3.13/site-packages/pandas/_config/localization.py": 11197430792343731762, - "venv/lib/python3.13/site-packages/ecdsa/test_numbertheory.py": 2117130219401053225, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/constrain.py": 6513876973118703677, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/_cmd.py": 14954780419054588164, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/METADATA": 732041908491732594, - "venv/lib/python3.13/site-packages/pydantic/config.py": 1450073446492183677, - "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs.py": 15657897994221955882, - "venv/lib/python3.13/site-packages/pandas/tseries/holiday.py": 1134358927599488799, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_timestamp.py": 10308799534491190078, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_index.py": 1551768441102117466, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/base.py": 7110726987481713080, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/named_types.py": 6099185243355915896, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_header.py": 3564391095263545879, - "venv/lib/python3.13/site-packages/jose/jwk.py": 2781217726458801910, - "venv/lib/python3.13/site-packages/PIL/ImageOps.py": 3884310863548175682, - "venv/lib/python3.13/site-packages/PIL/_imagingtk.cpython-313-x86_64-linux-gnu.so": 1708198947135304326, - "venv/lib/python3.13/site-packages/numpy/_utils/_convertions.py": 12886275429547303345, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_fillna.py": 9297637486401098611, - "venv/lib/python3.13/site-packages/smmap/buf.py": 18231775424238352734, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/METADATA": 14070889071949105584, - "venv/lib/python3.13/site-packages/git/refs/head.py": 16271128287606894569, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_arithmetic.py": 13304014482504911016, - "venv/lib/python3.13/site-packages/urllib3/util/ssl_.py": 11720964010284185952, - "venv/lib/python3.13/site-packages/pygments/lexers/graph.py": 10445044822847205061, - "venv/lib/python3.13/site-packages/pandas/compat/__init__.py": 6077099417711209303, - "venv/lib/python3.13/site-packages/pluggy/__init__.py": 8269188363563356631, - "venv/lib/python3.13/site-packages/pygments/lexers/__init__.py": 4627540245914849670, - "frontend/build/_app/immutable/nodes/32.BxAc7m7j.js": 12600465563142046438, - "frontend/build/_app/immutable/chunks/Dq0Z2AGi.js": 3340623466096415766, - "backend/src/schemas/health.py": 13764741380188041840, - "venv/bin/pygmentize": 2166491742035772877, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_dt_accessor.py": 2229616362327032253, - "backend/src/core/auth/logger.py": 9289916075840905359, - "venv/lib/python3.13/site-packages/keyring/backends/fail.py": 5792496235026678021, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarprint.py": 9482100952562512933, - "venv/lib/python3.13/site-packages/git/remote.py": 1694919255653049944, - "frontend/src/routes/storage/repos/+page.svelte": 3849368960648953479, - "backend/src/services/clean_release/mappers.py": 8684357784135236729, - "venv/lib/python3.13/site-packages/pygments/styles/lovelace.py": 15082819162722685616, - "frontend/src/lib/api/translate/dictionaries.js": 13928848549982189213, - "backend/src/plugins/translate/events.py": 14264965160929343917, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/libdivide.h": 5314232500579481313, - "venv/lib/python3.13/site-packages/pygments/lexers/amdgpu.py": 17249439604111838979, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/__init__.py": 4781700006554860887, - "venv/lib/python3.13/site-packages/PIL/report.py": 9428754440615681790, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py": 7852235015155694076, - "backend/src/plugins/translate/service.py": 16455032944348136444, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_json_table_schema_ext_dtype.py": 13021437050542691118, - "venv/lib/python3.13/site-packages/psycopg2/tz.py": 9966680685796585198, - "backend/src/api/routes/__tests__/test_datasets.py": 14530822388357135497, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/prompt.py": 9561640601516933380, - "venv/lib/python3.13/site-packages/numpy/version.py": 1497063540123613501, - "venv/lib/python3.13/site-packages/authlib/oauth2/base.py": 12948318231066662045, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/licenses/LICENSE": 6965457853328313914, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ndarray_misc.pyi": 16219573290116396099, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/repr.py": 839417422880281122, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/box.py": 14303526978791498662, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/multiarray.pyi": 6368268452184570195, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_pad.pyi": 14755435694146003896, - "frontend/build/_app/immutable/chunks/B1H1HSGu.js": 17342622807666537448, - "venv/lib/python3.13/site-packages/urllib3/filepost.py": 3814725067598042920, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/decl_class.py": 6328411894571735935, - "venv/lib/python3.13/site-packages/pip/_internal/commands/hash.py": 11824898770873127699, - "backend/tests/scripts/test_clean_release_tui_v2.py": 16893299982170941753, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_emoji_replace.py": 8166203537440976347, - "venv/lib/python3.13/site-packages/pygments/lexers/bqn.py": 11823648528816858738, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_join.py": 1364886077926604427, - "venv/lib/python3.13/site-packages/more_itertools/__init__.pyi": 16479506520351014608, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/WHEEL": 9788895026336324100, - "venv/lib/python3.13/site-packages/numpy/matrixlib/defmatrix.pyi": 17903213294220335051, - "venv/lib/python3.13/site-packages/numpy/tests/test_configtool.py": 8208415015478205502, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel_editable.py": 14352954849821931255, - "venv/lib/python3.13/site-packages/passlib/ext/django/utils.py": 8118896525895185626, - "venv/lib/python3.13/site-packages/pandas/core/base.py": 10262717073058743378, - "venv/lib/python3.13/site-packages/certifi/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/anyio/lowlevel.py": 11919467357746648592, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate_kwarg.py": 10417724544218303733, - "venv/lib/python3.13/site-packages/pandas/tests/construction/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_astype.py": 7542068949396266883, - "venv/lib/python3.13/site-packages/PIL/ExifTags.py": 6869879826623916830, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_structures.py": 16375837477294135345, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/_internal_utils.py": 4091305333167213279, - "venv/lib/python3.13/site-packages/greenlet/greenlet_msvc_compat.hpp": 12504008513945919250, - "venv/lib/python3.13/site-packages/requests/__version__.py": 6677532709758546816, - "venv/lib/python3.13/site-packages/requests/certs.py": 16052880877156864882, - "venv/lib/python3.13/site-packages/keyring/backend_complete.zsh": 14339032329370660432, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/refresh_token.py": 17927903035152872556, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/shape.pyi": 2188930129299348535, - "venv/lib/python3.13/site-packages/passlib/handlers/digests.py": 18158237109145814857, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_missing.py": 7034102519042351965, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/common.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/warnings.py": 2552021607611112605, - "venv/lib/python3.13/site-packages/charset_normalizer/cli/__init__.py": 9702005609966176016, - "venv/lib/python3.13/site-packages/pygments/styles/solarized.py": 11231143047572616298, - "venv/lib/python3.13/site-packages/sqlalchemy/connectors/aioodbc.py": 2018840826888846321, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/api.py": 12339139862411341381, - "frontend/e2e/tests/login.e2e.js": 16303843677272482041, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64_np126.pkl.gz": 1630203486813146863, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/query.py": 3867868366067025348, - "venv/lib/python3.13/site-packages/numpy/lib/_polynomial_impl.pyi": 2042169688753984918, - "venv/lib/python3.13/site-packages/apscheduler/executors/__init__.py": 15130871412783076140, - "frontend/build/_app/immutable/chunks/DSaq_U9T.js": 18007300971386663499, - "frontend/build/_app/immutable/chunks/DsAODWVW.js": 17093454341120407063, - "backend/git_repos/remote/test-repo.git/objects/5d/9eb555c4cac2d3ffdba84c07682b154fe4180d": 10756202165146702691, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/core": 6622984507059115517, - "venv/lib/python3.13/site-packages/numpy/_core/_type_aliases.pyi": 15848834171197104301, - "venv/lib/python3.13/site-packages/pygments/styles/onedark.py": 17580335614588531275, - "venv/lib/python3.13/site-packages/urllib3/fields.py": 9503202008440141421, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/specifiers.py": 12284901056355482991, - "venv/lib/python3.13/site-packages/pygments/lexers/python.py": 8995519134978505744, - "venv/lib/python3.13/site-packages/pygments/lexers/x10.py": 6167378515780115912, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_algs.py": 2479791018067637690, - "backend/src/scripts/clean_release_tui.py": 12384906707876740394, - "backend/src/core/__init__.py": 8673978627093182792, - "venv/lib/python3.13/site-packages/numpy/ma/mrecords.py": 687170905107114309, - "venv/lib/python3.13/site-packages/starlette/authentication.py": 10905269573809129547, - "venv/lib/python3.13/site-packages/jsonschema/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/pkg_resources/__init__.py": 1677532855362260338, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/__init__.py": 13584649922093198724, - "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/client_mixin.py": 17980753662107479779, - "backend/src/services/clean_release/stages/no_external_endpoints.py": 11899278509901673808, - "backend/tests/test_auth.py": 6167020718035755646, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/gitdb/typ.py": 16374739906244805047, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/pager.py": 18072372651585577904, - "frontend/src/lib/toasts.js": 199299975383904134, - "venv/lib/python3.13/site-packages/pydantic/version.py": 3699343596421001359, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/incfile.f90": 4348588746493647387, - "venv/lib/python3.13/site-packages/pandas/core/construction.py": 10646956189518908985, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_replace.py": 15992095120302643273, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/jeepney/io/blocking.py": 4699555965372200059, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/array_constructors.py": 6727209833819502644, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/wheel.py": 13979536782410081712, - "venv/lib/python3.13/site-packages/annotated_doc/main.py": 3384049281532298500, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_categorical.py": 8844412630511751140, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_arithmetic.py": 16045758521544316139, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_fiscal.py": 14652343698825214870, - "venv/lib/python3.13/site-packages/rsa/__init__.py": 14623742580410014505, - "venv/lib/python3.13/site-packages/numpy/_typing/_char_codes.py": 14162745886150625150, - "venv/lib/python3.13/site-packages/passlib/handlers/oracle.py": 12959175637015399815, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/framework_integration.py": 3935346152156572025, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_function.py": 7048185308307653546, - "venv/lib/python3.13/site-packages/sqlalchemy/__init__.py": 9751988289698484530, - "venv/lib/python3.13/site-packages/pygments/lexers/clean.py": 17772169928835025327, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_append_common.py": 2377351120083195530, - "backend/src/services/git/_sync.py": 14233419521256437438, - "venv/lib/python3.13/site-packages/rapidfuzz/process.pyi": 6959881293311340830, - "venv/lib/python3.13/site-packages/numpy/_core/lib/libnpymath.a": 17555816778997028283, - "venv/lib/python3.13/site-packages/jsonschema/protocols.py": 847332300543820834, - "frontend/build/_app/immutable/chunks/CTFFznDe.js": 8010860292122799172, - "venv/lib/python3.13/site-packages/pydantic/_internal/_core_metadata.py": 5704137311404303574, - "venv/lib/python3.13/site-packages/_pytest/_argcomplete.py": 3586514420674089892, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_equals.py": 18261810467289276844, - "venv/lib/python3.13/site-packages/pygments/lexers/kusto.py": 16285533608924436308, - "venv/lib/python3.13/site-packages/urllib3/connection.py": 12761371748350595804, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_pipe.py": 8255917221095334212, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/baked.py": 6911138208603240867, - "venv/lib/python3.13/site-packages/websockets/asyncio/compatibility.py": 9716993942839407921, - "venv/lib/python3.13/site-packages/pandas/core/ops/mask_ops.py": 16152832446926420035, - "venv/lib/python3.13/site-packages/numpy/f2py/capi_maps.pyi": 10638891136586198429, - "frontend/build/_app/immutable/chunks/2dOUpm6k.js": 11811637653151731489, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_append.py": 13152738905565588661, - "venv/lib/python3.13/site-packages/uvicorn/lifespan/off.py": 16254524872582859561, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/comparisons.py": 7327629888601690759, - "venv/lib/python3.13/site-packages/numpy/testing/overrides.pyi": 17408923209056015964, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/ccalendar.pyi": 15789956857032062129, - "venv/lib/python3.13/site-packages/greenlet/TUserGreenlet.cpp": 16258622236210473101, - "venv/lib/python3.13/site-packages/h11/_connection.py": 6971907312737339559, - "venv/lib/python3.13/site-packages/pydantic/deprecated/class_validators.py": 2200511838255373813, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/PIL/_imaging.cpython-313-x86_64-linux-gnu.so": 1425926264271197601, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/version.py": 14723293207188512766, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/__init__.py": 348469143777130970, - "venv/lib/python3.13/site-packages/smmap/test/test_mman.py": 8977119225749253844, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/assertion_client.py": 4261295109880943573, - "venv/lib/python3.13/site-packages/pygments/lexers/parsers.py": 12372594608244797844, - "venv/lib/python3.13/site-packages/pandas/_libs/algos.cpython-313-x86_64-linux-gnu.so": 15706331654215762588, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkrb5support-d0bcff84.so.0.1": 16819924515291719993, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/utils.py": 617314300548081590, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/masked_reductions.py": 633644255158859565, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_reshape.py": 10576230966727810832, - "venv/lib/python3.13/site-packages/_pytest/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/util/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/jeepney/io/common.py": 15160647397460834508, - "venv/lib/python3.13/site-packages/annotated_doc/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/argon2.py": 15389474901714096890, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/mod.py": 2054876501774773382, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/request.py": 10484280068366411541, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/compat.py": 9758194415584776667, - "venv/lib/python3.13/site-packages/click/globals.py": 18353671282454331523, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/providers.py": 7267821734584612032, - "venv/lib/python3.13/site-packages/pydantic/parse.py": 13750341403702794392, - "venv/lib/python3.13/site-packages/numpy/exceptions.py": 10981418339663118022, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_api_info.py": 16491629653122827368, - "venv/lib/python3.13/site-packages/passlib/utils/compat/__init__.py": 17369882236606423129, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/introspection.py": 14645217065508644154, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/collections.pyx": 17138729833735744777, - "venv/lib/python3.13/site-packages/yaml/nodes.py": 3463622922914760653, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py": 5324490103277723813, - "venv/lib/python3.13/site-packages/pygments/lexers/_mysql_builtins.py": 16087227298679432006, - "venv/lib/python3.13/site-packages/jeepney/tests/test_bus_messages.py": 4323093138307306385, - "frontend/src/lib/components/layout/Breadcrumbs.svelte": 10874106485242690185, - "frontend/src/components/llm/ProviderConfig.svelte": 10540903648131362498, - "venv/lib/python3.13/site-packages/yaml/dumper.py": 11376022992370902766, - "frontend/build/_app/immutable/chunks/BfNw3rzv.js": 1236526902294008250, - "venv/lib/python3.13/site-packages/numpy/_utils/_pep440.pyi": 6796322258258182775, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_ints.py": 5616705208267050659, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_setops.py": 9991233160569430204, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_ufunc.py": 669019702416198889, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/events.py": 10224214051422678828, - "venv/lib/python3.13/site-packages/pygments/lexers/gleam.py": 5161116162065925222, - "backend/src/api/routes/migration.py": 6030566471113208264, - "backend/src/services/__tests__/test_rbac_permission_catalog.py": 5190751380981933250, - "venv/lib/python3.13/site-packages/rsa/parallel.py": 4968566722541778371, - "venv/lib/python3.13/site-packages/websockets/http11.py": 11022534176398053082, - "frontend/src/lib/auth/__tests__/permissions.test.js": 13555349356008297952, - "backend/ss_tools_backend.egg-info/PKG-INFO": 15134841326777953914, - "venv/lib/python3.13/site-packages/_pytest/runner.py": 5772610501857496741, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/clsregistry.py": 1589692649837935355, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/licenses/LICENSE": 3868190977070717994, - "venv/lib/python3.13/site-packages/uvicorn/_compat.py": 2593000889619875759, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_dml_constructors.py": 4497038002189188311, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_compat.py": 4677414058216516380, - "venv/lib/python3.13/site-packages/numpy/tests/test_lazyloading.py": 17465787495701737655, - "frontend/src/components/git/CommitHistory.svelte": 61942790722897211, - "backend/src/api/routes/mappings.py": 7071183920129492341, - "backend/src/services/clean_release/publication_service.py": 1882863137548904782, - "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/licenses/LICENSE": 3868190977070717994, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/dtypes.cpython-313-x86_64-linux-gnu.so": 657138415665704488, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_extension_array_equal.py": 16119106336497630796, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/pkg_resources.py": 14271077832999370068, - "venv/lib/python3.13/site-packages/idna/core.py": 7725813731640753267, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_libgroupby.py": 9985769511561272200, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_musllinux.py": 2423350951094915747, - "venv/lib/python3.13/site-packages/httpcore/_api.py": 16499985295426060327, - "venv/lib/python3.13/site-packages/sqlalchemy/types.py": 15819795572817819102, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/core/umath.py": 4476812261188108155, - "venv/lib/python3.13/site-packages/pygments/lexers/vyper.py": 6477559246065994199, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/WHEEL": 5179340427739743287, - "venv/lib/python3.13/site-packages/python_multipart/__init__.py": 10290895261363712562, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/emath.pyi": 3718540478840842664, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_neighborhood_iterator_imp.h": 10634781863364525895, - "venv/lib/python3.13/site-packages/pip/_internal/utils/compat.py": 1841193561752758336, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/windows.py": 16452996247375488034, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_timedelta64.py": 16821719402662529276, - "venv/lib/python3.13/site-packages/numpy/lib/recfunctions.pyi": 10487441680587530350, - "venv/lib/python3.13/site-packages/numpy/_core/tests/_natype.py": 12013743717306900860, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sample.py": 16877779557071324115, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_numeric.py": 9417128508433693658, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/WHEEL": 7454950858448014158, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_common_basic.py": 1945891789924713537, - "venv/lib/python3.13/site-packages/websockets/legacy/exceptions.py": 16025779645869134942, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/WHEEL": 18203500019759199992, - "venv/lib/python3.13/site-packages/PIL/FtexImagePlugin.py": 8196606399875185931, - "venv/lib/python3.13/site-packages/attrs/validators.py": 10346563361083429998, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/WHEEL": 7314207500206292683, - "venv/lib/python3.13/site-packages/typing_inspection/typing_objects.pyi": 18193727720492050602, - "venv/lib/python3.13/site-packages/numpy/_typing/_nested_sequence.py": 7827259347937485408, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_pyf_src.py": 12351476647369971852, - "venv/lib/python3.13/site-packages/greenlet/greenlet_allocator.hpp": 11041111583319491309, - "venv/lib/python3.13/site-packages/pandas/core/ops/missing.py": 9493665944764255854, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/urllib3/util/response.py": 6106698559175827207, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_info.py": 10615285239043745712, - "venv/lib/python3.13/site-packages/pandas/api/extensions/__init__.py": 882327406374020760, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/WHEEL": 16784970174376303810, - "venv/lib/python3.13/site-packages/passlib/handlers/mssql.py": 2800599582708170195, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/test_numpy.py": 9825804096508014886, - "venv/lib/python3.13/site-packages/dotenv/__init__.py": 15464030923609356017, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_swaplevel.py": 3584770792383216626, - "venv/lib/python3.13/site-packages/packaging/__init__.py": 5479277484104486860, - "frontend/src/routes/admin/settings/llm/+page.svelte": 17057143078453873391, - "backend/src/api/routes/environments.py": 1329328901500854319, - "backend/alembic/versions/ed310b33f02c_multi_language_translation_tables.py": 1424919631205944664, - "venv/lib/python3.13/site-packages/pandas/_libs/window/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_windows.py": 9171347078900057357, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/operators.f90": 5949265961908386974, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/types.py": 356973910046950951, - "venv/lib/python3.13/site-packages/greenlet/tests/test_greenlet.py": 10727595500186011102, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_series.py": 17126297747681689408, - "frontend/src/lib/api/translate.js": 8957214461841000718, - "venv/lib/python3.13/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0": 7322566017497612912, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_cython_aggregations.py": 10818895573637904764, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA.pyi": 2700568594438441246, - "dist/docker/ss-tools.current.tar.xz": 12481237908945663094, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pct_change.py": 18056235438452125034, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_replace.py": 8784361132920473760, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_subclass.py": 12453252499544981915, - "venv/lib/python3.13/site-packages/rpds/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/event/__init__.py": 16182540084654095394, - "venv/lib/python3.13/site-packages/pip/_internal/utils/deprecation.py": 7435269308988385470, - "venv/lib/python3.13/site-packages/charset_normalizer/cd.py": 8687667152597941021, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_defchararray.py": 15135904718007443306, - "venv/lib/python3.13/site-packages/fastapi/staticfiles.py": 4094330072433302614, - "venv/lib/python3.13/site-packages/ecdsa/test_jacobi.py": 1249543655136186433, - "venv/lib/python3.13/site-packages/numpy/testing/tests/test_utils.py": 5291132432383518704, - "venv/lib/python3.13/site-packages/gitdb/base.py": 7927279446353696534, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_astype.py": 15275720655739710249, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_setops.py": 8622608042929141013, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_timezones.py": 15157687716502574038, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_scalar_compat.py": 10534925655070162459, - "venv/lib/python3.13/site-packages/jose/backends/_asn1.py": 14123487576864105793, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/default.py": 7906029092844029127, - "frontend/src/components/Toast.svelte": 4155277822937119359, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_period_index.py": 6634414375581820058, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/mercurial.py": 335201628064585213, - "venv/lib/python3.13/site-packages/numpy/ma/README.rst": 13203411621071845216, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/__init__.py": 10920760520224795596, - "venv/lib/python3.13/site-packages/pygments/styles/material.py": 14325514369696961874, - "frontend/src/routes/+page.svelte": 16267809857510759396, - "venv/lib/python3.13/site-packages/pygments/lexers/phix.py": 16775285097768256238, - "venv/lib/python3.13/site-packages/ecdsa/_rwlock.py": 7971972922423146201, - "venv/lib/python3.13/site-packages/_pytest/hookspec.py": 387790426108810884, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/discovery.py": 12479996594187326798, - "backend/src/core/ws_log_handler.py": 7507069843556560249, - "venv/lib/python3.13/site-packages/numpy/lib/introspect.py": 5706729538356302335, - "venv/lib/python3.13/site-packages/pygments/styles/tango.py": 12389250878249075539, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/schema.py": 5391655516870611151, - "venv/lib/python3.13/site-packages/fastapi/exception_handlers.py": 9907950997607808699, - "venv/lib/python3.13/site-packages/anyio/_core/_fileio.py": 4507100568401692983, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/__init__.py": 7316739139609490520, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/base_key.py": 10402800587070352851, - "venv/lib/python3.13/site-packages/six.py": 948867418687428421, - "venv/lib/python3.13/site-packages/pandas/core/shared_docs.py": 2173578869755325502, - "venv/lib/python3.13/site-packages/pygments/styles/murphy.py": 8177992406082781615, - "frontend/src/services/connectionService.js": 16613277497380191542, - "backend/git_repos/remote/test-repo.git/objects/ed/0432f88f5f7d95b26ecde34345abe741dd9db2": 13426916511127204463, - "frontend/src/lib/ui/Input.svelte": 8632025378593263475, - "backend/src/plugins/llm_analysis/service.py": 5318741399446187226, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/METADATA": 7214286447912789067, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_args_and_kwargs.py": 3381939712123764154, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py": 16768579082462294745, - "venv/lib/python3.13/site-packages/pandas/io/formats/excel.py": 797619981868084011, - "venv/lib/python3.13/site-packages/websockets/protocol.py": 6401227903827084901, - "frontend/build/_app/immutable/chunks/CR_piKg4.js": 4315960667699052933, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_arrow_compat.py": 12986187285988432338, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_all_methods.py": 18227706645906325527, - "venv/lib/python3.13/site-packages/jeepney/bus.py": 5163075760432139100, - "venv/lib/python3.13/site-packages/PIL/ImImagePlugin.py": 15452956038794399492, - "venv/lib/python3.13/site-packages/anyio/to_thread.py": 12767326212338028587, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_integrity.py": 12010564145080323987, - "venv/lib/python3.13/site-packages/pygments/lexers/fantom.py": 1986459352773446836, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_callback.py": 1689177048527329209, - "venv/lib/python3.13/site-packages/pandas/core/roperator.py": 2587829042468916489, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_compound.f90": 15012692484070385863, - "frontend/src/lib/components/layout/__tests__/test_topNavbar.svelte.js": 11053755879172333925, - "venv/lib/python3.13/site-packages/charset_normalizer/constant.py": 3070316197495651997, - "frontend/src/routes/settings/LlmSettings.svelte": 11336336338708911991, - "venv/lib/python3.13/site-packages/python_multipart/decoders.py": 14252672585219598429, - "venv/lib/python3.13/site-packages/passlib/hash.py": 5238710192614935875, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/WHEEL": 2357997949040430835, - "backend/src/core/task_manager/lifecycle.py": 7861582737135324044, - "backend/src/models/__tests__/test_report_models.py": 14916807060334836854, - "backend/git_repos/remote/test-repo.git/hooks/commit-msg.sample": 13435789416588783681, - "venv/lib/python3.13/site-packages/pip/_vendor/distro/__main__.py": 2688850704829116818, - "venv/lib/python3.13/site-packages/numpy/ma/LICENSE": 6723325434476453127, - "venv/lib/python3.13/site-packages/websockets/legacy/protocol.py": 762692033188392424, - "backend/src/services/__tests__/test_encryption_manager.py": 7097521778855634174, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_casting_unittests.py": 18157503533859249155, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_setitem.py": 2059440410065814114, - "venv/lib/python3.13/site-packages/pygments/styles/dracula.py": 12379322008538174078, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_align.py": 10284128457194204574, - "venv/lib/python3.13/site-packages/pycparser/c_lexer.py": 10964496587169353564, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/rec.pyi": 9140655366667421698, - "venv/lib/python3.13/site-packages/pygments/lexers/j.py": 9766594937623918053, - "venv/lib/python3.13/site-packages/pygments/sphinxext.py": 2768161754523156130, - "venv/bin/numpy-config": 17104619511899110252, - "frontend/src/routes/datasets/review/+page.svelte": 12909115647298935839, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/common.py": 16314033415206173235, - "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/__init__.py": 4870269250323682576, - "venv/lib/python3.13/site-packages/PIL/_imagingft.cpython-313-x86_64-linux-gnu.so": 11054435406031360190, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_period.py": 6047041810867211174, - "frontend/src/lib/api/datasetReview.js": 3023829599261929428, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py": 3369246520501764730, - "venv/lib/python3.13/site-packages/pydantic/_internal/_utils.py": 10936299012115637790, - "venv/lib/python3.13/site-packages/uvicorn/_subprocess.py": 13965754246493254447, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py": 13763154154862871596, - "venv/lib/python3.13/site-packages/httpx/_content.py": 1301854837767395687, - "venv/lib/python3.13/site-packages/PIL/BufrStubImagePlugin.py": 5520941821175895889, - "venv/lib/python3.13/site-packages/pandas/tests/reductions/__init__.py": 16150188643076000414, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/test_interval_new.py": 3893421355544517336, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_iterrows.py": 3791886201566670087, - "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_numeric.py": 18037815278545274402, - "venv/lib/python3.13/site-packages/anyio/to_interpreter.py": 8369454842687342401, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pydantic/_internal/_generics.py": 16438159042939059717, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/join.cpython-313-x86_64-linux-gnu.so": 2947947484481830203, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/base.py": 16891437410462671317, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/METADATA": 13776251749114562660, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_function.py": 14142346897145169685, - "venv/lib/python3.13/site-packages/pygments/style.py": 17393199235575070210, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/transforms.py": 3773159138960141434, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/wrappers.py": 315409799569602977, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_api.py": 5813060676255093777, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_unstack.py": 11834917665446437163, - "frontend/src/pages/Settings.svelte": 12818597464628135154, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_parameter.py": 15173522343126004527, - "venv/lib/python3.13/site-packages/certifi/cacert.pem": 14727832973577663826, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_backend.py": 17793139799410518847, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_equivalence.py": 17843623343419137458, - "frontend/build/_app/immutable/chunks/C9a28aU5.js": 5513483692277369740, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/bazaar.py": 5630511062945201327, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/REQUESTED": 15130871412783076140, - "backend/src/schemas/dataset_review_pkg/_composites.py": 1898056130177244572, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/flatiter.py": 3066469329738423021, - "venv/lib/python3.13/site-packages/pydantic/_internal/_config.py": 12760390602912369447, - "venv/lib/python3.13/site-packages/authlib/oidc/discovery/well_known.py": 8259335680633926377, - "venv/lib/python3.13/site-packages/numpy/__init__.pxd": 13527602429695748857, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_loc.py": 17839380711970027363, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/numpy/lib/npyio.py": 6782361985454523908, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/bitwise_ops.pyi": 15598239133239520456, - "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/test_from_dict.py": 4937173601709369119, - "venv/lib/python3.13/site-packages/httpcore/_sync/__init__.py": 7676937747094511752, - "backend/git_repos/remote/test-repo.git/config": 14478893374498894766, - "backend/git_repos/remote/test-repo.git/hooks/push-to-checkout.sample": 4825338927654285910, - "frontend/src/routes/tools/debug/+page.svelte": 8699044541980877686, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string_arrow.py": 10008395772220468318, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_invalid.py": 2762344062554575805, - "frontend/build/_app/immutable/chunks/CliV3vdy.js": 2705764711630653971, - "venv/lib/python3.13/site-packages/cffi/ffiplatform.py": 6782148110863549472, - "venv/lib/python3.13/site-packages/gitdb/utils/encoding.py": 1668793658272579497, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/errors.py": 12777931960088171310, - "venv/lib/python3.13/site-packages/ecdsa/util.py": 10543788809724099209, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_can_hold_element.py": 5406431247116557833, - "backend/src/core/task_manager/models.py": 14810225773071673070, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py": 10057637461647348368, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timestamps.pyi": 51728851886466199, - "venv/lib/python3.13/site-packages/pygments/lexers/hexdump.py": 10665271113239513484, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_cpp_avx2.cpython-313-x86_64-linux-gnu.so": 2991745295485163924, - "venv/lib/python3.13/site-packages/jaraco/classes/meta.py": 15930255620248873425, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/requirements.py": 13215932786801020434, - "frontend/src/lib/stores/__tests__/sidebar.test.js": 5168138864675110669, - "venv/lib/python3.13/site-packages/pandas/tseries/__init__.py": 2648641118117738895, - "venv/lib/python3.13/site-packages/packaging/version.py": 13470993734108007779, - "venv/lib/python3.13/site-packages/PIL/MpoImagePlugin.py": 644327650732339301, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/__init__.pyi": 16164841755339571545, - "venv/lib/python3.13/site-packages/httpcore/_sync/connection.py": 1539337414493486168, - "venv/lib/python3.13/site-packages/pygments/lexers/basic.py": 12723021007042054402, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libselinux-0922c95c.so.1": 16516617710645376769, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/recarray_from_file.fits": 15116318600514274152, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_sas7bdat.py": 8963983384208121526, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_polyutils.pyi": 3841660741524427413, - "venv/lib/python3.13/site-packages/fastapi/openapi/utils.py": 9058442333718187759, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/__init__.py": 11121941644106061453, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_generator_mt19937_regressions.py": 8981142329261965538, - "venv/lib/python3.13/site-packages/requests/api.py": 12339139862411341381, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_logical/foo90.f90": 12508663906609241323, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x86_unix.h": 13709837360414450184, - "venv/lib/python3.13/site-packages/pygments/lexers/sophia.py": 15971500155124949058, - "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/dateutil/_common.py": 12492546559232079071, - "frontend/build/_app/immutable/chunks/B3k-7f9N.js": 5233434304741777497, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz.pyi": 7410507092040239447, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py": 1359143503575245224, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/comparisons.pyi": 4158883009780474220, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_select_dtypes.py": 3530442956913622572, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/markup.py": 5413800947725916538, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/modules.py": 9023244176010175562, - "venv/lib/python3.13/site-packages/pandas/tests/test_algos.py": 11860014896449369497, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_missing.py": 3991199131191840903, - "venv/lib/python3.13/site-packages/PIL/_version.py": 3025206805667405876, - "venv/lib/python3.13/site-packages/pygments/lexers/mime.py": 7768464764849718825, - "venv/lib/python3.13/site-packages/annotated_doc/__init__.py": 6834198874252778425, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py": 8864112842559211971, - "venv/lib/python3.13/site-packages/pygments/lexers/csound.py": 2175454840368374515, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-tan.csv": 6233924374281534211, - "backend/src/schemas/profile.py": 7950698901810733002, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_interpolate.py": 6154072863387383113, - "backend/tests/test_smoke_app.py": 7819901244710945164, - "venv/lib/python3.13/site-packages/pip/_internal/index/__init__.py": 14829074315307489628, - "venv/lib/python3.13/site-packages/pygments/styles/_mapping.py": 11752660241391232497, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/oauth1_client.py": 3129955464287331242, - "venv/lib/python3.13/site-packages/fastapi/openapi/docs.py": 16735218221639179927, - "venv/lib/python3.13/site-packages/urllib3/util/wait.py": 14629837381061032546, - "backend/tests/test_translate_corrections.py": 1228642484417924184, - "backend/src/services/clean_release/__tests__/test_stages.py": 15353751625742444422, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/RECORD": 9502524172853437600, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/modeline.py": 6194365452131561478, - "backend/src/app.py": 4855165033640359841, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_modules.py": 16835987029123241300, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/multiprocess.py": 10047012560534876149, - "venv/lib/python3.13/site-packages/numpy/core/_dtype.pyi": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/linalg/lapack_lite.pyi": 14069586330277925998, - "venv/lib/python3.13/site-packages/_pytest/junitxml.py": 5871715626272366062, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/client_auth.py": 3301527187487914220, - "venv/lib/python3.13/site-packages/pygments/lexers/felix.py": 2334148799642808111, - "venv/lib/python3.13/site-packages/starlette/types.py": 6372850128669191435, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cbrt.csv": 8929553891827331780, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_reductions.py": 3227705565578016389, - "frontend/src/lib/components/layout/Sidebar.svelte": 8588237337148619706, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/models.py": 11521700876708601977, - "venv/lib/python3.13/site-packages/requests/help.py": 1885413874621672882, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_generator_mt19937.py": 7299586490442539723, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarmath.py": 9762951701352556447, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/__init__.py": 13331622784664204066, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/_multiarray_umath.cpython-313-x86_64-linux-gnu.so": 2888939866336522308, - "venv/lib/python3.13/site-packages/pandas/core/groupby/grouper.py": 18110568057754450953, - "venv/lib/python3.13/site-packages/websockets/uri.py": 264376168984862773, - "venv/lib/python3.13/site-packages/authlib/__init__.py": 8957417237987377675, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/table.py": 16856253349556498073, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi": 11733449165276720901, - "venv/lib/python3.13/site-packages/numpy/f2py/cfuncs.pyi": 8232620851756907417, - "venv/lib/python3.13/site-packages/pygments/formatters/rtf.py": 5850574956253747036, - "backend/src/plugins/translate/orchestrator_planner.py": 9681702657993216474, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/endpoints.py": 18334891787808122725, - "venv/lib/python3.13/site-packages/pydantic/deprecated/tools.py": 16466182352694741629, - "venv/lib/python3.13/site-packages/dateutil/easter.py": 14631233890122048084, - "venv/lib/python3.13/site-packages/rpds/__init__.pyi": 12037474523494903587, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arctanh.csv": 8620268345075425735, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/np_datetime.pyi": 2884703536776830012, - "backend/src/plugins/translate/sql_generator.py": 900251269659959067, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/publicmod.f90": 2174121054736811903, - "venv/lib/python3.13/site-packages/pandas/io/parsers/arrow_parser_wrapper.py": 11745253171984606573, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/ccalendar.cpython-313-x86_64-linux-gnu.so": 11019871270094058038, - "backend/src/services/dataset_review/orchestrator.py": 8780497744077644822, - "venv/lib/python3.13/site-packages/pandas/io/clipboard/__init__.py": 3656451154829206939, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/asyncio.py": 2517623574187179319, - "backend/tests/test_smoke_plugins.py": 10704454611361370435, - "venv/lib/python3.13/site-packages/greenlet/greenlet_internal.hpp": 13173115501223013762, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/string.f": 17328443345813567449, - "venv/lib/python3.13/site-packages/pydantic/fields.py": 4142211199816898047, - "venv/lib/python3.13/site-packages/pandas/tests/tools/__init__.py": 15130871412783076140, - "backend/git_repos/remote/test-repo.git/objects/22/91d2eb86d77accf7401f8952778809cd1aa4d4": 5120428041118096941, - "venv/lib/python3.13/site-packages/pygments/lexers/bibtex.py": 14652372822443154388, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_hour.py": 14128508606361694814, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.cpython-313-x86_64-linux-gnu.so": 12776951671822017500, - "venv/lib/python3.13/site-packages/_pytest/config/findpaths.py": 7867603756389940562, - "frontend/src/components/git/DeploymentModal.svelte": 16301125393395343650, - "backend/src/services/clean_release/__tests__/test_compliance_orchestrator.py": 6332087444349093252, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/nattype.pyi": 1830368009811266890, - "venv/lib/python3.13/site-packages/websockets/speedups.cpython-313-x86_64-linux-gnu.so": 10941658763526595989, - "venv/lib/python3.13/site-packages/cryptography/hazmat/asn1/__init__.py": 4290669519959060720, - "venv/lib/python3.13/site-packages/pandas/_libs/writers.cpython-313-x86_64-linux-gnu.so": 6878855127769203372, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_transform.py": 6759417099641034692, - "docker/all-in-one.Dockerfile": 10896793266219904099, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/datasource.pyi": 80441145804744162, - "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_scrypt.py": 17378030264314664250, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_dtypes_basic.py": 10917162988625838981, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_isin.py": 11330491145602008796, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/licenses/LICENSE": 3509878235770224233, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64-testset-1.csv": 5708101386018266998, - "venv/lib/python3.13/site-packages/passlib/tests/tox_support.py": 9200774792427691602, - "backend/tests/test_models.py": 3998442321184404421, - "venv/lib/python3.13/site-packages/numpy/rec/__init__.pyi": 1782063765067823837, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_drop.py": 15751236355035730554, - "backend/src/schemas/translate.py": 4202862152769241553, - "venv/lib/python3.13/site-packages/keyring/cli.py": 10996746519742056101, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/licenses/COPYING": 15270149301471737292, - "venv/lib/python3.13/site-packages/uvicorn/protocols/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_is_monotonic.py": 12769599198035357753, - "venv/lib/python3.13/site-packages/greenlet/platform/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/ma/testutils.pyi": 3899348061346041413, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/licenses/LICENSE": 4123064337800029995, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_combine_first.py": 3100691245280812910, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/METADATA": 5045041742469375466, - "venv/lib/python3.13/site-packages/cffi/_cffi_include.h": 13094899814611950155, - "venv/lib/python3.13/site-packages/numpy/lib/stride_tricks.py": 548928042543500365, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge.py": 11366935134260232329, - "venv/lib/python3.13/site-packages/starlette/datastructures.py": 12097180838087229563, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE.APACHE": 11041304845352917971, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/RECORD": 9678861487447993169, - "venv/lib/python3.13/site-packages/PIL/EpsImagePlugin.py": 1824020964179364491, - "venv/lib/python3.13/site-packages/pygments/lexers/lean.py": 14518351619544450286, - "venv/lib/python3.13/site-packages/pygments/lexers/_stata_builtins.py": 18053452765493556047, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/RECORD": 11788532857617688351, - "backend/src/services/git/_gitea.py": 16061594414833486958, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-sin.csv": 1443087417808027268, - "venv/lib/python3.13/site-packages/pip/_internal/commands/wheel.py": 16397273591245583356, - "venv/lib/python3.13/site-packages/anyio/streams/file.py": 15232345967545920863, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ctypeslib.pyi": 8623725566434725526, - "venv/lib/python3.13/site-packages/pip/_internal/commands/configuration.py": 1608697090566485893, - "venv/lib/python3.13/site-packages/numpy/core/getlimits.py": 14257687540182552408, - "venv/lib/python3.13/site-packages/pip/py.typed": 10243553515949422671, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_ufunc.py": 3326502989311831856, - "venv/lib/python3.13/site-packages/pydantic/class_validators.py": 4643597082531287188, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/isocintrin/isoCtests.f90": 6208802899442270399, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_astype.py": 8633811117672837999, - "venv/lib/python3.13/site-packages/pandas/tests/apply/common.py": 1113935558495455492, - "venv/lib/python3.13/site-packages/h11/py.typed": 12358286306858197118, - "venv/lib/python3.13/site-packages/dateutil/zoneinfo/__init__.py": 10261654903106416888, - "frontend/build/_app/immutable/nodes/5.BfJ2ukLY.js": 10444185862953327679, - "backend/src/plugins/translate/__tests__/test_orthogonal_fixes.py": 15839990777181837988, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/async_app.py": 4329794049222609894, - "backend/src/plugins/translate/orchestrator_query.py": 4760681990145471312, - "backend/git_repos/remote/test-repo.git/objects/38/0395343915d386a8d58774cc6c6677205065e8": 5481382229802988191, - "backend/git_repos/remote/test-repo.git/objects/22/c0ea49cea7e5138fb91b25b1bc0e101ae6e017": 17630871400599334193, - "venv/lib/python3.13/site-packages/numpy/polynomial/laguerre.pyi": 11310761736182213265, - "venv/lib/python3.13/site-packages/jose/backends/rsa_backend.py": 13507186353881931758, - "venv/lib/python3.13/site-packages/pillow.libs/libbrotlidec-b57ddf63.so.1.2.0": 10032590058372320813, - "venv/lib/python3.13/site-packages/numpy/polynomial/laguerre.py": 151202984060101867, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/base_server.py": 9643197259080504542, - "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/RECORD": 173225030102092319, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_indexing.py": 3841182456456779012, - "venv/lib/python3.13/site-packages/pandas/_testing/_hypothesis.py": 12298650110193262367, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/regexopt.py": 16073437303824961930, - "venv/lib/python3.13/site-packages/PIL/ImageFile.py": 15765130658900167517, - "venv/lib/python3.13/site-packages/PIL/TgaImagePlugin.py": 9208942494595222259, - "venv/lib/python3.13/site-packages/pygments/formatters/groff.py": 6480830447984073574, - "venv/lib/python3.13/site-packages/rapidfuzz/utils.pyi": 7400725037332728015, - "venv/lib/python3.13/site-packages/jsonschema/_legacy_keywords.py": 16481666133229715822, - "venv/lib/python3.13/site-packages/passlib/tests/test_ext_django_source.py": 15577951591316518967, - "venv/lib/python3.13/site-packages/pygments/formatters/other.py": 13124903290103898118, - "venv/lib/python3.13/site-packages/git/repo/base.py": 13975465345838683533, - "venv/lib/python3.13/site-packages/greenlet/greenlet_compiler_compat.hpp": 465436185632243991, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/fft.pyi": 14454280827038327842, - "venv/lib/python3.13/site-packages/numpy/matrixlib/__init__.pyi": 1942236362568669510, - "frontend/src/lib/components/dataset-review/__tests__/us2_semantic_workspace.ux.test.js": 3550956860258259058, - "backend/src/scripts/clean_release_cli.py": 14467814161661747234, - "backend/src/core/utils/dataset_mapper.py": 13413818977924738147, - "venv/lib/python3.13/site-packages/pydantic/_internal/_core_utils.py": 13248004771466837645, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_block_internals.py": 17935662848672401507, - "venv/lib/python3.13/site-packages/pandas/tests/config/test_config.py": 4630144191929135452, - "venv/lib/python3.13/site-packages/passlib/tests/test_utils_handlers.py": 556092537518149789, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-np0-objarr.npy": 1615546603475261360, - "venv/lib/python3.13/site-packages/pandas/tests/strings/conftest.py": 12065119814157197510, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_iceberg.py": 1726421917529457420, - "venv/lib/python3.13/site-packages/jose/backends/native.py": 50023158618000658, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_construction.py": 13953424340346625390, - "venv/lib/python3.13/site-packages/sqlalchemy/event/base.py": 18238453132776154057, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/util.cpython-313-x86_64-linux-gnu.so": 12473903676666680134, - "venv/lib/python3.13/site-packages/yaml/parser.py": 18021832376874455801, - "venv/lib/python3.13/site-packages/git/refs/reference.py": 2038789918710608481, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/horizontal_shard.py": 17615732108308858890, - "backend/src/models/dataset_review_pkg/_profile_models.py": 3121807680272913669, - "backend/src/services/llm_prompt_templates.py": 5706065356933042518, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arccosh.csv": 5882025767947638305, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/__init__.py": 5027355874704300832, - "venv/lib/python3.13/site-packages/pygments/lexers/gcodelexer.py": 13712494327007684318, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz.py": 1094797446508902066, - "venv/lib/python3.13/site-packages/rapidfuzz/_utils.py": 14374663810542207121, - "venv/lib/python3.13/site-packages/numpy/random/_sfc64.cpython-313-x86_64-linux-gnu.so": 17186695607612591922, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log10.csv": 13441294827017400897, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_constructors.py": 16197656939536784142, - "venv/lib/python3.13/site-packages/pygments/lexers/rust.py": 8605690716125176329, - "backend/src/schemas/dataset_review.py": 15720223123457526104, - "venv/lib/python3.13/site-packages/websockets/asyncio/router.py": 15039562376314233669, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/METADATA": 1266134223155266488, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/dim2.py": 5767600151459095125, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_values.py": 8372572954663628844, - "backend/src/core/task_manager/cleanup.py": 8316318318890394605, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py": 8079219938116542284, - "venv/lib/python3.13/site-packages/pydantic/errors.py": 3506829204186508192, - "venv/lib/python3.13/site-packages/numpy/_typing/_nbit_base.pyi": 6546751036506752550, - "venv/lib/python3.13/site-packages/attr/_next_gen.py": 16353246941851015420, - "venv/lib/python3.13/site-packages/PIL/FontFile.py": 112053841436523305, - "venv/lib/python3.13/site-packages/pandas/_libs/writers.pyi": 10494773026133244183, - "venv/lib/python3.13/site-packages/numpy/polynomial/hermite.pyi": 3573629536236108391, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/quoted_character/foo.f": 15318083678609435813, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_datetime.py": 1678885152993000592, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_info.py": 15151894356374015812, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/RECORD": 10552906886624188222, - "venv/lib/python3.13/site-packages/pandas/io/html.py": 2727247063231114153, - "venv/lib/python3.13/site-packages/pygments/styles/gruvbox.py": 9489017112545247388, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_cpp_exception.py": 11851283355840567373, - "venv/lib/python3.13/site-packages/_pytest/assertion/util.py": 16957445183087315124, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_types.py": 4083297168618981717, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_other.py": 783701524491896337, - "venv/lib/python3.13/site-packages/idna/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_os.h": 7883047506449405400, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_arrow_interface.py": 9757086292358759236, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/__init__.py": 9820770319106921495, - "venv/lib/python3.13/site-packages/urllib3/_version.py": 839747992523118887, - "venv/lib/python3.13/site-packages/starlette/endpoints.py": 3379755567024530053, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize.pyi": 6616985736007157309, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arithmetic.pyi": 10265823318697442495, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_constructors.pyi": 164538008396001632, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/test_na_scalar.py": 13950899907067372014, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/RECORD": 3288669175908898843, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23879.f90": 13174951794239860144, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_concatenate_chunks.py": 9693420220003544490, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_console.py": 11657469008721907972, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/licenses/LICENSE": 2345070715845618109, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/default_styles.py": 4469204219504675080, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_frame.py": 9378623452601244234, - "venv/lib/python3.13/site-packages/_pytest/_py/error.py": 2257336434271433543, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_comparison.py": 11333735187162513512, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/nested_schemas.py": 4114645644496880787, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/RECORD": 9803861100978586236, - "venv/lib/python3.13/site-packages/_pytest/stepwise.py": 3527630676691417317, - "venv/lib/python3.13/site-packages/pandas/_libs/parsers.cpython-313-x86_64-linux-gnu.so": 14134106903573638108, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/RECORD": 7320381591791379627, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_unicode.py": 1103608932321322989, - "venv/lib/python3.13/site-packages/pip/_internal/commands/debug.py": 13528633965821062950, - "venv/lib/python3.13/site-packages/pip/_internal/utils/packaging.py": 15555781487631855604, - "venv/lib/python3.13/site-packages/pip/_internal/utils/appdirs.py": 539688259643447487, - "venv/lib/python3.13/site-packages/multipart/__init__.py": 6496114190873890851, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/replace.py": 1708865864686705833, - "frontend/src/lib/components/reports/ReportDetailPanel.svelte": 16014663571033060148, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mysqldb.py": 2138006249556140141, - "backend/src/plugins/translate/preview_session_ops.py": 14499196532448992687, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/assignOnlyModule.f90": 15967199601254912096, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_nth.py": 17151595277666975085, - "frontend/src/routes/datasets/review/useReviewSession.js": 2378011913105385059, - "venv/lib/python3.13/site-packages/pip/_internal/models/selection_prefs.py": 14700113736620314923, - "venv/lib/python3.13/site-packages/pip/_internal/commands/__init__.py": 3795218871212151351, - "venv/lib/python3.13/site-packages/iniconfig/__init__.py": 12623265899068631092, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/unistring.py": 18037463865539157041, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh18335.f90": 1126438609189294255, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/reporter.py": 6510864297510700136, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/crud.py": 805684028038896506, - "venv/lib/python3.13/site-packages/fastapi/encoders.py": 1914192268055730299, - "venv/lib/python3.13/site-packages/sqlalchemy/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/locations/__init__.py": 8147012724727395488, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/__init__.py": 4752355175318979033, - "venv/lib/python3.13/site-packages/keyring/testing/util.py": 11195868112805409554, - "venv/lib/python3.13/site-packages/pandas/_libs/lib.pyi": 3049004444338566197, - "venv/lib/python3.13/site-packages/cryptography/hazmat/__init__.py": 6534110674636458866, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_hermite.py": 3628609433179387988, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_attr_equal.py": 5612259834202470413, - "venv/lib/python3.13/site-packages/pyasn1/type/tagmap.py": 14075859042659927673, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/WHEEL": 9788895026336324100, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/traceback.py": 2535227583726271746, - "venv/lib/python3.13/site-packages/pandas/_testing/__init__.py": 10127496080404419481, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html_style.tpl": 3352086677417301397, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_cte.py": 9274103293201050794, - "venv/lib/python3.13/site-packages/pygments/lexers/prql.py": 1159462562014166646, - "venv/lib/python3.13/site-packages/pygments/lexers/special.py": 4972294202790455038, - "frontend/build/_app/immutable/nodes/9.DlRMGlsh.js": 2466848614996704835, - "venv/lib/python3.13/site-packages/numpy/f2py/__version__.pyi": 9759534743796867731, - "venv/lib/python3.13/site-packages/ecdsa/_sha3.py": 10353612776869489378, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_datetime.py": 13781712980921881470, - "backend/src/core/scheduler.py": 2472649939852521889, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_time_series.py": 5205199092955498507, - "backend/src/plugins/translate/__tests__/__init__.py": 2490542523242946173, - "backend/tests/services/clean_release/test_demo_mode_isolation.py": 1970652424726919519, - "venv/lib/python3.13/site-packages/pandas/io/excel/_calamine.py": 13354427767660487637, - "backend/src/services/reports/normalizer.py": 14126578511060400795, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_tz_localize.py": 14495969595744172955, - "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs.pyi": 9282436354926617898, - "backend/src/plugins/translate/orchestrator_config.py": 1227864697811313446, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_spss.py": 4865360315909532603, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/conftest.py": 8406022190801970256, - "venv/lib/python3.13/site-packages/pydantic/typing.py": 6661252174518316760, - "venv/lib/python3.13/site-packages/fastapi/__init__.py": 11054203163075417954, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/conftest.py": 17514079438846557943, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_macos.py": 7028037591427052891, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_3kcompat.h": 5377305123299457337, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/mapped_collection.py": 11377280960650304531, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/measure.py": 18327922742808984428, - "venv/lib/python3.13/site-packages/PIL/TiffImagePlugin.py": 6845043550424565106, - "venv/lib/python3.13/site-packages/pip/_internal/models/format_control.py": 12916176880659590456, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/WHEEL": 9100692507274722091, - "venv/lib/python3.13/site-packages/_pytest/terminalprogress.py": 5490989904517343259, - "venv/lib/python3.13/site-packages/numpy/_typing/_ufunc.py": 16859854811012717088, - "venv/lib/python3.13/site-packages/greenlet/TStackState.cpp": 16720079760074325527, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/parameters.py": 5104015814292812973, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/common/block.f": 10727418304254548946, - "venv/lib/python3.13/site-packages/numpy/_core/numeric.pyi": 17785360553418386488, - "venv/lib/python3.13/site-packages/pandas/tests/test_nanops.py": 8709105600366913011, - "venv/lib/python3.13/site-packages/pygments/lexers/c_like.py": 13004061780700827047, - "venv/lib/python3.13/site-packages/pydantic/_internal/_generate_schema.py": 7343380095251236503, - "venv/lib/python3.13/site-packages/pygments/lexers/cplint.py": 13990118342267278047, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py": 2285778903282667561, - "frontend/src/lib/stores.js": 8062876368729352764, - "frontend/src/lib/components/assistant/__tests__/assistant_clarification.integration.test.js": 12258270009984504212, - "venv/lib/python3.13/site-packages/pandas/_libs/hashing.pyi": 5241441378073929968, - "venv/lib/python3.13/site-packages/uvicorn/middleware/message_logger.py": 14825516604555033580, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/liblber-1c9097e2.so.2.0.200": 2651879839738900594, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7592/__init__.py": 1398617034174236358, - "venv/lib/python3.13/site-packages/numpy/_core/einsumfunc.py": 11393954913234866059, - "venv/lib/python3.13/site-packages/pip/_internal/models/link.py": 7172346414535657925, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_timezones.py": 1962830142478494009, - "frontend/src/components/tools/MapperTool.svelte": 5334953422209152843, - "backend/src/core/auth/repository.py": 7314530014494164270, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/WHEEL": 691462085217888236, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/npyio.pyi": 14147712281086095231, - "backend/src/plugins/translate/orchestrator_sql_rows.py": 13473935462270832541, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/base.py": 3628510830969664111, - "backend/src/services/clean_release/manifest_builder.py": 16346123266638264874, - "venv/lib/python3.13/site-packages/more_itertools/recipes.py": 5254043689078173976, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_loongarch64_linux.h": 6566098590441297326, - "venv/lib/python3.13/site-packages/requests/cookies.py": 4997226307650350876, - "venv/lib/python3.13/site-packages/httpx/__init__.py": 6383055693166097719, - "venv/lib/python3.13/site-packages/authlib/jose/drafts/__init__.py": 4770885427721822507, - "venv/lib/python3.13/site-packages/pydantic_settings/__init__.py": 4374954204580208673, - "venv/lib/python3.13/site-packages/numpy/typing/__init__.py": 3608665862759745048, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi": 9294219058621261971, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64dxsm-testset-2.csv": 16611724551361692999, - "venv/lib/python3.13/site-packages/python_multipart/multipart.py": 5677735019292537174, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_copy_deprecation.py": 16045426957636349035, - "venv/lib/python3.13/site-packages/referencing/typing.py": 8296636464219681747, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/RECORD": 5169907629260560698, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/util.py": 9373891872370603585, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_xs.py": 1897144171324167738, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_concat.py": 10207975532842927134, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/licenses/LICENSE": 17020744174398828059, - "venv/lib/python3.13/site-packages/click/testing.py": 15973659312284678327, - "venv/lib/python3.13/site-packages/keyring/__main__.py": 14602212239605295451, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_shape_base.py": 8837845103338426570, - "venv/lib/python3.13/site-packages/numpy/f2py/auxfuncs.pyi": 10077265709692546934, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/funcfortranname.f": 9330535808093475892, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/LICENSE": 16343563559291870811, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_map.py": 6556132946198785761, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_chaining_and_caching.py": 11784574265874608859, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pillow.libs/libavif-01e67780.so.16.3.0": 13947441788826399574, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_conversion.py": 7507083194555424923, - "venv/lib/python3.13/site-packages/pandas/io/formats/console.py": 10370334487585281127, - "venv/lib/python3.13/site-packages/pandas/io/formats/__init__.py": 18140261896107421679, - "venv/lib/python3.13/site-packages/cffi/parse_c_type.h": 9889309594462820068, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/extending_distributions.pyx": 15302775787158991386, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/resource_protector.py": 14354891358060085360, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/oauth2_client.py": 6742098857947604729, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_utils.pyi": 3708905060001289515, - "venv/lib/python3.13/site-packages/passlib/utils/compat/_ordered_dict.py": 14248790502300368024, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_character.py": 17168707712220699738, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_dict_of_blocks.py": 11646835537993064324, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/assertions.py": 5556667947376168765, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py": 6152202474302791232, - "venv/lib/python3.13/site-packages/fastapi/types.py": 3867821246650502267, - "venv/lib/python3.13/site-packages/pip/_internal/cli/cmdoptions.py": 12107733000019393631, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py": 353446217435156470, - "venv/lib/python3.13/site-packages/yaml/emitter.py": 6036657460416912844, - "venv/lib/python3.13/site-packages/yaml/composer.py": 13619070314468518566, - "venv/lib/python3.13/site-packages/numpy/lib/_utils_impl.pyi": 15767546107856827543, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/RECORD": 18294169019244826301, - "frontend/src/lib/utils/debounce.js": 16884470786640632815, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_where.py": 16584772339591698754, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/meson.build": 9642189398934130247, - "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/extension_types.py": 1856757457657310231, - "venv/bin/uvicorn": 3776670267111625708, - "frontend/src/routes/translate/history/+page.svelte": 9504117584329454876, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arcsin.csv": 1665171675551692225, - "venv/lib/python3.13/site-packages/pandas/tests/internals/test_api.py": 11217428888457119601, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_results.py": 18145930285449734975, - "venv/lib/python3.13/site-packages/pandas/_libs/ops.pyi": 1192312467209548763, - "venv/lib/python3.13/site-packages/referencing/tests/test_exceptions.py": 10846225989746274213, - "venv/lib/python3.13/site-packages/websockets/sync/router.py": 10335595955948355382, - "venv/lib/python3.13/site-packages/dotenv/variables.py": 5438726379749803751, - "venv/lib/python3.13/site-packages/numpy/lib/_array_utils_impl.py": 14446508217220482719, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/build_tracker.py": 9389444024234384408, - "venv/lib/python3.13/site-packages/numpy/ma/__init__.pyi": 1855615156913010107, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_clip.py": 13498704233745189154, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_cpu.h": 13799366908726531089, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_asof.py": 15792528637923603240, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/__init__.py": 16434403703599680307, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE": 14610443802372107702, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/METADATA": 16498441272591167134, - "venv/lib/python3.13/site-packages/passlib/crypto/__init__.py": 16409196868630049365, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/min_max_.py": 13457611930368041821, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_cumulative.py": 6346947559103505068, - "venv/lib/python3.13/site-packages/more_itertools/more.py": 1631135582441184133, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_round.py": 8336918400205461173, - "venv/lib/python3.13/site-packages/fastapi/middleware/cors.py": 7452860773712601508, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/METADATA": 6557531107125553027, - "venv/lib/python3.13/site-packages/_pytest/_io/wcwidth.py": 13515196388826152383, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/__init__.py": 16146480198665866916, - "venv/lib/python3.13/site-packages/pygments/lexers/textedit.py": 14872291021083255414, - "venv/lib/python3.13/site-packages/pygments/lexers/sieve.py": 15757825442941567629, - "venv/lib/python3.13/site-packages/pygments/lexers/webmisc.py": 9530962803076253849, - "frontend/src/routes/settings/EnvironmentsTab.svelte": 1326318857426265025, - "frontend/build/_app/immutable/nodes/20.DBjaXoRj.js": 8196764530953122359, - "backend/src/plugins/translate/preview_constants.py": 2758310812709243203, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py": 15130871412783076140, - "backend/src/services/clean_release/stages/manifest_consistency.py": 14323717074129560178, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_pivot_multilevel.py": 9830258607305392103, - "venv/lib/python3.13/site-packages/pygments/lexers/_ada_builtins.py": 16331776886501464264, - "venv/lib/python3.13/site-packages/pandas/core/window/rolling.py": 6316477981414191778, - "venv/bin/pyrsa-priv2pub": 16766314338551408621, - "frontend/src/lib/components/assistant/__tests__/assistant_first_message.integration.test.js": 16494645867501045726, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_f2py2e.py": 8571347023940385644, - "venv/lib/python3.13/site-packages/greenlet/greenlet_slp_switch.hpp": 1694714764745718414, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/__init__.py": 1923528231486706442, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/connection.py": 8190661510572400096, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286.f90": 1249061697041863692, - "venv/lib/python3.13/site-packages/pandas/_config/dates.py": 3863381688916127265, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_ops.py": 3875181889032080505, - "venv/bin/pytest": 2593802493707545818, - "venv/lib/python3.13/site-packages/ecdsa/test_eddsa.py": 1785854649532849946, - "venv/lib/python3.13/site-packages/pandas/_libs/arrays.pyi": 12629806207276576877, - "venv/lib/python3.13/site-packages/pandas/io/sas/sasreader.py": 12766780210114366112, - "venv/lib/python3.13/site-packages/numpy/random/_pcg64.pyi": 14785496840737986355, - "venv/lib/python3.13/site-packages/starlette/middleware/exceptions.py": 10408538054406276433, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/hist.py": 10928173425078493095, - "venv/lib/python3.13/site-packages/bcrypt/_bcrypt.pyi": 15067467792538416274, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/__init__.py": 12975130533860125272, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_reindex.py": 15680924058960901067, - "venv/lib/python3.13/site-packages/starlette/middleware/trustedhost.py": 8302185291610019926, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/RECORD": 14375680579341422646, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/scoping.py": 18223258186431020473, - "frontend/src/routes/profile/__tests__/fixtures/profile.fixtures.js": 2726190101012864209, - "backend/src/core/encryption_key.py": 10697135200011385036, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/warnings_and_errors.py": 11172336980866895356, - "venv/lib/python3.13/site-packages/pandas/compat/_optional.py": 12714208019736797073, - "venv/lib/python3.13/site-packages/requests/adapters.py": 17161109043243436200, - "venv/lib/python3.13/site-packages/httpx/_utils.py": 4836536051177895209, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/sdist.py": 9490366272695301385, - "venv/lib/python3.13/site-packages/numpy/tests/test_scripts.py": 5790352482583964348, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/subrout.f": 18215492757907465667, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_recfunctions.py": 16014503284544747867, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_first_valid_index.py": 15763400665851423183, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/test_numba.py": 8250377774229977284, - "venv/lib/python3.13/site-packages/pycparser/c_generator.py": 14922277346364091122, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/totp.py": 11888568940387752607, - "frontend/build/_app/immutable/chunks/DSVdJG2-.js": 9023826012197734009, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_arithmetic.py": 17449383588949771785, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/RECORD": 963865046004908868, - "venv/lib/python3.13/site-packages/authlib/oauth1/errors.py": 1154126353335030046, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rename_axis.py": 12432900682994622455, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/extending.pyx": 756189645898997788, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/text.py": 6096215585499446070, - "venv/lib/python3.13/site-packages/pandas/core/interchange/dataframe.py": 16525846817331842080, - "backend/src/api/routes/git/_config_routes.py": 6093940098740660772, - "venv/lib/python3.13/site-packages/numpy/lib/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/groupby.py": 14661033005768429774, - "frontend/src/lib/components/translate/TranslationRunGlobalIndicator.svelte": 16210598715819306972, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arrayprint.pyi": 2053388407376896377, - "venv/lib/python3.13/site-packages/pandas/io/parsers/__init__.py": 11752833703934347122, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_common.py": 3559416690270529904, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_value_counts.py": 13270420637302622174, - "venv/lib/python3.13/site-packages/pygments/lexers/nit.py": 18262907536841158657, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_constructors.py": 11065058462752831997, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/resultproxy.pyx": 5760108632332714287, - "backend/src/models/connection.py": 7467905739729526898, - "venv/lib/python3.13/site-packages/greenlet/PyGreenlet.cpp": 7360124705400993707, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/__init__.py": 17454177076687312424, - "venv/lib/python3.13/site-packages/anyio/_core/_tasks.py": 14104828341875599130, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/cells.py": 8299309127027168194, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/live.py": 8586058300967410643, - "venv/lib/python3.13/site-packages/jaraco/context/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/METADATA": 6438256145634479451, - "venv/lib/python3.13/site-packages/pydantic/deprecated/parse.py": 819235411736647763, - "venv/lib/python3.13/site-packages/keyring/util/platform_.py": 16978095707950463638, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/base.py": 13444129650880426353, - "frontend/src/lib/components/layout/__tests__/test_taskDrawer.svelte.js": 15288009749873977442, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq_py.py": 16054175754674285311, - "venv/lib/python3.13/site-packages/pydantic/v1/datetime_parse.py": 10467114625921924095, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/array_constructors.pyi": 4993066609272697419, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-expm1.csv": 8710594949902856122, - "venv/lib/python3.13/site-packages/click/decorators.py": 2920877667855377423, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_py.py": 13809503317864539103, - "frontend/build/_app/immutable/nodes/10.COlRD-Eh.js": 13513237299722070120, - "venv/lib/python3.13/site-packages/numpy/typing/tests/test_runtime.py": 12534621594420844770, - "backend/src/core/utils/superset_context_extractor/_templates.py": 6790136732701012567, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/__init__.py": 11283047029180207588, - "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs_scalars.py": 652332294655046106, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_comparison.py": 5348781442514871089, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/array.py": 13840510238256626632, - "venv/lib/python3.13/site-packages/charset_normalizer/utils.py": 11724147997933584095, - "venv/lib/python3.13/site-packages/pandas/tests/test_aggregation.py": 16863055892192070549, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api_latest.c": 5472633890472031814, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/asyncmy.py": 11808138763443525443, - "venv/lib/python3.13/site-packages/pygments/lexers/wowtoc.py": 17527844575999013592, - "backend/git_repos/remote/test-repo.git/refs/heads/feature/test": 7714224145564125988, - "venv/lib/python3.13/site-packages/numpy/_typing/__init__.py": 18242238390157333247, - "frontend/src/components/storage/FileList.svelte": 11661146151896000393, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_names.py": 10037208029090713121, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_timegrouper.py": 276805119790266454, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/wsproto_impl.py": 3072714633272661847, - "backend/src/services/llm_provider.py": 9619956052011769991, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/emoji.py": 9166774203918731896, - "venv/lib/python3.13/site-packages/_pytest/terminal.py": 885450969703476729, - "venv/lib/python3.13/site-packages/pip/_internal/commands/show.py": 11839987586497822300, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/__init__.py": 15130871412783076140, - "frontend/e2e/run-e2e.sh": 8106714116467101372, - "venv/lib/python3.13/site-packages/fastapi/_compat/main.py": 13016492818231995760, - "venv/lib/python3.13/site-packages/fastapi/openapi/constants.py": 1111838716953068285, - "venv/lib/python3.13/site-packages/passlib/handlers/cisco.py": 15004707325761459775, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_constructors.py": 13890224577680389718, - "venv/lib/python3.13/site-packages/git/objects/submodule/base.py": 10140490301897269395, - "venv/lib/python3.13/site-packages/pip/_internal/locations/_sysconfig.py": 4773855595767526182, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_numpy.py": 222383250675686477, - "frontend/src/lib/stores/__tests__/taskDrawer.test.js": 12307450726550947042, - "venv/lib/python3.13/site-packages/_pytest/reports.py": 13930709338396699351, - "venv/lib/python3.13/site-packages/PIL/AvifImagePlugin.py": 1872412416505003364, - "venv/lib/python3.13/site-packages/starlette/background.py": 10232175205397808417, - "venv/lib/python3.13/site-packages/apscheduler/executors/debug.py": 14072221218785494847, - "venv/lib/python3.13/site-packages/pandas/core/computation/expressions.py": 10684284531040203747, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/implicit.py": 5400555157488808948, - "venv/lib/python3.13/site-packages/uvicorn/_types.py": 3339389597716220585, - "frontend/build/_app/immutable/chunks/Bu6g0tul.js": 17283269274186886249, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.py": 17538029557373507617, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jws_algs.py": 11920621906391796226, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/roles.py": 5448455900674232810, - "venv/lib/python3.13/site-packages/pandas/core/computation/check.py": 16048939716341154196, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/metadata.py": 7204343250279221076, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_matmul.py": 16169282225324014901, - "venv/lib/python3.13/site-packages/pygments/lexers/thingsdb.py": 6073447481627395832, - "venv/lib/python3.13/site-packages/anyio/streams/tls.py": 4191898645554875562, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatter.py": 16499277113779414101, - "venv/lib/python3.13/site-packages/pydantic_settings/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/rapidfuzz/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_add_prefix_suffix.py": 8367793476246001244, - "venv/lib/python3.13/site-packages/numpy/_utils/_convertions.pyi": 362674842164060822, - "venv/lib/python3.13/site-packages/pandas/io/excel/_openpyxl.py": 6676451564208867775, - "venv/lib/python3.13/site-packages/httpcore/_async/http2.py": 16350817785499681224, - "frontend/src/routes/datasets/review/[id]/__tests__/dataset_review_workspace.ux.test.js": 4105775024258653726, - "frontend/src/components/Navbar.svelte": 10594730954703520477, - "frontend/build/index.html": 17585356623937136822, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/licenses/LICENSE": 3868190977070717994, - "venv/lib/python3.13/site-packages/jeepney/io/__init__.py": 2568357146184259175, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/api.py": 13134394673408254097, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/RECORD": 7266315886702289726, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_like.pyi": 1968570015765106620, - "venv/lib/python3.13/site-packages/pandas/core/arrays/period.py": 11560984428402318984, - "venv/lib/python3.13/site-packages/PIL/PcxImagePlugin.py": 1691405132377495336, - "backend/src/services/health_service.py": 7295235621662158359, - "backend/src/services/dataset_review/clarification_pkg/_helpers.py": 6932823569205132371, - "backend/src/plugins/llm_analysis/models.py": 10099813950073320264, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/conftest.py": 12368472226536104037, - "venv/lib/python3.13/site-packages/passlib/tests/_test_bad_register.py": 5446848310854472376, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/METADATA": 4975169119201255384, - "venv/lib/python3.13/site-packages/anyio/abc/_streams.py": 8089057973257658396, - "backend/git_repos/remote/test-repo.git/hooks/pre-applypatch.sample": 15598058327720909861, - "venv/lib/python3.13/site-packages/pygments/styles/vs.py": 4188729978573652106, - "venv/bin/pyrsa-decrypt": 10929163076272054227, - "venv/lib/python3.13/site-packages/pygments/lexers/_asy_builtins.py": 1665617945818958781, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_ujson.py": 12184194085993665945, - "venv/lib/python3.13/site-packages/websockets/legacy/handshake.py": 376095144657994920, - "frontend/src/components/PasswordPrompt.svelte": 13739802421315835398, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/use_modules.f90": 3913612933340746297, - "frontend/src/lib/components/translate/BulkCorrectionSidebar.svelte": 10114621552038076221, - "venv/lib/python3.13/site-packages/_pytest/assertion/__init__.py": 16392348866405910618, - "venv/lib/python3.13/site-packages/sqlalchemy/connectors/pyodbc.py": 4146960201984489604, - "venv/lib/python3.13/site-packages/numpy/lib/stride_tricks.pyi": 5879290708972838025, - "venv/lib/python3.13/site-packages/numpy/_core/multiarray.pyi": 3494871767602648807, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/information_schema.py": 8551227132710897346, - "venv/lib/python3.13/site-packages/click/__init__.py": 9261629899056870564, - "venv/lib/python3.13/site-packages/secretstorage/item.py": 15486045386471912693, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata_editable.py": 12494407279914732338, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_orc.py": 1248059610437937895, - "venv/lib/python3.13/site-packages/PIL/ImageText.py": 15322496455608242001, - "frontend/src/components/tasks/TaskLogPanel.svelte": 4685456099513280294, - "frontend/build/_app/immutable/chunks/D2rm1xQZ.js": 2575467210086845899, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py": 10843527833285941674, - "venv/lib/python3.13/site-packages/keyring/compat/py312.py": 17581691618899404491, - "frontend/src/routes/reports/llm/[taskId]/+page.svelte": 14394593511269407852, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_ewm.py": 12153690217678546798, - "venv/lib/python3.13/site-packages/sqlalchemy/inspection.py": 8563914460959280101, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/PIL/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/utils/filetypes.py": 4415340223268174913, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_where.py": 3272402211717453881, - "frontend/vitest.config.js": 142965001777137074, - "frontend/src/routes/dashboards/health/__tests__/health_page.integration.test.js": 11653729504599199718, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/__init__.py": 9106887608906281686, - "backend/src/plugins/llm_analysis/__tests__/test_screenshot_service.py": 17792688368296989200, - "backend/test.db": 15130871412783076140, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi": 3533739482029983817, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/syntax.py": 18070449217682341495, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_stata.py": 3030675968330529905, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/__init__.py": 1798074863773727377, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_windows.py": 13341168721223961872, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_interface.py": 13648006002292914247, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/status.py": 2214590120238144582, - "venv/lib/python3.13/site-packages/numpy/_core/overrides.pyi": 13121243505132110607, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_errstate.py": 10788459171326750780, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/dtype.py": 5553691086633215767, + "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_xml.py": 6906547816798138000, "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_array.py": 16867692337986161626, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/orm.py": 7554417559838785150, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_asof.py": 17616601748321325187, - "frontend/src/lib/api/translate/jobs.js": 9613844538417291513, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/hashes.py": 8545380307201732345, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_function_base.py": 16624804022675533740, - "backend/src/api/routes/datasets.py": 8495307661445562003, - "venv/lib/python3.13/site-packages/pygments/lexers/javascript.py": 16869490851285457857, - "venv/lib/python3.13/site-packages/pip/_vendor/distro/distro.py": 12494639376332486204, - "venv/lib/python3.13/site-packages/pandas/core/reshape/tile.py": 17137524194129840833, - "venv/lib/python3.13/site-packages/pandas/io/json/_table_schema.py": 3103776773020058805, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/azure.py": 13529763490186254462, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_timedeltaindex.py": 2359681317403710563, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/__init__.py": 16211693040174992594, - "venv/lib/python3.13/site-packages/pygments/formatters/img.py": 18230180171537565208, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/RECORD": 3283324710045856319, - "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/lexers/php.py": 17636450950688953288, + "backend/src/core/utils/__init__.py": 12454773556575864508, + "build.sh": 14606128418937696284, "venv/lib/python3.13/site-packages/starlette/templating.py": 9242638124487797988, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/WHEEL": 3749476255729626245, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/setitem.py": 9552868454186447925, - "venv/lib/python3.13/site-packages/PIL/ImageShow.py": 11437096951764124817, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_indexing.py": 4334578480714520407, - "venv/lib/python3.13/site-packages/pydantic/v1/decorator.py": 6124748023704700724, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/redis.py": 11313520438600819390, - "venv/lib/python3.13/site-packages/passlib/tests/backports.py": 17098448557554464521, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg.py": 8023549900603235601, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/foo.f": 6349567809926050379, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/conftest.py": 9673372914396625461, - "frontend/src/lib/ui/LanguageSwitcher.svelte": 3899734183369041614, - "venv/lib/python3.13/site-packages/jeepney/low_level.py": 6546206679858571608, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/oracledb.py": 7158791242292470472, - "venv/lib/python3.13/site-packages/pygments/styles/rrt.py": 9490973359165080360, - "venv/lib/python3.13/site-packages/secretstorage/collection.py": 17903258621904912493, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/licenses/LICENSE": 6653202620765194772, - "venv/lib/python3.13/site-packages/apscheduler/triggers/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_use.f90": 2657057181044959432, - "backend/src/services/clean_release/__tests__/test_manifest_builder.py": 9320699981861675127, - "venv/lib/python3.13/site-packages/numpy/_core/_dtype.py": 7796703383405149774, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_finalize.py": 12539815426478689538, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/AB.inc": 10441778083831997423, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/putmask.py": 10934101690788549526, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_transform.py": 18159263102656491974, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_describe.py": 14493300276133670380, - "venv/lib/python3.13/site-packages/pygments/lexers/cddl.py": 1303059539145221713, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/util/__init__.py": 15821192733097665649, - "frontend/src/lib/components/reports/__tests__/report_type_profiles.test.js": 498330292141991614, - "backend/tests/test_task_manager.py": 1706217361689506763, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/missing.py": 14589973874359353799, - "backend/src/services/clean_release/policy_resolution_service.py": 5075709738950902327, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_msvc.h": 17581467060937454503, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oidc/core/models.py": 1370998944213578392, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_m68k_gcc.h": 6580173800099450404, - "backend/alembic/README": 17625003422504608299, - "venv/lib/python3.13/site-packages/jeepney/fds.py": 16573439672758641560, - "venv/lib/python3.13/site-packages/pip/_internal/cli/main.py": 9304034369762028739, - "venv/lib/python3.13/site-packages/numpy/lib/_ufunclike_impl.pyi": 9854069702366900663, - "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/test_from_records.py": 12217508428903265797, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/regexopt.py": 16073437303824961930, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/token.py": 4161760290367932793, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_assign.py": 2647902466315482406, - "frontend/src/routes/storage/+page.svelte": 5003283673039328108, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/content": 12465123883296161860, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm32_ios.h": 6751259472945638998, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/common_with_division.f": 13517753924061311074, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_printing.py": 1901396869745313303, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libldap-2974a1ba.so.2.0.200": 13590569080612602445, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/utils.py": 2959395751217827103, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/generic.py": 17755579497690180620, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_formats.py": 17821648708413143557, - "venv/lib/python3.13/site-packages/uvicorn/middleware/proxy_headers.py": 13206297306768491360, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/keywrap.py": 10424037418528425800, - "venv/lib/python3.13/site-packages/pygments/lexers/tact.py": 1164971357219795420, - "venv/lib/python3.13/site-packages/pygments/lexers/teal.py": 10004159499175716139, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi": 7385072545198817771, - "venv/lib/python3.13/site-packages/attrs/__init__.py": 9502968706258875910, - "venv/lib/python3.13/site-packages/pydantic/deprecated/json.py": 17692639396786690144, - "frontend/src/routes/git/+page.svelte": 14169430923974356254, - "backend/src/services/profile_service.py": 7430451608615934464, - "backend/src/core/__tests__/test_native_filters.py": 823253235973274872, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/__init__.py": 12849371269359608058, - "venv/lib/python3.13/site-packages/pip/_internal/network/cache.py": 10606522397693824641, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_defmatrix.py": 2982572083770917411, - "venv/lib/python3.13/site-packages/charset_normalizer/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/util/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/greenlet/CObjects.cpp": 3454797518210223926, - "backend/src/plugins/translate/dictionary_validation.py": 16674754716565921261, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/mod.pyi": 10591120373577657317, - "venv/lib/python3.13/site-packages/PIL/ImageQt.py": 6607270889359138659, - "venv/lib/python3.13/site-packages/pycparser/lextab.py": 16045770806700381661, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cpu_dispatcher.py": 2063037275809439611, - "venv/lib/python3.13/site-packages/numpy/_core/multiarray.py": 4484782354376574355, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py": 14946223589457772924, - "venv/lib/python3.13/site-packages/pandas/tests/extension/date/__init__.py": 16789767433439616593, - "venv/lib/python3.13/site-packages/pydantic/v1/validators.py": 1060954771151908883, - "backend/git_repos/remote/test-repo.git/objects/c2/491dfd8c841bacd5f491510f6334aa4a626f00": 6297303620364618482, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/__init__.py": 14481526616887213120, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64-testset-2.csv": 4052796393463357888, - "venv/lib/python3.13/site-packages/PIL/__init__.py": 10393984345353752724, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_describe.py": 362374422228593281, - "backend/src/services/dataset_review/clarification_engine.py": 13640221555439415988, - "frontend/build/_app/immutable/chunks/BIIQCMQD.js": 10069504695005052902, - "venv/lib/python3.13/site-packages/pyasn1/codec/der/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/greenlet/_greenlet.cpython-313-x86_64-linux-gnu.so": 6036818030377883416, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_isoc.py": 4923640657296076239, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/fields.cpython-313-x86_64-linux-gnu.so": 16927263232848238698, - "venv/lib/python3.13/site-packages/pygments/lexers/graphql.py": 2307854666015224677, - "venv/lib/python3.13/site-packages/httpx/_multipart.py": 2181282475656908730, - "venv/lib/python3.13/site-packages/uvicorn/middleware/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_missing.py": 2976310411820303374, - "venv/lib/python3.13/site-packages/starlette/middleware/gzip.py": 4321371046149637632, - "venv/lib/python3.13/site-packages/numpy/_core/tests/_locales.py": 18178500267053825979, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/websockets_impl.py": 15673691977157706075, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_convert_dtypes.py": 5005259275646154894, - "venv/lib/python3.13/site-packages/pydantic/networks.py": 15767095796055034509, - "venv/lib/python3.13/site-packages/pygments/lexers/maple.py": 7402467573829618534, - "venv/lib/python3.13/site-packages/pygments/lexers/rdf.py": 14488319292387226505, - "venv/lib/python3.13/site-packages/_pytest/python.py": 1829073958095716309, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/manifest.py": 16998683210177680416, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nbit_base_example.pyi": 8571452382806614924, - "venv/lib/python3.13/site-packages/numpy/_core/getlimits.pyi": 15746478550640231553, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_update.py": 9098258267671647783, - "venv/lib/python3.13/site-packages/pygments/lexers/ldap.py": 17455983150181177257, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_datetime.py": 11417836378782978454, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/selectable.py": 14646717349365560549, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/numerictypes.py": 5719374287454872555, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/jwe.py": 10478268710546063196, - "venv/lib/python3.13/site-packages/keyring/util/__init__.py": 9635016046220094473, - "venv/lib/python3.13/site-packages/pydantic/_internal/_git.py": 8760779092674434712, - "venv/lib/python3.13/site-packages/numpy/__config__.pyi": 1422114139050700402, - "venv/lib/python3.13/site-packages/pandas/util/_decorators.py": 14780166101442507665, - "venv/lib/python3.13/site-packages/fastapi/security/utils.py": 2616633862993539558, - "venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py": 10265081145401348863, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/__init__.py": 8093984834068317399, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/resource_protector.py": 4823504113176750140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_crackfortran.py": 10278720705326601943, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_fillna.py": 7349777469648334282, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/naming.py": 14503932124671438340, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/padding.py": 11244071766694094554, - "venv/lib/python3.13/site-packages/requests/auth.py": 912521029864094489, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_year.py": 17441853503700184299, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arrayobject.py": 13337664596833150958, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_readlines.py": 15928258358116399067, - "backend/git_repos/remote/test-repo.git/objects/99/38d17c3f4199e53e4d4ebc253fe9c840caa505": 8414792171590415839, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_drop.py": 11341278355685583133, - "venv/lib/python3.13/site-packages/jeepney/tests/test_bindgen.py": 8637878018232418583, - "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_builtin.py": 74545289993348593, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_nlargest.py": 1423106021399469694, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_astype.py": 6578539240745332772, - "venv/lib/python3.13/site-packages/jose/backends/ecdsa_backend.py": 2684176977865283060, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/boxplot.py": 7090586111222952862, - "venv/lib/python3.13/site-packages/passlib/pwd.py": 14727089240749133060, - "venv/lib/python3.13/site-packages/anyio/abc/_resources.py": 8330687082933028623, - "venv/lib/python3.13/site-packages/passlib/utils/__init__.py": 11704122205941631503, - "venv/lib/python3.13/site-packages/jeepney/io/tests/test_trio.py": 7459901627473962540, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi": 16934250836612138541, - "venv/lib/python3.13/site-packages/passlib/handlers/mysql.py": 11165762635383041460, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_shift.py": 14681514853406253657, - "venv/lib/python3.13/site-packages/numpy/matrixlib/defmatrix.py": 4940170059946018356, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_keys.py": 10813898277355150779, - "venv/lib/python3.13/site-packages/pygments/lexers/yang.py": 7409365668425173823, - "venv/lib/python3.13/site-packages/pandas/_libs/internals.cpython-313-x86_64-linux-gnu.so": 2008633361686956377, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_unsupported.py": 9115440166074553860, - "venv/lib/python3.13/site-packages/pygments/lexers/ptx.py": 4855144232064607995, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/util.py": 2866856507760047219, - "venv/lib/python3.13/site-packages/jose/jwe.py": 3325660353225624025, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timezones.pyi": 17528421279543420867, - "venv/lib/python3.13/site-packages/attr/_cmp.py": 3297594878548179300, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mariadbconnector.py": 14865906347579451546, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/authorization_server.py": 4427151727224472650, - "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_salsa.py": 1756536674254931838, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_django.py": 8455054295577203929, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/pg8000.py": 6580512354643849828, - "venv/lib/python3.13/site-packages/pygments/lexers/gsql.py": 15294109558028161389, - "venv/lib/python3.13/site-packages/pygments/lexers/email.py": 4355246279485460399, - "frontend/src/lib/api/translate/corrections.js": 3619404083693055292, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/legacy/__init__.py": 15130871412783076140, - "backend/src/api/routes/__tests__/test_dashboards.py": 14899529124453053148, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_backend.py": 1472021608501071055, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/base.py": 17992335652981439676, - "venv/lib/python3.13/site-packages/_pytest/cacheprovider.py": 5114545353355728201, - "venv/lib/python3.13/site-packages/_pytest/threadexception.py": 10464996327276961035, - "venv/lib/python3.13/site-packages/numpy/random/_examples/numba/extending.py": 16515485226251040454, - "venv/lib/python3.13/site-packages/jaraco/functools/__init__.py": 15334412919279565528, - "venv/lib/python3.13/site-packages/numpy/_core/fromnumeric.pyi": 13945478633722616250, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/dependency.py": 7300594038182867460, - "backend/tests/test_log_persistence.py": 11073909507089982937, - "venv/lib/python3.13/site-packages/jose/utils.py": 1926138853970725083, - "venv/lib/python3.13/site-packages/pydantic/datetime_parse.py": 196119761382305574, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_formats.py": 5259100336852479395, - "frontend/src/routes/datasets/review/__tests__/dataset_review_entry.test.js": 7689381541193660594, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test__iotools.py": 6260912730310453037, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/fixed_string.f90": 8654788371538544793, - "venv/lib/python3.13/site-packages/pandas/tests/series/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/validation": 5398883285871046811, - "venv/lib/python3.13/site-packages/pip/_internal/index/collector.py": 7454652626329467900, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/test_as_unit.py": 4283520188709399244, - "backend/src/plugins/translate/__tests__/test_executor.py": 14442607617569532284, - "venv/lib/python3.13/site-packages/numpy/ma/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/passlib/tests/test_ext_django.py": 3210697476292094384, - "venv/lib/python3.13/site-packages/pyasn1/error.py": 11036037300994516747, - "venv/lib/python3.13/site-packages/starlette/applications.py": 13591448461234020757, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_xlsxwriter.py": 8445547874832015203, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_cumulative.py": 15644124412739892167, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/reflection.py": 1799734694597531652, - "frontend/src/lib/stores/__tests__/setupTests.js": 13316015450930652502, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_pivot.py": 334735766122314163, - "backend/src/plugins/translate/preview.py": 12468944154723146020, - "venv/lib/python3.13/site-packages/cryptography/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/RECORD": 1689342214025776630, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_bool.py": 433342705586552936, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/__init__.py": 11009955319062089477, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_matrix_linalg.py": 2858987911347541177, - "venv/lib/python3.13/site-packages/pandas/core/indexes/period.py": 1181348384346239378, - "venv/lib/python3.13/site-packages/pygments/lexers/foxpro.py": 14032656072384708293, - "venv/lib/python3.13/site-packages/rpds/rpds.cpython-313-x86_64-linux-gnu.so": 561326734302492859, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/WHEEL": 11630459739183915695, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_tz_localize.py": 4937713043686953098, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_delitem.py": 14336697139511118920, - "venv/lib/python3.13/site-packages/pandas/core/groupby/generic.py": 4857114071347950833, - "venv/lib/python3.13/site-packages/pandas/errors/cow.py": 14381282473643980776, - "venv/lib/python3.13/site-packages/pandas/compat/numpy/__init__.py": 1037113402100731082, - "venv/lib/python3.13/site-packages/pygments/lexers/agile.py": 5686162551416231457, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/gevent.py": 4811840397266785551, - "venv/lib/python3.13/site-packages/pandas/core/computation/scope.py": 16859504937881548797, - "venv/lib/python3.13/site-packages/idna-3.11.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/h11/_version.py": 9334144031400715479, - "venv/lib/python3.13/site-packages/pandas/_libs/index.cpython-313-x86_64-linux-gnu.so": 18409579812171549318, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_interval.py": 8549680643865283913, - "venv/lib/python3.13/site-packages/pandas/util/_validators.py": 10201915528715968165, - "merge_kilo.py": 4282227344165325430, - "frontend/src/components/git/GitMergeDialog.svelte": 17029360862035548928, - "venv/lib/python3.13/site-packages/pygments/lexers/tls.py": 3552078393009383412, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_deprecated_kwargs.py": 10379929935087904974, - "venv/lib/python3.13/site-packages/PIL/PalmImagePlugin.py": 13008868719182630239, - "venv/lib/python3.13/site-packages/pygments/lexers/web.py": 11104721221615804497, - "venv/lib/python3.13/site-packages/jeepney/wrappers.py": 15234251727654692435, - "venv/lib/python3.13/site-packages/pygments/styles/stata_dark.py": 324072437809944751, - "frontend/src/lib/components/reports/__tests__/reports_list.ux.test.js": 16252194679528846126, - "venv/lib/python3.13/site-packages/pyasn1/type/tag.py": 13912273274509186651, - "venv/lib/python3.13/site-packages/greenlet/tests/test_tracing.py": 10227316489696807112, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/__init__.py": 10357835306532281617, - "venv/lib/python3.13/site-packages/greenlet/TThreadStateDestroy.cpp": 13749797532421836328, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arrayterator.py": 3076316311545674897, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_compat.py": 6032546839876195115, - "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_impl.py": 12056958946481531279, - "venv/lib/python3.13/site-packages/annotated_types/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/smmap/test/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_apply_relabeling.py": 5600949862632014700, - "venv/lib/python3.13/site-packages/pandas/_libs/parsers.pyi": 18402185996588014111, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_constructors.py": 5627819885594450614, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/RECORD": 3617343778671172258, - "frontend/src/components/DashboardGrid.svelte": 17669234585849525689, - "frontend/build/_app/immutable/chunks/B1mU1HkL.js": 434639091648147151, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_common.py": 12064185052519470358, - "venv/lib/python3.13/site-packages/numpy/f2py/common_rules.pyi": 2104100025130695295, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_constructors.py": 17219764538851313252, - "venv/lib/python3.13/site-packages/websockets/legacy/client.py": 4032878587330592478, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/token_endpoint.py": 6118770923176099889, - "venv/lib/python3.13/site-packages/attr/_version_info.pyi": 7141309436445210354, - "venv/lib/python3.13/site-packages/_pytest/deprecated.py": 5452408732344157294, - "venv/lib/python3.13/site-packages/pydantic/decorator.py": 6984214881365537811, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_mask.py": 5451866071307236899, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/structures.py": 2668010839316715865, - "venv/lib/python3.13/site-packages/numpy/_core/_ufunc_config.py": 7365943844063702766, - "venv/lib/python3.13/site-packages/passlib/handlers/phpass.py": 16489430001449160264, - "backend/src/core/__tests__/test_superset_preview_pipeline.py": 5338719285630543394, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/RECORD": 16558021503346615951, - "frontend/src/components/git/ConflictResolver.svelte": 2318922269446496715, - "venv/lib/python3.13/site-packages/numpy/_core/_type_aliases.py": 1644743742545329282, - "venv/lib/python3.13/site-packages/pandas/core/sparse/api.py": 9094651265692218821, - "backend/src/scripts/init_auth_db.py": 7729644769215024318, - "venv/lib/python3.13/site-packages/passlib/tests/sample_config_1s.cfg": 1809713544666311828, - "venv/lib/python3.13/site-packages/pydantic/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/modules.pyi": 131293606732000587, - "venv/lib/python3.13/site-packages/rapidfuzz/utils_cpp.cpython-313-x86_64-linux-gnu.so": 16145829319198889672, - "venv/lib/python3.13/site-packages/passlib/hosts.py": 11171402820797380938, - "venv/lib/python3.13/site-packages/pandas/core/indexes/extension.py": 7193879749426425951, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_validate.py": 2133732492454460539, - "venv/lib/python3.13/site-packages/pandas/_testing/asserters.py": 272063856832951430, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_pickle.py": 388513670243918273, - "venv/lib/python3.13/site-packages/keyring/backend_complete.bash": 16589214602970214174, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_get_dummies.py": 16112674981222844375, - "venv/lib/python3.13/site-packages/pandas/io/parsers/readers.py": 7899068668225389287, - "venv/lib/python3.13/site-packages/pandas/core/arrays/datetimelike.py": 394614958716301173, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/util.py": 3591114320020964752, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/METADATA": 1862765380818895200, - "venv/lib/python3.13/site-packages/PIL/MpegImagePlugin.py": 7726254767528154514, - "venv/bin/pip3": 13861749540792881808, - "venv/lib/python3.13/site-packages/numpy/f2py/crackfortran.py": 12796890117561096360, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arithmetic.py": 3209727509456212551, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_empty.py": 6845813091876023610, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_zips.py": 5184894018177148648, - "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.cpython-313-x86_64-linux-gnu.so": 16604252871044637047, - "venv/lib/python3.13/site-packages/numpy/f2py/func2subr.pyi": 16573082220135508510, - "venv/lib/python3.13/site-packages/greenlet/TGreenlet.hpp": 6993553444981671786, - "venv/lib/python3.13/site-packages/pandas/_libs/window/indexers.pyi": 9911899303567570646, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_reductions.py": 17810094294132819208, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_indexing.py": 8943385096811168079, - "venv/lib/python3.13/site-packages/pydantic/alias_generators.py": 5991580234179623842, - "frontend/src/services/toolsService.js": 1568142461283466080, - "backend/src/models/clean_release.py": 6080208142954589647, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/__init__.py": 15130871412783076140, - "backend/src/api/routes/admin.py": 15812940668560248046, - "venv/lib/python3.13/site-packages/pygments/styles/abap.py": 11543320440974964547, - "venv/lib/python3.13/site-packages/pandas/compat/numpy/function.py": 18405870240333383757, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/conftest.py": 25473177671450048, - "backend/src/services/clean_release/repositories/publication_repository.py": 11208425895213508165, - "venv/lib/python3.13/site-packages/pygments/styles/emacs.py": 4540417536507245024, - "venv/lib/python3.13/site-packages/passlib/handlers/sha2_crypt.py": 8171587560325812664, - "backend/src/services/clean_release/dto.py": 11031410734734770552, - "venv/lib/python3.13/site-packages/gitdb/test/__init__.py": 18393574323937353933, - "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/const_vs_enum.py": 12873459583943748931, - "venv/lib/python3.13/site-packages/cryptography/fernet.py": 10137792148038140630, - "venv/lib/python3.13/site-packages/pandas/_libs/reshape.pyi": 88721900806893992, - "venv/lib/python3.13/site-packages/passlib/tests/test_win32.py": 13932956220195912963, - "venv/lib/python3.13/site-packages/pip/_internal/index/package_finder.py": 12631116673181479779, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi": 1626154870044880426, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_julian_date.py": 850085757774959003, - "venv/lib/python3.13/site-packages/pip/_internal/utils/_log.py": 13011536737418204268, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/style.py": 12654125988995362593, - "venv/lib/python3.13/site-packages/urllib3/util/url.py": 15992369651965016538, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_slice.py": 9936085512921529417, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_csv.py": 6678500392137188521, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/METADATA": 10707390829735099042, - "backend/src/core/superset_client/_datasets_preview_filters.py": 12835417730902013107, - "venv/lib/python3.13/site-packages/pandas/api/interchange/__init__.py": 181911269762882069, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/WHEEL": 17410883677306885019, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f77comments.f": 4801926170672147659, - "venv/lib/python3.13/site-packages/_pytest/mark/expression.py": 1821437025841201912, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/util.py": 2176177435997659667, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/INSTALLER": 17282701611721059870, - "frontend/build/_app/immutable/nodes/37.BSv7824F.js": 6049574657155009311, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_range.py": 3544406211185340973, - "frontend/src/routes/settings/StorageSettings.svelte": 1953157077500445570, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/METADATA": 6596896092754256988, - "venv/lib/python3.13/site-packages/pydantic_core/_pydantic_core.pyi": 16799580742094025110, - "venv/lib/python3.13/site-packages/_pytest/_py/path.py": 8464061867075119556, - "venv/lib/python3.13/site-packages/jaraco/context/__init__.py": 10975097417056278427, - "frontend/build/_app/immutable/chunks/1cp5Nfxo.js": 8461125705150579835, - "backend/tests/services/clean_release/test_compliance_execution_service.py": 5924200441771414883, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein.py": 15426828792217499138, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/scripts.py": 8759605303886441976, - "venv/lib/python3.13/site-packages/numpy/lib/_shape_base_impl.py": 16539612003028676816, - "venv/lib/python3.13/site-packages/uvicorn/main.py": 5843333502356171120, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_reduction.py": 2671872764983553906, - "backend/tests/services/clean_release/test_report_audit_immutability.py": 4097909280121147581, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_sparse.py": 14343335524508450058, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize.py": 15511055314565873928, - "backend/src/plugins/translate/__tests__/test_token_budget.py": 9612693566837223655, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/base.py": 13634605726041717070, - "frontend/src/lib/components/dataset-review/__tests__/source_intake_panel.ux.test.js": 13445861056598482363, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/diagnose.py": 17275977405061138181, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/RECORD": 6518517239543344179, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_infer_objects.py": 16868563755487479303, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py": 1331438198531942242, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_na_values.py": 13527837495439739279, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_easter.py": 3397863170068576196, - "venv/lib/python3.13/site-packages/numpy/_utils/__init__.py": 7731065084036767848, - "backend/src/api/routes/__tests__/test_reports_api.py": 8830242634438523357, - "backend/src/plugins/translate/dictionary_entries.py": 11394786590056973146, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_intervalindex.py": 5053113227747333759, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_ordered.py": 13827016781743929164, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_simd_module.py": 7122050193390298178, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/RECORD": 8956798822782402202, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/warnings_and_errors.pyi": 9019577563960071498, - "venv/lib/python3.13/site-packages/pandas/_libs/arrays.cpython-313-x86_64-linux-gnu.so": 8634234308863090562, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_decimal.py": 3515468590005709183, - "venv/lib/python3.13/site-packages/gitdb/test/test_util.py": 541144638852210407, - "venv/lib/python3.13/site-packages/pip/_internal/network/__init__.py": 1586148254475575526, - "venv/lib/python3.13/site-packages/starlette/exceptions.py": 15978811612997200737, - "venv/lib/python3.13/site-packages/pip/_internal/utils/subprocess.py": 3095012838116670328, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/RECORD": 4487477737768669516, - "venv/lib/python3.13/site-packages/git/objects/commit.py": 12317865358846331802, - "frontend/src/routes/settings/git/+page.svelte": 9547035239167234477, - "venv/lib/python3.13/site-packages/click/exceptions.py": 9734955259447933725, - "venv/lib/python3.13/site-packages/_pytest/helpconfig.py": 3033477806668470951, - "venv/lib/python3.13/site-packages/pandas/core/indexes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_converter.py": 7709581879446228856, - "venv/lib/python3.13/site-packages/pandas/tests/test_expressions.py": 16378925536309828288, - "venv/lib/python3.13/site-packages/httpx/_client.py": 1063593889704982038, - "venv/lib/python3.13/site-packages/pip/_internal/utils/hashes.py": 17310331665429541812, - "venv/lib/python3.13/site-packages/apscheduler/__init__.py": 8652514118183227412, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_constructors.py": 7466113171256856591, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_count.py": 9186538441380080087, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/licenses/__init__.py": 2635182244050911910, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/_psycopg_common.py": 4111797647365870137, - "venv/lib/python3.13/site-packages/pycparser/plyparser.py": 5251740466238035035, - "backend/src/api/routes/git/_repo_lifecycle_routes.py": 6605622512801609889, - "backend/src/scripts/create_admin.py": 16927424133554976030, - "venv/lib/python3.13/site-packages/pygments/lexers/spice.py": 1376126320935115350, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_float.py": 10455718110956856820, - "frontend/build/_app/immutable/chunks/CSKg3QTJ.js": 13514833655854300178, - "venv/lib/python3.13/site-packages/referencing/tests/test_referencing_suite.py": 8875120876162738440, - "venv/lib/python3.13/site-packages/ecdsa/test_keys.py": 17117188373419689467, - "venv/lib/python3.13/site-packages/websockets/server.py": 16599051743322571790, - "venv/lib/python3.13/site-packages/jeepney/io/threading.py": 525625939662612746, - "venv/lib/python3.13/site-packages/numpy/_core/_operand_flag_tests.cpython-313-x86_64-linux-gnu.so": 12296711931541109624, - "venv/lib/python3.13/site-packages/pandas/_libs/testing.cpython-313-x86_64-linux-gnu.so": 16758333404587340103, - "venv/lib/python3.13/site-packages/keyring/errors.py": 4587094338672775040, - "venv/lib/python3.13/site-packages/anyio/_core/_tempfile.py": 230288423480899091, - "venv/lib/python3.13/site-packages/authlib/oidc/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_arithmetic.py": 14858832264660410908, - "venv/lib/python3.13/site-packages/pygments/styles/friendly_grayscale.py": 16840106759769837649, - "backend/src/core/superset_client/_charts.py": 8101226087578568224, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/sqlalchemy.py": 811968833735951956, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_setops.py": 17350958906336246626, - "frontend/build/_app/immutable/nodes/2.yxuT765B.js": 7527468193506722147, - "venv/lib/python3.13/site-packages/attr/__init__.pyi": 13203080513025719049, - "venv/lib/python3.13/site-packages/greenlet/tests/test_throw.py": 4119265751381210399, - "venv/lib/python3.13/site-packages/authlib/jose/errors.py": 15231759002942436632, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatters/__init__.py": 3247870839323520754, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/RECORD": 2963644632913976754, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/METADATA": 14543822270526146783, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64dxsm-testset-1.csv": 9129730764673472086, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_liboffsets.py": 14705822637347212540, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/typst.tpl": 5055419073126793137, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_rowcount.py": 6682800584070485197, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/RECORD": 4857922668040624663, - "venv/lib/python3.13/site-packages/yaml/loader.py": 18284689412149643959, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_indexing.py": 16623126293364224089, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_read.py": 8825002468745406134, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libk5crypto-b1f99d5c.so.3.1": 10669523137596317954, - "venv/lib/python3.13/site-packages/pygments/lexers/dylan.py": 16246299896150112270, - "backend/src/api/routes/git/_router.py": 8701683910668868827, - "venv/lib/python3.13/site-packages/pygments/lexers/graphics.py": 13783143864729682444, - "venv/lib/python3.13/site-packages/urllib3/util/request.py": 9432067988603015849, - "frontend/build/_app/immutable/chunks/YCgcezOr.js": 10021400156442571831, - "venv/lib/python3.13/site-packages/_pytest/tracemalloc.py": 5530234062530858720, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_libsparse.py": 1859997684694949029, - "backend/src/plugins/translate/superset_executor.py": 454191269003159946, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/git.py": 17060377178521307324, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/errors.py": 2147619440137604907, - "venv/lib/python3.13/site-packages/_yaml/__init__.py": 3395829783751571350, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/registration.py": 14639972512303032712, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_formats.py": 2743326139283991615, - "backend/src/api/routes/translate/_run_list_routes.py": 18118346695557887371, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_orm_types.py": 5508682532707462217, - "venv/lib/python3.13/site-packages/websockets/sync/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/_core/src/highway/LICENSE": 15636145745140922094, - "frontend/src/lib/stores/health.js": 1061942219531952418, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo.f": 5690596225005490325, - "venv/lib/python3.13/site-packages/secretstorage/__init__.py": 4535964275649588672, - "venv/lib/python3.13/site-packages/passlib/handlers/ldap_digests.py": 8658529184965699766, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/PIL/TarIO.py": 13651401276968618561, - "backend/git_repos/remote/test-repo.git/objects/52/ec4a78c629329b8b572ec9d5205271c111baac": 18054296544295201561, - "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.pxd": 9126772093305708921, - "docker/backend.Dockerfile": 10320070102635663967, - "venv/lib/python3.13/site-packages/attrs/__init__.pyi": 14353885498883901855, - "venv/lib/python3.13/site-packages/click/_textwrap.py": 14586282603215052310, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/mod_derived_types.f90": 2556756676983488922, - "venv/lib/python3.13/site-packages/cryptography/utils.py": 18088508841978595788, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/meson.build": 8784756284679859367, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_copy.py": 11335108864615756235, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_character/foo77.f": 4046503346951676582, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_numba.py": 203614377324678234, - "venv/lib/python3.13/site-packages/pandas/util/version/__init__.py": 3844072588696074141, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_numba.py": 18148155441554555618, - "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_time.py": 10463741033950978270, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.pyx": 11739218099400096619, - "venv/lib/python3.13/site-packages/pygments/styles/arduino.py": 4578385147314541233, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/markers.py": 5247208668583898949, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_compare.py": 171535659467902751, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_export_format.py": 17862222951776199694, - "frontend/src/lib/stores/__tests__/assistantChat.test.js": 11822882112255142537, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py": 7019253290755243568, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_hour.py": 13754646634123368797, - "frontend/src/routes/migration/mappings/+page.svelte": 4566398049366943407, - "frontend/src/routes/translate/[id]/+page.svelte": 5708982801369658186, - "backend/src/services/dataset_review/event_logger.py": 8083530196989488371, - "backend/src/plugins/storage/plugin.py": 13669428465597027289, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_antijoin.py": 14435396877404907826, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/dtypes.pyi": 15114028503984522176, - "frontend/build/_app/immutable/chunks/BwABSOzi.js": 12485550378293032886, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_array_utils.py": 14682148205379122638, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/core/computation/eval.py": 3176226283265954028, - "backend/src/plugins/translate/orchestrator_cancel.py": 673611364664367049, - "venv/lib/python3.13/site-packages/pandas/tests/extension/json/__init__.py": 7877061921210840955, - "venv/lib/python3.13/site-packages/jsonschema/_keywords.py": 949562792260528762, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/authorization_server.py": 17967809814827547139, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pygments/lexers/func.py": 12257919753150082714, - "venv/lib/python3.13/site-packages/pip/_internal/operations/install/wheel.py": 3531093454660385247, - "venv/lib/python3.13/site-packages/rapidfuzz/process.py": 3870006735299537016, - "venv/lib/python3.13/site-packages/pandas/_libs/_cyutility.cpython-313-x86_64-linux-gnu.so": 3372660143512868174, - "venv/lib/python3.13/site-packages/pandas/core/strings/accessor.py": 14021462534679430426, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/wrapper.py": 14599195010683170123, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_item.py": 17619314877770917080, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/conversion.cpython-313-x86_64-linux-gnu.so": 9014806524727977333, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/dateutil/_version.py": 8279235793001245767, - "venv/lib/python3.13/site-packages/dateutil/zoneinfo/rebuild.py": 1813298167468704155, - "venv/lib/python3.13/site-packages/pygments/scanner.py": 5640381644804445932, - "venv/lib/python3.13/site-packages/authlib/jose/util.py": 14843923624043422219, - "venv/lib/python3.13/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17": 7615380692384566654, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/_typing.py": 17598638528781632158, - "venv/lib/python3.13/site-packages/pandas/core/tools/datetimes.py": 13313374952742129866, - "frontend/build/_app/immutable/nodes/17.D2vhX5As.js": 17828979217052834606, - "venv/lib/python3.13/site-packages/more_itertools/recipes.pyi": 16788810745659802820, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/base.py": 5294446834530589760, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_smoke.py": 7476432112986643847, - "backend/src/scripts/__init__.py": 5400372851656282343, - "venv/lib/python3.13/site-packages/ecdsa/_compat.py": 13034064768731879065, - "venv/lib/python3.13/site-packages/pydantic/tools.py": 8931184638883701008, - "venv/lib/python3.13/site-packages/pandas/core/window/ewm.py": 12143982379243011357, - "backend/alembic/versions/c4a3a2f74bfe_add_missing_columns_needs_review_.py": 4320606555167902916, - "venv/lib/python3.13/site-packages/jsonschema/_format.py": 8987698648383779883, - "venv/lib/python3.13/site-packages/pip/_vendor/distro/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/py.typed": 9796674040111366709, - "venv/lib/python3.13/site-packages/websockets/asyncio/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/ctypeslib/__init__.pyi": 13208953770241664384, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data": 11957232619107868023, - "venv/lib/python3.13/site-packages/numpy/fft/_helper.py": 15906444100774706395, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_unary.py": 8046543893978198672, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_byteswap.py": 5090287710338893350, - "backend/src/core/task_manager/manager.py": 31861937937351404, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/enumerated.py": 16623643153933348755, - "venv/lib/python3.13/site-packages/fastapi/security/base.py": 15674297568104917749, - "frontend/src/lib/stores/environmentContext.js": 1762535408632658714, - "venv/lib/python3.13/site-packages/pip/_internal/models/index.py": 2839270935469791607, - "backend/src/plugins/llm_analysis/__tests__/test_client_headers.py": 5527172390260032966, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/__init__.py": 237070345717942041, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/_cryptography_key.py": 388489172928969873, - "venv/lib/python3.13/site-packages/numpy/random/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_base_indexer.py": 3129123098288498633, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_value_attrspec.py": 7741590618654448240, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/ranges.py": 14549386056660231279, - "venv/bin/dotenv": 953953349803507198, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_envs.py": 5657151394155576509, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/assertsql.py": 4633484475514351889, - "frontend/src/components/EnvSelector.svelte": 3937920133889630193, - "venv/lib/python3.13/site-packages/psycopg2/extensions.py": 14197445323992851566, - "venv/lib/python3.13/site-packages/pygments/cmdline.py": 15628499088643246809, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq.pyi": 16372699564794732463, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/resultproxy.cpython-313-x86_64-linux-gnu.so": 6011605826065363427, - "venv/lib/python3.13/site-packages/websockets/sync/messages.py": 15699091325918681038, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_quantile.py": 11273403743157110261, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_hashtable.py": 2620207240930665390, - "venv/lib/python3.13/site-packages/numpy/polynomial/_polybase.py": 893743087939984792, - "venv/lib/python3.13/site-packages/click/shell_completion.py": 5858110451169927373, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/lower_f2py_fortran.f90": 13315882216322269383, - "venv/lib/python3.13/site-packages/pandas/core/groupby/ops.py": 2036968385544457016, - "backend/src/core/auth/oauth.py": 9925908783612235042, - "backend/src/api/routes/dashboards/_action_routes.py": 11814954258886577640, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_indexing.py": 81180636019259296, - "backend/src/services/clean_release/__tests__/test_audit_service.py": 1679130450221264383, - "venv/lib/python3.13/site-packages/authlib/integrations/django_client/integration.py": 13610682193839598457, - "venv/lib/python3.13/site-packages/numpy/ctypeslib/__init__.py": 2401931196871484449, - "venv/lib/python3.13/site-packages/passlib/ext/django/models.py": 12386223748379294996, - "backend/src/services/clean_release/report_builder.py": 6953311294119437848, - "venv/lib/python3.13/site-packages/numpy/lib/format.pyi": 11752225430594536662, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/six.py": 1161259802604920635, - "venv/lib/python3.13/site-packages/pandas/_libs/index.pyi": 17679349633640606985, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_loadtxt.py": 17562784940619942447, - "venv/lib/python3.13/site-packages/PIL/PcdImagePlugin.py": 922809545463280224, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/connection.py": 15405047955974108860, - "venv/lib/python3.13/site-packages/gitdb/db/__init__.py": 2615504918450276693, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/blocking.py": 3483388533957772681, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh17797.f90": 17319074662077763768, - "backend/src/plugins/translate/preview_executor.py": 7636554040403814604, - "venv/lib/python3.13/site-packages/pandas/io/excel/_xlrd.py": 14430937200583666658, - "venv/lib/python3.13/site-packages/apscheduler/executors/asyncio.py": 2230610508870117058, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rename_axis.py": 13193478481758930128, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_parse_dates.py": 5344929031479212951, - "frontend/src/lib/auth/store.ts": 14669655798912377598, - "venv/lib/python3.13/site-packages/pandas/_libs/internals.pyi": 11662356720550765508, - "venv/lib/python3.13/site-packages/keyring/compat/properties.py": 1562771115138037410, - "frontend/src/routes/reports/llm/[taskId]/report_page.contract.test.js": 4825093389030464765, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/models.py": 9513172366009392193, - "frontend/test-results/translation.e2e.js-Transla-49baf-te-a-translation-job-via-UI-chromium/test-failed-1.png": 5297796663331551625, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/models.py": 15928924478695638423, - "backend/src/services/clean_release/__tests__/test_source_isolation.py": 17714198919084455758, - "venv/lib/python3.13/site-packages/pygments/lexers/_css_builtins.py": 17478340487186531268, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_astype.py": 8505605634958454768, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/foo_deps.f90": 14350239197565389508, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_shape_base.py": 4117141349022217163, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_month.py": 8485374160446988786, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/__init__.py": 697601512486720554, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/bootstrap.py": 3865947239497500815, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/comparisons.pyi": 9338084426044982038, - "venv/lib/python3.13/site-packages/websockets/sync/client.py": 10892557975919033983, - "venv/lib/python3.13/site-packages/pydantic/_internal/_namespace_utils.py": 5237766366340181382, - "venv/lib/python3.13/site-packages/pandas/tests/api/test_types.py": 8889829773923216769, - "venv/lib/python3.13/site-packages/fastapi/_compat/model_field.py": 392699021682253569, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/array_like.py": 2778905818573625118, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/__main__.py": 111505188798650285, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_abstract_interface.py": 17625870734108222276, - "venv/lib/python3.13/site-packages/pandas/io/formats/csvs.py": 17223598248259691292, - "venv/lib/python3.13/site-packages/pygments/styles/nord.py": 8469538903422182155, - "backend/src/models/assistant.py": 15004657265198809796, - "venv/lib/python3.13/site-packages/greenlet/tests/test_leaks.py": 1219835696230215605, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log1p.csv": 16333455295913164408, - "venv/lib/python3.13/site-packages/_pytest/_code/code.py": 5248836309618416369, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_bcrypt.py": 11146468670439284889, - "backend/src/plugins/translate/service_datasource.py": 10240814407336170041, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/chararray.pyi": 9683985931409244216, - "venv/lib/python3.13/site-packages/pandas/core/arrays/datetimes.py": 10585034798097337148, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_filter.py": 2388681477981649268, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_period.py": 10309599277099605395, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/authorization_code.py": 4958605540994687737, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/graphviz.py": 15677908982985025500, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_values.py": 430620320423334461, - "backend/src/models/dataset_review_pkg/_finding_models.py": 17608383421420046491, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_month.py": 1613806538807726074, - "venv/lib/python3.13/site-packages/requests/sessions.py": 6936640856092320928, - "venv/lib/python3.13/site-packages/uvicorn/server.py": 15714008348292243019, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/schema.py": 8358664670620586363, - "venv/lib/python3.13/site-packages/pygments/lexers/_php_builtins.py": 2344562378679281201, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_stmts.f90": 6123192245816905092, - "venv/lib/python3.13/site-packages/pandas/core/generic.py": 10174952306641057447, - "venv/lib/python3.13/site-packages/pandas/core/strings/object_array.py": 17631047188839635539, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_holiday.py": 8541197358003711845, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/styled.py": 8726407298858811635, - "venv/lib/python3.13/site-packages/pygments/lexers/_stan_builtins.py": 1961875544235948177, - "venv/lib/python3.13/site-packages/anyio/_core/_typedattr.py": 17584691045493791349, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_args.py": 5821040955806257450, - "venv/lib/python3.13/site-packages/git/__init__.py": 15867730798565725003, - "venv/lib/python3.13/site-packages/fastapi/security/oauth2.py": 1925394177931547776, - "frontend/src/routes/profile/+page.svelte": 17979719303737794427, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/async_openid.py": 8708980645667847439, - "backend/src/plugins/translate/_utils.py": 9570375434532627675, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_arithmetic.py": 16829312896275893002, - "venv/lib/python3.13/site-packages/pandas/tests/apply/conftest.py": 13798335354961261346, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_numpy.py": 9663734591667845940, - "venv/lib/python3.13/site-packages/numpy/core/fromnumeric.py": 2136433423902202138, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_mixins.py": 12351373879926460719, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cffi/extending.py": 9859383893070793914, - "venv/lib/python3.13/site-packages/numpy/_core/lib/npy-pkg-config/mlib.ini": 16151597765994697599, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/modes.py": 6832635056228445650, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/constants.pyi": 4415188581374004936, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_apply.py": 12349190935180702377, - "venv/lib/python3.13/site-packages/dateutil/parser/isoparser.py": 18015430204844361067, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby_subclass.py": 5540948578269213810, - "venv/lib/python3.13/site-packages/pip/_internal/pyproject.py": 6155748929233245415, - "venv/lib/python3.13/site-packages/pandas/core/arrays/_ranges.py": 2572903460327860111, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/RECORD": 6488682447051657004, - "venv/bin/Activate.ps1": 1196103427939049710, - "venv/lib/python3.13/site-packages/numpy/lib/_type_check_impl.pyi": 2667658052734929089, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_series.py": 10922287546912569276, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/METADATA": 3786116428839780263, - "frontend/build/_app/immutable/nodes/30.Da464piG.js": 12939890826029944794, - "frontend/build/_app/immutable/assets/9.tn0RQdqM.css": 15130871412783076140, - "venv/lib/python3.13/site-packages/PIL/ImageTk.py": 17063969714816564357, - "backend/alembic_test.db": 14995253579408279707, - "venv/lib/python3.13/site-packages/pydantic/_internal/_known_annotated_metadata.py": 9308620143218174987, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/locators.py": 7638945613579396718, - "venv/lib/python3.13/site-packages/passlib/tests/test_context_deprecated.py": 7876919198015151018, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_iat.py": 3570464615146398178, - "venv/lib/python3.13/site-packages/PIL/ImageCms.py": 5610897002957128546, - "venv/lib/python3.13/site-packages/jaraco/classes/properties.py": 6976928770004942858, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_duplicated.py": 6659959750254523427, - "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/__init__.py": 4761936067832638585, - "backend/src/services/profile_utils.py": 3954310438409803447, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_rewrite_warning.py": 4895919872954538758, - "backend/src/plugins/translate/__tests__/test_dictionary.py": 12126432977797732683, - "venv/lib/python3.13/site-packages/pip/_internal/cli/main_parser.py": 7942770969280622910, - "venv/lib/python3.13/site-packages/pip/_internal/utils/entrypoints.py": 11268059714209889385, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_records.py": 6252761812228230408, - "venv/lib/python3.13/site-packages/pandas/core/computation/align.py": 13027916530558901817, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data": 9599129816090399315, - "venv/lib/python3.13/site-packages/pydantic/_internal/_import_utils.py": 4029157986210295967, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_utils.pyi": 12312677132342982866, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_extending.py": 10202091354750153497, - "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension_cpp.cpp": 4590574206187223887, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein.pyi": 12925006572914814268, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/base.py": 11386927749822539057, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/RECORD": 12575893084587070195, - "venv/lib/python3.13/site-packages/pydantic/root_model.py": 20625057828723317, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_frozen.py": 3484963987053884566, - "venv/lib/python3.13/site-packages/pandas/io/formats/style_render.py": 13586834368514801953, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/bar.py": 12859947592168238832, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/conftest.py": 13388202260795998613, - "venv/lib/python3.13/site-packages/_pytest/assertion/rewrite.py": 2425990712758915831, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/elements.py": 11185011314498348980, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/METADATA": 15658158392301945427, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reindex_like.py": 13803156447991282315, - "venv/lib/python3.13/site-packages/secretstorage/dhcrypto.py": 8860116996905452758, - "venv/lib/python3.13/site-packages/uvicorn/py.typed": 15240312484046875203, - "frontend/src/components/Footer.svelte": 17748559656923032, - "venv/lib/python3.13/site-packages/pydantic/experimental/arguments_schema.py": 8644805798814234457, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_warnings.py": 13071210233876253749, - "frontend/build/_app/immutable/chunks/CAMiRHtE.js": 8764442458195850407, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_hist_box_by.py": 16197297231683144299, - "venv/lib/python3.13/site-packages/authlib/oidc/core/util.py": 5364455058429522633, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufunclike.pyi": 14623308681600207918, - "venv/lib/python3.13/site-packages/psycopg2/errorcodes.py": 6711830404954314463, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/__init__.py": 15340047930888693984, - "venv/lib/python3.13/site-packages/attr/filters.py": 14156141488477438777, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_parser.py": 8145921552236189367, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/rsa_key.py": 7092106298733667895, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/yaml.py": 17801117405950663611, - "venv/lib/python3.13/site-packages/passlib/crypto/des.py": 14699826058580193499, - "venv/lib/python3.13/site-packages/fastapi/__main__.py": 10755252341326986079, - "venv/lib/python3.13/site-packages/smmap/__init__.py": 4557520096828426601, - "venv/lib/python3.13/site-packages/iniconfig/_parse.py": 11418441008427032090, + "venv/lib/python3.13/site-packages/numpy/lib/introspect.py": 5706729538356302335, + "venv/lib/python3.13/site-packages/certifi/core.py": 7472627735517449185, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/core.py": 2199607970842512780, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/package_data.py": 3078502124870585867, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_numerictypes.py": 8836108334624807647, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_reshape.py": 10576230966727810832, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_union_categoricals.py": 6843679254735807, + "venv/lib/python3.13/site-packages/charset_normalizer/utils.py": 11724147997933584095, + "venv/lib/python3.13/site-packages/pygments/formatter.py": 11156733836937309465, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/testing.pyi": 16263777835572515739, + "frontend/src/lib/components/layout/__tests__/sidebarNavigation.test.js": 8459006438402290167, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_datetimelike.py": 10294379314868108649, + "backend/src/plugins/translate/events.py": 14264965160929343917, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_getitem.py": 18202683049446557047, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_einsum.py": 17286384318722237180, "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_isin.py": 8136794647591341784, - "venv/lib/python3.13/site-packages/PIL/GifImagePlugin.py": 16073125611077200693, - "venv/lib/python3.13/site-packages/pycparser/ply/cpp.py": 1665654017894222868, - "venv/lib/python3.13/site-packages/charset_normalizer/models.py": 9917300217816275821, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/installed.py": 18153165899841229597, - "venv/bin/pip3.13": 13861749540792881808, - "venv/lib/python3.13/site-packages/pandas/_libs/ops.cpython-313-x86_64-linux-gnu.so": 10490009128553397250, - "venv/lib/python3.13/site-packages/starlette/__init__.py": 3252794766897205870, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/ansi.py": 948249091929588017, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_value_counts.py": 15633881149834196174, - "venv/lib/python3.13/site-packages/pip/_internal/models/candidate.py": 3099785363867247334, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286.pyf": 14358606965464506398, - "backend/src/services/clean_release/enums.py": 7365670144442292671, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/METADATA": 13633829318759752611, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/WHEEL": 8600534672961461758, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/meson.build": 17468163147765825687, - "backend/src/services/dataset_review/orchestrator_pkg/_helpers.py": 4451514120079791600, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/stride_tricks.pyi": 8257977532799807847, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7636/challenge.py": 6388445104761482746, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/datasource.pyi": 16752667877866430577, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_real/foo90.f90": 58572216018544419, - "venv/lib/python3.13/site-packages/pygments/styles/algol.py": 3040373291664740876, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_constructors.py": 12628643543371952431, - "venv/lib/python3.13/site-packages/charset_normalizer/version.py": 9948878594498587774, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_subclass.py": 16342917051908786497, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_category.py": 3944898528119364040, - "venv/lib/python3.13/site-packages/pyasn1/codec/native/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/jaraco/functools/__init__.pyi": 2872039192528394677, - "venv/lib/python3.13/site-packages/urllib3/util/ssltransport.py": 1175688460659745788, - "backend/src/api/routes/profile.py": 11866770263441371105, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_three_greenlets2.py": 11100501798741918610, - "venv/lib/python3.13/site-packages/PIL/PdfImagePlugin.py": 16082854250442815862, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/util.py": 4890614159013873000, - "frontend/src/lib/components/translate/ScheduleConfig.svelte": 14007615494976044075, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_sorted.py": 1899608688401238388, - "venv/lib/python3.13/site-packages/jose/backends/cryptography_backend.py": 2875270748627611635, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/__init__.pyi": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/typst.py": 8883289726601667104, - "venv/lib/python3.13/site-packages/pydantic/deprecated/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/base.py": 10200916670889920659, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_groupby_shift_diff.py": 1210657479716368827, - "venv/lib/python3.13/site-packages/pygments/lexers/dns.py": 17149871769553794654, - "venv/lib/python3.13/site-packages/packaging/markers.py": 11602308203217831543, - "frontend/src/lib/api/assistant.js": 15470667170083225911, - "frontend/build/favicon.svg": 6451919037497541980, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarraytypes.h": 6765088137325865789, - "venv/lib/python3.13/site-packages/jsonschema/tests/fuzz_validate.py": 2328585939822059352, - "venv/lib/python3.13/site-packages/pygments/lexers/dsls.py": 11696359794961833087, - "venv/lib/python3.13/site-packages/numpy/_core/_asarray.pyi": 3940937389249665490, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/validator_creation.py": 2745563768861102999, - "venv/lib/python3.13/site-packages/idna/package_data.py": 6583909243002417298, - "venv/lib/python3.13/site-packages/numpy/_expired_attrs_2_0.py": 8786558894094307341, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/pyodbc.py": 11271266527234292020, - "venv/lib/python3.13/site-packages/pygments/styles/lightbulb.py": 12433916113773598760, - "venv/lib/python3.13/site-packages/pandas/_testing/_io.py": 14264259716673715185, - "frontend/src/lib/components/assistant/AssistantChatPanel.svelte": 4130047433623185888, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_astype.py": 7497268667246913350, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/RECORD": 8956798822782402202, + "venv/lib/python3.13/site-packages/pydantic/json.py": 4109352930301629308, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/mean_.py": 3641008929910474457, + "venv/lib/python3.13/site-packages/pygments/lexers/asc.py": 10744437946030875496, + "venv/lib/python3.13/site-packages/PIL/PalmImagePlugin.py": 13008868719182630239, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/WHEEL": 9788895026336324100, + "venv/lib/python3.13/site-packages/pip/_internal/utils/wheel.py": 450504439085405418, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/meson.build.template": 9935732744553086652, + "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/__init__.py": 3521833849634327520, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro.py": 183817263146423033, + "venv/lib/python3.13/site-packages/fastapi/templating.py": 10760135144345238340, + "venv/lib/python3.13/site-packages/more_itertools/__init__.pyi": 16479506520351014608, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_stack_unstack.py": 3737891757817696405, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_value_counts.py": 12340872812120847127, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/WHEEL": 14929202952940710322, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_comparisons.py": 2764694394636775220, + "venv/lib/python3.13/site-packages/jose/jwk.py": 2781217726458801910, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_resampler_grouper.py": 8388490036390951341, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc64_linux.h": 4071314837793906998, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/RECORD": 7844752443022514265, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_observance.py": 18178414966262524534, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/regexopt.py": 16073437303824961930, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_empty.py": 13006241382741353569, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/properties.py": 5799883762127872919, + "venv/lib/python3.13/site-packages/websockets/sync/messages.py": 15699091325918681038, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_formats.py": 1265319125235346745, + "venv/lib/python3.13/site-packages/pandas/core/window/doc.py": 4204367435727844696, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/reserved_words.py": 8022121780993497971, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/RECORD": 16740224557818847141, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_array_utils.py": 14682148205379122638, + "venv/lib/python3.13/site-packages/pygments/lexers/_mapping.py": 12987629396101138833, + "backend/src/core/auth/config.py": 8065625913451826937, "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_constructors.py": 3440572832185940666, - "venv/lib/python3.13/site-packages/numpy/random/c_distributions.pxd": 16574161095720077595, - "venv/lib/python3.13/site-packages/pandas/tests/extension/uuid/test_uuid.py": 13955678427426850807, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/conftest.py": 16571782049241458769, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/automap.py": 4672057253309608464, - "venv/lib/python3.13/site-packages/httpx/_status_codes.py": 1758440600462491839, - "venv/lib/python3.13/site-packages/PIL/ContainerIO.py": 7551929914241379005, - "backend/src/services/clean_release/preparation_service.py": 6886083663277412849, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7521/__init__.py": 635200170992032966, - "frontend/src/components/tools/ConnectionForm.svelte": 4060811448046342875, - "venv/lib/python3.13/site-packages/numpy/f2py/f2py2e.py": 738588649412338185, - "venv/lib/python3.13/site-packages/greenlet/tests/leakcheck.py": 10179165748538820557, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x32_unix.h": 9165722966153119887, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_set_value.py": 17480833128128893268, - "venv/lib/python3.13/site-packages/numpy/random/_sfc64.pyi": 3536657185495782642, - "venv/lib/python3.13/site-packages/pydantic_core/__init__.py": 10563134104783445328, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/expression.py": 1248029135284283479, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_series.pyi": 7112486730197067087, - "venv/lib/python3.13/site-packages/PIL/FitsImagePlugin.py": 618556384932056120, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_sort_values.py": 15072305514178699398, - "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py": 63497920264089252, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_apply.py": 8103417303073393969, - "venv/lib/python3.13/site-packages/apscheduler/job.py": 1858376671986108667, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_custom_dtypes.py": 12322100282959605055, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py": 1437580234680265326, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/padding.py": 7470483648602195268, - "venv/lib/python3.13/site-packages/passlib/exc.py": 15559705487889657091, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/numpy/core/function_base.py": 12696640832638144604, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_explode.py": 18263694040596159591, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_indexing.py": 11572911419313573163, - "venv/lib/python3.13/site-packages/pygments/plugin.py": 18006138132596504101, - "venv/lib/python3.13/site-packages/pyasn1/debug.py": 6305633719847955310, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/twisted.py": 16059862619165885730, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/util.py": 387985965709546512, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/WHEEL": 13232065379159720345, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/__init__.py": 15130871412783076140, - "frontend/src/routes/datasets/review/__tests__/dataset_review_entry.ux.test.js": 5439236328736424365, - "venv/lib/python3.13/site-packages/numpy/ma/mrecords.pyi": 8945514863366384484, - "venv/lib/python3.13/site-packages/pandas/_libs/interval.pyi": 15698173755300703836, - "venv/lib/python3.13/site-packages/pygments/lexers/rita.py": 8105458520706587972, - "frontend/src/routes/datasets/review/ReviewWorkspaceLeftSidebar.svelte": 9009994851177005358, - "frontend/build/_app/immutable/nodes/21.D6n4_eiK.js": 1193033676731993975, - "venv/lib/python3.13/site-packages/pip/_internal/locations/base.py": 7966628150470073365, - "backend/src/core/middleware/trace.py": 13093835356377196397, - "venv/lib/python3.13/site-packages/numpy/random/_pickle.py": 7774620933480975313, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/LICENSE": 12064892310002036996, - "backend/src/services/clean_release/repositories/report_repository.py": 17952038790457725175, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/RECORD": 10052481303799123207, - "venv/lib/python3.13/site-packages/git/repo/__init__.py": 6173604284490891047, - "venv/lib/python3.13/site-packages/pandas/core/indexers/objects.py": 409599993084996593, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/accumulate.py": 5780225603819849877, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/METADATA": 317417773265681256, - "venv/lib/python3.13/site-packages/pygments/lexers/apdlexer.py": 14222752852221009085, - "venv/lib/python3.13/site-packages/fastapi/applications.py": 4975013401500183420, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_reductions.py": 3575617237516305456, - "venv/lib/python3.13/site-packages/fastapi/responses.py": 6092572095549573593, - "venv/lib/python3.13/site-packages/pandas/tests/io/generate_legacy_storage_files.py": 11015954144633661960, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_reductions.py": 14432782234851468060, - "venv/lib/python3.13/site-packages/pygments/styles/default.py": 13992125975366109635, - "frontend/src/routes/profile/__tests__/profile-settings-state.integration.test.js": 3674649277514557450, - "venv/lib/python3.13/site-packages/pandas/tests/reductions/test_stat_reductions.py": 11569525436540769152, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_head_tail.py": 13047338070883375426, - "backend/git_repos/remote/test-repo.git/hooks/applypatch-msg.sample": 12627299623252391515, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/__init__.py": 3673322722277252961, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_compat.py": 11481259393140789881, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_take.py": 3281943380342853080, - "venv/lib/python3.13/site-packages/numpy/_core/_simd.cpython-313-x86_64-linux-gnu.so": 12609666221355091416, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/cache.py": 3177663126928467950, - "venv/lib/python3.13/site-packages/pydantic/v1/__init__.py": 1642038155370734658, - "venv/lib/python3.13/site-packages/pandas/_libs/__init__.py": 17117112389651696580, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/datonly.f90": 10495925225338237742, - "venv/lib/python3.13/site-packages/pandas/io/sas/sas_xport.py": 16525568795475918874, - "venv/lib/python3.13/site-packages/ecdsa/test_rw_lock.py": 1572802971060634697, - "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/RECORD": 15574202654585730126, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_delitem.py": 16538190861492829338, - "venv/bin/jsonschema": 16516374846693491442, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pipe.py": 7400355977900310233, - "venv/lib/python3.13/site-packages/charset_normalizer/md.py": 2029760700380476138, - "frontend/src/components/TaskRunner.svelte": 18014857434320509117, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_apply.py": 7511915990531229598, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_subplots.py": 4596089143375088346, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_multiarray.py": 3592197154340095431, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_gcs.py": 7733247456252965901, - "venv/lib/python3.13/site-packages/pygments/lexers/futhark.py": 10102535873433759899, - "scripts/generate_financial_arrears_data.py": 15989529185799374517, - "venv/lib/python3.13/site-packages/secretstorage/util.py": 1004887530903069622, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro.pyi": 3145980717589050713, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/METADATA": 3474626408138844944, - "venv/lib/python3.13/site-packages/sqlalchemy/util/topological.py": 11586868018611359415, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_common.py": 9446944526144164255, - "venv/lib/python3.13/site-packages/pandas/io/formats/xml.py": 12235904458551067063, - "venv/lib/python3.13/site-packages/anyio/abc/_tasks.py": 16839170934610571514, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_format.py": 1947585389944838076, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/progress.py": 5951745251426856398, - "venv/lib/python3.13/site-packages/pandas/core/interchange/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/arrays/_mixins.py": 14293848457775268010, - "venv/lib/python3.13/site-packages/jaraco/classes/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_asfreq.py": 2701081989348180239, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_user_array.py": 8711697474193296376, - "venv/lib/python3.13/site-packages/tzlocal/win32.py": 1949985224569608978, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_block_docstring.py": 18146459246837890489, - "venv/lib/python3.13/site-packages/numpy/_core/arrayprint.pyi": 84606125837677197, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_period.py": 9715843209581883915, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_check_indexer.py": 2929031395357057009, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_style.py": 14810883299259169406, - "venv/lib/python3.13/site-packages/pandas/tests/frame/common.py": 7426635866622531875, - "venv/lib/python3.13/site-packages/pandas/tests/io/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/utils/egg_link.py": 18211947508793805393, - "venv/lib/python3.13/site-packages/passlib/handlers/django.py": 66638338316838351, - "venv/lib/python3.13/site-packages/h11/_writers.py": 8585823094975171480, - "venv/lib/python3.13/site-packages/pandas/core/indexes/base.py": 496956059910401121, - "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/test_decimal.py": 17811784255174057561, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/nested_secrets.py": 15691917061715429369, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/errors.py": 4817746830102488448, - "venv/lib/python3.13/site-packages/numpy/random/_generator.cpython-313-x86_64-linux-gnu.so": 15625019745021657670, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_logical/foo77.f": 16250175448122328648, - "venv/lib/python3.13/site-packages/pandas/io/formats/html.py": 11849941990375030601, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ndarray.pyi": 14369009813591437391, - "venv/lib/python3.13/site-packages/sqlalchemy/pool/events.py": 13473858896579666058, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/pymssql.py": 6650008663791598065, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/test_astype.py": 10171766562093740708, - "venv/lib/python3.13/site-packages/httpcore/_async/connection.py": 2155744160496556069, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_size.py": 12449835577388069407, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby_dropna.py": 3620959914439334511, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/__init__.py": 14522970260621605208, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/METADATA": 15225661995655327539, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi": 16048852379621461316, - "venv/lib/python3.13/site-packages/urllib3/contrib/pyopenssl.py": 11839715589709210412, - "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension.c": 9318655518998644962, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/RECORD": 2688648742701423549, - "venv/lib/python3.13/site-packages/pycparser/_ast_gen.py": 5464347629908906775, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_symbol.py": 10792387279408528886, - "venv/lib/python3.13/site-packages/pytest/__main__.py": 8747175113746141224, - "venv/lib/python3.13/site-packages/pygments/__init__.py": 14493583771211110135, - "backend/src/plugins/translate/__init__.py": 12400577052797809611, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_counting.py": 5628494712451120258, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize_py.py": 6518425342376455821, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_typst.py": 14619529283550788275, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_concat.py": 16549010224568175202, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/anyio/streams/text.py": 12507591237176920223, - "venv/lib/python3.13/site-packages/pygments/lexers/soong.py": 10273453675034306814, - "frontend/src/components/__tests__/task_log_viewer.test.js": 6512653335179659416, - "venv/lib/python3.13/site-packages/jose/exceptions.py": 8562012933958941039, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reset_index.py": 14490875921264161445, - "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/__init__.py": 12911374670789466961, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py": 2516476609539242190, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py": 9559295461619813890, - "venv/lib/python3.13/site-packages/rsa/pkcs1_v2.py": 3533398238491175229, - "venv/lib/python3.13/site-packages/_pytest/capture.py": 17850967053989495422, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/timeseries.py": 17641722582848932332, - "venv/lib/python3.13/site-packages/PIL/_webp.pyi": 18222325750818585549, - "venv/lib/python3.13/site-packages/pydantic/dataclasses.py": 12384956801113860889, - "venv/lib/python3.13/site-packages/httpcore/_backends/sync.py": 576247220834179928, - "backend/src/core/mapping_service.py": 15428037653286485748, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_overrides.py": 92685611709898742, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/module_data_docstring.f90": 18245403117623015312, - "venv/lib/python3.13/site-packages/pandas/_libs/hashtable.pyi": 15034917167424979097, - "backend/tests/core/test_git_service_gitea_pr.py": 6098719224379185148, - "venv/lib/python3.13/site-packages/fastapi/_compat/may_v1.py": 9880083742927480960, - "venv/lib/python3.13/site-packages/pygments/lexers/bare.py": 18266858932333619451, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/METADATA": 15987199384245264478, - "venv/lib/python3.13/site-packages/attr/converters.pyi": 17675091788614033166, - "venv/lib/python3.13/site-packages/pandas/core/interchange/from_dataframe.py": 8278998381856028462, - "venv/lib/python3.13/site-packages/pip/_internal/operations/install/__init__.py": 10456333337205488584, - "venv/lib/python3.13/site-packages/pygments/lexers/typoscript.py": 6706632522710582762, - "frontend/build/_app/immutable/chunks/FraETEdg.js": 1082619204392040869, - "venv/lib/python3.13/site-packages/passlib/__init__.py": 6987142392711441525, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_numeric.py": 9383693732009547935, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/requests.py": 1102963893193914979, - "venv/lib/python3.13/site-packages/httpx/_transports/base.py": 6498990531443644896, - "venv/lib/python3.13/site-packages/sqlalchemy/util/queue.py": 1289234691048379395, - "venv/lib/python3.13/site-packages/PIL/_avif.cpython-313-x86_64-linux-gnu.so": 5243449968857258659, - "venv/lib/python3.13/site-packages/pydantic/plugin/__init__.py": 16803973597469216174, - "venv/lib/python3.13/site-packages/cffi/backend_ctypes.py": 2042566833861899211, - "venv/lib/python3.13/site-packages/git/index/__init__.py": 7874728461616959441, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_diff.py": 2216748778018882333, - "venv/lib/python3.13/site-packages/numpy/tests/test_matlib.py": 14395481530627870882, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_pickle.py": 16196792378104396231, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/nested_sequence.pyi": 10985533017688918283, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_pickle.py": 8705060420848529055, - "venv/lib/python3.13/site-packages/_pytest/pytester_assertions.py": 1899505062406979663, - "venv/lib/python3.13/site-packages/dotenv/cli.py": 7952654621986067973, - "venv/lib/python3.13/site-packages/numpy/random/_pickle.pyi": 16081120364372391381, - "venv/lib/python3.13/site-packages/numpy/random/_common.pxd": 3402284125943848851, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/toml.py": 2225382735669153136, - "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft_umath.cpython-313-x86_64-linux-gnu.so": 16443444849116065961, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/test_astype.py": 563689238486630866, - "venv/lib/python3.13/site-packages/numpy/_core/_string_helpers.py": 17192211156810267818, - "frontend/build/_app/immutable/nodes/4.BWeDuzI8.js": 3273334003166567943, - "backend/src/core/task_manager/persistence.py": 7896628499516364250, - "backend/test_auth.db": 18214842050920965999, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/decl_api.py": 5287018911951723034, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/memmap.pyi": 15629663272474054909, - "frontend/src/lib/auth/permissions.js": 12787489292887903923, - "backend/src/api/routes/git/_deps.py": 12613530531412985767, - "venv/lib/python3.13/site-packages/starlette/middleware/errors.py": 1337979724602864440, - "venv/lib/python3.13/site-packages/_pytest/_code/source.py": 9488112979192923739, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_function_base.pyi": 2792940598392356268, - "venv/lib/python3.13/site-packages/fastapi/_compat/__init__.py": 12380131786677943349, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/char.f90": 12203871998988759364, - "venv/lib/python3.13/site-packages/pygments/lexers/jslt.py": 11805394130669644345, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/compat.py": 17520043776344667309, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/__init__.py": 96341051676048910, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_nlargest.py": 14518132768753249360, - "frontend/build/_app/immutable/entry/start.1x6iwmQm.js": 11359310873677620769, - "venv/lib/python3.13/site-packages/jeepney/tests/test_bus.py": 4260827599660763641, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_pct_change.py": 10313980265441433173, - "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/__init__.py": 8705044848308260480, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py": 2873060848310644552, - "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_builtin_md4.py": 16840174243259839994, - "venv/lib/python3.13/site-packages/pandas/_libs/missing.pyi": 13543139288840944411, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_to_xarray.py": 15341013524814290960, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/METADATA": 6656194161182818439, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/bcrypt/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/util/preloaded.py": 3719702436309355562, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/WHEEL": 8600534672961461758, - "venv/lib/python3.13/site-packages/pygments/lexers/textfmts.py": 17438453283146671997, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/resource_protector.py": 11539718751174980004, - "venv/lib/python3.13/site-packages/click/_winconsole.py": 8133229457213704188, - "venv/lib/python3.13/site-packages/pip/_internal/network/auth.py": 6159841209618753296, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-tanh.csv": 6674536825156196036, - "venv/lib/python3.13/site-packages/numpy/lib/introspect.pyi": 12239924839764265507, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/quantile.py": 17341029201525362074, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_sql.py": 3901697517087276687, - "venv/lib/python3.13/site-packages/pycparser/c_parser.py": 3954138286651284327, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/watchfilesreload.py": 13062440477475586751, - "venv/lib/python3.13/site-packages/pygments/lexers/procfile.py": 3860651022061090738, - "backend/git_repos/remote/test-repo.git/hooks/pre-rebase.sample": 15693225890270078290, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_join.py": 17508073052750406350, - "venv/lib/python3.13/site-packages/gitdb/const.py": 14122142034887286559, - "frontend/src/services/adminService.js": 6375990585512014277, - "venv/lib/python3.13/site-packages/pygments/lexers/math.py": 1647133236144311250, - "venv/lib/python3.13/site-packages/pandas/testing.py": 18352975429944961593, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/LICENSE": 11167201188673981085, - "venv/lib/python3.13/site-packages/pygments/styles/native.py": 4559566444883341527, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/__init__.py": 12793458753561114666, - "venv/lib/python3.13/site-packages/apscheduler/events.py": 10748346950729364899, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/METADATA": 10810011740984652381, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_nep50_promotions.py": 6318578947214302182, - "venv/lib/python3.13/site-packages/pygments/lexers/_vbscript_builtins.py": 9882134558469491349, - "venv/lib/python3.13/site-packages/pydantic/_internal/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/tal.py": 447505725492547461, - "venv/lib/python3.13/site-packages/pandas/core/common.py": 14578909424716153057, - "venv/lib/python3.13/site-packages/numpy/_pytesttester.pyi": 5750506937526308405, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/claims.py": 11853156183819186599, - "venv/lib/python3.13/site-packages/websockets/exceptions.py": 12048063047468402740, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py": 5728866271812501558, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_string.py": 15542851215119662814, - "venv/lib/python3.13/site-packages/numpy/random/__init__.py": 11732100564412485633, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/licenses/LICENSE": 5563356551734678258, + "venv/lib/python3.13/site-packages/dateutil/relativedelta.py": 5903095963079475484, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/constants.pyi": 15633065380510755171, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/METADATA": 14608873187265321271, + "venv/lib/python3.13/site-packages/numpy/_utils/__init__.pyi": 13530522898409268883, + "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_scrypt.py": 17378030264314664250, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_polyutils.pyi": 3841660741524427413, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/information_schema.py": 8551227132710897346, + "venv/lib/python3.13/site-packages/numpy/random/_philox.pyi": 7503018432880404291, + "venv/lib/python3.13/site-packages/pygments/lexers/smithy.py": 10789533877863290582, + "frontend/src/components/storage/FileUpload.svelte": 14805293086068620697, + "backend/src/core/__tests__/test_config_manager_compat.py": 656412918792001580, + "venv/lib/python3.13/site-packages/starlette/concurrency.py": 9835859079437525910, + "venv/lib/python3.13/site-packages/httpx/_transports/mock.py": 13564349939188292363, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/parameters.py": 5104015814292812973, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/numerictypes.py": 5719374287454872555, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/lower_f2py_fortran.f90": 13315882216322269383, + "venv/lib/python3.13/site-packages/numpy/_core/_umath_tests.cpython-313-x86_64-linux-gnu.so": 3478629877770507853, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py": 5946672289916692272, + "venv/lib/python3.13/site-packages/_pytest/faulthandler.py": 13329320306353718649, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_is_unique.py": 3989602816674881215, + "venv/lib/python3.13/site-packages/urllib3/util/request.py": 9432067988603015849, + "backend/src/services/superset_lookup_service.py": 16520439978260397080, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/resource_protector.py": 3563910821279222695, + "venv/lib/python3.13/site-packages/pydantic/validators.py": 8292819706488319845, + "frontend/src/lib/components/reports/__tests__/report_detail.integration.test.js": 4193615240297330385, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_string.py": 10141066226714805009, + "venv/lib/python3.13/site-packages/numpy/core/_internal.py": 14816989375912210674, + "venv/lib/python3.13/site-packages/pygments/lexers/grammar_notation.py": 9009644754106884095, + "venv/lib/python3.13/site-packages/numpy/lib/_stride_tricks_impl.py": 5260748170237305627, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_orc.py": 1248059610437937895, + "venv/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py": 1246582552828542841, + "frontend/build/_app/immutable/nodes/37.dEZvzVFf.js": 15997695501779343443, + "venv/lib/python3.13/site-packages/pandas/_config/config.py": 1494288055210911451, + "venv/lib/python3.13/site-packages/numpy/polynomial/hermite.py": 6617116180936986481, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_set.py": 14375107704596905983, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/string.tpl": 15796203549130590784, + "venv/lib/python3.13/site-packages/pygments/lexers/__init__.py": 4627540245914849670, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/ansi.py": 948249091929588017, + "venv/lib/python3.13/site-packages/_pytest/_io/pprint.py": 11202117031437223527, + "venv/lib/python3.13/site-packages/numpy/_core/cversions.py": 9724467539503410469, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/style.py": 10665998898253460114, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rename_axis.py": 13193478481758930128, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_update.py": 9098258267671647783, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-sinh.csv": 12358602501260667480, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_dtypes.py": 13065857166166716628, + "frontend/src/lib/components/reports/__tests__/fixtures/reports.fixtures.js": 10647302793388244094, + "backend/src/plugins/translate/plugin.py": 9225230324052126034, + "venv/lib/python3.13/site-packages/_pytest/config/argparsing.py": 11156052029258891503, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_index_as_string.py": 13421551616136437100, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_api.py": 7131036004750554905, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarmath.py": 9762951701352556447, + "backend/src/core/utils/superset_context_extractor/_parsing.py": 17093712504833649098, + "frontend/src/routes/dashboards/[id]/components/DashboardHeader.svelte": 5572977872383619871, + "venv/lib/python3.13/site-packages/_pytest/mark/expression.py": 1821437025841201912, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE.APACHE": 8359973023624924624, + "venv/lib/python3.13/site-packages/pandas/core/reshape/api.py": 16364136812252343076, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_get_numeric_data.py": 11747933921770969706, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_nonunique_indexes.py": 15468078561381939405, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_exceptions.py": 12145393002202744314, + "venv/lib/python3.13/site-packages/PIL/_webp.cpython-313-x86_64-linux-gnu.so": 11070012119632935103, + "venv/lib/python3.13/site-packages/pygments/lexers/perl.py": 17014528337020572681, + "venv/lib/python3.13/site-packages/jeepney/tests/test_low_level.py": 3579024079580951234, + "merge_spec.py": 5285945727297582371, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/__init__.py": 15130871412783076140, + "backend/src/core/superset_client/_datasets_preview.py": 16476837380317508068, + "venv/lib/python3.13/site-packages/cryptography/x509/ocsp.py": 17973800752927680404, + "venv/lib/python3.13/site-packages/ecdsa/_compat.py": 13034064768731879065, + "venv/lib/python3.13/site-packages/passlib/tests/test_ext_django_source.py": 15577951591316518967, + "venv/lib/python3.13/site-packages/numpy/_core/tests/_locales.py": 18178500267053825979, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_backend.py": 17793139799410518847, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_numpy_compat.py": 9112925138440787555, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein.py": 15426828792217499138, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_tooltip.py": 853808724844451770, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_writers.py": 103545128256076790, + "venv/lib/python3.13/site-packages/urllib3/fields.py": 9503202008440141421, + "venv/lib/python3.13/site-packages/uvicorn/loops/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/modeline.py": 6194365452131561478, + "venv/lib/python3.13/site-packages/attr/exceptions.pyi": 12323493441583681402, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/INSTALLER": 17282701611721059870, + "frontend/static/favicon.svg": 6451919037497541980, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arraysetops.pyi": 1782641795267171928, + "backend/src/models/profile.py": 8992580618107123889, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/subcomponents.py": 10365594934527289233, "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssl_.py": 644667973700652263, - "venv/lib/python3.13/site-packages/_pytest/unittest.py": 10848803633530338204, - "venv/lib/python3.13/site-packages/pydantic/_internal/_typing_extra.py": 14843908493613991959, - "venv/lib/python3.13/site-packages/pygments/lexers/ncl.py": 14838368780033177943, - "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/RECORD": 15194367076254806710, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_ssl_constants.py": 14834514243239777933, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_offsets_properties.py": 2340780879864207500, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/live_render.py": 14619617939683800204, - "venv/lib/python3.13/site-packages/pygments/formatters/terminal.py": 14380579279194052030, - "venv/lib/python3.13/site-packages/websockets/legacy/__init__.py": 12332512329533591682, - "venv/lib/python3.13/site-packages/pygments/styles/coffee.py": 17584414468786822371, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_pydatetime.py": 16228315407662560992, - "backend/git_repos/remote/test-repo.git/objects/ee/59553241ef084b83d3351ba4c33caf2ed9a840": 11587106407031972706, - "frontend/src/routes/dashboards/__tests__/dashboard-profile-override.integration.test.js": 15198772446275187033, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/cmac.py": 12011944740750051829, - "venv/lib/python3.13/site-packages/_pytest/__init__.py": 3769333500910148571 + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/abstract_interface/foo.f90": 14491312943942432024, + "backend/src/services/__tests__/test_llm_plugin_persistence.py": 2413185961042174999, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/cache.py": 3177663126928467950, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_halfyear.py": 9376272342364384767, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64dxsm-testset-2.csv": 16611724551361692999, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_numpy.py": 222383250675686477, + "venv/lib/python3.13/site-packages/PIL/PpmImagePlugin.py": 7107324729714470853, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/__init__.py": 12793458753561114666, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/subversion.py": 7423946096970870727, + "venv/lib/python3.13/site-packages/git/repo/base.py": 13975465345838683533, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_melt.py": 15663807247682146566, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/intranges.py": 12536174834761591006, + "venv/lib/python3.13/site-packages/httpcore/_models.py": 2501866419898326733, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/pretty.py": 2448541115957861214, + "venv/lib/python3.13/site-packages/pandas/core/internals/__init__.py": 1377108808392195313, + "venv/lib/python3.13/site-packages/pandas/tests/extension/json/test_json.py": 12422315190455428620, + "backend/src/schemas/translate.py": 7147204453991763453, + "venv/lib/python3.13/site-packages/greenlet/tests/test_extension_interface.py": 11693583111513457974, + "venv/lib/python3.13/site-packages/ecdsa/test_ellipticcurve.py": 11125783981574901613, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_api.py": 5813060676255093777, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/passlib/handlers/sha1_crypt.py": 5752556581809938954, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatters/_mapping.py": 13335227913146542481, + "venv/lib/python3.13/site-packages/numpy/lib/_version.pyi": 10804755840730584157, + "frontend/src/lib/components/assistant/AssistantClarificationCard.svelte": 6722890639215637790, + "backend/src/plugins/translate/service_target_schema.py": 16772677785525111616, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_routines.py": 4860173574365060471, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/WHEEL": 18203500019759199992, + "venv/lib/python3.13/site-packages/starlette/middleware/authentication.py": 15211131264936212938, + "frontend/src/lib/components/ui/MultiSelect.svelte": 1475503303018683038, + "venv/lib/python3.13/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2": 13105940093474848953, + "venv/lib/python3.13/site-packages/pandas/tests/internals/test_api.py": 11217428888457119601, + "venv/lib/python3.13/site-packages/greenlet/tests/test_contextvars.py": 6077482318964702132, + "venv/bin/activate.fish": 5275961582873298085, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_indexing.py": 4334578480714520407, + "venv/lib/python3.13/site-packages/numpy/typing/mypy_plugin.py": 1306129775649200113, + "venv/lib/python3.13/site-packages/_pytest/config/compat.py": 13175516717549204627, + "venv/lib/python3.13/site-packages/numpy/core/_multiarray_umath.py": 10973016138581934035, + "venv/lib/python3.13/site-packages/passlib/registry.py": 5050675058011850564, + "venv/lib/python3.13/site-packages/starlette/middleware/base.py": 16850428285382256618, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/conversion.cpython-313-x86_64-linux-gnu.so": 9014806524727977333, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_tz_localize.py": 13699016868476153393, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_deprecations.py": 6015734648984591027, + "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension.cpython-313-x86_64-linux-gnu.so": 1211491156495529145, + "venv/lib/python3.13/site-packages/pygments/lexers/jvm.py": 897669925284011089, + "venv/lib/python3.13/site-packages/pygments/formatters/terminal256.py": 11473927781167132440, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/resource_protector.py": 14354891358060085360, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/reflection.py": 5951113078754792806, + "venv/lib/python3.13/site-packages/pygments/lexers/ptx.py": 4855144232064607995, + "venv/lib/python3.13/site-packages/pandas/tests/extension/uuid/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/passlib/tests/test_win32.py": 13932956220195912963, + "backend/src/api/routes/__tests__/test_git_api.py": 43259826036955162, + "backend/src/plugins/translate/service.py": 16455032944348136444, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/status.py": 2214590120238144582, + "backend/src/api/routes/assistant/_admin_routes.py": 3380446401429936332, + "venv/lib/python3.13/site-packages/numpy/random/bit_generator.cpython-313-x86_64-linux-gnu.so": 2574035311375507054, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/core/arrays/_ranges.py": 2572903460327860111, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__ufunc_api.c": 11535375410441493281, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_iteration.py": 2118501258411211851, + "venv/lib/python3.13/site-packages/pip/_internal/utils/_jaraco_text.py": 9046755357011730699, + "venv/lib/python3.13/site-packages/pyasn1/codec/der/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/__init__.py": 16416360448593978041, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_scrypt.py": 8106466515670064013, + "venv/lib/python3.13/site-packages/keyring/__init__.py": 991260689223167957, + "venv/lib/python3.13/site-packages/pandas/core/computation/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_online.py": 11850497659869773510, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_join.py": 11910166566689889389, + "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/__init__.py": 18019562641348687547, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_enc_cryptodome.py": 15753279711312689193, + "venv/lib/python3.13/site-packages/numpy/polynomial/polyutils.pyi": 8195943561787777127, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_style.py": 10405592363651914796, + "venv/lib/python3.13/site-packages/pandas/io/clipboards.py": 5183212433608887727, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_arithmetic.py": 17427754419626622853, + "venv/lib/python3.13/site-packages/charset_normalizer/models.py": 9917300217816275821, + "venv/lib/python3.13/site-packages/fastapi/concurrency.py": 17937688838625807004, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_astype.py": 15768655715952923925, + "frontend/src/lib/stores/translationRun.js": 10005138082029605368, + "backend/src/api/routes/llm.py": 9139371360302897928, + "backend/src/plugins/translate/__tests__/test_sql_generator.py": 4467071942040481147, + "venv/lib/python3.13/site-packages/pip/_internal/index/sources.py": 11609272011565024668, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_interval.py": 14749388246573356959, + "venv/lib/python3.13/site-packages/pygments/lexers/dotnet.py": 17970884907837213099, + "venv/lib/python3.13/site-packages/PIL/_avif.pyi": 18222325750818585549, + "frontend/src/lib/stores/datasetReviewSession.js": 3915919349382526215, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/METADATA": 11419135077900073883, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/RECORD": 16558021503346615951, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/hook-numpy.pyi": 14233146512272397376, + "venv/lib/python3.13/site-packages/authlib/oauth1/errors.py": 1154126353335030046, + "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/ext.py": 15699809032725838985, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/secrets.py": 17816662030600756342, + "venv/lib/python3.13/site-packages/apscheduler/executors/asyncio.py": 2230610508870117058, + "venv/lib/python3.13/site-packages/pandas/_libs/window/aggregations.cpython-313-x86_64-linux-gnu.so": 16327106317503267067, + "venv/lib/python3.13/site-packages/pygments/lexers/webmisc.py": 9530962803076253849, + "frontend/e2e/tests/login.e2e.js": 16303843677272482041, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/__init__.py": 1856412417337875350, + "venv/lib/python3.13/site-packages/uvicorn/loops/auto.py": 13086005977087619545, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_arrow_compat.py": 12986187285988432338, + "backend/src/plugins/translate/dictionary_filter.py": 18047895364995512274, + "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/expressions.py": 8015786996064244656, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/licenses/LICENSE": 8364608327598414179, + "venv/lib/python3.13/site-packages/pandas/core/groupby/grouper.py": 18110568057754450953, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/__init__.py": 16434403703599680307, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/requirements.py": 13215932786801020434, + "venv/lib/python3.13/site-packages/click/_winconsole.py": 8133229457213704188, + "scripts/generate_financial_arrears_data.py": 15989529185799374517, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/METADATA": 10810011740984652381, + "venv/lib/python3.13/site-packages/pandas/core/computation/engines.py": 1889823242704769952, + "venv/lib/python3.13/site-packages/jsonschema_specifications/tests/test_jsonschema_specifications.py": 12693210357718751894, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/index_tricks.pyi": 11463747060334597941, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/var_.py": 12699521091170347311, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_reduction.py": 1049551473665255648, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/sqltypes.py": 2952996080192295188, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py": 5400174351499383072, + "venv/lib/python3.13/site-packages/pydantic/alias_generators.py": 5991580234179623842, + "venv/lib/python3.13/site-packages/numpy/f2py/f2py2e.pyi": 14181518821845356636, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_jsonschema_test_suite.py": 12733761462141495972, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_setitem.py": 15731267129055947469 } } \ No newline at end of file diff --git a/backend/src/plugins/translate/__tests__/test_lang_detect.py b/backend/src/plugins/translate/__tests__/test_lang_detect.py index adc934ab..60340ab3 100644 --- a/backend/src/plugins/translate/__tests__/test_lang_detect.py +++ b/backend/src/plugins/translate/__tests__/test_lang_detect.py @@ -1,4 +1,4 @@ -# #region LanguageDetectServiceTests [C:2] [TYPE Module] [SEMANTICS test, language, detection, heuristic] +# #region LanguageDetectServiceTests [C:3] [TYPE Module] [SEMANTICS test, language, detection, heuristic] # @BRIEF Unit tests for LanguageDetectService — local language detection via lingua. # @LAYER Test # @RELATION BINDS_TO -> [LanguageDetectService:Module] diff --git a/backend/src/plugins/translate/_lang_detect.py b/backend/src/plugins/translate/_lang_detect.py index 84e52c2c..757b5012 100644 --- a/backend/src/plugins/translate/_lang_detect.py +++ b/backend/src/plugins/translate/_lang_detect.py @@ -1,4 +1,4 @@ -# #region LanguageDetectService [C:2] [TYPE Module] [SEMANTICS translate, language, detection, heuristic] +# #region LanguageDetectService [C:3] [TYPE Module] [SEMANTICS translate, language, detection, heuristic] # @BRIEF Local language detection powered by lingua-language-detector (no LLM). # Provides fast, non-LLM language identification for source text rows, # reducing LLM token costs by pre-detecting same-language rows and diff --git a/backend/src/plugins/translate/preview.py b/backend/src/plugins/translate/preview.py index c7d21bf4..94d19883 100644 --- a/backend/src/plugins/translate/preview.py +++ b/backend/src/plugins/translate/preview.py @@ -7,6 +7,7 @@ # @RELATION DEPENDS_ON -> [LLMProviderService] # @RELATION DEPENDS_ON -> [DictionaryManager] # @RELATION DEPENDS_ON -> [SupersetClient] +# @RELATION DEPENDS_ON -> [LanguageDetectService] # @RELATION DEPENDS_ON -> [render_prompt] # @RELATION DEPENDS_ON -> [ConfigManager] # @PRE Database session and config manager are available.