From 1e7bcecaea8883975a9769495603ed56e74854ac Mon Sep 17 00:00:00 2001 From: busya Date: Mon, 25 May 2026 16:35:00 +0300 Subject: [PATCH] agents --- .axiom/axiom_config.yaml | 371 +- .axiom/semantic_index/index.json | 38975 +++++----------- .../ADR-0007-rejected-fromStore-derived.md | 8 + specs/001-migration-ui-redesign/spec.md | 2 +- specs/002-app-settings/spec.md | 2 +- specs/004-integrate-svelte-kit/spec.md | 2 +- specs/013-unify-frontend-css/spec.md | 2 +- specs/017-llm-analysis-plugin/spec.md | 2 +- specs/018-task-logging-v2/spec.md | 2 +- specs/020-task-reports-design/spec.md | 2 +- specs/021-llm-project-assistant/spec.md | 2 +- specs/024-user-dashboard-filter/spec.md | 2 +- .../checklists/requirements.md | 12 + specs/025-clean-release-compliance/spec.md | 2 +- .../checklists/requirements.md | 20 +- 15 files changed, 11449 insertions(+), 27957 deletions(-) diff --git a/.axiom/axiom_config.yaml b/.axiom/axiom_config.yaml index c3584a2b..9a76c74b 100644 --- a/.axiom/axiom_config.yaml +++ b/.axiom/axiom_config.yaml @@ -49,91 +49,190 @@ complexity_rules: required: [] suggested: - BRIEF + - PURPOSE + - C + - COMPLEXITY + - EXAMPLE + - ERROR + - RAISES + - THROWS + - PRE + - POST + - RATIONALE + - REJECTED + - INVARIANT + - DATA_CONTRACT + - SIDE_EFFECT + - RELATION + - LAYER + - PUBLIC_API + - SEMANTICS + - STATUS + - DEPRECATED + - REPLACED_BY + - TEST_CONTRACT + - TEST_EDGE + - TEST_INVARIANT + - TEST_FIXTURE + - TEST_SCENARIO + - UX_STATE + - UX_FEEDBACK + - UX_RECOVERY + - UX_REACTIVITY + - RESTRICTION '2': required: [] suggested: - BRIEF + - PURPOSE + - C + - COMPLEXITY + - EXAMPLE + - ERROR + - RAISES + - THROWS + - PRE + - POST + - RATIONALE + - REJECTED + - INVARIANT + - DATA_CONTRACT + - SIDE_EFFECT - RELATION + - LAYER + - PUBLIC_API + - SEMANTICS + - STATUS + - DEPRECATED + - REPLACED_BY + - TEST_CONTRACT + - TEST_EDGE + - TEST_INVARIANT + - TEST_FIXTURE + - TEST_SCENARIO + - UX_STATE + - UX_FEEDBACK + - UX_RECOVERY + - UX_REACTIVITY + - RESTRICTION '3': required: [] suggested: - BRIEF + - PURPOSE + - C + - COMPLEXITY + - EXAMPLE + - ERROR + - RAISES + - THROWS + - PRE + - POST + - RATIONALE + - REJECTED + - INVARIANT + - DATA_CONTRACT + - SIDE_EFFECT - RELATION + - LAYER + - PUBLIC_API + - SEMANTICS + - STATUS + - DEPRECATED + - REPLACED_BY + - TEST_CONTRACT + - TEST_EDGE + - TEST_INVARIANT + - TEST_FIXTURE + - TEST_SCENARIO + - UX_STATE + - UX_FEEDBACK + - UX_RECOVERY + - UX_REACTIVITY + - RESTRICTION '4': required: [] suggested: - BRIEF - - RELATION + - PURPOSE + - C + - COMPLEXITY + - EXAMPLE + - ERROR + - RAISES + - THROWS - PRE - POST + - RATIONALE + - REJECTED + - INVARIANT + - DATA_CONTRACT - SIDE_EFFECT + - RELATION + - LAYER + - PUBLIC_API + - SEMANTICS + - STATUS + - DEPRECATED + - REPLACED_BY + - TEST_CONTRACT + - TEST_EDGE + - TEST_INVARIANT + - TEST_FIXTURE + - TEST_SCENARIO + - UX_STATE + - UX_FEEDBACK + - UX_RECOVERY + - UX_REACTIVITY + - RESTRICTION '5': required: [] suggested: - BRIEF - - RELATION + - PURPOSE + - C + - COMPLEXITY + - EXAMPLE + - ERROR + - RAISES + - THROWS - PRE - POST - - SIDE_EFFECT - - INVARIANT - - DATA_CONTRACT -# #endregion ComplexityRules - -# #region ContractTypeOverrides [C:3] [TYPE Block] [SEMANTICS config,adr,override] -contract_type_overrides: - ADR: - suggested: - - PURPOSE - - RELATION - RATIONALE - REJECTED - Component: - '3': - suggested: - - PURPOSE - - RELATION - - UX_STATE - '4': - suggested: - - PURPOSE - - RELATION - - UX_STATE - - PRE - - POST - - SIDE_EFFECT - '5': - suggested: - - PURPOSE - - RELATION - - UX_STATE - - PRE - - POST - - SIDE_EFFECT - - INVARIANT - Tombstone: - suggested: + - INVARIANT + - DATA_CONTRACT + - SIDE_EFFECT + - RELATION + - LAYER + - PUBLIC_API + - SEMANTICS - STATUS - Block: - '3': - suggested: - - PURPOSE - - RELATION - '4': - suggested: - - PURPOSE - - RELATION - - PRE - - POST - - SIDE_EFFECT - '5': - suggested: - - PURPOSE - - RELATION - - PRE - - POST - - SIDE_EFFECT - - INVARIANT -# #endregion ContractTypeOverrides + - DEPRECATED + - REPLACED_BY + - TEST_CONTRACT + - TEST_EDGE + - TEST_INVARIANT + - TEST_FIXTURE + - TEST_SCENARIO + - UX_STATE + - UX_FEEDBACK + - UX_RECOVERY + - UX_REACTIVITY + - RESTRICTION +# #endregion ComplexityRules + +# #region ComplexityRules [C:3] [TYPE Block] [SEMANTICS config,adr,override] +# @BRIEF Типоспецифичные подсказки — не переопределяют базовые complexity_rules, а дополняют их (union). +# @RELATION BINDS_TO -> [Std.Semantics.Core] +# @RATIONALE Per-type suggestions are additive — they don't restrict base complexity_rules. +# All tags remain informational at any type/level per SSOT protocol. +# @REJECTED Restrictive contract_type_overrides caused schema_tag_not_for_contract_type warnings. +# Removed; base complexity_rules already cover all tags. +# @REJECTED Keeping this section empty as placeholder — type-specific suggestions are +# unnecessary since all tags are informational per protocol. +contract_type_overrides: {} +# #endregion ComplexityRules # #region TagSchema [C:5] [TYPE Block] [SEMANTICS config,tags,schema] tags: @@ -174,8 +273,7 @@ tags: BRIEF: type: string multiline: true - description: 'Алиас для PURPOSE. Универсально опциональный.' - alias_for: PURPOSE + description: 'Назначение контракта. Канонический формат для описания PURPOSE. Универсально опциональный. Хороший тон — иметь @BRIEF на любой функции.' contract_types: [] protected: false orthogonal: false @@ -183,31 +281,14 @@ tags: PURPOSE: type: string multiline: true - description: 'Назначение контракта. Универсально опциональный. Хороший тон — иметь @BRIEF на любой функции.' - contract_types: - - Module - - Function - - Class - - Component - - Block - - ADR - - Skill - - Agent - protected: false - orthogonal: false - decision_memory: false + alias_for: BRIEF + description: 'Алиас для BRIEF (legacy). Используй @BRIEF в новом коде.' + contract_types: [] EXAMPLE: type: string multiline: true description: 'Пример использования. Универсально опциональный.' - contract_types: - - Module - - Function - - Class - - Component - - Block - - Skill - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: false @@ -215,12 +296,7 @@ tags: type: string multiline: true description: 'Исключение. @ERROR ValueError. Алиасы: RAISES, THROWS. Универсально опциональный.' - contract_types: - - Module - - Function - - Class - - Component - - Block + contract_types: [] protected: false orthogonal: false decision_memory: false @@ -246,15 +322,7 @@ tags: type: string multiline: true description: 'Метка устаревания. @DEPRECATED v2.5. Универсально опциональный.' - contract_types: - - Module - - Function - - Class - - Component - - Block - - ADR - - Skill - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: true @@ -263,15 +331,7 @@ tags: multiline: false description: 'Ссылка на замену. @REPLACED_BY NewService.run.' is_reference: true - contract_types: - - Module - - Function - - Class - - Component - - Block - - ADR - - Skill - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: true @@ -280,13 +340,7 @@ tags: multiline: false separator: ',' description: 'Семантические маркеры для поиска. Ортогональный.' - contract_types: - - Module - - Function - - Class - - Block - - Skill - - Agent + contract_types: [] protected: false orthogonal: true decision_memory: false @@ -294,12 +348,7 @@ tags: type: string multiline: false description: 'Побочные эффекты (I/O, DB, API, сеть). Рекомендуется на функциях с side effects.' - contract_types: - - Module - - Function - - Class - - Component - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: false @@ -307,14 +356,7 @@ tags: type: string multiline: false description: 'Статус: ACTIVE, DEPRECATED, EXPERIMENTAL.' - contract_types: - - Tombstone - - ADR - - Module - - Function - - Class - - Component - - Block + contract_types: [] protected: false orthogonal: true decision_memory: false @@ -396,15 +438,7 @@ tags: description: 'Графовая зависимость. Описывает связь между контрактами. Рекомендуется на любой функции/модуле с внешними зависимостями.' is_reference: true allowed_predicates: [DEPENDS_ON, CALLS, INHERITS, IMPLEMENTS, DISPATCHES, BINDS_TO, CALLED_BY, VERIFIES, USES] - contract_types: - - Module - - Function - - Class - - Component - - Block - - ADR - - Skill - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: false @@ -412,12 +446,7 @@ tags: type: string multiline: true description: 'Предусловия. Рекомендуется на функциях с нетривиальными входными требованиями.' - contract_types: - - Module - - Function - - Class - - Component - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: false @@ -425,12 +454,7 @@ tags: type: string multiline: true description: 'Гарантии результата. Рекомендуется на функциях с нетривиальными постусловиями.' - contract_types: - - Module - - Function - - Class - - Component - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: false @@ -438,12 +462,7 @@ tags: type: string multiline: false description: 'Публичный API контракта: какие классы/функции являются точками входа. Универсально опциональный.' - contract_types: - - Module - - Function - - Class - - Component - - Block + contract_types: [] protected: false orthogonal: true decision_memory: false @@ -451,15 +470,7 @@ tags: type: string multiline: true description: 'Обоснование архитектурного решения. Универсально опциональный (C1+). Decision Memory. Хлебные крошки для следующего разработчика — объясни ПОЧЕМУ сделан этот выбор.' - contract_types: - - Module - - Function - - Class - - Component - - Block - - ADR - - Skill - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: true @@ -467,15 +478,7 @@ tags: type: string multiline: true description: 'Отвергнутая альтернатива и причина отказа. Универсально опциональный (C1+). Decision Memory. Предотвращает повторение ошибок — задокументируй ЧТО пробовали и ПОЧЕМУ не сработало.' - contract_types: - - Module - - Function - - Class - - Component - - Block - - ADR - - Skill - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: true @@ -483,12 +486,7 @@ tags: type: string multiline: false description: 'DTO-маппинг (Input→Output). Универсально опциональный. Полезен на любом контракте с чёткими типами входа/выхода.' - contract_types: - - Module - - Function - - Class - - Component - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: false @@ -496,14 +494,7 @@ tags: type: string multiline: true description: 'Инвариант — условие, истинное всегда. Универсально опциональный (C1+). Документируй неуничтожимые гарантии на любом уровне.' - contract_types: - - Module - - Function - - Class - - Component - - Block - - Skill - - Agent + contract_types: [] protected: false orthogonal: false decision_memory: false @@ -519,6 +510,14 @@ tags: protected: false orthogonal: true decision_memory: false + RESTRICTION: + type: string + multiline: true + description: 'Ограничение контракта (например, EXAMPLES ONLY — не переопределять правила из SSOT). Универсально опциональный.' + contract_types: [] + protected: false + orthogonal: true + decision_memory: false # #endregion TagSchema # #region InfrastructureConfig [C:2] [TYPE Block] [SEMANTICS config,embedding,http] diff --git a/.axiom/semantic_index/index.json b/.axiom/semantic_index/index.json index ede5e33f..91d187a1 100644 --- a/.axiom/semantic_index/index.json +++ b/.axiom/semantic_index/index.json @@ -1,5 +1,5 @@ { - "generated_at": "2026-05-25T09:10:32.733122728Z", + "generated_at": "2026-05-25T13:32:23.377021253Z", "root_path": "/home/busya/dev/ss-tools", "contract_count": 3037, "edge_count": 2022, @@ -14,7 +14,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Canonical backend package root for application, scripts, and tests." + "BRIEF": "Canonical backend package root for application, scripts, and tests." }, "relations": [], "schema_warnings": [], @@ -31,38 +31,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backend API package root." + "BRIEF": "Backend API package root." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region src.api [TYPE Package] [SEMANTICS api, package, init]\n# @BRIEF Backend API package root.\n# #endregion src.api\n" @@ -76,13 +48,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Authentication API endpoints.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input -> OAuth2PasswordRequestForm -> Token, User", "INVARIANT": "All auth endpoints must return consistent error codes.", "LAYER": "API", "POST": "FastAPI app instance with auth routes registered.", "PRE": "Python environment and dependencies installed; database available.", - "PURPOSE": "Authentication API endpoints.", "SIDE_EFFECT": "Registers API routes; configures OAuth and CORS middleware." }, "relations": [ @@ -125,10 +97,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Authenticates a user and returns a JWT access token.", "COMPLEXITY": 4, "POST": "Returns a Token object on success.", "PRE": "form_data contains username and password.", - "PURPOSE": "Authenticates a user and returns a JWT access token.", "SIDE_EFFECT": "DB read/write for auth session; writes security event log." }, "relations": [ @@ -159,10 +131,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Retrieves the profile of the currently authenticated user.", "COMPLEXITY": 4, "POST": "Returns the current user's data.", "PRE": "Valid JWT token provided.", - "PURPOSE": "Retrieves the profile of the currently authenticated user.", "SIDE_EFFECT": "Reads current user from DB via auth middleware; writes security event log." }, "relations": [ @@ -187,10 +159,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Logs out the current user (placeholder for session revocation).", "COMPLEXITY": 4, "POST": "Returns success message.", "PRE": "Valid JWT token provided.", - "PURPOSE": "Logs out the current user (placeholder for session revocation).", "SIDE_EFFECT": "Writes security event LOGOUT event." }, "relations": [ @@ -215,9 +187,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Initiates the ADFS OIDC login flow.", "COMPLEXITY": 4, "POST": "Redirects the user to ADFS.", - "PURPOSE": "Initiates the ADFS OIDC login flow.", "SIDE_EFFECT": "Redirects user to ADFS external OIDC provider." }, "relations": [ @@ -242,9 +214,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Handles the callback from ADFS after successful authentication.", "COMPLEXITY": 4, "POST": "Provisions user JIT and returns session token.", - "PURPOSE": "Handles the callback from ADFS after successful authentication.", "SIDE_EFFECT": "Provisions user in DB, creates auth session, writes security event log." }, "relations": [ @@ -281,12 +253,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provide lazy route module loading to avoid heavyweight imports during tests.", "COMPLEXITY": 5, "INVARIANT": "Only names listed in __all__ are importable via __getattr__.", "LAYER": "API", "POST": "Route modules are lazily loadable via __getattr__", - "PRE": "FastAPI app initialized, route modules available in package", - "PURPOSE": "Provide lazy route module loading to avoid heavyweight imports during tests." + "PRE": "FastAPI app initialized, route modules available in package" }, "relations": [ { @@ -316,9 +288,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Declare the canonical route-module registry used by lazy imports and app router inclusion.", "COMPLEXITY": 3, "DATA_CONTRACT": "Package -> RouterModule mapping", - "PURPOSE": "Declare the canonical route-module registry used by lazy imports and app router inclusion.", "SIDE_EFFECT": "Registers route group imports via __getattr__" }, "relations": [ @@ -353,56 +325,7 @@ "target_ref": "[LlmRoutes]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is not allowed for contract type 'Block'", - "detail": { - "actual_type": "Block", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is forbidden for contract type 'Block' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Block" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is not allowed for contract type 'Block'", - "detail": { - "actual_type": "Block", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is forbidden for contract type 'Block' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Block" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region Route_Group_Contracts [C:3] [TYPE Block]\n# @BRIEF Declare the canonical route-module registry used by lazy imports and app router inclusion.\n# @RELATION DEPENDS_ON -> [PluginsRouter]\n# @RELATION DEPENDS_ON -> [TasksRouter]\n# @RELATION DEPENDS_ON -> [SettingsRouter]\n# @RELATION DEPENDS_ON -> [ReportsRouter]\n# @RELATION DEPENDS_ON -> [LlmRoutes]\n# @SIDE_EFFECT: Registers route group imports via __getattr__\n# @DATA_CONTRACT: Package -> RouterModule mapping\n__all__ = [\n \"admin\",\n \"admin_api_keys\",\n \"assistant\",\n \"clean_release\",\n \"clean_release_v2\",\n \"dashboards\",\n \"dataset_review\",\n \"datasets\",\n \"environments\",\n \"git\",\n \"health\",\n \"llm\",\n \"maintenance\",\n \"mappings\",\n \"migration\",\n \"plugins\",\n \"profile\",\n \"reports\",\n \"settings\",\n \"storage\",\n \"tasks\",\n \"translate\",\n \"validation\",\n]\n# #endregion Route_Group_Contracts\n" @@ -416,10 +339,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Lazily import route module by attribute name.", "COMPLEXITY": 3, "POST": "Returns imported submodule or raises AttributeError.", - "PRE": "name is module candidate exposed in __all__.", - "PURPOSE": "Lazily import route module by attribute name." + "PRE": "name is module candidate exposed in __all__." }, "relations": [ { @@ -487,7 +410,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Unknown command should return clarification state and unknown intent." + "BRIEF": "Unknown command should return clarification state and unknown intent." }, "relations": [ { @@ -511,7 +434,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Capability query should return deterministic help response." + "BRIEF": "Capability query should return deterministic help response." }, "relations": [ { @@ -535,7 +458,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Assistant request schema should accept active dataset review session binding for scoped orchestration." + "BRIEF": "Assistant request schema should accept active dataset review session binding for scoped orchestration." }, "relations": [ { @@ -559,7 +482,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Session-scoped assistant context should mask imported-filter raw values before assistant-visible metadata is persisted." + "BRIEF": "Session-scoped assistant context should mask imported-filter raw values before assistant-visible metadata is persisted." }, "relations": [ { @@ -583,7 +506,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Session-scoped assistant commands should route dataset-review mapping approvals into confirmation workflow with bound session metadata." + "BRIEF": "Session-scoped assistant commands should route dataset-review mapping approvals into confirmation workflow with bound session metadata." }, "relations": [ { @@ -607,7 +530,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Session-scoped assistant commands should route semantic field updates through explicit confirmation metadata." + "BRIEF": "Session-scoped assistant commands should route semantic field updates through explicit confirmation metadata." }, "relations": [ { @@ -631,9 +554,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Confirm endpoint should reject requests from user that does not own the confirmation token.", "POST": "Second actor receives 403 on confirm operation.", - "PRE": "Confirmation token is created by first admin actor.", - "PURPOSE": "Confirm endpoint should reject requests from user that does not own the confirmation token." + "PRE": "Confirmation token is created by first admin actor." }, "relations": [ { @@ -657,9 +580,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Expired confirmation token should be rejected and not create task.", "POST": "Confirm endpoint raises 400 and no task is created.", - "PRE": "Confirmation token exists and is manually expired before confirm request.", - "PURPOSE": "Expired confirmation token should be rejected and not create task." + "PRE": "Confirmation token exists and is manually expired before confirm request." }, "relations": [ { @@ -683,9 +606,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Limited user should receive denied state for privileged operation.", "POST": "Assistant returns denied state and does not execute operation.", - "PRE": "Restricted user attempts dangerous deploy command.", - "PURPOSE": "Limited user should receive denied state for privileged operation." + "PRE": "Restricted user attempts dangerous deploy command." }, "relations": [ { @@ -709,7 +632,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate checks start endpoint returns expected identifiers and status endpoint reflects the same run." + "BRIEF": "Validate checks start endpoint returns expected identifiers and status endpoint reflects the same run." }, "relations": [ { @@ -733,7 +656,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate reports endpoint returns 404 for an unknown report identifier." + "BRIEF": "Validate reports endpoint returns 404 for an unknown report identifier." }, "relations": [ { @@ -757,7 +680,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate reports endpoint returns persisted report payload for an existing report identifier." + "BRIEF": "Validate reports endpoint returns persisted report payload for an existing report identifier." }, "relations": [ { @@ -781,7 +704,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate candidate preparation endpoint returns prepared status and manifest identifier on valid input." + "BRIEF": "Validate candidate preparation endpoint returns prepared status and manifest identifier on valid input." }, "relations": [ { @@ -805,9 +728,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Seed in-memory repository with minimum trusted data for legacy endpoint contracts.", "POST": "Candidate, policy, registry and manifest are available for legacy checks flow.", - "PRE": "Repository is empty.", - "PURPOSE": "Seed in-memory repository with minimum trusted data for legacy endpoint contracts." + "PRE": "Repository is empty." }, "relations": [ { @@ -831,7 +754,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify legacy prepare endpoint remains reachable and returns a status payload." + "BRIEF": "Verify legacy prepare endpoint remains reachable and returns a status payload." }, "relations": [ { @@ -855,7 +778,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify legacy checks start/status endpoints remain available during v2 transition." + "BRIEF": "Verify legacy checks start/status endpoints remain available during v2 transition." }, "relations": [ { @@ -879,7 +802,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Seed repository with candidate, registry, and active policy for source isolation test flow." + "BRIEF": "Seed repository with candidate, registry, and active policy for source isolation test flow." }, "relations": [ { @@ -903,7 +826,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify candidate preparation is blocked when at least one source host is external to the trusted registry." + "BRIEF": "Verify candidate preparation is blocked when at least one source host is external to the trusted registry." }, "relations": [ { @@ -927,7 +850,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate candidate registration endpoint creates a draft candidate with expected identifier contract." + "BRIEF": "Validate candidate registration endpoint creates a draft candidate with expected identifier contract." }, "relations": [ { @@ -951,7 +874,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate artifact import endpoint accepts candidate artifacts and returns success status payload." + "BRIEF": "Validate artifact import endpoint accepts candidate artifacts and returns success status payload." }, "relations": [ { @@ -975,7 +898,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate manifest build endpoint produces manifest payload linked to the target candidate." + "BRIEF": "Validate manifest build endpoint produces manifest payload linked to the target candidate." }, "relations": [ { @@ -999,7 +922,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Seed repository with approvable candidate and passed report for release endpoint contracts." + "BRIEF": "Seed repository with approvable candidate and passed report for release endpoint contracts." }, "relations": [ { @@ -1023,7 +946,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify approve, publish, and revoke endpoints preserve expected release lifecycle contract." + "BRIEF": "Verify approve, publish, and revoke endpoints preserve expected release lifecycle contract." }, "relations": [ { @@ -1047,7 +970,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify reject endpoint returns successful rejection decision payload." + "BRIEF": "Verify reject endpoint returns successful rejection decision payload." }, "relations": [ { @@ -1071,9 +994,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate dashboards listing returns a populated response that satisfies the schema contract.", "POST": "Response matches DashboardsResponse schema", "PRE": "env_id exists", - "PURPOSE": "Validate dashboards listing returns a populated response that satisfies the schema contract.", "TEST": "GET /api/dashboards returns 200 and valid schema", "TEST_FIXTURE": "dashboard_list_happy -> {\"id\": 1, \"title\": \"Main Revenue\"}" }, @@ -1091,26 +1014,6 @@ "tag": "TEST", "message": "@TEST is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is forbidden for contract type 'Function' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -1126,9 +1029,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate dashboards listing applies the search filter and returns only matching rows.", "POST": "Filtered result count must match search", "PRE": "search parameter provided", - "PURPOSE": "Validate dashboards listing applies the search filter and returns only matching rows.", "TEST": "GET /api/dashboards filters by search term" }, "relations": [ @@ -1160,7 +1063,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate dashboards listing returns an empty payload for an environment without dashboards.", + "BRIEF": "Validate dashboards listing returns an empty payload for an environment without dashboards.", "TEST_EDGE": "empty_dashboards -> {env_id: 'empty_env', expected_total: 0}" }, "relations": [ @@ -1185,7 +1088,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate dashboards listing surfaces a 503 contract when Superset access fails.", + "BRIEF": "Validate dashboards listing surfaces a 503 contract when Superset access fails.", "TEST_EDGE": "external_superset_failure -> {env_id: 'bad_conn', status: 503}" }, "relations": [ @@ -1210,9 +1113,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate dashboards listing returns 404 when the requested environment does not exist.", "POST": "Returns 404 error", "PRE": "env_id does not exist", - "PURPOSE": "Validate dashboards listing returns 404 when the requested environment does not exist.", "TEST": "GET /api/dashboards returns 404 if env_id missing" }, "relations": [ @@ -1244,9 +1147,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate dashboards listing rejects invalid pagination parameters with 400 responses.", "POST": "Returns 400 error", "PRE": "page < 1 or page_size > 100", - "PURPOSE": "Validate dashboards listing rejects invalid pagination parameters with 400 responses.", "TEST": "GET /api/dashboards returns 400 for invalid page/page_size" }, "relations": [ @@ -1278,7 +1181,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate dashboard detail returns charts and datasets for an existing dashboard.", + "BRIEF": "Validate dashboard detail returns charts and datasets for an existing dashboard.", "TEST": "GET /api/dashboards/{id} returns dashboard detail with charts and datasets" }, "relations": [ @@ -1310,7 +1213,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate dashboard detail returns 404 when the requested environment is missing.", + "BRIEF": "Validate dashboard detail returns 404 when the requested environment is missing.", "TEST": "GET /api/dashboards/{id} returns 404 for missing environment" }, "relations": [ @@ -1342,9 +1245,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate dashboard migration request creates an async task and returns its identifier.", "POST": "Returns task_id and create_task was called\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n@POST/@SIDE_EFFECT: create_task was called", "PRE": "Valid source_env_id, target_env_id, dashboard_ids", - "PURPOSE": "Validate dashboard migration request creates an async task and returns its identifier.", "TEST": "POST /api/dashboards/migrate creates migration task" }, "relations": [ @@ -1376,9 +1279,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate dashboard migration rejects empty dashboard identifier lists.", "POST": "Returns 400 error", "PRE": "dashboard_ids is empty", - "PURPOSE": "Validate dashboard migration rejects empty dashboard identifier lists.", "TEST": "POST /api/dashboards/migrate returns 400 for empty dashboard_ids" }, "relations": [ @@ -1410,8 +1313,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PRE": "source_env_id and target_env_id are valid environment IDs", - "PURPOSE": "Validate migration creation returns 404 when the source environment cannot be resolved." + "BRIEF": "Validate migration creation returns 404 when the source environment cannot be resolved.", + "PRE": "source_env_id and target_env_id are valid environment IDs" }, "relations": [ { @@ -1435,9 +1338,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate dashboard backup request creates an async backup task and returns its identifier.", "POST": "Returns task_id and create_task was called\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n@POST/@SIDE_EFFECT: create_task was called", "PRE": "Valid env_id, dashboard_ids", - "PURPOSE": "Validate dashboard backup request creates an async backup task and returns its identifier.", "TEST": "POST /api/dashboards/backup creates backup task" }, "relations": [ @@ -1469,8 +1372,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PRE": "env_id is a valid environment ID", - "PURPOSE": "Validate backup task creation returns 404 when the target environment is missing." + "BRIEF": "Validate backup task creation returns 404 when the target environment is missing.", + "PRE": "env_id is a valid environment ID" }, "relations": [ { @@ -1494,9 +1397,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate database mapping suggestions are returned for valid source and target environments.", "POST": "Returns list of database mappings", "PRE": "Valid source_env_id, target_env_id", - "PURPOSE": "Validate database mapping suggestions are returned for valid source and target environments.", "TEST": "GET /api/dashboards/db-mappings returns mapping suggestions" }, "relations": [ @@ -1528,8 +1431,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PRE": "source_env_id and target_env_id are valid environment IDs", - "PURPOSE": "Validate database mapping suggestions return 404 when either environment is missing." + "BRIEF": "Validate database mapping suggestions return 404 when either environment is missing.", + "PRE": "source_env_id and target_env_id are valid environment IDs" }, "relations": [ { @@ -1553,7 +1456,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate dashboard task history returns only related backup and LLM tasks.", + "BRIEF": "Validate dashboard task history returns only related backup and LLM tasks.", "TEST": "GET /api/dashboards/{id}/tasks returns backup and llm tasks for dashboard" }, "relations": [ @@ -1585,7 +1488,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate dashboard thumbnail endpoint proxies image bytes and content type from Superset.", + "BRIEF": "Validate dashboard thumbnail endpoint proxies image bytes and content type from Superset.", "TEST": "GET /api/dashboards/{id}/thumbnail proxies image bytes from Superset" }, "relations": [ @@ -1617,9 +1520,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Creates profile preference payload stub for dashboards filter contract tests.", "POST": "Returns object compatible with ProfileService.get_my_preference contract.", - "PRE": "username can be empty; enabled indicates profile-default toggle state.", - "PURPOSE": "Creates profile preference payload stub for dashboards filter contract tests." + "PRE": "username can be empty; enabled indicates profile-default toggle state." }, "relations": [ { @@ -1643,9 +1546,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Applies trim + case-insensitive owners OR modified_by matching used by route contract tests.", "POST": "Returns True when bound username matches any owner or modified_by.", - "PRE": "owners can be None or list-like values.", - "PURPOSE": "Applies trim + case-insensitive owners OR modified_by matching used by route contract tests." + "PRE": "owners can be None or list-like values." }, "relations": [ { @@ -1669,9 +1572,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate profile-default filtering matches owner and modifier aliases using normalized Superset actor values.", "POST": "Response includes only matching dashboards and effective_profile_filter metadata.", "PRE": "Current user has enabled profile-default preference and bound username.", - "PURPOSE": "Validate profile-default filtering matches owner and modifier aliases using normalized Superset actor values.", "TEST": "GET /api/dashboards applies profile-default filter with owners OR modified_by trim+case-insensitive semantics." }, "relations": [ @@ -1703,9 +1606,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate override_show_all bypasses profile-default filtering without changing dashboard list semantics.", "POST": "Response remains unfiltered and effective_profile_filter.applied is false.", "PRE": "Profile-default preference exists but override_show_all=true query is provided.", - "PURPOSE": "Validate override_show_all bypasses profile-default filtering without changing dashboard list semantics.", "TEST": "GET /api/dashboards honors override_show_all and disables profile-default filter for current page." }, "relations": [ @@ -1737,9 +1640,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate profile-default filtering returns an empty dashboard page when no actor aliases match the bound user.", "POST": "Response total is 0 with deterministic pagination and active effective_profile_filter metadata.", "PRE": "Profile-default preference is enabled with bound username and all dashboards are non-matching.", - "PURPOSE": "Validate profile-default filtering returns an empty dashboard page when no actor aliases match the bound user.", "TEST": "GET /api/dashboards returns empty result set when profile-default filter is active and no dashboard actors match." }, "relations": [ @@ -1771,9 +1674,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate non-dashboard page contexts suppress profile-default filtering and preserve unfiltered results.", "POST": "Response remains unfiltered and metadata reflects source_page=other.", "PRE": "Profile-default preference exists but page_context=other query is provided.", - "PURPOSE": "Validate non-dashboard page contexts suppress profile-default filtering and preserve unfiltered results.", "TEST": "GET /api/dashboards does not auto-apply profile-default filter outside dashboards_main page context." }, "relations": [ @@ -1805,9 +1708,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate profile-default filtering reuses resolved Superset display aliases without triggering per-dashboard detail fanout.", "POST": "Route matches by alias (`Superset Admin`) and does not call `SupersetClient.get_dashboard` in list filter path.", "PRE": "Profile-default filter is active, bound username is `admin`, dashboard actors contain display labels.", - "PURPOSE": "Validate profile-default filtering reuses resolved Superset display aliases without triggering per-dashboard detail fanout.", "TEST": "GET /api/dashboards resolves Superset display-name alias once and filters without per-dashboard detail calls." }, "relations": [ @@ -1839,9 +1742,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate profile-default filtering accepts owner object payloads once aliases resolve to the bound Superset username.", "POST": "Response keeps dashboards where owner object resolves to bound username alias.", "PRE": "Profile-default preference is enabled and owners list contains dict payloads.", - "PURPOSE": "Validate profile-default filtering accepts owner object payloads once aliases resolve to the bound Superset username.", "TEST": "GET /api/dashboards profile-default filter matches Superset owner object payloads." }, "relations": [ @@ -2027,7 +1930,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify dashboard links recover dataset context and preserve explicit partial-recovery markers." + "BRIEF": "Verify dashboard links recover dataset context and preserve explicit partial-recovery markers." }, "relations": [ { @@ -2051,7 +1954,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify dashboard slug links resolve through dashboard detail endpoints and recover dataset context." + "BRIEF": "Verify dashboard slug links resolve through dashboard detail endpoints and recover dataset context." }, "relations": [ { @@ -2075,7 +1978,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify dashboard permalink links no longer fail parsing and preserve permalink filter state for partial recovery." + "BRIEF": "Verify dashboard permalink links no longer fail parsing and preserve permalink filter state for partial recovery." }, "relations": [ { @@ -2099,7 +2002,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify permalink state with nested dashboard id recovers dataset binding and keeps imported filters." + "BRIEF": "Verify permalink state with nested dashboard id recovers dataset binding and keeps imported filters." }, "relations": [ { @@ -2123,7 +2026,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify trusted dictionary exact matches outrank fuzzy candidates and unresolved fields stay explicit." + "BRIEF": "Verify trusted dictionary exact matches outrank fuzzy candidates and unresolved fields stay explicit." }, "relations": [ { @@ -2147,7 +2050,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify session start persists usable recovery-required state when Superset intake is partial." + "BRIEF": "Verify session start persists usable recovery-required state when Superset intake is partial." }, "relations": [ { @@ -2171,7 +2074,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify session start persists recovered filters, template variables, and initial execution mappings for review workspace bootstrap." + "BRIEF": "Verify session start persists recovered filters, template variables, and initial execution mappings for review workspace bootstrap." }, "relations": [ { @@ -2195,7 +2098,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify POST session lifecycle endpoint returns a persisted ownership-scoped summary." + "BRIEF": "Verify POST session lifecycle endpoint returns a persisted ownership-scoped summary." }, "relations": [ { @@ -2219,7 +2122,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify lifecycle get/patch/delete plus documentation and validation exports remain ownership-scoped and usable." + "BRIEF": "Verify lifecycle get/patch/delete plus documentation and validation exports remain ownership-scoped and usable." }, "relations": [ { @@ -2243,7 +2146,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Clarification state endpoint should return a non-blocking empty payload when the session has no clarification aggregate yet." + "BRIEF": "Clarification state endpoint should return a non-blocking empty payload when the session has no clarification aggregate yet." }, "relations": [], "schema_warnings": [], @@ -2260,7 +2163,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Clarification endpoints should expose one current question, persist the answer before advancement, and store feedback on the answer audit record." + "BRIEF": "Clarification endpoints should expose one current question, persist the answer before advancement, and store feedback on the answer audit record." }, "relations": [ { @@ -2284,7 +2187,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Semantic field endpoints should apply manual overrides with lock/provenance invariants and persist feedback independently." + "BRIEF": "Semantic field endpoints should apply manual overrides with lock/provenance invariants and persist feedback independently." }, "relations": [ { @@ -2308,7 +2211,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "US3 execution endpoints should persist manual overrides, preserve explicit approval semantics, return contract-shaped preview truth, and expose audited launch handoff." + "BRIEF": "US3 execution endpoints should persist manual overrides, preserve explicit approval semantics, return contract-shaped preview truth, and expose audited launch handoff." }, "relations": [ { @@ -2332,7 +2235,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "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." + "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." }, "relations": [ { @@ -2356,7 +2259,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Preview endpoint should preserve API contract and surface generic upstream preview failures without fabricating dashboard-not-found semantics for non-dashboard 404s." + "BRIEF": "Preview endpoint should preserve API contract and surface generic upstream preview failures without fabricating dashboard-not-found semantics for non-dashboard 404s." }, "relations": [ { @@ -2380,7 +2283,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Dataset review mutation endpoints should return deterministic 409 conflict semantics when optimistic-lock versions are stale." + "BRIEF": "Dataset review mutation endpoints should return deterministic 409 conflict semantics when optimistic-lock versions are stale." }, "relations": [ { @@ -2404,7 +2307,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Session lifecycle mutation should return deterministic 409 conflict semantics when commit-time optimistic locking rejects a stale write." + "BRIEF": "Session lifecycle mutation should return deterministic 409 conflict semantics when commit-time optimistic locking rejects a stale write." }, "relations": [ { @@ -2428,7 +2331,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Recovered imported filters with values should flow into preview filter context even when no template variable mapping exists." + "BRIEF": "Recovered imported filters with values should flow into preview filter context even when no template variable mapping exists." }, "relations": [ { @@ -2452,7 +2355,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Mapped template variables should still populate template params while contributing their effective filter context." + "BRIEF": "Mapped template variables should still populate template params while contributing their effective filter context." }, "relations": [ { @@ -2476,7 +2379,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Partial imported filters without raw or normalized values must not emit bogus active preview filters." + "BRIEF": "Partial imported filters without raw or normalized values must not emit bogus active preview filters." }, "relations": [ { @@ -2500,7 +2403,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Launch endpoint should enforce the contract RBAC permission instead of the generic session-manage permission." + "BRIEF": "Launch endpoint should enforce the contract RBAC permission instead of the generic session-manage permission." }, "relations": [ { @@ -2524,7 +2427,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Updated semantic source versions should mark unlocked fields reviewable while preserving locked manual values." + "BRIEF": "Updated semantic source versions should mark unlocked fields reviewable while preserving locked manual values." }, "relations": [ { @@ -2548,9 +2451,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate successful datasets listing contract for an existing environment.", "POST": "Response matches DatasetsResponse schema", "PRE": "env_id exists", - "PURPOSE": "Validate successful datasets listing contract for an existing environment.", "TEST": "GET /api/datasets returns 200 and valid schema" }, "relations": [ @@ -2582,9 +2485,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate datasets listing returns 404 when the requested environment does not exist.", "POST": "Returns 404 error", "PRE": "env_id does not exist", - "PURPOSE": "Validate datasets listing returns 404 when the requested environment does not exist.", "TEST": "GET /api/datasets returns 404 if env_id missing" }, "relations": [ @@ -2616,9 +2519,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate datasets listing rejects invalid pagination parameters with 400 responses.", "POST": "Returns 400 error", "PRE": "page < 1 or page_size > 100", - "PURPOSE": "Validate datasets listing rejects invalid pagination parameters with 400 responses.", "TEST": "GET /api/datasets returns 400 for invalid page/page_size" }, "relations": [ @@ -2650,9 +2553,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate map-columns request creates an async mapping task and returns its identifier.", "POST": "Returns task_id", "PRE": "Valid env_id, dataset_ids, source_type (sqllab)", - "PURPOSE": "Validate map-columns request creates an async mapping task and returns its identifier.", "TEST": "POST /api/datasets/map-columns creates mapping task" }, "relations": [ @@ -2684,9 +2587,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate map-columns rejects unsupported source types with a 400 contract response.", "POST": "Returns 400 error", "PRE": "source_type is not 'sqllab' or 'xlsx'", - "PURPOSE": "Validate map-columns rejects unsupported source types with a 400 contract response.", "TEST": "POST /api/datasets/map-columns returns 400 for invalid source_type" }, "relations": [ @@ -2718,9 +2621,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate generate-docs request creates an async documentation task and returns its identifier.", "POST": "Returns task_id", "PRE": "Valid env_id, dataset_ids, llm_provider", - "PURPOSE": "Validate generate-docs request creates an async documentation task and returns its identifier.", "TEST": "POST /api/datasets/generate-docs creates doc generation task" }, "relations": [ @@ -2752,9 +2655,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate map-columns rejects empty dataset identifier lists.", "POST": "Returns 400 error", "PRE": "dataset_ids is empty", - "PURPOSE": "Validate map-columns rejects empty dataset identifier lists.", "TEST": "POST /api/datasets/map-columns returns 400 for empty dataset_ids" }, "relations": [ @@ -2786,8 +2689,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate map-columns rejects sqllab source without database_id.", "POST": "Returns 400 error", - "PURPOSE": "Validate map-columns rejects sqllab source without database_id.", "TEST": "POST /api/datasets/map-columns returns 400 for sqllab without database_id" }, "relations": [ @@ -2819,9 +2722,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate generate-docs rejects empty dataset identifier lists.", "POST": "Returns 400 error", "PRE": "dataset_ids is empty", - "PURPOSE": "Validate generate-docs rejects empty dataset identifier lists.", "TEST": "POST /api/datasets/generate-docs returns 400 for empty dataset_ids" }, "relations": [ @@ -2853,9 +2756,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate generate-docs returns 404 when the requested environment cannot be resolved.", "POST": "Returns 404 error", "PRE": "env_id does not exist", - "PURPOSE": "Validate generate-docs returns 404 when the requested environment cannot be resolved.", "TEST": "POST /api/datasets/generate-docs returns 404 for missing env" }, "relations": [ @@ -2887,8 +2790,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate datasets listing surfaces a 503 contract when Superset access fails.", "POST": "Returns 503 with stable error detail when upstream dataset fetch fails.", - "PURPOSE": "Validate datasets listing surfaces a 503 contract when Superset access fails.", "TEST_EDGE": "external_superset_failure -> {status: 503}" }, "relations": [ @@ -2913,7 +2816,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate listing git configs masks stored PAT values in API-facing responses." + "BRIEF": "Validate listing git configs masks stored PAT values in API-facing responses." }, "relations": [ { @@ -2937,7 +2840,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate creating git config persists supplied server attributes in backing session." + "BRIEF": "Validate creating git config persists supplied server attributes in backing session." }, "relations": [ { @@ -2961,7 +2864,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate updating git config modifies mutable fields while preserving masked PAT semantics." + "BRIEF": "Validate updating git config modifies mutable fields while preserving masked PAT semantics." }, "relations": [ { @@ -3000,7 +2903,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate updating non-existent git config raises HTTP 404 contract response." + "BRIEF": "Validate updating non-existent git config raises HTTP 404 contract response." }, "relations": [ { @@ -3024,7 +2927,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate deleting existing git config removes record and returns success payload." + "BRIEF": "Validate deleting existing git config removes record and returns success payload." }, "relations": [ { @@ -3048,7 +2951,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate test-connection endpoint returns success when provider connectivity check passes." + "BRIEF": "Validate test-connection endpoint returns success when provider connectivity check passes." }, "relations": [ { @@ -3087,7 +2990,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate test-connection endpoint raises HTTP 400 when provider connectivity check fails." + "BRIEF": "Validate test-connection endpoint raises HTTP 400 when provider connectivity check fails." }, "relations": [ { @@ -3111,7 +3014,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate gitea repositories endpoint returns normalized list for GITEA provider configs." + "BRIEF": "Validate gitea repositories endpoint returns normalized list for GITEA provider configs." }, "relations": [ { @@ -3135,7 +3038,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate gitea repositories endpoint rejects non-GITEA providers with HTTP 400." + "BRIEF": "Validate gitea repositories endpoint rejects non-GITEA providers with HTTP 400." }, "relations": [ { @@ -3159,7 +3062,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate remote repository creation endpoint maps provider response into normalized payload." + "BRIEF": "Validate remote repository creation endpoint maps provider response into normalized payload." }, "relations": [ { @@ -3183,7 +3086,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate repository initialization endpoint creates local repo and persists dashboard binding." + "BRIEF": "Validate repository initialization endpoint creates local repo and persists dashboard binding." }, "relations": [ { @@ -3207,9 +3110,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure missing local repository is represented as NO_REPO payload instead of an API error.", "POST": "Route returns a deterministic NO_REPO status payload.", - "PRE": "GitService.get_status raises HTTPException(404).", - "PURPOSE": "Ensure missing local repository is represented as NO_REPO payload instead of an API error." + "PRE": "GitService.get_status raises HTTPException(404)." }, "relations": [ { @@ -3233,9 +3136,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure HTTP exceptions other than 404 are not masked.", "POST": "Raised exception preserves original status and detail.", - "PRE": "GitService.get_status raises HTTPException with non-404 status.", - "PURPOSE": "Ensure HTTP exceptions other than 404 are not masked." + "PRE": "GitService.get_status raises HTTPException with non-404 status." }, "relations": [ { @@ -3259,9 +3162,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure diff endpoint preserves domain HTTP errors from GitService.", "POST": "Endpoint raises same HTTPException values.", - "PRE": "GitService.get_diff raises HTTPException.", - "PURPOSE": "Ensure diff endpoint preserves domain HTTP errors from GitService." + "PRE": "GitService.get_diff raises HTTPException." }, "relations": [ { @@ -3285,9 +3188,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure non-HTTP exceptions in history endpoint become deterministic 500 errors.", "POST": "Endpoint returns HTTPException with status 500 and route context.", - "PRE": "GitService.get_commit_history raises ValueError.", - "PURPOSE": "Ensure non-HTTP exceptions in history endpoint become deterministic 500 errors." + "PRE": "GitService.get_commit_history raises ValueError." }, "relations": [ { @@ -3311,9 +3214,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure commit endpoint does not leak unexpected errors as 400.", "POST": "Endpoint raises HTTPException(500) with route context.", - "PRE": "GitService.commit_changes raises RuntimeError.", - "PURPOSE": "Ensure commit endpoint does not leak unexpected errors as 400." + "PRE": "GitService.commit_changes raises RuntimeError." }, "relations": [ { @@ -3337,9 +3240,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure batch endpoint returns per-dashboard statuses in one response.", "POST": "Returned map includes resolved status for each requested dashboard ID.", - "PRE": "Some repositories are missing and some are initialized.", - "PURPOSE": "Ensure batch endpoint returns per-dashboard statuses in one response." + "PRE": "Some repositories are missing and some are initialized." }, "relations": [ { @@ -3363,9 +3266,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure batch endpoint marks failed items as ERROR without failing entire request.", "POST": "Failed dashboard status is marked as ERROR.", - "PRE": "GitService raises non-HTTP exception for one dashboard.", - "PURPOSE": "Ensure batch endpoint marks failed items as ERROR without failing entire request." + "PRE": "GitService raises non-HTTP exception for one dashboard." }, "relations": [ { @@ -3389,9 +3292,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure batch endpoint protects server from oversized payloads.", "POST": "Result contains unique IDs up to configured cap.", - "PRE": "request includes duplicate IDs and more than MAX_REPOSITORY_STATUS_BATCH entries.", - "PURPOSE": "Ensure batch endpoint protects server from oversized payloads." + "PRE": "request includes duplicate IDs and more than MAX_REPOSITORY_STATUS_BATCH entries." }, "relations": [ { @@ -3415,9 +3318,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure commit route configures repository identity from profile preferences before commit call.", "POST": "git_service.configure_identity receives resolved identity and commit proceeds.", - "PRE": "Profile preference contains git_username/git_email for current user.", - "PURPOSE": "Ensure commit route configures repository identity from profile preferences before commit call." + "PRE": "Profile preference contains git_username/git_email for current user." }, "relations": [ { @@ -3441,9 +3344,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure pull route configures repository identity from profile preferences before pull call.", "POST": "git_service.configure_identity receives resolved identity and pull proceeds.", - "PRE": "Profile preference contains git_username/git_email for current user.", - "PURPOSE": "Ensure pull route configures repository identity from profile preferences before pull call." + "PRE": "Profile preference contains git_username/git_email for current user." }, "relations": [ { @@ -3467,9 +3370,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure merge status route returns service payload as-is.", "POST": "Route response contains has_unfinished_merge=True.", - "PRE": "git_service.get_merge_status returns unfinished merge payload.", - "PURPOSE": "Ensure merge status route returns service payload as-is." + "PRE": "git_service.get_merge_status returns unfinished merge payload." }, "relations": [ { @@ -3493,9 +3396,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure merge resolve route forwards parsed resolutions to service.", "POST": "Service receives normalized list and route returns resolved files.", - "PRE": "resolve_data has one file strategy.", - "PURPOSE": "Ensure merge resolve route forwards parsed resolutions to service." + "PRE": "resolve_data has one file strategy." }, "relations": [ { @@ -3519,9 +3422,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure abort route delegates to service.", "POST": "Route returns aborted status.", - "PRE": "Service abort_merge returns aborted status.", - "PURPOSE": "Ensure abort route delegates to service." + "PRE": "Service abort_merge returns aborted status." }, "relations": [ { @@ -3545,9 +3448,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure continue route passes commit message to service.", "POST": "Route returns committed status and hash.", - "PRE": "continue_data.message is provided.", - "PURPOSE": "Ensure continue route passes commit message to service." + "PRE": "continue_data.message is provided." }, "relations": [ { @@ -3615,9 +3518,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Provides deterministic dependency overrides for profile route tests.", "POST": "Dependencies are overridden for current test and restored afterward.", - "PRE": "App instance is initialized.", - "PURPOSE": "Provides deterministic dependency overrides for profile route tests." + "PRE": "App instance is initialized." }, "relations": [ { @@ -3641,9 +3544,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Pytest fixture wrapper for profile route dependency overrides.", "POST": "Yields overridden dependencies and clears overrides after test.", - "PRE": "None.", - "PURPOSE": "Pytest fixture wrapper for profile route dependency overrides." + "PRE": "None." }, "relations": [ { @@ -3667,9 +3570,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Builds stable profile preference response payload for route tests.", "POST": "Returns ProfilePreferenceResponse object with deterministic timestamps.", - "PRE": "user_id is provided.", - "PURPOSE": "Builds stable profile preference response payload for route tests." + "PRE": "user_id is provided." }, "relations": [ { @@ -3693,9 +3596,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verifies GET /api/profile/preferences returns stable self-scoped payload.", "POST": "Response status is 200 and payload contains current user preference.", - "PRE": "Authenticated user context is available.", - "PURPOSE": "Verifies GET /api/profile/preferences returns stable self-scoped payload." + "PRE": "Authenticated user context is available." }, "relations": [ { @@ -3719,9 +3622,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verifies PATCH /api/profile/preferences persists valid payload through route mapping.", "POST": "Response status is 200 with saved preference payload.", - "PRE": "Valid request payload and authenticated user.", - "PURPOSE": "Verifies PATCH /api/profile/preferences persists valid payload through route mapping." + "PRE": "Valid request payload and authenticated user." }, "relations": [ { @@ -3745,9 +3648,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verifies route maps domain validation failure to HTTP 422 with actionable details.", "POST": "Response status is 422 and includes validation messages.", - "PRE": "Service raises ProfileValidationError.", - "PURPOSE": "Verifies route maps domain validation failure to HTTP 422 with actionable details." + "PRE": "Service raises ProfileValidationError." }, "relations": [ { @@ -3771,9 +3674,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verifies route maps domain authorization guard failure to HTTP 403.", "POST": "Response status is 403 with denial message.", - "PRE": "Service raises ProfileAuthorizationError.", - "PURPOSE": "Verifies route maps domain authorization guard failure to HTTP 403." + "PRE": "Service raises ProfileAuthorizationError." }, "relations": [ { @@ -3797,9 +3700,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verifies lookup route returns success payload with normalized candidates.", "POST": "Response status is 200 and items list is returned.", - "PRE": "Valid environment_id and service success response.", - "PURPOSE": "Verifies lookup route returns success payload with normalized candidates." + "PRE": "Valid environment_id and service success response." }, "relations": [ { @@ -3823,9 +3726,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verifies lookup route maps missing environment to HTTP 404.", "POST": "Response status is 404 with explicit message.", - "PRE": "Service raises EnvironmentNotFoundError.", - "PURPOSE": "Verifies lookup route maps missing environment to HTTP 404." + "PRE": "Service raises EnvironmentNotFoundError." }, "relations": [ { @@ -3849,7 +3752,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Build Task fixture with controlled timestamps/status for reports list/detail normalization." + "BRIEF": "Build Task fixture with controlled timestamps/status for reports list/detail normalization." }, "relations": [ { @@ -3873,7 +3776,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate reports list endpoint default pagination and contract keys for mixed task statuses." + "BRIEF": "Validate reports list endpoint default pagination and contract keys for mixed task statuses." }, "relations": [ { @@ -3897,7 +3800,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate reports list endpoint applies task-type/status filters and pagination boundaries." + "BRIEF": "Validate reports list endpoint applies task-type/status filters and pagination boundaries." }, "relations": [ { @@ -3921,7 +3824,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate reports sorting remains stable when task timestamps mix naive and timezone-aware datetimes." + "BRIEF": "Validate reports sorting remains stable when task timestamps mix naive and timezone-aware datetimes." }, "relations": [ { @@ -3945,7 +3848,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate reports list endpoint rejects unsupported task type filters with HTTP 400." + "BRIEF": "Validate reports list endpoint rejects unsupported task type filters with HTTP 400." }, "relations": [ { @@ -3969,7 +3872,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate report detail endpoint returns report body with diagnostics and next actions for existing task." + "BRIEF": "Validate report detail endpoint returns report body with diagnostics and next actions for existing task." }, "relations": [ { @@ -3993,7 +3896,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate report detail endpoint returns 404 when requested report identifier is absent." + "BRIEF": "Validate report detail endpoint returns 404 when requested report identifier is absent." }, "relations": [ { @@ -4017,7 +3920,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Provide admin principal fixture required by reports routes in conformance tests." + "BRIEF": "Provide admin principal fixture required by reports routes in conformance tests." }, "relations": [ { @@ -4041,7 +3944,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Construct deterministic task fixture consumed by reports list/detail payload assertions." + "BRIEF": "Construct deterministic task fixture consumed by reports list/detail payload assertions." }, "relations": [ { @@ -4065,7 +3968,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify reports list endpoint includes all required OpenAPI top-level keys." + "BRIEF": "Verify reports list endpoint includes all required OpenAPI top-level keys." }, "relations": [ { @@ -4089,7 +3992,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify reports detail endpoint returns payload containing the report object key." + "BRIEF": "Verify reports detail endpoint returns payload containing the report object key." }, "relations": [ { @@ -4113,7 +4016,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate task logs endpoint returns filtered logs for an existing task." + "BRIEF": "Validate task logs endpoint returns filtered logs for an existing task." }, "relations": [ { @@ -4137,7 +4040,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate task logs endpoint returns 404 when the task identifier is missing.", + "BRIEF": "Validate task logs endpoint returns 404 when the task identifier is missing.", "TEST_EDGE": "invalid_limit" }, "relations": [ @@ -4162,7 +4065,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate task logs endpoint enforces query validation for limit lower bound." + "BRIEF": "Validate task logs endpoint enforces query validation for limit lower bound." }, "relations": [ { @@ -4186,7 +4089,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate log stats endpoint returns success payload for an existing task." + "BRIEF": "Validate log stats endpoint returns success payload for an existing task." }, "relations": [ { @@ -4210,10 +4113,10 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Admin API endpoints for user and role management.", "COMPLEXITY": 5, "INVARIANT": "All endpoints in this module require 'Admin' role or 'admin' scope.", - "LAYER": "API", - "PURPOSE": "Admin API endpoints for user and role management." + "LAYER": "API" }, "relations": [ { @@ -4249,10 +4152,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Lists all registered users.", "COMPLEXITY": 3, "POST": "Returns a list of UserSchema objects.", - "PRE": "Current user has 'Admin' role.", - "PURPOSE": "Lists all registered users." + "PRE": "Current user has 'Admin' role." }, "relations": [ { @@ -4276,10 +4179,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Creates a new local user.", "COMPLEXITY": 3, "POST": "New user is created in the database.", - "PRE": "Current user has 'Admin' role.", - "PURPOSE": "Creates a new local user." + "PRE": "Current user has 'Admin' role." }, "relations": [ { @@ -4303,10 +4206,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Updates an existing user.", "COMPLEXITY": 3, "POST": "User record is updated in the database.", - "PRE": "Current user has 'Admin' role.", - "PURPOSE": "Updates an existing user." + "PRE": "Current user has 'Admin' role." }, "relations": [ { @@ -4330,10 +4233,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Deletes a user.", "COMPLEXITY": 3, "POST": "User record is removed from the database.", - "PRE": "Current user has 'Admin' role.", - "PURPOSE": "Deletes a user." + "PRE": "Current user has 'Admin' role." }, "relations": [ { @@ -4357,8 +4260,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Lists all available roles." + "BRIEF": "Lists all available roles.", + "COMPLEXITY": 3 }, "relations": [ { @@ -4382,10 +4285,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Creates a new system role with associated permissions.", "COMPLEXITY": 3, "POST": "New Role record is created in auth.db.", "PRE": "Role name must be unique.", - "PURPOSE": "Creates a new system role with associated permissions.", "SIDE_EFFECT": "Commits new role and associations to auth.db." }, "relations": [ @@ -4410,10 +4313,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Updates an existing role's metadata and permissions.", "COMPLEXITY": 3, "POST": "Role record is updated in auth.db.", "PRE": "role_id must be a valid existing role UUID.", - "PURPOSE": "Updates an existing role's metadata and permissions.", "SIDE_EFFECT": "Commits updates to auth.db." }, "relations": [ @@ -4438,10 +4341,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Removes a role from the system.", "COMPLEXITY": 3, "POST": "Role record is removed from auth.db.", "PRE": "role_id must be a valid existing role UUID.", - "PURPOSE": "Removes a role from the system.", "SIDE_EFFECT": "Deletes record from auth.db and commits." }, "relations": [ @@ -4466,8 +4369,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Lists all AD Group to Role mappings." + "BRIEF": "Lists all AD Group to Role mappings.", + "COMPLEXITY": 3 }, "relations": [ { @@ -4491,8 +4394,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Creates a new AD Group mapping." + "BRIEF": "Creates a new AD Group mapping.", + "COMPLEXITY": 2 }, "relations": [ { @@ -4528,10 +4431,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Admin API endpoints for API key management — list, generate (one-time reveal), and revoke.", "COMPLEXITY": 3, "INVARIANT": "DELETE /api/admin/api-keys/{id} soft-deletes (active=False), preserves row for audit.", - "LAYER": "API", - "PURPOSE": "Admin API endpoints for API key management — list, generate (one-time reveal), and revoke." + "LAYER": "API" }, "relations": [ { @@ -4635,10 +4538,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "List all API keys — NEVER returns key_hash or raw_key.", "COMPLEXITY": 2, "POST": "Returns list of ApiKeyListItem without sensitive fields.", - "PRE": "Requires admin:settings WRITE permission.", - "PURPOSE": "List all API keys — NEVER returns key_hash or raw_key." + "PRE": "Requires admin:settings WRITE permission." }, "relations": [], "schema_warnings": [], @@ -4655,10 +4558,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Generate a new API key — returns raw key ONCE, never stored or retrievable again.", "COMPLEXITY": 3, "POST": "Creates APIKey row with SHA-256 hash. Returns raw key in response.", "PRE": "Requires admin:settings WRITE permission. name is required, at least one permission.", - "PURPOSE": "Generate a new API key — returns raw key ONCE, never stored or retrievable again.", "SIDE_EFFECT": "Generates cryptographically random key, stores hash in DB." }, "relations": [ @@ -4683,10 +4586,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Revoke an API key by setting active=False. Preserves row for audit.", "COMPLEXITY": 2, "POST": "Sets active=False on the key. Returns 404 if already revoked or not found.", - "PRE": "Requires admin:settings WRITE permission.", - "PURPOSE": "Revoke an API key by setting active=False. Preserves row for audit." + "PRE": "Requires admin:settings WRITE permission." }, "relations": [], "schema_warnings": [], @@ -4703,10 +4606,10 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "FastAPI route handlers for assistant admin operations — conversation listing, deletion, history, audit.", "COMPLEXITY": 5, "INVARIANT": "Audit endpoint requires tasks:READ permission.", - "LAYER": "API", - "PURPOSE": "FastAPI route handlers for assistant admin operations — conversation listing, deletion, history, audit." + "LAYER": "API" }, "relations": [ { @@ -4742,10 +4645,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Return paginated conversation list for current user with archived flag and last message preview.", "COMPLEXITY": 2, "POST": "Conversations are grouped by conversation_id sorted by latest activity descending.", - "PRE": "Authenticated user context and valid pagination params.", - "PURPOSE": "Return paginated conversation list for current user with archived flag and last message preview." + "PRE": "Authenticated user context and valid pagination params." }, "relations": [], "schema_warnings": [], @@ -4762,10 +4665,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Soft-delete or hard-delete a conversation and clear its in-memory trace.", "COMPLEXITY": 2, "POST": "Conversation records are removed from DB and CONVERSATIONS cache.", - "PRE": "conversation_id belongs to current_user.", - "PURPOSE": "Soft-delete or hard-delete a conversation and clear its in-memory trace." + "PRE": "conversation_id belongs to current_user." }, "relations": [], "schema_warnings": [], @@ -4782,9 +4685,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieve paginated assistant conversation history for current user.", "POST": "Returns persistent messages and mirrored in-memory snapshot for diagnostics.", - "PRE": "Authenticated user is available and page params are valid.", - "PURPOSE": "Retrieve paginated assistant conversation history for current user." + "PRE": "Authenticated user is available and page params are valid." }, "relations": [], "schema_warnings": [], @@ -4801,9 +4704,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return assistant audit decisions for current user from persistent and in-memory stores.", "POST": "Audit payload is returned in reverse chronological order from DB.", - "PRE": "User has tasks:READ permission.", - "PURPOSE": "Return assistant audit decisions for current user from persistent and in-memory stores." + "PRE": "User has tasks:READ permission." }, "relations": [], "schema_warnings": [], @@ -4820,10 +4723,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Deterministic RU/EN command text parser that converts user messages into intent payloads.", "COMPLEXITY": 4, "INVARIANT": "Every return path includes domain, operation, entities, confidence, risk_level, requires_confirmation.", - "LAYER": "API", - "PURPOSE": "Deterministic RU/EN command text parser that converts user messages into intent payloads." + "LAYER": "API" }, "relations": [ { @@ -4847,12 +4750,12 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Deterministically parse RU/EN command text into intent payload.", "COMPLEXITY": 4, "DATA_CONTRACT": "Input[message:str, config_manager:ConfigManager] -> Output[Dict[str,Any]{domain,operation,entities,confidence,risk_level,requires_confirmation}]", "INVARIANT": "every return path includes domain, operation, entities, confidence, risk_level, requires_confirmation.", "POST": "Returns intent dict with domain/operation/entities/confidence/risk fields.", "PRE": "message contains raw user text and config manager resolves environments.", - "PURPOSE": "Deterministically parse RU/EN command text into intent payload.", "SIDE_EFFECT": "None (pure parsing logic)." }, "relations": [ @@ -4883,10 +4786,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Dataset review context loading and intent planning for the assistant API.", "COMPLEXITY": 4, "INVARIANT": "Dataset review operations are always scoped to the owner's session.", - "LAYER": "API", - "PURPOSE": "Dataset review context loading and intent planning for the assistant API." + "LAYER": "API" }, "relations": [ { @@ -4922,10 +4825,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Build assistant-safe dataset-review context snapshot with masked imported-filter payloads for session-scoped assistant routing.", "COMPLEXITY": 4, "POST": "Returns a serializable dictionary containing the complete review context.", "PRE": "session_id is a valid active review session identifier.", - "PURPOSE": "Build assistant-safe dataset-review context snapshot with masked imported-filter payloads for session-scoped assistant routing.", "SIDE_EFFECT": "Reads session data from the database." }, "relations": [ @@ -4950,10 +4853,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Load owner-scoped dataset-review context for assistant planning and grounded response generation.", "COMPLEXITY": 4, "POST": "Returns a loaded context object with session data and findings.", "PRE": "session_id is a valid active review session identifier.", - "PURPOSE": "Load owner-scoped dataset-review context for assistant planning and grounded response generation.", "SIDE_EFFECT": "Reads session data from the database." }, "relations": [ @@ -4978,8 +4881,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Extract structured dataset-review focus target hints embedded in assistant prompts." + "BRIEF": "Extract structured dataset-review focus target hints embedded in assistant prompts.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -4996,8 +4899,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Resolve one semantic field from assistant-visible context by id or user-visible label." + "BRIEF": "Resolve one semantic field from assistant-visible context by id or user-visible label.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -5014,8 +4917,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Extract one quoted assistant command segment after a label token." + "BRIEF": "Extract one quoted assistant command segment after a label token.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -5032,8 +4935,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Parse session-scoped dataset-review assistant commands before falling back to generic assistant tool routing." + "BRIEF": "Parse session-scoped dataset-review assistant commands before falling back to generic assistant tool routing.", + "COMPLEXITY": 3 }, "relations": [ { @@ -5057,10 +4960,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Dispatch and confirmation handling for dataset-review assistant intents.", "COMPLEXITY": 4, "INVARIANT": "Dataset review dispatch requires valid session version for write operations.", - "LAYER": "API", - "PURPOSE": "Dispatch and confirmation handling for dataset-review assistant intents." + "LAYER": "API" }, "relations": [ { @@ -5096,8 +4999,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Convert dataset-review optimistic-lock conflicts into shared 409 assistant semantics." + "BRIEF": "Convert dataset-review optimistic-lock conflicts into shared 409 assistant semantics.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -5114,10 +5017,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Route confirmed dataset-review assistant intents through existing backend dataset-review APIs and orchestration boundaries.", "COMPLEXITY": 4, "POST": "Returns a structured response with planned actions and confirmations.", "PRE": "context contains valid session data and user intent.", - "PURPOSE": "Route confirmed dataset-review assistant intents through existing backend dataset-review APIs and orchestration boundaries.", "SIDE_EFFECT": "May update session state and enqueue tasks." }, "relations": [ @@ -5142,10 +5045,10 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Intent dispatch engine, confirmation summary, and clarification text for the assistant API.", "COMPLEXITY": 5, "INVARIANT": "Unsupported operations are rejected via HTTPException(400).", - "LAYER": "API", - "PURPOSE": "Intent dispatch engine, confirmation summary, and clarification text for the assistant API." + "LAYER": "API" }, "relations": [ { @@ -5187,10 +5090,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Convert technical missing-parameter errors into user-facing clarification prompts.", "COMPLEXITY": 2, "POST": "Returned text is human-readable and actionable for target operation.", - "PRE": "state was classified as needs_clarification for current intent/error combination.", - "PURPOSE": "Convert technical missing-parameter errors into user-facing clarification prompts." + "PRE": "state was classified as needs_clarification for current intent/error combination." }, "relations": [], "schema_warnings": [], @@ -5207,10 +5110,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Build human-readable confirmation prompt for an intent before execution.", "COMPLEXITY": 4, "POST": "Returns a formatted summary string suitable for display to the user.", "PRE": "actions is a non-empty list of planned review actions.", - "PURPOSE": "Build human-readable confirmation prompt for an intent before execution.", "SIDE_EFFECT": "None - pure formatting function." }, "relations": [], @@ -5228,12 +5131,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Execute parsed assistant intent via existing task/plugin/git services.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[intent,current_user,task_manager,config_manager,db] -> Output[Tuple[text:str,task_id:Optional[str],actions:List[AssistantAction]]]", "INVARIANT": "unsupported operations are rejected via HTTPException(400).", "POST": "Returns response text, optional task id, and UI actions for follow-up.", "PRE": "intent operation is known and actor permissions are validated per operation.", - "PURPOSE": "Execute parsed assistant intent via existing task/plugin/git services.", "SIDE_EFFECT": "May enqueue tasks, invoke git operations, and query/update external service state." }, "relations": [ @@ -5276,10 +5179,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Conversation history, audit trail, and confirmation persistence helpers for the assistant API.", "COMPLEXITY": 2, "INVARIANT": "Failed persistence attempts always rollback before returning.", - "LAYER": "API", - "PURPOSE": "Conversation history, audit trail, and confirmation persistence helpers for the assistant API." + "LAYER": "API" }, "relations": [ { @@ -5303,12 +5206,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Append conversation message to in-memory history buffer.", "COMPLEXITY": 2, "DATA_CONTRACT": "Input[user_id,conversation_id,role,text,state?,task_id?,confirmation_id?] -> Output[None]", "INVARIANT": "every appended entry includes generated message_id and created_at timestamp.", "POST": "Message entry is appended to CONVERSATIONS key list.", "PRE": "user_id and conversation_id identify target conversation bucket.", - "PURPOSE": "Append conversation message to in-memory history buffer.", "SIDE_EFFECT": "Mutates in-memory CONVERSATIONS store for user conversation history." }, "relations": [ @@ -5353,12 +5256,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Persist assistant/user message record to database.", "COMPLEXITY": 2, "DATA_CONTRACT": "Input[Session,user_id,conversation_id,role,text,state?,task_id?,confirmation_id?,metadata?] -> Output[None]", "INVARIANT": "failed persistence attempts always rollback before returning.", "POST": "Message row is committed or persistence failure is logged.", "PRE": "db session is writable and message payload is serializable.", - "PURPOSE": "Persist assistant/user message record to database.", "SIDE_EFFECT": "Writes AssistantMessageRecord rows and commits or rollbacks the DB session." }, "relations": [ @@ -5383,12 +5286,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Append in-memory audit record for assistant decision trace.", "COMPLEXITY": 2, "DATA_CONTRACT": "Input[user_id,payload:Dict[str,Any]] -> Output[None]", "INVARIANT": "persisted in-memory audit entry always contains created_at in ISO format.", "POST": "ASSISTANT_AUDIT list for user contains new timestamped entry.", "PRE": "payload describes decision/outcome fields.", - "PURPOSE": "Append in-memory audit record for assistant decision trace.", "SIDE_EFFECT": "Mutates in-memory ASSISTANT_AUDIT store and emits structured log event." }, "relations": [ @@ -5433,10 +5336,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Persist structured assistant audit payload in database.", "COMPLEXITY": 2, "POST": "Audit row is committed or failure is logged with rollback.", - "PRE": "db session is writable and payload is JSON-serializable.", - "PURPOSE": "Persist structured assistant audit payload in database." + "PRE": "db session is writable and payload is JSON-serializable." }, "relations": [], "schema_warnings": [], @@ -5453,10 +5356,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Persist confirmation token record to database.", "COMPLEXITY": 2, "POST": "Confirmation row exists in persistent storage.", - "PRE": "record contains id/user/intent/dispatch/expiry fields.", - "PURPOSE": "Persist confirmation token record to database." + "PRE": "record contains id/user/intent/dispatch/expiry fields." }, "relations": [], "schema_warnings": [], @@ -5473,10 +5376,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Update persistent confirmation token lifecycle state.", "COMPLEXITY": 2, "POST": "State and consumed_at fields are updated when applicable.", - "PRE": "confirmation_id references existing row.", - "PURPOSE": "Update persistent confirmation token lifecycle state." + "PRE": "confirmation_id references existing row." }, "relations": [], "schema_warnings": [], @@ -5493,10 +5396,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Load confirmation token from database into in-memory model.", "COMPLEXITY": 2, "POST": "Returns ConfirmationRecord when found, otherwise None.", - "PRE": "confirmation_id may or may not exist in storage.", - "PURPOSE": "Load confirmation token from database into in-memory model." + "PRE": "confirmation_id may or may not exist in storage." }, "relations": [], "schema_warnings": [], @@ -5513,10 +5416,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve active conversation id in memory or create a new one.", "COMPLEXITY": 2, "POST": "Returns stable conversation id and updates USER_ACTIVE_CONVERSATION.", - "PRE": "user_id identifies current actor.", - "PURPOSE": "Resolve active conversation id in memory or create a new one." + "PRE": "user_id identifies current actor." }, "relations": [], "schema_warnings": [], @@ -5533,10 +5436,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve active conversation using explicit id, memory cache, or persisted history.", "COMPLEXITY": 2, "POST": "Returns conversation id and updates USER_ACTIVE_CONVERSATION cache.", - "PRE": "user_id and db session are available.", - "PURPOSE": "Resolve active conversation using explicit id, memory cache, or persisted history." + "PRE": "user_id and db session are available." }, "relations": [], "schema_warnings": [], @@ -5553,10 +5456,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Enforce assistant message retention window by deleting expired rows and in-memory records.", "COMPLEXITY": 2, "POST": "Messages older than ASSISTANT_MESSAGE_TTL_DAYS are removed from persistence and memory mirrors.", - "PRE": "db session is available and user_id references current actor scope.", - "PURPOSE": "Enforce assistant message retention window by deleting expired rows and in-memory records." + "PRE": "db session is available and user_id references current actor scope." }, "relations": [], "schema_warnings": [], @@ -5573,10 +5476,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Determine archived state for a conversation based on last update timestamp.", "COMPLEXITY": 2, "POST": "Returns True when conversation inactivity exceeds archive threshold.", - "PRE": "updated_at can be null for empty conversations.", - "PURPOSE": "Determine archived state for a conversation based on last update timestamp." + "PRE": "updated_at can be null for empty conversations." }, "relations": [], "schema_warnings": [], @@ -5593,10 +5496,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Normalize bool-like query values for compatibility in direct handler invocations/tests.", "COMPLEXITY": 2, "POST": "Returns deterministic boolean flag.", - "PRE": "value may be bool, string, or FastAPI Query metadata object.", - "PURPOSE": "Normalize bool-like query values for compatibility in direct handler invocations/tests." + "PRE": "value may be bool, string, or FastAPI Query metadata object." }, "relations": [], "schema_warnings": [], @@ -5613,13 +5516,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "LLM-based intent planning, tool catalog construction, and authorization for the assistant API.", "COMPLEXITY": 5, "DATA_CONTRACT": "UserPermissions -> ToolCatalog", "INVARIANT": "Tool catalog is filtered by user permissions before being sent to LLM.", "LAYER": "API", "POST": "LLM tool catalog filtered and returned", "PRE": "Assistant routes initialized, user authenticated", - "PURPOSE": "LLM-based intent planning, tool catalog construction, and authorization for the assistant API.", "SIDE_EFFECT": "Filters tool catalog by user permissions" }, "relations": [ @@ -5656,10 +5559,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate user against alternative permission checks (logical OR).", "COMPLEXITY": 2, "POST": "Returns on first successful permission; raises 403-like HTTPException otherwise.", - "PRE": "checks list contains resource-action tuples.", - "PURPOSE": "Validate user against alternative permission checks (logical OR)." + "PRE": "checks list contains resource-action tuples." }, "relations": [], "schema_warnings": [], @@ -5676,10 +5579,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Check whether user has at least one permission tuple from the provided list.", "COMPLEXITY": 2, "POST": "Returns True when at least one permission check passes.", - "PRE": "current_user and checks list are valid.", - "PURPOSE": "Check whether user has at least one permission tuple from the provided list." + "PRE": "current_user and checks list are valid." }, "relations": [], "schema_warnings": [], @@ -5696,10 +5599,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Build current-user tool catalog for LLM planner with operation contracts and defaults.", "COMPLEXITY": 3, "POST": "Returns list of executable tools filtered by permission and runtime availability.", - "PRE": "current_user is authenticated; config/db are available.", - "PURPOSE": "Build current-user tool catalog for LLM planner with operation contracts and defaults." + "PRE": "current_user is authenticated; config/db are available." }, "relations": [ { @@ -5723,10 +5626,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Normalize intent entity value types from LLM output to route-compatible values.", "COMPLEXITY": 2, "POST": "Returned intent has numeric ids coerced where possible and string values stripped.", - "PRE": "intent contains entities dict or missing entities.", - "PURPOSE": "Normalize intent entity value types from LLM output to route-compatible values." + "PRE": "intent contains entities dict or missing entities." }, "relations": [], "schema_warnings": [], @@ -5743,13 +5646,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "LLM-based intent planning and authorization for the assistant API — separated from tool catalog.", "COMPLEXITY": 5, "DATA_CONTRACT": "UserIntent -> PlannedAction", "INVARIANT": "Production deployments always require confirmation.", "LAYER": "API", "POST": "Intent planning registered with confirmation gate", "PRE": "Assistant routes initialized, user authenticated", - "PURPOSE": "LLM-based intent planning and authorization for the assistant API — separated from tool catalog.", "SIDE_EFFECT": "Registers intent planning routes" }, "relations": [ @@ -5780,10 +5683,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Use active LLM provider to select best tool/operation from dynamic catalog.", "COMPLEXITY": 2, "POST": "Returns normalized intent dict when planning succeeds; otherwise None.", - "PRE": "tools list contains allowed operations for current user.", - "PURPOSE": "Use active LLM provider to select best tool/operation from dynamic catalog." + "PRE": "tools list contains allowed operations for current user." }, "relations": [], "schema_warnings": [], @@ -5800,10 +5703,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate user permissions for parsed intent before confirmation/dispatch.", "COMPLEXITY": 2, "POST": "Returns if authorized; raises HTTPException(403) when denied.", - "PRE": "intent.operation is present for known assistant command domains.", - "PURPOSE": "Validate user permissions for parsed intent before confirmation/dispatch." + "PRE": "intent.operation is present for known assistant command domains." }, "relations": [], "schema_warnings": [], @@ -5820,10 +5723,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Environment, dashboard, provider, and task resolution utilities for the assistant API.", "COMPLEXITY": 2, "INVARIANT": "Resolution functions never raise; they return None on failure.", - "LAYER": "API", - "PURPOSE": "Environment, dashboard, provider, and task resolution utilities for the assistant API." + "LAYER": "API" }, "relations": [ { @@ -5853,10 +5756,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Extract first regex match group from text by ordered pattern list.", "COMPLEXITY": 2, "POST": "Returns first matched token or None.", - "PRE": "patterns contain at least one capture group.", - "PURPOSE": "Extract first regex match group from text by ordered pattern list." + "PRE": "patterns contain at least one capture group." }, "relations": [], "schema_warnings": [], @@ -5873,10 +5776,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve environment identifier/name token to canonical environment id.", "COMPLEXITY": 2, "POST": "Returns matched environment id or None.", - "PRE": "config_manager provides environment list.", - "PURPOSE": "Resolve environment identifier/name token to canonical environment id." + "PRE": "config_manager provides environment list." }, "relations": [], "schema_warnings": [], @@ -5893,10 +5796,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Determine whether environment token resolves to production-like target.", "COMPLEXITY": 2, "POST": "Returns True for production/prod synonyms, else False.", - "PRE": "config_manager provides environments or token text is provided.", - "PURPOSE": "Determine whether environment token resolves to production-like target." + "PRE": "config_manager provides environments or token text is provided." }, "relations": [], "schema_warnings": [], @@ -5913,10 +5816,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve provider token to provider id with active/default fallback.", "COMPLEXITY": 2, "POST": "Returns provider id or None when no providers configured.", - "PRE": "db session can load provider list through LLMProviderService.", - "PURPOSE": "Resolve provider token to provider id with active/default fallback." + "PRE": "db session can load provider list through LLMProviderService." }, "relations": [], "schema_warnings": [], @@ -5933,10 +5836,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve default environment id from settings or first configured environment.", "COMPLEXITY": 2, "POST": "Returns default environment id or None when environment list is empty.", - "PRE": "config_manager returns environments list.", - "PURPOSE": "Resolve default environment id from settings or first configured environment." + "PRE": "config_manager returns environments list." }, "relations": [], "schema_warnings": [], @@ -5953,10 +5856,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve dashboard id by title or slug reference in selected environment.", "COMPLEXITY": 2, "POST": "Returns dashboard id when uniquely matched, otherwise None.", - "PRE": "dashboard_ref is a non-empty string-like token.", - "PURPOSE": "Resolve dashboard id by title or slug reference in selected environment." + "PRE": "dashboard_ref is a non-empty string-like token." }, "relations": [], "schema_warnings": [], @@ -5973,10 +5876,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve dashboard id from intent entities using numeric id or dashboard_ref fallback.", "COMPLEXITY": 2, "POST": "Returns resolved dashboard id or None when ambiguous/unresolvable.", - "PRE": "entities may contain dashboard_id as int/str and optional dashboard_ref.", - "PURPOSE": "Resolve dashboard id from intent entities using numeric id or dashboard_ref fallback." + "PRE": "entities may contain dashboard_id as int/str and optional dashboard_ref." }, "relations": [], "schema_warnings": [], @@ -5993,10 +5896,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve human-readable environment name by id.", "COMPLEXITY": 2, "POST": "Returns matching environment name or fallback id.", - "PRE": "environment id may be None.", - "PURPOSE": "Resolve human-readable environment name by id." + "PRE": "environment id may be None." }, "relations": [], "schema_warnings": [], @@ -6013,10 +5916,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Build deep-link actions to verify task result from assistant chat.", "COMPLEXITY": 2, "POST": "Returns zero or more assistant actions for dashboard open/diff.", - "PRE": "task object is available.", - "PURPOSE": "Build deep-link actions to verify task result from assistant chat." + "PRE": "task object is available." }, "relations": [], "schema_warnings": [], @@ -6033,10 +5936,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Build compact textual summary for completed tasks to reduce \"black box\" effect.", "COMPLEXITY": 2, "POST": "Returns non-empty summary line for known task types or empty string fallback.", - "PRE": "task may contain plugin-specific result payload.", - "PURPOSE": "Build compact textual summary for completed tasks to reduce \"black box\" effect." + "PRE": "task may contain plugin-specific result payload." }, "relations": [], "schema_warnings": [], @@ -6053,10 +5956,10 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "FastAPI route handlers for the assistant API — message sending, confirmation, conversation management.", "COMPLEXITY": 5, "INVARIANT": "Risky operations are never executed without valid confirmation token.", - "LAYER": "API", - "PURPOSE": "FastAPI route handlers for the assistant API — message sending, confirmation, conversation management." + "LAYER": "API" }, "relations": [ { @@ -6116,12 +6019,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Parse assistant command, enforce safety gates, and dispatch executable intent.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[AssistantMessageRequest,User,TaskManager,ConfigManager,Session] -> Output[AssistantMessageResponse]", "INVARIANT": "non-safe operations are gated with confirmation before execution from this endpoint.", "POST": "Response state is one of clarification/confirmation/started/success/denied/failed.", "PRE": "Authenticated user is available and message text is non-empty.", - "PURPOSE": "Parse assistant command, enforce safety gates, and dispatch executable intent.", "SIDE_EFFECT": "Persists chat/audit state, mutates in-memory conversation and confirmation stores, and may create confirmation records." }, "relations": [ @@ -6176,10 +6079,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Execute previously requested risky operation after explicit user confirmation.", "COMPLEXITY": 2, "POST": "Confirmation state becomes consumed and operation result is persisted in history.", - "PRE": "confirmation_id exists, belongs to current user, is pending, and not expired.", - "PURPOSE": "Execute previously requested risky operation after explicit user confirmation." + "PRE": "confirmation_id exists, belongs to current user, is pending, and not expired." }, "relations": [], "schema_warnings": [], @@ -6196,10 +6099,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Cancel pending risky operation and mark confirmation token as cancelled.", "COMPLEXITY": 2, "POST": "Confirmation becomes cancelled and cannot be executed anymore.", - "PRE": "confirmation_id exists, belongs to current user, and is still pending.", - "PURPOSE": "Cancel pending risky operation and mark confirmation token as cancelled." + "PRE": "confirmation_id exists, belongs to current user, and is still pending." }, "relations": [], "schema_warnings": [], @@ -6216,10 +6119,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Pydantic models, in-memory stores, and permission mappings for the assistant API.", "COMPLEXITY": 2, "INVARIANT": "In-memory stores are module-level singletons shared across the assistant package.", "LAYER": "API", - "PURPOSE": "Pydantic models, in-memory stores, and permission mappings for the assistant API.", "RATIONALE": "In-memory stores documented with NOTE about restart loss. ASSISTANT_ARCHIVE_AFTER_DAYS and ASSISTANT_MESSAGE_TTL_DAYS kept as module-level constants with TODO for config migration — Pydantic schemas module should not depend on ConfigManager for architectural purity." }, "relations": [ @@ -6289,12 +6192,12 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Input payload for assistant message endpoint.", "COMPLEXITY": 1, "DATA_CONTRACT": "Input[conversation_id?:str, message:str(1..4000)] -> Output[AssistantMessageRequest]", "INVARIANT": "message is always non-empty and no longer than 4000 characters.", "POST": "Request object provides message text and optional conversation binding.", "PRE": "message length is within accepted bounds.", - "PURPOSE": "Input payload for assistant message endpoint.", "SIDE_EFFECT": "None (schema declaration only)." }, "relations": [ @@ -6339,12 +6242,12 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "UI action descriptor returned with assistant responses.", "COMPLEXITY": 1, "DATA_CONTRACT": "Input[type:str, label:str, target?:str] -> Output[AssistantAction]", "INVARIANT": "type and label are required for every UI action.", "POST": "Action can be rendered as button on frontend.", "PRE": "type and label are provided by orchestration logic.", - "PURPOSE": "UI action descriptor returned with assistant responses.", "SIDE_EFFECT": "None (schema declaration only)." }, "relations": [ @@ -6389,12 +6292,12 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Output payload contract for assistant interaction endpoints.", "COMPLEXITY": 1, "DATA_CONTRACT": "Input[conversation_id,response_id,state,text,intent?,confirmation_id?,task_id?,actions[],created_at] -> Output[AssistantMessageResponse]", "INVARIANT": "created_at and state are always present in endpoint responses.", "POST": "Payload may include task_id/confirmation_id/actions for UI follow-up.", "PRE": "Response includes deterministic state and text.", - "PURPOSE": "Output payload contract for assistant interaction endpoints.", "SIDE_EFFECT": "None (schema declaration only)." }, "relations": [ @@ -6489,12 +6392,12 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "In-memory confirmation token model for risky operation dispatch.", "COMPLEXITY": 1, "DATA_CONTRACT": "Input[id,user_id,conversation_id,intent,dispatch,expires_at,state?,created_at] -> Output[ConfirmationRecord]", "INVARIANT": "state defaults to \"pending\" and expires_at bounds confirmation validity.", "POST": "Record tracks lifecycle state and expiry timestamp.", "PRE": "intent/dispatch/user_id are populated at confirmation request time.", - "PURPOSE": "In-memory confirmation token model for risky operation dispatch.", "SIDE_EFFECT": "None (schema declaration only)." }, "relations": [ @@ -6589,12 +6492,12 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Expose clean release endpoints for candidate preparation and subsequent compliance flow.", "COMPLEXITY": 4, "INVARIANT": "API never reports prepared status if preparation errors are present.", "LAYER": "API", "POST": "Candidate preparation, manifest, and compliance routes expose deterministic API payloads without reporting prepared state on failed preparation.", "PRE": "Clean release repository and preparation service dependencies are configured for the current request scope.", - "PURPOSE": "Expose clean release endpoints for candidate preparation and subsequent compliance flow.", "SIDE_EFFECT": "Persists candidate/compliance lifecycle state and triggers clean-release orchestration services." }, "relations": [ @@ -6625,7 +6528,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for candidate preparation endpoint." + "BRIEF": "Request schema for candidate preparation endpoint." }, "relations": [], "schema_warnings": [], @@ -6642,7 +6545,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for clean compliance check run startup." + "BRIEF": "Request schema for clean compliance check run startup." }, "relations": [], "schema_warnings": [], @@ -6659,7 +6562,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for candidate registration endpoint." + "BRIEF": "Request schema for candidate registration endpoint." }, "relations": [], "schema_warnings": [], @@ -6676,7 +6579,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for candidate artifact import endpoint." + "BRIEF": "Request schema for candidate artifact import endpoint." }, "relations": [], "schema_warnings": [], @@ -6693,7 +6596,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for manifest build endpoint." + "BRIEF": "Request schema for manifest build endpoint." }, "relations": [], "schema_warnings": [], @@ -6710,7 +6613,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for compliance run creation with optional manifest pinning." + "BRIEF": "Request schema for compliance run creation with optional manifest pinning." }, "relations": [], "schema_warnings": [], @@ -6727,9 +6630,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Register a clean-release candidate for headless lifecycle.", "POST": "Candidate is persisted in DRAFT status.", - "PRE": "Candidate identifier is unique.", - "PURPOSE": "Register a clean-release candidate for headless lifecycle." + "PRE": "Candidate identifier is unique." }, "relations": [], "schema_warnings": [], @@ -6746,9 +6649,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Import candidate artifacts in headless flow.", "POST": "Artifacts are persisted and candidate advances to PREPARED if it was DRAFT.", - "PRE": "Candidate exists and artifacts array is non-empty.", - "PURPOSE": "Import candidate artifacts in headless flow." + "PRE": "Candidate exists and artifacts array is non-empty." }, "relations": [], "schema_warnings": [], @@ -6765,9 +6668,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build immutable manifest snapshot for prepared candidate.", "POST": "Returns created ManifestDTO with incremented version.", - "PRE": "Candidate exists and has imported artifacts.", - "PURPOSE": "Build immutable manifest snapshot for prepared candidate." + "PRE": "Candidate exists and has imported artifacts." }, "relations": [], "schema_warnings": [], @@ -6784,9 +6687,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return expanded candidate overview DTO for headless lifecycle visibility.", "POST": "Returns CandidateOverviewDTO built from the same repository state used by headless US1 endpoints.", - "PRE": "Candidate exists.", - "PURPOSE": "Return expanded candidate overview DTO for headless lifecycle visibility." + "PRE": "Candidate exists." }, "relations": [], "schema_warnings": [], @@ -6803,9 +6706,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Prepare candidate with policy evaluation and deterministic manifest generation.", "POST": "Returns preparation result including manifest reference and violations.", - "PRE": "Candidate and active policy exist in repository.", - "PURPOSE": "Prepare candidate with policy evaluation and deterministic manifest generation." + "PRE": "Candidate and active policy exist in repository." }, "relations": [], "schema_warnings": [], @@ -6822,9 +6725,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Start and finalize a clean compliance check run and persist report artifacts.", "POST": "Returns accepted payload with check_run_id and started_at.", - "PRE": "Active policy and candidate exist.", - "PURPOSE": "Start and finalize a clean compliance check run and persist report artifacts." + "PRE": "Active policy and candidate exist." }, "relations": [], "schema_warnings": [], @@ -6841,9 +6744,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return terminal/intermediate status payload for a check run.", "POST": "Deterministic payload shape includes checks and violations arrays.", - "PRE": "check_run_id references an existing run.", - "PURPOSE": "Return terminal/intermediate status payload for a check run." + "PRE": "check_run_id references an existing run." }, "relations": [], "schema_warnings": [], @@ -6860,9 +6763,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return persisted compliance report by report_id.", "POST": "Returns serialized report object.", - "PRE": "report_id references an existing report.", - "PURPOSE": "Return persisted compliance report by report_id." + "PRE": "report_id references an existing report." }, "relations": [], "schema_warnings": [], @@ -6879,11 +6782,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Redesigned clean release API for headless candidate lifecycle.", "COMPLEXITY": 4, "LAYER": "API", "POST": "Candidate registration, approval, publication, and revocation routes are registered without behavior changes.", "PRE": "Clean release repository dependency is available for candidate lifecycle endpoints.", - "PURPOSE": "Redesigned clean release API for headless candidate lifecycle.", "SIDE_EFFECT": "Persists candidate lifecycle state through clean release services and repository adapters." }, "relations": [ @@ -6920,8 +6823,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for approval request payload." + "BRIEF": "Schema for approval request payload.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -6938,8 +6841,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for publication request payload." + "BRIEF": "Schema for publication request payload.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -6956,8 +6859,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for revocation request payload." + "BRIEF": "Schema for revocation request payload.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -6974,10 +6877,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Register a new release candidate.", "COMPLEXITY": 3, "POST": "Candidate is saved in repository.", - "PRE": "Payload contains required fields (id, version, source_snapshot_ref, created_by).", - "PURPOSE": "Register a new release candidate." + "PRE": "Payload contains required fields (id, version, source_snapshot_ref, created_by)." }, "relations": [ { @@ -7007,10 +6910,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Associate artifacts with a release candidate.", "COMPLEXITY": 3, "POST": "Artifacts are processed (placeholder).", - "PRE": "Candidate exists.", - "PURPOSE": "Associate artifacts with a release candidate." + "PRE": "Candidate exists." }, "relations": [ { @@ -7034,10 +6937,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Generate distribution manifest for a candidate.", "COMPLEXITY": 3, "POST": "Manifest is created and saved.", - "PRE": "Candidate exists.", - "PURPOSE": "Generate distribution manifest for a candidate." + "PRE": "Candidate exists." }, "relations": [ { @@ -7061,8 +6964,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Endpoint to record candidate approval." + "BRIEF": "Endpoint to record candidate approval.", + "COMPLEXITY": 3 }, "relations": [ { @@ -7086,8 +6989,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Endpoint to record candidate rejection." + "BRIEF": "Endpoint to record candidate rejection.", + "COMPLEXITY": 3 }, "relations": [ { @@ -7111,8 +7014,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Endpoint to publish an approved candidate." + "BRIEF": "Endpoint to publish an approved candidate.", + "COMPLEXITY": 3 }, "relations": [ { @@ -7136,8 +7039,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Endpoint to revoke a previous publication." + "BRIEF": "Endpoint to revoke a previous publication.", + "COMPLEXITY": 3 }, "relations": [ { @@ -7161,13 +7064,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "API endpoints for the Dashboard Hub - listing dashboards with Git and task status", "COMPLEXITY": 5, "DATA_CONTRACT": "Input(env_id, filters) -> Output(DashboardsResponse)", "INVARIANT": "All dashboard responses include git_status and last_task metadata", "LAYER": "API", "POST": "Dashboard responses are projected into DashboardsResponse DTO.", "PRE": "Valid environment configurations exist in ConfigManager.", - "PURPOSE": "API endpoints for the Dashboard Hub - listing dashboards with Git and task status", "SIDE_EFFECT": "Performs external calls to Superset API and potentially Git providers.", "TEST_CONTRACT": "DashboardsAPI -> {" }, @@ -7191,29 +7094,7 @@ "target_ref": "[SupersetClient]" } ], - "schema_warnings": [ - { - "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 C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardsApi [C:5] [TYPE Module] [SEMANTICS dashboard, api, package, search, git, task]\n#\n# @BRIEF API endpoints for the Dashboard Hub - listing dashboards with Git and task status\n# @LAYER: API\n# @RELATION DEPENDS_ON -> [AppDependencies]\n# @RELATION DEPENDS_ON -> [ResourceService]\n# @RELATION DEPENDS_ON -> [SupersetClient]\n#\n# @INVARIANT: All dashboard responses include git_status and last_task metadata\n#\n# @PRE: Valid environment configurations exist in ConfigManager.\n# @POST: Dashboard responses are projected into DashboardsResponse DTO.\n# @SIDE_EFFECT: Performs external calls to Superset API and potentially Git providers.\n# @DATA_CONTRACT: Input(env_id, filters) -> Output(DashboardsResponse)\n#\n# @TEST_CONTRACT: DashboardsAPI -> {\n# required_fields: {env_id: string, page: integer, page_size: integer},\n# optional_fields: {search: string},\n# invariants: [\"Pagination must be valid\", \"Environment must exist\"]\n# }\n#\n# @TEST_FIXTURE: dashboard_list_happy -> {\n# \"env_id\": \"prod\",\n# \"expected_count\": 1,\n# \"dashboards\": [{\"id\": 1, \"title\": \"Main Revenue\"}]\n# }\n#\n# @TEST_EDGE: pagination_zero_page -> {\"env_id\": \"prod\", \"page\": 0, \"status\": 400}\n# @TEST_EDGE: pagination_oversize -> {\"env_id\": \"prod\", \"page_size\": 101, \"status\": 400}\n# @TEST_EDGE: missing_env -> {\"env_id\": \"ghost\", \"status\": 404}\n# @TEST_EDGE: empty_dashboards -> {\"env_id\": \"empty_env\", \"expected_total\": 0}\n# @TEST_EDGE: external_superset_failure -> {\"env_id\": \"bad_conn\", \"status\": 503}\n#\n# @TEST_INVARIANT: metadata_consistency -> verifies: [dashboard_list_happy, empty_dashboards]\n\nfrom ._action_routes import *\nfrom ._detail_routes import *\nfrom ._listing_routes import *\nfrom ._router import router\nfrom ._schemas import *\n\n# #endregion DashboardsApi\n" @@ -7227,9 +7108,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Dashboard action route handlers — migrate, backup.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "Dashboard action route handlers — migrate, backup." + "LAYER": "API" }, "relations": [ { @@ -7259,10 +7140,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Trigger bulk migration of dashboards from source to target environment", "COMPLEXITY": 2, "POST": "Task is created and queued for execution", - "PRE": "dashboard_ids is a non-empty list", - "PURPOSE": "Trigger bulk migration of dashboards from source to target environment" + "PRE": "dashboard_ids is a non-empty list" }, "relations": [ { @@ -7292,10 +7173,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Trigger bulk backup of dashboards with optional cron schedule", "COMPLEXITY": 2, "POST": "If schedule is provided, a scheduled task is created", - "PRE": "dashboard_ids is a non-empty list", - "PURPOSE": "Trigger bulk backup of dashboards with optional cron schedule" + "PRE": "dashboard_ids is a non-empty list" }, "relations": [ { @@ -7325,9 +7206,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dashboard detail, db-mappings, task history, thumbnail route handlers.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Dashboard detail, db-mappings, task history, thumbnail route handlers." + "LAYER": "API" }, "relations": [ { @@ -7369,10 +7250,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Get database mapping suggestions between source and target environments", "COMPLEXITY": 2, "POST": "Returns list of suggested database mappings with confidence scores", - "PRE": "source_env_id and target_env_id are valid environment IDs", - "PURPOSE": "Get database mapping suggestions between source and target environments" + "PRE": "source_env_id and target_env_id are valid environment IDs" }, "relations": [ { @@ -7396,10 +7277,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Fetch detailed dashboard info with related charts and datasets", "COMPLEXITY": 2, "POST": "Returns dashboard detail payload for overview page", - "PRE": "env_id must be valid and dashboard ref (slug or id) must exist", - "PURPOSE": "Fetch detailed dashboard info with related charts and datasets" + "PRE": "env_id must be valid and dashboard ref (slug or id) must exist" }, "relations": [ { @@ -7423,10 +7304,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Returns history of backup and LLM validation tasks for a dashboard.", "COMPLEXITY": 2, "POST": "Response contains sorted task history (newest first).", - "PRE": "dashboard ref (slug or id) is valid.", - "PURPOSE": "Returns history of backup and LLM validation tasks for a dashboard." + "PRE": "dashboard ref (slug or id) is valid." }, "relations": [], "schema_warnings": [], @@ -7443,10 +7324,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Proxies Superset dashboard thumbnail with cache support.", "COMPLEXITY": 3, "POST": "Returns image bytes or 202 when thumbnail is being prepared by Superset.", - "PRE": "env_id must exist.", - "PURPOSE": "Proxies Superset dashboard thumbnail with cache support." + "PRE": "env_id must exist." }, "relations": [ { @@ -7470,9 +7351,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Basic helper functions for dashboard route handlers — slug resolution, filter normalization.", "COMPLEXITY": 2, - "LAYER": "Infra", - "PURPOSE": "Basic helper functions for dashboard route handlers — slug resolution, filter normalization." + "LAYER": "Infra" }, "relations": [ { @@ -7521,10 +7402,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve dashboard numeric ID by slug using Superset list endpoint.", "COMPLEXITY": 2, "POST": "Returns dashboard ID when found, otherwise None.", - "PRE": "`dashboard_slug` is non-empty.", - "PURPOSE": "Resolve dashboard numeric ID by slug using Superset list endpoint." + "PRE": "`dashboard_slug` is non-empty." }, "relations": [], "schema_warnings": [], @@ -7541,10 +7422,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve dashboard ID from slug-first reference with numeric fallback.", "COMPLEXITY": 2, "POST": "Returns a valid dashboard ID or raises HTTPException(404).", - "PRE": "`dashboard_ref` is provided in route path.", - "PURPOSE": "Resolve dashboard ID from slug-first reference with numeric fallback." + "PRE": "`dashboard_ref` is provided in route path." }, "relations": [], "schema_warnings": [], @@ -7561,10 +7442,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve dashboard numeric ID by slug using async Superset list endpoint.", "COMPLEXITY": 2, "POST": "Returns dashboard ID when found, otherwise None.", - "PRE": "dashboard_slug is non-empty.", - "PURPOSE": "Resolve dashboard numeric ID by slug using async Superset list endpoint." + "PRE": "dashboard_slug is non-empty." }, "relations": [], "schema_warnings": [], @@ -7581,10 +7462,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve dashboard ID from slug-first reference using async Superset client.", "COMPLEXITY": 2, "POST": "Returns valid dashboard ID or raises HTTPException(404).", - "PRE": "dashboard_ref is provided in route path.", - "PURPOSE": "Resolve dashboard ID from slug-first reference using async Superset client." + "PRE": "dashboard_ref is provided in route path." }, "relations": [], "schema_warnings": [], @@ -7601,10 +7482,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Normalize query filter values to lower-cased non-empty tokens.", "COMPLEXITY": 2, "POST": "Returns trimmed normalized list preserving input order.", - "PRE": "values may be None or list of strings.", - "PURPOSE": "Normalize query filter values to lower-cased non-empty tokens." + "PRE": "values may be None or list of strings." }, "relations": [], "schema_warnings": [], @@ -7621,10 +7502,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Build comparable git status token for dashboards filtering.", "COMPLEXITY": 2, "POST": "Returns one of ok|diff|no_repo|error|pending.", - "PRE": "dashboard payload may contain git_status or None.", - "PURPOSE": "Build comparable git status token for dashboards filtering." + "PRE": "dashboard payload may contain git_status or None." }, "relations": [], "schema_warnings": [], @@ -7641,9 +7522,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Dashboard listing route handler for Dashboard Hub.", "COMPLEXITY": 4, - "LAYER": "API", - "PURPOSE": "Dashboard listing route handler for Dashboard Hub." + "LAYER": "API" }, "relations": [ { @@ -7685,10 +7566,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Fetch list of dashboards from a specific environment with Git status and last task status", "COMPLEXITY": 3, "POST": "Response includes effective profile filter metadata for main dashboards page context", - "PRE": "page_size must be between 1 and 100 if provided", - "PURPOSE": "Fetch list of dashboards from a specific environment with Git status and last task status" + "PRE": "page_size must be between 1 and 100 if provided" }, "relations": [ { @@ -7712,9 +7593,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Dashboard response projection and profile-filter helpers for Dashboard Hub routes.", "COMPLEXITY": 2, - "LAYER": "Infra", - "PURPOSE": "Dashboard response projection and profile-filter helpers for Dashboard Hub routes." + "LAYER": "Infra" }, "relations": [ { @@ -7763,8 +7644,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Normalize actor alias token to comparable trim+lower text." + "BRIEF": "Normalize actor alias token to comparable trim+lower text.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -7781,8 +7662,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Project owner payload value into stable display string for API response contracts." + "BRIEF": "Project owner payload value into stable display string for API response contracts.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -7799,8 +7680,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Normalize dashboard owners payload to optional list of display strings." + "BRIEF": "Normalize dashboard owners payload to optional list of display strings.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -7817,8 +7698,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Project dashboard payloads to response-contract-safe shape." + "BRIEF": "Project dashboard payloads to response-contract-safe shape.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -7835,8 +7716,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Resolve dashboard profile-filter binding through current or legacy profile service contracts." + "BRIEF": "Resolve dashboard profile-filter binding through current or legacy profile service contracts.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -7853,8 +7734,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve stable actor aliases for profile filtering without per-dashboard detail fan-out.", "COMPLEXITY": 2, - "PURPOSE": "Resolve stable actor aliases for profile filtering without per-dashboard detail fan-out.", "SIDE_EFFECT": "Performs at most one Superset users-lookup request." }, "relations": [], @@ -7872,8 +7753,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Apply profile actor matching against multiple aliases (username + optional display name)." + "BRIEF": "Apply profile actor matching against multiple aliases (username + optional display name).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -7890,8 +7771,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Checks whether task params are tied to a specific dashboard and environment." + "BRIEF": "Checks whether task params are tied to a specific dashboard and environment.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -7908,8 +7789,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Single APIRouter instance for all dashboard endpoints." + "BRIEF": "Single APIRouter instance for all dashboard endpoints.", + "COMPLEXITY": 1 }, "relations": [ { @@ -7933,9 +7814,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "DTO classes for the Dashboard Hub API.", "COMPLEXITY": 1, - "LAYER": "Infra", - "PURPOSE": "DTO classes for the Dashboard Hub API." + "LAYER": "Infra" }, "relations": [ { @@ -7978,65 +7859,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO for dashboard Git synchronization status." + "BRIEF": "DTO for dashboard Git synchronization status.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region GitStatus [C:1] [TYPE DataClass]\n# @BRIEF DTO for dashboard Git synchronization status.\nclass GitStatus(BaseModel):\n branch: str | None = None\n sync_status: str | None = Field(None, pattern=\"^OK|DIFF|NO_REPO|ERROR$\")\n has_repo: bool | None = None\n has_changes_for_commit: bool | None = None\n\n\n# #endregion GitStatus\n" @@ -8050,65 +7877,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO representing a single dashboard with projected metadata." + "BRIEF": "DTO representing a single dashboard with projected metadata.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardItem [C:1] [TYPE DataClass]\n# @BRIEF DTO representing a single dashboard with projected metadata.\nclass DashboardItem(BaseModel):\n id: int\n title: str\n slug: str | None = None\n url: str | None = None\n last_modified: str | None = None\n created_by: str | None = None\n modified_by: str | None = None\n owners: list[str] | None = None\n git_status: GitStatus | None = None\n last_task: LastTask | None = None\n\n\n# #endregion DashboardItem\n" @@ -8122,65 +7895,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Metadata about applied profile filters for UI context." + "BRIEF": "Metadata about applied profile filters for UI context.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region EffectiveProfileFilter [C:1] [TYPE DataClass]\n# @BRIEF Metadata about applied profile filters for UI context.\nclass EffectiveProfileFilter(BaseModel):\n applied: bool\n source_page: Literal[\"dashboards_main\", \"other\"] = \"dashboards_main\"\n override_show_all: bool = False\n username: str | None = None\n match_logic: Literal[\"owners_or_modified_by\", \"slug_only\", \"owners_or_modified_by+slug_only\"] | None = None\n\n\n# #endregion EffectiveProfileFilter\n" @@ -8194,65 +7913,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Envelope DTO for paginated dashboards list." + "BRIEF": "Envelope DTO for paginated dashboards list.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardsResponse [C:1] [TYPE DataClass]\n# @BRIEF Envelope DTO for paginated dashboards list.\nclass DashboardsResponse(BaseModel):\n dashboards: list[DashboardItem]\n total: int\n page: int\n page_size: int\n total_pages: int\n effective_profile_filter: EffectiveProfileFilter | None = None\n\n\n# #endregion DashboardsResponse\n" @@ -8266,65 +7931,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO for a chart linked to a dashboard." + "BRIEF": "DTO for a chart linked to a dashboard.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardChartItem [C:1] [TYPE DataClass]\n# @BRIEF DTO for a chart linked to a dashboard.\nclass DashboardChartItem(BaseModel):\n id: int\n title: str\n viz_type: str | None = None\n dataset_id: int | None = None\n last_modified: str | None = None\n overview: str | None = None\n\n\n# #endregion DashboardChartItem\n" @@ -8338,65 +7949,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO for a dataset associated with a dashboard." + "BRIEF": "DTO for a dataset associated with a dashboard.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardDatasetItem [C:1] [TYPE DataClass]\n# @BRIEF DTO for a dataset associated with a dashboard.\nclass DashboardDatasetItem(BaseModel):\n id: int\n table_name: str\n schema: str | None = None\n database: str\n last_modified: str | None = None\n overview: str | None = None\n\n\n# #endregion DashboardDatasetItem\n" @@ -8410,65 +7967,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Detailed dashboard metadata including children." + "BRIEF": "Detailed dashboard metadata including children.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardDetailResponse [C:1] [TYPE DataClass]\n# @BRIEF Detailed dashboard metadata including children.\nclass DashboardDetailResponse(BaseModel):\n id: int\n title: str\n slug: str | None = None\n url: str | None = None\n description: str | None = None\n last_modified: str | None = None\n published: bool | None = None\n charts: list[DashboardChartItem]\n datasets: list[DashboardDatasetItem]\n chart_count: int\n dataset_count: int\n\n\n# #endregion DashboardDetailResponse\n" @@ -8482,65 +7985,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Individual history record entry." + "BRIEF": "Individual history record entry.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardTaskHistoryItem [C:1] [TYPE DataClass]\n# @BRIEF Individual history record entry.\nclass DashboardTaskHistoryItem(BaseModel):\n id: str\n plugin_id: str\n status: str\n validation_status: str | None = None\n started_at: str | None = None\n finished_at: str | None = None\n env_id: str | None = None\n summary: str | None = None\n\n\n# #endregion DashboardTaskHistoryItem\n" @@ -8554,65 +8003,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Collection DTO for task history." + "BRIEF": "Collection DTO for task history.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardTaskHistoryResponse [C:1] [TYPE DataClass]\n# @BRIEF Collection DTO for task history.\nclass DashboardTaskHistoryResponse(BaseModel):\n dashboard_id: int\n items: list[DashboardTaskHistoryItem]\n\n\n# #endregion DashboardTaskHistoryResponse\n" @@ -8626,65 +8021,11 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "DTO for cross-environment database ID mapping." + "BRIEF": "DTO for cross-environment database ID mapping.", + "COMPLEXITY": 2 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatabaseMapping [C:2] [TYPE DataClass]\n# @BRIEF DTO for cross-environment database ID mapping.\nclass DatabaseMapping(BaseModel):\n source_db: str\n target_db: str\n source_db_uuid: str | None = None\n target_db_uuid: str | None = None\n confidence: float\n\n\n# #endregion DatabaseMapping\n" @@ -8698,65 +8039,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Wrapper for database mappings." + "BRIEF": "Wrapper for database mappings.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatabaseMappingsResponse [C:1] [TYPE DataClass]\n# @BRIEF Wrapper for database mappings.\nclass DatabaseMappingsResponse(BaseModel):\n mappings: list[DatabaseMapping]\n\n\n# #endregion DatabaseMappingsResponse\n" @@ -8770,65 +8057,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO for dashboard migration requests." + "BRIEF": "DTO for dashboard migration requests.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region MigrateRequest [C:1] [TYPE DataClass]\n# @BRIEF DTO for dashboard migration requests.\nclass MigrateRequest(BaseModel):\n source_env_id: str = Field(..., description=\"Source environment ID\")\n target_env_id: str = Field(..., description=\"Target environment ID\")\n dashboard_ids: list[int] = Field(\n ..., description=\"List of dashboard IDs to migrate\"\n )\n db_mappings: dict[str, str] | None = Field(\n None, description=\"Database mappings for migration\"\n )\n replace_db_config: bool = Field(False, description=\"Replace database configuration\")\n\n\n# #endregion MigrateRequest\n" @@ -8842,65 +8075,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO for dashboard backup requests." + "BRIEF": "DTO for dashboard backup requests.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region BackupRequest [C:1] [TYPE DataClass]\n# @BRIEF DTO for dashboard backup requests.\nclass BackupRequest(BaseModel):\n env_id: str = Field(..., description=\"Environment ID\")\n dashboard_ids: list[int] = Field(..., description=\"List of dashboard IDs to backup\")\n schedule: str | None = Field(\n None, description=\"Cron schedule for recurring backups (e.g., '0 0 * * *')\"\n )\n\n\n# #endregion BackupRequest\n" @@ -8914,9 +8093,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Dependency injection, serialization helpers, and feature-flag guards for dataset review endpoints.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "Dependency injection, serialization helpers, and feature-flag guards for dataset review endpoints." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -8933,8 +8112,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for starting one dataset review session." + "BRIEF": "Request DTO for starting one dataset review session.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -8951,8 +8130,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for lifecycle state updates on an existing session." + "BRIEF": "Request DTO for lifecycle state updates on an existing session.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -8969,8 +8148,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Paginated session collection response." + "BRIEF": "Paginated session collection response.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -8987,8 +8166,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Inline export response for documentation or validation outputs." + "BRIEF": "Inline export response for documentation or validation outputs.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9005,8 +8184,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for field-level semantic candidate acceptance or manual override." + "BRIEF": "Request DTO for field-level semantic candidate acceptance or manual override.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9023,8 +8202,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for thumbs up/down feedback." + "BRIEF": "Request DTO for thumbs up/down feedback.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9041,8 +8220,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for submitting one clarification answer." + "BRIEF": "Request DTO for submitting one clarification answer.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9059,8 +8238,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Summary DTO for current clarification session state." + "BRIEF": "Summary DTO for current clarification session state.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9077,8 +8256,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response DTO for current clarification state and active question payload." + "BRIEF": "Response DTO for current clarification state and active question payload.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9095,8 +8274,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response DTO for one clarification answer mutation result." + "BRIEF": "Response DTO for one clarification answer mutation result.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9113,8 +8292,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Minimal response DTO for persisted AI feedback actions." + "BRIEF": "Minimal response DTO for persisted AI feedback actions.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9131,8 +8310,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Optional request DTO for explicit mapping approval audit notes." + "BRIEF": "Optional request DTO for explicit mapping approval audit notes.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9149,8 +8328,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for one batch semantic-approval item." + "BRIEF": "Request DTO for one batch semantic-approval item.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9167,8 +8346,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for explicit batch semantic approvals." + "BRIEF": "Request DTO for explicit batch semantic approvals.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9185,8 +8364,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for explicit batch mapping approvals." + "BRIEF": "Request DTO for explicit batch mapping approvals.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9203,8 +8382,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Async preview trigger response exposing only enqueue state." + "BRIEF": "Async preview trigger response exposing only enqueue state.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9221,8 +8400,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Wrapper for execution mapping list responses." + "BRIEF": "Wrapper for execution mapping list responses.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9239,8 +8418,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for one manual execution-mapping override update." + "BRIEF": "Request DTO for one manual execution-mapping override update.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9257,8 +8436,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Launch result exposing audited run context and SQL Lab redirect target." + "BRIEF": "Launch result exposing audited run context and SQL Lab redirect target.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9275,8 +8454,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Guard US1 dataset review endpoints behind the configured feature flag." + "BRIEF": "Guard US1 dataset review endpoints behind the configured feature flag.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -9293,8 +8472,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Guard clarification-specific US2 endpoints behind the configured feature flag." + "BRIEF": "Guard clarification-specific US2 endpoints behind the configured feature flag.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -9311,8 +8490,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Guard US3 execution endpoints behind the configured feature flag." + "BRIEF": "Guard US3 execution endpoints behind the configured feature flag.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -9329,8 +8508,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Build repository dependency." + "BRIEF": "Build repository dependency.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9347,8 +8526,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Build orchestrator dependency." + "BRIEF": "Build orchestrator dependency.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9365,8 +8544,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Build clarification engine dependency." + "BRIEF": "Build clarification engine dependency.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9383,8 +8562,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Map session aggregate into stable API summary DTO." + "BRIEF": "Map session aggregate into stable API summary DTO.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9401,8 +8580,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Map session aggregate into stable API detail DTO." + "BRIEF": "Map session aggregate into stable API detail DTO.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9419,8 +8598,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Read the optimistic-lock session version header." + "BRIEF": "Read the optimistic-lock session version header.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9437,8 +8616,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Normalize optimistic-lock conflict errors into HTTP 409 responses." + "BRIEF": "Normalize optimistic-lock conflict errors into HTTP 409 responses.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9455,8 +8634,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Convert repository optimistic-lock conflicts into deterministic HTTP 409 responses." + "BRIEF": "Convert repository optimistic-lock conflicts into deterministic HTTP 409 responses.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9473,8 +8652,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Resolve one session for current user or collaborator scope, returning 404 when inaccessible." + "BRIEF": "Resolve one session for current user or collaborator scope, returning 404 when inaccessible.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9491,8 +8670,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Enforce owner-only mutation scope." + "BRIEF": "Enforce owner-only mutation scope.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -9509,8 +8688,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Resolve owner-scoped mutation session and enforce optimistic-lock version." + "BRIEF": "Resolve owner-scoped mutation session and enforce optimistic-lock version.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9527,8 +8706,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Centralize session version bumping and commit semantics." + "BRIEF": "Centralize session version bumping and commit semantics.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9545,8 +8724,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Persist one explicit audit event for an owned mutation endpoint." + "BRIEF": "Persist one explicit audit event for an owned mutation endpoint.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9563,8 +8742,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Map one semantic field into stable DTO." + "BRIEF": "Map one semantic field into stable DTO.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9581,8 +8760,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Map one execution mapping into stable DTO." + "BRIEF": "Map one execution mapping into stable DTO.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9599,8 +8778,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Map one preview into stable DTO." + "BRIEF": "Map one preview into stable DTO.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9617,8 +8796,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Map one run context into stable DTO." + "BRIEF": "Map one run context into stable DTO.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9635,8 +8814,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Convert clarification engine payload into API DTO." + "BRIEF": "Convert clarification engine payload into API DTO.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9653,8 +8832,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Convert clarification engine state into API response." + "BRIEF": "Convert clarification engine state into API response.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9671,8 +8850,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Return empty clarification payload." + "BRIEF": "Return empty clarification payload.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9689,8 +8868,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Resolve the latest clarification aggregate or raise." + "BRIEF": "Resolve the latest clarification aggregate or raise.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9707,8 +8886,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Resolve one execution mapping inside one owned session." + "BRIEF": "Resolve one execution mapping inside one owned session.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -9725,8 +8904,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Resolve a semantic field inside one owned session." + "BRIEF": "Resolve a semantic field inside one owned session.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -9743,8 +8922,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Translate accepted semantic candidate type into stable field provenance." + "BRIEF": "Translate accepted semantic candidate type into stable field provenance.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9761,8 +8940,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Resolve the semantic source version for one accepted candidate." + "BRIEF": "Resolve the semantic source version for one accepted candidate.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9779,9 +8958,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Apply field-level semantic manual override or candidate acceptance.", "COMPLEXITY": 3, - "POST": "Manual overrides always set manual provenance plus lock.", - "PURPOSE": "Apply field-level semantic manual override or candidate acceptance." + "POST": "Manual overrides always set manual provenance plus lock." }, "relations": [], "schema_warnings": [], @@ -9798,8 +8977,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Build SQL Lab redirect URL." + "BRIEF": "Build SQL Lab redirect URL.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -9816,8 +8995,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Produce session documentation export content." + "BRIEF": "Produce session documentation export content.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -9834,8 +9013,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Produce validation-focused export content." + "BRIEF": "Produce validation-focused export content.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -9852,8 +9031,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Persist thumbs up/down feedback for clarification question/answer content." + "BRIEF": "Persist thumbs up/down feedback for clarification question/answer content.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9870,8 +9049,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "List resumable dataset review sessions for the current user." + "BRIEF": "List resumable dataset review sessions for the current user.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9888,8 +9067,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Start a new dataset review session from a Superset link or dataset selection." + "BRIEF": "Start a new dataset review session from a Superset link or dataset selection.", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -9906,8 +9085,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Return the full accessible dataset review session aggregate." + "BRIEF": "Return the full accessible dataset review session aggregate.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9924,8 +9103,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Update resumable lifecycle status for an owned session." + "BRIEF": "Update resumable lifecycle status for an owned session.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9942,8 +9121,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Archive or hard-delete a session owned by the current user." + "BRIEF": "Archive or hard-delete a session owned by the current user.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9960,8 +9139,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Export documentation output for the current session." + "BRIEF": "Export documentation output for the current session.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9978,8 +9157,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Export validation findings for the current session." + "BRIEF": "Export validation findings for the current session.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -9996,8 +9175,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Return the current clarification session summary and active question payload." + "BRIEF": "Return the current clarification session summary and active question payload.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10014,8 +9193,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Resume clarification mode on the highest-priority unresolved question." + "BRIEF": "Resume clarification mode on the highest-priority unresolved question.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10032,8 +9211,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Persist one clarification answer before advancing the active pointer." + "BRIEF": "Persist one clarification answer before advancing the active pointer.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10050,8 +9229,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Apply one field-level semantic candidate decision or manual override." + "BRIEF": "Apply one field-level semantic candidate decision or manual override.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10068,8 +9247,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Lock one semantic field against later automatic overwrite." + "BRIEF": "Lock one semantic field against later automatic overwrite.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10086,8 +9265,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unlock one semantic field so later automated candidate application may replace it." + "BRIEF": "Unlock one semantic field so later automated candidate application may replace it.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10104,8 +9283,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Approve multiple semantic candidate decisions in one batch." + "BRIEF": "Approve multiple semantic candidate decisions in one batch.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10122,8 +9301,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Return the current mapping-review set for one accessible session." + "BRIEF": "Return the current mapping-review set for one accessible session.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10140,8 +9319,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Persist one owner-authorized execution-mapping effective value override." + "BRIEF": "Persist one owner-authorized execution-mapping effective value override.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10158,8 +9337,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Explicitly approve a warning-sensitive mapping transformation." + "BRIEF": "Explicitly approve a warning-sensitive mapping transformation.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10176,8 +9355,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Approve multiple warning-sensitive execution mappings in one batch." + "BRIEF": "Approve multiple warning-sensitive execution mappings in one batch.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10194,8 +9373,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Trigger Superset-side preview compilation for the current owned execution context." + "BRIEF": "Trigger Superset-side preview compilation for the current owned execution context.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10212,8 +9391,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Execute the current owned session launch handoff and return audited SQL Lab run context." + "BRIEF": "Execute the current owned session launch handoff and return audited SQL Lab run context.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10230,8 +9409,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Persist thumbs up/down feedback for AI-assisted semantic field content." + "BRIEF": "Persist thumbs up/down feedback for AI-assisted semantic field content.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10248,8 +9427,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Persist thumbs up/down feedback for clarification question/answer content." + "BRIEF": "Persist thumbs up/down feedback for clarification question/answer content.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -10266,13 +9445,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "API endpoints for the Dataset Hub - listing datasets with mapping progress", "COMPLEXITY": 5, "DATA_CONTRACT": "Input -> DatasetQuery, Output -> DatasetsResponse, DatasetDetailResponse", "INVARIANT": "All dataset responses include last_task metadata", "LAYER": "API", "POST": "Returns dataset metadata with mapping status.", "PRE": "SupersetClient is available; env_id is valid.", - "PURPOSE": "API endpoints for the Dataset Hub - listing datasets with mapping progress", "SIDE_EFFECT": "Reads from Superset API and task manager." }, "relations": [ @@ -10309,65 +9488,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO for dataset mapping progress statistics" + "BRIEF": "DTO for dataset mapping progress statistics", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region MappedFields [C:1] [TYPE DataClass]\n# @BRIEF DTO for dataset mapping progress statistics\nclass MappedFields(BaseModel):\n total: int\n mapped: int\n# #endregion MappedFields\n" @@ -10381,65 +9506,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO for the most recent task associated with a dataset" + "BRIEF": "DTO for the most recent task associated with a dataset", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region LastTask [C:1] [TYPE DataClass]\n# @BRIEF DTO for the most recent task associated with a dataset\nclass LastTask(BaseModel):\n task_id: str | None = None\n status: str | None = Field(None, pattern=\"^RUNNING|SUCCESS|ERROR|WAITING_INPUT$\")\n# #endregion LastTask\n" @@ -10453,65 +9524,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Summary DTO for a dataset in the hub listing" + "BRIEF": "Summary DTO for a dataset in the hub listing", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetItem [C:1] [TYPE DataClass]\n# @BRIEF Summary DTO for a dataset in the hub listing\nclass DatasetItem(BaseModel):\n id: int\n table_name: str\n schema_name: str = Field(..., alias=\"schema\")\n database: str\n mapped_fields: MappedFields | None = None\n last_task: LastTask | None = None\n metric_count: int = 0\n\n class Config:\n allow_population_by_field_name = True\n# #endregion DatasetItem\n" @@ -10525,65 +9542,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO for a dashboard linked to a dataset" + "BRIEF": "DTO for a dashboard linked to a dataset", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region LinkedDashboard [C:1] [TYPE DataClass]\n# @BRIEF DTO for a dashboard linked to a dataset\nclass LinkedDashboard(BaseModel):\n id: int\n title: str\n slug: str | None = None\n# #endregion LinkedDashboard\n" @@ -10597,65 +9560,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "DTO for a single dataset column's metadata" + "BRIEF": "DTO for a single dataset column's metadata", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetColumn [C:1] [TYPE DataClass]\n# @BRIEF DTO for a single dataset column's metadata\nclass DatasetColumn(BaseModel):\n id: int\n name: str\n type: str | None = None\n is_dttm: bool = False\n is_active: bool = True\n description: str | None = None\n# #endregion DatasetColumn\n" @@ -10669,8 +9578,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Pydantic DTO for a dataset metric — carries Superset metric metadata." + "BRIEF": "Pydantic DTO for a dataset metric — carries Superset metric metadata.", + "COMPLEXITY": 1 }, "relations": [ { @@ -10680,70 +9589,7 @@ "target_ref": "[DatasetDetailResponse]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region MetricItem [C:1] [TYPE DataClass]\n# @BRIEF Pydantic DTO for a dataset metric — carries Superset metric metadata.\n# @RELATION DEPENDS_ON -> [DatasetDetailResponse]\nclass MetricItem(BaseModel):\n id: int\n metric_name: str\n expression: str | None = None\n verbose_name: str | None = None\n description: str | None = None\n metric_type: str | None = None\n# #endregion MetricItem\n" @@ -10757,8 +9603,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Detailed DTO for a dataset including columns, linked dashboards, and metrics." + "BRIEF": "Detailed DTO for a dataset including columns, linked dashboards, and metrics.", + "COMPLEXITY": 2 }, "relations": [ { @@ -10768,70 +9614,7 @@ "target_ref": "[MetricItem]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "DataClass" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'DataClass' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetDetailResponse [C:2] [TYPE DataClass]\n# @BRIEF Detailed DTO for a dataset including columns, linked dashboards, and metrics.\n# @RELATION DEPENDS_ON -> [MetricItem]\nclass DatasetDetailResponse(BaseModel):\n id: int\n table_name: str | None = None\n schema_name: str | None = Field(None, alias=\"schema\")\n database: str\n description: str | None = None\n columns: list[DatasetColumn]\n column_count: int\n metrics: list[MetricItem] = []\n metric_count: int = 0\n sql: str | None = None\n linked_dashboards: list[LinkedDashboard]\n linked_dashboard_count: int\n is_sqllab_view: bool = False\n created_on: str | None = None\n changed_on: str | None = None\n\n class Config:\n allow_population_by_field_name = True\n# #endregion DatasetDetailResponse\n" @@ -10845,65 +9628,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Aggregate statistics for the Stats Bar — computed from full dataset list." + "BRIEF": "Aggregate statistics for the Stats Bar — computed from full dataset list.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region StatsCounts [C:1] [TYPE DataClass]\n# @BRIEF Aggregate statistics for the Stats Bar — computed from full dataset list.\nclass StatsCounts(BaseModel):\n total: int\n unmapped_count: int\n mapped_count: int\n linked_count: int\n# #endregion StatsCounts\n" @@ -10917,8 +9646,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Paginated response DTO for dataset listings with stats." + "BRIEF": "Paginated response DTO for dataset listings with stats.", + "COMPLEXITY": 2 }, "relations": [ { @@ -10928,70 +9657,7 @@ "target_ref": "[StatsCounts]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "DataClass" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'DataClass' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DatasetsResponse [C:2] [TYPE DataClass]\n# @BRIEF Paginated response DTO for dataset listings with stats.\n# @RELATION DEPENDS_ON -> [StatsCounts]\nclass DatasetsResponse(BaseModel):\n datasets: list[DatasetItem]\n stats: StatsCounts\n total: int\n page: int\n page_size: int\n total_pages: int\n# #endregion DatasetsResponse\n" @@ -11005,65 +9671,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response DTO containing a task ID for tracking" + "BRIEF": "Response DTO containing a task ID for tracking", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TaskResponse [C:1] [TYPE DataClass]\n# @BRIEF Response DTO containing a task ID for tracking\nclass TaskResponse(BaseModel):\n task_id: str\n# #endregion TaskResponse\n" @@ -11077,65 +9689,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for inline-edit of a column description." + "BRIEF": "Request DTO for inline-edit of a column description.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ColumnDescriptionUpdate [C:1] [TYPE DataClass]\n# @BRIEF Request DTO for inline-edit of a column description.\nclass ColumnDescriptionUpdate(BaseModel):\n description: str\n# #endregion ColumnDescriptionUpdate\n" @@ -11149,65 +9707,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for inline-edit of a metric description." + "BRIEF": "Request DTO for inline-edit of a metric description.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region MetricDescriptionUpdate [C:1] [TYPE DataClass]\n# @BRIEF Request DTO for inline-edit of a metric description.\nclass MetricDescriptionUpdate(BaseModel):\n description: str\n# #endregion MetricDescriptionUpdate\n" @@ -11221,10 +9725,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Fetch list of all dataset IDs from a specific environment (without pagination)", "COMPLEXITY": 4, "POST": "Returns a list of all dataset IDs", - "PRE": "env_id must be a valid environment ID", - "PURPOSE": "Fetch list of all dataset IDs from a specific environment (without pagination)" + "PRE": "env_id must be a valid environment ID" }, "relations": [ { @@ -11248,10 +9752,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Fetch list of datasets from a specific environment with mapping progress and stats.", "COMPLEXITY": 4, "POST": "Response includes pagination metadata (page, page_size, total, total_pages) and stats object.", "PRE": "page_size must be between 1 and 100 if provided", - "PURPOSE": "Fetch list of datasets from a specific environment with mapping progress and stats.", "RATIONALE": "Stats counts returned in the same response as datasets to avoid an extra API call for the Stats Bar (FR-022)." }, "relations": [ @@ -11276,65 +9780,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for initiating column mapping" + "BRIEF": "Request DTO for initiating column mapping", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region MapColumnsRequest [C:1] [TYPE DataClass]\n# @BRIEF Request DTO for initiating column mapping\nclass MapColumnsRequest(BaseModel):\n env_id: str = Field(..., description=\"Environment ID\")\n dataset_ids: list[int] = Field(..., description=\"List of dataset IDs to map\")\n source_type: str = Field(..., description=\"Source type: 'sqllab' or 'xlsx'\")\n database_id: int | None = Field(None, description=\"Superset database ID for SQL Lab source\")\n sql_query: str | None = Field(None, description=\"Custom SQL query for SQL Lab (optional, defaults to information_schema.columns query)\")\n file_data: str | None = Field(None, description=\"File path or data for XLSX source\")\n# #endregion MapColumnsRequest\n" @@ -11348,10 +9798,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Trigger bulk column mapping for datasets", "COMPLEXITY": 4, "POST": "Task is created and queued for execution", - "PRE": "dataset_ids is a non-empty list", - "PURPOSE": "Trigger bulk column mapping for datasets" + "PRE": "dataset_ids is a non-empty list" }, "relations": [ { @@ -11381,65 +9831,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Request DTO for initiating documentation generation" + "BRIEF": "Request DTO for initiating documentation generation", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region GenerateDocsRequest [C:1] [TYPE DataClass]\n# @BRIEF Request DTO for initiating documentation generation\nclass GenerateDocsRequest(BaseModel):\n env_id: str = Field(..., description=\"Environment ID\")\n dataset_ids: list[int] = Field(..., description=\"List of dataset IDs to generate docs for\")\n llm_provider: str = Field(..., description=\"LLM provider to use\")\n options: dict | None = Field(None, description=\"Additional options for documentation generation\")\n# #endregion GenerateDocsRequest\n" @@ -11453,10 +9849,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Trigger bulk documentation generation for datasets", "COMPLEXITY": 4, "POST": "Task is created and queued for execution", - "PRE": "dataset_ids is a non-empty list", - "PURPOSE": "Trigger bulk documentation generation for datasets" + "PRE": "dataset_ids is a non-empty list" }, "relations": [ { @@ -11486,10 +9882,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get detailed dataset information including columns and linked dashboards", "COMPLEXITY": 4, "POST": "Returns detailed dataset info with columns and linked dashboards", - "PRE": "dataset_id is a valid dataset ID", - "PURPOSE": "Get detailed dataset information including columns and linked dashboards" + "PRE": "dataset_id is a valid dataset ID" }, "relations": [ { @@ -11513,8 +9909,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Detect and strip HTML tags from a text string. Uses simple regex <[^>]*>." + "BRIEF": "Detect and strip HTML tags from a text string. Uses simple regex <[^>]*>.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -11531,11 +9927,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Save description for a single dataset column. Internal: GET full dataset from Superset, modify one column's description, PUT back.", "COMPLEXITY": 4, "ERROR": "400 — description exceeds max length or contains non-plaintext content. 404 — dataset_id or column_id not found. 502 — Superset upstream failure (GET or PUT).", "POST": "Column description in Superset is updated. Response confirms success.", "PRE": "dataset_id and column_id must exist in the target environment.", - "PURPOSE": "Save description for a single dataset column. Internal: GET full dataset from Superset, modify one column's description, PUT back.", "RATIONALE": "Must perform GET→modify→PUT because Superset has no PATCH for individual columns — only full object PUT with override_columns=false.", "REJECTED": "Direct PUT from frontend — rejected because frontend would need to handle full Superset payload structure.", "SIDE_EFFECT": "Mutates dataset metadata in upstream Superset instance via PUT.", @@ -11556,223 +9952,11 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "ERROR", - "message": "@ERROR is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "ERROR", - "message": "@ERROR is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "POST", - "message": "@POST is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "POST", - "message": "@POST is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PRE", - "message": "@PRE is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PRE", - "message": "@PRE is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REJECTED", - "message": "@REJECTED is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REJECTED", - "message": "@REJECTED is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, { "code": "unknown_tag", "tag": "VALIDATION", "message": "@VALIDATION is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } } ], "anchor_syntax": "region", @@ -11788,11 +9972,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Save description for a single dataset metric. Mirror of update_column_description for metrics.", "COMPLEXITY": 4, "ERROR": "400 — description exceeds max length or contains non-plaintext content. 404 — dataset_id or metric_id not found. 502 — Superset upstream failure (GET or PUT).", "POST": "Metric description in Superset is updated.", "PRE": "dataset_id and metric_id must exist in the target environment.", - "PURPOSE": "Save description for a single dataset metric. Mirror of update_column_description for metrics.", "SIDE_EFFECT": "Mutates dataset metadata in upstream Superset instance via PUT.", "VALIDATION": "description — string, max 2000 chars, plain text only (HTML stripped), may be empty string to clear description, no trimming applied. 404 if dataset or metric not found. 502 if Superset upstream fails." }, @@ -11811,169 +9995,11 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "ERROR", - "message": "@ERROR is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "ERROR", - "message": "@ERROR is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "POST", - "message": "@POST is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "POST", - "message": "@POST is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PRE", - "message": "@PRE is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PRE", - "message": "@PRE is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is not allowed for contract type 'Endpoint'", - "detail": { - "actual_type": "Endpoint", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } - }, { "code": "unknown_tag", "tag": "VALIDATION", "message": "@VALIDATION is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Endpoint' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Endpoint" - } } ], "anchor_syntax": "region", @@ -11989,10 +10015,10 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "API endpoints for listing environments and their databases.", "COMPLEXITY": 5, "INVARIANT": "Environment IDs must exist in the configuration.", - "LAYER": "API", - "PURPOSE": "API endpoints for listing environments and their databases." + "LAYER": "API" }, "relations": [ { @@ -12022,9 +10048,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Canonicalize Superset environment URL to base host/path without trailing /api/v1.", "POST": "Returns normalized base URL.", - "PRE": "raw_url can be empty.", - "PURPOSE": "Canonicalize Superset environment URL to base host/path without trailing /api/v1." + "PRE": "raw_url can be empty." }, "relations": [], "schema_warnings": [], @@ -12086,36 +10112,13 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Update backup schedule for an environment.", "LAYER": "API", "POST": "Backup schedule updated and scheduler reloaded.", - "PRE": "Environment id exists, schedule is valid ScheduleSchema.", - "PURPOSE": "Update backup schedule for an environment." + "PRE": "Environment id exists, schedule is valid ScheduleSchema." }, "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region update_environment_schedule [TYPE Function] [SEMANTICS update, schedule, backup, environment]\n# @BRIEF Update backup schedule for an environment.\n# @LAYER: API\n# @PRE: Environment id exists, schedule is valid ScheduleSchema.\n# @POST: Backup schedule updated and scheduler reloaded.\n@router.put(\"/{id}/schedule\")\nasync def update_environment_schedule(\n id: str,\n schedule: ScheduleSchema,\n config_manager=Depends(get_config_manager),\n scheduler_service=Depends(get_scheduler_service),\n _ = Depends(has_permission(\"admin:settings\", \"WRITE\"))\n):\n with belief_scope(\"update_environment_schedule\", f\"id={id}\"):\n envs = config_manager.get_environments()\n env = next((e for e in envs if e.id == id), None)\n if not env:\n raise HTTPException(status_code=404, detail=\"Environment not found\")\n\n # Update environment config\n env.backup_schedule.enabled = schedule.enabled\n env.backup_schedule.cron_expression = schedule.cron_expression\n\n config_manager.update_environment(id, env)\n\n # Refresh scheduler\n scheduler_service.load_schedules()\n\n return {\"message\": \"Schedule updated successfully\"}\n# #endregion update_environment_schedule\n" @@ -12129,36 +10132,13 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch the list of databases from a specific environment.", "LAYER": "API", "POST": "Returns a list of database summaries from the environment.", - "PRE": "Environment id exists.", - "PURPOSE": "Fetch the list of databases from a specific environment." + "PRE": "Environment id exists." }, "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region get_environment_databases [TYPE Function] [SEMANTICS fetch, databases, superset, environment]\n# @BRIEF Fetch the list of databases from a specific environment.\n# @LAYER: API\n# @PRE: Environment id exists.\n# @POST: Returns a list of database summaries from the environment.\n@router.get(\"/{id}/databases\")\nasync def get_environment_databases(\n id: str,\n config_manager=Depends(get_config_manager),\n _ = Depends(has_permission(\"admin:settings\", \"READ\"))\n):\n with belief_scope(\"get_environment_databases\", f\"id={id}\"):\n envs = config_manager.get_environments()\n env = next((e for e in envs if e.id == id), None)\n if not env:\n raise HTTPException(status_code=404, detail=\"Environment not found\")\n\n try:\n # Initialize SupersetClient from environment config\n client = SupersetClient(env)\n return client.get_databases_summary()\n except Exception as e:\n raise HTTPException(status_code=500, detail=f\"Failed to fetch databases: {e!s}\")\n# #endregion get_environment_databases\n" @@ -12172,9 +10152,9 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Package root for decomposed git routes. Re-exports all public symbols from submodules.", "COMPLEXITY": 5, - "LAYER": "API", - "PURPOSE": "Package root for decomposed git routes. Re-exports all public symbols from submodules." + "LAYER": "API" }, "relations": [ { @@ -12198,9 +10178,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "FastAPI endpoints for Git server configuration CRUD and connection testing.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "FastAPI endpoints for Git server configuration CRUD and connection testing." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -12217,8 +10197,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "List all configured Git servers." + "BRIEF": "List all configured Git servers.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12235,8 +10215,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Register a new Git server configuration." + "BRIEF": "Register a new Git server configuration.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12253,8 +10233,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Update an existing Git server configuration." + "BRIEF": "Update an existing Git server configuration.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12271,8 +10251,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Remove a Git server configuration." + "BRIEF": "Remove a Git server configuration.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12289,8 +10269,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Validate connection to a Git server using provided credentials." + "BRIEF": "Validate connection to a Git server using provided credentials.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12307,10 +10287,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Shared dependency wiring for monkeypatch-safe git_service access and constants.", "COMPLEXITY": 1, "INVARIANT": "get_git_service() resolves from sys.modules at call time so test monkeypatching", - "LAYER": "API", - "PURPOSE": "Shared dependency wiring for monkeypatch-safe git_service access and constants." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -12327,9 +10307,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "FastAPI endpoint for listing deployment environments.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "FastAPI endpoint for listing deployment environments." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -12346,9 +10326,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "FastAPI endpoints for Gitea-specific repository operations.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "FastAPI endpoints for Gitea-specific repository operations." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -12365,8 +10345,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "List repositories in Gitea for a saved Gitea config." + "BRIEF": "List repositories in Gitea for a saved Gitea config.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12383,8 +10363,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Create a repository in Gitea for a saved Gitea config." + "BRIEF": "Create a repository in Gitea for a saved Gitea config.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12401,8 +10381,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Delete repository in Gitea for a saved Gitea config." + "BRIEF": "Delete repository in Gitea for a saved Gitea config.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12419,8 +10399,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Create repository on remote Git server using selected provider config." + "BRIEF": "Create repository on remote Git server using selected provider config.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12437,9 +10417,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Shared helper functions for Git route modules.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Shared helper functions for Git route modules." + "LAYER": "API" }, "relations": [ { @@ -12475,9 +10455,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build a consistent status payload for dashboards without initialized repositories.", "COMPLEXITY": 1, - "POST": "Returns a stable payload compatible with frontend repository status parsing.", - "PURPOSE": "Build a consistent status payload for dashboards without initialized repositories." + "POST": "Returns a stable payload compatible with frontend repository status parsing." }, "relations": [], "schema_warnings": [], @@ -12494,10 +10474,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Convert unexpected route-level exceptions to stable 500 API responses.", "COMPLEXITY": 1, "POST": "Raises HTTPException(500) with route-specific context.", - "PRE": "`error` is a non-HTTPException instance.", - "PURPOSE": "Convert unexpected route-level exceptions to stable 500 API responses." + "PRE": "`error` is a non-HTTPException instance." }, "relations": [], "schema_warnings": [], @@ -12514,10 +10494,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve repository status for one dashboard with graceful NO_REPO semantics.", "COMPLEXITY": 2, "POST": "Returns standard status payload or `NO_REPO` payload when repository path is absent.", - "PRE": "`dashboard_id` is a valid integer.", - "PURPOSE": "Resolve repository status for one dashboard with graceful NO_REPO semantics." + "PRE": "`dashboard_id` is a valid integer." }, "relations": [], "schema_warnings": [], @@ -12534,8 +10514,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Resolve GitServerConfig by id or raise 404." + "BRIEF": "Resolve GitServerConfig by id or raise 404.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12552,8 +10532,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Resolve repository folder key with slug-first strategy and deterministic fallback." + "BRIEF": "Resolve repository folder key with slug-first strategy and deterministic fallback.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12570,8 +10550,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Normalize optional identity value into trimmed string or None." + "BRIEF": "Normalize optional identity value into trimmed string or None.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -12588,8 +10568,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Resolve configured Git username/email from current user's profile preferences." + "BRIEF": "Resolve configured Git username/email from current user's profile preferences.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12606,8 +10586,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Apply user-scoped Git identity to repository-local config before write/pull operations." + "BRIEF": "Apply user-scoped Git identity to repository-local config before write/pull operations.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12624,9 +10604,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "FastAPI endpoints for merge operations (status, conflicts, resolve, abort, continue).", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "FastAPI endpoints for merge operations (status, conflicts, resolve, abort, continue)." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -12643,8 +10623,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Return unfinished-merge status for repository (web-only recovery support)." + "BRIEF": "Return unfinished-merge status for repository (web-only recovery support).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12661,8 +10641,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Return conflicted files with mine/theirs previews for web conflict resolver." + "BRIEF": "Return conflicted files with mine/theirs previews for web conflict resolver.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12679,8 +10659,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Apply mine/theirs/manual conflict resolutions from WebUI and stage files." + "BRIEF": "Apply mine/theirs/manual conflict resolutions from WebUI and stage files.", + "COMPLEXITY": 3 }, "relations": [ { @@ -12704,8 +10684,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Abort unfinished merge from WebUI flow." + "BRIEF": "Abort unfinished merge from WebUI flow.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12722,8 +10702,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Finalize unfinished merge from WebUI flow." + "BRIEF": "Finalize unfinished merge from WebUI flow.", + "COMPLEXITY": 3 }, "relations": [ { @@ -12747,9 +10727,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "FastAPI endpoints for Git lifecycle operations (sync, promote, deploy).", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "FastAPI endpoints for Git lifecycle operations (sync, promote, deploy)." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -12766,8 +10746,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Sync dashboard state from Superset to Git using the GitPlugin." + "BRIEF": "Sync dashboard state from Superset to Git using the GitPlugin.", + "COMPLEXITY": 3 }, "relations": [ { @@ -12791,8 +10771,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Promote changes between branches via MR or direct merge." + "BRIEF": "Promote changes between branches via MR or direct merge.", + "COMPLEXITY": 3 }, "relations": [ { @@ -12816,8 +10796,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Deploy dashboard from Git to a target environment." + "BRIEF": "Deploy dashboard from Git to a target environment.", + "COMPLEXITY": 3 }, "relations": [ { @@ -12841,9 +10821,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "FastAPI endpoints for Git repository operations (commit, push, pull, status, diff, history).", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "FastAPI endpoints for Git repository operations (commit, push, pull, status, diff, history)." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -12860,8 +10840,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Stage and commit changes in the dashboard's repository." + "BRIEF": "Stage and commit changes in the dashboard's repository.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12878,8 +10858,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Push local commits to the remote repository." + "BRIEF": "Push local commits to the remote repository.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12896,8 +10876,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Pull changes from the remote repository." + "BRIEF": "Pull changes from the remote repository.", + "COMPLEXITY": 3 }, "relations": [ { @@ -12921,8 +10901,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get current Git status for a dashboard repository." + "BRIEF": "Get current Git status for a dashboard repository.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12939,8 +10919,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get Git statuses for multiple dashboard repositories in one request." + "BRIEF": "Get Git statuses for multiple dashboard repositories in one request.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12957,8 +10937,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get Git diff for a dashboard repository." + "BRIEF": "Get Git diff for a dashboard repository.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -12975,8 +10955,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Generate a suggested commit message using LLM." + "BRIEF": "Generate a suggested commit message using LLM.", + "COMPLEXITY": 3 }, "relations": [ { @@ -13000,9 +10980,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "FastAPI endpoints for core Git repository operations (init, binding, branches, checkout).", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "FastAPI endpoints for core Git repository operations (init, binding, branches, checkout)." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -13019,8 +10999,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Link a dashboard to a Git repository and perform initial clone/init." + "BRIEF": "Link a dashboard to a Git repository and perform initial clone/init.", + "COMPLEXITY": 3 }, "relations": [ { @@ -13044,8 +11024,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Return repository binding with provider metadata for selected dashboard." + "BRIEF": "Return repository binding with provider metadata for selected dashboard.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -13062,8 +11042,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Delete local repository workspace and DB binding for selected dashboard." + "BRIEF": "Delete local repository workspace and DB binding for selected dashboard.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -13080,8 +11060,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "List all branches for a dashboard's repository." + "BRIEF": "List all branches for a dashboard's repository.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -13098,8 +11078,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Create a new branch in the dashboard's repository." + "BRIEF": "Create a new branch in the dashboard's repository.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -13116,8 +11096,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Switch the dashboard's repository to a specific branch." + "BRIEF": "Switch the dashboard's repository to a specific branch.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -13134,9 +11114,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Shared APIRouter for all Git route modules.", "COMPLEXITY": 1, - "LAYER": "API", - "PURPOSE": "Shared APIRouter for all Git route modules." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -13153,10 +11133,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Defines Pydantic models for the Git integration API layer.", "COMPLEXITY": 1, "INVARIANT": "All schemas must be compatible with the FastAPI router.", - "LAYER": "API", - "PURPOSE": "Defines Pydantic models for the Git integration API layer." + "LAYER": "API" }, "relations": [ { @@ -13180,8 +11160,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Base schema for Git server configuration attributes." + "BRIEF": "Base schema for Git server configuration attributes.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -13198,7 +11178,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for updating an existing Git server configuration." + "BRIEF": "Schema for updating an existing Git server configuration." }, "relations": [], "schema_warnings": [], @@ -13215,7 +11195,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for creating a new Git server configuration." + "BRIEF": "Schema for creating a new Git server configuration." }, "relations": [], "schema_warnings": [], @@ -13232,7 +11212,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for representing a Git server configuration with metadata." + "BRIEF": "Schema for representing a Git server configuration with metadata." }, "relations": [], "schema_warnings": [], @@ -13249,7 +11229,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for tracking a local Git repository linked to a dashboard." + "BRIEF": "Schema for tracking a local Git repository linked to a dashboard." }, "relations": [], "schema_warnings": [], @@ -13266,7 +11246,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for representing a Git branch metadata." + "BRIEF": "Schema for representing a Git branch metadata." }, "relations": [], "schema_warnings": [], @@ -13283,7 +11263,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for representing Git commit details." + "BRIEF": "Schema for representing Git commit details." }, "relations": [], "schema_warnings": [], @@ -13300,7 +11280,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for branch creation requests." + "BRIEF": "Schema for branch creation requests." }, "relations": [], "schema_warnings": [], @@ -13317,7 +11297,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for branch checkout requests." + "BRIEF": "Schema for branch checkout requests." }, "relations": [], "schema_warnings": [], @@ -13334,7 +11314,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for staging and committing changes." + "BRIEF": "Schema for staging and committing changes." }, "relations": [], "schema_warnings": [], @@ -13351,7 +11331,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for resolving merge conflicts." + "BRIEF": "Schema for resolving merge conflicts." }, "relations": [], "schema_warnings": [], @@ -13368,7 +11348,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema representing unfinished merge status for repository." + "BRIEF": "Schema representing unfinished merge status for repository." }, "relations": [], "schema_warnings": [], @@ -13385,7 +11365,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema describing one conflicted file with optional side snapshots." + "BRIEF": "Schema describing one conflicted file with optional side snapshots." }, "relations": [], "schema_warnings": [], @@ -13402,7 +11382,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for resolving one or multiple merge conflicts." + "BRIEF": "Request schema for resolving one or multiple merge conflicts." }, "relations": [], "schema_warnings": [], @@ -13419,7 +11399,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for finishing merge with optional explicit commit message." + "BRIEF": "Request schema for finishing merge with optional explicit commit message." }, "relations": [], "schema_warnings": [], @@ -13436,7 +11416,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for representing a target deployment environment." + "BRIEF": "Schema for representing a target deployment environment." }, "relations": [], "schema_warnings": [], @@ -13453,7 +11433,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for dashboard deployment requests." + "BRIEF": "Schema for dashboard deployment requests." }, "relations": [], "schema_warnings": [], @@ -13470,7 +11450,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for repository initialization requests." + "BRIEF": "Schema for repository initialization requests." }, "relations": [], "schema_warnings": [], @@ -13487,7 +11467,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema describing repository-to-config binding and provider metadata." + "BRIEF": "Schema describing repository-to-config binding and provider metadata." }, "relations": [], "schema_warnings": [], @@ -13504,7 +11484,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for requesting repository statuses for multiple dashboards in a single call." + "BRIEF": "Schema for requesting repository statuses for multiple dashboards in a single call." }, "relations": [], "schema_warnings": [], @@ -13521,7 +11501,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for returning repository statuses keyed by dashboard ID." + "BRIEF": "Schema for returning repository statuses keyed by dashboard ID." }, "relations": [], "schema_warnings": [], @@ -13538,7 +11518,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema describing a Gitea repository." + "BRIEF": "Schema describing a Gitea repository." }, "relations": [], "schema_warnings": [], @@ -13555,7 +11535,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for creating a Gitea repository." + "BRIEF": "Request schema for creating a Gitea repository." }, "relations": [], "schema_warnings": [], @@ -13572,7 +11552,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Provider-agnostic remote repository payload." + "BRIEF": "Provider-agnostic remote repository payload." }, "relations": [], "schema_warnings": [], @@ -13589,7 +11569,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Provider-agnostic repository creation request." + "BRIEF": "Provider-agnostic repository creation request." }, "relations": [], "schema_warnings": [], @@ -13606,7 +11586,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Request schema for branch promotion workflow." + "BRIEF": "Request schema for branch promotion workflow." }, "relations": [], "schema_warnings": [], @@ -13623,7 +11603,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Response schema for promotion operation result." + "BRIEF": "Response schema for promotion operation result." }, "relations": [], "schema_warnings": [], @@ -13640,9 +11620,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "API endpoints for dashboard health monitoring and status aggregation.", "COMPLEXITY": 3, - "LAYER": "UI/API", - "PURPOSE": "API endpoints for dashboard health monitoring and status aggregation." + "LAYER": "UI/API" }, "relations": [ { @@ -13685,9 +11665,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Get aggregated health status for all dashboards.", "POST": "Returns HealthSummaryResponse.", - "PRE": "Caller has read permission for dashboard health view.", - "PURPOSE": "Get aggregated health status for all dashboards." + "PRE": "Caller has read permission for dashboard health view." }, "relations": [ { @@ -13711,9 +11691,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Delete one persisted dashboard validation report from health summary.", "POST": "Validation record is removed; linked task/logs are cleaned when available.", - "PRE": "Caller has write permission for tasks/report maintenance.", - "PURPOSE": "Delete one persisted dashboard validation report from health summary." + "PRE": "Caller has write permission for tasks/report maintenance." }, "relations": [ { @@ -13737,9 +11717,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "API routes for LLM provider configuration and management.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "API routes for LLM provider configuration and management." + "LAYER": "API" }, "relations": [ { @@ -13781,8 +11761,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Pydantic request model for the fetch-models endpoint." + "BRIEF": "Pydantic request model for the fetch-models endpoint.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -13799,65 +11779,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "APIRouter instance for LLM routes." + "BRIEF": "APIRouter instance for LLM routes.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Global'", - "detail": { - "actual_type": "Global", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Global' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Global" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Global'", - "detail": { - "actual_type": "Global", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Global' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Global" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region router [C:1] [TYPE Global]\n# @BRIEF APIRouter instance for LLM routes.\n\nrouter = APIRouter(tags=[\"LLM\"])\n# #endregion router\n" @@ -13871,10 +11797,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Validate decrypted runtime API key presence/shape.", "COMPLEXITY": 4, "POST": "Returns True only for non-placeholder key.", - "PRE": "value can be None.", - "PURPOSE": "Validate decrypted runtime API key presence/shape." + "PRE": "value can be None." }, "relations": [ { @@ -13898,10 +11824,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Retrieve all LLM provider configurations.", "COMPLEXITY": 4, "POST": "Returns list of LLMProviderConfig.", - "PRE": "User is authenticated.", - "PURPOSE": "Retrieve all LLM provider configurations." + "PRE": "User is authenticated." }, "relations": [ { @@ -13931,10 +11857,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Fetch available models from an LLM provider by base_url+provider_type, or by provider_id.", "COMPLEXITY": 4, "POST": "Returns a list of available model IDs.", - "PRE": "User is authenticated. Either provider_id or base_url+provider_type must be provided.", - "PURPOSE": "Fetch available models from an LLM provider by base_url+provider_type, or by provider_id." + "PRE": "User is authenticated. Either provider_id or base_url+provider_type must be provided." }, "relations": [ { @@ -13964,10 +11890,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Returns whether LLM runtime is configured for dashboard validation.", "COMPLEXITY": 4, "POST": "configured=true only when an active provider with valid decrypted key exists.", - "PRE": "User is authenticated.", - "PURPOSE": "Returns whether LLM runtime is configured for dashboard validation." + "PRE": "User is authenticated." }, "relations": [ { @@ -13997,10 +11923,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Create a new LLM provider configuration.", "COMPLEXITY": 4, "POST": "Returns the created LLMProviderConfig.", - "PRE": "User is authenticated and has admin permissions.", - "PURPOSE": "Create a new LLM provider configuration." + "PRE": "User is authenticated and has admin permissions." }, "relations": [ { @@ -14030,10 +11956,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Update an existing LLM provider configuration.", "COMPLEXITY": 4, "POST": "Returns the updated LLMProviderConfig.", - "PRE": "User is authenticated and has admin permissions.", - "PURPOSE": "Update an existing LLM provider configuration." + "PRE": "User is authenticated and has admin permissions." }, "relations": [ { @@ -14063,10 +11989,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Delete an LLM provider configuration.", "COMPLEXITY": 4, "POST": "Returns success status.", - "PRE": "User is authenticated and has admin permissions.", - "PURPOSE": "Delete an LLM provider configuration." + "PRE": "User is authenticated and has admin permissions." }, "relations": [ { @@ -14090,10 +12016,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Test connection to an LLM provider.", "COMPLEXITY": 4, "POST": "Returns success status and message.", - "PRE": "User is authenticated.", - "PURPOSE": "Test connection to an LLM provider." + "PRE": "User is authenticated." }, "relations": [ { @@ -14123,10 +12049,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Test connection with a provided configuration (not yet saved).", "COMPLEXITY": 4, "POST": "Returns success status and message.", - "PRE": "User is authenticated.", - "PURPOSE": "Test connection with a provided configuration (not yet saved)." + "PRE": "User is authenticated." }, "relations": [ { @@ -14156,9 +12082,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Maintenance Banner API route package.", "COMPLEXITY": 1, - "LAYER": "API", - "PURPOSE": "Maintenance Banner API route package." + "LAYER": "API" }, "relations": [ { @@ -14174,92 +12100,7 @@ "target_ref": "[MaintenanceSchemasModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region MaintenanceRoutesPackage [C:1] [TYPE Package] [SEMANTICS maintenance, api, package]\n# @BRIEF Maintenance Banner API route package.\n# @LAYER API\n# @RELATION DEPENDS_ON -> [MaintenanceRouter]\n# @RELATION DEPENDS_ON -> [MaintenanceSchemasModule]\n\nfrom ._router import router as maintenance_router\n\n__all__ = [\"maintenance_router\"]\n# #endregion MaintenanceRoutesPackage\n" @@ -14273,9 +12114,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "FastAPI APIRouter for the Maintenance Banner endpoints.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "FastAPI APIRouter for the Maintenance Banner endpoints." + "LAYER": "API" }, "relations": [ { @@ -14311,10 +12152,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Route handler stubs for all 7 Maintenance Banner API endpoints with RBAC guards per FR-015.", "COMPLEXITY": 3, "INVARIANT": "RBAC enforced per FR-015 matrix via has_permission() dependency.", - "LAYER": "API", - "PURPOSE": "Route handler stubs for all 7 Maintenance Banner API endpoints with RBAC guards per FR-015." + "LAYER": "API" }, "relations": [ { @@ -14356,8 +12197,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get per-dashboard banner state for the Dashboard Hub indicator." + "BRIEF": "Get per-dashboard banner state for the Dashboard Hub indicator.", + "COMPLEXITY": 2 }, "relations": [ { @@ -14381,8 +12222,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get active and completed maintenance event lists with affected dashboard counts." + "BRIEF": "Get active and completed maintenance event lists with affected dashboard counts.", + "COMPLEXITY": 2 }, "relations": [ { @@ -14406,8 +12247,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Start a maintenance event. Validates input, creates event, dispatches TaskManager task." + "BRIEF": "Start a maintenance event. Validates input, creates event, dispatches TaskManager task.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -14424,8 +12265,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "End a specific maintenance event by ID. Removes banners from affected dashboards." + "BRIEF": "End a specific maintenance event by ID. Removes banners from affected dashboards.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -14442,8 +12283,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "End all active maintenance events. Removes all banners from all dashboards." + "BRIEF": "End all active maintenance events. Removes all banners from all dashboards.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -14460,8 +12301,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get current maintenance settings configuration." + "BRIEF": "Get current maintenance settings configuration.", + "COMPLEXITY": 2 }, "relations": [ { @@ -14485,8 +12326,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Update maintenance settings. All fields optional for partial update." + "BRIEF": "Update maintenance settings. All fields optional for partial update.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -14503,10 +12344,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Pydantic models for Maintenance Banner API: request/response schemas per data-model.md.", "COMPLEXITY": 2, "INVARIANT": "All response schemas use the standard envelope shape: { status, data, error, meta }", - "LAYER": "API", - "PURPOSE": "Pydantic models for Maintenance Banner API: request/response schemas per data-model.md." + "LAYER": "API" }, "relations": [ { @@ -14530,8 +12371,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "POST /api/maintenance/start request body with environment scoping." + "BRIEF": "POST /api/maintenance/start request body with environment scoping.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14548,8 +12389,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "PUT /api/maintenance/settings request body — all fields optional for partial update." + "BRIEF": "PUT /api/maintenance/settings request body — all fields optional for partial update.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14566,8 +12407,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response for /api/maintenance/start — always 202 with task_id." + "BRIEF": "Response for /api/maintenance/start — always 202 with task_id.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14584,8 +12425,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Describes a single dashboard affected by a maintenance operation." + "BRIEF": "Describes a single dashboard affected by a maintenance operation.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14602,8 +12443,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Describes a dashboard that failed during banner apply/removal." + "BRIEF": "Describes a dashboard that failed during banner apply/removal.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14620,8 +12461,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Result payload for a completed maintenance start task." + "BRIEF": "Result payload for a completed maintenance start task.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14638,8 +12479,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response for /api/maintenance/{id}/end and /api/maintenance/end-all — always 202 with task_id." + "BRIEF": "Response for /api/maintenance/{id}/end and /api/maintenance/end-all — always 202 with task_id.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14656,8 +12497,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Result payload for a completed end maintenance task." + "BRIEF": "Result payload for a completed end maintenance task.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14674,8 +12515,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Result payload for a completed end-all maintenance task." + "BRIEF": "Result payload for a completed end-all maintenance task.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14692,8 +12533,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response for GET /api/maintenance/settings." + "BRIEF": "Response for GET /api/maintenance/settings.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14710,8 +12551,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Single maintenance event summary for GET /api/maintenance/events." + "BRIEF": "Single maintenance event summary for GET /api/maintenance/events.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14728,8 +12569,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response for GET /api/maintenance/events." + "BRIEF": "Response for GET /api/maintenance/events.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14746,8 +12587,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Per-dashboard banner state for GET /api/maintenance/dashboard-banners." + "BRIEF": "Per-dashboard banner state for GET /api/maintenance/dashboard-banners.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14764,8 +12605,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response for duplicate /start call — idempotency hit." + "BRIEF": "Response for duplicate /start call — idempotency hit.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -14782,9 +12623,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "API endpoints for managing database mappings and getting suggestions.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "API endpoints for managing database mappings and getting suggestions." + "LAYER": "API" }, "relations": [ { @@ -14865,9 +12706,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "List all saved database mappings.", "POST": "Returns filtered list of DatabaseMapping records.", - "PRE": "db session is injected.", - "PURPOSE": "List all saved database mappings." + "PRE": "db session is injected." }, "relations": [], "schema_warnings": [], @@ -14884,9 +12725,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Create or update a database mapping.", "POST": "DatabaseMapping created or updated in database.", - "PRE": "mapping is valid MappingCreate, db session is injected.", - "PURPOSE": "Create or update a database mapping." + "PRE": "mapping is valid MappingCreate, db session is injected." }, "relations": [], "schema_warnings": [], @@ -14903,9 +12744,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Get suggested mappings based on fuzzy matching.", "POST": "Returns mapping suggestions.", - "PRE": "request is valid SuggestRequest, config_manager is injected.", - "PURPOSE": "Get suggested mappings based on fuzzy matching." + "PRE": "request is valid SuggestRequest, config_manager is injected." }, "relations": [], "schema_warnings": [], @@ -14922,13 +12763,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "HTTP contract layer for migration orchestration, settings, dry-run, and mapping sync endpoints.", "COMPLEXITY": 5, "DATA_CONTRACT": "[DashboardSelection | QueryParams] -> [TaskResponse | DryRunResult | MappingSummary]", "INVARIANT": "Migration endpoints never execute with invalid environment references and always return explicit HTTP errors on guard failures.", "LAYER": "Infra", "POST": "Migration tasks are enqueued or dry-run results are computed and returned.", "PRE": "Backend core services initialized and Database session available.", - "PURPOSE": "HTTP contract layer for migration orchestration, settings, dry-run, and mapping sync endpoints.", "SIDE_EFFECT": "Enqueues long-running tasks, potentially mutates ResourceMapping table, and performs remote Superset API calls.", "TEST_CONTRACT": "[DashboardSelection + configured envs] -> [task_id | dry-run result | sync summary]", "TEST_EDGE": "[external_fail] ->[HTTP_500]", @@ -14997,69 +12838,6 @@ ], "value": "Infra" } - }, - { - "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 C5", - "detail": { - "actual_complexity": 5, - "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 C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is forbidden for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -15075,12 +12853,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Validate migration selection and enqueue asynchronous migration task execution.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[DashboardSelection] -> Output[Dict[str, str]]", "INVARIANT": "Migration task dispatch never occurs before source and target environment ids pass guard validation.", "POST": "Returns {\"task_id\": str, \"message\": str} when task creation succeeds; emits HTTP_400/HTTP_500 on failure.", "PRE": "DashboardSelection payload is valid and both source/target environments exist.", - "PURPOSE": "Validate migration selection and enqueue asynchronous migration task execution.", "SIDE_EFFECT": "Reads configuration, writes task record through task manager, and writes operational logs." }, "relations": [ @@ -15111,12 +12889,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Build pre-flight migration diff and risk summary without mutating target systems.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[DashboardSelection] -> Output[Dict[str, Any]]", "INVARIANT": "Dry-run flow remains read-only and rejects identical source/target environments before service execution.", "POST": "Returns deterministic dry-run payload; emits HTTP_400 for guard violations and HTTP_500 for orchestrator value errors.", "PRE": "DashboardSelection is valid, source and target environments exist, differ, and selected_ids is non-empty.", - "PURPOSE": "Build pre-flight migration diff and risk summary without mutating target systems.", "SIDE_EFFECT": "Reads local mappings from DB and fetches source/target metadata via Superset API." }, "relations": [ @@ -15147,11 +12925,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Read and return configured migration synchronization cron expression.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input[None] -> Output[Dict[str, str]]", "POST": "Returns {\"cron\": str} reflecting current persisted settings value.", "PRE": "Configuration store is available and requester has READ permission.", - "PURPOSE": "Read and return configured migration synchronization cron expression.", "SIDE_EFFECT": "Reads configuration from config manager." }, "relations": [ @@ -15176,11 +12954,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Validate and persist migration synchronization cron expression update.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input[Dict[str, str]] -> Output[Dict[str, str]]", "POST": "Returns {\"cron\": str, \"status\": \"updated\"} and persists updated cron value.", "PRE": "Payload includes \"cron\" key and requester has WRITE permission.", - "PURPOSE": "Validate and persist migration synchronization cron expression update.", "SIDE_EFFECT": "Mutates configuration and writes persisted config through config manager." }, "relations": [ @@ -15205,11 +12983,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Fetch synchronized resource mappings with optional filters and pagination for migration mappings view.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input[QueryParams] -> Output[Dict[str, Any]]", "POST": "Returns {\"items\": [...], \"total\": int} where items reflect applied filters and pagination.", "PRE": "skip>=0, 1<=limit<=500, DB session is active, requester has READ permission.", - "PURPOSE": "Fetch synchronized resource mappings with optional filters and pagination for migration mappings view.", "SIDE_EFFECT": "Executes database read queries against ResourceMapping table." }, "relations": [ @@ -15234,11 +13012,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Trigger immediate ID synchronization for every configured environment.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input[None] -> Output[Dict[str, Any]]", "POST": "Returns sync summary with synced/failed counts after attempting all environments.", "PRE": "At least one environment is configured and requester has EXECUTE permission.", - "PURPOSE": "Trigger immediate ID synchronization for every configured environment.", "SIDE_EFFECT": "Upserts Environment rows, commits DB transaction, performs network sync calls, and writes logs." }, "relations": [ @@ -15269,9 +13047,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Defines the FastAPI router for plugin-related endpoints, allowing clients to list available plugins.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Defines the FastAPI router for plugin-related endpoints, allowing clients to list available plugins." + "LAYER": "API" }, "relations": [ { @@ -15307,9 +13085,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieve a list of all available plugins.", "POST": "Returns a list of PluginConfig objects.", - "PRE": "plugin_loader is injected via Depends.", - "PURPOSE": "Retrieve a list of all available plugins." + "PRE": "plugin_loader is injected via Depends." }, "relations": [ { @@ -15339,12 +13117,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Exposes self-scoped profile preference endpoints and environment-based Superset account lookup.", "COMPLEXITY": 5, "INVARIANT": "Endpoints are self-scoped and never mutate another user preference.", "LAYER": "API", "POST": "Profile endpoints registered", - "PRE": "Auth middleware configured, database session available", - "PURPOSE": "Exposes self-scoped profile preference endpoints and environment-based Superset account lookup." + "PRE": "Auth middleware configured, database session available" }, "relations": [ { @@ -15380,9 +13158,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build profile service for current request scope.", "POST": "Returns a ready ProfileService instance.", - "PRE": "db session and config manager are available.", - "PURPOSE": "Build profile service for current request scope." + "PRE": "db session and config manager are available." }, "relations": [ { @@ -15406,9 +13184,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Get authenticated user's dashboard filter preference.", "POST": "Returns preference payload for current user only.", - "PRE": "Valid JWT and authenticated user context.", - "PURPOSE": "Get authenticated user's dashboard filter preference." + "PRE": "Valid JWT and authenticated user context." }, "relations": [ { @@ -15432,9 +13210,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Update authenticated user's dashboard filter preference.", "POST": "Persists normalized preference for current user or raises validation/authorization errors.", - "PRE": "Valid JWT and valid request payload.", - "PURPOSE": "Update authenticated user's dashboard filter preference." + "PRE": "Valid JWT and valid request payload." }, "relations": [ { @@ -15458,9 +13236,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Lookup Superset account candidates in selected environment.", "POST": "Returns success or degraded lookup payload with stable shape.", - "PRE": "Valid JWT, authenticated context, and environment_id query parameter.", - "PURPOSE": "Lookup Superset account candidates in selected environment." + "PRE": "Valid JWT, authenticated context, and environment_id query parameter." }, "relations": [ { @@ -15484,13 +13262,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "FastAPI router for unified task report list and detail retrieval endpoints.", "COMPLEXITY": 5, "DATA_CONTRACT": "[ReportQuery] -> [ReportCollection | ReportDetailView]", "INVARIANT": "Endpoints are read-only and do not trigger long-running tasks.", "LAYER": "API", "POST": "Router is configured and endpoints are ready for registration.", "PRE": "Reports service and dependencies are initialized.", - "PURPOSE": "FastAPI router for unified task report list and detail retrieval endpoints.", "SIDE_EFFECT": "None" }, "relations": [ @@ -15533,10 +13311,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Parse comma-separated query value into enum list.", "COMPLEXITY": 1, "POST": "Returns enum list or raises HTTP 400 with deterministic machine-readable payload.", - "PRE": "raw may be None/empty or comma-separated values.", - "PURPOSE": "Parse comma-separated query value into enum list." + "PRE": "raw may be None/empty or comma-separated values." }, "relations": [ { @@ -15560,10 +13338,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Return paginated unified reports list.", "COMPLEXITY": 2, "POST": "deterministic error payload for invalid filters.", "PRE": "authenticated/authorized request and validated query params.", - "PURPOSE": "Return paginated unified reports list.", "TEST_CONTRACT": "ListReportsApi ->" }, "relations": [ @@ -15600,10 +13378,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Return one normalized report detail with diagnostics and next actions.", "COMPLEXITY": 2, "POST": "returns normalized detail envelope or 404 when report is not found.", - "PRE": "authenticated/authorized request and existing report_id.", - "PURPOSE": "Return one normalized report detail with diagnostics and next actions." + "PRE": "authenticated/authorized request and existing report_id." }, "relations": [ { @@ -15627,6 +13405,7 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provides API endpoints for managing application settings and Superset environments.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input -> ConfigUpdateRequest, Output -> AppConfig, LoggingConfigResponse", "INVARIANT": "All settings changes must be persisted via ConfigManager.", @@ -15634,7 +13413,6 @@ "POST": "Settings are read or written via ConfigManager.", "PRE": "ConfigManager is initialized and accessible.", "PUBLIC_API": "router", - "PURPOSE": "Provides API endpoints for managing application settings and Superset environments.", "SIDE_EFFECT": "Persists config changes to disk via ConfigManager." }, "relations": [ @@ -15671,8 +13449,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response model for logging configuration with current task log level." + "BRIEF": "Response model for logging configuration with current task log level.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -15689,10 +13467,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Run lightweight Superset connectivity validation without full pagination scan.", "COMPLEXITY": 2, "POST": "Raises on auth/API failures; returns None on success.", - "PRE": "env contains valid URL and credentials.", - "PURPOSE": "Run lightweight Superset connectivity validation without full pagination scan." + "PRE": "env contains valid URL and credentials." }, "relations": [], "schema_warnings": [], @@ -15709,10 +13487,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Retrieves all application settings.", "COMPLEXITY": 2, "POST": "Returns masked AppConfig.", - "PRE": "Config manager is available.", - "PURPOSE": "Retrieves all application settings." + "PRE": "Config manager is available." }, "relations": [], "schema_warnings": [], @@ -15729,10 +13507,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Public endpoint returning feature flags for frontend sidebar filtering.", "COMPLEXITY": 1, "POST": "Returns dict with dataset_review and health_monitor booleans.", "PRE": "Config manager is available.", - "PURPOSE": "Public endpoint returning feature flags for frontend sidebar filtering.", "RATIONALE": "Unauthenticated because sidebar filtering must work for all users, not just admins." }, "relations": [], @@ -15750,8 +13528,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Retrieves storage-specific settings." + "BRIEF": "Retrieves storage-specific settings.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -15768,9 +13546,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Updates storage-specific settings.", "COMPLEXITY": 2, - "POST": "Storage settings are updated and saved.", - "PURPOSE": "Updates storage-specific settings." + "POST": "Storage settings are updated and saved." }, "relations": [], "schema_warnings": [], @@ -15787,10 +13565,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Tests the connection to a Superset environment.", "COMPLEXITY": 2, "POST": "Returns success or error status.", - "PRE": "ID is provided.", - "PURPOSE": "Tests the connection to a Superset environment." + "PRE": "ID is provided." }, "relations": [], "schema_warnings": [], @@ -15807,10 +13585,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Retrieves current logging configuration.", "COMPLEXITY": 2, "POST": "Returns logging configuration.", - "PRE": "Config manager is available.", - "PURPOSE": "Retrieves current logging configuration." + "PRE": "Config manager is available." }, "relations": [], "schema_warnings": [], @@ -15827,10 +13605,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Updates logging configuration.", "COMPLEXITY": 2, "POST": "Logging configuration is updated and saved.", - "PRE": "New logging config is provided.", - "PURPOSE": "Updates logging configuration." + "PRE": "New logging config is provided." }, "relations": [], "schema_warnings": [], @@ -15847,8 +13625,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response model for consolidated application settings." + "BRIEF": "Response model for consolidated application settings.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -15865,11 +13643,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Retrieves all settings categories in a single call.", "COMPLEXITY": 4, "DATA_CONTRACT": "Input[ConfigManager] -> Output[ConsolidatedSettingsResponse]", "POST": "Returns consolidated settings, provider metadata, and persisted notification payload in one stable response.", "PRE": "Config manager is available and the caller holds admin settings read permission.", - "PURPOSE": "Retrieves all settings categories in a single call.", "SIDE_EFFECT": "Opens one database session to read LLM providers and config-backed notification payload, then closes it." }, "relations": [ @@ -15924,10 +13702,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Bulk update application settings from the consolidated view.", "COMPLEXITY": 2, "POST": "Settings are updated and saved via ConfigManager.", - "PRE": "User has admin permissions, config is valid.", - "PURPOSE": "Bulk update application settings from the consolidated view." + "PRE": "User has admin permissions, config is valid." }, "relations": [], "schema_warnings": [], @@ -15944,8 +13722,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Lists all validation policies." + "BRIEF": "Lists all validation policies.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -15962,8 +13740,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Creates a new validation policy." + "BRIEF": "Creates a new validation policy.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -15980,8 +13758,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Updates an existing validation policy." + "BRIEF": "Updates an existing validation policy.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -15998,8 +13776,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Deletes a validation policy." + "BRIEF": "Deletes a validation policy.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -16016,8 +13794,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Lists all translation schedules joined with translation job names." + "BRIEF": "Lists all translation schedules joined with translation job names.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -16034,10 +13812,10 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "API endpoints for file storage management (backups and repositories).", "COMPLEXITY": 5, "INVARIANT": "All paths must be validated against path traversal.", - "LAYER": "API", - "PURPOSE": "API endpoints for file storage management (backups and repositories)." + "LAYER": "API" }, "relations": [ { @@ -16067,10 +13845,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "List all files and directories in the storage system.", "COMPLEXITY": 3, "POST": "Returns a list of StoredFile objects.", - "PRE": "None.", - "PURPOSE": "List all files and directories in the storage system." + "PRE": "None." }, "relations": [ { @@ -16094,10 +13872,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Delete a specific file or directory.", "COMPLEXITY": 3, "POST": "Item is removed from storage.", "PRE": "category must be a valid FileCategory.", - "PURPOSE": "Delete a specific file or directory.", "SIDE_EFFECT": "Deletes item from the filesystem." }, "relations": [ @@ -16122,10 +13900,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Retrieve a file for download.", "COMPLEXITY": 3, "POST": "Returns a FileResponse.", - "PRE": "category must be a valid FileCategory.", - "PURPOSE": "Retrieve a file for download." + "PRE": "category must be a valid FileCategory." }, "relations": [ { @@ -16149,10 +13927,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Retrieve a file by validated absolute/relative path under storage root.", "COMPLEXITY": 3, "POST": "Returns a FileResponse for existing files.", - "PRE": "path must resolve under configured storage root.", - "PURPOSE": "Retrieve a file by validated absolute/relative path under storage root." + "PRE": "path must resolve under configured storage root." }, "relations": [ { @@ -16176,9 +13954,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Defines the FastAPI router for task-related endpoints, allowing clients to create, list, and get the status of tasks.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Defines the FastAPI router for task-related endpoints, allowing clients to create, list, and get the status of tasks." + "LAYER": "API" }, "relations": [ { @@ -16214,10 +13992,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resume a task that is awaiting input (e.g., passwords).", "COMPLEXITY": 2, "POST": "Task resumes execution with provided input.", - "PRE": "task must be in AWAITING_INPUT status.", - "PURPOSE": "Resume a task that is awaiting input (e.g., passwords)." + "PRE": "task must be in AWAITING_INPUT status." }, "relations": [ { @@ -16241,10 +14019,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Clear tasks matching the status filter.", "COMPLEXITY": 2, "POST": "Tasks are removed from memory/persistence.", - "PRE": "task_manager is available.", - "PURPOSE": "Clear tasks matching the status filter." + "PRE": "task_manager is available." }, "relations": [ { @@ -16268,11 +14046,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "API routes for LLM-based SQL/dashboard translation management including terminology dictionary CRUD and import.", "COMPLEXITY": 4, "LAYER": "API", "POST": "Translation job, run, dictionary, correction, preview, and schedule CRUD operations are executed.", "PRE": "API server is running, user is authenticated, database is accessible.", - "PURPOSE": "API routes for LLM-based SQL/dashboard translation management including terminology dictionary CRUD and import.", "RATIONALE": "Snapshot isolation — in-progress runs use config snapshot; config edits affect future runs only.", "REJECTED": "Invalidating in-progress runs on config edit would break scheduled run continuity.", "SIDE_EFFECT": "Creates/modifies DB rows; triggers background translation runs; queries Superset API." @@ -16335,9 +14113,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Term correction submission endpoints.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "Term correction submission endpoints." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -16354,10 +14132,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Submit a term correction from a run result review.", "COMPLEXITY": 4, "POST": "Correction applied with conflict detection.", "PRE": "User has translate.dictionary.edit permission.", - "PURPOSE": "Submit a term correction from a run result review.", "SIDE_EFFECT": "Creates/updates DictionaryEntry row; commits." }, "relations": [ @@ -16382,10 +14160,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Submit multiple term corrections atomically.", "COMPLEXITY": "4", "POST": "All corrections applied or none with conflict list.", "PRE": "User has translate.dictionary.edit permission.", - "PURPOSE": "Submit multiple term corrections atomically.", "SIDE_EFFECT": "Creates/updates DictionaryEntry rows; commits once." }, "relations": [ @@ -16410,9 +14188,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Terminology Dictionary CRUD, entries management, and import routes.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Terminology Dictionary CRUD, entries management, and import routes." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -16429,10 +14207,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "List all terminology dictionaries.", "COMPLEXITY": 4, "POST": "Returns list of dictionaries with total count.", - "PRE": "User has translate.dictionary.view permission.", - "PURPOSE": "List all terminology dictionaries." + "PRE": "User has translate.dictionary.view permission." }, "relations": [], "schema_warnings": [], @@ -16449,10 +14227,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get a single terminology dictionary by ID.", "COMPLEXITY": 4, "POST": "Returns the dictionary with entry_count.", - "PRE": "User has translate.dictionary.view permission.", - "PURPOSE": "Get a single terminology dictionary by ID." + "PRE": "User has translate.dictionary.view permission." }, "relations": [], "schema_warnings": [], @@ -16469,10 +14247,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Create a new terminology dictionary.", "COMPLEXITY": 4, "POST": "Returns the created dictionary.", - "PRE": "User has translate.dictionary.create permission.", - "PURPOSE": "Create a new terminology dictionary." + "PRE": "User has translate.dictionary.create permission." }, "relations": [], "schema_warnings": [], @@ -16489,10 +14267,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Update an existing terminology dictionary.", "COMPLEXITY": 4, "POST": "Returns the updated dictionary.", - "PRE": "User has translate.dictionary.edit permission.", - "PURPOSE": "Update an existing terminology dictionary." + "PRE": "User has translate.dictionary.edit permission." }, "relations": [], "schema_warnings": [], @@ -16509,10 +14287,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Delete a terminology dictionary, blocked if attached to active/scheduled jobs.", "COMPLEXITY": 4, "POST": "Dictionary is deleted.", - "PRE": "User has translate.dictionary.delete permission.", - "PURPOSE": "Delete a terminology dictionary, blocked if attached to active/scheduled jobs." + "PRE": "User has translate.dictionary.delete permission." }, "relations": [], "schema_warnings": [], @@ -16529,10 +14307,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "List entries for a dictionary, optionally filtered by language pair.", "COMPLEXITY": 4, "POST": "Returns paginated list of entries with language pair fields.", - "PRE": "User has translate.dictionary.view permission.", - "PURPOSE": "List entries for a dictionary, optionally filtered by language pair." + "PRE": "User has translate.dictionary.view permission." }, "relations": [], "schema_warnings": [], @@ -16549,10 +14327,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Add a new entry to a dictionary.", "COMPLEXITY": 4, "POST": "Entry is created.", - "PRE": "User has translate.dictionary.edit permission.", - "PURPOSE": "Add a new entry to a dictionary." + "PRE": "User has translate.dictionary.edit permission." }, "relations": [], "schema_warnings": [], @@ -16569,10 +14347,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Update an existing dictionary entry.", "COMPLEXITY": 4, "POST": "Entry is updated.", - "PRE": "User has translate.dictionary.edit permission.", - "PURPOSE": "Update an existing dictionary entry." + "PRE": "User has translate.dictionary.edit permission." }, "relations": [], "schema_warnings": [], @@ -16589,10 +14367,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Delete a dictionary entry.", "COMPLEXITY": 4, "POST": "Entry is deleted.", - "PRE": "User has translate.dictionary.edit permission.", - "PURPOSE": "Delete a dictionary entry." + "PRE": "User has translate.dictionary.edit permission." }, "relations": [], "schema_warnings": [], @@ -16609,10 +14387,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Import entries into a terminology dictionary from CSV/TSV content.", "COMPLEXITY": "4", "POST": "Entries are imported per conflict mode.", - "PRE": "User has translate.dictionary.edit permission.", - "PURPOSE": "Import entries into a terminology dictionary from CSV/TSV content." + "PRE": "User has translate.dictionary.edit permission." }, "relations": [], "schema_warnings": [], @@ -16629,9 +14407,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Shared helper functions for translate route handlers.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "Shared helper functions for translate route handlers." + "LAYER": "API" }, "relations": [ { @@ -16655,8 +14433,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Convert TranslationRun ORM to response dict." + "BRIEF": "Convert TranslationRun ORM to response dict.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -16673,8 +14451,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Convert a TerminologyDictionary ORM model to a response dict with computed entry_count." + "BRIEF": "Convert a TerminologyDictionary ORM model to a response dict with computed entry_count.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -16691,8 +14469,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get entry counts for a list of dictionary IDs." + "BRIEF": "Get entry counts for a list of dictionary IDs.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -16709,9 +14487,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Translation Job CRUD and datasource column routes.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Translation Job CRUD and datasource column routes." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -16728,10 +14506,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "List all translation jobs.", "COMPLEXITY": 4, "POST": "Returns list of translation jobs.", - "PRE": "User has translate.job.view permission.", - "PURPOSE": "List all translation jobs." + "PRE": "User has translate.job.view permission." }, "relations": [], "schema_warnings": [], @@ -16748,10 +14526,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get a single translation job by ID.", "COMPLEXITY": 4, "POST": "Returns the translation job.", - "PRE": "User has translate.job.view permission.", - "PURPOSE": "Get a single translation job by ID." + "PRE": "User has translate.job.view permission." }, "relations": [], "schema_warnings": [], @@ -16768,10 +14546,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Create a new translation job.", "COMPLEXITY": 4, "POST": "Returns the created translation job.", "PRE": "User has translate.job.create permission.", - "PURPOSE": "Create a new translation job.", "SIDE_EFFECT": "Validates columns via SupersetClient; caches database_dialect." }, "relations": [], @@ -16789,10 +14567,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Update an existing translation job.", "COMPLEXITY": 4, "POST": "Returns the updated translation job.", "PRE": "User has translate.job.edit permission.", - "PURPOSE": "Update an existing translation job.", "SIDE_EFFECT": "Re-detects database_dialect if datasource changed." }, "relations": [], @@ -16810,10 +14588,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Delete a translation job.", "COMPLEXITY": 4, "POST": "Job is deleted.", - "PRE": "User has translate.job.delete permission.", - "PURPOSE": "Delete a translation job." + "PRE": "User has translate.job.delete permission." }, "relations": [], "schema_warnings": [], @@ -16830,10 +14608,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Duplicate a translation job.", "COMPLEXITY": 4, "POST": "Returns the duplicated job with status DRAFT.", - "PRE": "User has translate.job.create permission.", - "PURPOSE": "Duplicate a translation job." + "PRE": "User has translate.job.create permission." }, "relations": [], "schema_warnings": [], @@ -16850,10 +14628,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get column metadata and database dialect for a Superset datasource.", "COMPLEXITY": "4", "POST": "Returns column list with metadata and database_dialect.", "PRE": "User has translate.job.view permission.", - "PURPOSE": "Get column metadata and database dialect for a Superset datasource.", "RATIONALE": "Dialect detection from Superset connection cached on TranslationJob at save time.", "REJECTED": "Hardcoding dialect list per database — would drift from actual Superset config.", "SIDE_EFFECT": "Queries Superset API for dataset detail and database info." @@ -16873,8 +14651,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Проверяет схему целевой таблицы: какие колонки ожидаются, какие есть, каких не хватает.", "COMPLEXITY": 3, - "PURPOSE": "Проверяет схему целевой таблицы: какие колонки ожидаются, какие есть, каких не хватает.", "RATIONALE": "Позволяет UI показать пользователю подсказку о недостающих колонках" }, "relations": [ @@ -16911,9 +14689,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Translation Metrics endpoints.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "Translation Metrics endpoints." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -16930,10 +14708,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get translation metrics, optionally filtered by job.", "COMPLEXITY": 4, "POST": "Returns metrics data.", - "PRE": "User has translate.metrics.view permission.", - "PURPOSE": "Get translation metrics, optionally filtered by job." + "PRE": "User has translate.metrics.view permission." }, "relations": [], "schema_warnings": [], @@ -16950,10 +14728,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get aggregated metrics for a specific job.", "COMPLEXITY": "4", "POST": "Returns metrics dict.", - "PRE": "User has translate.metrics.view permission.", - "PURPOSE": "Get aggregated metrics for a specific job." + "PRE": "User has translate.metrics.view permission." }, "relations": [], "schema_warnings": [], @@ -16970,9 +14748,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Translation Preview session management routes.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Translation Preview session management routes." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -16989,10 +14767,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Preview a translation before applying it.", "COMPLEXITY": 4, "POST": "Returns a preview session with records and cost estimation.", "PRE": "User has translate.job.execute permission.", - "PURPOSE": "Preview a translation before applying it.", "SIDE_EFFECT": "Fetches sample data from Superset; calls LLM provider; creates DB rows." }, "relations": [], @@ -17010,10 +14788,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Approve, edit, or reject a preview row (optionally per language).", "COMPLEXITY": 4, "POST": "Preview row status is updated.", - "PRE": "User has translate.job.execute permission.", - "PURPOSE": "Approve, edit, or reject a preview row (optionally per language)." + "PRE": "User has translate.job.execute permission." }, "relations": [], "schema_warnings": [], @@ -17030,10 +14808,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Accept a preview session, marking it as the quality gate for full execution.", "COMPLEXITY": 4, "POST": "Preview session is marked as APPLIED; full execution can proceed.", - "PRE": "User has translate.job.execute permission. Job has an ACTIVE preview session.", - "PURPOSE": "Accept a preview session, marking it as the quality gate for full execution." + "PRE": "User has translate.job.execute permission. Job has an ACTIVE preview session." }, "relations": [], "schema_warnings": [], @@ -17050,10 +14828,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Apply a preview session (alias for accept when accepting at session level).", "COMPLEXITY": 4, "POST": "Preview is applied.", - "PRE": "User has translate.job.execute permission.", - "PURPOSE": "Apply a preview session (alias for accept when accepting at session level)." + "PRE": "User has translate.job.execute permission." }, "relations": [], "schema_warnings": [], @@ -17070,10 +14848,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get records for a preview session.", "COMPLEXITY": "4", "POST": "Returns list of preview records.", - "PRE": "User has translate.job.view permission.", - "PURPOSE": "Get records for a preview session." + "PRE": "User has translate.job.view permission." }, "relations": [], "schema_warnings": [], @@ -17090,9 +14868,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "APIRouter instance for translate routes.", "COMPLEXITY": 1, - "LAYER": "API", - "PURPOSE": "APIRouter instance for translate routes." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -17109,38 +14887,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "APIRouter instance for all translate sub-routes." + "BRIEF": "APIRouter instance for all translate sub-routes." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Global'", - "detail": { - "actual_type": "Global", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Global' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Global" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region translate_router [TYPE Global]\n# @BRIEF APIRouter instance for all translate sub-routes.\n\nrouter = APIRouter(prefix=\"/api/translate\", tags=[\"translate\"])\n# #endregion translate_router\n" @@ -17154,9 +14904,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Translation Run listing, detail, and CSV download routes (cross-job).", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Translation Run listing, detail, and CSV download routes (cross-job)." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -17173,10 +14923,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Download a CSV of skipped translation records from a run.", "COMPLEXITY": "4", "POST": "Returns CSV file of skipped records.", - "PRE": "User has translate.job.view permission.", - "PURPOSE": "Download a CSV of skipped translation records from a run." + "PRE": "User has translate.job.view permission." }, "relations": [], "schema_warnings": [], @@ -17193,9 +14943,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Translation Run execution, history, status, records and batches routes.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Translation Run execution, history, status, records and batches routes." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -17212,10 +14962,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Execute a translation job (trigger a run).", "COMPLEXITY": 4, "POST": "Returns the created translation run.", - "PRE": "User has translate.job.execute permission.", - "PURPOSE": "Execute a translation job (trigger a run)." + "PRE": "User has translate.job.execute permission." }, "relations": [], "schema_warnings": [], @@ -17232,10 +14982,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Retry failed batches in a translation run.", "COMPLEXITY": 4, "POST": "Returns the updated translation run.", - "PRE": "User has translate.job.execute permission.", - "PURPOSE": "Retry failed batches in a translation run." + "PRE": "User has translate.job.execute permission." }, "relations": [], "schema_warnings": [], @@ -17252,10 +15002,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Retry the SQL insert phase for a completed run.", "COMPLEXITY": 4, "POST": "Returns the updated run.", - "PRE": "User has translate.job.execute permission.", - "PURPOSE": "Retry the SQL insert phase for a completed run." + "PRE": "User has translate.job.execute permission." }, "relations": [], "schema_warnings": [], @@ -17272,10 +15022,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Cancel a running translation.", "COMPLEXITY": 4, "POST": "Run is cancelled.", - "PRE": "User has translate.job.execute permission.", - "PURPOSE": "Cancel a running translation." + "PRE": "User has translate.job.execute permission." }, "relations": [], "schema_warnings": [], @@ -17292,10 +15042,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get run history for a translation job.", "COMPLEXITY": 4, "POST": "Returns list of runs.", - "PRE": "User has translate.history.view permission.", - "PURPOSE": "Get run history for a translation job." + "PRE": "User has translate.history.view permission." }, "relations": [], "schema_warnings": [], @@ -17312,10 +15062,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get status and statistics for a translation run.", "COMPLEXITY": 4, "POST": "Returns run details with statistics.", - "PRE": "User has translate.history.view permission.", - "PURPOSE": "Get status and statistics for a translation run." + "PRE": "User has translate.history.view permission." }, "relations": [], "schema_warnings": [], @@ -17332,10 +15082,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get paginated records for a translation run.", "COMPLEXITY": 4, "POST": "Returns paginated records.", - "PRE": "User has translate.history.view permission.", - "PURPOSE": "Get paginated records for a translation run." + "PRE": "User has translate.history.view permission." }, "relations": [], "schema_warnings": [], @@ -17352,10 +15102,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get batches for a translation run.", "COMPLEXITY": 4, "POST": "Returns list of batches.", - "PRE": "User has translate.job.view permission.", - "PURPOSE": "Get batches for a translation run." + "PRE": "User has translate.job.view permission." }, "relations": [], "schema_warnings": [], @@ -17372,10 +15122,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Manually override the detected source language for a specific translation language entry.", "COMPLEXITY": 4, "POST": "TranslationLanguage.source_language_detected is updated; language_overridden is set to True.", "PRE": "User has translate.job.execute permission. Run, record, and language entry exist.", - "PURPOSE": "Manually override the detected source language for a specific translation language entry.", "SIDE_EFFECT": "DB write." }, "relations": [], @@ -17393,10 +15143,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Apply an inline correction to a translated value on a completed run result.", "COMPLEXITY": 4, "POST": "TranslationLanguage.final_value and user_edit are updated. Optional dictionary submission.", - "PRE": "User has translate.job.execute permission. Run, record, and language entry exist.", - "PURPOSE": "Apply an inline correction to a translated value on a completed run result." + "PRE": "User has translate.job.execute permission. Run, record, and language entry exist." }, "relations": [], "schema_warnings": [], @@ -17413,10 +15163,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Perform bulk find-and-replace on translated values within a run.", "COMPLEXITY": "4", "POST": "If preview=false, matching translations are updated. Optional dictionary submission.", - "PRE": "User has translate.job.execute permission. Run exists.", - "PURPOSE": "Perform bulk find-and-replace on translated values within a run." + "PRE": "User has translate.job.execute permission. Run exists." }, "relations": [], "schema_warnings": [], @@ -17433,9 +15183,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Translation Schedule management routes.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Translation Schedule management routes." + "LAYER": "API" }, "relations": [], "schema_warnings": [], @@ -17452,10 +15202,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Get the schedule for a translation job.", "COMPLEXITY": 4, "POST": "Returns the schedule configuration.", - "PRE": "User has translate.schedule.view permission.", - "PURPOSE": "Get the schedule for a translation job." + "PRE": "User has translate.schedule.view permission." }, "relations": [], "schema_warnings": [], @@ -17472,10 +15222,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Set or update the schedule for a translation job.", "COMPLEXITY": 4, "POST": "Schedule is created or updated.", - "PRE": "User has translate.schedule.manage permission.", - "PURPOSE": "Set or update the schedule for a translation job." + "PRE": "User has translate.schedule.manage permission." }, "relations": [], "schema_warnings": [], @@ -17492,10 +15242,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Enable a schedule for a translation job.", "COMPLEXITY": 4, "POST": "Schedule is enabled.", - "PRE": "User has translate.schedule.manage permission.", - "PURPOSE": "Enable a schedule for a translation job." + "PRE": "User has translate.schedule.manage permission." }, "relations": [], "schema_warnings": [], @@ -17512,10 +15262,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Disable a schedule for a translation job.", "COMPLEXITY": 4, "POST": "Schedule is disabled.", - "PRE": "User has translate.schedule.manage permission.", - "PURPOSE": "Disable a schedule for a translation job." + "PRE": "User has translate.schedule.manage permission." }, "relations": [], "schema_warnings": [], @@ -17532,10 +15282,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Delete the schedule for a translation job.", "COMPLEXITY": 4, "POST": "Schedule is removed.", - "PRE": "User has translate.schedule.manage permission.", - "PURPOSE": "Delete the schedule for a translation job." + "PRE": "User has translate.schedule.manage permission." }, "relations": [], "schema_warnings": [], @@ -17552,10 +15302,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Preview next N executions for a job's schedule.", "COMPLEXITY": "4", "POST": "Returns next execution times.", - "PRE": "User has translate.schedule.view permission.", - "PURPOSE": "Preview next N executions for a job's schedule." + "PRE": "User has translate.schedule.view permission." }, "relations": [], "schema_warnings": [], @@ -17572,9 +15322,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "API routes for validation task management and run history.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "API routes for validation task management and run history." + "LAYER": "API" }, "relations": [ { @@ -17777,10 +15527,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Unit tests for validation task CRUD and run history API endpoints.", "COMPLEXITY": 3, "INVARIANT": "provider_id must reference a multimodal LLM provider for creation", "LAYER": "API", - "PURPOSE": "Unit tests for validation task CRUD and run history API endpoints.", "TEST_CONTRACT": "[ValidationTaskCreate|Update|RunRequest] -> [ValidationTaskResponse|RunResponse|TriggerRunResponse]", "TEST_EDGE": "delete_task_with_runs -> 204 with delete_runs=true flag", "TEST_SCENARIO": "delete_run -> 204 on success; 404 for nonexistent" @@ -17799,71 +15549,7 @@ "target_ref": "[EXT:FastAPI:TestClient]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO 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 ValidationApiTests [C:3] [TYPE Module] [SEMANTICS validation, api, tests, pagination, crud]\n# @BRIEF Unit tests for validation task CRUD and run history API endpoints.\n# @LAYER: API\n# @RELATION BINDS_TO -> [ValidationRoutes]\n# @RELATION DEPENDS_ON -> [EXT:FastAPI:TestClient]\n# @TEST_CONTRACT: [ValidationTaskCreate|Update|RunRequest] -> [ValidationTaskResponse|RunResponse|TriggerRunResponse]\n# @TEST_SCENARIO: list_tasks -> 200 with paginated tasks; filter by is_active/environment_id\n# @TEST_SCENARIO: create_task -> 201 with valid payload; 422 with invalid provider/environment\n# @TEST_SCENARIO: get_task -> 200 with task+recent_runs; 404 for nonexistent\n# @TEST_SCENARIO: update_task -> 200 with updated fields; 404 for nonexistent\n# @TEST_SCENARIO: delete_task -> 204 on success; 404 for nonexistent\n# @TEST_SCENARIO: trigger_run -> 200 with spawned_task_id; 422 for invalid task\n# @TEST_SCENARIO: list_runs -> 200 with 6 filters + pagination\n# @TEST_SCENARIO: get_run_detail -> 200 with issues/raw_response; 404 for nonexistent\n# @TEST_SCENARIO: delete_run -> 204 on success; 404 for nonexistent\n# @TEST_EDGE: missing_field -> 422 when required field omitted from create payload\n# @TEST_EDGE: invalid_type -> 422 when provider_id is not multimodal\n# @TEST_EDGE: external_fail -> 404/422 when task/run does not exist\n# @TEST_EDGE: delete_task_with_runs -> 204 with delete_runs=true flag\n# @INVARIANT: Every endpoint requires authentication via has_permission\n# @INVARIANT: All list endpoints support pagination (page/page_size) with defaults\n# @INVARIANT: provider_id must reference a multimodal LLM provider for creation\n\n# Set required env vars before ANY app imports — crash-early guard for AuthConfig()\nimport os\nos.environ.setdefault(\"SECRET_KEY\", \"test-secret-key-for-testing\")\nos.environ.setdefault(\"AUTH_DATABASE_URL\", \"sqlite:///:memory:test_auth\")\nos.environ.setdefault(\"DATABASE_URL\", \"sqlite:///:memory:test_main\")\nos.environ.setdefault(\"DEV_MODE\", \"true\")\n\nfrom datetime import datetime, timezone\n\nimport pytest\nfrom unittest.mock import AsyncMock, MagicMock\n\nfrom fastapi.testclient import TestClient\n\nfrom src.app import app\nfrom src.dependencies import (\n get_current_user,\n get_config_manager,\n get_task_manager,\n)\nfrom src.api.routes.validation import _get_task_service, _get_run_service\nfrom src.schemas.validation import (\n ValidationTaskListResponse,\n ValidationTaskResponse,\n ValidationRunListResponse,\n ValidationRunDetailResponse,\n TriggerRunResponse,\n)\nfrom src.models.auth import User\n\n# ── Shared mocks ───────────────────────────────────────────────────────\n\nmock_user = MagicMock(spec=User)\nmock_user.username = \"testuser\"\nmock_user.roles = []\nadmin_role = MagicMock()\nadmin_role.name = \"Admin\"\nadmin_role.permissions = []\nmock_user.roles.append(admin_role)\n\n\ndef _make_now():\n \"\"\"Return a timezone-aware UTC datetime for Pydantic v2.\"\"\"\n return datetime.now(timezone.utc)\n\n\n@pytest.fixture(autouse=True)\ndef mock_all_deps():\n \"\"\"Override service-level FastAPI dependencies with MagicMock stubs.\n\n Permission checking (has_permission) is NOT overridden — mock_user has\n Admin role which passes all permission gates implicitly.\n Fixture resets mock_user.roles before each test to prevent cross-test pollution.\n \"\"\"\n # Reset user state — Admin role passes all permission gates\n mock_user.roles = [admin_role]\n\n mock_task_service = MagicMock()\n mock_run_service = MagicMock()\n mock_task_manager = MagicMock()\n\n app.dependency_overrides[_get_task_service] = lambda: mock_task_service\n app.dependency_overrides[_get_run_service] = lambda: mock_run_service\n app.dependency_overrides[get_config_manager] = lambda: MagicMock()\n app.dependency_overrides[get_task_manager] = lambda: mock_task_manager\n app.dependency_overrides[get_current_user] = lambda: mock_user\n\n yield {\n \"task_service\": mock_task_service,\n \"run_service\": mock_run_service,\n \"task_manager\": mock_task_manager,\n }\n app.dependency_overrides.clear()\n\n\nclient = TestClient(app)\n\n\n# ── Fixtures ────────────────────────────────────────────────────────────\n\ndef _make_task_response(**overrides):\n \"\"\"Build a ValidationTaskResponse for mock returns.\"\"\"\n return ValidationTaskResponse(\n id=overrides.get(\"id\", \"task-1\"),\n name=overrides.get(\"name\", \"Test Task\"),\n environment_id=overrides.get(\"environment_id\", \"env-1\"),\n is_active=overrides.get(\"is_active\", True),\n dashboard_ids=overrides.get(\"dashboard_ids\", [\"dash-1\"]),\n provider_id=overrides.get(\"provider_id\", \"provider-1\"),\n schedule_days=None,\n window_start=None,\n window_end=None,\n notify_owners=True,\n custom_channels=None,\n alert_condition=\"FAIL_ONLY\",\n created_at=overrides.get(\"created_at\", _make_now()),\n updated_at=None,\n last_run_status=None,\n last_run_at=None,\n )\n\n\ndef _make_run_response(**overrides):\n \"\"\"Build a dict representation of a ValidationRunResponse.\"\"\"\n return {\n \"id\": overrides.get(\"id\", \"run-1\"),\n \"task_id\": overrides.get(\"task_id\", \"task-1\"),\n \"dashboard_id\": overrides.get(\"dashboard_id\", \"dash-1\"),\n \"environment_id\": overrides.get(\"environment_id\", \"env-1\"),\n \"status\": overrides.get(\"status\", \"PASS\"),\n \"summary\": overrides.get(\"summary\", \"\"),\n \"timestamp\": overrides.get(\"timestamp\", _make_now()),\n \"screenshot_path\": None,\n \"task_name\": overrides.get(\"task_name\", \"Test Task\"),\n }\n\n\n# ── Task CRUD Tests ────────────────────────────────────────────────────\n\n# #region test_list_tasks_success [C:2] [TYPE Function]\n# @BRIEF GET /validation/tasks returns paginated task list with filters.\ndef test_list_tasks_success(mock_all_deps):\n task = _make_task_response()\n mock_all_deps[\"task_service\"].list_tasks.return_value = (1, [task])\n\n response = client.get(\"/api/validation/tasks\")\n assert response.status_code == 200\n data = response.json()\n assert data[\"items\"][0][\"name\"] == \"Test Task\"\n assert data[\"total\"] == 1\n assert data[\"page\"] == 1\n assert data[\"page_size\"] == 20\n ValidationTaskListResponse(**data)\n\n # environment_id filter\n response = client.get(\"/api/validation/tasks?environment_id=env-1\")\n assert response.status_code == 200\n mock_all_deps[\"task_service\"].list_tasks.assert_called_with(\n is_active=None, environment_id=\"env-1\", page=1, page_size=20\n )\n# #endregion test_list_tasks_success\n\n\n# #region test_list_tasks_pagination [C:2] [TYPE Function]\n# @BRIEF Pagination query params are validated: page >= 1, page_size 1-100.\ndef test_list_tasks_pagination(mock_all_deps):\n response = client.get(\"/api/validation/tasks?page=0\")\n assert response.status_code == 422\n\n response = client.get(\"/api/validation/tasks?page_size=101\")\n assert response.status_code == 422\n\n response = client.get(\"/api/validation/tasks?page_size=0\")\n assert response.status_code == 422\n# #endregion test_list_tasks_pagination\n\n\n# #region test_list_tasks_service_error [C:2] [TYPE Function]\n# @BRIEF Service ValueError becomes 400 on list_tasks.\ndef test_list_tasks_service_error(mock_all_deps):\n mock_all_deps[\"task_service\"].list_tasks.side_effect = ValueError(\"Bad filter\")\n response = client.get(\"/api/validation/tasks?environment_id=nonexistent\")\n assert response.status_code == 400\n assert \"Bad filter\" in response.json()[\"detail\"]\n# #endregion test_list_tasks_service_error\n\n\n# #region test_create_task_success [C:2] [TYPE Function]\n# @BRIEF POST /validation/tasks with valid payload returns 201.\ndef test_create_task_success(mock_all_deps):\n mock_all_deps[\"task_service\"].create_task.return_value = _make_task_response()\n\n payload = {\n \"name\": \"My Validation Task\",\n \"environment_id\": \"env-1\",\n \"dashboard_ids\": [\"dash-1\"],\n \"provider_id\": \"provider-1\",\n \"notify_owners\": True,\n \"alert_condition\": \"FAIL_ONLY\",\n }\n response = client.post(\"/api/validation/tasks\", json=payload)\n assert response.status_code == 201\n data = response.json()\n assert data[\"name\"] == \"Test Task\"\n assert data[\"id\"] == \"task-1\"\n ValidationTaskResponse(**data)\n mock_all_deps[\"task_service\"].create_task.assert_called_once()\n# #endregion test_create_task_success\n\n\n# #region test_create_task_missing_fields [C:2] [TYPE Function]\n# @BRIEF POST with missing required fields returns 422.\ndef test_create_task_missing_fields(mock_all_deps):\n # Empty payload\n response = client.post(\"/api/validation/tasks\", json={})\n assert response.status_code == 422\n errors = response.json()\n assert \"detail\" in errors\n\n # Missing provider_id\n response = client.post(\"/api/validation/tasks\", json={\n \"name\": \"Test\", \"environment_id\": \"env-1\", \"dashboard_ids\": [\"dash-1\"],\n })\n assert response.status_code == 422\n\n # Missing dashboard_ids\n response = client.post(\"/api/validation/tasks\", json={\n \"name\": \"Test\", \"environment_id\": \"env-1\", \"provider_id\": \"provider-1\",\n })\n assert response.status_code == 422\n# #endregion test_create_task_missing_fields\n\n\n# #region test_create_task_invalid_provider [C:2] [TYPE Function]\n# @BRIEF POST with non-multimodal provider returns 422.\ndef test_create_task_invalid_provider(mock_all_deps):\n mock_all_deps[\"task_service\"].create_task.side_effect = ValueError(\n \"LLM provider 'GPT-3.5' is not multimodal\"\n )\n payload = {\n \"name\": \"Test\", \"environment_id\": \"env-1\",\n \"dashboard_ids\": [\"dash-1\"], \"provider_id\": \"provider-2\",\n }\n response = client.post(\"/api/validation/tasks\", json=payload)\n assert response.status_code == 422\n assert \"not multimodal\" in response.json()[\"detail\"]\n# #endregion test_create_task_invalid_provider\n\n\n# #region test_get_task_success [C:2] [TYPE Function]\n# @BRIEF GET /validation/tasks/{id} returns task with recent_runs.\ndef test_get_task_success(mock_all_deps):\n mock_all_deps[\"task_service\"].get_task.return_value = _make_task_response()\n mock_all_deps[\"run_service\"].list_runs.return_value = (0, [])\n\n response = client.get(\"/api/validation/tasks/task-1\")\n assert response.status_code == 200\n data = response.json()\n assert \"task\" in data\n assert \"recent_runs\" in data\n assert data[\"task\"][\"name\"] == \"Test Task\"\n mock_all_deps[\"task_service\"].get_task.assert_called_with(\"task-1\")\n# #endregion test_get_task_success\n\n\n# #region test_get_task_not_found [C:2] [TYPE Function]\n# @BRIEF GET for nonexistent task returns 404.\ndef test_get_task_not_found(mock_all_deps):\n mock_all_deps[\"task_service\"].get_task.side_effect = ValueError(\"not found\")\n response = client.get(\"/api/validation/tasks/nonexistent\")\n assert response.status_code == 404\n# #endregion test_get_task_not_found\n\n\n# #region test_update_task_success [C:2] [TYPE Function]\n# @BRIEF PUT /validation/tasks/{id} updates task and returns updated object.\ndef test_update_task_success(mock_all_deps):\n updated = _make_task_response(name=\"Updated Name\", is_active=False)\n mock_all_deps[\"task_service\"].update_task.return_value = updated\n\n payload = {\"name\": \"Updated Name\", \"is_active\": False}\n response = client.put(\"/api/validation/tasks/task-1\", json=payload)\n assert response.status_code == 200\n data = response.json()\n assert data[\"name\"] == \"Updated Name\"\n assert data[\"is_active\"] is False\n ValidationTaskResponse(**data)\n mock_all_deps[\"task_service\"].update_task.assert_called_once()\n# #endregion test_update_task_success\n\n\n# #region test_update_task_not_found [C:2] [TYPE Function]\n# @BRIEF PUT for nonexistent task returns 404.\ndef test_update_task_not_found(mock_all_deps):\n mock_all_deps[\"task_service\"].update_task.side_effect = ValueError(\"not found\")\n payload = {\"name\": \"Nope\"}\n response = client.put(\"/api/validation/tasks/nonexistent\", json=payload)\n assert response.status_code == 404\n# #endregion test_update_task_not_found\n\n\n# #region test_delete_task_success [C:2] [TYPE Function]\n# @BRIEF DELETE /validation/tasks/{id} returns 204.\ndef test_delete_task_success(mock_all_deps):\n mock_all_deps[\"task_service\"].delete_task.return_value = None\n response = client.delete(\"/api/validation/tasks/task-1\")\n assert response.status_code == 204\n mock_all_deps[\"task_service\"].delete_task.assert_called_with(\"task-1\", delete_runs=False)\n# #endregion test_delete_task_success\n\n\n# #region test_delete_task_not_found [C:2] [TYPE Function]\n# @BRIEF DELETE for nonexistent task returns 404.\ndef test_delete_task_not_found(mock_all_deps):\n mock_all_deps[\"task_service\"].delete_task.side_effect = ValueError(\"not found\")\n response = client.delete(\"/api/validation/tasks/nonexistent\")\n assert response.status_code == 404\n# #endregion test_delete_task_not_found\n\n\n# #region test_delete_task_with_runs_flag [C:2] [TYPE Function]\n# @BRIEF DELETE with delete_runs=true passes query param to service.\ndef test_delete_task_with_runs_flag(mock_all_deps):\n mock_all_deps[\"task_service\"].delete_task.return_value = None\n response = client.delete(\"/api/validation/tasks/task-1?delete_runs=true\")\n assert response.status_code == 204\n mock_all_deps[\"task_service\"].delete_task.assert_called_with(\"task-1\", delete_runs=True)\n# #endregion test_delete_task_with_runs_flag\n\n\n# #region test_trigger_run_success [C:2] [TYPE Function]\n# @BRIEF POST /validation/tasks/{id}/run spawns a validation task.\ndef test_trigger_run_success(mock_all_deps):\n mock_all_deps[\"task_service\"].trigger_run = AsyncMock(return_value=\"spawned-1\")\n mock_all_deps[\"task_manager\"].create_task = AsyncMock()\n\n response = client.post(\"/api/validation/tasks/task-1/run\")\n assert response.status_code == 200\n data = response.json()\n assert data[\"task_id\"] == \"task-1\"\n assert data[\"spawned_task_id\"] == \"spawned-1\"\n assert data[\"status\"] == \"PENDING\"\n TriggerRunResponse(**data)\n# #endregion test_trigger_run_success\n\n\n# #region test_trigger_run_not_found [C:2] [TYPE Function]\n# @BRIEF POST for nonexistent task returns 422.\ndef test_trigger_run_not_found(mock_all_deps):\n mock_all_deps[\"task_service\"].trigger_run = AsyncMock(\n side_effect=ValueError(\"Validation task 'nonexistent' not found\")\n )\n response = client.post(\"/api/validation/tasks/nonexistent/run\")\n assert response.status_code == 422\n assert \"not found\" in response.json()[\"detail\"]\n# #endregion test_trigger_run_not_found\n\n\n# #region test_trigger_run_no_dashboards [C:2] [TYPE Function]\n# @BRIEF Trigger fails with 422 when task has no dashboard IDs.\ndef test_trigger_run_no_dashboards(mock_all_deps):\n mock_all_deps[\"task_service\"].trigger_run = AsyncMock(\n side_effect=ValueError(\"has no dashboard IDs configured\")\n )\n response = client.post(\"/api/validation/tasks/task-1/run\")\n assert response.status_code == 422\n assert \"no dashboard IDs\" in response.json()[\"detail\"]\n# #endregion test_trigger_run_no_dashboards\n\n\n# ── Run History Tests ──────────────────────────────────────────────────\n\n# #region test_list_runs_success [C:2] [TYPE Function]\n# @BRIEF GET /validation/runs returns paginated run list.\ndef test_list_runs_success(mock_all_deps):\n run = _make_run_response()\n mock_all_deps[\"run_service\"].list_runs.return_value = (1, [run])\n\n response = client.get(\"/api/validation/runs\")\n assert response.status_code == 200\n data = response.json()\n assert data[\"items\"][0][\"id\"] == \"run-1\"\n assert data[\"total\"] == 1\n ValidationRunListResponse(**data)\n# #endregion test_list_runs_success\n\n\n# #region test_list_runs_filters [C:2] [TYPE Function]\n# @BRIEF All 6 filter query params are accepted and forwarded to service.\ndef test_list_runs_filters(mock_all_deps):\n mock_all_deps[\"run_service\"].list_runs.return_value = (0, [])\n\n for query in [\n \"?task_id=task-1\",\n \"?dashboard_id=dash-1\",\n \"?environment_id=env-1\",\n \"?status=PASS\",\n \"?date_from=2026-01-01\",\n \"?date_to=2026-12-31\",\n \"?status=PASS&dashboard_id=dash-1&date_from=2026-01-01\",\n ]:\n response = client.get(f\"/api/validation/runs{query}\")\n assert response.status_code == 200, f\"Filter query failed: {query}\"\n# #endregion test_list_runs_filters\n\n\n# #region test_list_runs_pagination [C:2] [TYPE Function]\n# @BRIEF Pagination boundary checks on runs list.\ndef test_list_runs_pagination(mock_all_deps):\n response = client.get(\"/api/validation/runs?page=0\")\n assert response.status_code == 422\n\n response = client.get(\"/api/validation/runs?page_size=101\")\n assert response.status_code == 422\n# #endregion test_list_runs_pagination\n\n\n# #region test_list_runs_invalid_status [C:2] [TYPE Function]\n# @BRIEF Status is a free string; any value passes through to service.\ndef test_list_runs_invalid_status(mock_all_deps):\n mock_all_deps[\"run_service\"].list_runs.return_value = (0, [])\n response = client.get(\"/api/validation/runs?status=INVALID_STATUS_XYZ\")\n assert response.status_code == 200\n call_kwargs = mock_all_deps[\"run_service\"].list_runs.call_args[1]\n assert call_kwargs.get(\"status\") == \"INVALID_STATUS_XYZ\"\n# #endregion test_list_runs_invalid_status\n\n\n# #region test_get_run_detail_success [C:2] [TYPE Function]\n# @BRIEF GET /validation/runs/{id} returns full detail with issues and raw_response.\ndef test_get_run_detail_success(mock_all_deps):\n mock_all_deps[\"run_service\"].get_run_detail.return_value = ValidationRunDetailResponse(\n id=\"run-1\",\n task_id=\"task-1\",\n dashboard_id=\"dash-1\",\n environment_id=\"env-1\",\n status=\"FAIL\",\n summary=\"Charts failed to render\",\n timestamp=_make_now(),\n screenshot_path=\"/tmp/screenshots/run-1.png\",\n issues=[{\"severity\": \"HIGH\", \"message\": \"Chart timeout\"}],\n raw_response='{\"status\": \"error\"}',\n task_name=\"Test Task\",\n )\n\n response = client.get(\"/api/validation/runs/run-1\")\n assert response.status_code == 200\n data = response.json()\n assert data[\"status\"] == \"FAIL\"\n assert len(data[\"issues\"]) == 1\n assert data[\"raw_response\"] is not None\n ValidationRunDetailResponse(**data)\n# #endregion test_get_run_detail_success\n\n\n# #region test_get_run_detail_not_found [C:2] [TYPE Function]\n# @BRIEF GET for nonexistent run returns 404.\ndef test_get_run_detail_not_found(mock_all_deps):\n mock_all_deps[\"run_service\"].get_run_detail.side_effect = ValueError(\"not found\")\n response = client.get(\"/api/validation/runs/nonexistent\")\n assert response.status_code == 404\n# #endregion test_get_run_detail_not_found\n\n\n# #region test_delete_run_success [C:2] [TYPE Function]\n# @BRIEF DELETE /validation/runs/{id} returns 204.\ndef test_delete_run_success(mock_all_deps):\n mock_all_deps[\"run_service\"].delete_run.return_value = True\n response = client.delete(\"/api/validation/runs/run-1\")\n assert response.status_code == 204\n mock_all_deps[\"run_service\"].delete_run.assert_called_with(\"run-1\")\n# #endregion test_delete_run_success\n\n\n# #region test_delete_run_not_found [C:2] [TYPE Function]\n# @BRIEF DELETE for nonexistent run returns 404.\ndef test_delete_run_not_found(mock_all_deps):\n mock_all_deps[\"run_service\"].delete_run.return_value = False\n response = client.delete(\"/api/validation/runs/nonexistent\")\n assert response.status_code == 404\n# #endregion test_delete_run_not_found\n\n\n# ── Auth / Permission Tests ────────────────────────────────────────────\n\n# #region test_endpoints_require_authentication [C:2] [TYPE Function]\n# @BRIEF Without current_user dependency, all 9 endpoints return 401.\ndef test_endpoints_require_authentication(mock_all_deps):\n app.dependency_overrides.pop(get_current_user, None)\n endpoints = [\n (\"GET\", \"/api/validation/tasks\"),\n (\"POST\", \"/api/validation/tasks\"),\n (\"GET\", \"/api/validation/tasks/task-1\"),\n (\"PUT\", \"/api/validation/tasks/task-1\"),\n (\"DELETE\", \"/api/validation/tasks/task-1\"),\n (\"POST\", \"/api/validation/tasks/task-1/run\"),\n (\"GET\", \"/api/validation/runs\"),\n (\"GET\", \"/api/validation/runs/run-1\"),\n (\"DELETE\", \"/api/validation/runs/run-1\"),\n ]\n for method, path in endpoints:\n response = client.request(method, path)\n assert response.status_code == 401, f\"{method} {path} expected 401 got {response.status_code}\"\n# #endregion test_endpoints_require_authentication\n\n\n# #region test_permission_denied_non_admin [C:2] [TYPE Function]\n# @BRIEF A non-admin user without validation.* permissions receives 403.\ndef test_permission_denied_non_admin(mock_all_deps):\n \"\"\"Remove Admin role so has_permission raises 403.\"\"\"\n mock_user.roles = [] # No Admin, no permissions\n response = client.get(\"/api/validation/tasks\")\n assert response.status_code == 403\n# #endregion test_permission_denied_non_admin\n\n\n# #region test_permission_denied_all_actions [C:2] [TYPE Function]\n# @BRIEF Each action (VIEW, CREATE, EDIT, DELETE, EXECUTE) denied for non-admin.\ndef test_permission_denied_all_actions(mock_all_deps):\n mock_user.roles = []\n action_endpoints = [\n (\"GET\", \"/api/validation/tasks\"),\n (\"POST\", \"/api/validation/tasks\"),\n (\"GET\", \"/api/validation/tasks/task-1\"),\n (\"PUT\", \"/api/validation/tasks/task-1\"),\n (\"DELETE\", \"/api/validation/tasks/task-1\"),\n (\"POST\", \"/api/validation/tasks/task-1/run\"),\n (\"GET\", \"/api/validation/runs\"),\n (\"GET\", \"/api/validation/runs/run-1\"),\n (\"DELETE\", \"/api/validation/runs/run-1\"),\n ]\n for method, path in action_endpoints:\n response = client.request(method, path)\n assert response.status_code == 403, f\"{method} {path} expected 403 got {response.status_code}\"\n# #endregion test_permission_denied_all_actions\n\n\n# #region test_delete_task_runs_default_false [C:2] [TYPE Function]\n# @BRIEF delete_runs query param defaults to False.\ndef test_delete_task_runs_default_false(mock_all_deps):\n mock_all_deps[\"task_service\"].delete_task.return_value = None\n response = client.delete(\"/api/validation/tasks/task-1\")\n assert response.status_code == 204\n mock_all_deps[\"task_service\"].delete_task.assert_called_with(\"task-1\", delete_runs=False)\n# #endregion test_delete_task_runs_default_false\n\n# #endregion ValidationApiTests\n" @@ -17877,8 +15563,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "GET /validation/tasks returns paginated task list with filters." + "BRIEF": "GET /validation/tasks returns paginated task list with filters.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -17895,8 +15581,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Pagination query params are validated: page >= 1, page_size 1-100." + "BRIEF": "Pagination query params are validated: page >= 1, page_size 1-100.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -17913,8 +15599,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Service ValueError becomes 400 on list_tasks." + "BRIEF": "Service ValueError becomes 400 on list_tasks.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -17931,8 +15617,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "POST /validation/tasks with valid payload returns 201." + "BRIEF": "POST /validation/tasks with valid payload returns 201.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -17949,8 +15635,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "POST with missing required fields returns 422." + "BRIEF": "POST with missing required fields returns 422.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -17967,8 +15653,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "POST with non-multimodal provider returns 422." + "BRIEF": "POST with non-multimodal provider returns 422.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -17985,8 +15671,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "GET /validation/tasks/{id} returns task with recent_runs." + "BRIEF": "GET /validation/tasks/{id} returns task with recent_runs.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18003,8 +15689,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "GET for nonexistent task returns 404." + "BRIEF": "GET for nonexistent task returns 404.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18021,8 +15707,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "PUT /validation/tasks/{id} updates task and returns updated object." + "BRIEF": "PUT /validation/tasks/{id} updates task and returns updated object.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18039,8 +15725,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "PUT for nonexistent task returns 404." + "BRIEF": "PUT for nonexistent task returns 404.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18057,8 +15743,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "DELETE /validation/tasks/{id} returns 204." + "BRIEF": "DELETE /validation/tasks/{id} returns 204.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18075,8 +15761,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "DELETE for nonexistent task returns 404." + "BRIEF": "DELETE for nonexistent task returns 404.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18093,8 +15779,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "DELETE with delete_runs=true passes query param to service." + "BRIEF": "DELETE with delete_runs=true passes query param to service.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18111,8 +15797,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "POST /validation/tasks/{id}/run spawns a validation task." + "BRIEF": "POST /validation/tasks/{id}/run spawns a validation task.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18129,8 +15815,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "POST for nonexistent task returns 422." + "BRIEF": "POST for nonexistent task returns 422.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18147,8 +15833,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Trigger fails with 422 when task has no dashboard IDs." + "BRIEF": "Trigger fails with 422 when task has no dashboard IDs.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18165,8 +15851,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "GET /validation/runs returns paginated run list." + "BRIEF": "GET /validation/runs returns paginated run list.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18183,8 +15869,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "All 6 filter query params are accepted and forwarded to service." + "BRIEF": "All 6 filter query params are accepted and forwarded to service.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18201,8 +15887,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Pagination boundary checks on runs list." + "BRIEF": "Pagination boundary checks on runs list.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18219,8 +15905,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Status is a free string; any value passes through to service." + "BRIEF": "Status is a free string; any value passes through to service.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18237,8 +15923,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "GET /validation/runs/{id} returns full detail with issues and raw_response." + "BRIEF": "GET /validation/runs/{id} returns full detail with issues and raw_response.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18255,8 +15941,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "GET for nonexistent run returns 404." + "BRIEF": "GET for nonexistent run returns 404.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18273,8 +15959,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "DELETE /validation/runs/{id} returns 204." + "BRIEF": "DELETE /validation/runs/{id} returns 204.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18291,8 +15977,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "DELETE for nonexistent run returns 404." + "BRIEF": "DELETE for nonexistent run returns 404.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18309,8 +15995,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Without current_user dependency, all 9 endpoints return 401." + "BRIEF": "Without current_user dependency, all 9 endpoints return 401.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18327,8 +16013,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "A non-admin user without validation.* permissions receives 403." + "BRIEF": "A non-admin user without validation.* permissions receives 403.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18345,8 +16031,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Each action (VIEW, CREATE, EDIT, DELETE, EXECUTE) denied for non-admin." + "BRIEF": "Each action (VIEW, CREATE, EDIT, DELETE, EXECUTE) denied for non-admin.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18363,8 +16049,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "delete_runs query param defaults to False." + "BRIEF": "delete_runs query param defaults to False.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -18381,13 +16067,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "The main entry point for the FastAPI application.", "COMPLEXITY": 5, "DATA_CONTRACT": "[HTTP Request | WS Message] -> [HTTP Response | JSON Log Stream]", "INVARIANT": "All WebSocket connections must be properly cleaned up on disconnect.", "LAYER": "API", "POST": "FastAPI app instance is created, middleware configured, and routes registered.", "PRE": "Python environment and dependencies installed; configuration database available.", - "PURPOSE": "The main entry point for the FastAPI application.", "RATIONALE": "Duplicate @RELATION and @INVARIANT lines removed from header. Import sorting unified via ruff isort (I) rule across src/ — 139 fixes applied.", "SIDE_EFFECT": "Starts background scheduler and binds network ports for HTTP/WS traffic." }, @@ -18413,8 +16099,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Canonical FastAPI application instance for route, middleware, and websocket registration." + "BRIEF": "Canonical FastAPI application instance for route, middleware, and websocket registration.", + "COMPLEXITY": 3 }, "relations": [ { @@ -18430,70 +16116,7 @@ "target_ref": "[API_Routes]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Global'", - "detail": { - "actual_type": "Global", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Global' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Global" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Global'", - "detail": { - "actual_type": "Global", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Global' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Global" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Global' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Global" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region FastAPI_App [C:3] [TYPE Global] [SEMANTICS app, fastapi, instance, route-registry]\n# @BRIEF Canonical FastAPI application instance for route, middleware, and websocket registration.\n# @RELATION DEPENDS_ON -> [ApiRoutesModule]\n# @RELATION BINDS_TO -> [API_Routes]\napp = FastAPI(\n title=\"Superset Tools API\",\n description=\"API for managing Superset automation tools and plugins.\",\n version=\"1.0.0\",\n)\n# #endregion FastAPI_App\n" @@ -18507,8 +16130,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Ensures initial admin user exists when bootstrap env flags are enabled." + "BRIEF": "Ensures initial admin user exists when bootstrap env flags are enabled.", + "COMPLEXITY": 3 }, "relations": [ { @@ -18532,10 +16155,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Handles application startup tasks, such as starting the scheduler.", "COMPLEXITY": 3, "POST": "Scheduler is started.", - "PRE": "None.", - "PURPOSE": "Handles application startup tasks, such as starting the scheduler." + "PRE": "None." }, "relations": [ { @@ -18559,10 +16182,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Handles application shutdown tasks, such as stopping the scheduler.", "COMPLEXITY": 3, "POST": "Scheduler is stopped.", - "PRE": "None.", - "PURPOSE": "Handles application shutdown tasks, such as stopping the scheduler." + "PRE": "None." }, "relations": [ { @@ -18586,7 +16209,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Configure application-wide middleware (Session, CORS).", + "BRIEF": "Configure application-wide middleware (Session, CORS).", "RATIONALE": "CORS allow_origins reads from ALLOWED_ORIGINS env var instead of hardcoded \"*\"." }, "relations": [], @@ -18604,10 +16227,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Global exception handler for NetworkError.", "COMPLEXITY": 1, "POST": "Returns 503 HTTP Exception.", - "PRE": "request is a FastAPI Request object.", - "PURPOSE": "Global exception handler for NetworkError." + "PRE": "request is a FastAPI Request object." }, "relations": [], "schema_warnings": [], @@ -18624,10 +16247,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Middleware to log incoming HTTP requests and their response status.", "COMPLEXITY": 3, "POST": "Logs request and response details.", - "PRE": "request is a FastAPI Request object.", - "PURPOSE": "Middleware to log incoming HTTP requests and their response status." + "PRE": "request is a FastAPI Request object." }, "relations": [ { @@ -18651,8 +16274,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Register all FastAPI route groups exposed by the application entrypoint." + "BRIEF": "Register all FastAPI route groups exposed by the application entrypoint.", + "COMPLEXITY": 3 }, "relations": [ { @@ -18742,88 +16365,12 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Registers all API routers with the FastAPI application.", "COMPLEXITY": 1, - "LAYER": "API", - "PURPOSE": "Registers all API routers with the FastAPI application." + "LAYER": "API" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Action'", - "detail": { - "actual_type": "Action", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Action' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Action" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Action'", - "detail": { - "actual_type": "Action", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Action' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Action" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Action'", - "detail": { - "actual_type": "Action", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Action' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Action" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region api.include_routers [C:1] [TYPE Action] [SEMANTICS routes, registration, api]\n# @BRIEF Registers all API routers with the FastAPI application.\n# @LAYER API\n# #endregion api.include_routers\n" @@ -18837,12 +16384,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provides a WebSocket endpoint for real-time log streaming of a task with server-side filtering.", "COMPLEXITY": 5, "DATA_CONTRACT": "[task_id: str, source: str, level: str] -> [JSON log entry objects]", "INVARIANT": "Every accepted WebSocket subscription is unsubscribed exactly once even when streaming fails or the client disconnects.", "POST": "WebSocket connection is managed and logs are streamed until disconnect.", "PRE": "task_id must be a valid task ID.", - "PURPOSE": "Provides a WebSocket endpoint for real-time log streaming of a task with server-side filtering.", "SIDE_EFFECT": "Subscribes to TaskManager log queue and broadcasts messages over network.", "TEST_CONTRACT": "WebSocketLogStreamApi ->", "UX_STATE": "Connecting -> Streaming -> (Disconnected)" @@ -18861,28 +16408,7 @@ "target_ref": "[LoggerModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Function' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region websocket_endpoint [C:5] [TYPE Function]\n# @BRIEF Provides a WebSocket endpoint for real-time log streaming of a task with server-side filtering.\n# @RELATION CALLS -> [TaskManagerPackage]\n# @RELATION DEPENDS_ON -> [LoggerModule]\n# @PRE task_id must be a valid task ID.\n# @POST WebSocket connection is managed and logs are streamed until disconnect.\n# @SIDE_EFFECT Subscribes to TaskManager log queue and broadcasts messages over network.\n# @DATA_CONTRACT [task_id: str, source: str, level: str] -> [JSON log entry objects]\n# @INVARIANT Every accepted WebSocket subscription is unsubscribed exactly once even when streaming fails or the client disconnects.\n# @UX_STATE Connecting -> Streaming -> (Disconnected)\n#\n# @TEST_CONTRACT WebSocketLogStreamApi ->\n# {\n# required_fields: {websocket: WebSocket, task_id: str},\n# optional_fields: {source: str, level: str},\n# invariants: [\n# \"Accepts the WebSocket connection\",\n# \"Applies source and level filters correctly to streamed logs\",\n# \"Cleans up subscriptions on disconnect\"\n# ]\n# }\n# @TEST_FIXTURE valid_ws_connection -> {\"task_id\": \"test_1\", \"source\": \"plugin\"}\n# @TEST_EDGE task_not_found_ws -> closes connection or sends error\n# @TEST_EDGE empty_task_logs -> waits for new logs\n# @TEST_INVARIANT consistent_streaming -> verifies: [valid_ws_connection]\n@app.websocket(\"/ws/logs/{task_id}\")\nasync def websocket_endpoint(\n websocket: WebSocket, task_id: str, source: str = None, level: str = None\n):\n \"\"\"\n WebSocket endpoint for real-time log streaming with optional server-side filtering.\n Query Parameters:\n source: Filter logs by source component (e.g., \"plugin\", \"superset_api\")\n level: Filter logs by minimum level (DEBUG, INFO, WARNING, ERROR)\n \"\"\"\n seed_trace_id()\n with belief_scope(\"websocket_endpoint\", f\"task_id={task_id}\"):\n await websocket.accept()\n source_filter = source.lower() if source else None\n level_filter = level.upper() if level else None\n level_hierarchy = {\"DEBUG\": 0, \"INFO\": 1, \"WARNING\": 2, \"ERROR\": 3}\n min_level = level_hierarchy.get(level_filter, 0) if level_filter else 0\n logger.reason(\n \"Accepted WebSocket log stream connection\",\n extra={\n \"task_id\": task_id,\n \"source_filter\": source_filter,\n \"level_filter\": level_filter,\n \"min_level\": min_level,\n },\n )\n task_manager = get_task_manager()\n queue = await task_manager.subscribe_logs(task_id)\n logger.reason(\n \"Subscribed WebSocket client to task log queue\",\n extra={\"task_id\": task_id},\n )\n def matches_filters(log_entry) -> bool:\n \"\"\"Check if log entry matches the filter criteria.\"\"\"\n log_source = getattr(log_entry, \"source\", None)\n if source_filter and str(log_source or \"\").lower() != source_filter:\n return False\n if level_filter:\n log_level = level_hierarchy.get(str(log_entry.level).upper(), 0)\n if log_level < min_level:\n return False\n return True\n try:\n logger.reason(\n \"Starting task log stream replay and live forwarding\",\n extra={\"task_id\": task_id},\n )\n initial_logs = task_manager.get_task_logs(task_id)\n initial_sent = 0\n for log_entry in initial_logs:\n if matches_filters(log_entry):\n log_dict = log_entry.dict()\n log_dict[\"timestamp\"] = log_dict[\"timestamp\"].isoformat()\n await websocket.send_json(log_dict)\n initial_sent += 1\n logger.reflect(\n \"Initial task log replay completed\",\n extra={\n \"task_id\": task_id,\n \"replayed_logs\": initial_sent,\n \"total_available_logs\": len(initial_logs),\n },\n )\n task = task_manager.get_task(task_id)\n if task and task.status == \"AWAITING_INPUT\" and task.input_request:\n synthetic_log = {\n \"timestamp\": task.logs[-1].timestamp.isoformat()\n if task.logs\n else \"2024-01-01T00:00:00\",\n \"level\": \"INFO\",\n \"message\": \"Task paused for user input (Connection Re-established)\",\n \"context\": {\"input_request\": task.input_request},\n }\n await websocket.send_json(synthetic_log)\n logger.reason(\n \"Replayed awaiting-input prompt to restored WebSocket client\",\n extra={\"task_id\": task_id, \"task_status\": task.status},\n )\n while True:\n log_entry = await queue.get()\n if not matches_filters(log_entry):\n continue\n log_dict = log_entry.dict()\n log_dict[\"timestamp\"] = log_dict[\"timestamp\"].isoformat()\n await websocket.send_json(log_dict)\n logger.reflect(\n \"Forwarded task log entry to WebSocket client\",\n extra={\n \"task_id\": task_id,\n \"level\": log_dict.get(\"level\"),\n },\n )\n if (\n \"Task completed successfully\" in log_entry.message\n or \"Task failed\" in log_entry.message\n ):\n logger.reason(\n \"Observed terminal task log entry; delaying to preserve client visibility\",\n extra={\"task_id\": task_id, \"message\": log_entry.message},\n )\n await asyncio.sleep(2)\n except WebSocketDisconnect:\n logger.reason(\n \"WebSocket client disconnected from task log stream\",\n extra={\"task_id\": task_id},\n )\n except Exception as exc:\n logger.explore(\n \"WebSocket log streaming encountered an unexpected failure\",\n extra={\"task_id\": task_id, \"error\": str(exc)},\n )\n raise\n finally:\n task_manager.unsubscribe_logs(task_id, queue)\n logger.reflect(\n \"Released WebSocket log queue subscription\",\n extra={\"task_id\": task_id},\n )\n# #endregion websocket_endpoint\n" @@ -18896,10 +16422,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "WebSocket endpoint for dataset.updated events — auto-refresh on task completion.", "COMPLEXITY": 4, "POST": "WebSocket streams dataset.updated events until disconnect.", "PRE": "env_id must reference a known environment.", - "PURPOSE": "WebSocket endpoint for dataset.updated events — auto-refresh on task completion.", "SIDE_EFFECT": "Subscribes to dataset event queue in task manager lifecycle." }, "relations": [ @@ -18924,65 +16450,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Mounts the frontend build directory to serve static assets." + "BRIEF": "Mounts the frontend build directory to serve static assets.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Mount'", - "detail": { - "actual_type": "Mount", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Mount' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Mount" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Mount'", - "detail": { - "actual_type": "Mount", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Mount' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Mount" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region StaticFiles [C:1] [TYPE Mount] [SEMANTICS static, frontend, spa]\n# @BRIEF Mounts the frontend build directory to serve static assets.\nfrontend_path = project_root / \"frontend\" / \"build\"\nif frontend_path.exists():\n app.mount(\n \"/_app\", StaticFiles(directory=str(frontend_path / \"_app\")), name=\"static\"\n )\n # #region serve_spa [TYPE Function] [C:1]\n # @PURPOSE Serves the SPA frontend for any path not matched by API routes.\n # @PRE frontend_path exists.\n # @POST Returns the requested file or index.html.\n @app.get(\"/{file_path:path}\", include_in_schema=False)\n async def serve_spa(file_path: str):\n with belief_scope(\"serve_spa\"):\n # Only serve SPA for non-API paths\n # API routes are registered separately and should be matched by FastAPI first\n if file_path and (\n file_path.startswith(\"api/\")\n or file_path.startswith(\"/api/\")\n or file_path == \"api\"\n ):\n # This should not happen if API routers are properly registered\n # Return 404 instead of serving HTML\n raise HTTPException(\n status_code=404, detail=f\"API endpoint not found: {file_path}\"\n )\n full_path = frontend_path / file_path\n if file_path and full_path.is_file():\n return FileResponse(str(full_path))\n return FileResponse(str(frontend_path / \"index.html\"))\n # #endregion serve_spa\nelse:\n # #region read_root [TYPE Function] [C:1]\n # @PURPOSE A simple root endpoint to confirm that the API is running when frontend is missing.\n # @PRE None.\n # @POST Returns a JSON message indicating API status.\n @app.get(\"/\")\n async def read_root():\n with belief_scope(\"read_root\"):\n return {\n \"message\": \"Superset Tools API is running (Frontend build not found)\"\n }\n # #endregion read_root\n# #endregion StaticFiles\n" @@ -18996,38 +16468,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backend core services and infrastructure package root." + "BRIEF": "Backend core services and infrastructure package root." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region src.core [TYPE Package] [SEMANTICS core, package, init]\n# @BRIEF Backend core services and infrastructure package root.\n# #endregion src.core\n" @@ -19041,7 +16485,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure get_payload merges typed config into raw payload without dropping legacy sections." + "BRIEF": "Ensure get_payload merges typed config into raw payload without dropping legacy sections." }, "relations": [ { @@ -19065,7 +16509,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure save_config accepts raw dict payload, refreshes typed config, and preserves extra sections." + "BRIEF": "Ensure save_config accepts raw dict payload, refreshes typed config, and preserves extra sections." }, "relations": [ { @@ -19089,7 +16533,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure saving config mirrors typed environments into relational records required by FK-backed session persistence." + "BRIEF": "Ensure saving config mirrors typed environments into relational records required by FK-backed session persistence." }, "relations": [ { @@ -19113,7 +16557,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure stale environment records are deleted during save (in _delete_stale_environment_records)" + "BRIEF": "Ensure stale environment records are deleted during save (in _delete_stale_environment_records)" }, "relations": [ { @@ -19137,7 +16581,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure loading an existing DB-backed config also mirrors environment rows required by FK-backed runtime flows." + "BRIEF": "Ensure loading an existing DB-backed config also mirrors environment rows required by FK-backed runtime flows." }, "relations": [ { @@ -19183,7 +16627,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Extract native filters from a permalink key." + "BRIEF": "Extract native filters from a permalink key." }, "relations": [ { @@ -19207,7 +16651,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Handle permalink response without result wrapper." + "BRIEF": "Handle permalink response without result wrapper." }, "relations": [ { @@ -19231,7 +16675,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Extract native filters from a native_filters_key." + "BRIEF": "Extract native filters from a native_filters_key." }, "relations": [ { @@ -19255,7 +16699,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Handle single filter format in native filter state." + "BRIEF": "Handle single filter format in native filter state." }, "relations": [ { @@ -19279,7 +16723,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Handle filter state value as dict instead of JSON string." + "BRIEF": "Handle filter state value as dict instead of JSON string." }, "relations": [ { @@ -19303,7 +16747,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Parse permalink URL format." + "BRIEF": "Parse permalink URL format." }, "relations": [ { @@ -19327,7 +16771,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Parse native_filters_key URL format with numeric dashboard ID." + "BRIEF": "Parse native_filters_key URL format with numeric dashboard ID." }, "relations": [ { @@ -19351,7 +16795,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Parse native_filters_key URL format when dashboard reference is a slug, not a numeric ID." + "BRIEF": "Parse native_filters_key URL format when dashboard reference is a slug, not a numeric ID." }, "relations": [ { @@ -19375,7 +16819,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Gracefully handle slug resolution failure for native_filters_key URL." + "BRIEF": "Gracefully handle slug resolution failure for native_filters_key URL." }, "relations": [ { @@ -19399,7 +16843,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Parse native_filters direct query param." + "BRIEF": "Parse native_filters direct query param." }, "relations": [ { @@ -19423,7 +16867,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Return empty result when no filters present." + "BRIEF": "Return empty result when no filters present." }, "relations": [ { @@ -19447,7 +16891,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Test ExtraFormDataMerge correctly merges dictionaries." + "BRIEF": "Test ExtraFormDataMerge correctly merges dictionaries." }, "relations": [ { @@ -19471,7 +16915,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Test FilterState Pydantic model." + "BRIEF": "Test FilterState Pydantic model." }, "relations": [ { @@ -19495,7 +16939,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Test ParsedNativeFilters Pydantic model." + "BRIEF": "Test ParsedNativeFilters Pydantic model." }, "relations": [ { @@ -19519,7 +16963,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Test ParsedNativeFilters with no filters." + "BRIEF": "Test ParsedNativeFilters with no filters." }, "relations": [ { @@ -19543,7 +16987,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Test NativeFilterDataMask model." + "BRIEF": "Test NativeFilterDataMask model." }, "relations": [ { @@ -19567,7 +17011,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Reconcile raw native filter ids from state to canonical metadata filter names." + "BRIEF": "Reconcile raw native filter ids from state to canonical metadata filter names." }, "relations": [ { @@ -19591,7 +17035,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Collapse raw-id state entries and metadata entries into one canonical filter." + "BRIEF": "Collapse raw-id state entries and metadata entries into one canonical filter." }, "relations": [ { @@ -19615,7 +17059,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Preserve unmatched raw native filter ids as fallback diagnostics when metadata mapping is unavailable." + "BRIEF": "Preserve unmatched raw native filter ids as fallback diagnostics when metadata mapping is unavailable." }, "relations": [ { @@ -19639,7 +17083,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Recovered native filter state should preserve exact Superset clause payload and time extras for preview compilation." + "BRIEF": "Recovered native filter state should preserve exact Superset clause payload and time extras for preview compilation." }, "relations": [ { @@ -19663,7 +17107,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Assistant-facing imported-filter payload should redact likely PII while preserving structure metadata." + "BRIEF": "Assistant-facing imported-filter payload should redact likely PII while preserving structure metadata." }, "relations": [ { @@ -19731,7 +17175,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Superset preview compilation should prefer the legacy form_data transport inferred from browser traffic before falling back to chart-data." + "BRIEF": "Superset preview compilation should prefer the legacy form_data transport inferred from browser traffic before falling back to chart-data." }, "relations": [ { @@ -19755,7 +17199,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Superset preview compilation should fall back to chart-data when legacy form_data strategies are rejected." + "BRIEF": "Superset preview compilation should fall back to chart-data when legacy form_data strategies are rejected." }, "relations": [ { @@ -19779,7 +17223,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Preview query context should mirror chart-style filter transport so recovered native filters reach Superset compilation." + "BRIEF": "Preview query context should mirror chart-style filter transport so recovered native filters reach Superset compilation." }, "relations": [ { @@ -19803,7 +17247,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Preview query context should merge dataset template params for parity with real dataset definitions while preserving explicit session overrides." + "BRIEF": "Preview query context should merge dataset template params for parity with real dataset definitions while preserving explicit session overrides." }, "relations": [ { @@ -19827,7 +17271,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Preview query context should preserve time-range native filter extras even when dataset defaults differ." + "BRIEF": "Preview query context should preserve time-range native filter extras even when dataset defaults differ." }, "relations": [ { @@ -19851,7 +17295,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Legacy preview form_data should preserve recovered native filter clauses in browser-style fields without duplicating datasource for QueryObjectFactory." + "BRIEF": "Legacy preview form_data should preserve recovered native filter clauses in browser-style fields without duplicating datasource for QueryObjectFactory." }, "relations": [ { @@ -19875,7 +17319,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Sync network client should reserve dashboard-not-found translation for dashboard endpoints only." + "BRIEF": "Sync network client should reserve dashboard-not-found translation for dashboard endpoints only." }, "relations": [ { @@ -19899,7 +17343,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Sync network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors." + "BRIEF": "Sync network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors." }, "relations": [ { @@ -19923,7 +17367,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Async network client should reserve dashboard-not-found translation for dashboard endpoints only." + "BRIEF": "Async network client should reserve dashboard-not-found translation for dashboard endpoints only." }, "relations": [ { @@ -19947,7 +17391,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Async network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors." + "BRIEF": "Async network client should still translate dashboard endpoint 404 responses into dashboard-not-found errors." }, "relations": [ { @@ -19971,9 +17415,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensures adapter sends lowercase order_direction compatible with Superset rison schema.", "POST": "First request query payload contains order_direction='asc' for asc sort.", - "PRE": "Adapter is initialized with recording network client.", - "PURPOSE": "Ensures adapter sends lowercase order_direction compatible with Superset rison schema." + "PRE": "Adapter is initialized with recording network client." }, "relations": [ { @@ -19997,9 +17441,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensures fallback auth error does not mask primary schema/query failure.", "POST": "Raised exception remains primary SupersetAPIError (non-auth) to preserve root cause.", - "PRE": "Primary endpoint fails with SupersetAPIError and fallback fails with AuthenticationError.", - "PURPOSE": "Ensures fallback auth error does not mask primary schema/query failure." + "PRE": "Primary endpoint fails with SupersetAPIError and fallback fails with AuthenticationError." }, "relations": [ { @@ -20023,9 +17467,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verifies adapter retries second users endpoint and succeeds when fallback is healthy.", "POST": "Result status is success and both endpoints were attempted in order.", - "PRE": "Primary endpoint fails; fallback returns valid users payload.", - "PURPOSE": "Verifies adapter retries second users endpoint and succeeds when fallback is healthy." + "PRE": "Primary endpoint fails; fallback returns valid users payload." }, "relations": [ { @@ -20049,7 +17493,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate even spacing across a two-hour scheduling window for three tasks." + "BRIEF": "Validate even spacing across a two-hour scheduling window for three tasks." }, "relations": [ { @@ -20073,7 +17517,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate scheduler correctly rolls timestamps into the next day across midnight." + "BRIEF": "Validate scheduler correctly rolls timestamps into the next day across midnight." }, "relations": [ { @@ -20097,7 +17541,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate single-task schedule returns only the window start timestamp." + "BRIEF": "Validate single-task schedule returns only the window start timestamp." }, "relations": [ { @@ -20121,7 +17565,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate empty dashboard list produces an empty schedule." + "BRIEF": "Validate empty dashboard list produces an empty schedule." }, "relations": [ { @@ -20145,7 +17589,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate zero-length window schedules all tasks at identical start timestamp." + "BRIEF": "Validate zero-length window schedules all tasks at identical start timestamp." }, "relations": [ { @@ -20169,7 +17613,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate sub-second interpolation when task count exceeds near-zero window granularity." + "BRIEF": "Validate sub-second interpolation when task count exceeds near-zero window granularity." }, "relations": [ { @@ -20193,9 +17637,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Parse a Superset dashboard URL and extract native filter state asynchronously.", "COMPLEXITY": 3, - "LAYER": "Core", - "PURPOSE": "Parse a Superset dashboard URL and extract native filter state asynchronously." + "LAYER": "Core" }, "relations": [], "schema_warnings": [], @@ -20212,8 +17656,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Async sibling of SupersetClient for dashboard read paths." + "BRIEF": "Async sibling of SupersetClient for dashboard read paths.", + "COMPLEXITY": 3 }, "relations": [ { @@ -20249,38 +17693,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Authentication and authorization package root." + "BRIEF": "Authentication and authorization package root." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region AuthPackage [TYPE Package] [SEMANTICS auth, package, init]\n# @BRIEF Authentication and authorization package root.\n# #endregion AuthPackage\n" @@ -20294,7 +17710,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verifies that a persisted user can be retrieved with intact credential hash." + "BRIEF": "Verifies that a persisted user can be retrieved with intact credential hash." }, "relations": [ { @@ -20318,7 +17734,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validates authentication outcomes for valid, wrong-password, and unknown-user cases." + "BRIEF": "Validates authentication outcomes for valid, wrong-password, and unknown-user cases." }, "relations": [ { @@ -20342,7 +17758,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensures session creation returns bearer token payload fields." + "BRIEF": "Ensures session creation returns bearer token payload fields." }, "relations": [ { @@ -20366,7 +17782,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Confirms role-permission many-to-many assignments persist and reload correctly." + "BRIEF": "Confirms role-permission many-to-many assignments persist and reload correctly." }, "relations": [ { @@ -20390,7 +17806,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Confirms user-role assignment persists and is queryable from repository reads." + "BRIEF": "Confirms user-role assignment persists and is queryable from repository reads." }, "relations": [ { @@ -20414,7 +17830,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verifies AD group mapping rows persist and reference the expected role." + "BRIEF": "Verifies AD group mapping rows persist and reference the expected role." }, "relations": [ { @@ -20438,7 +17854,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verifies successful authentication updates last_login audit field." + "BRIEF": "Verifies successful authentication updates last_login audit field." }, "relations": [ { @@ -20462,7 +17878,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verifies inactive accounts are rejected during password authentication." + "BRIEF": "Verifies inactive accounts are rejected during password authentication." }, "relations": [ { @@ -20486,7 +17902,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verifies password verification safely rejects empty or null password hashes." + "BRIEF": "Verifies password verification safely rejects empty or null password hashes." }, "relations": [ { @@ -20510,7 +17926,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verifies JIT provisioning creates a new ADFS user and maps group-derived roles." + "BRIEF": "Verifies JIT provisioning creates a new ADFS user and maps group-derived roles." }, "relations": [ { @@ -20534,7 +17950,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verifies JIT provisioning reuses existing ADFS user and refreshes role assignments." + "BRIEF": "Verifies JIT provisioning reuses existing ADFS user and refreshes role assignments." }, "relations": [ { @@ -20558,10 +17974,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "API key generation and hashing utilities for service-to-service authentication.", "COMPLEXITY": 2, "INVARIANT": "hash_api_key() produces SHA-256 hex digest for lookup and storage.", - "LAYER": "Core", - "PURPOSE": "API key generation and hashing utilities for service-to-service authentication." + "LAYER": "Core" }, "relations": [ { @@ -20591,9 +18007,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Generate a new API key in ssk_ format with SHA-256 hash.", "COMPLEXITY": 2, "POST": "Returns (raw_key, prefix, key_hash) — raw_key shown ONCE to caller, never stored.", - "PURPOSE": "Generate a new API key in ssk_ format with SHA-256 hash.", "SIDE_EFFECT": "Uses secrets.token_urlsafe(32) for cryptographic randomness." }, "relations": [ @@ -20624,10 +18040,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Hash an API key string to SHA-256 hex digest for lookup.", "COMPLEXITY": 1, "POST": "Returns 64-character hex digest.", - "PRE": "raw_key is a non-empty string.", - "PURPOSE": "Hash an API key string to SHA-256 hex digest for lookup." + "PRE": "raw_key is a non-empty string." }, "relations": [ { @@ -20651,10 +18067,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Centralized configuration for authentication and authorization.", "COMPLEXITY": 2, "INVARIANT": "All sensitive configuration must be loaded from environment; no hardcoded secrets.", "LAYER": "Core", - "PURPOSE": "Centralized configuration for authentication and authorization.", "RATIONALE": "SECRET_KEY and AUTH_DATABASE_URL now crash-early if env vars are missing." }, "relations": [ @@ -20679,9 +18095,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Holds authentication-related settings.", "POST": "Returns a configuration object with validated settings.", - "PRE": "Environment variables may be provided via .env file.", - "PURPOSE": "Holds authentication-related settings." + "PRE": "Environment variables may be provided via .env file." }, "relations": [ { @@ -20705,7 +18121,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Singleton instance of AuthConfig." + "BRIEF": "Singleton instance of AuthConfig." }, "relations": [ { @@ -20715,44 +18131,7 @@ "target_ref": "AuthConfig" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region auth_config [TYPE Variable]\n# @BRIEF Singleton instance of AuthConfig.\n# @RELATION DEPENDS_ON -> AuthConfig\nauth_config = AuthConfig()\n# #endregion auth_config\n" @@ -20766,13 +18145,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "JWT token generation and validation logic.", "COMPLEXITY": 5, "DATA_CONTRACT": "TokenPayload -> JWT string", "INVARIANT": "Tokens must include expiration time and user identifier.", "LAYER": "Core", "POST": "Token encode/decode functions exported", "PRE": "JWT secret configured in environment", - "PURPOSE": "JWT token generation and validation logic.", "SIDE_EFFECT": "None" }, "relations": [ @@ -20803,9 +18182,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Generates a new JWT access token.", "POST": "Returns a signed JWT string.", - "PRE": "data dict contains 'sub' (user_id) and optional 'scopes' (roles).", - "PURPOSE": "Generates a new JWT access token." + "PRE": "data dict contains 'sub' (user_id) and optional 'scopes' (roles)." }, "relations": [ { @@ -20829,9 +18208,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Decodes and validates a JWT token.", "POST": "Returns the decoded payload if valid.", - "PRE": "token is a signed JWT string.", - "PURPOSE": "Decodes and validates a JWT token." + "PRE": "token is a signed JWT string." }, "relations": [ { @@ -20855,13 +18234,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Structured auth logging module for audit trail generation.", "COMPLEXITY": 5, "DATA_CONTRACT": "AuthEvent -> LogEntry", "INVARIANT": "Must not log sensitive data like passwords or full tokens.", "LAYER": "Core", "POST": "Audit logging functions exported", "PRE": "Auth module initialized", - "PURPOSE": "Structured auth logging module for audit trail generation.", "SIDE_EFFECT": "Writes auth audit log entries" }, "relations": [ @@ -20886,9 +18265,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Logs a security-related event for audit trails.", "POST": "Security event is written to the application log.", - "PRE": "event_type and username are strings.", - "PURPOSE": "Logs a security-related event for audit trails." + "PRE": "event_type and username are strings." }, "relations": [ { @@ -20912,10 +18291,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "ADFS OIDC configuration and client using Authlib.", "COMPLEXITY": 2, "INVARIANT": "Must use secure OIDC flows.", - "LAYER": "Core", - "PURPOSE": "ADFS OIDC configuration and client using Authlib." + "LAYER": "Core" }, "relations": [ { @@ -20945,7 +18324,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Global Authlib OAuth registry." + "BRIEF": "Global Authlib OAuth registry." }, "relations": [ { @@ -20955,44 +18334,7 @@ "target_ref": "OAuth" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region oauth [TYPE Variable]\n# @BRIEF Global Authlib OAuth registry.\n# @RELATION DEPENDS_ON -> OAuth\noauth = OAuth()\n# #endregion oauth\n" @@ -21006,9 +18348,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Registers the ADFS OIDC client.", "POST": "ADFS client is registered in oauth registry.", - "PRE": "ADFS configuration is provided in auth_config.", - "PURPOSE": "Registers the ADFS OIDC client." + "PRE": "ADFS configuration is provided in auth_config." }, "relations": [ { @@ -21038,9 +18380,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Checks if ADFS is properly configured.", "POST": "Returns True if ADFS client is registered, False otherwise.", - "PRE": "None.", - "PURPOSE": "Checks if ADFS is properly configured." + "PRE": "None." }, "relations": [ { @@ -21064,13 +18406,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Data access layer for authentication and user preference entities.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[sqlalchemy.orm.Session] -> Output[User|Role|Permission|UserDashboardPreference access]", "INVARIANT": "All database read/write operations must execute via the injected SQLAlchemy session boundary.", "LAYER": "Domain", "POST": "Provides valid access to identity data.", "PRE": "Database connection is active.", - "PURPOSE": "Data access layer for authentication and user preference entities.", "SIDE_EFFECT": "Executes database read queries through the injected SQLAlchemy session boundary." }, "relations": [ @@ -21107,9 +18449,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Provides low-level CRUD operations for identity and authorization records.", "POST": "Entity instances returned safely.", "PRE": "Database session is bound.", - "PURPOSE": "Provides low-level CRUD operations for identity and authorization records.", "SIDE_EFFECT": "Performs database reads." }, "relations": [ @@ -21134,9 +18476,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieve user by UUID.", "POST": "Returns User object if found, else None.", - "PRE": "user_id is a valid UUID string.", - "PURPOSE": "Retrieve user by UUID." + "PRE": "user_id is a valid UUID string." }, "relations": [ { @@ -21160,9 +18502,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieve user by username.", "POST": "Returns User object if found, else None.", - "PRE": "username is a non-empty string.", - "PURPOSE": "Retrieve user by username." + "PRE": "username is a non-empty string." }, "relations": [ { @@ -21186,7 +18528,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Retrieve role by UUID with permissions preloaded." + "BRIEF": "Retrieve role by UUID with permissions preloaded." }, "relations": [ { @@ -21216,7 +18558,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Retrieve role by unique name." + "BRIEF": "Retrieve role by unique name." }, "relations": [ { @@ -21240,7 +18582,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Retrieve permission by UUID." + "BRIEF": "Retrieve permission by UUID." }, "relations": [ { @@ -21264,7 +18606,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Retrieve permission by resource and action tuple." + "BRIEF": "Retrieve permission by resource and action tuple." }, "relations": [ { @@ -21288,7 +18630,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "List all system permissions." + "BRIEF": "List all system permissions." }, "relations": [ { @@ -21312,7 +18654,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Retrieve dashboard filters/preferences for a user." + "BRIEF": "Retrieve dashboard filters/preferences for a user." }, "relations": [ { @@ -21336,9 +18678,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieve roles that match a list of AD group names.", "POST": "Returns a list of Role objects mapped to the provided AD groups.", - "PRE": "groups is a list of strings representing AD group identifiers.", - "PURPOSE": "Retrieve roles that match a list of AD group names." + "PRE": "groups is a list of strings representing AD group identifiers." }, "relations": [ { @@ -21368,10 +18710,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Utility for password hashing and verification using Passlib.", "COMPLEXITY": 2, "INVARIANT": "Uses bcrypt for hashing with standard work factor.", - "LAYER": "Core", - "PURPOSE": "Utility for password hashing and verification using Passlib." + "LAYER": "Core" }, "relations": [ { @@ -21395,9 +18737,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verifies a plain password against a hashed password.", "POST": "Returns True if password matches, False otherwise.", - "PRE": "plain_password is a string, hashed_password is a bcrypt hash.", - "PURPOSE": "Verifies a plain password against a hashed password." + "PRE": "plain_password is a string, hashed_password is a bcrypt hash." }, "relations": [ { @@ -21421,9 +18763,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Generates a bcrypt hash for a plain password.", "POST": "Returns a secure bcrypt hash string.", - "PRE": "password is a string.", - "PURPOSE": "Generates a bcrypt hash for a plain password." + "PRE": "password is a string." }, "relations": [ { @@ -21447,13 +18789,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Manages application configuration persistence in DB with one-time migration from legacy JSON.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[json, record] -> Model[AppConfig]", "INVARIANT": "Configuration must always be representable by AppConfig and persisted under global record id.", "LAYER": "Domain", "POST": "Configuration is loaded into memory and logger is configured.", "PRE": "Database schema for AppConfigRecord must be initialized.", - "PURPOSE": "Manages application configuration persistence in DB with one-time migration from legacy JSON.", "SIDE_EFFECT": "Performs DB I/O and may update global logging level." }, "relations": [ @@ -21502,7 +18844,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Read FEATURES__* env vars and apply them to a GlobalSettings features config.", + "BRIEF": "Read FEATURES__* env vars and apply them to a GlobalSettings features config.", "RATIONALE": "Env vars seed the initial defaults. After first bootstrap, DB is source of truth.", "SIDE_EFFECT": "Reads os.environ; mutates settings.features in-place." }, @@ -21521,7 +18863,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Build default application configuration fallback." + "BRIEF": "Build default application configuration fallback." }, "relations": [], "schema_warnings": [], @@ -21538,7 +18880,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Merge typed AppConfig state into raw payload while preserving unsupported legacy sections." + "BRIEF": "Merge typed AppConfig state into raw payload while preserving unsupported legacy sections." }, "relations": [], "schema_warnings": [], @@ -21555,7 +18897,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Load legacy JSON configuration for migration fallback path." + "BRIEF": "Load legacy JSON configuration for migration fallback path." }, "relations": [], "schema_warnings": [], @@ -21572,7 +18914,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Resolve global configuration record from DB." + "BRIEF": "Resolve global configuration record from DB." }, "relations": [], "schema_warnings": [], @@ -21589,7 +18931,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Load configuration from DB or perform one-time migration from legacy JSON." + "BRIEF": "Load configuration from DB or perform one-time migration from legacy JSON." }, "relations": [], "schema_warnings": [], @@ -21606,7 +18948,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Mirror configured environments into the relational environments table used by FK-backed domain models." + "BRIEF": "Mirror configured environments into the relational environments table used by FK-backed domain models." }, "relations": [], "schema_warnings": [], @@ -21623,9 +18965,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Remove persisted environment records that are no longer in the configured environments.", "POST": "Stale Environment rows are deleted via the session (caller must commit).", "PRE": "_sync_environment_records must already have run so the query returns a current view.", - "PURPOSE": "Remove persisted environment records that are no longer in the configured environments.", "SIDE_EFFECT": "Only safe to call during explicit save (_save_config_to_db), NOT during _load_config," }, "relations": [], @@ -21643,7 +18985,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Persist provided AppConfig into the global DB configuration record." + "BRIEF": "Persist provided AppConfig into the global DB configuration record." }, "relations": [], "schema_warnings": [], @@ -21660,7 +19002,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Persist current in-memory configuration state." + "BRIEF": "Persist current in-memory configuration state." }, "relations": [], "schema_warnings": [], @@ -21677,7 +19019,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Return current in-memory configuration snapshot." + "BRIEF": "Return current in-memory configuration snapshot." }, "relations": [], "schema_warnings": [], @@ -21694,7 +19036,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Return full persisted payload including sections outside typed AppConfig schema." + "BRIEF": "Return full persisted payload including sections outside typed AppConfig schema." }, "relations": [], "schema_warnings": [], @@ -21711,7 +19053,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Persist configuration provided either as typed AppConfig or raw payload dict." + "BRIEF": "Persist configuration provided either as typed AppConfig or raw payload dict." }, "relations": [], "schema_warnings": [], @@ -21728,7 +19070,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Replace global settings and persist the resulting configuration." + "BRIEF": "Replace global settings and persist the resulting configuration." }, "relations": [], "schema_warnings": [], @@ -21745,7 +19087,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Validate that path exists and is writable, creating it when absent." + "BRIEF": "Validate that path exists and is writable, creating it when absent." }, "relations": [], "schema_warnings": [], @@ -21762,7 +19104,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Return all configured environments." + "BRIEF": "Return all configured environments." }, "relations": [], "schema_warnings": [], @@ -21779,7 +19121,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Check whether at least one environment exists in configuration." + "BRIEF": "Check whether at least one environment exists in configuration." }, "relations": [], "schema_warnings": [], @@ -21796,7 +19138,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Resolve a configured environment by identifier." + "BRIEF": "Resolve a configured environment by identifier." }, "relations": [], "schema_warnings": [], @@ -21813,7 +19155,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Upsert environment by id into configuration and persist." + "BRIEF": "Upsert environment by id into configuration and persist." }, "relations": [], "schema_warnings": [], @@ -21830,7 +19172,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Update existing environment by id and preserve masked password placeholder behavior." + "BRIEF": "Update existing environment by id and preserve masked password placeholder behavior." }, "relations": [], "schema_warnings": [], @@ -21847,7 +19189,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Delete environment by id and persist when deletion occurs." + "BRIEF": "Delete environment by id and persist when deletion occurs." }, "relations": [], "schema_warnings": [], @@ -21864,9 +19206,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Defines the data models for application configuration using Pydantic.", "COMPLEXITY": 3, - "LAYER": "Core", - "PURPOSE": "Defines the data models for application configuration using Pydantic." + "LAYER": "Core" }, "relations": [ { @@ -21896,38 +19238,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents a backup schedule configuration." + "BRIEF": "Represents a backup schedule configuration." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region Schedule [TYPE DataClass]\n# @BRIEF Represents a backup schedule configuration.\nclass Schedule(BaseModel):\n enabled: bool = False\n cron_expression: str = \"0 0 * * *\" # Default: daily at midnight\n\n\n# #endregion Schedule\n" @@ -21941,38 +19255,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents a Superset environment configuration." + "BRIEF": "Represents a Superset environment configuration." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region Environment [TYPE DataClass]\n# @BRIEF Represents a Superset environment configuration.\nclass Environment(BaseModel):\n id: str\n name: str\n url: str\n username: str\n password: str # Will be masked in UI\n stage: str = Field(default=\"DEV\", pattern=\"^(DEV|PREPROD|PROD)$\")\n verify_ssl: bool = True\n timeout: int = 30\n is_default: bool = False\n is_production: bool = False\n backup_schedule: Schedule = Field(default_factory=Schedule)\n\n\n# #endregion Environment\n" @@ -21986,38 +19272,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Defines the configuration for the application's logging system." + "BRIEF": "Defines the configuration for the application's logging system." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region LoggingConfig [TYPE DataClass]\n# @BRIEF Defines the configuration for the application's logging system.\nclass LoggingConfig(BaseModel):\n level: str = \"INFO\"\n task_log_level: str = (\n \"INFO\" # Minimum level for task-specific logs (DEBUG, INFO, WARNING, ERROR)\n )\n file_path: str | None = None\n max_bytes: int = 10 * 1024 * 1024\n backup_count: int = 5\n enable_belief_state: bool = True\n\n\n# #endregion LoggingConfig\n" @@ -22031,38 +19289,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Configuration for clean release compliance subsystem." + "BRIEF": "Configuration for clean release compliance subsystem." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region CleanReleaseConfig [TYPE DataClass]\n# @BRIEF Configuration for clean release compliance subsystem.\nclass CleanReleaseConfig(BaseModel):\n active_policy_id: str | None = None\n active_registry_id: str | None = None\n\n\n# #endregion CleanReleaseConfig\n" @@ -22076,93 +19306,12 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Top-level feature flags that toggle entire project features on/off.", "COMPLEXITY": 1, - "PURPOSE": "Top-level feature flags that toggle entire project features on/off.", "RATIONALE": "Features are read from environment variables on bootstrap and persisted in DB." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region FeaturesConfig [C:1] [TYPE DataClass]\n# @BRIEF Top-level feature flags that toggle entire project features on/off.\n# @RATIONALE: Features are read from environment variables on bootstrap and persisted in DB.\n# DB is source of truth after initial bootstrap; env vars only seed defaults.\nclass FeaturesConfig(BaseModel):\n dataset_review: bool = True\n health_monitor: bool = True\n\n\n# #endregion FeaturesConfig\n" @@ -22176,38 +19325,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents global application settings." + "BRIEF": "Represents global application settings." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region GlobalSettings [TYPE DataClass]\n# @BRIEF Represents global application settings.\nclass GlobalSettings(BaseModel):\n storage: StorageConfig = Field(default_factory=StorageConfig)\n clean_release: CleanReleaseConfig = Field(default_factory=CleanReleaseConfig)\n default_environment_id: str | None = None\n logging: LoggingConfig = Field(default_factory=LoggingConfig)\n features: FeaturesConfig = Field(default_factory=FeaturesConfig)\n connections: list[dict] = []\n llm: dict = Field(\n default_factory=lambda: {\n \"providers\": [],\n \"default_provider\": \"\",\n \"prompts\": dict(DEFAULT_LLM_PROMPTS),\n \"provider_bindings\": dict(DEFAULT_LLM_PROVIDER_BINDINGS),\n **dict(DEFAULT_LLM_ASSISTANT_SETTINGS),\n }\n )\n\n # Application timezone\n app_timezone: str = \"Europe/Moscow\"\n\n @field_validator(\"app_timezone\")\n @classmethod\n def validate_app_timezone(cls, v: str) -> str:\n from zoneinfo import ZoneInfo\n try:\n ZoneInfo(v)\n except (KeyError, TypeError):\n raise ValueError(f\"Invalid IANA timezone: {v}\") from None\n return v\n\n # Task retention settings\n task_retention_days: int = 30\n task_retention_limit: int = 100\n pagination_limit: int = 10\n\n # Migration sync settings\n migration_sync_cron: str = \"0 2 * * *\"\n\n # Dataset Review Feature Flags\n ff_dataset_auto_review: bool = True\n ff_dataset_clarification: bool = True\n ff_dataset_execution: bool = True\n\n\n# #endregion GlobalSettings\n" @@ -22221,38 +19342,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "The root configuration model containing all application settings." + "BRIEF": "The root configuration model containing all application settings." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region AppConfig [TYPE DataClass]\n# @BRIEF The root configuration model containing all application settings.\nclass AppConfig(BaseModel):\n environments: list[Environment] = []\n settings: GlobalSettings\n\n\n# #endregion AppConfig\n" @@ -22266,8 +19359,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Structured JSON logger implementing the molecular CoT (Chain-of-Thought) logging protocol." + "BRIEF": "Structured JSON logger implementing the molecular CoT (Chain-of-Thought) logging protocol.", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -22284,65 +19377,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "ContextVars for trace ID and span ID propagation across async boundaries." + "BRIEF": "ContextVars for trace ID and span ID propagation across async boundaries.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Data'", - "detail": { - "actual_type": "Data", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Data' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Data" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Data'", - "detail": { - "actual_type": "Data", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Data' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Data" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region cot_trace_context [C:1] [TYPE Data] [SEMANTICS contextvar, trace_id, span_id, propagation]\n# @BRIEF ContextVars for trace ID and span ID propagation across async boundaries.\n_trace_id: ContextVar[str] = ContextVar(\"_trace_id\", default=\"\")\n_span_id: ContextVar[str] = ContextVar(\"_span_id\", default=\"\")\n# #endregion cot_trace_context\n" @@ -22356,65 +19395,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Dedicated Python logger for all CoT (molecular) log output." + "BRIEF": "Dedicated Python logger for all CoT (molecular) log output.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Data'", - "detail": { - "actual_type": "Data", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Data' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Data" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Data'", - "detail": { - "actual_type": "Data", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Data' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Data" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region cot_logger_instance [C:1] [TYPE Data] [SEMANTICS logger, instance]\n# @BRIEF Dedicated Python logger for all CoT (molecular) log output.\ncot_logger = logging.getLogger(\"cot\")\n# #endregion cot_logger_instance\n" @@ -22428,8 +19413,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Generate a new UUID4 trace_id, set it in ContextVar, and return it." + "BRIEF": "Generate a new UUID4 trace_id, set it in ContextVar, and return it.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -22446,8 +19431,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Set an explicit trace_id into the ContextVar (e.g. from an incoming header)." + "BRIEF": "Set an explicit trace_id into the ContextVar (e.g. from an incoming header).", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -22464,8 +19449,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Get the current trace_id from ContextVar." + "BRIEF": "Get the current trace_id from ContextVar.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -22482,8 +19467,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Set a new span_id in ContextVar and return the previous span_id for later restoration." + "BRIEF": "Set a new span_id in ContextVar and return the previous span_id for later restoration.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -22500,8 +19485,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Restore a previous span_id into the ContextVar." + "BRIEF": "Restore a previous span_id into the ContextVar.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -22518,8 +19503,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Core structured logging function that emits a single-line JSON record." + "BRIEF": "Core structured logging function that emits a single-line JSON record.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -22536,8 +19521,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Thin proxy class providing .reason(), .reflect(), .explore() convenience methods." + "BRIEF": "Thin proxy class providing .reason(), .reflect(), .explore() convenience methods.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -22554,7 +19539,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Store the module/component name used as the 'src' field in all log calls." + "BRIEF": "Store the module/component name used as the 'src' field in all log calls." }, "relations": [], "schema_warnings": [], @@ -22571,7 +19556,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Log a REASON marker — strict deduction, core logic." + "BRIEF": "Log a REASON marker — strict deduction, core logic." }, "relations": [], "schema_warnings": [], @@ -22588,7 +19573,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Log a REFLECT marker — self-check, structural validation." + "BRIEF": "Log a REFLECT marker — self-check, structural validation." }, "relations": [], "schema_warnings": [], @@ -22605,7 +19590,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Log an EXPLORE marker — searching, alternatives, violated assumptions." + "BRIEF": "Log an EXPLORE marker — searching, alternatives, violated assumptions." }, "relations": [], "schema_warnings": [], @@ -22622,10 +19607,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Configures database connection and session management (PostgreSQL-first).", "COMPLEXITY": 3, "INVARIANT": "A single engine instance is used for the entire application.", - "LAYER": "Infrastructure", - "PURPOSE": "Configures database connection and session management (PostgreSQL-first)." + "LAYER": "Infrastructure" }, "relations": [ { @@ -22655,65 +19640,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Base directory for the backend." + "BRIEF": "Base directory for the backend.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -22727,93 +19658,12 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "URL for the main application database. Read from env; dev fallback only.", "COMPLEXITY": 1, - "PURPOSE": "URL for the main application database. Read from env; dev fallback only.", "RATIONALE": "DATABASE_URL reads from env (DATABASE_URL or POSTGRES_URL)." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Constant' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Constant" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Constant' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Constant" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'Constant' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Constant" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DATABASE_URL [C:1] [TYPE Constant]\n# @BRIEF URL for the main application database. Read from env; dev fallback only.\n# @RATIONALE DATABASE_URL reads from env (DATABASE_URL or POSTGRES_URL).\n# Crashes at import if unset in production; provides localhost fallback in dev.\n# @REJECTED Hardcoded postgres:postgres@localhost in source code rejected — exposes\n# database credentials in version control (Class 1 security violation).\n_DATABASE_URL = os.getenv(\"DATABASE_URL\") or os.getenv(\"POSTGRES_URL\")\nif _DATABASE_URL:\n DATABASE_URL = _DATABASE_URL\nelif os.getenv(\"DEV_MODE\", \"\").strip().lower() in {\"1\", \"true\", \"yes\"}:\n DATABASE_URL = \"postgresql+psycopg2://postgres:postgres@localhost:5432/ss_tools\"\nelse:\n raise RuntimeError(\n \"DATABASE_URL (or POSTGRES_URL) environment variable is required. \"\n \"Set it before starting the server.\"\n )\n# #endregion DATABASE_URL\n" @@ -22827,65 +19677,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "URL for the tasks execution database." + "BRIEF": "URL for the tasks execution database.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Constant' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Constant" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Constant' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Constant" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -22899,65 +19695,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "URL for the authentication database." + "BRIEF": "URL for the authentication database.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Constant' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Constant" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Constant' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Constant" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -22971,90 +19713,12 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "SQLAlchemy engine for mappings database.", "COMPLEXITY": 1, - "PURPOSE": "SQLAlchemy engine for mappings database.", "SIDE_EFFECT": "Creates database engine and manages connection pool." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -23068,65 +19732,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "SQLAlchemy engine for tasks database." + "BRIEF": "SQLAlchemy engine for tasks database.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -23140,65 +19750,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "SQLAlchemy engine for authentication database." + "BRIEF": "SQLAlchemy engine for authentication database.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -23212,9 +19768,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "A session factory for the main mappings database.", "COMPLEXITY": 1, - "PRE": "engine is initialized.", - "PURPOSE": "A session factory for the main mappings database." + "PRE": "engine is initialized." }, "relations": [], "schema_warnings": [], @@ -23231,9 +19787,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "A session factory for the tasks execution database.", "COMPLEXITY": 1, - "PRE": "tasks_engine is initialized.", - "PURPOSE": "A session factory for the tasks execution database." + "PRE": "tasks_engine is initialized." }, "relations": [], "schema_warnings": [], @@ -23250,9 +19806,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "A session factory for the authentication database.", "COMPLEXITY": 1, - "PRE": "auth_engine is initialized.", - "PURPOSE": "A session factory for the authentication database." + "PRE": "auth_engine is initialized." }, "relations": [], "schema_warnings": [], @@ -23269,10 +19825,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Applies additive schema upgrades for user_dashboard_preferences table.", "COMPLEXITY": 3, "POST": "Missing columns are added without data loss.", - "PRE": "bind_engine points to application database where profile table is stored.", - "PURPOSE": "Applies additive schema upgrades for user_dashboard_preferences table." + "PRE": "bind_engine points to application database where profile table is stored." }, "relations": [ { @@ -23296,8 +19852,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Applies additive schema upgrades for user_dashboard_preferences table (health fields)." + "BRIEF": "Applies additive schema upgrades for user_dashboard_preferences table (health fields).", + "COMPLEXITY": 3 }, "relations": [ { @@ -23321,8 +19877,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Applies additive schema upgrades for llm_validation_results table." + "BRIEF": "Applies additive schema upgrades for llm_validation_results table.", + "COMPLEXITY": 3 }, "relations": [ { @@ -23346,10 +19902,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Applies additive schema upgrades for git_server_configs table.", "COMPLEXITY": 3, "POST": "Missing columns are added without data loss.", - "PRE": "bind_engine points to application database.", - "PURPOSE": "Applies additive schema upgrades for git_server_configs table." + "PRE": "bind_engine points to application database." }, "relations": [ { @@ -23373,10 +19929,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Applies additive schema upgrades for auth users table.", "COMPLEXITY": 3, "POST": "Missing columns are added without data loss.", - "PRE": "bind_engine points to authentication database.", - "PURPOSE": "Applies additive schema upgrades for auth users table." + "PRE": "bind_engine points to authentication database." }, "relations": [ { @@ -23400,10 +19956,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Adds missing FilterSource enum values to the PostgreSQL native filtersource type.", "COMPLEXITY": 3, "POST": "New enum values are available without data loss.", - "PRE": "bind_engine points to application database with imported_filters table.", - "PURPOSE": "Adds missing FilterSource enum values to the PostgreSQL native filtersource type." + "PRE": "bind_engine points to application database with imported_filters table." }, "relations": [ { @@ -23427,10 +19983,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Apply additive schema upgrades for dataset review persistence required by optimistic-lock and recovery metadata semantics.", "COMPLEXITY": 4, "POST": "Missing additive columns across legacy dataset review tables are created without removing existing data.", "PRE": "bind_engine points to the application database where dataset review tables are stored.", - "PURPOSE": "Apply additive schema upgrades for dataset review persistence required by optimistic-lock and recovery metadata semantics.", "SIDE_EFFECT": "Executes ALTER TABLE statements against dataset review tables in the application database." }, "relations": [ @@ -23461,10 +20017,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Applies additive schema upgrades for translation_schedules table.", "COMPLEXITY": 3, "POST": "Missing columns are added without data loss.", - "PRE": "bind_engine points to application database.", - "PURPOSE": "Applies additive schema upgrades for translation_schedules table." + "PRE": "bind_engine points to application database." }, "relations": [ { @@ -23488,8 +20044,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Additive migration for dictionary_entries origin tracking columns." + "BRIEF": "Additive migration for dictionary_entries origin tracking columns.", + "COMPLEXITY": 3 }, "relations": [ { @@ -23513,10 +20069,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Initializes the database by creating all tables.", "COMPLEXITY": 3, "POST": "Database tables created in all databases.", "PRE": "engine, tasks_engine and auth_engine are initialized.", - "PURPOSE": "Initializes the database by creating all tables.", "SIDE_EFFECT": "Creates physical database files if they don't exist." }, "relations": [ @@ -23553,10 +20109,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dependency for getting a database session.", "COMPLEXITY": 3, "POST": "Session is closed after use.", - "PRE": "SessionLocal is initialized.", - "PURPOSE": "Dependency for getting a database session." + "PRE": "SessionLocal is initialized." }, "relations": [ { @@ -23580,10 +20136,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dependency for getting a tasks database session.", "COMPLEXITY": 3, "POST": "Session is closed after use.", - "PRE": "TasksSessionLocal is initialized.", - "PURPOSE": "Dependency for getting a tasks database session." + "PRE": "TasksSessionLocal is initialized." }, "relations": [ { @@ -23607,11 +20163,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dependency for getting an authentication database session.", "COMPLEXITY": 3, "DATA_CONTRACT": "None -> Output[sqlalchemy.orm.Session]", "POST": "Session is closed after use.", - "PRE": "AuthSessionLocal is initialized.", - "PURPOSE": "Dependency for getting an authentication database session." + "PRE": "AuthSessionLocal is initialized." }, "relations": [ { @@ -23635,13 +20191,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Resolve and persist the Fernet encryption key required by runtime services.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[env_file_path] -> Output[encryption_key]", "INVARIANT": "Runtime key resolution never falls back to an ephemeral secret.", "LAYER": "Infra", "POST": "A valid Fernet key is available to runtime services via ENCRYPTION_KEY.", "PRE": "Runtime environment can read process variables and target .env path is writable when key generation is required.", - "PURPOSE": "Resolve and persist the Fernet encryption key required by runtime services.", "RATIONALE": "Replaced Path(__file__).parents[2] with BASE_DIR import from database.py — same result, avoids recomputing path traversal.", "SIDE_EFFECT": "May append ENCRYPTION_KEY entry into backend .env file and set process environment variable." }, @@ -23686,9 +20242,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Ensure backend runtime has a persistent valid Fernet key.", "POST": "Returns a valid Fernet key and guarantees it is present in process environment.", "PRE": "env_file_path points to a writable backend .env file or ENCRYPTION_KEY exists in process environment.", - "PURPOSE": "Ensure backend runtime has a persistent valid Fernet key.", "SIDE_EFFECT": "May create or append backend/.env when key is missing." }, "relations": [], @@ -23706,13 +20262,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Application logging system with CotJsonFormatter producing molecular CoT JSON output.", "COMPLEXITY": 5, "DATA_CONTRACT": "All log records conform to molecular CoT JSON schema: {ts, level, trace_id, src, marker, intent, span_id?, payload?, error?}", "INVARIANT": "CotJsonFormatter.format() always returns valid single-line JSON string.", "LAYER": "Core", "POST": "All log output is single-line JSON with ts, level, trace_id, src, marker, intent, payload, error, span_id.", "PRE": "Python 3.7+ with cot_logger ContextVars available.", - "PURPOSE": "Application logging system with CotJsonFormatter producing molecular CoT JSON output.", "RATIONALE": "Replaced BeliefFormatter text-based [Entry]/[Exit]/[Action] logging with CotJsonFormatter JSON output. Old format was not machine-parseable and mixed presentation with intent. CotJsonFormatter produces structured JSON consistent with cot_logger.py MarkerLogger protocol.", "REJECTED": "Keeping both formatters side-by-side was rejected (two inconsistent output formats would confuse log consumers).", "SIDE_EFFECT": "Configures global logger handlers and formatters; seeds global _enable_belief_state and _task_log_level; writes JSON to console/files." @@ -23771,8 +20327,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "JSON formatter implementing the molecular CoT logging protocol. Outputs single-line JSON with ts, level, trace_id, src, marker, intent, payload, error, span_id." + "BRIEF": "JSON formatter implementing the molecular CoT logging protocol. Outputs single-line JSON with ts, level, trace_id, src, marker, intent, payload, error, span_id.", + "COMPLEXITY": 3 }, "relations": [ { @@ -23796,9 +20352,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Format a LogRecord into a single-line CoT JSON string with molecular CoT protocol fields.", "COMPLEXITY": 2, - "INVARIANT": "Output is always valid single-line JSON.", - "PURPOSE": "Format a LogRecord into a single-line CoT JSON string with molecular CoT protocol fields." + "INVARIANT": "Output is always valid single-line JSON." }, "relations": [], "schema_warnings": [], @@ -23815,8 +20371,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Legacy formatter that adds belief state prefixes to log messages. Deprecated in favor of CotJsonFormatter.", "COMPLEXITY": 2, - "PURPOSE": "Legacy formatter that adds belief state prefixes to log messages. Deprecated in favor of CotJsonFormatter.", "RATIONALE": "Kept for backward compatibility; may be used by external consumers of this module." }, "relations": [], @@ -23834,8 +20390,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "A Pydantic model representing a single, structured log entry." + "BRIEF": "A Pydantic model representing a single, structured log entry.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -23852,10 +20408,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Context manager for Molecular CoT structured logging. Uses cot_logger.log() for JSON output.", "COMPLEXITY": 3, "POST": "Thread-local belief state is updated; REASON/REFLECT/EXPLORE markers emitted via structured JSON logger.", - "PRE": "anchor_id must be provided.", - "PURPOSE": "Context manager for Molecular CoT structured logging. Uses cot_logger.log() for JSON output." + "PRE": "anchor_id must be provided." }, "relations": [], "schema_warnings": [], @@ -23872,10 +20428,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Configures the main logger and the CoT logger with CotJsonFormatter, file handlers, and global flags.", "COMPLEXITY": 4, "POST": "Logger levels, handlers, formatters, belief state flag, and task log level are updated.", "PRE": "config is a valid LoggingConfig instance.", - "PURPOSE": "Configures the main logger and the CoT logger with CotJsonFormatter, file handlers, and global flags.", "SIDE_EFFECT": "Mutates global _enable_belief_state, _task_log_level; adds/removes handlers on both logger and cot_logger; creates file directories." }, "relations": [ @@ -23906,8 +20462,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Returns the current task log level filter." + "BRIEF": "Returns the current task log level filter.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -23924,8 +20480,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Checks if a log level should be recorded based on task_log_level setting." + "BRIEF": "Checks if a log level should be recorded based on task_log_level setting.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -23942,65 +20498,11 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "The global application logger instance configured with CotJsonFormatter, console handler, and WebSocketLogHandler." + "BRIEF": "The global application logger instance configured with CotJsonFormatter, console handler, and WebSocketLogHandler.", + "COMPLEXITY": 2 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Global'", - "detail": { - "actual_type": "Global", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Global' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Global" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Global'", - "detail": { - "actual_type": "Global", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Global' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Global" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region Logger [C:2] [TYPE Global] [SEMANTICS logger,global,instance]\n# @BRIEF The global application logger instance configured with CotJsonFormatter, console handler, and WebSocketLogHandler.\nlogger = logging.getLogger(\"superset_tools_app\")\n\n# #region believed [C:2] [TYPE Function] [SEMANTICS decorator,belief,scope]\n# @BRIEF A decorator that wraps a function in a belief scope.\ndef believed(anchor_id: str):\n def decorator(func):\n def wrapper(*args, **kwargs):\n with belief_scope(anchor_id):\n return func(*args, **kwargs)\n return wrapper\n return decorator\n# #endregion believed\nlogger.setLevel(logging.INFO)\n\n# Create CotJsonFormatter\n_formatter = CotJsonFormatter()\n\n# Add console handler\nconsole_handler = logging.StreamHandler()\nconsole_handler.setFormatter(_formatter)\nlogger.addHandler(console_handler)\n\n# Add WebSocket log handler\nwebsocket_log_handler = WebSocketLogHandler()\nwebsocket_log_handler.setFormatter(_formatter)\nlogger.addHandler(websocket_log_handler)\n\n# Example usage:\n# logger.info(\"Application started\", extra={\"context_key\": \"context_value\"})\n# logger.error(\"An error occurred\", exc_info=True)\n\n\n# #region explore [C:2] [TYPE Function] [SEMANTICS log,explore,marker,warning]\n# @BRIEF Logs an EXPLORE marker (WARNING level) with structured extra data for CotJsonFormatter.\ndef explore(self, msg, *args, **kwargs):\n \"\"\"Log an EXPLORE marker — searching, alternatives, violated assumptions.\n\n Passes structured ``extra`` data so CotJsonFormatter produces proper JSON.\n \"\"\"\n user_extra = kwargs.pop('extra', {})\n error_val = kwargs.pop('error', None)\n extra = {'marker': 'EXPLORE', 'intent': msg}\n if error_val is not None:\n extra['error'] = error_val\n extra.update(user_extra)\n self.warning(msg, *args, extra=extra, **kwargs)\n# #endregion explore\n\n\n# #region reason [C:2] [TYPE Function] [SEMANTICS log,reason,marker,debug]\n# @BRIEF Logs a REASON marker (DEBUG level) with structured extra data for CotJsonFormatter.\ndef reason(self, msg, *args, **kwargs):\n \"\"\"Log a REASON marker — strict deduction, core logic.\n\n Passes structured ``extra`` data so CotJsonFormatter produces proper JSON.\n \"\"\"\n user_extra = kwargs.pop('extra', {})\n error_val = kwargs.pop('error', None)\n extra = {'marker': 'REASON', 'intent': msg}\n if error_val is not None:\n extra['error'] = error_val\n extra.update(user_extra)\n self.debug(msg, *args, extra=extra, **kwargs)\n# #endregion reason\n\n\n# #region reflect [C:2] [TYPE Function] [SEMANTICS log,reflect,marker,debug]\n# @BRIEF Logs a REFLECT marker (DEBUG level) with structured extra data for CotJsonFormatter.\ndef reflect(self, msg, *args, **kwargs):\n \"\"\"Log a REFLECT marker — self-check, structural validation.\n\n Passes structured ``extra`` data so CotJsonFormatter produces proper JSON.\n \"\"\"\n user_extra = kwargs.pop('extra', {})\n error_val = kwargs.pop('error', None)\n extra = {'marker': 'REFLECT', 'intent': msg}\n if error_val is not None:\n extra['error'] = error_val\n extra.update(user_extra)\n self.debug(msg, *args, extra=extra, **kwargs)\n# #endregion reflect\n\nlogger.explore = types.MethodType(explore, logger)\nlogger.reason = types.MethodType(reason, logger)\nlogger.reflect = types.MethodType(reflect, logger)\n\n# #endregion Logger\n" @@ -24014,8 +20516,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "A decorator that wraps a function in a belief scope." + "BRIEF": "A decorator that wraps a function in a belief scope.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -24032,8 +20534,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Logs an EXPLORE marker (WARNING level) with structured extra data for CotJsonFormatter." + "BRIEF": "Logs an EXPLORE marker (WARNING level) with structured extra data for CotJsonFormatter.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -24050,8 +20552,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Logs a REASON marker (DEBUG level) with structured extra data for CotJsonFormatter." + "BRIEF": "Logs a REASON marker (DEBUG level) with structured extra data for CotJsonFormatter.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -24068,8 +20570,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Logs a REFLECT marker (DEBUG level) with structured extra data for CotJsonFormatter." + "BRIEF": "Logs a REFLECT marker (DEBUG level) with structured extra data for CotJsonFormatter.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -24086,9 +20588,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that belief_scope generates [REASON] and [REFLECT] logs at DEBUG level.", "POST": "Logs are verified to contain REASON and REFLECT markers at DEBUG level.", - "PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.", - "PURPOSE": "Test that belief_scope generates [REASON] and [REFLECT] logs at DEBUG level." + "PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG." }, "relations": [ { @@ -24112,9 +20614,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that belief_scope logs EXPLORE on exception.", "POST": "Logs are verified to contain EXPLORE marker.", - "PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.", - "PURPOSE": "Test that belief_scope logs EXPLORE on exception." + "PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG." }, "relations": [ { @@ -24138,9 +20640,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that belief_scope logs REFLECT on success.", "POST": "Logs are verified to contain REFLECT marker.", - "PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.", - "PURPOSE": "Test that belief_scope logs REFLECT on success." + "PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG." }, "relations": [ { @@ -24164,9 +20666,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that belief_scope REFLECT logs are NOT visible at INFO level.", "POST": "REASON is visible at INFO (uses info()); REFLECT is not (uses debug()).", - "PRE": "belief_scope is available. caplog fixture is used.", - "PURPOSE": "Test that belief_scope REFLECT logs are NOT visible at INFO level." + "PRE": "belief_scope is available. caplog fixture is used." }, "relations": [ { @@ -24190,9 +20692,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that default task log level is INFO.", "POST": "Default level is INFO.", - "PRE": "None.", - "PURPOSE": "Test that default task log level is INFO." + "PRE": "None." }, "relations": [ { @@ -24216,9 +20718,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that should_log_task_level correctly filters log levels.", "POST": "Filtering works correctly for all level combinations.", - "PRE": "None.", - "PURPOSE": "Test that should_log_task_level correctly filters log levels." + "PRE": "None." }, "relations": [ { @@ -24242,9 +20744,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that configure_logger updates task_log_level.", "POST": "task_log_level is updated correctly.", - "PRE": "LoggingConfig is available.", - "PURPOSE": "Test that configure_logger updates task_log_level." + "PRE": "LoggingConfig is available." }, "relations": [ { @@ -24268,9 +20770,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that enable_belief_state flag controls belief_scope logging.", "POST": "belief_scope explicit REASON logs are controlled by the flag; REFLECT always logged.", - "PRE": "LoggingConfig is available. caplog fixture is used.", - "PURPOSE": "Test that enable_belief_state flag controls belief_scope logging." + "PRE": "LoggingConfig is available. caplog fixture is used." }, "relations": [ { @@ -24294,7 +20796,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Test @PRE condition: anchor_id must be provided" + "BRIEF": "Test @PRE condition: anchor_id must be provided" }, "relations": [ { @@ -24318,7 +20820,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Test @POST condition: Logger level, handlers, belief state flag, and task log level are updated." + "BRIEF": "Test @POST condition: Logger level, handlers, belief state flag, and task log level are updated." }, "relations": [ { @@ -24342,13 +20844,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Service for tracking and synchronizing Superset Resource IDs (UUID <-> Integer ID)", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[environment_id, resource_type, uuid] -> Output[remote_integer_id|None]", "INVARIANT": "sync_environment must handle remote API failures gracefully.", "LAYER": "Core", "POST": "Mapping synchronization and lookup APIs are available for environment-scoped UUID-to-integer resolution.", "PRE": "Database session is valid and Superset client factory returns authenticated clients for requested environments.", - "PURPOSE": "Service for tracking and synchronizing Superset Resource IDs (UUID <-> Integer ID)", "SIDE_EFFECT": "Reads/writes ResourceMapping rows, emits logs, and schedules periodic sync jobs.", "TEST_DATA": "mock_superset_resources -> {'chart': [{'id': 42, 'uuid': '1234', 'slice_name': 'test'}], 'dataset': [{'id': 99, 'uuid': '5678', 'table_name': 'data'}]}" }, @@ -24387,12 +20889,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Service handling the cataloging and retrieval of remote Superset Integer IDs.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[db_session] -> Output[IdMappingService]", "INVARIANT": "self.db remains the authoritative session for all mapping operations.", "POST": "Service instance provides scheduler control and environment-scoped mapping synchronization APIs.", "PRE": "db_session is an active SQLAlchemy Session bound to mapping tables.", - "PURPOSE": "Service handling the cataloging and retrieval of remote Superset Integer IDs.", "SIDE_EFFECT": "Instantiates an in-process scheduler and performs database writes during sync cycles.", "TEST_CONTRACT": "IdMappingServiceModel ->" }, @@ -24410,29 +20912,7 @@ "target_ref": "[LoggerModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is forbidden for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region IdMappingService [C:5] [TYPE Class]\n# @BRIEF Service handling the cataloging and retrieval of remote Superset Integer IDs.\n# @PRE: db_session is an active SQLAlchemy Session bound to mapping tables.\n# @POST: Service instance provides scheduler control and environment-scoped mapping synchronization APIs.\n# @RELATION DEPENDS_ON -> [MappingModels]\n# @RELATION DEPENDS_ON -> [LoggerModule]\n# @INVARIANT: self.db remains the authoritative session for all mapping operations.\n# @SIDE_EFFECT: Instantiates an in-process scheduler and performs database writes during sync cycles.\n# @DATA_CONTRACT: Input[db_session] -> Output[IdMappingService]\n#\n# @TEST_CONTRACT: IdMappingServiceModel ->\n# {\n# required_fields: {db_session: Session},\n# invariants: [\n# \"sync_environment correctly creates or updates ResourceMapping records\",\n# \"get_remote_id returns an integer or None\",\n# \"get_remote_ids_batch returns a dictionary of valid UUIDs to integers\"\n# ]\n# }\n# @TEST_FIXTURE: valid_mapping_service -> {\"db_session\": \"MockSession()\"}\n# @TEST_EDGE: sync_api_failure -> handles exception gracefully\n# @TEST_EDGE: get_remote_id_not_found -> returns None\n# @TEST_EDGE: get_batch_empty_list -> returns empty dict\n# @TEST_INVARIANT: resilient_fetching -> verifies: [sync_api_failure]\nclass IdMappingService:\n # #region __init__ [TYPE Function]\n # @PURPOSE: Initializes the mapping service.\n def __init__(self, db_session: Session):\n self.db = db_session\n self.scheduler = BackgroundScheduler()\n self._sync_job = None\n # #endregion __init__\n # #region start_scheduler [TYPE Function]\n # @PURPOSE: Starts the background scheduler with a given cron string.\n # @PARAM: cron_string (str) - Cron expression for the sync interval.\n # @PARAM: environments (List[str]) - List of environment IDs to sync.\n # @PARAM: superset_client_factory - Function to get a client for an environment.\n def start_scheduler(\n self, cron_string: str, environments: list[str], superset_client_factory\n ):\n with belief_scope(\"IdMappingService.start_scheduler\"):\n if self._sync_job:\n self.scheduler.remove_job(self._sync_job.id)\n logger.info(\n \"[IdMappingService.start_scheduler][Reflect] Removed existing sync job.\"\n )\n def sync_all():\n seed_trace_id()\n for env_id in environments:\n client = superset_client_factory(env_id)\n if client:\n self.sync_environment(env_id, client)\n self._sync_job = self.scheduler.add_job(\n sync_all,\n CronTrigger.from_crontab(cron_string),\n id=\"id_mapping_sync_job\",\n replace_existing=True,\n )\n if not self.scheduler.running:\n self.scheduler.start()\n logger.info(\n f\"[IdMappingService.start_scheduler][Coherence:OK] Started background scheduler with cron: {cron_string}\"\n )\n else:\n logger.info(\n f\"[IdMappingService.start_scheduler][Coherence:OK] Updated background scheduler with cron: {cron_string}\"\n )\n # #endregion start_scheduler\n # #region sync_environment [TYPE Function]\n # @PURPOSE: Fully synchronizes mapping for a specific environment.\n # @PARAM: environment_id (str) - Target environment ID.\n # @PARAM: superset_client - Instance capable of hitting the Superset API.\n # @PRE: environment_id exists in the database.\n # @POST: ResourceMapping records for the environment are created or updated.\n def sync_environment(\n self, environment_id: str, superset_client, incremental: bool = False\n ) -> None:\n \"\"\"\n Polls the Superset APIs for the target environment and updates the local mapping table.\n If incremental=True, only fetches items changed since the max last_synced_at date.\n \"\"\"\n seed_trace_id()\n with belief_scope(\"IdMappingService.sync_environment\"):\n logger.reason(\n f\"Starting sync for environment {environment_id}\",\n extra={\"src\": \"IdMappingService.sync_environment\", \"payload\": {\"environment_id\": environment_id, \"incremental\": incremental}},\n )\n # Implementation Note: In a real scenario, superset_client needs to be an instance\n # capable of auth & iteration over /api/v1/chart/, /api/v1/dataset/, /api/v1/dashboard/\n # Here we structure the logic according to the spec.\n types_to_poll = [\n (ResourceType.CHART, \"chart\", \"slice_name\"),\n (ResourceType.DATASET, \"dataset\", \"table_name\"),\n (\n ResourceType.DASHBOARD,\n \"dashboard\",\n \"slug\",\n ), # Note: dashboard slug or dashboard_title\n ]\n total_synced = 0\n total_deleted = 0\n try:\n for res_enum, endpoint, name_field in types_to_poll:\n logger.debug(\n f\"[IdMappingService.sync_environment][Explore] Polling {endpoint} endpoint\"\n )\n # Simulated API Fetch (Would be: superset_client.get(f\"/api/v1/{endpoint}/\")... )\n # This relies on the superset API structure, e.g. { \"result\": [{\"id\": 1, \"uuid\": \"...\", name_field: \"...\"}] }\n # We assume superset_client provides a generic method to fetch all pages.\n try:\n since_dttm = None\n if incremental:\n from sqlalchemy.sql import func\n max_date = (\n self.db.query(func.max(ResourceMapping.last_synced_at))\n .filter(\n ResourceMapping.environment_id == environment_id,\n ResourceMapping.resource_type == res_enum,\n )\n .scalar()\n )\n if max_date:\n # We subtract a bit for safety overlap\n from datetime import timedelta\n since_dttm = max_date - timedelta(minutes=5)\n logger.debug(\n f\"[IdMappingService.sync_environment] Incremental sync since {since_dttm}\"\n )\n resources = superset_client.get_all_resources(\n endpoint, since_dttm=since_dttm\n )\n # Track which UUIDs we see in this sync cycle\n synced_uuids = set()\n for res in resources:\n res_uuid = res.get(\"uuid\")\n raw_id = res.get(\"id\")\n res_name = res.get(name_field)\n if not res_uuid or raw_id is None:\n continue\n synced_uuids.add(res_uuid)\n res_id = str(raw_id) # Store as string\n # Upsert Logic\n mapping = (\n self.db.query(ResourceMapping)\n .filter_by(\n environment_id=environment_id,\n resource_type=res_enum,\n uuid=res_uuid,\n )\n .first()\n )\n if mapping:\n mapping.remote_integer_id = res_id\n mapping.resource_name = res_name\n mapping.last_synced_at = datetime.now(UTC)\n else:\n new_mapping = ResourceMapping(\n environment_id=environment_id,\n resource_type=res_enum,\n uuid=res_uuid,\n remote_integer_id=res_id,\n resource_name=res_name,\n last_synced_at=datetime.now(UTC),\n )\n self.db.add(new_mapping)\n total_synced += 1\n # Delete stale mappings: rows for this env+type whose UUID\n # was NOT returned by the API (resource was deleted remotely)\n # We only do this on full syncs, because incremental syncs don't return all UUIDs\n if not incremental:\n stale_query = self.db.query(ResourceMapping).filter(\n ResourceMapping.environment_id == environment_id,\n ResourceMapping.resource_type == res_enum,\n )\n if synced_uuids:\n stale_query = stale_query.filter(\n ResourceMapping.uuid.notin_(synced_uuids)\n )\n deleted = stale_query.delete(synchronize_session=\"fetch\")\n if deleted:\n total_deleted += deleted\n logger.reason(\n f\"Removed {deleted} stale {endpoint} mapping(s) for {environment_id}\",\n extra={\"src\": \"IdMappingService.sync_environment\", \"payload\": {\"deleted\": deleted, \"endpoint\": endpoint, \"environment_id\": environment_id}},\n )\n except Exception as loop_e:\n logger.error(\n f\"[IdMappingService.sync_environment][Reason] Error polling {endpoint}: {loop_e}\"\n )\n # Continue to next resource type instead of blowing up the whole sync\n self.db.commit()\n logger.info(\n f\"[IdMappingService.sync_environment][Coherence:OK] Successfully synced {total_synced} items and deleted {total_deleted} stale items.\"\n )\n except Exception as e:\n self.db.rollback()\n logger.error(\n f\"[IdMappingService.sync_environment][Coherence:Failed] Critical sync failure: {e}\"\n )\n raise\n # #endregion sync_environment\n # #region get_remote_id [TYPE Function]\n # @PURPOSE: Retrieves the remote integer ID for a given universal UUID.\n # @PARAM: environment_id (str)\n # @PARAM: resource_type (ResourceType)\n # @PARAM: uuid (str)\n # @RETURN: Optional[int]\n def get_remote_id(\n self, environment_id: str, resource_type: ResourceType, uuid: str\n ) -> int | None:\n mapping = (\n self.db.query(ResourceMapping)\n .filter_by(\n environment_id=environment_id, resource_type=resource_type, uuid=uuid\n )\n .first()\n )\n if mapping:\n try:\n return int(mapping.remote_integer_id)\n except ValueError:\n return None\n return None\n # #endregion get_remote_id\n # #region get_remote_ids_batch [TYPE Function]\n # @PURPOSE: Retrieves remote integer IDs for a list of universal UUIDs efficiently.\n # @PARAM: environment_id (str)\n # @PARAM: resource_type (ResourceType)\n # @PARAM: uuids (List[str])\n # @RETURN: Dict[str, int] - Mapping of UUID -> Integer ID\n def get_remote_ids_batch(\n self, environment_id: str, resource_type: ResourceType, uuids: list[str]\n ) -> dict[str, int]:\n if not uuids:\n return {}\n mappings = (\n self.db.query(ResourceMapping)\n .filter(\n ResourceMapping.environment_id == environment_id,\n ResourceMapping.resource_type == resource_type,\n ResourceMapping.uuid.in_(uuids),\n )\n .all()\n )\n result = {}\n for m in mappings:\n try:\n result[m.uuid] = int(m.remote_integer_id)\n except ValueError:\n logger.debug(\"Could not parse remote_integer_id for mapping %s (uuid=%s)\", m.id, m.uuid)\n return result\n # #endregion get_remote_ids_batch\n# #endregion IdMappingService\n" @@ -24446,8 +20926,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PARAM": "superset_client_factory - Function to get a client for an environment.", - "PURPOSE": "Starts the background scheduler with a given cron string." + "BRIEF": "Starts the background scheduler with a given cron string.", + "PARAM": "superset_client_factory - Function to get a client for an environment." }, "relations": [], "schema_warnings": [ @@ -24471,10 +20951,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fully synchronizes mapping for a specific environment.", "PARAM": "superset_client - Instance capable of hitting the Superset API.", "POST": "ResourceMapping records for the environment are created or updated.", - "PRE": "environment_id exists in the database.", - "PURPOSE": "Fully synchronizes mapping for a specific environment." + "PRE": "environment_id exists in the database." }, "relations": [], "schema_warnings": [ @@ -24498,8 +20978,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieves the remote integer ID for a given universal UUID.", "PARAM": "uuid (str)", - "PURPOSE": "Retrieves the remote integer ID for a given universal UUID.", "RETURN": "Optional[int]" }, "relations": [], @@ -24530,8 +21010,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieves remote integer IDs for a list of universal UUIDs efficiently.", "PARAM": "uuids (List[str])", - "PURPOSE": "Retrieves remote integer IDs for a list of universal UUIDs efficiently.", "RETURN": "Dict[str, int] - Mapping of UUID -> Integer ID" }, "relations": [], @@ -24562,65 +21042,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "FastAPI/Starlette middleware package for request-level context and tracing." + "BRIEF": "FastAPI/Starlette middleware package for request-level context and tracing.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region middleware_package [C:1] [TYPE Package] [SEMANTICS fastapi, package, tracing]\n# @BRIEF FastAPI/Starlette middleware package for request-level context and tracing.\n# #endregion middleware_package\n" @@ -24634,8 +21060,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "FastAPI/Starlette middleware that seeds a trace_id for every incoming HTTP request." + "BRIEF": "FastAPI/Starlette middleware that seeds a trace_id for every incoming HTTP request.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -24652,8 +21078,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Starlette BaseHTTPMiddleware that seeds a trace_id per request." + "BRIEF": "Starlette BaseHTTPMiddleware that seeds a trace_id per request.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -24670,7 +21096,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Standard BaseHTTPMiddleware initialiser." + "BRIEF": "Standard BaseHTTPMiddleware initialiser." }, "relations": [], "schema_warnings": [], @@ -24687,8 +21113,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Dispatch handler that seeds trace_id before passing to the next middleware." + "BRIEF": "Dispatch handler that seeds trace_id before passing to the next middleware.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -24720,13 +21146,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Parse Superset export ZIP archives into normalized object catalogs for diffing.", "COMPLEXITY": 5, "DATA_CONTRACT": "ArchivePath -> ParsedMigration", "INVARIANT": "Parsing is read-only and never mutates archive files.", "LAYER": "Domain", "POST": "Parsed migration archive returned", "PRE": "Archive file path is valid and readable", - "PURPOSE": "Parse Superset export ZIP archives into normalized object catalogs for diffing.", "SIDE_EFFECT": "Reads archive file (read-only)" }, "relations": [ @@ -24751,7 +21177,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Extract normalized dashboards/charts/datasets metadata from ZIP archives." + "BRIEF": "Extract normalized dashboards/charts/datasets metadata from ZIP archives." }, "relations": [ { @@ -24845,9 +21271,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Extract object catalogs from Superset archive.", "POST": "Returns object lists grouped by resource type.", "PRE": "zip_path points to a valid readable ZIP.", - "PURPOSE": "Extract object catalogs from Superset archive.", "RETURN": "Dict[str, List[Dict[str, Any]]]" }, "relations": [ @@ -24879,9 +21305,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Read and normalize YAML manifests for one object type.", "POST": "Returns only valid normalized objects.", - "PRE": "object_type is one of dashboards/charts/datasets.", - "PURPOSE": "Read and normalize YAML manifests for one object type." + "PRE": "object_type is one of dashboards/charts/datasets." }, "relations": [ { @@ -24905,9 +21331,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Convert raw YAML payload to stable diff signature shape.", "POST": "Returns normalized descriptor with `uuid`, `title`, and `signature`.", - "PRE": "payload is parsed YAML mapping.", - "PURPOSE": "Convert raw YAML payload to stable diff signature shape." + "PRE": "payload is parsed YAML mapping." }, "relations": [], "schema_warnings": [], @@ -24924,13 +21350,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Compute pre-flight migration diff and risk scoring without apply.", "COMPLEXITY": 5, "DATA_CONTRACT": "EnvironmentConfig -> MigrationDiffReport", "INVARIANT": "Dry run is informative only and must not mutate target environment.", "LAYER": "Domain", "POST": "Dry-run diff returned without mutation", "PRE": "Source and target environments configured", - "PURPOSE": "Compute pre-flight migration diff and risk scoring without apply.", "SIDE_EFFECT": "Reads source environment (read-only)" }, "relations": [ @@ -24973,7 +21399,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Build deterministic diff/risk payload for migration pre-flight." + "BRIEF": "Build deterministic diff/risk payload for migration pre-flight." }, "relations": [ { @@ -25192,7 +21618,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Resolve UUID mapping for optional DB config replacement." + "BRIEF": "Resolve UUID mapping for optional DB config replacement." }, "relations": [], "schema_warnings": [], @@ -25209,7 +21635,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Merge extracted resources by UUID to avoid duplicates." + "BRIEF": "Merge extracted resources by UUID to avoid duplicates." }, "relations": [], "schema_warnings": [], @@ -25226,7 +21652,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Build UUID-index map for normalized resources." + "BRIEF": "Build UUID-index map for normalized resources." }, "relations": [], "schema_warnings": [], @@ -25243,7 +21669,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Compute create/update/delete buckets by UUID+signature." + "BRIEF": "Compute create/update/delete buckets by UUID+signature." }, "relations": [ { @@ -25267,7 +21693,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Pull target metadata and normalize it into comparable signatures." + "BRIEF": "Pull target metadata and normalize it into comparable signatures." }, "relations": [], "schema_warnings": [], @@ -25284,7 +21710,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Build risk items for missing datasource, broken refs, overwrite, owner mismatch." + "BRIEF": "Build risk items for missing datasource, broken refs, overwrite, owner mismatch." }, "relations": [], "schema_warnings": [], @@ -25301,13 +21727,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Compute deterministic migration risk items and aggregate score for dry-run reporting.", "COMPLEXITY": 5, "DATA_CONTRACT": "Module[build_risks, score_risks]", "INVARIANT": "Risk scoring must remain bounded to [0,100] and preserve severity-to-weight mapping.", "LAYER": "Domain", "POST": "Risk scoring output preserves item list and provides bounded score with derived level.", "PRE": "Risk assessor functions receive normalized migration object collections from dry-run orchestration.", - "PURPOSE": "Compute deterministic migration risk items and aggregate score for dry-run reporting.", "SIDE_EFFECT": "Emits diagnostic logs and performs read-only metadata requests via Superset client.", "TEST_CONTRACT": "[source_objects,target_objects,diff,target_client] -> [List[RiskItem]]", "TEST_EDGE": "[external_fail] -> [target_client get_databases exception propagates to caller]", @@ -25351,149 +21777,6 @@ } ], "schema_warnings": [ - { - "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 C5", - "detail": { - "actual_complexity": 5, - "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 C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is forbidden for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is forbidden for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -25584,10 +21867,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build UUID-index from normalized objects.", "DATA_CONTRACT": "List[Dict[str, Any]] -> Dict[str, Dict[str, Any]]", "POST": "Returns mapping keyed by string uuid; only truthy uuid values are included.", "PRE": "Input list items are dict-like payloads potentially containing \"uuid\".", - "PURPOSE": "Build UUID-index from normalized objects.", "SIDE_EFFECT": "Emits reasoning/reflective logs only." }, "relations": [], @@ -25605,10 +21888,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Normalize owner payloads for stable comparison.", "DATA_CONTRACT": "Any -> List[str]", "POST": "Returns sorted unique owner identifiers as strings.", "PRE": "Owners may be list payload, scalar values, or None.", - "PURPOSE": "Normalize owner payloads for stable comparison.", "SIDE_EFFECT": "Emits reasoning/reflective logs only." }, "relations": [], @@ -25626,10 +21909,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build risk list from computed diffs and target catalog state.", "DATA_CONTRACT": ") -> List[Dict[str, Any]]", "POST": "Returns list of deterministic risk items derived from overwrite, missing datasource, reference, and owner mismatch checks.", "PRE": "target_client is authenticated/usable for database list retrieval.", - "PURPOSE": "Build risk list from computed diffs and target catalog state.", "SIDE_EFFECT": "Calls target Superset API for databases metadata and emits logs." }, "relations": [ @@ -25660,10 +21943,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Aggregate risk list into score and level.", "DATA_CONTRACT": "List[Dict[str, Any]] -> Dict[str, Any]", "POST": "Returns dict with score in [0,100], derived level, and original items.", "PRE": "risk_items contains optional severity fields expected in {high,medium,low} or defaults to low weight.", - "PURPOSE": "Aggregate risk list into score and level.", "SIDE_EFFECT": "Emits reasoning/reflective logs only." }, "relations": [], @@ -25681,13 +21964,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Transforms Superset export ZIP archives while preserving archive integrity and patching mapped identifiers.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[zip_path, output_path, db_mapping, target_env_id?, fix_cross_filters?] -> Output[Transformed Superset archive]", "INVARIANT": "ZIP structure and non-targeted metadata must remain valid after transformation.", "LAYER": "Domain", "POST": "Migration engine contracts preserve ZIP integrity while exposing transformation entrypoints for import pipelines.", "PRE": "Input archives are readable Superset exports and optional mapping collaborators expose remote id lookup APIs.", - "PURPOSE": "Transforms Superset export ZIP archives while preserving archive integrity and patching mapped identifiers.", "SIDE_EFFECT": "Reads and writes temporary archive contents during transformation workflows and emits structured belief-state logs." }, "relations": [ @@ -25730,7 +22013,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Engine for transforming Superset export ZIPs." + "BRIEF": "Engine for transforming Superset export ZIPs." }, "relations": [ { @@ -25774,11 +22057,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Extracts ZIP, replaces database UUIDs in YAMLs, patches cross-filters, and re-packages.", "DATA_CONTRACT": "Input[(str zip_path, str output_path, Dict[str,str] db_mapping, bool strip_databases, Optional[str] target_env_id, bool fix_cross_filters)] -> Output[bool]", "PARAM": "fix_cross_filters (bool) - Whether to patch dashboard json_metadata.", "POST": "Returns True only when extraction, transformation, and packaging complete without exception.", "PRE": "zip_path points to a readable ZIP; output_path parent is writable; db_mapping keys/values are UUID strings.", - "PURPOSE": "Extracts ZIP, replaces database UUIDs in YAMLs, patches cross-filters, and re-packages.", "RETURN": "bool - True if successful.", "SIDE_EFFECT": "Reads/writes filesystem archives, creates temporary directory, emits structured logs." }, @@ -25817,11 +22100,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Replaces database_uuid in a single YAML file.", "DATA_CONTRACT": "Input[(Path file_path, Dict[str,str] db_mapping)] -> Output[None]", "PARAM": "db_mapping (Dict[str, str]) - UUID mapping dictionary.", "POST": "database_uuid is replaced in-place only when source UUID is present in db_mapping.", "PRE": "file_path exists, is readable YAML, and db_mapping contains source->target UUID pairs.", - "PURPOSE": "Replaces database_uuid in a single YAML file.", "SIDE_EFFECT": "Reads and conditionally rewrites YAML file on disk." }, "relations": [], @@ -25846,11 +22129,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Scans extracted chart YAML files and builds a source chart ID to UUID lookup map.", "DATA_CONTRACT": "Input[Path] -> Output[Dict[int,str]]", "PARAM": "temp_dir (Path) - Root dir of unpacked archive.", "POST": "Returns a best-effort Dict[int, str] containing only parseable chart id/uuid pairs.", "PRE": "temp_dir exists and points to extracted archive root with optional chart YAML resources.", - "PURPOSE": "Scans extracted chart YAML files and builds a source chart ID to UUID lookup map.", "RETURN": "Dict[int, str] - Mapping of source Integer ID to UUID.", "SIDE_EFFECT": "Reads chart YAML files from filesystem; suppresses per-file parsing failures." }, @@ -25882,11 +22165,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Rewrites dashboard json_metadata chart/dataset integer identifiers using target environment mappings.", "DATA_CONTRACT": "Input[(Path file_path, str target_env_id, Dict[int,str] source_map)] -> Output[None]", "PARAM": "source_map (Dict[int, str])", "POST": "json_metadata is re-serialized with mapped integer IDs when remote mappings are available; otherwise file remains unchanged.", "PRE": "file_path points to dashboard YAML with json_metadata; target_env_id is non-empty; source_map contains source id->uuid.", - "PURPOSE": "Rewrites dashboard json_metadata chart/dataset integer identifiers using target environment mappings.", "SIDE_EFFECT": "Reads/writes YAML file, performs mapping lookup via mapping_service, emits logs for recoverable/terminal failures." }, "relations": [], @@ -25911,9 +22194,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Defines the abstract base class that all plugins must implement to be recognized by the system. It enforces a common structure for plugin metadata and execution.", "INVARIANT": "All plugins MUST inherit from this class.", - "LAYER": "Core", - "PURPOSE": "Defines the abstract base class that all plugins must implement to be recognized by the system. It enforces a common structure for plugin metadata and execution." + "LAYER": "Core" }, "relations": [ { @@ -25923,30 +22206,7 @@ "target_ref": "Used by PluginLoader to identify valid plugins." } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER 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 PluginBase [TYPE Class] [SEMANTICS plugin, interface, base, abstract]\n# @BRIEF Defines the abstract base class that all plugins must implement to be recognized by the system. It enforces a common structure for plugin metadata and execution.\n# @LAYER: Core\n# @RELATION Used by PluginLoader to identify valid plugins.\n# @INVARIANT: All plugins MUST inherit from this class.\nclass PluginBase(ABC):\n \"\"\"\n Base class for all plugins.\n Plugins must inherit from this class and implement the abstract methods.\n \"\"\"\n @property\n @abstractmethod\n # #region id [TYPE Function]\n # @PURPOSE: Returns the unique identifier for the plugin.\n # @PRE: Plugin instance exists.\n # @POST: Returns string ID.\n # @RETURN: str - Plugin ID.\n def id(self) -> str:\n \"\"\"A unique identifier for the plugin.\"\"\"\n with belief_scope(\"id\"):\n pass\n # #endregion id\n @property\n @abstractmethod\n # #region name [TYPE Function]\n # @PURPOSE: Returns the human-readable name of the plugin.\n # @PRE: Plugin instance exists.\n # @POST: Returns string name.\n # @RETURN: str - Plugin name.\n def name(self) -> str:\n \"\"\"A human-readable name for the plugin.\"\"\"\n with belief_scope(\"name\"):\n pass\n # #endregion name\n @property\n @abstractmethod\n # #region description [TYPE Function]\n # @PURPOSE: Returns a brief description of the plugin.\n # @PRE: Plugin instance exists.\n # @POST: Returns string description.\n # @RETURN: str - Plugin description.\n def description(self) -> str:\n \"\"\"A brief description of what the plugin does.\"\"\"\n with belief_scope(\"description\"):\n pass\n # #endregion description\n @property\n @abstractmethod\n # #region version [TYPE Function]\n # @PURPOSE: Returns the version of the plugin.\n # @PRE: Plugin instance exists.\n # @POST: Returns string version.\n # @RETURN: str - Plugin version.\n def version(self) -> str:\n \"\"\"The version of the plugin.\"\"\"\n with belief_scope(\"version\"):\n pass\n # #endregion version\n @property\n # #region required_permission [TYPE Function]\n # @PURPOSE: Returns the required permission string to execute this plugin.\n # @PRE: Plugin instance exists.\n # @POST: Returns string permission.\n # @RETURN: str - Required permission (e.g., \"plugin:backup:execute\").\n def required_permission(self) -> str:\n \"\"\"The permission string required to execute this plugin.\"\"\"\n with belief_scope(\"required_permission\"):\n return f\"plugin:{self.id}:execute\"\n # #endregion required_permission\n @property\n # #region ui_route [TYPE Function]\n # @PURPOSE: Returns the frontend route for the plugin's UI, if applicable.\n # @PRE: Plugin instance exists.\n # @POST: Returns string route or None.\n # @RETURN: Optional[str] - Frontend route.\n def ui_route(self) -> str | None:\n \"\"\"\n The frontend route for the plugin's UI.\n Returns None if the plugin does not have a dedicated UI page.\n \"\"\"\n with belief_scope(\"ui_route\"):\n return None\n # #endregion ui_route\n @abstractmethod\n # #region get_schema [TYPE Function]\n # @PURPOSE: Returns the JSON schema for the plugin's input parameters.\n # @PRE: Plugin instance exists.\n # @POST: Returns dict schema.\n # @RETURN: Dict[str, Any] - JSON schema.\n def get_schema(self) -> dict[str, Any]:\n \"\"\"\n Returns the JSON schema for the plugin's input parameters.\n This schema will be used to generate the frontend form.\n \"\"\"\n with belief_scope(\"get_schema\"):\n pass\n # #endregion get_schema\n @abstractmethod\n # #region execute [TYPE Function]\n # @PURPOSE: Executes the plugin's core logic.\n # @PARAM: params (Dict[str, Any]) - Validated input parameters.\n # @PRE: params must be a dictionary.\n # @POST: Plugin execution is completed.\n async def execute(self, params: dict[str, Any]):\n with belief_scope(\"execute\"):\n pass\n \"\"\"\n Executes the plugin's logic.\n The `params` argument will be validated against the schema returned by `get_schema()`.\n \"\"\"\n pass\n # #endregion execute\n# #endregion PluginBase\n" @@ -25960,9 +22220,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns the unique identifier for the plugin.", "POST": "Returns string ID.", "PRE": "Plugin instance exists.", - "PURPOSE": "Returns the unique identifier for the plugin.", "RETURN": "str - Plugin ID." }, "relations": [], @@ -25987,9 +22247,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns the human-readable name of the plugin.", "POST": "Returns string name.", "PRE": "Plugin instance exists.", - "PURPOSE": "Returns the human-readable name of the plugin.", "RETURN": "str - Plugin name." }, "relations": [], @@ -26014,9 +22274,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns a brief description of the plugin.", "POST": "Returns string description.", "PRE": "Plugin instance exists.", - "PURPOSE": "Returns a brief description of the plugin.", "RETURN": "str - Plugin description." }, "relations": [], @@ -26041,9 +22301,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns the version of the plugin.", "POST": "Returns string version.", "PRE": "Plugin instance exists.", - "PURPOSE": "Returns the version of the plugin.", "RETURN": "str - Plugin version." }, "relations": [], @@ -26068,9 +22328,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns the required permission string to execute this plugin.", "POST": "Returns string permission.", "PRE": "Plugin instance exists.", - "PURPOSE": "Returns the required permission string to execute this plugin.", "RETURN": "str - Required permission (e.g., \"plugin:backup:execute\")." }, "relations": [], @@ -26095,9 +22355,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns the frontend route for the plugin's UI, if applicable.", "POST": "Returns string route or None.", "PRE": "Plugin instance exists.", - "PURPOSE": "Returns the frontend route for the plugin's UI, if applicable.", "RETURN": "Optional[str] - Frontend route." }, "relations": [], @@ -26122,9 +22382,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns the JSON schema for the plugin's input parameters.", "POST": "Returns dict schema.", "PRE": "Plugin instance exists.", - "PURPOSE": "Returns the JSON schema for the plugin's input parameters.", "RETURN": "Dict[str, Any] - JSON schema." }, "relations": [], @@ -26149,10 +22409,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Executes the plugin's core logic.", "PARAM": "params (Dict[str, Any]) - Validated input parameters.", "POST": "Plugin execution is completed.", - "PRE": "params must be a dictionary.", - "PURPOSE": "Executes the plugin's core logic." + "PRE": "params must be a dictionary." }, "relations": [], "schema_warnings": [ @@ -26176,8 +22436,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Core", - "PURPOSE": "A Pydantic model used to represent the validated configuration and metadata of a loaded plugin. This object is what gets exposed to the API layer." + "BRIEF": "A Pydantic model used to represent the validated configuration and metadata of a loaded plugin. This object is what gets exposed to the API layer.", + "LAYER": "Core" }, "relations": [ { @@ -26187,30 +22447,7 @@ "target_ref": "Instantiated by PluginLoader after validating a PluginBase instance." } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER 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 PluginConfig [TYPE Class] [SEMANTICS plugin, config, schema, pydantic]\n# @BRIEF A Pydantic model used to represent the validated configuration and metadata of a loaded plugin. This object is what gets exposed to the API layer.\n# @LAYER: Core\n# @RELATION Instantiated by PluginLoader after validating a PluginBase instance.\nclass PluginConfig(BaseModel):\n \"\"\"Pydantic model for plugin configuration.\"\"\"\n id: str = Field(..., description=\"Unique identifier for the plugin\")\n name: str = Field(..., description=\"Human-readable name for the plugin\")\n description: str = Field(..., description=\"Brief description of what the plugin does\")\n version: str = Field(..., description=\"Version of the plugin\")\n ui_route: str | None = Field(None, description=\"Frontend route for the plugin UI\")\n input_schema: dict[str, Any] = Field(..., description=\"JSON schema for input parameters\", alias=\"schema\")\n# #endregion PluginConfig\n" @@ -26224,9 +22461,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Scans a specified directory for Python modules, dynamically loads them, and registers any classes that are valid implementations of the PluginBase interface.", "COMPLEXITY": 3, "LAYER": "Core", - "PURPOSE": "Scans a specified directory for Python modules, dynamically loads them, and registers any classes that are valid implementations of the PluginBase interface.", "RATIONALE": "Replaced print() with _logger calls to eliminate silent failures. Added top-level logger import, removed late imports.", "REJECTED": "Keeping print() statements with \"Replace with proper logging\" comments was rejected — they produce no structured output and cannot be filtered by log level." }, @@ -26238,30 +22475,7 @@ "target_ref": "Depends on PluginBase. It is used by the main application to discover and manage available plugins." } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER 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 PluginLoader [C:3] [TYPE Class] [SEMANTICS plugin, loader, dynamic, import]\n# @BRIEF Scans a specified directory for Python modules, dynamically loads them, and registers any classes that are valid implementations of the PluginBase interface.\n# @LAYER: Core\n# @RELATION Depends on PluginBase. It is used by the main application to discover and manage available plugins.\n# @RATIONALE Replaced print() with _logger calls to eliminate silent failures. Added top-level logger import, removed late imports.\n# @REJECTED Keeping print() statements with \"Replace with proper logging\" comments was rejected — they produce no structured output and cannot be filtered by log level.\nclass PluginLoader:\n \"\"\"\n Scans a directory for Python modules, loads them, and identifies classes\n that inherit from PluginBase.\n \"\"\"\n # #region __init__ [TYPE Function]\n # @PURPOSE: Initializes the PluginLoader with a directory to scan.\n # @PRE: plugin_dir is a valid directory path.\n # @POST: Plugins are loaded and registered.\n # @PARAM: plugin_dir (str) - The directory containing plugin modules.\n def __init__(self, plugin_dir: str):\n with belief_scope(\"__init__\"):\n self.plugin_dir = plugin_dir\n self._plugins: dict[str, PluginBase] = {}\n self._plugin_configs: dict[str, PluginConfig] = {}\n self._load_plugins()\n # #endregion __init__\n # #region _load_plugins [TYPE Function]\n # @PURPOSE: Scans the plugin directory and loads all valid plugins.\n # @PRE: plugin_dir exists or can be created.\n # @POST: _load_module is called for each .py file.\n def _load_plugins(self):\n with belief_scope(\"_load_plugins\"):\n \"\"\"\n Scans the plugin directory, imports modules, and registers valid plugins.\n \"\"\"\n if not os.path.exists(self.plugin_dir):\n os.makedirs(self.plugin_dir)\n # Add the plugin directory's parent to sys.path to enable relative imports within plugins\n # This assumes plugin_dir is something like 'backend/src/plugins'\n # and we want 'backend/src' to be on the path for 'from ..core...' imports\n plugin_parent_dir = os.path.abspath(os.path.join(self.plugin_dir, os.pardir))\n if plugin_parent_dir not in sys.path:\n sys.path.insert(0, plugin_parent_dir)\n for filename in os.listdir(self.plugin_dir):\n file_path = os.path.join(self.plugin_dir, filename)\n\n # Handle directory-based plugins (packages)\n if os.path.isdir(file_path):\n init_file = os.path.join(file_path, \"__init__.py\")\n if os.path.exists(init_file):\n self._load_module(filename, init_file)\n continue\n # Handle single-file plugins\n if filename.endswith(\".py\") and filename != \"__init__.py\":\n module_name = filename[:-3]\n self._load_module(module_name, file_path)\n # #endregion _load_plugins\n # #region _load_module [TYPE Function]\n # @PURPOSE: Loads a single Python module and discovers PluginBase implementations.\n # @PRE: module_name and file_path are valid.\n # @POST: Plugin classes are instantiated and registered.\n # @PARAM: module_name (str) - The name of the module.\n # @PARAM: file_path (str) - The path to the module file.\n def _load_module(self, module_name: str, file_path: str):\n with belief_scope(\"_load_module\"):\n \"\"\"\n Loads a single Python module and extracts PluginBase subclasses.\n \"\"\"\n # All runtime code is imported through the canonical `src` package root.\n package_name = f\"src.plugins.{module_name}\"\n\n spec = importlib.util.spec_from_file_location(package_name, file_path)\n if spec is None or spec.loader is None:\n _logger.error(f\"Could not load module spec for {package_name}\")\n return\n module = importlib.util.module_from_spec(spec)\n try:\n spec.loader.exec_module(module)\n except Exception as e:\n _logger.error(f\"Error loading plugin module {module_name}: {e}\")\n return\n for attribute_name in dir(module):\n attribute = getattr(module, attribute_name)\n if (\n isinstance(attribute, type)\n and issubclass(attribute, PluginBase)\n and attribute is not PluginBase\n ):\n try:\n plugin_instance = attribute()\n self._register_plugin(plugin_instance)\n except Exception as e:\n _logger.error(f\"Error instantiating plugin {attribute_name} in {module_name}: {e}\")\n # #endregion _load_module\n # #region _register_plugin [TYPE Function]\n # @PURPOSE: Registers a PluginBase instance and its configuration.\n # @PRE: plugin_instance is a valid implementation of PluginBase.\n # @POST: Plugin is added to _plugins and _plugin_configs.\n # @PARAM: plugin_instance (PluginBase) - The plugin instance to register.\n def _register_plugin(self, plugin_instance: PluginBase):\n with belief_scope(\"_register_plugin\"):\n \"\"\"\n Registers a valid plugin instance.\n \"\"\"\n plugin_id = plugin_instance.id\n if plugin_id in self._plugins:\n _logger.warning(f\"Warning: Duplicate plugin ID '{plugin_id}' found. Skipping.\")\n return\n try:\n schema = plugin_instance.get_schema()\n # Basic validation to ensure it's a dictionary\n if not isinstance(schema, dict):\n raise TypeError(\"get_schema() must return a dictionary.\")\n\n plugin_config = PluginConfig(\n id=plugin_instance.id,\n name=plugin_instance.name,\n description=plugin_instance.description,\n version=plugin_instance.version,\n ui_route=plugin_instance.ui_route,\n schema=schema,\n )\n # The following line is commented out because it requires a schema to be passed to validate against.\n # The schema provided by the plugin is the one being validated, not the data.\n # validate(instance={}, schema=schema)\n self._plugins[plugin_id] = plugin_instance\n self._plugin_configs[plugin_id] = plugin_config\n _logger.info(f\"Plugin '{plugin_instance.name}' (ID: {plugin_id}) loaded successfully.\")\n except Exception as e:\n _logger.error(f\"Error validating plugin '{plugin_instance.name}' (ID: {plugin_id}): {e}\")\n # #endregion _register_plugin\n # #region get_plugin [TYPE Function]\n # @PURPOSE: Retrieves a loaded plugin instance by its ID.\n # @PRE: plugin_id is a string.\n # @POST: Returns plugin instance or None.\n # @PARAM: plugin_id (str) - The unique identifier of the plugin.\n # @RETURN: Optional[PluginBase] - The plugin instance if found, otherwise None.\n def get_plugin(self, plugin_id: str) -> PluginBase | None:\n with belief_scope(\"get_plugin\"):\n \"\"\"\n Returns a loaded plugin instance by its ID.\n \"\"\"\n return self._plugins.get(plugin_id)\n # #endregion get_plugin\n # #region get_all_plugin_configs [TYPE Function]\n # @PURPOSE: Returns a list of all registered plugin configurations.\n # @PRE: None.\n # @POST: Returns list of all PluginConfig objects.\n # @RETURN: List[PluginConfig] - A list of plugin configurations.\n def get_all_plugin_configs(self) -> list[PluginConfig]:\n with belief_scope(\"get_all_plugin_configs\"):\n \"\"\"\n Returns a list of all loaded plugin configurations.\n \"\"\"\n return list(self._plugin_configs.values())\n # #endregion get_all_plugin_configs\n # #region has_plugin [TYPE Function]\n # @PURPOSE: Checks if a plugin with the given ID is registered.\n # @PRE: plugin_id is a string.\n # @POST: Returns True if plugin exists.\n # @PARAM: plugin_id (str) - The unique identifier of the plugin.\n # @RETURN: bool - True if the plugin is registered, False otherwise.\n def has_plugin(self, plugin_id: str) -> bool:\n with belief_scope(\"has_plugin\"):\n \"\"\"\n Checks if a plugin with the given ID is loaded.\n \"\"\"\n return plugin_id in self._plugins\n # #endregion has_plugin\n# #endregion PluginLoader\n" @@ -26275,9 +22489,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Scans the plugin directory and loads all valid plugins.", "POST": "_load_module is called for each .py file.", - "PRE": "plugin_dir exists or can be created.", - "PURPOSE": "Scans the plugin directory and loads all valid plugins." + "PRE": "plugin_dir exists or can be created." }, "relations": [], "schema_warnings": [], @@ -26294,10 +22508,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Loads a single Python module and discovers PluginBase implementations.", "PARAM": "file_path (str) - The path to the module file.", "POST": "Plugin classes are instantiated and registered.", - "PRE": "module_name and file_path are valid.", - "PURPOSE": "Loads a single Python module and discovers PluginBase implementations." + "PRE": "module_name and file_path are valid." }, "relations": [], "schema_warnings": [ @@ -26321,10 +22535,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Registers a PluginBase instance and its configuration.", "PARAM": "plugin_instance (PluginBase) - The plugin instance to register.", "POST": "Plugin is added to _plugins and _plugin_configs.", - "PRE": "plugin_instance is a valid implementation of PluginBase.", - "PURPOSE": "Registers a PluginBase instance and its configuration." + "PRE": "plugin_instance is a valid implementation of PluginBase." }, "relations": [], "schema_warnings": [ @@ -26348,10 +22562,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieves a loaded plugin instance by its ID.", "PARAM": "plugin_id (str) - The unique identifier of the plugin.", "POST": "Returns plugin instance or None.", "PRE": "plugin_id is a string.", - "PURPOSE": "Retrieves a loaded plugin instance by its ID.", "RETURN": "Optional[PluginBase] - The plugin instance if found, otherwise None." }, "relations": [], @@ -26382,9 +22596,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns a list of all registered plugin configurations.", "POST": "Returns list of all PluginConfig objects.", "PRE": "None.", - "PURPOSE": "Returns a list of all registered plugin configurations.", "RETURN": "List[PluginConfig] - A list of plugin configurations." }, "relations": [], @@ -26409,10 +22623,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Checks if a plugin with the given ID is registered.", "PARAM": "plugin_id (str) - The unique identifier of the plugin.", "POST": "Returns True if plugin exists.", "PRE": "plugin_id is a string.", - "PURPOSE": "Checks if a plugin with the given ID is registered.", "RETURN": "bool - True if the plugin is registered, False otherwise." }, "relations": [], @@ -26443,9 +22657,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Manages scheduled tasks using APScheduler.", "COMPLEXITY": 3, - "LAYER": "Core", - "PURPOSE": "Manages scheduled tasks using APScheduler." + "LAYER": "Core" }, "relations": [ { @@ -26469,8 +22683,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Provides a service to manage scheduled backup tasks." + "BRIEF": "Provides a service to manage scheduled backup tasks.", + "COMPLEXITY": 3 }, "relations": [ { @@ -26494,9 +22708,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Starts the background scheduler and loads initial schedules.", "POST": "Scheduler is running and schedules are loaded.", - "PRE": "Scheduler should be initialized.", - "PURPOSE": "Starts the background scheduler and loads initial schedules." + "PRE": "Scheduler should be initialized." }, "relations": [], "schema_warnings": [], @@ -26513,9 +22727,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Stops the background scheduler.", "POST": "Scheduler is shut down.", - "PRE": "Scheduler should be running.", - "PURPOSE": "Stops the background scheduler." + "PRE": "Scheduler should be running." }, "relations": [], "schema_warnings": [], @@ -26532,10 +22746,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Load backup and active translation schedules from config and DB, re-registering all jobs.", "COMPLEXITY": 4, "POST": "All enabled backup jobs and active translation schedules are re-registered in APScheduler.", "PRE": "config_manager must have valid configuration; database is accessible.", - "PURPOSE": "Load backup and active translation schedules from config and DB, re-registering all jobs.", "SIDE_EFFECT": "Removes all existing APScheduler jobs; queries translation_schedules table; registers APScheduler jobs for translation." }, "relations": [], @@ -26553,10 +22767,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Adds a scheduled backup job for an environment.", "PARAM": "cron_expression (str) - The cron expression for the schedule.", "POST": "A new job is added to the scheduler or replaced if it already exists.", - "PRE": "env_id and cron_expression must be valid strings.", - "PURPOSE": "Adds a scheduled backup job for an environment." + "PRE": "env_id and cron_expression must be valid strings." }, "relations": [], "schema_warnings": [ @@ -26580,10 +22794,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Register a translation schedule with APScheduler.", "COMPLEXITY": 4, "POST": "A new APScheduler job is registered or replaced if it already exists.", "PRE": "schedule_id, job_id, and cron_expression are valid strings.", - "PURPOSE": "Register a translation schedule with APScheduler.", "SIDE_EFFECT": "Mutates APScheduler state; calls execute_scheduled_translation on trigger." }, "relations": [ @@ -26614,10 +22828,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Remove a translation schedule from APScheduler.", "COMPLEXITY": 4, "POST": "The APScheduler job is removed if it exists; silently ignored otherwise.", "PRE": "schedule_id is a valid string.", - "PURPOSE": "Remove a translation schedule from APScheduler.", "SIDE_EFFECT": "Mutates APScheduler state." }, "relations": [], @@ -26635,10 +22849,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Triggered by the scheduler to start a backup task.", "PARAM": "env_id (str) - The ID of the environment.", "POST": "A new backup task is created in the task manager if not already running.", - "PRE": "env_id must be a valid environment ID.", - "PURPOSE": "Triggered by the scheduler to start a backup task." + "PRE": "env_id must be a valid environment ID." }, "relations": [], "schema_warnings": [ @@ -26662,10 +22876,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Register a validation policy schedule with APScheduler.", "COMPLEXITY": 3, "POST": "A new APScheduler job is registered or replaced if it already exists.", "PRE": "policy_id and cron_expression are valid strings.", - "PURPOSE": "Register a validation policy schedule with APScheduler.", "SIDE_EFFECT": "Mutates APScheduler state; calls _trigger_validation on trigger." }, "relations": [ @@ -26690,10 +22904,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Remove a validation policy schedule from APScheduler.", "COMPLEXITY": 2, "POST": "The APScheduler job is removed if it exists; silently ignored otherwise.", "PRE": "policy_id is a valid string.", - "PURPOSE": "Remove a validation policy schedule from APScheduler.", "SIDE_EFFECT": "Mutates APScheduler state." }, "relations": [], @@ -26711,10 +22925,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Reload a single validation policy schedule — calls remove then add.", "COMPLEXITY": 2, "POST": "Old job is removed; new job is registered if policy is active and has schedule_days.", "PRE": "policy_id is a valid ValidationPolicy id with schedule data in DB.", - "PURPOSE": "Reload a single validation policy schedule — calls remove then add.", "SIDE_EFFECT": "Mutates APScheduler state; queries ValidationPolicy from DB." }, "relations": [], @@ -26732,10 +22946,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "APScheduler job handler — triggers validation runs for a policy.", "COMPLEXITY": 3, "POST": "A validation task is spawned via TaskManager for each dashboard in the policy.", "PRE": "policy_id is a valid ValidationPolicy id with dashboard_ids.", - "PURPOSE": "APScheduler job handler — triggers validation runs for a policy.", "SIDE_EFFECT": "Creates TaskRecord entries for validation runs; logs progress." }, "relations": [], @@ -26753,12 +22967,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Distributes validation tasks evenly within an execution window.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[window_start, window_end, dashboard_ids, current_date] -> Output[List[datetime]]", "INVARIANT": "Returned schedule size always matches number of dashboard IDs.", "POST": "Produces deterministic per-dashboard run timestamps within the configured window.", "PRE": "Validation policies provide a finite dashboard list and a valid execution window.", - "PURPOSE": "Distributes validation tasks evenly within an execution window.", "SIDE_EFFECT": "Emits warning logs for degenerate or near-zero scheduling windows." }, "relations": [ @@ -26783,10 +22997,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Calculates execution times for N tasks within a window.", "INVARIANT": "Tasks are distributed with near-even spacing.", "POST": "Returns List[datetime] of scheduled times.", - "PRE": "window_start, window_end (time), dashboard_ids (List), current_date (date).", - "PURPOSE": "Calculates execution times for N tasks within a window." + "PRE": "window_start, window_end (time), dashboard_ids (List), current_date (date)." }, "relations": [], "schema_warnings": [], @@ -26803,11 +23017,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Предоставляет высокоуровневый клиент для взаимодействия с Superset REST API, инкапсулируя логику запросов, обработку ошибок и пагинацию.", "COMPLEXITY": 5, "INVARIANT": "All network operations must use the internal APIClient instance.", "LAYER": "Service", "PUBLIC_API": "SupersetClient", - "PURPOSE": "Предоставляет высокоуровневый клиент для взаимодействия с Superset REST API, инкапсулируя логику запросов, обработку ошибок и пагинацию.", "RATIONALE": "Decomposed from monolithic superset_client.py (2145 lines) into" }, "relations": [ @@ -26856,8 +23070,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Класс-обёртка над Superset REST API, предоставляющий методы для работы с дашбордами и датасетами." + "BRIEF": "Класс-обёртка над Superset REST API, предоставляющий методы для работы с дашбордами и датасетами.", + "COMPLEXITY": 3 }, "relations": [ { @@ -26959,9 +23173,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Base class for SupersetClient providing initialization, authentication, pagination, and import/export helpers.", "COMPLEXITY": 3, "LAYER": "Infra", - "PURPOSE": "Base class for SupersetClient providing initialization, authentication, pagination, and import/export helpers.", "RATIONALE": "Extracted magic number 100 into DEFAULT_PAGE_SIZE constant at module level. Value unchanged — Superset API caps page_size at 100." }, "relations": [ @@ -27023,9 +23237,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Chart domain mixin for SupersetClient — list, get, extract IDs from layout.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Chart domain mixin for SupersetClient — list, get, extract IDs from layout." + "LAYER": "Infra" }, "relations": [ { @@ -27068,9 +23282,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dashboard CRUD mixin for SupersetClient — detail, export, import, delete.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Dashboard CRUD mixin for SupersetClient — detail, export, import, delete." + "LAYER": "Infra" }, "relations": [ { @@ -27140,9 +23354,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dashboard native filter extraction mixin for SupersetClient.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Dashboard native filter extraction mixin for SupersetClient." + "LAYER": "Infra" }, "relations": [ { @@ -27185,9 +23399,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dashboard listing mixin for SupersetClient — paginated list, summary projection.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Dashboard listing mixin for SupersetClient — paginated list, summary projection." + "LAYER": "Infra" }, "relations": [ { @@ -27236,11 +23450,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Dashboard write mixin for SupersetClient — markdown chart CRUD and layout manipulation for maintenance banners.", "COMPLEXITY": 4, "DATA_CONTRACT": "Input: dashboard_id / chart_id / markdown_text → Output: API response dict or chart_id int", "INVARIANT": "All network operations use self.network.request()", "LAYER": "Infra", - "PURPOSE": "Dashboard write mixin for SupersetClient — markdown chart CRUD and layout manipulation for maintenance banners.", "RATIONALE": "Extracted from monolithic superset_client to satisfy INV_7.", "SIDE_EFFECT": "Creates, updates, deletes markdown charts & modifies dashboard layout via Superset API." }, @@ -27297,10 +23511,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Create a markdown chart and return the new chart ID.", "COMPLEXITY": 3, "POST": "Returns chart_id (int). Chart is NOT yet placed in dashboard layout.", "PRE": "dashboard_id exists in Superset. markdown_text not empty.", - "PURPOSE": "Create a markdown chart and return the new chart ID.", "SIDE_EFFECT": "Creates a new chart resource in Superset." }, "relations": [ @@ -27325,10 +23539,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Update the markdown text of an existing markdown chart.", "COMPLEXITY": 3, "POST": "Chart markdown content updated.", "PRE": "chart_id exists and is a markdown chart.", - "PURPOSE": "Update the markdown text of an existing markdown chart.", "SIDE_EFFECT": "Modifies a chart resource in Superset." }, "relations": [], @@ -27346,8 +23560,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Insert a native MARKDOWN element at (0,0) with full width (12 cols)," + "BRIEF": "Insert a native MARKDOWN element at (0,0) with full width (12 cols),", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -27364,10 +23578,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Remove banner markdown element from dashboard layout without deleting the chart.", "COMPLEXITY": 3, "POST": "MARKDOWN element removed from position_json; items shifted up.", "PRE": "dashboard_id exists. chart_id exists in layout as MARKDOWN-banner-{chart_id}.", - "PURPOSE": "Remove banner markdown element from dashboard layout without deleting the chart.", "SIDE_EFFECT": "Modifies dashboard layout JSON." }, "relations": [], @@ -27385,10 +23599,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Delete a chart from Superset by ID.", "COMPLEXITY": 3, "POST": "Chart permanently deleted from Superset.", "PRE": "chart_id exists.", - "PURPOSE": "Delete a chart from Superset by ID.", "SIDE_EFFECT": "Destroys chart resource." }, "relations": [], @@ -27406,10 +23620,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Update the content of a native MARKDOWN banner element on a dashboard.", "COMPLEXITY": 3, "POST": "MARKDOWN element content updated on dashboard.", "PRE": "dashboard_id exists. chart_id used for key lookup.", - "PURPOSE": "Update the content of a native MARKDOWN banner element on a dashboard.", "SIDE_EFFECT": "Modifies dashboard layout JSON in Superset." }, "relations": [], @@ -27427,10 +23641,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Fetch the position_json layout of a dashboard.", "COMPLEXITY": 3, "POST": "Returns the dashboard layout dict.", - "PRE": "dashboard_id exists.", - "PURPOSE": "Fetch the position_json layout of a dashboard." + "PRE": "dashboard_id exists." }, "relations": [], "schema_warnings": [], @@ -27447,10 +23661,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Find a valid datasource_id for markdown chart creation.", "COMPLEXITY": 2, "POST": "Returns an integer datasource_id.", - "PRE": "dashboard_id exists.", - "PURPOSE": "Find a valid datasource_id for markdown chart creation." + "PRE": "dashboard_id exists." }, "relations": [], "schema_warnings": [], @@ -27467,9 +23681,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Database domain mixin for SupersetClient — list, get, summary, by_uuid.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Database domain mixin for SupersetClient — list, get, summary, by_uuid." + "LAYER": "Infra" }, "relations": [ { @@ -27512,9 +23726,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dataset domain mixin for SupersetClient — list, get, detail, update.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Dataset domain mixin for SupersetClient — list, get, detail, update." + "LAYER": "Infra" }, "relations": [ { @@ -27557,9 +23771,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Dataset preview compilation mixin for SupersetClient — build query context, compile SQL.", "COMPLEXITY": 4, - "LAYER": "Infra", - "PURPOSE": "Dataset preview compilation mixin for SupersetClient — build query context, compile SQL." + "LAYER": "Infra" }, "relations": [ { @@ -27608,9 +23822,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Filter normalization and SQL extraction helpers for dataset preview compilation.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Filter normalization and SQL extraction helpers for dataset preview compilation." + "LAYER": "Infra" }, "relations": [ { @@ -27659,9 +23873,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Utility functions for manipulating Superset dashboard position_json layout.", "COMPLEXITY": 2, "LAYER": "Infra", - "PURPOSE": "Utility functions for manipulating Superset dashboard position_json layout.", "RATIONALE": "Extracted from SupersetDashboardsWriteMixin to stay under INV_7 400 LOC." }, "relations": [ @@ -27711,10 +23925,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Parse position_json from a dashboard API response (may be string or dict).", "COMPLEXITY": 1, "POST": "Returns a dict.", - "PRE": "raw_position is a string, dict, or None.", - "PURPOSE": "Parse position_json from a dashboard API response (may be string or dict)." + "PRE": "raw_position is a string, dict, or None." }, "relations": [], "schema_warnings": [], @@ -27731,8 +23945,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Estimate grid height for a MARKDOWN element based on HTML content." + "BRIEF": "Estimate grid height for a MARKDOWN element based on HTML content.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -27749,8 +23963,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Generate a deterministic row and markdown key for a banner chart." + "BRIEF": "Generate a deterministic row and markdown key for a banner chart.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -27767,8 +23981,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Insert a ROW + native MARKDOWN pair at the top of the dashboard grid." + "BRIEF": "Insert a ROW + native MARKDOWN pair at the top of the dashboard grid.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -27785,10 +23999,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Update the code content and adaptive height of an existing banner markdown element.", "COMPLEXITY": 1, "POST": "position_json is mutated; markdown content and height updated.", - "PRE": "position_json has markdown_key. content is the new HTML/markdown string.", - "PURPOSE": "Update the code content and adaptive height of an existing banner markdown element." + "PRE": "position_json has markdown_key. content is the new HTML/markdown string." }, "relations": [], "schema_warnings": [], @@ -27805,8 +24019,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Remove the banner ROW + MARKDOWN pair from the position dict and GRID children." + "BRIEF": "Remove the banner ROW + MARKDOWN pair from the position dict and GRID children.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -27823,9 +24037,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "User/owner payload normalization helpers for Superset client responses.", "COMPLEXITY": 2, - "LAYER": "Infra", - "PURPOSE": "User/owner payload normalization helpers for Superset client responses." + "LAYER": "Infra" }, "relations": [ { @@ -27868,8 +24082,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Mixin providing user/owner payload normalization for Superset API responses." + "BRIEF": "Mixin providing user/owner payload normalization for Superset API responses.", + "COMPLEXITY": 2 }, "relations": [ { @@ -27893,11 +24107,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provides environment-scoped Superset account lookup adapter with stable normalized output.", "COMPLEXITY": 5, "DATA_CONTRACT": "ProfileQuery -> SupersetProfile", "INVARIANT": "Adapter never leaks raw upstream payload shape to API consumers.", "LAYER": "Service", - "PURPOSE": "Provides environment-scoped Superset account lookup adapter with stable normalized output.", "SIDE_EFFECT": "Makes HTTP requests to Superset" }, "relations": [ @@ -27934,8 +24148,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Lookup Superset users and normalize candidates for profile binding." + "BRIEF": "Lookup Superset users and normalize candidates for profile binding.", + "COMPLEXITY": 3 }, "relations": [ { @@ -27965,9 +24179,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Initializes lookup adapter with authenticated API client and environment context.", "POST": "Adapter is ready to perform users lookup requests.", - "PRE": "network_client supports request(method, endpoint, params=...).", - "PURPOSE": "Initializes lookup adapter with authenticated API client and environment context." + "PRE": "network_client supports request(method, endpoint, params=...)." }, "relations": [], "schema_warnings": [], @@ -27984,9 +24198,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch one users page from Superset with passthrough search/sort parameters.", "POST": "Returns deterministic payload with normalized items and total count.", "PRE": "page_index >= 0 and page_size >= 1.", - "PURPOSE": "Fetch one users page from Superset with passthrough search/sort parameters.", "RETURN": "Dict[str, Any]" }, "relations": [], @@ -28011,9 +24225,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Convert Superset users response variants into stable candidates payload.", "POST": "Output contains canonical keys: status, environment_id, page_index, page_size, total, items.", "PRE": "response can be dict/list in any supported upstream shape.", - "PURPOSE": "Convert Superset users response variants into stable candidates payload.", "RETURN": "Dict[str, Any]" }, "relations": [], @@ -28038,9 +24252,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Project raw Superset user object to canonical candidate shape.", "POST": "Returns normalized candidate keys (environment_id, username, display_name, email, is_active).", "PRE": "raw_user may have heterogenous key names between Superset versions.", - "PURPOSE": "Project raw Superset user object to canonical candidate shape.", "RETURN": "Dict[str, Any]" }, "relations": [], @@ -28080,9 +24294,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Plugins must be able to access background_tasks from both root and sub-context loggers.", "POST": "background_tasks remains available on root and derived sub-contexts.", - "PRE": "TaskContext is initialized with a BackgroundTasks-like object.", - "PURPOSE": "Plugins must be able to access background_tasks from both root and sub-context loggers." + "PRE": "TaskContext is initialized with a BackgroundTasks-like object." }, "relations": [ { @@ -28106,7 +24320,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Contract testing for TaskLogger" + "BRIEF": "Contract testing for TaskLogger" }, "relations": [ { @@ -28130,7 +24344,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify TaskLogger initializes with correct task_id and state.", + "BRIEF": "Verify TaskLogger initializes with correct task_id and state.", "TEST_CONTRACT": "invariants -> \"All specific log methods (info, error) delegate to _log\"" }, "relations": [ @@ -28155,7 +24369,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify TaskLogger delegates log method calls to the underlying persistence service.", + "BRIEF": "Verify TaskLogger delegates log method calls to the underlying persistence service.", "TEST_CONTRACT": "invariants -> \"with_source creates a new logger with the same task_id\"" }, "relations": [ @@ -28180,7 +24394,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify TaskLogger.with_source returns a new logger with the correct source attribution.", + "BRIEF": "Verify TaskLogger.with_source returns a new logger with the correct source attribution.", "TEST_EDGE": "missing_task_id -> raises TypeError" }, "relations": [ @@ -28205,7 +24419,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify TaskLogger raises or handles missing task_id gracefully.", + "BRIEF": "Verify TaskLogger raises or handles missing task_id gracefully.", "TEST_EDGE": "invalid_add_log_fn -> raises TypeError" }, "relations": [ @@ -28230,7 +24444,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify TaskLogger raises ValueError for invalid add_log_fn parameter.", + "BRIEF": "Verify TaskLogger raises ValueError for invalid add_log_fn parameter.", "TEST_INVARIANT": "consistent_delegation" }, "relations": [ @@ -28255,7 +24469,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify TaskLogger correctly logs progress updates with percentage and message." + "BRIEF": "Verify TaskLogger correctly logs progress updates with percentage and message." }, "relations": [ { @@ -28279,9 +24493,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Implements task cleanup and retention policies, including associated logs.", "COMPLEXITY": 3, - "LAYER": "Core", - "PURPOSE": "Implements task cleanup and retention policies, including associated logs." + "LAYER": "Core" }, "relations": [ { @@ -28317,8 +24531,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Provides methods to clean up old task records and their associated logs." + "BRIEF": "Provides methods to clean up old task records and their associated logs.", + "COMPLEXITY": 3 }, "relations": [ { @@ -28354,9 +24568,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Deletes tasks older than the configured retention period and their logs.", "POST": "Old tasks and their logs are deleted from persistence.", - "PRE": "Config manager has valid settings.", - "PURPOSE": "Deletes tasks older than the configured retention period and their logs." + "PRE": "Config manager has valid settings." }, "relations": [], "schema_warnings": [], @@ -28373,10 +24587,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Delete a single task and all its associated logs.", "PARAM": "task_id (str) - The task ID to delete.", "POST": "Task and all its logs are deleted.", - "PRE": "task_id is a valid task ID.", - "PURPOSE": "Delete a single task and all its associated logs." + "PRE": "task_id is a valid task ID." }, "relations": [], "schema_warnings": [ @@ -28400,13 +24614,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provides execution context passed to plugins during task execution.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[task_id, add_log_fn, params, default_source, background_tasks] -> Output[TaskContext]", "INVARIANT": "Each TaskContext is bound to a single task execution.", "LAYER": "Core", "POST": "Plugins receive context instances with stable logger and parameter accessors.", "PRE": "Task execution pipeline provides valid task identifiers, logging callbacks, and parameter dictionaries.", - "PURPOSE": "Provides execution context passed to plugins during task execution.", "SIDE_EFFECT": "Creates task-scoped logger wrappers and carries optional background task handles across sub-contexts." }, "relations": [ @@ -28437,12 +24651,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "A container passed to plugin.execute() providing the logger and other task-specific utilities.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[task_id, add_log_fn, params, default_source, background_tasks] -> Output[TaskContext]", "INVARIANT": "logger is always a valid TaskLogger instance.", "POST": "Instance exposes immutable task identity with logger, params, and optional background task access.", "PRE": "Constructor receives non-empty task_id, callable add_log_fn, and params mapping.", - "PURPOSE": "A container passed to plugin.execute() providing the logger and other task-specific utilities.", "SIDE_EFFECT": "Emits structured task logs through TaskLogger on plugin interactions.", "TEST_CONTRACT": "TaskContextContract ->", "UX_STATE": "Idle -> Active -> Complete" @@ -28455,49 +24669,7 @@ "target_ref": "[TaskLogger]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is forbidden for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TaskContext [C:5] [TYPE Class] [SEMANTICS context, task, execution, plugin]\n# @BRIEF A container passed to plugin.execute() providing the logger and other task-specific utilities.\n# @INVARIANT: logger is always a valid TaskLogger instance.\n# @PRE: Constructor receives non-empty task_id, callable add_log_fn, and params mapping.\n# @POST: Instance exposes immutable task identity with logger, params, and optional background task access.\n# @RELATION DEPENDS_ON -> [TaskLogger]\n# @SIDE_EFFECT: Emits structured task logs through TaskLogger on plugin interactions.\n# @DATA_CONTRACT: Input[task_id, add_log_fn, params, default_source, background_tasks] -> Output[TaskContext]\n# @UX_STATE: Idle -> Active -> Complete\n#\n# @TEST_CONTRACT: TaskContextContract ->\n# {\n# required_fields: {task_id: str, add_log_fn: Callable, params: dict},\n# optional_fields: {default_source: str},\n# invariants: [\n# \"task_id matches initialized logger's task_id\",\n# \"logger is a valid TaskLogger instance\"\n# ]\n# }\n# @TEST_FIXTURE: valid_context -> {\"task_id\": \"123\", \"add_log_fn\": lambda *args: None, \"params\": {\"k\": \"v\"}, \"default_source\": \"plugin\"}\n# @TEST_EDGE: missing_task_id -> raises TypeError\n# @TEST_EDGE: missing_add_log_fn -> raises TypeError\n# @TEST_INVARIANT: logger_initialized -> verifies: [valid_context]\nclass TaskContext:\n \"\"\"\n Execution context provided to plugins during task execution.\n Usage:\n def execute(params: dict, context: TaskContext = None):\n if context:\n context.logger.info(\"Starting process\")\n context.logger.progress(\"Processing items\", percent=50)\n # ... plugin logic\n \"\"\"\n # #region __init__ [TYPE Function]\n # @PURPOSE: Initialize the TaskContext with task-specific resources.\n # @PRE: task_id is a valid task identifier, add_log_fn is callable.\n # @POST: TaskContext is ready to be passed to plugin.execute().\n # @PARAM: task_id (str) - The ID of the task.\n # @PARAM: add_log_fn (Callable) - Function to add log to TaskManager.\n # @PARAM: params (Dict) - Task parameters.\n # @PARAM: default_source (str) - Default source for logs (default: \"plugin\").\n def __init__(\n self,\n task_id: str,\n add_log_fn: Callable,\n params: dict[str, Any],\n default_source: str = \"plugin\",\n background_tasks: Any | None = None,\n ):\n with belief_scope(\"__init__\"):\n self._task_id = task_id\n self._params = params\n self._background_tasks = background_tasks\n self._logger = TaskLogger(\n task_id=task_id, add_log_fn=add_log_fn, source=default_source\n )\n # #endregion __init__\n # #region task_id [TYPE Function]\n # @PURPOSE: Get the task ID.\n # @PRE: TaskContext must be initialized.\n # @POST: Returns the task ID string.\n # @RETURN: str - The task ID.\n @property\n def task_id(self) -> str:\n with belief_scope(\"task_id\"):\n return self._task_id\n # #endregion task_id\n # #region logger [TYPE Function]\n # @PURPOSE: Get the TaskLogger instance for this context.\n # @PRE: TaskContext must be initialized.\n # @POST: Returns the TaskLogger instance.\n # @RETURN: TaskLogger - The logger instance.\n @property\n def logger(self) -> TaskLogger:\n with belief_scope(\"logger\"):\n return self._logger\n # #endregion logger\n # #region params [TYPE Function]\n # @PURPOSE: Get the task parameters.\n # @PRE: TaskContext must be initialized.\n # @POST: Returns the parameters dictionary.\n # @RETURN: Dict[str, Any] - The task parameters.\n @property\n def params(self) -> dict[str, Any]:\n with belief_scope(\"params\"):\n return self._params\n # #endregion params\n # #region background_tasks [TYPE Function]\n # @PURPOSE: Expose optional background task scheduler for plugins that dispatch deferred side effects.\n # @PRE: TaskContext must be initialized.\n # @POST: Returns BackgroundTasks-like object or None.\n @property\n def background_tasks(self) -> Any | None:\n with belief_scope(\"background_tasks\"):\n return self._background_tasks\n # #endregion background_tasks\n # #region get_param [TYPE Function]\n # @PURPOSE: Get a specific parameter value with optional default.\n # @PRE: TaskContext must be initialized.\n # @POST: Returns parameter value or default.\n # @PARAM: key (str) - Parameter key.\n # @PARAM: default (Any) - Default value if key not found.\n # @RETURN: Any - Parameter value or default.\n def get_param(self, key: str, default: Any = None) -> Any:\n with belief_scope(\"get_param\"):\n return self._params.get(key, default)\n # #endregion get_param\n # #region create_sub_context [TYPE Function]\n # @PURPOSE: Create a sub-context with a different default source.\n # @PRE: source is a non-empty string.\n # @POST: Returns new TaskContext with different logger source.\n # @PARAM: source (str) - New default source for logging.\n # @RETURN: TaskContext - New context with different source.\n def create_sub_context(self, source: str) -> \"TaskContext\":\n \"\"\"Create a sub-context with a different default source for logging.\"\"\"\n with belief_scope(\"create_sub_context\"):\n return TaskContext(\n task_id=self._task_id,\n add_log_fn=self._logger._add_log,\n params=self._params,\n default_source=source,\n background_tasks=self._background_tasks,\n )\n # #endregion create_sub_context\n# #endregion TaskContext\n" @@ -28511,9 +24683,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Get the task ID.", "POST": "Returns the task ID string.", "PRE": "TaskContext must be initialized.", - "PURPOSE": "Get the task ID.", "RETURN": "str - The task ID." }, "relations": [], @@ -28538,9 +24710,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Get the TaskLogger instance for this context.", "POST": "Returns the TaskLogger instance.", "PRE": "TaskContext must be initialized.", - "PURPOSE": "Get the TaskLogger instance for this context.", "RETURN": "TaskLogger - The logger instance." }, "relations": [], @@ -28565,9 +24737,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Get the task parameters.", "POST": "Returns the parameters dictionary.", "PRE": "TaskContext must be initialized.", - "PURPOSE": "Get the task parameters.", "RETURN": "Dict[str, Any] - The task parameters." }, "relations": [], @@ -28592,9 +24764,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Expose optional background task scheduler for plugins that dispatch deferred side effects.", "POST": "Returns BackgroundTasks-like object or None.", - "PRE": "TaskContext must be initialized.", - "PURPOSE": "Expose optional background task scheduler for plugins that dispatch deferred side effects." + "PRE": "TaskContext must be initialized." }, "relations": [], "schema_warnings": [], @@ -28611,10 +24783,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Get a specific parameter value with optional default.", "PARAM": "default (Any) - Default value if key not found.", "POST": "Returns parameter value or default.", "PRE": "TaskContext must be initialized.", - "PURPOSE": "Get a specific parameter value with optional default.", "RETURN": "Any - Parameter value or default." }, "relations": [], @@ -28645,10 +24817,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Create a sub-context with a different default source.", "PARAM": "source (str) - New default source for logging.", "POST": "Returns new TaskContext with different logger source.", "PRE": "source is a non-empty string.", - "PURPOSE": "Create a sub-context with a different default source.", "RETURN": "TaskContext - New context with different source." }, "relations": [], @@ -28679,8 +24851,8 @@ "tier": "TIER_3", "complexity": 5, "metadata": { - "COMPLEXITY": 5, - "PURPOSE": "Task-scoped log buffering, persistence flushes, and subscriber fan-out for real-time" + "BRIEF": "Task-scoped log buffering, persistence flushes, and subscriber fan-out for real-time", + "COMPLEXITY": 5 }, "relations": [], "schema_warnings": [], @@ -28697,8 +24869,8 @@ "tier": "TIER_3", "complexity": 5, "metadata": { - "COMPLEXITY": 5, - "PURPOSE": "Coordinates task-scoped log buffering, persistence flushes, and subscriber fan-out" + "BRIEF": "Coordinates task-scoped log buffering, persistence flushes, and subscriber fan-out", + "COMPLEXITY": 5 }, "relations": [], "schema_warnings": [], @@ -28715,10 +24887,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Flush logs for a specific task immediately.", "COMPLEXITY": 3, "POST": "Task's buffered logs are written to database.", - "PRE": "task_id exists.", - "PURPOSE": "Flush logs for a specific task immediately." + "PRE": "task_id exists." }, "relations": [ { @@ -28742,10 +24914,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Adds a log entry to a task buffer and notifies subscribers.", "COMPLEXITY": 3, "POST": "Log added to buffer and pushed to queues (if level meets task_log_level filter).", - "PRE": "Task exists.", - "PURPOSE": "Adds a log entry to a task buffer and notifies subscribers." + "PRE": "Task exists." }, "relations": [ { @@ -28769,9 +24941,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Subscribes to real-time logs for a task.", "COMPLEXITY": 2, - "POST": "Returns an asyncio.Queue for log entries.", - "PURPOSE": "Subscribes to real-time logs for a task." + "POST": "Returns an asyncio.Queue for log entries." }, "relations": [], "schema_warnings": [], @@ -28788,9 +24960,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Unsubscribes from real-time logs for a task.", "COMPLEXITY": 2, - "POST": "Queue removed from subscribers.", - "PURPOSE": "Unsubscribes from real-time logs for a task." + "POST": "Queue removed from subscribers." }, "relations": [], "schema_warnings": [], @@ -28807,8 +24979,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Retrieves logs for a specific task (from memory for running, persistence for completed)." + "BRIEF": "Retrieves logs for a specific task (from memory for running, persistence for completed).", + "COMPLEXITY": 3 }, "relations": [ { @@ -28832,8 +25004,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get statistics about logs for a task." + "BRIEF": "Get statistics about logs for a task.", + "COMPLEXITY": 2 }, "relations": [ { @@ -28857,8 +25029,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get unique sources for a task's logs." + "BRIEF": "Get unique sources for a task's logs.", + "COMPLEXITY": 2 }, "relations": [ { @@ -28882,8 +25054,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Delete logs for specified tasks." + "BRIEF": "Delete logs for specified tasks.", + "COMPLEXITY": 2 }, "relations": [ { @@ -28907,8 +25079,8 @@ "tier": "TIER_3", "complexity": 5, "metadata": { - "COMPLEXITY": 5, - "PURPOSE": "In-memory task registry with persistence-backed hydration, pagination, and" + "BRIEF": "In-memory task registry with persistence-backed hydration, pagination, and", + "COMPLEXITY": 5 }, "relations": [], "schema_warnings": [], @@ -28925,8 +25097,8 @@ "tier": "TIER_3", "complexity": 5, "metadata": { - "COMPLEXITY": 5, - "PURPOSE": "In-memory task dependency graph spanning task registry nodes, pause futures," + "BRIEF": "In-memory task dependency graph spanning task registry nodes, pause futures,", + "COMPLEXITY": 5 }, "relations": [], "schema_warnings": [], @@ -28943,8 +25115,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Load persisted tasks using persistence service." + "BRIEF": "Load persisted tasks using persistence service.", + "COMPLEXITY": 3 }, "relations": [ { @@ -28968,8 +25140,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Retrieves a task by its ID." + "BRIEF": "Retrieves a task by its ID.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -28986,8 +25158,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Retrieves all registered tasks." + "BRIEF": "Retrieves all registered tasks.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -29004,8 +25176,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Retrieves tasks with pagination and optional status/plugin filters." + "BRIEF": "Retrieves tasks with pagination and optional status/plugin filters.", + "COMPLEXITY": 3 }, "relations": [ { @@ -29029,8 +25201,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Register a task in the in-memory registry." + "BRIEF": "Register a task in the in-memory registry.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -29047,8 +25219,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Remove tasks from registry and persistence, cancel futures for waiting tasks." + "BRIEF": "Remove tasks from registry and persistence, cancel futures for waiting tasks.", + "COMPLEXITY": 3 }, "relations": [ { @@ -29072,8 +25244,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Create and store a future for a paused task." + "BRIEF": "Create and store a future for a paused task.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -29090,8 +25262,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Resolve a paused task's future and remove it from the map." + "BRIEF": "Resolve a paused task's future and remove it from the map.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -29108,8 +25280,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Remove a future without resolving it." + "BRIEF": "Remove a future without resolving it.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -29126,8 +25298,8 @@ "tier": "TIER_3", "complexity": 5, "metadata": { - "COMPLEXITY": 5, - "PURPOSE": "Task creation, execution, pause/resume, and completion transitions for plugin-backed" + "BRIEF": "Task creation, execution, pause/resume, and completion transitions for plugin-backed", + "COMPLEXITY": 5 }, "relations": [], "schema_warnings": [], @@ -29144,8 +25316,8 @@ "tier": "TIER_3", "complexity": 5, "metadata": { - "COMPLEXITY": 5, - "PURPOSE": "Encodes task creation, execution, pause/resume, and completion transitions for" + "BRIEF": "Encodes task creation, execution, pause/resume, and completion transitions for", + "COMPLEXITY": 5 }, "relations": [], "schema_warnings": [], @@ -29162,11 +25334,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Creates and queues a new task for execution.", "COMPLEXITY": 4, "ERROR": "ValueError if plugin not found or params invalid.", "POST": "Task is created, added to registry, and scheduled for execution.", - "PRE": "Plugin with plugin_id exists. Params are valid dict.", - "PURPOSE": "Creates and queues a new task for execution." + "PRE": "Plugin with plugin_id exists. Params are valid dict." }, "relations": [], "schema_warnings": [], @@ -29183,10 +25355,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Internal method to execute a task with TaskContext support.", "COMPLEXITY": 4, "POST": "Task is executed, status updated to SUCCESS or FAILED.", "PRE": "Task exists in registry.", - "PURPOSE": "Internal method to execute a task with TaskContext support.", "SIDE_EFFECT": "Executes plugin code, updates task status and persistence, emits logs." }, "relations": [], @@ -29204,11 +25376,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Resumes a task that is awaiting mapping.", "COMPLEXITY": 3, "ERROR": "ValueError if task not found or not awaiting mapping.", "POST": "Task status updated to RUNNING, params updated, execution resumed.", - "PRE": "Task exists and is in AWAITING_MAPPING state.", - "PURPOSE": "Resumes a task that is awaiting mapping." + "PRE": "Task exists and is in AWAITING_MAPPING state." }, "relations": [], "schema_warnings": [], @@ -29225,10 +25397,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Pauses execution and waits for a resolution signal.", "COMPLEXITY": 3, "POST": "Execution pauses until future is set.", - "PRE": "Task exists.", - "PURPOSE": "Pauses execution and waits for a resolution signal." + "PRE": "Task exists." }, "relations": [], "schema_warnings": [], @@ -29245,10 +25417,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Pauses execution and waits for user input.", "COMPLEXITY": 3, "POST": "Execution pauses until future is set via resume_task_with_password.", - "PRE": "Task exists.", - "PURPOSE": "Pauses execution and waits for user input." + "PRE": "Task exists." }, "relations": [], "schema_warnings": [], @@ -29265,11 +25437,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Transition a task to AWAITING_INPUT state with input request.", "COMPLEXITY": 3, "ERROR": "ValueError if task not found or not RUNNING.", "POST": "Task status changed to AWAITING_INPUT, input_request set, persisted.", - "PRE": "Task exists and is in RUNNING state.", - "PURPOSE": "Transition a task to AWAITING_INPUT state with input request." + "PRE": "Task exists and is in RUNNING state." }, "relations": [], "schema_warnings": [], @@ -29286,11 +25458,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Resume a task that is awaiting input with provided passwords.", "COMPLEXITY": 3, "ERROR": "ValueError if task not found, not awaiting input, or passwords invalid.", "POST": "Task status changed to RUNNING, passwords injected, task resumed.", - "PRE": "Task exists and is in AWAITING_INPUT state.", - "PURPOSE": "Resume a task that is awaiting input with provided passwords." + "PRE": "Task exists and is in AWAITING_INPUT state." }, "relations": [], "schema_warnings": [], @@ -29307,8 +25479,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Subscribe to dataset.updated events for a specific environment." + "BRIEF": "Subscribe to dataset.updated events for a specific environment.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -29325,8 +25497,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Unsubscribe from dataset.updated events for a specific environment." + "BRIEF": "Unsubscribe from dataset.updated events for a specific environment.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -29343,8 +25515,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Broadcast dataset.updated event to all subscribers for a given environment." + "BRIEF": "Broadcast dataset.updated event to all subscribers for a given environment.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -29361,8 +25533,8 @@ "tier": "TIER_3", "complexity": 5, "metadata": { - "COMPLEXITY": 5, - "PURPOSE": "Thin facade composing TaskGraph (registry), EventBus (log/pub-sub), and JobLifecycle" + "BRIEF": "Thin facade composing TaskGraph (registry), EventBus (log/pub-sub), and JobLifecycle", + "COMPLEXITY": 5 }, "relations": [], "schema_warnings": [], @@ -29379,11 +25551,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Facade composing TaskGraph, EventBus, and JobLifecycle into a single interface.", "COMPLEXITY": 5, "LAYER": "Core", "POST": "In-memory task graph, lifecycle scheduler, and log event bus stay consistent with", - "PRE": "Plugin loader resolves plugin ids and persistence services are available.", - "PURPOSE": "Facade composing TaskGraph, EventBus, and JobLifecycle into a single interface." + "PRE": "Plugin loader resolves plugin ids and persistence services are available." }, "relations": [ { @@ -29429,30 +25601,7 @@ "target_ref": "[EventBus]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TaskManager [C:5] [TYPE Class] [SEMANTICS task, manager, lifecycle, execution, state]\n# @BRIEF Facade composing TaskGraph, EventBus, and JobLifecycle into a single interface.\n# @LAYER: Core\n# @RELATION DEPENDS_ON -> [TaskPersistenceService]\n# @RELATION DEPENDS_ON -> [TaskLogPersistenceService]\n# @RELATION DEPENDS_ON -> [PluginLoader]\n# @RELATION DEPENDS_ON -> [TaskContext]\n# @RELATION DEPENDS_ON -> [TaskGraph]\n# @RELATION DEPENDS_ON -> [JobLifecycle]\n# @RELATION DEPENDS_ON -> [EventBus]\n# @PRE: Plugin loader resolves plugin ids and persistence services are available.\n# @POST: In-memory task graph, lifecycle scheduler, and log event bus stay consistent with\n# persisted task state.\n# @INVARIANT: Task IDs are unique within the registry.\n# @INVARIANT: Each task has exactly one status at any time.\n# @INVARIANT: Log entries are never deleted after being added to a task.\n# @SIDE_EFFECT: Spawns worker threads, flushes logs to database, and mutates task states.\n# @DATA_CONTRACT: Input[plugin_id, params] -> Output[Task]\n# @RATIONALE Thin facade — all delegating methods are under 15 lines. Actual business logic\n# (registry CRUD, log buffering, lifecycle state machine) lives in extracted modules.\n# @REJECTED Keeping all five concerns in one class was rejected — it violated INV_7 (708-line\n# manager.py) and made the god class impossible to test or maintain independently.\nclass TaskManager:\n \"\"\"\n Facade composing TaskGraph (registry), EventBus (log/pub-sub), and\n JobLifecycle (state machine) into a single TaskManager interface.\n \"\"\"\n\n # #region __init__ [TYPE Function] [C:5]\n # @BRIEF Initialize sub-services, create add_log callback, start background flusher.\n # @PRE: plugin_loader is initialized.\n # @POST: TaskManager is ready to accept tasks.\n # @SIDE_EFFECT: Starts background flusher thread and loads persisted task state into memory.\n def __init__(self, plugin_loader):\n with belief_scope(\"TaskManager.__init__\"):\n logger.reason(\"Initializing task manager runtime services\")\n self.plugin_loader = plugin_loader\n self.executor = ThreadPoolExecutor(max_workers=5)\n self.persistence_service = TaskPersistenceService()\n self.log_persistence_service = TaskLogPersistenceService()\n\n try:\n self.loop = asyncio.get_running_loop()\n except RuntimeError:\n self.loop = asyncio.get_event_loop()\n\n # Create sub-services\n self.graph = TaskGraph(self.persistence_service)\n self.event_bus = EventBus(self.log_persistence_service, self.loop)\n\n # Create add_log callback that lifecycle and plugins use\n self._add_log = self._make_add_log_callback()\n\n self.lifecycle = JobLifecycle(\n plugin_loader=self.plugin_loader,\n graph=self.graph,\n event_bus=self.event_bus,\n persistence_service=self.persistence_service,\n executor=self.executor,\n loop=self.loop,\n )\n\n # Load persisted tasks on startup\n self.graph.load_persisted_tasks()\n\n # Backward-compatible property aliases for tests\n self.tasks = self.graph.tasks\n self.task_futures = self.graph.task_futures\n self.subscribers = self.event_bus.subscribers\n self._log_buffer = self.event_bus._log_buffer\n self._log_buffer_lock = self.event_bus._log_buffer_lock\n self._flusher_stop_event = self.event_bus._flusher_stop_event\n self._flusher_thread = self.event_bus._flusher_thread\n\n logger.reflect(\n \"Task manager runtime initialized\",\n extra={\"task_count\": len(self.tasks)},\n )\n # #endregion __init__\n\n # #region _make_add_log_callback [C:2] [TYPE Function]\n # @BRIEF Create a closure for adding logs that looks up the task and delegates to EventBus.\n def _make_add_log_callback(self):\n def _add_log(task_id, level, message, source=\"system\", metadata=None, context=None):\n task = self.graph.get_task(task_id)\n if not task:\n return\n self.event_bus.add_log(\n task_id, level, message, source, metadata, context,\n task_logs_list=task.logs,\n )\n return _add_log\n # #endregion _make_add_log_callback\n\n # ── Deprecated legacy aliases (delegate to EventBus) ──\n\n # #region _flusher_loop [C:3] [TYPE Function] [SEMANTICS flush,background,thread]\n # @BRIEF Legacy alias delegating to EventBus._flusher_loop.\n def _flusher_loop(self):\n self.event_bus._flusher_loop()\n # #endregion _flusher_loop\n\n # #region _flush_logs [C:3] [TYPE Function] [SEMANTICS flush,batch,persistence]\n # @BRIEF Legacy alias delegating to EventBus._flush_logs.\n def _flush_logs(self):\n self.event_bus._flush_logs()\n # #endregion _flush_logs\n\n # #region _flush_task_logs [C:3] [TYPE Function] [SEMANTICS flush,single,persistence]\n # @BRIEF Legacy alias delegating to EventBus.flush_task_logs.\n def _flush_task_logs(self, task_id: str):\n self.event_bus.flush_task_logs(task_id)\n # #endregion _flush_task_logs\n\n # ── Task CRUD delegates to TaskGraph ──\n\n # #region get_task [TYPE Function] [C:2]\n # @BRIEF Retrieves a task by its ID.\n def get_task(self, task_id: str) -> Task | None:\n return self.graph.get_task(task_id)\n # #endregion get_task\n\n # #region get_all_tasks [TYPE Function] [C:1]\n # @BRIEF Retrieves all registered tasks.\n def get_all_tasks(self) -> list[Task]:\n return self.graph.get_all_tasks()\n # #endregion get_all_tasks\n\n # #region get_tasks [TYPE Function] [C:3]\n # @BRIEF Retrieves tasks with pagination and optional status filter.\n def get_tasks(\n self,\n limit: int = 10,\n offset: int = 0,\n status: TaskStatus | None = None,\n plugin_ids: list[str] | None = None,\n completed_only: bool = False,\n ) -> list[Task]:\n return self.graph.get_tasks(limit, offset, status, plugin_ids, completed_only)\n # #endregion get_tasks\n\n # #region load_persisted_tasks [TYPE Function] [C:2]\n # @BRIEF Load persisted tasks using persistence service.\n def load_persisted_tasks(self) -> None:\n self.graph.load_persisted_tasks(limit=100)\n # #endregion load_persisted_tasks\n\n # #region clear_tasks [TYPE Function] [C:4]\n # @BRIEF Clears tasks based on status filter (also deletes associated logs).\n # @SIDE_EFFECT Removes tasks from registry and persistence; cancels futures.\n def clear_tasks(self, status: TaskStatus | None = None) -> int:\n with belief_scope(\"TaskManager.clear_tasks\"):\n tasks_to_remove = []\n for task_id, task in list(self.tasks.items()):\n should_remove = False\n if status:\n if task.status == status:\n should_remove = True\n else:\n if task.status not in [\n TaskStatus.RUNNING,\n TaskStatus.AWAITING_INPUT,\n TaskStatus.AWAITING_MAPPING,\n ]:\n should_remove = True\n if should_remove:\n tasks_to_remove.append(task_id)\n\n # Delete logs first, then remove tasks\n if tasks_to_remove:\n self.event_bus.delete_logs_for_tasks(tasks_to_remove)\n removed = self.graph.remove_tasks(tasks_to_remove)\n logger.info(f\"Cleared {removed} tasks.\")\n return removed\n # #endregion clear_tasks\n\n # ── Log delegates to EventBus ──\n\n # #region get_task_logs [TYPE Function] [C:3]\n # @BRIEF Retrieves logs for a specific task (from memory or persistence).\n def get_task_logs(\n self, task_id: str, log_filter: LogFilter | None = None\n ) -> list:\n task = self.graph.get_task(task_id)\n task_status = task.status if task else None\n task_logs = task.logs if task else []\n return self.event_bus.get_task_logs(\n task_id, log_filter, task_status=task_status, task_logs=task_logs\n )\n # #endregion get_task_logs\n\n # #region get_task_log_stats [TYPE Function] [C:2]\n # @BRIEF Get statistics about logs for a task.\n def get_task_log_stats(self, task_id: str) -> LogStats:\n return self.event_bus.get_task_log_stats(task_id)\n # #endregion get_task_log_stats\n\n # #region get_task_log_sources [TYPE Function] [C:2]\n # @BRIEF Get unique sources for a task's logs.\n def get_task_log_sources(self, task_id: str) -> list[str]:\n return self.event_bus.get_task_log_sources(task_id)\n # #endregion get_task_log_sources\n\n # ── Subscription delegates to EventBus ──\n\n # #region subscribe_logs [TYPE Function] [C:2]\n # @BRIEF Subscribes to real-time logs for a task.\n async def subscribe_logs(self, task_id: str) -> asyncio.Queue:\n return await self.event_bus.subscribe_logs(task_id)\n # #endregion subscribe_logs\n\n # #region unsubscribe_logs [TYPE Function] [C:2]\n # @BRIEF Unsubscribes from real-time logs for a task.\n def unsubscribe_logs(self, task_id: str, queue: asyncio.Queue):\n self.event_bus.unsubscribe_logs(task_id, queue)\n # #endregion unsubscribe_logs\n\n # ── Lifecycle delegates to JobLifecycle ──\n\n # #region create_task [TYPE Function] [C:4]\n # @BRIEF Creates and queues a new task for execution.\n async def create_task(\n self, plugin_id: str, params: dict[str, Any], user_id: str | None = None\n ) -> Task:\n return await self.lifecycle.create_task(\n plugin_id, params, user_id,\n add_log_callback=self._add_log,\n )\n # #endregion create_task\n\n # #region _run_task [TYPE Function] [C:4]\n # @BRIEF Internal method to execute a task with TaskContext support (delegates to lifecycle).\n async def _run_task(self, task_id: str):\n await self.lifecycle._run_task(task_id, add_log_callback=self._add_log)\n # #endregion _run_task\n\n # #region resolve_task [TYPE Function] [C:3]\n # @BRIEF Resumes a task that is awaiting mapping.\n async def resolve_task(self, task_id: str, resolution_params: dict[str, Any]):\n await self.lifecycle.resolve_task(task_id, resolution_params)\n # #endregion resolve_task\n\n # #region wait_for_resolution [TYPE Function] [C:3]\n # @BRIEF Pauses execution and waits for a resolution signal.\n async def wait_for_resolution(self, task_id: str):\n await self.lifecycle.wait_for_resolution(task_id)\n # #endregion wait_for_resolution\n\n # #region wait_for_input [TYPE Function] [C:3]\n # @BRIEF Pauses execution and waits for user input.\n async def wait_for_input(self, task_id: str):\n await self.lifecycle.wait_for_input(task_id)\n # #endregion wait_for_input\n\n # #region await_input [TYPE Function] [C:3]\n # @BRIEF Transition a task to AWAITING_INPUT state with input request.\n def await_input(self, task_id: str, input_request: dict[str, Any]) -> None:\n self.lifecycle.await_input(\n task_id, input_request,\n add_log_callback=self._add_log,\n )\n # #endregion await_input\n\n # #region resume_task_with_password [TYPE Function] [C:3]\n # @BRIEF Resume a task that is awaiting input with provided passwords.\n def resume_task_with_password(\n self, task_id: str, passwords: dict[str, str]\n ) -> None:\n self.lifecycle.resume_task_with_password(\n task_id, passwords,\n add_log_callback=self._add_log,\n )\n # #endregion resume_task_with_password\n\n # ── Dataset event delegates to JobLifecycle ──\n\n # #region subscribe_dataset_events [TYPE Function] [C:2]\n # @BRIEF Subscribe to dataset.updated events for an environment.\n async def subscribe_dataset_events(self, env_id: str) -> asyncio.Queue:\n return await self.lifecycle.subscribe_dataset_events(env_id)\n # #endregion subscribe_dataset_events\n\n # #region unsubscribe_dataset_events [TYPE Function] [C:2]\n # @BRIEF Unsubscribe from dataset.updated events.\n def unsubscribe_dataset_events(self, env_id: str, queue: asyncio.Queue):\n self.lifecycle.unsubscribe_dataset_events(env_id, queue)\n # #endregion unsubscribe_dataset_events\n# #endregion TaskManager\n" @@ -29466,8 +25615,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Create a closure for adding logs that looks up the task and delegates to EventBus." + "BRIEF": "Create a closure for adding logs that looks up the task and delegates to EventBus.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -29484,8 +25633,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Legacy alias delegating to EventBus._flusher_loop." + "BRIEF": "Legacy alias delegating to EventBus._flusher_loop.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -29502,8 +25651,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Legacy alias delegating to EventBus._flush_logs." + "BRIEF": "Legacy alias delegating to EventBus._flush_logs.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -29520,8 +25669,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Legacy alias delegating to EventBus.flush_task_logs." + "BRIEF": "Legacy alias delegating to EventBus.flush_task_logs.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -29538,6 +25687,7 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Defines the data models and enumerations used by the Task Manager.", "COMPLEXITY": 5, "CONSTRAINT": "Must use Pydantic for data validation.", "DATA_CONTRACT": "TaskInput -> TaskModel", @@ -29545,7 +25695,6 @@ "LAYER": "Domain", "POST": "Task models exported with immutable IDs", "PRE": "Task manager initialized", - "PURPOSE": "Defines the data models and enumerations used by the Task Manager.", "SIDE_EFFECT": "Defines task data schema" }, "relations": [ @@ -29651,8 +25800,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "A Pydantic model representing a persisted log entry from the database." + "BRIEF": "A Pydantic model representing a persisted log entry from the database.", + "COMPLEXITY": 3 }, "relations": [ { @@ -29691,8 +25840,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Statistics about log entries for a task." + "BRIEF": "Statistics about log entries for a task.", + "COMPLEXITY": 1 }, "relations": [ { @@ -29716,8 +25865,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "A Pydantic model representing a single execution instance of a plugin, including its status, parameters, and logs." + "BRIEF": "A Pydantic model representing a single execution instance of a plugin, including its status, parameters, and logs.", + "COMPLEXITY": 3 }, "relations": [ { @@ -29753,13 +25902,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Handles the persistence of tasks using SQLAlchemy and the tasks.db database.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[Task, LogEntry] -> Model[TaskRecord, TaskLogRecord]", "INVARIANT": "Database schema must match the TaskRecord model structure.", "LAYER": "Core", "POST": "Provides reliable storage and retrieval for task metadata and logs.", "PRE": "Tasks database must be initialized with TaskRecord and TaskLogRecord schemas.", - "PURPOSE": "Handles the persistence of tasks using SQLAlchemy and the tasks.db database.", "SIDE_EFFECT": "Performs database I/O on tasks.db." }, "relations": [ @@ -29796,12 +25945,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provides methods to save, load, and delete task records in tasks.db using SQLAlchemy models.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[Task | List[Task] | List[str] | Query(limit:int,status:Optional[TaskStatus])] -> Model[TaskRecord, Environment] -> Output[None | List[Task]]", "INVARIANT": "Persistence must handle potentially missing task fields natively.", "POST": "Persist operations leave matching TaskRecord rows committed or rolled back without leaking sessions, load operations return reconstructed Task objects from stored TaskRecord rows, and delete operations remove only the addressed task rows.", "PRE": "TasksSessionLocal must provide an active SQLAlchemy session, Task inputs must expose id/plugin_id/status/params/result/logs fields, and TaskRecord plus Environment schemas must be available.", - "PURPOSE": "Provides methods to save, load, and delete task records in tasks.db using SQLAlchemy models.", "SIDE_EFFECT": "Opens SQLAlchemy sessions, reads and writes task_records rows, resolves environment foreign keys against environments, commits or rolls back transactions, and emits error logs on persistence failures.", "TEST_CONTRACT": "TaskPersistenceContract ->" }, @@ -29837,29 +25986,7 @@ "target_ref": "[TaskGraph]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is forbidden for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TaskPersistenceService [C:5] [TYPE Class] [SEMANTICS persistence, service, database, sqlalchemy]\n# @BRIEF Provides methods to save, load, and delete task records in tasks.db using SQLAlchemy models.\n# @PRE: TasksSessionLocal must provide an active SQLAlchemy session, Task inputs must expose id/plugin_id/status/params/result/logs fields, and TaskRecord plus Environment schemas must be available.\n# @POST: Persist operations leave matching TaskRecord rows committed or rolled back without leaking sessions, load operations return reconstructed Task objects from stored TaskRecord rows, and delete operations remove only the addressed task rows.\n# @SIDE_EFFECT: Opens SQLAlchemy sessions, reads and writes task_records rows, resolves environment foreign keys against environments, commits or rolls back transactions, and emits error logs on persistence failures.\n# @DATA_CONTRACT: Input[Task | List[Task] | List[str] | Query(limit:int,status:Optional[TaskStatus])] -> Model[TaskRecord, Environment] -> Output[None | List[Task]]\n# @RELATION DEPENDS_ON -> [TasksSessionLocal]\n# @RELATION DEPENDS_ON -> [TaskRecord]\n# @RELATION DEPENDS_ON -> [Environment]\n# @RELATION DEPENDS_ON -> [TaskManager]\n# @RELATION DEPENDS_ON -> [TaskGraph]\n# @INVARIANT: Persistence must handle potentially missing task fields natively.\n#\n# @TEST_CONTRACT: TaskPersistenceContract ->\n# {\n# required_fields: {},\n# invariants: [\n# \"persist_task creates or updates a record\",\n# \"load_tasks retrieves valid Task instances\",\n# \"delete_tasks correctly removes records from the database\"\n# ]\n# }\n# @TEST_FIXTURE: valid_task_persistence -> {\"task_id\": \"123\", \"status\": \"PENDING\"}\n# @TEST_EDGE: persist_invalid_task_type -> raises Exception\n# @TEST_EDGE: load_corrupt_json_params -> handled gracefully\n# @TEST_INVARIANT: accurate_round_trip -> verifies: [valid_task_persistence, load_corrupt_json_params]\nclass TaskPersistenceService:\n # #region _json_load_if_needed [TYPE Function] [C:1]\n # @PURPOSE: Safely load JSON strings from DB if necessary\n # @PRE: value is an arbitrary database value\n # @POST: Returns parsed JSON object, list, string, or primitive\n @staticmethod\n def _json_load_if_needed(value):\n # Hot-path utility — no entry/exit logging to reduce noise\n if value is None:\n return None\n if isinstance(value, (dict, list)):\n return value\n if isinstance(value, str):\n stripped = value.strip()\n if stripped == \"\" or stripped.lower() == \"null\":\n return None\n try:\n return json.loads(stripped)\n except json.JSONDecodeError:\n return value\n return value\n # #endregion _json_load_if_needed\n # #region _parse_datetime [TYPE Function] [C:1]\n # @PURPOSE: Safely parse a datetime string from the database\n # @PRE: value is an ISO string or datetime object\n # @POST: Returns datetime object or None\n @staticmethod\n def _parse_datetime(value):\n # Hot-path utility — no entry/exit logging to reduce startup noise\n if value is None or isinstance(value, datetime):\n return value\n if isinstance(value, str):\n try:\n return datetime.fromisoformat(value)\n except ValueError:\n return None\n return None\n # #endregion _parse_datetime\n # #region _resolve_environment_id [TYPE Function] [C:3]\n # @PURPOSE: Resolve environment id into existing environments.id value to satisfy FK constraints.\n # @PRE: Session is active\n # @POST: Returns existing environments.id or None when unresolved.\n # @DATA_CONTRACT: Input[env_id: Optional[str]] -> Output[Optional[str]]\n # @RELATION: [DEPENDS_ON] ->[Environment]\n @staticmethod\n def _resolve_environment_id(\n session: Session, env_id: str | None\n ) -> str | None:\n with belief_scope(\"_resolve_environment_id\"):\n raw_value = str(env_id or \"\").strip()\n if not raw_value:\n return None\n # 1) Direct match by primary key.\n by_id = (\n session.query(Environment).filter(Environment.id == raw_value).first()\n )\n if by_id:\n return str(by_id.id)\n # 2) Exact match by name.\n by_name = (\n session.query(Environment).filter(Environment.name == raw_value).first()\n )\n if by_name:\n return str(by_name.id)\n # 3) Slug-like match (e.g. \"ss-dev\" -> \"SS DEV\").\n def normalize_token(value: str) -> str:\n lowered = str(value or \"\").strip().lower()\n return re.sub(r\"[^a-z0-9]+\", \"-\", lowered).strip(\"-\")\n target_token = normalize_token(raw_value)\n if not target_token:\n return None\n for env in session.query(Environment).all():\n if (\n normalize_token(env.id) == target_token\n or normalize_token(env.name) == target_token\n ):\n return str(env.id)\n return None\n # #endregion _resolve_environment_id\n # #region __init__ [TYPE Function] [C:3]\n # @PURPOSE: Initializes the persistence service.\n # @PRE: None.\n # @POST: Service is ready.\n def __init__(self):\n with belief_scope(\"TaskPersistenceService.__init__\"):\n # We use TasksSessionLocal from database.py\n pass\n # #endregion __init__\n # #region persist_task [TYPE Function] [C:3]\n # @PURPOSE: Persists or updates a single task in the database.\n # @PRE: isinstance(task, Task)\n # @POST: Task record created or updated in database.\n # @PARAM: task (Task) - The task object to persist.\n # @SIDE_EFFECT: Writes to task_records table in tasks.db\n # @DATA_CONTRACT: Input[Task] -> Model[TaskRecord]\n # @RELATION: [CALLS] ->[_resolve_environment_id]\n def persist_task(self, task: Task) -> None:\n with belief_scope(\"TaskPersistenceService.persist_task\", f\"task_id={task.id}\"):\n session: Session = TasksSessionLocal()\n try:\n record = (\n session.query(TaskRecord).filter(TaskRecord.id == task.id).first()\n )\n if not record:\n record = TaskRecord(id=task.id)\n session.add(record)\n record.type = task.plugin_id\n record.status = task.status.value\n raw_env_id = task.params.get(\"environment_id\") or task.params.get(\n \"source_env_id\"\n )\n record.environment_id = self._resolve_environment_id(\n session, raw_env_id\n )\n record.started_at = task.started_at\n record.finished_at = task.finished_at\n # Ensure params and result are JSON serializable\n def json_serializable(obj):\n # Hot-path utility — no entry/exit logging\n if isinstance(obj, dict):\n return {k: json_serializable(v) for k, v in obj.items()}\n elif isinstance(obj, list):\n return [json_serializable(v) for v in obj]\n elif isinstance(obj, datetime):\n return obj.isoformat()\n return obj\n record.params = json_serializable(task.params)\n record.result = json_serializable(task.result)\n # Store logs as JSON, converting datetime to string\n record.logs = []\n for log in task.logs:\n log_dict = log.dict()\n if isinstance(log_dict.get(\"timestamp\"), datetime):\n log_dict[\"timestamp\"] = log_dict[\"timestamp\"].isoformat()\n # Also clean up any datetimes in context\n if log_dict.get(\"context\"):\n log_dict[\"context\"] = json_serializable(log_dict[\"context\"])\n record.logs.append(log_dict)\n # Extract error if failed\n if task.status == TaskStatus.FAILED:\n for log in reversed(task.logs):\n if log.level == \"ERROR\":\n record.error = log.message\n break\n session.commit()\n except Exception as e:\n session.rollback()\n logger.error(f\"Failed to persist task {task.id}: {e}\")\n finally:\n session.close()\n # #endregion persist_task\n # #region persist_tasks [TYPE Function] [C:3]\n # @PURPOSE: Persists multiple tasks.\n # @PRE: isinstance(tasks, list)\n # @POST: All tasks in list are persisted.\n # @PARAM: tasks (List[Task]) - The list of tasks to persist.\n # @RELATION: [CALLS] ->[persist_task]\n def persist_tasks(self, tasks: list[Task]) -> None:\n with belief_scope(\"TaskPersistenceService.persist_tasks\"):\n for task in tasks:\n self.persist_task(task)\n # #endregion persist_tasks\n # #region load_tasks [TYPE Function] [C:3]\n # @PURPOSE: Loads tasks from the database.\n # @PRE: limit is an integer.\n # @POST: Returns list of Task objects.\n # @PARAM: limit (int) - Max tasks to load.\n # @PARAM: status (Optional[TaskStatus]) - Filter by status.\n # @RETURN: List[Task] - The loaded tasks.\n # @DATA_CONTRACT: Model[TaskRecord] -> Output[List[Task]]\n # @RELATION: [CALLS] ->[_json_load_if_needed]\n # @RELATION: [CALLS] ->[_parse_datetime]\n def load_tasks(\n self, limit: int = 100, status: TaskStatus | None = None\n ) -> list[Task]:\n with belief_scope(\"TaskPersistenceService.load_tasks\"):\n session: Session = TasksSessionLocal()\n try:\n query = session.query(TaskRecord)\n if status:\n query = query.filter(TaskRecord.status == status.value)\n records = (\n query.order_by(TaskRecord.created_at.desc()).limit(limit).all()\n )\n loaded_tasks = []\n for record in records:\n try:\n logs = []\n logs_payload = self._json_load_if_needed(record.logs)\n if isinstance(logs_payload, list):\n for log_data in logs_payload:\n if not isinstance(log_data, dict):\n continue\n log_data = dict(log_data)\n log_data[\"timestamp\"] = (\n self._parse_datetime(log_data.get(\"timestamp\"))\n or datetime.utcnow()\n )\n logs.append(LogEntry(**log_data))\n started_at = self._parse_datetime(record.started_at)\n finished_at = self._parse_datetime(record.finished_at)\n params = self._json_load_if_needed(record.params)\n result = self._json_load_if_needed(record.result)\n task = Task(\n id=record.id,\n plugin_id=record.type,\n status=TaskStatus(record.status),\n started_at=started_at,\n finished_at=finished_at,\n params=params if isinstance(params, dict) else {},\n result=result,\n logs=logs,\n )\n loaded_tasks.append(task)\n except Exception as e:\n logger.error(f\"Failed to reconstruct task {record.id}: {e}\")\n return loaded_tasks\n finally:\n session.close()\n # #endregion load_tasks\n # #region delete_tasks [TYPE Function] [C:3]\n # @PURPOSE: Deletes specific tasks from the database.\n # @PRE: task_ids is a list of strings.\n # @POST: Specified task records deleted from database.\n # @PARAM: task_ids (List[str]) - List of task IDs to delete.\n # @SIDE_EFFECT: Deletes rows from task_records table.\n # @RELATION: [DEPENDS_ON] ->[TaskRecord]\n def delete_tasks(self, task_ids: list[str]) -> None:\n if not task_ids:\n return\n with belief_scope(\"TaskPersistenceService.delete_tasks\"):\n session: Session = TasksSessionLocal()\n try:\n session.query(TaskRecord).filter(TaskRecord.id.in_(task_ids)).delete(\n synchronize_session=False\n )\n session.commit()\n except Exception as e:\n session.rollback()\n logger.error(f\"Failed to delete tasks: {e}\")\n finally:\n session.close()\n # #endregion delete_tasks\n# #endregion TaskPersistenceService\n" @@ -29873,12 +26000,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provides methods to store, query, summarize, and delete task log rows in the task_logs table.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[task_id:str, logs:List[LogEntry], log_filter:LogFilter, task_ids:List[str]] -> Model[TaskLogRecord] -> Output[None | List[TaskLog] | LogStats | List[str]]", "INVARIANT": "Log entries are batch-inserted for performance.", "POST": "add_logs commits all provided log entries or rolls back on failure, query methods return TaskLog or LogStats views reconstructed from TaskLogRecord rows, and delete methods remove only log rows matching the supplied task identifiers.", "PRE": "TasksSessionLocal must provide an active SQLAlchemy session, task_id inputs must identify task log rows, LogEntry batches must expose timestamp/level/source/message/metadata fields, and LogFilter inputs must provide pagination and filter attributes used by queries.", - "PURPOSE": "Provides methods to store, query, summarize, and delete task log rows in the task_logs table.", "SIDE_EFFECT": "Opens SQLAlchemy sessions, inserts, reads, aggregates, and deletes task_logs rows, serializes log metadata to JSON, commits or rolls back transactions, and emits error logs on persistence failures.", "TEST_CONTRACT": "TaskLogPersistenceContract ->" }, @@ -29908,29 +26035,7 @@ "target_ref": "[EventBus]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is forbidden for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TaskLogPersistenceService [C:5] [TYPE Class] [SEMANTICS persistence, service, database, log, sqlalchemy]\n# @BRIEF Provides methods to store, query, summarize, and delete task log rows in the task_logs table.\n# @PRE: TasksSessionLocal must provide an active SQLAlchemy session, task_id inputs must identify task log rows, LogEntry batches must expose timestamp/level/source/message/metadata fields, and LogFilter inputs must provide pagination and filter attributes used by queries.\n# @POST: add_logs commits all provided log entries or rolls back on failure, query methods return TaskLog or LogStats views reconstructed from TaskLogRecord rows, and delete methods remove only log rows matching the supplied task identifiers.\n# @SIDE_EFFECT: Opens SQLAlchemy sessions, inserts, reads, aggregates, and deletes task_logs rows, serializes log metadata to JSON, commits or rolls back transactions, and emits error logs on persistence failures.\n# @DATA_CONTRACT: Input[task_id:str, logs:List[LogEntry], log_filter:LogFilter, task_ids:List[str]] -> Model[TaskLogRecord] -> Output[None | List[TaskLog] | LogStats | List[str]]\n# @RELATION DEPENDS_ON -> [TaskLogRecord]\n# @RELATION DEPENDS_ON -> [TasksSessionLocal]\n# @RELATION DEPENDS_ON -> [TaskManager]\n# @RELATION DEPENDS_ON -> [EventBus]\n# @INVARIANT: Log entries are batch-inserted for performance.\n#\n# @TEST_CONTRACT: TaskLogPersistenceContract ->\n# {\n# required_fields: {},\n# invariants: [\n# \"add_logs efficiently saves logs to the database\",\n# \"get_logs retrieves properly filtered LogEntry objects\"\n# ]\n# }\n# @TEST_FIXTURE: valid_log_batch -> {\"task_id\": \"123\", \"logs\": [{\"level\": \"INFO\", \"message\": \"msg\"}]}\n# @TEST_EDGE: empty_log_list -> no-op behavior\n# @TEST_EDGE: add_logs_db_error -> rollback and log error\n# @TEST_INVARIANT: accurate_log_aggregation -> verifies: [valid_log_batch]\nclass TaskLogPersistenceService:\n \"\"\"\n Service for persisting and querying task logs.\n Supports batch inserts, filtering, and statistics.\n \"\"\"\n # #region __init__ [TYPE Function] [C:3]\n # @PURPOSE: Initializes the TaskLogPersistenceService\n # @PRE: config is provided or defaults are used\n # @POST: Service is ready for log persistence\n def __init__(self, config=None):\n pass\n # #endregion __init__\n # #region add_logs [TYPE Function] [C:3]\n # @PURPOSE: Batch insert log entries for a task.\n # @PRE: logs is a list of LogEntry objects.\n # @POST: All logs inserted into task_logs table.\n # @PARAM: task_id (str) - The task ID.\n # @PARAM: logs (List[LogEntry]) - Log entries to insert.\n # @SIDE_EFFECT: Writes to task_logs table.\n # @DATA_CONTRACT: Input[List[LogEntry]] -> Model[TaskLogRecord]\n # @RELATION: [DEPENDS_ON] ->[TaskLogRecord]\n def add_logs(self, task_id: str, logs: list[LogEntry]) -> None:\n if not logs:\n return\n with belief_scope(\"TaskLogPersistenceService.add_logs\", f\"task_id={task_id}\"):\n session: Session = TasksSessionLocal()\n try:\n for log in logs:\n record = TaskLogRecord(\n task_id=task_id,\n timestamp=log.timestamp,\n level=log.level,\n source=log.source or \"system\",\n message=log.message,\n metadata_json=json.dumps(log.metadata)\n if log.metadata\n else None,\n )\n session.add(record)\n session.commit()\n except Exception as e:\n session.rollback()\n logger.error(f\"Failed to add logs for task {task_id}: {e}\")\n finally:\n session.close()\n # #endregion add_logs\n # #region get_logs [TYPE Function] [C:3]\n # @PURPOSE: Query logs for a task with filtering and pagination.\n # @PRE: task_id is a valid task ID.\n # @POST: Returns list of TaskLog objects matching filters.\n # @PARAM: task_id (str) - The task ID.\n # @PARAM: log_filter (LogFilter) - Filter parameters.\n # @RETURN: List[TaskLog] - Filtered log entries.\n # @DATA_CONTRACT: Model[TaskLogRecord] -> Output[List[TaskLog]]\n # @RELATION: [DEPENDS_ON] ->[TaskLogRecord]\n # @RELATION: [DEPENDS_ON] ->[LogFilter]\n # @RELATION: [DEPENDS_ON] ->[TaskLog]\n def get_logs(self, task_id: str, log_filter: LogFilter) -> list[TaskLog]:\n with belief_scope(\"TaskLogPersistenceService.get_logs\", f\"task_id={task_id}\"):\n session: Session = TasksSessionLocal()\n try:\n query = session.query(TaskLogRecord).filter(\n TaskLogRecord.task_id == task_id\n )\n # Apply filters\n if log_filter.level:\n query = query.filter(\n TaskLogRecord.level == log_filter.level.upper()\n )\n if log_filter.source:\n query = query.filter(TaskLogRecord.source == log_filter.source)\n if log_filter.search:\n search_pattern = f\"%{log_filter.search}%\"\n query = query.filter(TaskLogRecord.message.ilike(search_pattern))\n # Order by timestamp ascending (oldest first)\n query = query.order_by(TaskLogRecord.timestamp.asc())\n # Apply pagination\n records = query.offset(log_filter.offset).limit(log_filter.limit).all()\n logs = []\n for record in records:\n metadata = None\n if record.metadata_json:\n try:\n metadata = json.loads(record.metadata_json)\n except json.JSONDecodeError:\n metadata = None\n logs.append(\n TaskLog(\n id=record.id,\n task_id=record.task_id,\n timestamp=record.timestamp,\n level=record.level,\n source=record.source,\n message=record.message,\n metadata=metadata,\n )\n )\n return logs\n finally:\n session.close()\n # #endregion get_logs\n # #region get_log_stats [TYPE Function] [C:3]\n # @PURPOSE: Get statistics about logs for a task.\n # @PRE: task_id is a valid task ID.\n # @POST: Returns LogStats with counts by level and source.\n # @PARAM: task_id (str) - The task ID.\n # @RETURN: LogStats - Statistics about task logs.\n # @DATA_CONTRACT: Model[TaskLogRecord] -> Output[LogStats]\n # @RELATION: [DEPENDS_ON] ->[TaskLogRecord]\n # @RELATION: [DEPENDS_ON] ->[LogStats]\n def get_log_stats(self, task_id: str) -> LogStats:\n with belief_scope(\n \"TaskLogPersistenceService.get_log_stats\", f\"task_id={task_id}\"\n ):\n session: Session = TasksSessionLocal()\n try:\n # Get total count\n total_count = (\n session.query(TaskLogRecord)\n .filter(TaskLogRecord.task_id == task_id)\n .count()\n )\n # Get counts by level\n from sqlalchemy import func\n level_counts = (\n session.query(TaskLogRecord.level, func.count(TaskLogRecord.id))\n .filter(TaskLogRecord.task_id == task_id)\n .group_by(TaskLogRecord.level)\n .all()\n )\n by_level = {level: count for level, count in level_counts}\n # Get counts by source\n source_counts = (\n session.query(TaskLogRecord.source, func.count(TaskLogRecord.id))\n .filter(TaskLogRecord.task_id == task_id)\n .group_by(TaskLogRecord.source)\n .all()\n )\n by_source = {source: count for source, count in source_counts}\n return LogStats(\n total_count=total_count, by_level=by_level, by_source=by_source\n )\n finally:\n session.close()\n # #endregion get_log_stats\n # #region get_sources [TYPE Function] [C:3]\n # @PURPOSE: Get unique sources for a task's logs.\n # @PRE: task_id is a valid task ID.\n # @POST: Returns list of unique source strings.\n # @PARAM: task_id (str) - The task ID.\n # @RETURN: List[str] - Unique source names.\n # @DATA_CONTRACT: Model[TaskLogRecord] -> Output[List[str]]\n # @RELATION: [DEPENDS_ON] ->[TaskLogRecord]\n def get_sources(self, task_id: str) -> list[str]:\n with belief_scope(\n \"TaskLogPersistenceService.get_sources\", f\"task_id={task_id}\"\n ):\n session: Session = TasksSessionLocal()\n try:\n from sqlalchemy import distinct\n sources = (\n session.query(distinct(TaskLogRecord.source))\n .filter(TaskLogRecord.task_id == task_id)\n .all()\n )\n return [s[0] for s in sources]\n finally:\n session.close()\n # #endregion get_sources\n # #region delete_logs_for_task [TYPE Function] [C:3]\n # @PURPOSE: Delete all logs for a specific task.\n # @PRE: task_id is a valid task ID.\n # @POST: All logs for the task are deleted.\n # @PARAM: task_id (str) - The task ID.\n # @SIDE_EFFECT: Deletes from task_logs table.\n # @RELATION: [DEPENDS_ON] ->[TaskLogRecord]\n def delete_logs_for_task(self, task_id: str) -> None:\n with belief_scope(\n \"TaskLogPersistenceService.delete_logs_for_task\", f\"task_id={task_id}\"\n ):\n session: Session = TasksSessionLocal()\n try:\n session.query(TaskLogRecord).filter(\n TaskLogRecord.task_id == task_id\n ).delete(synchronize_session=False)\n session.commit()\n except Exception as e:\n session.rollback()\n logger.error(f\"Failed to delete logs for task {task_id}: {e}\")\n finally:\n session.close()\n # #endregion delete_logs_for_task\n # #region delete_logs_for_tasks [TYPE Function] [C:3]\n # @PURPOSE: Delete all logs for multiple tasks.\n # @PRE: task_ids is a list of task IDs.\n # @POST: All logs for the tasks are deleted.\n # @PARAM: task_ids (List[str]) - List of task IDs.\n # @SIDE_EFFECT: Deletes rows from task_logs table.\n # @RELATION: [DEPENDS_ON] ->[TaskLogRecord]\n def delete_logs_for_tasks(self, task_ids: list[str]) -> None:\n if not task_ids:\n return\n with belief_scope(\"TaskLogPersistenceService.delete_logs_for_tasks\"):\n session: Session = TasksSessionLocal()\n try:\n session.query(TaskLogRecord).filter(\n TaskLogRecord.task_id.in_(task_ids)\n ).delete(synchronize_session=False)\n session.commit()\n except Exception as e:\n session.rollback()\n logger.error(f\"Failed to delete logs for tasks: {e}\")\n finally:\n session.close()\n # #endregion delete_logs_for_tasks\n# #endregion TaskLogPersistenceService\n" @@ -29944,10 +26049,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Provides a dedicated logger for tasks with automatic source attribution.", "COMPLEXITY": 2, "INVARIANT": "Each TaskLogger instance is bound to a specific task_id and default source.", - "LAYER": "Core", - "PURPOSE": "Provides a dedicated logger for tasks with automatic source attribution." + "LAYER": "Core" }, "relations": [ { @@ -29977,9 +26082,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "A wrapper around TaskManager._add_log that carries task_id and source context.", "COMPLEXITY": 2, "INVARIANT": "All log calls include the task_id and source.", - "PURPOSE": "A wrapper around TaskManager._add_log that carries task_id and source context.", "TEST_CONTRACT": "TaskLoggerContract ->", "UX_STATE": "Idle -> Logging -> (system records log)" }, @@ -30004,47 +26109,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Class' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Class" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -30078,10 +26142,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Create a sub-logger with a different default source.", "PARAM": "source (str) - New default source.", "POST": "Returns new TaskLogger with the same task_id but different source.", "PRE": "source is a non-empty string.", - "PURPOSE": "Create a sub-logger with a different default source.", "RETURN": "TaskLogger - New logger instance." }, "relations": [], @@ -30112,10 +26176,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Internal method to log a message at a given level.", "PARAM": "metadata (Optional[Dict]) - Additional structured data.", "POST": "Log entry added via add_log_fn.", "PRE": "level is a valid log level string.", - "PURPOSE": "Internal method to log a message at a given level.", "UX_STATE": "Logging -> (writing internal log)" }, "relations": [], @@ -30125,26 +26189,6 @@ "tag": "PARAM", "message": "@PARAM is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -30160,10 +26204,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Log a DEBUG level message.", "PARAM": "metadata (Optional[Dict]) - Additional data.", "POST": "Log entry added via internally with DEBUG level.", - "PRE": "message is a string.", - "PURPOSE": "Log a DEBUG level message." + "PRE": "message is a string." }, "relations": [], "schema_warnings": [ @@ -30187,10 +26231,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Log an INFO level message.", "PARAM": "metadata (Optional[Dict]) - Additional data.", "POST": "Log entry added internally with INFO level.", - "PRE": "message is a string.", - "PURPOSE": "Log an INFO level message." + "PRE": "message is a string." }, "relations": [], "schema_warnings": [ @@ -30214,10 +26258,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Log a WARNING level message.", "PARAM": "metadata (Optional[Dict]) - Additional data.", "POST": "Log entry added internally with WARNING level.", - "PRE": "message is a string.", - "PURPOSE": "Log a WARNING level message." + "PRE": "message is a string." }, "relations": [], "schema_warnings": [ @@ -30241,10 +26285,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Log an ERROR level message.", "PARAM": "metadata (Optional[Dict]) - Additional data.", "POST": "Log entry added internally with ERROR level.", - "PRE": "message is a string.", - "PURPOSE": "Log an ERROR level message." + "PRE": "message is a string." }, "relations": [], "schema_warnings": [ @@ -30268,10 +26312,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Log a progress update with percentage.", "PARAM": "source (Optional[str]) - Override source.", "POST": "Log entry with progress metadata added.", - "PRE": "percent is between 0 and 100.", - "PURPOSE": "Log a progress update with percentage." + "PRE": "percent is between 0 and 100." }, "relations": [], "schema_warnings": [ @@ -30295,8 +26339,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Application-level timezone utilities. Reads APP_TIMEZONE from env (default Europe/Moscow)" + "BRIEF": "Application-level timezone utilities. Reads APP_TIMEZONE from env (default Europe/Moscow)", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -30313,10 +26357,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Read APP_TIMEZONE from env, fall back to Europe/Moscow.", "COMPLEXITY": 1, "POST": "Returns a valid IANA timezone string.", - "PRE": "Environment is loaded (dotenv or os.environ).", - "PURPOSE": "Read APP_TIMEZONE from env, fall back to Europe/Moscow." + "PRE": "Environment is loaded (dotenv or os.environ)." }, "relations": [], "schema_warnings": [], @@ -30333,9 +26377,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return cached ZoneInfo for the configured application timezone.", "COMPLEXITY": 1, "POST": "Returns a ZoneInfo instance matching APP_TIMEZONE env var.", - "PURPOSE": "Return cached ZoneInfo for the configured application timezone.", "SIDE_EFFECT": "Reads os.environ on first call; result is cached." }, "relations": [], @@ -30353,9 +26397,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Reset the cached ZoneInfo so the next get_app_timezone() call re-reads from env/DB.", "COMPLEXITY": 1, "POST": "_APP_TZ_CACHE is set to None; subsequent get_app_timezone() will re-resolve.", - "PURPOSE": "Reset the cached ZoneInfo so the next get_app_timezone() call re-reads from env/DB.", "RATIONALE": "Called after PATCH /settings/consolidated updates app_timezone." }, "relations": [], @@ -30373,10 +26417,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate that a timezone string is a known IANA timezone.", "COMPLEXITY": 1, "POST": "Returns True if ZoneInfo accepts the name, False otherwise.", - "PRE": "tz_name is a string.", - "PURPOSE": "Validate that a timezone string is a known IANA timezone." + "PRE": "tz_name is a string." }, "relations": [], "schema_warnings": [], @@ -30393,10 +26437,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Convert a timezone-aware or naive UTC datetime to the configured app timezone.", "COMPLEXITY": 1, "POST": "Returns a datetime with the app timezone attached (astimezone).", - "PRE": "If dt is timezone-naive, it is assumed to be UTC.", - "PURPOSE": "Convert a timezone-aware or naive UTC datetime to the configured app timezone." + "PRE": "If dt is timezone-naive, it is assumed to be UTC." }, "relations": [], "schema_warnings": [], @@ -30413,9 +26457,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Get current time in the configured application timezone.", "COMPLEXITY": 1, - "POST": "Returns timezone-aware datetime in the app timezone.", - "PURPOSE": "Get current time in the configured application timezone." + "POST": "Returns timezone-aware datetime in the app timezone." }, "relations": [], "schema_warnings": [], @@ -30432,9 +26476,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return the UTC offset string for the configured timezone (e.g. \"+03:00\").", "COMPLEXITY": 1, - "POST": "Returns string like \"+03:00\" or \"+00:00\".", - "PURPOSE": "Return the UTC offset string for the configured timezone (e.g. \"+03:00\")." + "POST": "Returns string like \"+03:00\" or \"+00:00\"." }, "relations": [], "schema_warnings": [], @@ -30451,38 +26495,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Shared utility package root." + "BRIEF": "Shared utility package root." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region CoreUtils [TYPE Package] [SEMANTICS utils, package, init]\n# @BRIEF Shared utility package root.\n# #endregion CoreUtils\n" @@ -30496,13 +26512,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provides async Superset API client with shared auth-token cache to avoid per-request re-login.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[config: Dict[str, Any]] -> Output[authenticated async Superset HTTP interactions]", "INVARIANT": "Async client reuses cached auth tokens per environment credentials and invalidates on 401.", "LAYER": "Infra", "POST": "Async network clients reuse cached auth tokens and expose stable async request/error translation flow.", "PRE": "Config payloads contain a Superset base URL and authentication fields needed for login.", - "PURPOSE": "Provides async Superset API client with shared auth-token cache to avoid per-request re-login.", "SIDE_EFFECT": "Performs upstream HTTP I/O and mutates process-local auth cache entries." }, "relations": [ @@ -30546,8 +26562,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Async Superset API client backed by httpx.AsyncClient with shared auth cache." + "BRIEF": "Async Superset API client backed by httpx.AsyncClient with shared auth cache.", + "COMPLEXITY": 3 }, "relations": [ { @@ -30583,7 +26599,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Этот модуль отвечает за обновление метаданных (verbose_name) в датасетах Superset," + "BRIEF": "Этот модуль отвечает за обновление метаданных (verbose_name) в датасетах Superset," }, "relations": [], "schema_warnings": [], @@ -30600,7 +26616,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Класс для маппинга и обновления verbose_name в датасетах Superset." + "BRIEF": "Класс для маппинга и обновления verbose_name в датасетах Superset." }, "relations": [], "schema_warnings": [], @@ -30617,9 +26633,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Извлекает маппинги column_name -> verbose_name через SQL Lab Superset.", "POST": "Возвращается словарь column_name -> verbose_name из результатов SQL-запроса.", - "PRE": "dataset_id должен существовать в Superset.", - "PURPOSE": "Извлекает маппинги column_name -> verbose_name через SQL Lab Superset." + "PRE": "dataset_id должен существовать в Superset." }, "relations": [], "schema_warnings": [], @@ -30636,10 +26652,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Загружает маппинги column_name -> verbose_name из XLSX файла.", "PARAM": "file_path (str) - Путь к XLSX файлу.", "POST": "Возвращается словарь с маппингами из файла.", "PRE": "file_path должен указывать на существующий XLSX файл.", - "PURPOSE": "Загружает маппинги column_name -> verbose_name из XLSX файла.", "RETURN": "Dict[str, str] - Словарь с маппингами.", "THROW": "Exception - При ошибках чтения файла или парсинга." }, @@ -30677,10 +26693,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Основная функция для выполнения маппинга и обновления verbose_name датасета в Superset.", "PARAM": "excel_path (Optional[str]) - Путь к XLSX файлу.", "POST": "Если найдены изменения, датасет в Superset обновлен через API.", - "PRE": "dataset_id должен быть существующим ID в Superset.", - "PURPOSE": "Основная функция для выполнения маппинга и обновления verbose_name датасета в Superset." + "PRE": "dataset_id должен быть существующим ID в Superset." }, "relations": [ { @@ -30729,9 +26745,9 @@ "tier": "STANDARD", "complexity": 1, "metadata": { + "BRIEF": "Предоставляет набор утилит для управления файловыми операциями, включая работу с временными файлами, архивами ZIP, файлами YAML и очистку директорий.", "LAYER": "Infra", "PUBLIC_API": "create_temp_file, remove_empty_directories, read_dashboard_from_disk, calculate_crc32, RetentionPolicy, archive_exports, save_and_unpack_dashboard, update_yamls, create_dashboard_export, sanitize_filename, get_filename_from_headers, consolidate_archive_folders", - "PURPOSE": "Предоставляет набор утилит для управления файловыми операциями, включая работу с временными файлами, архивами ZIP, файлами YAML и очистку директорий.", "TIER": "STANDARD" }, "relations": [ @@ -30790,7 +26806,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Exception raised when a file is not a valid ZIP archive." + "BRIEF": "Exception raised when a file is not a valid ZIP archive." }, "relations": [], "schema_warnings": [], @@ -30807,9 +26823,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Контекстный менеджер для создания временного файла или директории с гарантированным удалением.", "POST": "Временный ресурс создан и путь к нему возвращен; ресурс удален после выхода из контекста.", "PRE": "suffix должен быть строкой, определяющей тип ресурса.", - "PURPOSE": "Контекстный менеджер для создания временного файла или директории с гарантированным удалением.", "YIELDS": "Path - Путь к временному ресурсу." }, "relations": [], @@ -30834,9 +26850,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Рекурсивно удаляет все пустые поддиректории, начиная с указанного пути.", "POST": "Все пустые поддиректории удалены, возвращено их количество.", - "PRE": "root_dir должен быть путем к существующей директории.", - "PURPOSE": "Рекурсивно удаляет все пустые поддиректории, начиная с указанного пути." + "PRE": "root_dir должен быть путем к существующей директории." }, "relations": [], "schema_warnings": [], @@ -30853,9 +26869,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Читает бинарное содержимое файла с диска.", "POST": "Возвращает байты содержимого и имя файла.", - "PRE": "file_path должен указывать на существующий файл.", - "PURPOSE": "Читает бинарное содержимое файла с диска." + "PRE": "file_path должен указывать на существующий файл." }, "relations": [], "schema_warnings": [], @@ -30872,9 +26888,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Вычисляет контрольную сумму CRC32 для файла.", "POST": "Возвращает 8-значную hex-строку CRC32.", - "PRE": "file_path должен быть объектом Path к существующему файлу.", - "PURPOSE": "Вычисляет контрольную сумму CRC32 для файла." + "PRE": "file_path должен быть объектом Path к существующему файлу." }, "relations": [], "schema_warnings": [], @@ -30891,38 +26907,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Определяет политику хранения для архивов (ежедневные, еженедельные, ежемесячные)." + "BRIEF": "Определяет политику хранения для архивов (ежедневные, еженедельные, ежемесячные)." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'DataClass'", - "detail": { - "actual_type": "DataClass", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'DataClass' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "DataClass" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region RetentionPolicy [TYPE DataClass]\n# @BRIEF Определяет политику хранения для архивов (ежедневные, еженедельные, ежемесячные).\n@dataclass\nclass RetentionPolicy:\n daily: int = 7\n weekly: int = 4\n monthly: int = 12\n# #endregion RetentionPolicy\n" @@ -30936,9 +26924,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Управляет архивом экспортированных файлов, применяя политику хранения и дедупликацию.", "POST": "Старые или дублирующиеся архивы удалены согласно политике.", - "PRE": "output_dir должен быть путем к существующей директории.", - "PURPOSE": "Управляет архивом экспортированных файлов, применяя политику хранения и дедупликацию." + "PRE": "output_dir должен быть путем к существующей директории." }, "relations": [ { @@ -30968,9 +26956,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "(Helper) Применяет политику хранения к списку файлов, возвращая те, что нужно сохранить.", "POST": "Returns a set of files to keep.", - "PRE": "files_with_dates is a list of (Path, date) tuples.", - "PURPOSE": "(Helper) Применяет политику хранения к списку файлов, возвращая те, что нужно сохранить." + "PRE": "files_with_dates is a list of (Path, date) tuples." }, "relations": [], "schema_warnings": [], @@ -30987,9 +26975,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Сохраняет бинарное содержимое ZIP-архива на диск и опционально распаковывает его.", "POST": "ZIP-файл сохранен, и если unpack=True, он распакован в output_dir.", - "PRE": "zip_content должен быть байтами валидного ZIP-архива.", - "PURPOSE": "Сохраняет бинарное содержимое ZIP-архива на диск и опционально распаковывает его." + "PRE": "zip_content должен быть байтами валидного ZIP-архива." }, "relations": [], "schema_warnings": [], @@ -31006,9 +26994,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Обновляет конфигурации в YAML-файлах, заменяя значения или применяя regex.", "POST": "Все YAML файлы в директории обновлены согласно переданным параметрам.", - "PRE": "path должен быть существующей директорией.", - "PURPOSE": "Обновляет конфигурации в YAML-файлах, заменяя значения или применяя regex." + "PRE": "path должен быть существующей директорией." }, "relations": [ { @@ -31032,9 +27020,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "(Helper) Обновляет один YAML файл.", "POST": "Файл обновлен согласно переданным конфигурациям или регулярному выражению.", - "PRE": "file_path должен быть объектом Path к существующему YAML файлу.", - "PURPOSE": "(Helper) Обновляет один YAML файл." + "PRE": "file_path должен быть объектом Path к существующему YAML файлу." }, "relations": [], "schema_warnings": [], @@ -31051,9 +27039,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Функция замены, сохраняющая кавычки если они были.", "POST": "Возвращает строку с новым значением, сохраняя префикс и кавычки.", - "PRE": "match должен быть объектом совпадения регулярного выражения.", - "PURPOSE": "Функция замены, сохраняющая кавычки если они были." + "PRE": "match должен быть объектом совпадения регулярного выражения." }, "relations": [], "schema_warnings": [], @@ -31070,9 +27058,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Создает ZIP-архив из указанных исходных путей.", "POST": "ZIP-архив создан по пути zip_path.", - "PRE": "source_paths должен содержать существующие пути.", - "PURPOSE": "Создает ZIP-архив из указанных исходных путей." + "PRE": "source_paths должен содержать существующие пути." }, "relations": [], "schema_warnings": [], @@ -31089,9 +27077,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Очищает строку от символов, недопустимых в именах файлов.", "POST": "Возвращает строку без спецсимволов.", - "PRE": "filename должен быть строкой.", - "PURPOSE": "Очищает строку от символов, недопустимых в именах файлов." + "PRE": "filename должен быть строкой." }, "relations": [], "schema_warnings": [], @@ -31108,9 +27096,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Извлекает имя файла из HTTP заголовка 'Content-Disposition'.", "POST": "Возвращает имя файла или None, если заголовок отсутствует.", - "PRE": "headers должен быть словарем заголовков.", - "PURPOSE": "Извлекает имя файла из HTTP заголовка 'Content-Disposition'." + "PRE": "headers должен быть словарем заголовков." }, "relations": [], "schema_warnings": [], @@ -31127,9 +27115,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Консолидирует директории архивов на основе общего слага в имени.", "POST": "Директории с одинаковым префиксом объединены в одну.", - "PRE": "root_directory должен быть объектом Path к существующей директории.", - "PURPOSE": "Консолидирует директории архивов на основе общего слага в имени." + "PRE": "root_directory должен быть объектом Path к существующей директории." }, "relations": [], "schema_warnings": [], @@ -31146,9 +27134,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Provides utility functions for fuzzy matching database names.", "INVARIANT": "Confidence scores are returned as floats between 0.0 and 1.0.", - "LAYER": "Core", - "PURPOSE": "Provides utility functions for fuzzy matching database names." + "LAYER": "Core" }, "relations": [ { @@ -31172,9 +27160,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Suggests mappings between source and target databases using fuzzy matching.", "POST": "Returns a list of suggested mappings with confidence scores.", - "PRE": "source_databases and target_databases are lists of dictionaries with 'uuid' and 'database_name'.", - "PURPOSE": "Suggests mappings between source and target databases using fuzzy matching." + "PRE": "source_databases and target_databases are lists of dictionaries with 'uuid' and 'database_name'." }, "relations": [], "schema_warnings": [], @@ -31191,10 +27179,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Инкапсулирует низкоуровневую HTTP-логику для взаимодействия с Superset API, включая аутентификацию, управление сессией, retry-логику и обработку ошибок.", "COMPLEXITY": 3, "LAYER": "Infra", - "PUBLIC_API": "APIClient", - "PURPOSE": "Инкапсулирует низкоуровневую HTTP-логику для взаимодействия с Superset API, включая аутентификацию, управление сессией, retry-логику и обработку ошибок." + "PUBLIC_API": "APIClient" }, "relations": [ { @@ -31237,8 +27225,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Base exception for all Superset API related errors." + "BRIEF": "Base exception for all Superset API related errors.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -31255,8 +27243,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Exception raised when authentication fails." + "BRIEF": "Exception raised when authentication fails.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -31273,7 +27261,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Exception raised when access is denied." + "BRIEF": "Exception raised when access is denied." }, "relations": [], "schema_warnings": [], @@ -31290,7 +27278,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Exception raised when a dashboard cannot be found." + "BRIEF": "Exception raised when a dashboard cannot be found." }, "relations": [], "schema_warnings": [], @@ -31307,7 +27295,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Exception raised when a network level error occurs." + "BRIEF": "Exception raised when a network level error occurs." }, "relations": [], "schema_warnings": [], @@ -31324,9 +27312,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Initializes the network error.", "POST": "NetworkError is initialized.", - "PRE": "message is a string.", - "PURPOSE": "Initializes the network error." + "PRE": "message is a string." }, "relations": [], "schema_warnings": [], @@ -31343,9 +27331,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Process-local cache for Superset access/csrf tokens keyed by environment credentials.", "POST": "Cached entries expire automatically by TTL and can be reused across requests.", - "PRE": "base_url and username are stable strings.", - "PURPOSE": "Process-local cache for Superset access/csrf tokens keyed by environment credentials." + "PRE": "base_url and username are stable strings." }, "relations": [], "schema_warnings": [], @@ -31392,8 +27380,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Synchronous Superset API client with process-local auth token caching." + "BRIEF": "Synchronous Superset API client with process-local auth token caching.", + "COMPLEXITY": 3 }, "relations": [ { @@ -31423,10 +27411,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Инициализирует API клиент с конфигурацией, сессией и логгером.", "PARAM": "timeout (int) - Таймаут запросов.", "POST": "APIClient instance is initialized with a session.", - "PRE": "config must contain 'base_url' and 'auth'.", - "PURPOSE": "Инициализирует API клиент с конфигурацией, сессией и логгером." + "PRE": "config must contain 'base_url' and 'auth'." }, "relations": [], "schema_warnings": [ @@ -31450,9 +27438,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Создает и настраивает `requests.Session` с retry-логикой.", "POST": "Returns a configured requests.Session instance.", "PRE": "self.request_settings must be initialized.", - "PURPOSE": "Создает и настраивает `requests.Session` с retry-логикой.", "RETURN": "requests.Session - Настроенная сессия." }, "relations": [], @@ -31477,7 +27465,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Normalize Superset environment URL to base host/path without trailing slash and /api/v1 suffix." + "BRIEF": "Normalize Superset environment URL to base host/path without trailing slash and /api/v1 suffix." }, "relations": [], "schema_warnings": [], @@ -31494,9 +27482,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build absolute Superset API URL for endpoint using canonical /api/v1 base.", "POST": "Returns full URL without accidental duplicate slashes.", "PRE": "endpoint is relative path or absolute URL.", - "PURPOSE": "Build absolute Superset API URL for endpoint using canonical /api/v1 base.", "RETURN": "str" }, "relations": [], @@ -31521,9 +27509,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Выполняет аутентификацию в Superset API и получает access и CSRF токены.", "POST": "`self._tokens` заполнен, `self._authenticated` установлен в `True`.", "PRE": "self.auth and self.base_url must be valid.", - "PURPOSE": "Выполняет аутентификацию в Superset API и получает access и CSRF токены.", "RETURN": "Dict[str, str] - Словарь с токенами.", "THROW": "AuthenticationError, NetworkError - при ошибках." }, @@ -31606,9 +27594,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Возвращает HTTP-заголовки для аутентифицированных запросов.", "POST": "Returns headers including auth tokens.", - "PRE": "APIClient is initialized and authenticated or can be authenticated.", - "PURPOSE": "Возвращает HTTP-заголовки для аутентифицированных запросов." + "PRE": "APIClient is initialized and authenticated or can be authenticated." }, "relations": [], "schema_warnings": [], @@ -31625,10 +27613,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Выполняет универсальный HTTP-запрос к API.", "PARAM": "raw_response (bool) - Возвращать ли сырой ответ.", "POST": "Returns response content or raw Response object.", "PRE": "method and endpoint must be strings.", - "PURPOSE": "Выполняет универсальный HTTP-запрос к API.", "RETURN": "`requests.Response` если `raw_response=True`, иначе `dict`.", "THROW": "SupersetAPIError, NetworkError и их подклассы." }, @@ -31666,10 +27654,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "(Helper) Преобразует HTTP ошибки в кастомные исключения.", "PARAM": "endpoint (str) - Эндпоинт.", "POST": "Raises a specific SupersetAPIError or subclass.", - "PRE": "e must be a valid HTTPError with a response.", - "PURPOSE": "(Helper) Преобразует HTTP ошибки в кастомные исключения." + "PRE": "e must be a valid HTTPError with a response." }, "relations": [], "schema_warnings": [ @@ -31693,9 +27681,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Determine whether an API endpoint represents a dashboard resource for 404 translation.", "POST": "Returns true only for dashboard-specific endpoints.", - "PRE": "endpoint may be relative or absolute.", - "PURPOSE": "Determine whether an API endpoint represents a dashboard resource for 404 translation." + "PRE": "endpoint may be relative or absolute." }, "relations": [], "schema_warnings": [], @@ -31712,10 +27700,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "(Helper) Преобразует сетевые ошибки в `NetworkError`.", "PARAM": "url (str) - URL.", "POST": "Raises a NetworkError.", - "PRE": "e must be a RequestException.", - "PURPOSE": "(Helper) Преобразует сетевые ошибки в `NetworkError`." + "PRE": "e must be a RequestException." }, "relations": [], "schema_warnings": [ @@ -31739,10 +27727,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Загружает файл на сервер через multipart/form-data.", "PARAM": "timeout (Optional[int]) - Таймаут.", "POST": "File is uploaded and response returned.", "PRE": "file_info must contain 'file_obj' and 'file_name'.", - "PURPOSE": "Загружает файл на сервер через multipart/form-data.", "RETURN": "Ответ API в виде словаря.", "THROW": "SupersetAPIError, NetworkError, TypeError." }, @@ -31780,10 +27768,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "(Helper) Выполняет POST запрос с файлом.", "PARAM": "timeout (Optional[int]) - Таймаут.", "POST": "POST request is performed and JSON response returned.", "PRE": "url, files, and headers must be provided.", - "PURPOSE": "(Helper) Выполняет POST запрос с файлом.", "RETURN": "Dict - Ответ." }, "relations": [], @@ -31814,10 +27802,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Получает общее количество элементов для пагинации.", "PARAM": "count_field (str) - Поле с количеством.", "POST": "Returns total count of items.", "PRE": "query_params must be a dictionary.", - "PURPOSE": "Получает общее количество элементов для пагинации.", "RETURN": "int - Количество." }, "relations": [], @@ -31848,10 +27836,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Автоматически собирает данные со всех страниц пагинированного эндпоинта.", "PARAM": "pagination_options (Dict[str, Any]) - Опции пагинации.", "POST": "Returns all items across all pages.", "PRE": "pagination_options must contain 'base_query', 'results_field'. 'total_count' is optional.", - "PURPOSE": "Автоматически собирает данные со всех страниц пагинированного эндпоинта.", "RETURN": "List[Any] - Список данных." }, "relations": [], @@ -31882,12 +27870,12 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Interact with Superset preview compilation and SQL Lab execution endpoints using the current approved execution context.", "COMPLEXITY": 4, "INVARIANT": "The adapter never fabricates compiled SQL locally; preview truth is delegated to Superset only.", "LAYER": "Infra", "POST": "preview and launch calls return Superset-originated artifacts or explicit errors.", "PRE": "effective template params and dataset execution reference are available.", - "PURPOSE": "Interact with Superset preview compilation and SQL Lab execution endpoints using the current approved execution context.", "SIDE_EFFECT": "performs upstream Superset preview and SQL Lab calls." }, "relations": [ @@ -31952,8 +27940,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Typed preview payload for Superset-side compilation." + "BRIEF": "Typed preview payload for Superset-side compilation.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -31970,8 +27958,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Typed SQL Lab payload for audited launch handoff." + "BRIEF": "Typed SQL Lab payload for audited launch handoff.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -31988,12 +27976,12 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Recover dataset and dashboard context from Superset links while preserving explicit partial-recovery markers.", "COMPLEXITY": 4, "INVARIANT": "Partial recovery is surfaced explicitly and never misrepresented as fully confirmed context.", "LAYER": "Infra", "POST": "Returns the best available recovered context with explicit provenance and partial-recovery markers when necessary.", "PRE": "Superset link or dataset reference must be parseable enough to resolve an environment-scoped target resource.", - "PURPOSE": "Recover dataset and dashboard context from Superset links while preserving explicit partial-recovery markers.", "RATIONALE": "Decomposed from monolithic superset_context_extractor.py (1397 lines) into", "SIDE_EFFECT": "Performs upstream Superset API reads." }, @@ -32050,10 +28038,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Parse supported Superset URLs and recover canonical dataset/dashboard references for review-session intake.", "COMPLEXITY": 4, "POST": "extractor instance is ready to parse links against one Superset environment.", "PRE": "constructor receives a configured environment with a usable Superset base URL.", - "PURPOSE": "Parse supported Superset URLs and recover canonical dataset/dashboard references for review-session intake.", "SIDE_EFFECT": "downstream parse operations may call Superset APIs through SupersetClient." }, "relations": [ @@ -32108,12 +28096,12 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Base class and helpers for recovering dataset/dashboard context from Superset links with explicit partial-recovery markers.", "COMPLEXITY": 4, "INVARIANT": "Partial recovery is surfaced explicitly and never misrepresented as fully confirmed context.", "LAYER": "Infra", "POST": "Returns the best available recovered context with explicit provenance and partial-recovery markers when necessary.", "PRE": "Superset link or dataset reference must be parseable enough to resolve an environment-scoped target resource.", - "PURPOSE": "Base class and helpers for recovering dataset/dashboard context from Superset links with explicit partial-recovery markers.", "SIDE_EFFECT": "Performs upstream Superset API reads." }, "relations": [ @@ -32184,8 +28172,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Normalized output of Superset link parsing for session intake and recovery." + "BRIEF": "Normalized output of Superset link parsing for session intake and recovery.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -32202,9 +28190,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Extract normalized imported filters from decoded Superset query state (native_filters, dataMask, native_filter_state, form_data).", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Extract normalized imported filters from decoded Superset query state (native_filters, dataMask, native_filter_state, form_data)." + "LAYER": "Infra" }, "relations": [ { @@ -32262,9 +28250,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Parse supported Superset URLs and recover canonical dataset/dashboard references for review-session intake.", "COMPLEXITY": 4, - "LAYER": "Infra", - "PURPOSE": "Parse supported Superset URLs and recover canonical dataset/dashboard references for review-session intake." + "LAYER": "Infra" }, "relations": [ { @@ -32328,9 +28316,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "PII redaction helpers for assistant-facing dataset-review context — mask emails, UUIDs, long digit strings, and mixed identifiers.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "PII redaction helpers for assistant-facing dataset-review context — mask emails, UUIDs, long digit strings, and mixed identifiers." + "LAYER": "Infra" }, "relations": [], "schema_warnings": [ @@ -32381,8 +28369,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Redact likely sensitive identifiers while preserving structural hints for assistant-facing dataset-review context." + "BRIEF": "Redact likely sensitive identifiers while preserving structural hints for assistant-facing dataset-review context.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -32399,8 +28387,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Build assistant-safe imported-filter payload with raw-value redaction metadata when sensitive tokens are detected." + "BRIEF": "Build assistant-safe imported-filter payload with raw-value redaction metadata when sensitive tokens are detected.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -32417,8 +28405,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Redact likely PII substrings from one string while preserving non-sensitive delimiters and token shape." + "BRIEF": "Redact likely PII substrings from one string while preserving non-sensitive delimiters and token shape.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -32435,9 +28423,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Recover imported filters from Superset parsed context and dashboard metadata.", "COMPLEXITY": 4, - "LAYER": "Infra", - "PURPOSE": "Recover imported filters from Superset parsed context and dashboard metadata." + "LAYER": "Infra" }, "relations": [ { @@ -32501,9 +28489,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Deterministically detect runtime variables and Jinja references from dataset query-bearing fields without execution.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Deterministically detect runtime variables and Jinja references from dataset query-bearing fields without execution." + "LAYER": "Infra" }, "relations": [ { @@ -32567,8 +28555,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "WebSocket log handler module providing LogEntry DTO and WebSocketLogHandler for buffered log streaming." + "BRIEF": "WebSocket log handler module providing LogEntry DTO and WebSocketLogHandler for buffered log streaming.", + "COMPLEXITY": 3 }, "relations": [ { @@ -32618,8 +28606,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Custom logging handler that captures log records into a fixed-capacity buffer for WebSocket streaming." + "BRIEF": "Custom logging handler that captures log records into a fixed-capacity buffer for WebSocket streaming.", + "COMPLEXITY": 3 }, "relations": [ { @@ -32686,8 +28674,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Captures a log record, formats it, and stores it in the buffer as a LogEntry." + "BRIEF": "Captures a log record, formats it, and stores it in the buffer as a LogEntry.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -32704,8 +28692,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Returns a list of recent log entries from the buffer." + "BRIEF": "Returns a list of recent log entries from the buffer.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -32722,9 +28710,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Manages creation and provision of shared application dependencies, such as PluginLoader and TaskManager, to avoid circular imports.", "COMPLEXITY": 4, - "LAYER": "Core", - "PURPOSE": "Manages creation and provision of shared application dependencies, such as PluginLoader and TaskManager, to avoid circular imports." + "LAYER": "Core" }, "relations": [ { @@ -32808,10 +28796,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Dependency injector for ConfigManager.", "COMPLEXITY": 1, "POST": "Returns shared ConfigManager instance.", - "PRE": "Global config_manager must be initialized.", - "PURPOSE": "Dependency injector for ConfigManager." + "PRE": "Global config_manager must be initialized." }, "relations": [], "schema_warnings": [], @@ -32828,10 +28816,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Dependency injector for PluginLoader.", "COMPLEXITY": 1, "POST": "Returns shared PluginLoader instance.", - "PRE": "Global plugin_loader must be initialized.", - "PURPOSE": "Dependency injector for PluginLoader." + "PRE": "Global plugin_loader must be initialized." }, "relations": [], "schema_warnings": [], @@ -32848,10 +28836,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Dependency injector for TaskManager.", "COMPLEXITY": 1, "POST": "Returns shared TaskManager instance.", - "PRE": "Global task_manager must be initialized.", - "PURPOSE": "Dependency injector for TaskManager." + "PRE": "Global task_manager must be initialized." }, "relations": [], "schema_warnings": [], @@ -32868,10 +28856,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Dependency injector for SchedulerService.", "COMPLEXITY": 1, "POST": "Returns shared SchedulerService instance.", - "PRE": "Global scheduler_service must be initialized.", - "PURPOSE": "Dependency injector for SchedulerService." + "PRE": "Global scheduler_service must be initialized." }, "relations": [], "schema_warnings": [], @@ -32888,10 +28876,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Dependency injector for ResourceService.", "COMPLEXITY": 1, "POST": "Returns shared ResourceService instance.", - "PRE": "Global resource_service must be initialized.", - "PURPOSE": "Dependency injector for ResourceService." + "PRE": "Global resource_service must be initialized." }, "relations": [], "schema_warnings": [], @@ -32908,10 +28896,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Dependency injector for MappingService.", "COMPLEXITY": 1, "POST": "Returns new MappingService instance.", - "PRE": "Global config_manager must be initialized.", - "PURPOSE": "Dependency injector for MappingService." + "PRE": "Global config_manager must be initialized." }, "relations": [], "schema_warnings": [], @@ -32928,9 +28916,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Legacy compatibility shim for CleanReleaseRepository.", "COMPLEXITY": 1, - "POST": "Returns a shared CleanReleaseRepository instance.", - "PURPOSE": "Legacy compatibility shim for CleanReleaseRepository." + "POST": "Returns a shared CleanReleaseRepository instance." }, "relations": [], "schema_warnings": [], @@ -32947,9 +28935,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Dependency injector for CleanReleaseFacade.", "COMPLEXITY": 1, - "POST": "Returns a facade instance with a fresh DB session.", - "PURPOSE": "Dependency injector for CleanReleaseFacade." + "POST": "Returns a facade instance with a fresh DB session." }, "relations": [], "schema_warnings": [], @@ -32966,8 +28954,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Dataclass representing an authenticated API key principal for service-to-service auth." + "BRIEF": "Dataclass representing an authenticated API key principal for service-to-service auth.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -32984,8 +28972,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Factory: creates a dependency that accepts either a valid API key (with permission check)" + "BRIEF": "Factory: creates a dependency that accepts either a valid API key (with permission check)", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -33002,8 +28990,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Check the request's API key environment scope against a target env_id. Raises 400 if mismatch." + "BRIEF": "Check the request's API key environment scope against a target env_id. Raises 400 if mismatch.", + "COMPLEXITY": 1 }, "relations": [ { @@ -33033,10 +29021,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "FastAPI dependency that reads X-API-Key header and returns APIKeyPrincipal or None.", "COMPLEXITY": 3, "POST": "If valid key: returns APIKeyPrincipal; if no header: returns None; if invalid: raises 401.", "PRE": "X-API-Key header may be present in the request.", - "PURPOSE": "FastAPI dependency that reads X-API-Key header and returns APIKeyPrincipal or None.", "SIDE_EFFECT": "Updates last_used_at on the APIKey row (non-blocking flush)." }, "relations": [ @@ -33067,8 +29055,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "OAuth2 password bearer scheme for token extraction (raises 401 on missing token)." + "BRIEF": "OAuth2 password bearer scheme for token extraction (raises 401 on missing token).", + "COMPLEXITY": 1 }, "relations": [ { @@ -33078,70 +29066,7 @@ "target_ref": "OAuth2PasswordBearer" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region oauth2_scheme [C:1] [TYPE Variable]\n# @RELATION DEPENDS_ON -> OAuth2PasswordBearer\n# @BRIEF OAuth2 password bearer scheme for token extraction (raises 401 on missing token).\noauth2_scheme = OAuth2PasswordBearer(tokenUrl=\"/api/auth/login\", auto_error=True)\n# #endregion oauth2_scheme\n" @@ -33155,8 +29080,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Optional OAuth2 scheme — returns None instead of raising 401 when no token.", "COMPLEXITY": 1, - "PURPOSE": "Optional OAuth2 scheme — returns None instead of raising 401 when no token.", "RATIONALE": "Used in dual-auth routes (API key OR JWT) where JWT may be absent." }, "relations": [ @@ -33167,97 +29092,7 @@ "target_ref": "OAuth2PasswordBearer" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'Variable'", - "detail": { - "actual_type": "Variable", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Variable' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Variable" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region oauth2_scheme_optional [C:1] [TYPE Variable]\n# @RELATION DEPENDS_ON -> OAuth2PasswordBearer\n# @BRIEF Optional OAuth2 scheme — returns None instead of raising 401 when no token.\n# @RATIONALE Used in dual-auth routes (API key OR JWT) where JWT may be absent.\noauth2_scheme_optional = OAuth2PasswordBearer(tokenUrl=\"/api/auth/login\", auto_error=False)\n# #endregion oauth2_scheme_optional\n" @@ -33271,10 +29106,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dependency for retrieving currently authenticated user from a JWT.", "COMPLEXITY": 3, "POST": "Returns User object if token is valid.", - "PRE": "JWT token provided in Authorization header.", - "PURPOSE": "Dependency for retrieving currently authenticated user from a JWT." + "PRE": "JWT token provided in Authorization header." }, "relations": [ { @@ -33298,10 +29133,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dependency for checking if the current user has a specific permission.", "COMPLEXITY": 3, "POST": "Returns True if user has permission.", - "PRE": "User is authenticated.", - "PURPOSE": "Dependency for checking if the current user has a specific permission." + "PRE": "User is authenticated." }, "relations": [ { @@ -33325,38 +29160,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Domain model package root." + "BRIEF": "Domain model package root." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ModelsPackage [TYPE Package] [SEMANTICS model, package, init]\n# @BRIEF Domain model package root.\n# #endregion ModelsPackage\n" @@ -33370,7 +29177,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Contract testing for Clean Release models" + "BRIEF": "Contract testing for Clean Release models" }, "relations": [ { @@ -33394,7 +29201,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify that a valid release candidate can be instantiated." + "BRIEF": "Verify that a valid release candidate can be instantiated." }, "relations": [ { @@ -33418,7 +29225,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify that a release candidate with an empty ID is rejected.", + "BRIEF": "Verify that a release candidate with an empty ID is rejected.", "TEST_FIXTURE": "valid_enterprise_policy" }, "relations": [ @@ -33429,28 +29236,7 @@ "target_ref": "[TestCleanReleaseModels]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE 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_empty_id [TYPE Function]\n# @RELATION BINDS_TO -> [TestCleanReleaseModels]\n# @BRIEF Verify that a release candidate with an empty ID is rejected.\ndef test_release_candidate_empty_id(valid_candidate_data):\n valid_candidate_data[\"candidate_id\"] = \" \"\n with pytest.raises(ValueError, match=\"candidate_id must be non-empty\"):\n ReleaseCandidate(**valid_candidate_data)\n# @TEST_FIXTURE: valid_enterprise_policy\n# #endregion test_release_candidate_empty_id\n" @@ -33464,7 +29250,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify that a valid enterprise policy is accepted.", + "BRIEF": "Verify that a valid enterprise policy is accepted.", "TEST_EDGE": "enterprise_policy_missing_prohibited" }, "relations": [ @@ -33489,7 +29275,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify that an enterprise policy without prohibited categories is rejected.", + "BRIEF": "Verify that an enterprise policy without prohibited categories is rejected.", "TEST_EDGE": "enterprise_policy_external_allowed" }, "relations": [ @@ -33514,7 +29300,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify that an enterprise policy allowing external sources is rejected.", + "BRIEF": "Verify that an enterprise policy allowing external sources is rejected.", "TEST_EDGE": "manifest_count_mismatch", "TEST_INVARIANT": "manifest_consistency" }, @@ -33540,7 +29326,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify that a manifest with count mismatches is rejected." + "BRIEF": "Verify that a manifest with count mismatches is rejected." }, "relations": [ { @@ -33564,7 +29350,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify compliant run validation logic and mandatory stage checks." + "BRIEF": "Verify compliant run validation logic and mandatory stage checks." }, "relations": [ { @@ -33588,7 +29374,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify compliance report validation based on status and violation counts." + "BRIEF": "Verify compliance report validation based on status and violation counts." }, "relations": [ { @@ -33612,9 +29398,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Tests that Environment model correctly stores values.", "POST": "Values are verified.", - "PRE": "Environment class is available.", - "PURPOSE": "Tests that Environment model correctly stores values." + "PRE": "Environment class is available." }, "relations": [ { @@ -33638,10 +29424,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "SQLAlchemy model for API Key authentication — stores SHA-256 hash only, raw key shown once at creation.", "COMPLEXITY": 1, "INVARIANT": "Raw key is NEVER stored — shown once at creation and discarded.", - "LAYER": "Domain", - "PURPOSE": "SQLAlchemy model for API Key authentication — stores SHA-256 hash only, raw key shown once at creation." + "LAYER": "Domain" }, "relations": [ { @@ -33665,8 +29451,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Stores API key metadata and SHA-256 hash for service-to-service authentication." + "BRIEF": "Stores API key metadata and SHA-256 hash for service-to-service authentication.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -33683,11 +29469,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "SQLAlchemy models for assistant audit trail and confirmation tokens.", "COMPLEXITY": 3, "DATA_CONTRACT": "AssistantData -> AssistantRecord", "INVARIANT": "Assistant records preserve immutable ids and creation timestamps.", "LAYER": "Domain", - "PURPOSE": "SQLAlchemy models for assistant audit trail and confirmation tokens.", "SIDE_EFFECT": "Defines assistant audit/message/confirmation tables" }, "relations": [ @@ -33712,10 +29498,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Store audit decisions and outcomes produced by assistant command handling.", "COMPLEXITY": 3, "POST": "Audit payload remains available for compliance and debugging.", - "PRE": "user_id must identify the actor for every record.", - "PURPOSE": "Store audit decisions and outcomes produced by assistant command handling." + "PRE": "user_id must identify the actor for every record." }, "relations": [ { @@ -33739,10 +29525,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist chat history entries for assistant conversations.", "COMPLEXITY": 3, "POST": "Message row can be queried in chronological order.", - "PRE": "user_id, conversation_id, role and text must be present.", - "PURPOSE": "Persist chat history entries for assistant conversations." + "PRE": "user_id, conversation_id, role and text must be present." }, "relations": [ { @@ -33766,10 +29552,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist risky operation confirmation tokens with lifecycle state.", "COMPLEXITY": 3, "POST": "State transitions can be tracked and audited.", - "PRE": "intent/dispatch and expiry timestamp must be provided.", - "PURPOSE": "Persist risky operation confirmation tokens with lifecycle state." + "PRE": "intent/dispatch and expiry timestamp must be provided." }, "relations": [ { @@ -33793,13 +29579,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "SQLAlchemy models for multi-user authentication and authorization.", "COMPLEXITY": 5, "DATA_CONTRACT": "UserData -> UserRecord", "INVARIANT": "Usernames and emails must be unique.", "LAYER": "Domain", "POST": "Auth ORM models registered with unique constraints", "PRE": "Database engine initialized", - "PURPOSE": "SQLAlchemy models for multi-user authentication and authorization.", "SIDE_EFFECT": "Defines auth user tables" }, "relations": [ @@ -33844,8 +29630,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "POST": "Returns a string representation of a new UUID.", - "PURPOSE": "Generates a unique UUID string." + "BRIEF": "Generates a unique UUID string.", + "POST": "Returns a string representation of a new UUID." }, "relations": [ { @@ -33869,7 +29655,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Association table for many-to-many relationship between Users and Roles." + "BRIEF": "Association table for many-to-many relationship between Users and Roles." }, "relations": [ { @@ -33891,44 +29677,7 @@ "target_ref": "[Role]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Table'", - "detail": { - "actual_type": "Table", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Table' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Table" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Table' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Table" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region user_roles [TYPE Table]\n# @BRIEF Association table for many-to-many relationship between Users and Roles.\n# @RELATION DEPENDS_ON -> [Base]\n# @RELATION DEPENDS_ON -> [User]\n# @RELATION DEPENDS_ON -> [Role]\nuser_roles = Table(\n \"user_roles\",\n Base.metadata,\n Column(\"user_id\", String, ForeignKey(\"users.id\"), primary_key=True),\n Column(\"role_id\", String, ForeignKey(\"roles.id\"), primary_key=True),\n)\n# #endregion user_roles\n" @@ -33942,7 +29691,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Association table for many-to-many relationship between Roles and Permissions." + "BRIEF": "Association table for many-to-many relationship between Roles and Permissions." }, "relations": [ { @@ -33964,44 +29713,7 @@ "target_ref": "[Permission]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Table'", - "detail": { - "actual_type": "Table", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Table' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Table" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Table' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Table" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region role_permissions [TYPE Table]\n# @BRIEF Association table for many-to-many relationship between Roles and Permissions.\n# @RELATION DEPENDS_ON -> [Base]\n# @RELATION DEPENDS_ON -> [Role]\n# @RELATION DEPENDS_ON -> [Permission]\nrole_permissions = Table(\n \"role_permissions\",\n Base.metadata,\n Column(\"role_id\", String, ForeignKey(\"roles.id\"), primary_key=True),\n Column(\"permission_id\", String, ForeignKey(\"permissions.id\"), primary_key=True),\n)\n# #endregion role_permissions\n" @@ -34015,7 +29727,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents a collection of permissions." + "BRIEF": "Represents a collection of permissions." }, "relations": [ { @@ -34084,7 +29796,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents a specific capability within the system." + "BRIEF": "Represents a specific capability within the system." }, "relations": [ { @@ -34128,7 +29840,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Maps an Active Directory group to a local System Role." + "BRIEF": "Maps an Active Directory group to a local System Role." }, "relations": [ { @@ -34152,13 +29864,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Define canonical clean release domain entities and lifecycle guards.", "COMPLEXITY": 3, "DATA_CONTRACT": "Model[ReleaseCandidate, CandidateArtifact, DistributionManifest, ComplianceRun, ComplianceReport]", "INVARIANT": "Immutable snapshots are never mutated; forbidden lifecycle transitions are rejected.", "LAYER": "Domain", "POST": "Provides SQLAlchemy and dataclass definitions for governance domain.", "PRE": "Base mapping model and release enums are available.", - "PURPOSE": "Define canonical clean release domain entities and lifecycle guards.", "SIDE_EFFECT": "None (schema definition)." }, "relations": [ @@ -34183,7 +29895,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible execution mode enum for legacy TUI/orchestrator tests." + "BRIEF": "Backward-compatible execution mode enum for legacy TUI/orchestrator tests." }, "relations": [], "schema_warnings": [], @@ -34200,7 +29912,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible final status enum for legacy TUI/orchestrator tests." + "BRIEF": "Backward-compatible final status enum for legacy TUI/orchestrator tests." }, "relations": [], "schema_warnings": [], @@ -34217,7 +29929,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible stage name enum for legacy TUI/orchestrator tests." + "BRIEF": "Backward-compatible stage name enum for legacy TUI/orchestrator tests." }, "relations": [], "schema_warnings": [], @@ -34234,7 +29946,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible stage status enum for legacy TUI/orchestrator tests." + "BRIEF": "Backward-compatible stage status enum for legacy TUI/orchestrator tests." }, "relations": [], "schema_warnings": [], @@ -34251,7 +29963,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible stage result container for legacy TUI/orchestrator tests." + "BRIEF": "Backward-compatible stage result container for legacy TUI/orchestrator tests." }, "relations": [], "schema_warnings": [], @@ -34268,7 +29980,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible profile enum for legacy TUI bootstrap logic." + "BRIEF": "Backward-compatible profile enum for legacy TUI bootstrap logic." }, "relations": [], "schema_warnings": [], @@ -34285,7 +29997,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible registry status enum for legacy TUI bootstrap logic." + "BRIEF": "Backward-compatible registry status enum for legacy TUI bootstrap logic." }, "relations": [], "schema_warnings": [], @@ -34302,7 +30014,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible release candidate status enum for legacy TUI." + "BRIEF": "Backward-compatible release candidate status enum for legacy TUI." }, "relations": [], "schema_warnings": [], @@ -34319,7 +30031,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible source entry model for legacy TUI bootstrap logic." + "BRIEF": "Backward-compatible source entry model for legacy TUI bootstrap logic." }, "relations": [], "schema_warnings": [], @@ -34336,7 +30048,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible source registry model for legacy TUI bootstrap logic." + "BRIEF": "Backward-compatible source registry model for legacy TUI bootstrap logic." }, "relations": [], "schema_warnings": [], @@ -34353,7 +30065,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible policy model for legacy TUI bootstrap logic." + "BRIEF": "Backward-compatible policy model for legacy TUI bootstrap logic." }, "relations": [], "schema_warnings": [], @@ -34370,7 +30082,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible run model for legacy TUI typing/import compatibility." + "BRIEF": "Backward-compatible run model for legacy TUI typing/import compatibility." }, "relations": [], "schema_warnings": [], @@ -34387,9 +30099,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Represents the release unit being prepared and governed.", "POST": "status advances only through legal transitions.", - "PRE": "id, version, source_snapshot_ref are non-empty.", - "PURPOSE": "Represents the release unit being prepared and governed." + "PRE": "id, version, source_snapshot_ref are non-empty." }, "relations": [], "schema_warnings": [], @@ -34406,7 +30118,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents one artifact associated with a release candidate." + "BRIEF": "Represents one artifact associated with a release candidate." }, "relations": [], "schema_warnings": [], @@ -34453,8 +30165,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "INVARIANT": "Immutable after creation.", - "PURPOSE": "Immutable snapshot of the candidate payload." + "BRIEF": "Immutable snapshot of the candidate payload.", + "INVARIANT": "Immutable after creation." }, "relations": [], "schema_warnings": [], @@ -34471,7 +30183,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Immutable registry snapshot for allowed sources." + "BRIEF": "Immutable registry snapshot for allowed sources." }, "relations": [], "schema_warnings": [], @@ -34488,7 +30200,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Immutable policy snapshot used to evaluate a run." + "BRIEF": "Immutable policy snapshot used to evaluate a run." }, "relations": [], "schema_warnings": [], @@ -34505,7 +30217,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Operational record for one compliance execution." + "BRIEF": "Operational record for one compliance execution." }, "relations": [], "schema_warnings": [], @@ -34522,7 +30234,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Stage-level execution record inside a run." + "BRIEF": "Stage-level execution record inside a run." }, "relations": [], "schema_warnings": [], @@ -34539,7 +30251,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible violation severity enum for legacy clean-release tests." + "BRIEF": "Backward-compatible violation severity enum for legacy clean-release tests." }, "relations": [], "schema_warnings": [], @@ -34556,7 +30268,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Backward-compatible violation category enum for legacy clean-release tests." + "BRIEF": "Backward-compatible violation category enum for legacy clean-release tests." }, "relations": [], "schema_warnings": [], @@ -34573,7 +30285,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Violation produced by a stage." + "BRIEF": "Violation produced by a stage." }, "relations": [], "schema_warnings": [], @@ -34590,8 +30302,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "INVARIANT": "Immutable after creation.", - "PURPOSE": "Immutable result derived from a completed run." + "BRIEF": "Immutable result derived from a completed run.", + "INVARIANT": "Immutable after creation." }, "relations": [], "schema_warnings": [], @@ -34608,7 +30320,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Approval or rejection bound to a candidate and report." + "BRIEF": "Approval or rejection bound to a candidate and report." }, "relations": [], "schema_warnings": [], @@ -34625,7 +30337,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Publication or revocation record." + "BRIEF": "Publication or revocation record." }, "relations": [], "schema_warnings": [], @@ -34642,7 +30354,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents a persistent audit log entry for clean release actions." + "BRIEF": "Represents a persistent audit log entry for clean release actions." }, "relations": [], "schema_warnings": [], @@ -34659,10 +30371,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Stores persisted application configuration as a single authoritative record model.", "DATA_CONTRACT": "Input -> persistence row {id:str, payload:json, updated_at:datetime}; Output -> AppConfigRecord ORM entity.", "POST": "ORM table 'app_configurations' exposes id, payload, and updated_at fields with declared nullability/default semantics.", "PRE": "SQLAlchemy declarative Base is initialized and table metadata registration is active.", - "PURPOSE": "Stores persisted application configuration as a single authoritative record model.", "SIDE_EFFECT": "Registers ORM mapping metadata during module import." }, "relations": [], @@ -34680,10 +30392,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Stores persisted provider-level notification configuration and encrypted credentials metadata.", "DATA_CONTRACT": "Input -> persistence row {id:str, type:str, name:str, credentials:json, is_active:bool, created_at:datetime, updated_at:datetime}; Output -> NotificationConfig ORM entity.", "POST": "ORM table 'notification_configs' exposes id, type, name, credentials, is_active, created_at, updated_at fields with declared constraints/defaults.", "PRE": "SQLAlchemy declarative Base is initialized and uuid generation is available at instance creation time.", - "PURPOSE": "Stores persisted provider-level notification configuration and encrypted credentials metadata.", "SIDE_EFFECT": "Registers ORM mapping metadata during module import; may generate UUID values for new entity instances." }, "relations": [], @@ -34701,9 +30413,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Defines data models for dashboard metadata and selection.", "COMPLEXITY": 3, - "LAYER": "Model", - "PURPOSE": "Defines data models for dashboard metadata and selection." + "LAYER": "Model" }, "relations": [ { @@ -34765,8 +30477,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Represents a dashboard available for migration." + "BRIEF": "Represents a dashboard available for migration.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -34783,8 +30495,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Represents the user's selection of dashboards to migrate." + "BRIEF": "Represents the user's selection of dashboards to migrate.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -34801,10 +30513,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Thin facade re-exporting all dataset review domain models from the decomposed sub-package.", "COMPLEXITY": 2, "INVARIANT": "All public model classes and enums remain importable from `src.models.dataset_review` without changes.", "LAYER": "Domain", - "PURPOSE": "Thin facade re-exporting all dataset review domain models from the decomposed sub-package.", "RATIONALE": "Original 984-line monolith violated INV_7 (400-line module limit). Decomposed into domain-focused sub-modules while preserving backward-compatible import paths.", "REJECTED": "Keeping all models in a single file because it exceeded the fractal limit by 2.5x and accumulated structural erosion risk." }, @@ -35050,13 +30762,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Clarification session, question, option, and answer models for guided review flow.", "COMPLEXITY": 3, "DATA_CONTRACT": "ClarificationData -> ClarificationRecord", "INVARIANT": "Only one active clarification question may exist at a time per session.", "LAYER": "Domain", "POST": "Clarification ORM models registered", "PRE": "Database engine initialized", - "PURPOSE": "Clarification session, question, option, and answer models for guided review flow.", "SIDE_EFFECT": "Defines dataset review clarification tables" }, "relations": [ @@ -35087,8 +30799,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "One clarification session aggregate owning questions and tracking resolution progress." + "BRIEF": "One clarification session aggregate owning questions and tracking resolution progress.", + "COMPLEXITY": 2 }, "relations": [ { @@ -35112,8 +30824,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "One clarification question with priority ordering, options, and state machine." + "BRIEF": "One clarification question with priority ordering, options, and state machine.", + "COMPLEXITY": 2 }, "relations": [ { @@ -35137,8 +30849,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "One selectable option for a clarification question with recommendation flag." + "BRIEF": "One selectable option for a clarification question with recommendation flag.", + "COMPLEXITY": 1 }, "relations": [ { @@ -35162,8 +30874,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "One persisted clarification answer with impact summary and feedback tracking." + "BRIEF": "One persisted clarification answer with impact summary and feedback tracking.", + "COMPLEXITY": 2 }, "relations": [ { @@ -35187,10 +30899,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "All enumeration types for the dataset review domain, grouped for stable cross-module reuse.", "COMPLEXITY": 2, "INVARIANT": "Enum values are string-based for JSON serialization compatibility.", - "LAYER": "Domain", - "PURPOSE": "All enumeration types for the dataset review domain, grouped for stable cross-module reuse." + "LAYER": "Domain" }, "relations": [], "schema_warnings": [], @@ -35207,8 +30919,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Lifecycle status of a dataset review session." + "BRIEF": "Lifecycle status of a dataset review session.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35225,8 +30937,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Ordered phase progression for dataset review orchestration." + "BRIEF": "Ordered phase progression for dataset review orchestration.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35243,8 +30955,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Granular readiness indicator driving the recommended-action UX flow." + "BRIEF": "Granular readiness indicator driving the recommended-action UX flow.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35261,8 +30973,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Next-action guidance derived from the current readiness state." + "BRIEF": "Next-action guidance derived from the current readiness state.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35279,8 +30991,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "RBAC role for session collaborators." + "BRIEF": "RBAC role for session collaborators.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35297,8 +31009,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Provenance of the dataset business summary text." + "BRIEF": "Provenance of the dataset business summary text.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35315,8 +31027,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Confidence level for dataset profile completeness." + "BRIEF": "Confidence level for dataset profile completeness.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35333,8 +31045,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Domain area classification for validation findings." + "BRIEF": "Domain area classification for validation findings.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35351,8 +31063,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Severity classification for validation findings." + "BRIEF": "Severity classification for validation findings.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35369,8 +31081,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Resolution status for validation findings and clarification items." + "BRIEF": "Resolution status for validation findings and clarification items.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35387,8 +31099,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Classification of semantic enrichment source origins." + "BRIEF": "Classification of semantic enrichment source origins.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35405,8 +31117,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Trust classification for semantic source reliability." + "BRIEF": "Trust classification for semantic source reliability.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35423,8 +31135,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Lifecycle status for semantic source application." + "BRIEF": "Lifecycle status for semantic source application.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35441,8 +31153,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Kind classification for semantic field entries." + "BRIEF": "Kind classification for semantic field entries.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35459,8 +31171,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Provenance tracking for semantic field value origin." + "BRIEF": "Provenance tracking for semantic field value origin.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35477,8 +31189,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Match type classification for semantic candidates." + "BRIEF": "Match type classification for semantic candidates.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35495,8 +31207,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Lifecycle status for semantic candidate proposals." + "BRIEF": "Lifecycle status for semantic candidate proposals.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35513,8 +31225,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Origin classification for imported filters." + "BRIEF": "Origin classification for imported filters.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35531,8 +31243,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Confidence classification for imported filter values." + "BRIEF": "Confidence classification for imported filter values.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35549,8 +31261,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Recovery quality status for imported filters." + "BRIEF": "Recovery quality status for imported filters.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35567,8 +31279,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Kind classification for template variables." + "BRIEF": "Kind classification for template variables.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35585,8 +31297,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Lifecycle status for template variable mapping." + "BRIEF": "Lifecycle status for template variable mapping.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35603,8 +31315,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Method classification for execution mapping creation." + "BRIEF": "Method classification for execution mapping creation.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35621,8 +31333,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Warning severity for execution mapping quality indicators." + "BRIEF": "Warning severity for execution mapping quality indicators.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35639,8 +31351,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Approval lifecycle for execution mapping gate checks." + "BRIEF": "Approval lifecycle for execution mapping gate checks.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35657,8 +31369,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Lifecycle status for clarification sessions." + "BRIEF": "Lifecycle status for clarification sessions.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35675,8 +31387,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "State machine for individual clarification questions." + "BRIEF": "State machine for individual clarification questions.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35693,8 +31405,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Classification of clarification answer types." + "BRIEF": "Classification of clarification answer types.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35711,8 +31423,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Lifecycle status for compiled SQL previews." + "BRIEF": "Lifecycle status for compiled SQL previews.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35729,8 +31441,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Outcome status for dataset launch handoff." + "BRIEF": "Outcome status for dataset launch handoff.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35747,8 +31459,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Type classification for export artifacts." + "BRIEF": "Type classification for export artifacts.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35765,8 +31477,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Format classification for export artifact output." + "BRIEF": "Format classification for export artifact output.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -35783,9 +31495,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Compiled preview, run context, session event, and export artifact models for execution and audit.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Compiled preview, run context, session event, and export artifact models for execution and audit." + "LAYER": "Domain" }, "relations": [ { @@ -35815,8 +31527,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "One compiled SQL preview snapshot with fingerprint for staleness detection." + "BRIEF": "One compiled SQL preview snapshot with fingerprint for staleness detection.", + "COMPLEXITY": 2 }, "relations": [ { @@ -35840,8 +31552,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Immutable launch audit snapshot capturing effective filters, template params, and approval state at launch time." + "BRIEF": "Immutable launch audit snapshot capturing effective filters, template params, and approval state at launch time.", + "COMPLEXITY": 2 }, "relations": [ { @@ -35865,8 +31577,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "One persisted audit event for dataset review session mutations." + "BRIEF": "One persisted audit event for dataset review session mutations.", + "COMPLEXITY": 2 }, "relations": [ { @@ -35890,8 +31602,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "One persisted export artifact reference for documentation and validation outputs." + "BRIEF": "One persisted export artifact reference for documentation and validation outputs.", + "COMPLEXITY": 2 }, "relations": [ { @@ -35915,9 +31627,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Imported filter and template variable models for Superset context recovery and execution mapping.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Imported filter and template variable models for Superset context recovery and execution mapping." + "LAYER": "Domain" }, "relations": [ { @@ -35947,8 +31659,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Recovered Superset filter with confidence and recovery status tracking." + "BRIEF": "Recovered Superset filter with confidence and recovery status tracking.", + "COMPLEXITY": 2 }, "relations": [ { @@ -35972,8 +31684,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Discovered template variable from dataset SQL with mapping status tracking." + "BRIEF": "Discovered template variable from dataset SQL with mapping status tracking.", + "COMPLEXITY": 2 }, "relations": [ { @@ -35997,9 +31709,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validation finding model for tracking blocking, warning, and informational issues during review.", "COMPLEXITY": 2, - "LAYER": "Domain", - "PURPOSE": "Validation finding model for tracking blocking, warning, and informational issues during review." + "LAYER": "Domain" }, "relations": [ { @@ -36029,8 +31741,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Structured finding record for dataset review validation issues with resolution tracking." + "BRIEF": "Structured finding record for dataset review validation issues with resolution tracking.", + "COMPLEXITY": 2 }, "relations": [ { @@ -36054,9 +31766,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Execution mapping model linking imported filters to template variables with approval gates.", "COMPLEXITY": 2, - "LAYER": "Domain", - "PURPOSE": "Execution mapping model linking imported filters to template variables with approval gates." + "LAYER": "Domain" }, "relations": [ { @@ -36086,9 +31798,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "One filter-to-variable mapping with approval gate, effective value, and transformation metadata.", "COMPLEXITY": 2, - "INVARIANT": "Explicit approval is required before launch when requires_explicit_approval is true.", - "PURPOSE": "One filter-to-variable mapping with approval gate, effective value, and transformation metadata." + "INVARIANT": "Explicit approval is required before launch when requires_explicit_approval is true." }, "relations": [ { @@ -36112,9 +31824,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Dataset profile model capturing business summary, confidence, and completeness metadata.", "COMPLEXITY": 2, - "LAYER": "Domain", - "PURPOSE": "Dataset profile model capturing business summary, confidence, and completeness metadata." + "LAYER": "Domain" }, "relations": [ { @@ -36144,8 +31856,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "One-to-one profile snapshot for a dataset review session, tracking business summary provenance and completeness." + "BRIEF": "One-to-one profile snapshot for a dataset review session, tracking business summary provenance and completeness.", + "COMPLEXITY": 2 }, "relations": [ { @@ -36169,13 +31881,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Semantic source, field entry, and candidate models for dictionary-driven semantic enrichment.", "COMPLEXITY": 3, "DATA_CONTRACT": "SemanticData -> SemanticFieldEntry", "INVARIANT": "Manual overrides are never silently replaced by imported, inferred, or AI-generated values.", "LAYER": "Domain", "POST": "Semantic ORM models registered with override protection", "PRE": "Database engine initialized", - "PURPOSE": "Semantic source, field entry, and candidate models for dictionary-driven semantic enrichment.", "SIDE_EFFECT": "Defines dataset review semantic tables" }, "relations": [ @@ -36206,8 +31918,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Registered semantic enrichment source with trust level and application status." + "BRIEF": "Registered semantic enrichment source with trust level and application status.", + "COMPLEXITY": 2 }, "relations": [ { @@ -36231,9 +31943,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Per-field semantic metadata entry with provenance tracking, lock state, and candidate set.", "COMPLEXITY": 3, - "INVARIANT": "Locked fields preserve their active value regardless of later candidate proposals.", - "PURPOSE": "Per-field semantic metadata entry with provenance tracking, lock state, and candidate set." + "INVARIANT": "Locked fields preserve their active value regardless of later candidate proposals." }, "relations": [ { @@ -36263,8 +31975,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "One proposed semantic value for a field entry, ranked by match type and confidence." + "BRIEF": "One proposed semantic value for a field entry, ranked by match type and confidence.", + "COMPLEXITY": 2 }, "relations": [ { @@ -36288,13 +32000,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Session aggregate root and collaborator models for dataset review orchestration.", "COMPLEXITY": 3, "DATA_CONTRACT": "SessionData -> SessionRecord", "INVARIANT": "Session and profile entities are strictly scoped to an authenticated user.", "LAYER": "Domain", "POST": "Session ORM models registered with optimistic locking", "PRE": "Database engine initialized", - "PURPOSE": "Session aggregate root and collaborator models for dataset review orchestration.", "SIDE_EFFECT": "Defines dataset review session tables" }, "relations": [ @@ -36325,8 +32037,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "RBAC collaborator record linking a user to a dataset review session with a specific role." + "BRIEF": "RBAC collaborator record linking a user to a dataset review session with a specific role.", + "COMPLEXITY": 2 }, "relations": [ { @@ -36350,9 +32062,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Aggregate root for the dataset review lifecycle, owning all child entities and driving readiness transitions.", "COMPLEXITY": 3, - "INVARIANT": "Optimistic-lock version column prevents lost-update races on concurrent mutations.", - "PURPOSE": "Aggregate root for the dataset review lifecycle, owning all child entities and driving readiness transitions." + "INVARIANT": "Optimistic-lock version column prevents lost-update races on concurrent mutations." }, "relations": [ { @@ -36448,9 +32160,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Pydantic models for Superset native filter state extraction and restoration.", "COMPLEXITY": 2, - "LAYER": "Models", - "PURPOSE": "Pydantic models for Superset native filter state extraction and restoration." + "LAYER": "Models" }, "relations": [ { @@ -36493,90 +32205,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Represents the state of a single native filter.", "COMPLEXITY": 2, - "DATA_CONTRACT": "Input[extraFormData: Dict, filterState: Dict, ownState: Optional[Dict]] -> Model[FilterState]", - "PURPOSE": "Represents the state of a single native filter." + "DATA_CONTRACT": "Input[extraFormData: Dict, filterState: Dict, ownState: Optional[Dict]] -> Model[FilterState]" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region FilterState [C:2] [TYPE Model]\n# @BRIEF Represents the state of a single native filter.\n# @DATA_CONTRACT: Input[extraFormData: Dict, filterState: Dict, ownState: Optional[Dict]] -> Model[FilterState]\nclass FilterState(BaseModel):\n \"\"\"Single native filter state with extraFormData, filterState, and ownState.\"\"\"\n\n model_config = ConfigDict(extra=\"allow\")\n\n extraFormData: dict[str, Any] = Field(default_factory=dict, description=\"Extra form data for the filter\")\n filterState: dict[str, Any] = Field(default_factory=dict, description=\"Current filter state\")\n ownState: dict[str, Any] = Field(default_factory=dict, description=\"Own state of the filter\")\n# #endregion FilterState\n" @@ -36590,90 +32224,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Represents the dataMask containing all native filter states.", "COMPLEXITY": 2, - "DATA_CONTRACT": "Input[Dict[filter_id, FilterState]] -> Model[NativeFilterDataMask]", - "PURPOSE": "Represents the dataMask containing all native filter states." + "DATA_CONTRACT": "Input[Dict[filter_id, FilterState]] -> Model[NativeFilterDataMask]" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region NativeFilterDataMask [C:2] [TYPE Model]\n# @BRIEF Represents the dataMask containing all native filter states.\n# @DATA_CONTRACT: Input[Dict[filter_id, FilterState]] -> Model[NativeFilterDataMask]\nclass NativeFilterDataMask(BaseModel):\n \"\"\"Container for all native filter states in a dashboard.\"\"\"\n\n model_config = ConfigDict(extra=\"allow\")\n\n filters: dict[str, Any] = Field(default_factory=dict, description=\"Map of filter ID to filter state data\")\n\n def get_filter_ids(self) -> list[str]:\n \"\"\"Return list of all filter IDs.\"\"\"\n return list(self.filters.keys())\n\n def get_extra_form_data(self, filter_id: str) -> dict[str, Any]:\n \"\"\"Get extraFormData for a specific filter.\"\"\"\n filter_state = self.filters.get(filter_id)\n if filter_state:\n return filter_state.extraFormData\n return {}\n# #endregion NativeFilterDataMask\n" @@ -36687,90 +32243,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Result of parsing native filters from permalink or native_filters_key.", "COMPLEXITY": 2, - "DATA_CONTRACT": "Input[dataMask: Dict, metadata: Dict] -> Model[ParsedNativeFilters]", - "PURPOSE": "Result of parsing native filters from permalink or native_filters_key." + "DATA_CONTRACT": "Input[dataMask: Dict, metadata: Dict] -> Model[ParsedNativeFilters]" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ParsedNativeFilters [C:2] [TYPE Model]\n# @BRIEF Result of parsing native filters from permalink or native_filters_key.\n# @DATA_CONTRACT: Input[dataMask: Dict, metadata: Dict] -> Model[ParsedNativeFilters]\nclass ParsedNativeFilters(BaseModel):\n \"\"\"Result of extracting native filters from a Superset URL.\"\"\"\n\n model_config = ConfigDict(extra=\"allow\")\n\n dataMask: dict[str, Any] = Field(default_factory=dict, description=\"Extracted dataMask from filters\")\n filter_type: str | None = Field(default=None, description=\"Type of filter: permalink, native_filters_key, or native_filters\")\n dashboard_id: str | None = Field(default=None, description=\"Dashboard ID if available\")\n permalink_key: str | None = Field(default=None, description=\"Permalink key if used\")\n filter_state_key: str | None = Field(default=None, description=\"Filter state key if used\")\n active_tabs: list[str] = Field(default_factory=list, description=\"Active tabs in dashboard\")\n anchor: str | None = Field(default=None, description=\"Anchor position in dashboard\")\n chart_states: dict[str, Any] = Field(default_factory=dict, description=\"Chart states in dashboard\")\n\n def has_filters(self) -> bool:\n \"\"\"Check if any filters were extracted.\"\"\"\n return bool(self.dataMask)\n\n def get_filter_count(self) -> int:\n \"\"\"Get the number of filters extracted.\"\"\"\n return len(self.dataMask)\n# #endregion ParsedNativeFilters\n" @@ -36784,90 +32262,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Result of parsing a complete dashboard URL for filter information.", "COMPLEXITY": 2, - "DATA_CONTRACT": "Input[url: str, dashboard_id: Optional, filter_type: Optional, filters: Dict] -> Model[DashboardURLFilterExtraction]", - "PURPOSE": "Result of parsing a complete dashboard URL for filter information." + "DATA_CONTRACT": "Input[url: str, dashboard_id: Optional, filter_type: Optional, filters: Dict] -> Model[DashboardURLFilterExtraction]" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region DashboardURLFilterExtraction [C:2] [TYPE Model]\n# @BRIEF Result of parsing a complete dashboard URL for filter information.\n# @DATA_CONTRACT: Input[url: str, dashboard_id: Optional, filter_type: Optional, filters: Dict] -> Model[DashboardURLFilterExtraction]\nclass DashboardURLFilterExtraction(BaseModel):\n \"\"\"Result of parsing a Superset dashboard URL to extract filter state.\"\"\"\n\n model_config = ConfigDict(extra=\"allow\")\n\n url: str = Field(..., description=\"Original dashboard URL\")\n dashboard_id: str | None = Field(default=None, description=\"Extracted dashboard ID\")\n filter_type: str | None = Field(default=None, description=\"Type of filter found\")\n filters: ParsedNativeFilters = Field(default_factory=ParsedNativeFilters, description=\"Extracted filter data\")\n success: bool = Field(default=True, description=\"Whether extraction was successful\")\n error: str | None = Field(default=None, description=\"Error message if extraction failed\")\n# #endregion DashboardURLFilterExtraction\n" @@ -36881,90 +32281,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Configuration for merging extraFormData from different sources.", "COMPLEXITY": 2, - "DATA_CONTRACT": "Input[append_keys: List[str], override_keys: List[str]] -> Model[ExtraFormDataMerge]", - "PURPOSE": "Configuration for merging extraFormData from different sources." + "DATA_CONTRACT": "Input[append_keys: List[str], override_keys: List[str]] -> Model[ExtraFormDataMerge]" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Model'", - "detail": { - "actual_type": "Model", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Model' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Model" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ExtraFormDataMerge [C:2] [TYPE Model]\n# @BRIEF Configuration for merging extraFormData from different sources.\n# @DATA_CONTRACT: Input[append_keys: List[str], override_keys: List[str]] -> Model[ExtraFormDataMerge]\nclass ExtraFormDataMerge(BaseModel):\n \"\"\"Configuration for merging extraFormData between original and new filter values.\"\"\"\n\n # Keys that should be appended (arrays, filters)\n append_keys: list[str] = Field(\n default_factory=lambda: [\"filters\", \"extras\", \"columns\", \"metrics\"],\n description=\"Keys that should be merged by appending\"\n )\n # Keys that should be overridden (single values)\n override_keys: list[str] = Field(\n default_factory=lambda: [\"time_range\", \"time_grain_sqla\", \"time_column\", \"granularity\"],\n description=\"Keys that should be overridden by new values\"\n )\n\n def merge(self, original: dict[str, Any], new: dict[str, Any]) -> dict[str, Any]:\n \"\"\"\n Merge two extraFormData dictionaries.\n \n @param original: Original extraFormData from dashboard metadata\n @param new: New extraFormData from URL/permalink\n @return: Merged extraFormData dictionary\n \"\"\"\n result = {}\n\n # Start with original\n for key, value in original.items():\n result[key] = value\n\n # Apply overrides and appends from new\n for key, new_value in new.items():\n if key in self.override_keys:\n # Override the value\n result[key] = new_value\n elif key in self.append_keys:\n # Append to the existing value\n existing = result.get(key)\n if isinstance(existing, list) and isinstance(new_value, list):\n result[key] = existing + new_value\n else:\n result[key] = new_value\n else:\n result[key] = new_value\n\n return result\n# #endregion ExtraFormDataMerge\n" @@ -36993,8 +32315,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Configuration for a Git server connection." + "BRIEF": "Configuration for a Git server connection.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -37011,8 +32333,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Tracking for a local Git repository linked to a dashboard." + "BRIEF": "Tracking for a local Git repository linked to a dashboard.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -37029,8 +32351,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Target Superset environments for dashboard deployment." + "BRIEF": "Target Superset environments for dashboard deployment.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -37047,9 +32369,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "SQLAlchemy models for LLM provider configuration and validation results.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "SQLAlchemy models for LLM provider configuration and validation results." + "LAYER": "Domain" }, "relations": [ { @@ -37093,7 +32415,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Defines a scheduled rule for validating a group of dashboards within an execution window." + "BRIEF": "Defines a scheduled rule for validating a group of dashboards within an execution window." }, "relations": [ { @@ -37117,7 +32439,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "SQLAlchemy model for LLM provider configuration." + "BRIEF": "SQLAlchemy model for LLM provider configuration." }, "relations": [], "schema_warnings": [], @@ -37134,7 +32456,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "SQLAlchemy model for dashboard validation history." + "BRIEF": "SQLAlchemy model for dashboard validation history." }, "relations": [], "schema_warnings": [], @@ -37151,10 +32473,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "SQLAlchemy models for the Maintenance Banner feature: event, banner, dashboard state, and settings.", "COMPLEXITY": 2, "INVARIANT": "MaintenanceSettings is a singleton row (id='default') enforced by CheckConstraint", - "LAYER": "Domain", - "PURPOSE": "SQLAlchemy models for the Maintenance Banner feature: event, banner, dashboard state, and settings." + "LAYER": "Domain" }, "relations": [ { @@ -37252,8 +32574,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "A record of a maintenance event with table list, time window, status, and linked dashboard states." + "BRIEF": "A record of a maintenance event with table list, time window, status, and linked dashboard states.", + "COMPLEXITY": 1 }, "relations": [ { @@ -37277,9 +32599,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "The canonical \"one chart per dashboard\" entity. Unique partial index enforces single active banner per dashboard.", "COMPLEXITY": 1, - "INVARIANT": "Unique partial index (environment_id, dashboard_id) WHERE status='active'", - "PURPOSE": "The canonical \"one chart per dashboard\" entity. Unique partial index enforces single active banner per dashboard." + "INVARIANT": "Unique partial index (environment_id, dashboard_id) WHERE status='active'" }, "relations": [], "schema_warnings": [], @@ -37296,8 +32618,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Links a maintenance event to a dashboard via a banner. Tracks per-dashboard-per-event lifecycle." + "BRIEF": "Links a maintenance event to a dashboard via a banner. Tracks per-dashboard-per-event lifecycle.", + "COMPLEXITY": 1 }, "relations": [ { @@ -37327,9 +32649,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Single-row maintenance mode configuration. Enforces singleton via CheckConstraint(id='default').", "COMPLEXITY": 1, - "INVARIANT": "id must always be 'default' — enforced by CheckConstraint", - "PURPOSE": "Single-row maintenance mode configuration. Enforces singleton via CheckConstraint(id='default')." + "INVARIANT": "id must always be 'default' — enforced by CheckConstraint" }, "relations": [], "schema_warnings": [], @@ -37346,10 +32668,10 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Defines the database schema for environment metadata and database mappings using SQLAlchemy.", "COMPLEXITY": 5, "INVARIANT": "All primary keys are UUID strings.", - "LAYER": "Domain", - "PURPOSE": "Defines the database schema for environment metadata and database mappings using SQLAlchemy." + "LAYER": "Domain" }, "relations": [ { @@ -37373,8 +32695,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Enumeration of possible Superset resource types for ID mapping." + "BRIEF": "Enumeration of possible Superset resource types for ID mapping.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -37391,8 +32713,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Enumeration of possible migration job statuses." + "BRIEF": "Enumeration of possible migration job statuses.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -37409,8 +32731,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Represents a single migration execution job." + "BRIEF": "Represents a single migration execution job.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -37427,8 +32749,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Maps a universal UUID for a resource to its actual ID on a specific environment.", "COMPLEXITY": 3, - "PURPOSE": "Maps a universal UUID for a resource to its actual ID on a specific environment.", "TEST_DATA": "resource_mapping_record -> {'environment_id': 'prod-env-1', 'resource_type': 'chart', 'uuid': '123e4567-e89b-12d3-a456-426614174000', 'remote_integer_id': '42'}" }, "relations": [ @@ -37460,13 +32782,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Defines persistent per-user profile settings for dashboard filter, Git identity/token, and UX preferences.", "COMPLEXITY": 5, "DATA_CONTRACT": "ProfileData -> PreferenceRecord", "INVARIANT": "Sensitive Git token is stored encrypted and never returned in plaintext.", "LAYER": "Domain", "POST": "Profile ORM models registered", "PRE": "Database engine initialized", - "PURPOSE": "Defines persistent per-user profile settings for dashboard filter, Git identity/token, and UX preferences.", "SIDE_EFFECT": "Defines user profile/preference tables" }, "relations": [ @@ -37517,8 +32839,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Stores Superset username binding and default \"my dashboards\" toggle for one authenticated user." + "BRIEF": "Stores Superset username binding and default \"my dashboards\" toggle for one authenticated user.", + "COMPLEXITY": 3 }, "relations": [ { @@ -37542,13 +32864,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Canonical report schemas for unified task reporting across heterogeneous task types.", "COMPLEXITY": 3, "DATA_CONTRACT": "Model[TaskReport, ReportCollection, ReportDetailView]", "INVARIANT": "Canonical report fields are always present for every report item.", "LAYER": "Domain", "POST": "Provides validated schemas for cross-plugin reporting and UI consumption.", "PRE": "Pydantic library and task manager models are available.", - "PURPOSE": "Canonical report schemas for unified task reporting across heterogeneous task types.", "SIDE_EFFECT": "None (schema definition)." }, "relations": [ @@ -37573,9 +32895,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Supported normalized task report types.", "COMPLEXITY": 3, - "INVARIANT": "Must contain valid generic task type mappings.", - "PURPOSE": "Supported normalized task report types." + "INVARIANT": "Must contain valid generic task type mappings." }, "relations": [ { @@ -37599,9 +32921,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Supported normalized report status values.", "COMPLEXITY": 3, - "INVARIANT": "TaskStatus enum mapping logic holds.", - "PURPOSE": "Supported normalized report status values." + "INVARIANT": "TaskStatus enum mapping logic holds." }, "relations": [ { @@ -37625,35 +32947,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Error and recovery context for failed/partial reports.", "COMPLEXITY": 3, "INVARIANT": "The properties accurately describe error state.", - "PURPOSE": "Error and recovery context for failed/partial reports.", "TEST_CONTRACT": "ErrorContextModel ->" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT 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 ErrorContext [C:3] [TYPE Class] [SEMANTICS error, context, payload]\n# @INVARIANT: The properties accurately describe error state.\n# @BRIEF Error and recovery context for failed/partial reports.\n#\n# @TEST_CONTRACT: ErrorContextModel ->\n# {\n# required_fields: {\n# message: str\n# },\n# optional_fields: {\n# code: str,\n# next_actions: list[str]\n# }\n# }\n# @TEST_FIXTURE: basic_error -> {\"message\": \"Connection timeout\", \"code\": \"ERR_504\", \"next_actions\": [\"retry\"]}\n# @TEST_EDGE: missing_message -> {\"code\": \"ERR_504\"}\n# @RELATION DEPENDS_ON -> ReportModels\nclass ErrorContext(BaseModel):\n code: str | None = None\n message: str\n next_actions: list[str] = Field(default_factory=list)\n\n\n# #endregion ErrorContext\n" @@ -37667,35 +32967,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Canonical normalized report envelope for one task execution.", "COMPLEXITY": 3, "INVARIANT": "Must represent canonical task record attributes.", - "PURPOSE": "Canonical normalized report envelope for one task execution.", "TEST_CONTRACT": "TaskReportModel ->" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT 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 TaskReport [C:3] [TYPE Class] [SEMANTICS report, model, summary]\n# @INVARIANT: Must represent canonical task record attributes.\n# @BRIEF Canonical normalized report envelope for one task execution.\n#\n# @TEST_CONTRACT: TaskReportModel ->\n# {\n# required_fields: {\n# report_id: str,\n# task_id: str,\n# task_type: TaskType,\n# status: ReportStatus,\n# updated_at: datetime,\n# summary: str\n# },\n# invariants: [\n# \"report_id is a non-empty string\",\n# \"task_id is a non-empty string\",\n# \"summary is a non-empty string\"\n# ]\n# }\n# @TEST_FIXTURE: valid_task_report ->\n# {\n# report_id: \"rep-123\",\n# task_id: \"task-456\",\n# task_type: \"migration\",\n# status: \"success\",\n# updated_at: \"2026-02-26T12:00:00Z\",\n# summary: \"Migration completed successfully\"\n# }\n# @TEST_EDGE: empty_report_id -> {\"report_id\": \" \", \"task_id\": \"task-456\", \"task_type\": \"migration\", \"status\": \"success\", \"updated_at\": \"2026-02-26T12:00:00Z\", \"summary\": \"Done\"}\n# @TEST_EDGE: empty_summary -> {\"report_id\": \"rep-123\", \"task_id\": \"task-456\", \"task_type\": \"migration\", \"status\": \"success\", \"updated_at\": \"2026-02-26T12:00:00Z\", \"summary\": \"\"}\n# @TEST_EDGE: invalid_task_type -> {\"report_id\": \"rep-123\", \"task_id\": \"task-456\", \"task_type\": \"invalid_type\", \"status\": \"success\", \"updated_at\": \"2026-02-26T12:00:00Z\", \"summary\": \"Done\"}\n# @TEST_INVARIANT: non_empty_validators -> verifies: [empty_report_id, empty_summary]\n# @RELATION DEPENDS_ON -> ReportModels\nclass TaskReport(BaseModel):\n report_id: str\n task_id: str\n task_type: TaskType\n status: ReportStatus\n started_at: datetime | None = None\n updated_at: datetime\n summary: str\n details: dict[str, Any] | None = None\n validation_record: dict[str, Any] | None = None # Extended for US2\n error_context: ErrorContext | None = None\n source_ref: dict[str, Any] | None = None\n\n @field_validator(\"report_id\", \"task_id\", \"summary\")\n @classmethod\n def _non_empty_str(cls, value: str) -> str:\n if not isinstance(value, str) or not value.strip():\n raise ValueError(\"Value must be a non-empty string\")\n return value.strip()\n\n\n# #endregion TaskReport\n" @@ -37709,35 +32987,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Query object for server-side report filtering, sorting, and pagination.", "COMPLEXITY": 3, "INVARIANT": "Time and pagination queries are mutually consistent.", - "PURPOSE": "Query object for server-side report filtering, sorting, and pagination.", "TEST_CONTRACT": "ReportQueryModel ->" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT 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 ReportQuery [C:3] [TYPE Class] [SEMANTICS query, filter, search]\n# @INVARIANT: Time and pagination queries are mutually consistent.\n# @BRIEF Query object for server-side report filtering, sorting, and pagination.\n#\n# @TEST_CONTRACT: ReportQueryModel ->\n# {\n# optional_fields: {\n# page: int, page_size: int, task_types: list[TaskType], statuses: list[ReportStatus],\n# time_from: datetime, time_to: datetime, search: str, sort_by: str, sort_order: str\n# },\n# invariants: [\n# \"page >= 1\", \"1 <= page_size <= 100\",\n# \"sort_by in {'updated_at', 'status', 'task_type'}\",\n# \"sort_order in {'asc', 'desc'}\",\n# \"time_from <= time_to if both exist\"\n# ]\n# }\n# @TEST_FIXTURE: valid_query -> {\"page\": 1, \"page_size\":20, \"sort_by\": \"updated_at\", \"sort_order\": \"desc\"}\n# @TEST_EDGE: invalid_page_size_large -> {\"page_size\": 150}\n# @TEST_EDGE: invalid_sort_by -> {\"sort_by\": \"unknown_field\"}\n# @TEST_EDGE: invalid_time_range -> {\"time_from\": \"2026-02-26T12:00:00Z\", \"time_to\": \"2026-02-25T12:00:00Z\"}\n# @TEST_INVARIANT: attribute_constraints_enforced -> verifies: [invalid_page_size_large, invalid_sort_by, invalid_time_range]\n# @RELATION DEPENDS_ON -> ReportModels\nclass ReportQuery(BaseModel):\n page: int = Field(default=1, ge=1)\n page_size: int = Field(default=20, ge=1, le=100)\n task_types: list[TaskType] = Field(default_factory=list)\n statuses: list[ReportStatus] = Field(default_factory=list)\n time_from: datetime | None = None\n time_to: datetime | None = None\n search: str | None = Field(default=None, max_length=200)\n sort_by: str = Field(default=\"updated_at\")\n sort_order: str = Field(default=\"desc\")\n\n @field_validator(\"sort_by\")\n @classmethod\n def _validate_sort_by(cls, value: str) -> str:\n allowed = {\"updated_at\", \"status\", \"task_type\"}\n if value not in allowed:\n raise ValueError(f\"sort_by must be one of: {', '.join(sorted(allowed))}\")\n return value\n\n @field_validator(\"sort_order\")\n @classmethod\n def _validate_sort_order(cls, value: str) -> str:\n if value not in {\"asc\", \"desc\"}:\n raise ValueError(\"sort_order must be 'asc' or 'desc'\")\n return value\n\n @model_validator(mode=\"after\")\n def _validate_time_range(self):\n if self.time_from and self.time_to and self.time_from > self.time_to:\n raise ValueError(\"time_from must be less than or equal to time_to\")\n return self\n\n\n# #endregion ReportQuery\n" @@ -37751,35 +33007,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Paginated collection of normalized task reports.", "COMPLEXITY": 3, "INVARIANT": "Represents paginated data correctly.", - "PURPOSE": "Paginated collection of normalized task reports.", "TEST_CONTRACT": "ReportCollectionModel ->" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT 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 ReportCollection [C:3] [TYPE Class] [SEMANTICS collection, pagination]\n# @INVARIANT: Represents paginated data correctly.\n# @BRIEF Paginated collection of normalized task reports.\n#\n# @TEST_CONTRACT: ReportCollectionModel ->\n# {\n# required_fields: {\n# items: list[TaskReport], total: int, page: int, page_size: int, has_next: bool, applied_filters: ReportQuery\n# },\n# invariants: [\"total >= 0\", \"page >= 1\", \"page_size >= 1\"]\n# }\n# @TEST_FIXTURE: empty_collection -> {\"items\": [], \"total\": 0, \"page\": 1, \"page_size\": 20, \"has_next\": False, \"applied_filters\": {}}\n# @TEST_EDGE: negative_total -> {\"items\": [], \"total\": -5, \"page\": 1, \"page_size\": 20, \"has_next\": False, \"applied_filters\": {}}\n# @RELATION DEPENDS_ON -> ReportModels\nclass ReportCollection(BaseModel):\n items: list[TaskReport]\n total: int = Field(ge=0)\n page: int = Field(ge=1)\n page_size: int = Field(ge=1)\n has_next: bool\n applied_filters: ReportQuery\n\n\n# #endregion ReportCollection\n" @@ -37793,35 +33027,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Detailed report representation including diagnostics and recovery actions.", "COMPLEXITY": 3, "INVARIANT": "Incorporates a report and logs correctly.", - "PURPOSE": "Detailed report representation including diagnostics and recovery actions.", "TEST_CONTRACT": "ReportDetailViewModel ->" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT 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 ReportDetailView [C:3] [TYPE Class] [SEMANTICS view, detail, logs]\n# @INVARIANT: Incorporates a report and logs correctly.\n# @BRIEF Detailed report representation including diagnostics and recovery actions.\n#\n# @TEST_CONTRACT: ReportDetailViewModel ->\n# {\n# required_fields: {report: TaskReport},\n# optional_fields: {timeline: list[dict], diagnostics: dict, next_actions: list[str]}\n# }\n# @TEST_FIXTURE: valid_detail -> {\"report\": {\"report_id\": \"rep-1\", \"task_id\": \"task-1\", \"task_type\": \"backup\", \"status\": \"success\", \"updated_at\": \"2026-02-26T12:00:00Z\", \"summary\": \"Done\"}}\n# @TEST_EDGE: missing_report -> {}\n# @RELATION DEPENDS_ON -> ReportModels\nclass ReportDetailView(BaseModel):\n report: TaskReport\n timeline: list[dict[str, Any]] = Field(default_factory=list)\n diagnostics: dict[str, Any] | None = None\n next_actions: list[str] = Field(default_factory=list)\n\n\n# #endregion ReportDetailView\n" @@ -37852,8 +33064,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Enumeration of supported file categories in the storage system." + "BRIEF": "Enumeration of supported file categories in the storage system.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -37870,8 +33082,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Configuration model for the storage system, defining paths and naming patterns." + "BRIEF": "Configuration model for the storage system, defining paths and naming patterns.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -37888,8 +33100,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Data model representing metadata for a file stored in the system." + "BRIEF": "Data model representing metadata for a file stored in the system.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -37906,10 +33118,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Defines the database schema for task execution records.", "COMPLEXITY": 1, "INVARIANT": "All primary keys are UUID strings.", - "LAYER": "Domain", - "PURPOSE": "Defines the database schema for task execution records." + "LAYER": "Domain" }, "relations": [ { @@ -37933,8 +33145,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Represents a persistent record of a task execution." + "BRIEF": "Represents a persistent record of a task execution.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -37951,9 +33163,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Represents a single persistent log entry for a task.", "COMPLEXITY": 3, "INVARIANT": "Each log entry belongs to exactly one task.", - "PURPOSE": "Represents a single persistent log entry for a task.", "TEST_CONTRACT": "TaskLogCreate ->" }, "relations": [ @@ -37964,29 +33176,7 @@ "target_ref": "TaskRecord" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT 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 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" @@ -38000,9 +33190,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "SQLAlchemy ORM models for LLM-based SQL/dashboard translation across dialects.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "SQLAlchemy ORM models for LLM-based SQL/dashboard translation across dialects." + "LAYER": "Domain" }, "relations": [ { @@ -38026,7 +33216,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "A translation job representing a multi-dialect conversion task with column mappings, LLM config, and dictionary attachments.", + "BRIEF": "A translation job representing a multi-dialect conversion task with column mappings, LLM config, and dictionary attachments.", "RATIONALE": "Snapshot isolation — in-progress runs use config snapshot; config edits affect future runs only.", "REJECTED": "Invalidating in-progress runs on config edit would break scheduled run continuity." }, @@ -38045,7 +33235,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents a single execution of a translation job, capturing status, timing, and Superset execution metadata." + "BRIEF": "Represents a single execution of a translation job, capturing status, timing, and Superset execution metadata." }, "relations": [], "schema_warnings": [], @@ -38062,7 +33252,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Groups translation records within a run into manageable batches with timing and record counts." + "BRIEF": "Groups translation records within a run into manageable batches with timing and record counts." }, "relations": [], "schema_warnings": [], @@ -38079,7 +33269,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Individual translation result for a single SQL statement or dashboard element, tracking source, target, and error state." + "BRIEF": "Individual translation result for a single SQL statement or dashboard element, tracking source, target, and error state." }, "relations": [], "schema_warnings": [], @@ -38096,7 +33286,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Audit/event log for translation operations, with optional run_id for context." + "BRIEF": "Audit/event log for translation operations, with optional run_id for context." }, "relations": [], "schema_warnings": [], @@ -38113,7 +33303,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "A preview session allowing users to review proposed translations before applying them." + "BRIEF": "A preview session allowing users to review proposed translations before applying them." }, "relations": [], "schema_warnings": [], @@ -38130,7 +33320,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Individual preview entry within a preview session, showing original and translated content side by side." + "BRIEF": "Individual preview entry within a preview session, showing original and translated content side by side." }, "relations": [], "schema_warnings": [], @@ -38147,7 +33337,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "A named collection of terminology mappings used during translation to ensure consistent term translation." + "BRIEF": "A named collection of terminology mappings used during translation to ensure consistent term translation." }, "relations": [], "schema_warnings": [], @@ -38164,7 +33354,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "A single term mapping entry with case-insensitive unique constraint on source_term_normalized and origin tracking." + "BRIEF": "A single term mapping entry with case-insensitive unique constraint on source_term_normalized and origin tracking." }, "relations": [], "schema_warnings": [], @@ -38181,7 +33371,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Defines a cron-based schedule for recurring translation jobs." + "BRIEF": "Defines a cron-based schedule for recurring translation jobs." }, "relations": [], "schema_warnings": [], @@ -38198,7 +33388,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Many-to-many association between translation jobs and terminology dictionaries." + "BRIEF": "Many-to-many association between translation jobs and terminology dictionaries." }, "relations": [], "schema_warnings": [], @@ -38215,7 +33405,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Captures translation performance metrics at a point in time with config/content/dictionary hash keys for aggregation." + "BRIEF": "Captures translation performance metrics at a point in time with config/content/dictionary hash keys for aggregation." }, "relations": [], "schema_warnings": [], @@ -38232,8 +33422,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Per-language translation result for a single record, supporting multi-language output." + "BRIEF": "Per-language translation result for a single record, supporting multi-language output.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -38250,8 +33440,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Per-language preview entry within a preview session." + "BRIEF": "Per-language preview entry within a preview session.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -38268,8 +33458,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Per-language statistics for a translation run (row counts, tokens, cost)." + "BRIEF": "Per-language statistics for a translation run (row counts, tokens, cost).", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -38286,38 +33476,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Plugin package root for dynamic discovery and runtime imports." + "BRIEF": "Plugin package root for dynamic discovery and runtime imports." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region src.plugins [TYPE Package] [SEMANTICS plugin, package, discovery, runtime]\n# @BRIEF Plugin package root for dynamic discovery and runtime imports.\n# #endregion src.plugins\n" @@ -38331,8 +33493,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "App", - "PURPOSE": "A plugin that provides functionality to back up Superset dashboards." + "BRIEF": "A plugin that provides functionality to back up Superset dashboards.", + "LAYER": "App" }, "relations": [ { @@ -38393,8 +33555,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Plugins", - "PURPOSE": "Implements a plugin for system diagnostics and debugging Superset API responses." + "BRIEF": "Implements a plugin for system diagnostics and debugging Superset API responses.", + "LAYER": "Plugins" }, "relations": [ { @@ -38443,7 +33605,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Plugin for system diagnostics and debugging." + "BRIEF": "Plugin for system diagnostics and debugging." }, "relations": [], "schema_warnings": [], @@ -38460,38 +33622,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Git plugin extension package root." + "BRIEF": "Git plugin extension package root." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region GitPluginExt [TYPE Package] [SEMANTICS git, plugin, extension, package]\n# @BRIEF Git plugin extension package root.\n# #endregion GitPluginExt\n" @@ -38505,9 +33639,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "LLM-based extensions for the Git plugin, specifically for commit message generation.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "LLM-based extensions for the Git plugin, specifically for commit message generation." + "LAYER": "Domain" }, "relations": [ { @@ -38531,7 +33665,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Provides LLM capabilities to the Git plugin." + "BRIEF": "Provides LLM capabilities to the Git plugin." }, "relations": [], "schema_warnings": [], @@ -38548,11 +33682,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Предоставляет плагин для версионирования и развертывания дашбордов Superset.", "COMPLEXITY": 4, "CONSTRAINT": "Плагин работает только с распакованными YAML-экспортами Superset.", "INVARIANT": "_handle_sync сохраняет backup управляемых директорий перед удалением;", - "LAYER": "Plugin", - "PURPOSE": "Предоставляет плагин для версионирования и развертывания дашбордов Superset." + "LAYER": "Plugin" }, "relations": [ { @@ -38626,7 +33760,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Реализация плагина Git Integration для управления версиями дашбордов." + "BRIEF": "Реализация плагина Git Integration для управления версиями дашбордов." }, "relations": [], "schema_warnings": [], @@ -38658,9 +33792,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Define Pydantic models for LLM Analysis plugin.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Define Pydantic models for LLM Analysis plugin." + "LAYER": "Domain" }, "relations": [ { @@ -38684,7 +33818,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Enum for supported LLM providers." + "BRIEF": "Enum for supported LLM providers." }, "relations": [], "schema_warnings": [], @@ -38701,7 +33835,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Configuration for an LLM provider." + "BRIEF": "Configuration for an LLM provider." }, "relations": [], "schema_warnings": [], @@ -38718,7 +33852,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Enum for dashboard validation status." + "BRIEF": "Enum for dashboard validation status." }, "relations": [], "schema_warnings": [], @@ -38735,7 +33869,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Model for a single issue detected during validation." + "BRIEF": "Model for a single issue detected during validation." }, "relations": [], "schema_warnings": [], @@ -38752,7 +33886,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Model for dashboard validation result." + "BRIEF": "Model for dashboard validation result." }, "relations": [], "schema_warnings": [], @@ -38769,11 +33903,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Implements DashboardValidationPlugin and DocumentationPlugin.", "COMPLEXITY": 5, "DATA_CONTRACT": "AnalysisRequest -> AnalysisResult", "INVARIANT": "All LLM interactions must be executed as asynchronous tasks.", - "LAYER": "Plugin", - "PURPOSE": "Implements DashboardValidationPlugin and DocumentationPlugin." + "LAYER": "Plugin" }, "relations": [ { @@ -38821,9 +33955,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Guards against placeholder or malformed API keys in runtime.", "POST": "Returns True when value cannot be used for authenticated provider calls.", - "PRE": "value may be None.", - "PURPOSE": "Guards against placeholder or malformed API keys in runtime." + "PRE": "value may be None." }, "relations": [], "schema_warnings": [], @@ -38840,9 +33974,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Recursively normalize payload values for JSON serialization.", "POST": "datetime values are converted to ISO strings.", - "PRE": "value may be nested dict/list with datetime values.", - "PURPOSE": "Recursively normalize payload values for JSON serialization." + "PRE": "value may be nested dict/list with datetime values." }, "relations": [], "schema_warnings": [], @@ -38859,7 +33993,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Plugin for automated dashboard health analysis using LLMs." + "BRIEF": "Plugin for automated dashboard health analysis using LLMs." }, "relations": [ { @@ -38883,7 +34017,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Plugin for automated dataset documentation using LLMs." + "BRIEF": "Plugin for automated dataset documentation using LLMs." }, "relations": [ { @@ -38907,9 +34041,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Provides helper functions to schedule LLM-based validation tasks.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Provides helper functions to schedule LLM-based validation tasks." + "LAYER": "Domain" }, "relations": [ { @@ -38933,7 +34067,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schedules a recurring dashboard validation task.", + "BRIEF": "Schedules a recurring dashboard validation task.", "SIDE_EFFECT": "Adds a job to the scheduler service." }, "relations": [], @@ -38951,7 +34085,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Basic cron parser placeholder." + "BRIEF": "Basic cron parser placeholder." }, "relations": [], "schema_warnings": [], @@ -38968,11 +34102,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Services for LLM interaction and dashboard screenshots.", "COMPLEXITY": 5, "DATA_CONTRACT": "DashboardSpec -> Screenshot + Analysis", "INVARIANT": "Screenshots must be 1920px width and capture full page height.", "LAYER": "Plugin", - "PURPOSE": "Services for LLM interaction and dashboard screenshots.", "RATIONALE": "Extracted all hardcoded timeouts into named module-level constants (PLAYWRIGHT_NAVIGATION_TIMEOUT_MS, PLAYWRIGHT_WAIT_TIMEOUT_MS, PLAYWRIGHT_SHORT_TIMEOUT_MS, HTTP_REQUEST_TIMEOUT_MS, SCREENSHOT_SERVICE_TIMEOUT_MS, LLM_HTTP_TIMEOUT_S) and DEFAULT_USER_AGENT. Zero remaining numeric timeout literals." }, "relations": [ @@ -39009,7 +34143,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Handles capturing screenshots of Superset dashboards." + "BRIEF": "Handles capturing screenshots of Superset dashboards." }, "relations": [], "schema_warnings": [], @@ -39026,7 +34160,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Wrapper for LLM provider APIs." + "BRIEF": "Wrapper for LLM provider APIs." }, "relations": [], "schema_warnings": [], @@ -39043,8 +34177,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "TaskManager plugin for executing maintenance banner operations (start, end, end-all)." + "BRIEF": "TaskManager plugin for executing maintenance banner operations (start, end, end-all).", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -39061,8 +34195,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Plugins", - "PURPOSE": "Implements a plugin for mapping dataset columns using Superset SQL Lab or Excel files." + "BRIEF": "Implements a plugin for mapping dataset columns using Superset SQL Lab or Excel files.", + "LAYER": "Plugins" }, "relations": [ { @@ -39111,7 +34245,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Plugin for mapping dataset columns verbose names." + "BRIEF": "Plugin for mapping dataset columns verbose names." }, "relations": [], "schema_warnings": [], @@ -39128,13 +34262,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Orchestrates export, DB-mapping transformation, and import of Superset dashboards across environments.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[TaskContext{from_env,to_env,dashboard_regex,replace_db_config,from_db_id,to_db_id,passwords?}] -> Output[MigrationResult|artifact set]", "INVARIANT": "Dashboards must never be imported with unmapped/source DB connections to prevent data leaks or cross-environment pollution.", "LAYER": "App", "POST": "Plugin metadata remains stable and migration execution preserves mapped-environment import guarantees.", "PRE": "Plugin loader can resolve infrastructure dependencies and execution requests provide validated migration context.", - "PURPOSE": "Orchestrates export, DB-mapping transformation, and import of Superset dashboards across environments.", "SIDE_EFFECT": "Reads config, opens database sessions, creates temporary artifacts, and triggers Superset export/import workflows." }, "relations": [ @@ -39202,8 +34336,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Plugins", - "PURPOSE": "Implements a plugin for searching text patterns across all datasets in a specific Superset environment." + "BRIEF": "Implements a plugin for searching text patterns across all datasets in a specific Superset environment.", + "LAYER": "Plugins" }, "relations": [ { @@ -39252,7 +34386,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Plugin for searching text patterns in Superset datasets." + "BRIEF": "Plugin for searching text patterns in Superset datasets." }, "relations": [], "schema_warnings": [], @@ -39284,9 +34418,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Provides core filesystem operations for managing backups and repositories.", "INVARIANT": "All file operations must be restricted to the configured storage root.", "LAYER": "App", - "PURPOSE": "Provides core filesystem operations for managing backups and repositories.", "RATIONALE": "Replaced Path(__file__).parents[3] with BASE_DIR import from database.py for path resolution consistency." }, "relations": [ @@ -39357,7 +34491,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Verify Unix timestamp detection and conversion for ClickHouse Date columns." + "BRIEF": "Verify Unix timestamp detection and conversion for ClickHouse Date columns." }, "relations": [], "schema_warnings": [], @@ -39374,7 +34508,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Verify SQLGenerator produces valid ClickHouse INSERT SQL with normalized dates." + "BRIEF": "Verify SQLGenerator produces valid ClickHouse INSERT SQL with normalized dates." }, "relations": [], "schema_warnings": [], @@ -39391,7 +34525,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Verify the JOIN query SQL is syntactically correct for ClickHouse." + "BRIEF": "Verify the JOIN query SQL is syntactically correct for ClickHouse." }, "relations": [], "schema_warnings": [], @@ -39408,7 +34542,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Verify the orchestrator's _generate_and_insert_sql produces correct SQL for ClickHouse." + "BRIEF": "Verify the orchestrator's _generate_and_insert_sql produces correct SQL for ClickHouse." }, "relations": [], "schema_warnings": [], @@ -39425,7 +34559,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "End-to-end test: generate SQL, verify structure, simulate execution." + "BRIEF": "End-to-end test: generate SQL, verify structure, simulate execution." }, "relations": [], "schema_warnings": [], @@ -39442,8 +34576,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Legacy test module — all tests migrated to domain-specific test files:" + "BRIEF": "Legacy test module — all tests migrated to domain-specific test files:", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -39460,8 +34594,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Validate InlineCorrectionService and dictionary correction flows." + "BRIEF": "Validate InlineCorrectionService and dictionary correction flows.", + "COMPLEXITY": 3 }, "relations": [ { @@ -39485,8 +34619,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Validate DictionaryCRUD and DictionaryEntryCRUD operations.", "COMPLEXITY": 3, - "PURPOSE": "Validate DictionaryCRUD and DictionaryEntryCRUD operations.", "TEST_EDGE": "same_term_different_lang_pair -> allowed (not duplicate)", "TEST_INVARIANT": "unique_normalized -> verifies: [duplicate_entry, same_term_different_lang_pair allowed]" }, @@ -39504,29 +34638,7 @@ "target_ref": "[DictionaryEntryCRUD]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestDictionaryCRUD [C:3] [TYPE Module] [SEMANTICS test, dictionary, crud]\n# @BRIEF Validate DictionaryCRUD and DictionaryEntryCRUD operations.\n# @RELATION BINDS_TO -> [DictionaryCRUD]\n# @RELATION BINDS_TO -> [DictionaryEntryCRUD]\n# @TEST_EDGE: duplicate_entry -> ValueError on repeated (dictionary_id, source_term_norm, source_lang, target_lang)\n# @TEST_EDGE: delete_active_job -> ValueError with active/scheduled message\n# @TEST_EDGE: same_term_different_lang_pair -> allowed (not duplicate)\n# @TEST_INVARIANT: unique_normalized -> verifies: [duplicate_entry, same_term_different_lang_pair allowed]\n\nimport pytest\n\nfrom sqlalchemy import create_engine, event\nfrom sqlalchemy.orm import Session, sessionmaker\n\nfrom src.models.translate import Base, DictionaryEntry, TerminologyDictionary, TranslationJob, TranslationJobDictionary\nfrom src.plugins.translate.dictionary import DictionaryManager\n\n\n# region db_session [TYPE Fixture]\n# @PURPOSE: Provide an in-memory SQLite session for each test.\n@pytest.fixture\ndef db_session():\n engine = create_engine(\"sqlite:///:memory:\", echo=False)\n\n @event.listens_for(engine, \"connect\")\n def _set_sqlite_pragma(dbapi_connection, connection_record):\n cursor = dbapi_connection.cursor()\n cursor.execute(\"PRAGMA foreign_keys=ON\")\n cursor.close()\n\n Base.metadata.create_all(bind=engine)\n session = sessionmaker(bind=engine)()\n try:\n yield session\n finally:\n session.close()\n Base.metadata.drop_all(bind=engine)\n# endregion db_session\n\n\nclass TestDictionaryCRUD:\n \"\"\"Verify dictionary-level CRUD operations.\"\"\"\n\n # region test_create_dictionary [C:2] [TYPE Function]\n # @BRIEF: Verify dictionary creation and read-back.\n def test_create_dictionary(self, db_session: Session):\n d = DictionaryManager.create_dictionary(\n db_session, name=\"Finance Terms\",\n source_dialect=\"postgresql\", target_dialect=\"clickhouse\",\n created_by=\"test_user\", description=\"Finance-related term mappings\",\n )\n assert d.id is not None\n assert d.name == \"Finance Terms\"\n assert d.source_dialect == \"postgresql\"\n assert d.target_dialect == \"clickhouse\"\n assert d.created_by == \"test_user\"\n assert d.is_active is True\n\n fetched = DictionaryManager.get_dictionary(db_session, d.id)\n assert fetched.id == d.id\n assert fetched.name == \"Finance Terms\"\n # endregion test_create_dictionary\n\n # region test_update_dictionary [C:2] [TYPE Function]\n # @BRIEF: Verify dictionary metadata update.\n def test_update_dictionary(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Old Name\", source_dialect=\"a\", target_dialect=\"b\")\n updated = DictionaryManager.update_dictionary(\n db_session, d.id, name=\"New Name\", description=\"Updated desc\", is_active=False,\n )\n assert updated.name == \"New Name\"\n assert updated.description == \"Updated desc\"\n assert updated.is_active is False\n # endregion test_update_dictionary\n\n # region test_delete_dictionary [C:2] [TYPE Function]\n # @BRIEF: Verify dictionary deletion also removes entries.\n def test_delete_dictionary(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"To Delete\", source_dialect=\"a\", target_dialect=\"b\")\n entry = DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hola\", source_language=\"en\", target_language=\"es\")\n assert entry.id is not None\n DictionaryManager.delete_dictionary(db_session, d.id)\n with pytest.raises(ValueError, match=\"Dictionary not found\"):\n DictionaryManager.get_dictionary(db_session, d.id)\n # endregion test_delete_dictionary\n\n # region test_list_dictionaries [C:2] [TYPE Function]\n # @BRIEF: Verify paginated dictionary listing.\n def test_list_dictionaries(self, db_session: Session):\n for i in range(5):\n DictionaryManager.create_dictionary(db_session, name=f\"Dict {i}\", source_dialect=\"a\", target_dialect=\"b\")\n dicts, total = DictionaryManager.list_dictionaries(db_session, page=1, page_size=2)\n assert total == 5\n assert len(dicts) == 2\n # endregion test_list_dictionaries\n\n # region test_delete_dictionary_blocked_by_active_job [C:2] [TYPE Function]\n # @BRIEF: Verify deletion is blocked when attached to active/scheduled jobs.\n def test_delete_dictionary_blocked_by_active_job(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n job = TranslationJob(name=\"Active Job\", source_dialect=\"a\", target_dialect=\"b\", status=\"ACTIVE\", created_by=\"test_user\")\n db_session.add(job)\n db_session.flush()\n link = TranslationJobDictionary(job_id=job.id, dictionary_id=d.id)\n db_session.add(link)\n db_session.commit()\n with pytest.raises(ValueError, match=\"active/scheduled\"):\n DictionaryManager.delete_dictionary(db_session, d.id)\n # endregion test_delete_dictionary_blocked_by_active_job\n\n # region test_delete_dictionary_allowed_with_completed_job [C:2] [TYPE Function]\n # @BRIEF: Verify deletion is allowed when only completed/failed jobs reference the dictionary.\n def test_delete_dictionary_allowed_with_completed_job(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n job = TranslationJob(name=\"Completed Job\", source_dialect=\"a\", target_dialect=\"b\", status=\"COMPLETED\", created_by=\"test_user\")\n db_session.add(job)\n db_session.flush()\n link = TranslationJobDictionary(job_id=job.id, dictionary_id=d.id)\n db_session.add(link)\n db_session.commit()\n DictionaryManager.delete_dictionary(db_session, d.id)\n with pytest.raises(ValueError, match=\"Dictionary not found\"):\n DictionaryManager.get_dictionary(db_session, d.id)\n # endregion test_delete_dictionary_allowed_with_completed_job\n\n\nclass TestDictionaryEntryCRUD:\n \"\"\"Verify entry-level CRUD operations.\"\"\"\n\n # region test_add_entry_duplicate [C:2] [TYPE Function]\n # @BRIEF: Verify duplicate entry raises ValueError.\n def test_add_entry_duplicate(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n DictionaryManager.add_entry(db_session, d.id, \"Hello\", \"Hola\", source_language=\"en\", target_language=\"es\")\n with pytest.raises(ValueError, match=\"already exists\"):\n DictionaryManager.add_entry(db_session, d.id, \"hello\", \"Bonjour\", source_language=\"en\", target_language=\"es\")\n with pytest.raises(ValueError, match=\"already exists\"):\n DictionaryManager.add_entry(db_session, d.id, \"HELLO\", \"Ciao\", source_language=\"en\", target_language=\"es\")\n # endregion test_add_entry_duplicate\n\n # region test_add_entry_duplicate_per_dictionary [C:2] [TYPE Function]\n # @BRIEF: Verify duplicate is per-dictionary (same term in different dicts is OK).\n def test_add_entry_duplicate_per_dictionary(self, db_session: Session):\n d1 = DictionaryManager.create_dictionary(db_session, name=\"Dict1\", source_dialect=\"a\", target_dialect=\"b\")\n d2 = DictionaryManager.create_dictionary(db_session, name=\"Dict2\", source_dialect=\"a\", target_dialect=\"b\")\n DictionaryManager.add_entry(db_session, d1.id, \"hello\", \"hola\", source_language=\"en\", target_language=\"es\")\n entry = DictionaryManager.add_entry(db_session, d2.id, \"hello\", \"bonjour\", source_language=\"en\", target_language=\"es\")\n assert entry.id is not None\n # endregion test_add_entry_duplicate_per_dictionary\n\n # region test_edit_entry [C:2] [TYPE Function]\n # @BRIEF: Verify entry edit updates fields and enforces uniqueness.\n def test_edit_entry(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n entry = DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hola\", source_language=\"en\", target_language=\"es\")\n updated = DictionaryManager.edit_entry(db_session, entry.id, target_term=\"HOLA!\")\n assert updated.target_term == \"HOLA!\"\n DictionaryManager.add_entry(db_session, d.id, \"world\", \"mundo\", source_language=\"en\", target_language=\"es\")\n with pytest.raises(ValueError, match=\"already exists\"):\n DictionaryManager.edit_entry(db_session, entry.id, source_term=\"WORLD\")\n # endregion test_edit_entry\n\n # region test_delete_entry [C:2] [TYPE Function]\n # @BRIEF: Verify entry deletion.\n def test_delete_entry(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n entry = DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hola\", source_language=\"en\", target_language=\"es\")\n DictionaryManager.delete_entry(db_session, entry.id)\n entries, total = DictionaryManager.list_entries(db_session, d.id)\n assert total == 0\n # endregion test_delete_entry\n\n # region test_clear_entries [C:2] [TYPE Function]\n # @BRIEF: Verify clearing all entries for a dictionary.\n def test_clear_entries(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hola\", source_language=\"en\", target_language=\"es\")\n DictionaryManager.add_entry(db_session, d.id, \"world\", \"mundo\", source_language=\"en\", target_language=\"es\")\n deleted = DictionaryManager.clear_entries(db_session, d.id)\n assert deleted == 2\n entries, total = DictionaryManager.list_entries(db_session, d.id)\n assert total == 0\n # endregion test_clear_entries\n\n # region test_add_entry_with_language_pair [C:2] [TYPE Function]\n # @BRIEF: Verify creating entry with language pair stores correctly.\n def test_add_entry_with_language_pair(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Lang Test\", source_dialect=\"a\", target_dialect=\"b\")\n entry = DictionaryManager.add_entry(db_session, d.id, \"hello\", \"привет\", source_language=\"en\", target_language=\"ru\")\n assert entry.source_language == \"en\"\n assert entry.target_language == \"ru\"\n entries, total = DictionaryManager.list_entries(db_session, d.id)\n assert total == 1\n assert entries[0].source_language == \"en\"\n assert entries[0].target_language == \"ru\"\n # endregion test_add_entry_with_language_pair\n\n # region test_duplicate_same_language_pair [C:2] [TYPE Function]\n # @BRIEF: Verify duplicate with same language pair raises conflict.\n def test_duplicate_same_language_pair(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Dup Test\", source_dialect=\"a\", target_dialect=\"b\")\n DictionaryManager.add_entry(db_session, d.id, \"hello\", \"привет\", source_language=\"en\", target_language=\"ru\")\n with pytest.raises(ValueError, match=\"already exists\"):\n DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hallo\", source_language=\"en\", target_language=\"ru\")\n # endregion test_duplicate_same_language_pair\n\n # region test_same_term_different_language_pair [C:2] [TYPE Function]\n # @BRIEF: Verify same term with different language pair is allowed.\n def test_same_term_different_language_pair(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Multi Lang\", source_dialect=\"a\", target_dialect=\"b\")\n entry1 = DictionaryManager.add_entry(db_session, d.id, \"hello\", \"привет\", source_language=\"en\", target_language=\"ru\")\n entry2 = DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hallo\", source_language=\"en\", target_language=\"de\")\n assert entry1.id != entry2.id\n assert entry1.target_language == \"ru\"\n assert entry2.target_language == \"de\"\n entries, total = DictionaryManager.list_entries(db_session, d.id)\n assert total == 2\n # endregion test_same_term_different_language_pair\n# #endregion TestDictionaryCRUD\n" @@ -39540,8 +34652,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Validate DictionaryBatchFilter operations." + "BRIEF": "Validate DictionaryBatchFilter operations.", + "COMPLEXITY": 3 }, "relations": [ { @@ -39565,8 +34677,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Validate DictionaryImportExport operations.", "COMPLEXITY": 3, - "PURPOSE": "Validate DictionaryImportExport operations.", "TEST_EDGE": "import_invalid_format -> ValueError for missing required columns" }, "relations": [ @@ -39577,29 +34689,7 @@ "target_ref": "[DictionaryImportExport]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestDictionaryImport [C:3] [TYPE Module] [SEMANTICS test, dictionary, import, export]\n# @BRIEF Validate DictionaryImportExport operations.\n# @RELATION BINDS_TO -> [DictionaryImportExport]\n# @TEST_EDGE: import_invalid_format -> ValueError for missing required columns\n\nimport csv\nimport io\nimport pytest\n\nfrom sqlalchemy import create_engine, event\nfrom sqlalchemy.orm import Session, sessionmaker\n\nfrom src.models.translate import Base\nfrom src.plugins.translate.dictionary import DictionaryManager\n\n\n# region db_session [TYPE Fixture]\n@pytest.fixture\ndef db_session():\n engine = create_engine(\"sqlite:///:memory:\", echo=False)\n @event.listens_for(engine, \"connect\")\n def _set_sqlite_pragma(dbapi_connection, connection_record):\n cursor = dbapi_connection.cursor()\n cursor.execute(\"PRAGMA foreign_keys=ON\")\n cursor.close()\n Base.metadata.create_all(bind=engine)\n session = sessionmaker(bind=engine)()\n try:\n yield session\n finally:\n session.close()\n Base.metadata.drop_all(bind=engine)\n# endregion db_session\n\n\nclass TestImportOverwrite:\n \"\"\"Verify CSV import with overwrite conflict mode.\"\"\"\n\n # region test_import_csv_overwrite [C:2] [TYPE Function]\n def test_import_csv_overwrite(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hola\", source_language=\"en\", target_language=\"es\")\n\n csv_content = \"source_term,target_term,context_notes,source_language,target_language\\nhello,HELLO,,en,es\\nworld,mundo,,en,es\"\n result = DictionaryManager.import_entries(db_session, d.id, csv_content, delimiter=\",\", on_conflict=\"overwrite\")\n assert result[\"total\"] == 2\n assert result[\"created\"] == 1\n assert result[\"updated\"] == 1\n assert result[\"skipped\"] == 0\n\n entries, _ = DictionaryManager.list_entries(db_session, d.id)\n hello_entry = [e for e in entries if e.source_term_normalized == \"hello\"][0]\n assert hello_entry.target_term == \"HELLO\"\n # endregion test_import_csv_overwrite\n\n\nclass TestImportKeepExisting:\n \"\"\"Verify CSV import with keep_existing conflict mode.\"\"\"\n\n # region test_import_csv_keep_existing [C:2] [TYPE Function]\n def test_import_csv_keep_existing(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hola\", source_language=\"en\", target_language=\"es\")\n\n csv_content = \"source_term,target_term,source_language,target_language\\nhello,HELLO,en,es\\nworld,mundo,en,es\"\n result = DictionaryManager.import_entries(db_session, d.id, csv_content, delimiter=\",\", on_conflict=\"keep_existing\")\n assert result[\"created\"] == 1\n assert result[\"updated\"] == 0\n assert result[\"skipped\"] == 1\n\n entries, _ = DictionaryManager.list_entries(db_session, d.id)\n hello_entry = [e for e in entries if e.source_term_normalized == \"hello\"][0]\n assert hello_entry.target_term == \"hola\"\n # endregion test_import_csv_keep_existing\n\n\nclass TestImportCancel:\n \"\"\"Verify CSV import with cancel conflict mode.\"\"\"\n\n # region test_import_csv_cancel_on_conflict [C:2] [TYPE Function]\n def test_import_csv_cancel_on_conflict(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hola\", source_language=\"en\", target_language=\"es\")\n\n csv_content = \"source_term,target_term,source_language,target_language\\nhello,HELLO,en,es\\nworld,mundo,en,es\"\n result = DictionaryManager.import_entries(db_session, d.id, csv_content, delimiter=\",\", on_conflict=\"cancel\")\n assert result[\"total\"] == 2\n assert result[\"created\"] == 1\n assert result[\"updated\"] == 0\n assert len(result[\"errors\"]) == 1\n assert \"Conflict\" in result[\"errors\"][0][\"error\"]\n # endregion test_import_csv_cancel_on_conflict\n\n\nclass TestImportFormat:\n \"\"\"Verify import format handling.\"\"\"\n\n # region test_import_tsv [C:2] [TYPE Function]\n def test_import_tsv(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n tsv_content = \"source_term\\ttarget_term\\tsource_language\\ttarget_language\\nhello\\thola\\ten\\tes\\nworld\\tmundo\\ten\\tes\"\n result = DictionaryManager.import_entries(db_session, d.id, tsv_content, delimiter=\"\\t\", on_conflict=\"overwrite\")\n assert result[\"created\"] == 2\n assert result[\"total\"] == 2\n # endregion test_import_tsv\n\n # region test_import_invalid_format [C:2] [TYPE Function]\n def test_import_invalid_format(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n with pytest.raises(ValueError, match=\"source_term\"):\n DictionaryManager.import_entries(db_session, d.id, \"name,value\\nhello,hola\", delimiter=\",\", on_conflict=\"overwrite\")\n # endregion test_import_invalid_format\n\n # region test_import_empty_rows [C:2] [TYPE Function]\n def test_import_empty_rows(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n csv_content = \"source_term,target_term\\nhello,hola\\n,world\\nfoo,\"\n result = DictionaryManager.import_entries(db_session, d.id, csv_content, delimiter=\",\", on_conflict=\"overwrite\")\n assert result[\"created\"] == 1\n assert len(result[\"errors\"]) == 2\n # endregion test_import_empty_rows\n\n # region test_import_preview [C:2] [TYPE Function]\n def test_import_preview(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Test\", source_dialect=\"a\", target_dialect=\"b\")\n DictionaryManager.add_entry(db_session, d.id, \"hello\", \"hola\", source_language=\"en\", target_language=\"es\")\n\n csv_content = \"source_term,target_term,source_language,target_language\\nhello,HELLO,en,es\\nworld,mundo,en,es\"\n result = DictionaryManager.import_entries(db_session, d.id, csv_content, delimiter=\",\", on_conflict=\"overwrite\", preview_only=True)\n assert len(result[\"preview\"]) == 2\n assert result[\"preview\"][0][\"is_conflict\"] is True\n assert result[\"preview\"][0][\"existing_target_term\"] == \"hola\"\n assert result[\"preview\"][1][\"is_conflict\"] is False\n\n entries, total = DictionaryManager.list_entries(db_session, d.id)\n assert total == 1\n # endregion test_import_preview\n\n\nclass TestExportEntries:\n \"\"\"Verify export functionality.\"\"\"\n\n # region test_export_entries [C:2] [TYPE Function]\n def test_export_entries(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Export Test\", source_dialect=\"a\", target_dialect=\"b\")\n DictionaryManager.add_entry(db_session, d.id, \"hello\", \"привет\", source_language=\"en\", target_language=\"ru\")\n DictionaryManager.add_entry(db_session, d.id, \"world\", \"мир\", source_language=\"en\", target_language=\"ru\")\n\n csv_output = DictionaryManager.export_entries(db_session, d.id)\n assert \"source_language\" in csv_output\n assert \"target_language\" in csv_output\n assert \"en\" in csv_output\n assert \"ru\" in csv_output\n\n reader = csv.DictReader(io.StringIO(csv_output))\n rows = list(reader)\n assert len(rows) == 2\n assert rows[0][\"source_language\"] == \"en\"\n assert rows[0][\"target_language\"] == \"ru\"\n # endregion test_export_entries\n\n # region test_import_with_default_language [C:2] [TYPE Function]\n def test_import_with_default_language(self, db_session: Session):\n d = DictionaryManager.create_dictionary(db_session, name=\"Default Lang Import\", source_dialect=\"a\", target_dialect=\"b\")\n csv_content = \"source_term,target_term\\nhello,привет\\nworld,мир\"\n result = DictionaryManager.import_entries(\n db_session, d.id, csv_content, delimiter=\",\", on_conflict=\"overwrite\",\n default_source_language=\"en\", default_target_language=\"ru\",\n )\n assert result[\"created\"] == 2\n\n entries, _ = DictionaryManager.list_entries(db_session, d.id)\n for e in entries:\n assert e.source_language == \"en\"\n assert e.target_language == \"ru\"\n # endregion test_import_with_default_language\n# #endregion TestDictionaryImport\n" @@ -39613,8 +34703,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Validate ContextAwarePromptBuilder operations: Jaccard similarity, context truncation, entry rendering." + "BRIEF": "Validate ContextAwarePromptBuilder operations: Jaccard similarity, context truncation, entry rendering.", + "COMPLEXITY": 3 }, "relations": [ { @@ -39638,8 +34728,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Validate utility functions: _normalize_term and _detect_delimiter." + "BRIEF": "Validate utility functions: _normalize_term and _detect_delimiter.", + "COMPLEXITY": 3 }, "relations": [ { @@ -39663,8 +34753,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unit tests for LanguageDetectService — local language detection via lingua." + "BRIEF": "Unit tests for LanguageDetectService — local language detection via lingua.", + "COMPLEXITY": 3 }, "relations": [ { @@ -39688,8 +34778,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Verify core language detection for common languages." + "BRIEF": "Verify core language detection for common languages.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -39808,8 +34898,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Verify text cleaning contracts — normalize_whitespace, truncate_text, clean_text.", "COMPLEXITY": 3, - "PURPOSE": "Verify text cleaning contracts — normalize_whitespace, truncate_text, clean_text.", "TEST_EDGE": "zero_max_length — max_length=0 forces truncation on any non-empty text" }, "relations": [ @@ -39820,29 +34910,7 @@ "target_ref": "[_text_cleaner:Module]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestTextCleaner [C:3] [TYPE Module] [SEMANTICS test, text, cleaner, whitespace, truncation]\n# @BRIEF Verify text cleaning contracts — normalize_whitespace, truncate_text, clean_text.\n# @RELATION BINDS_TO -> [_text_cleaner:Module]\n# @TEST_EDGE: empty_string — empty/whitespace-only input returns \"\"\n# @TEST_EDGE: whitespace_variants — multiple spaces, newlines, tabs all collapse to single space\n# @TEST_EDGE: truncation_boundary — text shorter than, equal to, and longer than max_length\n# @TEST_EDGE: clean_combined — clean_text correctly chains normalize + truncate\n# @TEST_EDGE: zero_max_length — max_length=0 forces truncation on any non-empty text\n\nfrom src.plugins.translate._text_cleaner import clean_text, normalize_whitespace, truncate_text\n\n\n# region TestNormalizeWhitespace [TYPE Class]\n# @BRIEF Test suite for normalize_whitespace.\nclass TestNormalizeWhitespace:\n\n # region test_empty_string [TYPE Function]\n # @BRIEF Empty string returns empty string.\n def test_empty_string(self):\n assert normalize_whitespace(\"\") == \"\"\n # endregion test_empty_string\n\n # region test_whitespace_only [TYPE Function]\n # @BRIEF String with only whitespace returns empty string.\n def test_whitespace_only(self):\n assert normalize_whitespace(\" \") == \"\"\n assert normalize_whitespace(\"\\t\") == \"\"\n assert normalize_whitespace(\"\\n\") == \"\"\n # endregion test_whitespace_only\n\n # region test_multiple_spaces [TYPE Function]\n # @BRIEF Multiple spaces between words are collapsed to single space.\n def test_multiple_spaces(self):\n assert normalize_whitespace(\"hello world\") == \"hello world\"\n # endregion test_multiple_spaces\n\n # region test_multiple_newlines [TYPE Function]\n # @BRIEF Multiple newlines are collapsed to single space.\n def test_multiple_newlines(self):\n assert normalize_whitespace(\"hello\\n\\n\\nworld\") == \"hello world\"\n # endregion test_multiple_newlines\n\n # region test_mixed_whitespace [TYPE Function]\n # @BRIEF Tabs, newlines, and spaces all collapse to single space.\n def test_mixed_whitespace(self):\n assert normalize_whitespace(\"hello\\t \\n world\") == \"hello world\"\n # endregion test_mixed_whitespace\n\n # region test_leading_trailing_whitespace [TYPE Function]\n # @BRIEF Leading and trailing whitespace is trimmed.\n def test_leading_trailing_whitespace(self):\n assert normalize_whitespace(\" hello world \") == \"hello world\"\n assert normalize_whitespace(\"\\nhello world\\n\") == \"hello world\"\n # endregion test_leading_trailing_whitespace\n\n # region test_already_clean [TYPE Function]\n # @BRIEF Already clean text is returned unchanged.\n def test_already_clean(self):\n assert normalize_whitespace(\"hello world\") == \"hello world\"\n # endregion test_already_clean\n\n # region test_single_word [TYPE Function]\n # @BRIEF Single word with surrounding whitespace is trimmed to the word.\n def test_single_word(self):\n assert normalize_whitespace(\" hello \") == \"hello\"\n # endregion test_single_word\n\n# endregion TestNormalizeWhitespace\n\n\n# region TestTruncateText [TYPE Class]\n# @BRIEF Test suite for truncate_text.\nclass TestTruncateText:\n\n # region test_empty_string [TYPE Function]\n # @BRIEF Empty string stays empty regardless of max_length.\n def test_empty_string(self):\n assert truncate_text(\"\") == \"\"\n assert truncate_text(\"\", max_length=0) == \"\"\n # endregion test_empty_string\n\n # region test_shorter_than_max [TYPE Function]\n # @BRIEF Text shorter than max_length is returned unchanged.\n def test_shorter_than_max(self):\n assert truncate_text(\"hi\", max_length=5) == \"hi\"\n # endregion test_shorter_than_max\n\n # region test_exactly_at_max [TYPE Function]\n # @BRIEF Text exactly at max_length is returned unchanged (no \"...\" appended).\n def test_exactly_at_max(self):\n assert truncate_text(\"hello\", max_length=5) == \"hello\"\n # endregion test_exactly_at_max\n\n # region test_longer_than_max [TYPE Function]\n # @BRIEF Text longer than max_length is truncated with \"...\" appended.\n def test_longer_than_max(self):\n result = truncate_text(\"hello world\", max_length=5)\n assert result == \"hello...\"\n assert len(result) == 8 # 5 chars + \"...\"\n # endregion test_longer_than_max\n\n # region test_zero_max_length [TYPE Function]\n # @BRIEF max_length=0 truncates any non-empty text to \"...\".\n def test_zero_max_length(self):\n assert truncate_text(\"hello\", max_length=0) == \"...\"\n # endregion test_zero_max_length\n\n # region test_default_max_length [TYPE Function]\n # @BRIEF Default max_length of 500 does not truncate short text.\n def test_default_max_length(self):\n text = \"x\" * 100\n assert truncate_text(text) == text\n # endregion test_default_max_length\n\n # region test_truncation_at_default_boundary [TYPE Function]\n # @BRIEF Text exactly 500 chars is unchanged; 501 chars is truncated.\n def test_truncation_at_default_boundary(self):\n text_500 = \"x\" * 500\n text_501 = \"x\" * 501\n assert truncate_text(text_500) == text_500\n result = truncate_text(text_501)\n assert result == \"x\" * 500 + \"...\"\n assert len(result) == 503\n # endregion test_truncation_at_default_boundary\n\n# endregion TestTruncateText\n\n\n# region TestCleanText [TYPE Class]\n# @BRIEF Test suite for clean_text (combined normalize + truncate).\nclass TestCleanText:\n\n # region test_empty_string [TYPE Function]\n # @BRIEF Empty string returns empty string.\n def test_empty_string(self):\n assert clean_text(\"\") == \"\"\n # endregion test_empty_string\n\n # region test_whitespace_only [TYPE Function]\n # @BRIEF Whitespace-only input returns empty string.\n def test_whitespace_only(self):\n assert clean_text(\" \\n \\t \") == \"\"\n # endregion test_whitespace_only\n\n # region test_clean_and_short [TYPE Function]\n # @BRIEF Already clean, short text is returned unchanged.\n def test_clean_and_short(self):\n assert clean_text(\"hello world\") == \"hello world\"\n # endregion test_clean_and_short\n\n # region test_normalize_then_truncate [TYPE Function]\n # @BRIEF Whitespace is normalized before truncation — counting clean chars.\n def test_normalize_then_truncate(self):\n # \"hello world\" has 15 chars raw, normalized to \"hello world\" (11 chars)\n # With max_length=5, should truncate normalized text to \"hello...\"\n result = clean_text(\"hello world\", max_length=5)\n assert result == \"hello...\"\n # endregion test_normalize_then_truncate\n\n # region test_normalize_keeps_text_under_limit [TYPE Function]\n # @BRIEF Normalization reduces length enough that truncation is not needed.\n def test_normalize_keeps_text_under_limit(self):\n # \"A B\" has 4 chars raw, normalizes to \"A B\" (3 chars), still under 5\n result = clean_text(\"A B\", max_length=5)\n assert result == \"A B\"\n # endregion test_normalize_keeps_text_under_limit\n\n # region test_leading_whitespace_then_truncate [TYPE Function]\n # @BRIEF Leading whitespace is removed before truncation, avoiding wasted chars.\n def test_leading_whitespace_then_truncate(self):\n # \" hello world\" normalizes to \"hello world\" (11 chars)\n # With max_length=5: truncates to \"hello...\"\n result = clean_text(\" hello world\", max_length=5)\n assert result == \"hello...\"\n # endregion test_leading_whitespace_then_truncate\n\n # region test_default_max_length_passthrough [TYPE Function]\n # @BRIEF With default max_length=500, text under 500 after normalize is unchanged.\n def test_default_max_length_passthrough(self):\n text = \" hello world \"\n expected = \"hello world\"\n assert clean_text(text) == expected\n # endregion test_default_max_length_passthrough\n\n# endregion TestCleanText\n# #endregion TestTextCleaner\n" @@ -39856,8 +34924,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Verify estimate_token_budget contracts — safe batch sizing, auto-reduction, warning generation.", "COMPLEXITY": 3, - "PURPOSE": "Verify estimate_token_budget contracts — safe batch sizing, auto-reduction, warning generation.", "TEST_EDGE": "conservative_min — even with huge rows, batch_size_adjusted >= 1", "TEST_INVARIANT": "warning is None when batch fits, str when reduced" }, @@ -39869,29 +34937,7 @@ "target_ref": "[estimate_token_budget:Module]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestTokenBudget [C:3] [TYPE Module] [SEMANTICS test, token, budget, estimation, batch, translate]\n# @BRIEF Verify estimate_token_budget contracts — safe batch sizing, auto-reduction, warning generation.\n# @RELATION BINDS_TO -> [estimate_token_budget:Module]\n# @TEST_EDGE: empty_rows — empty source rows returns batch_size_adjusted=1\n# @TEST_EDGE: small_rows — short text fits in a single batch at requested size\n# @TEST_EDGE: large_rows — long text causes batch size reduction\n# @TEST_EDGE: multi_language — more target languages increases output estimate\n# @TEST_EDGE: context_columns — context columns increase input token estimate\n# @TEST_EDGE: dictionary_entries — glossary entries increase input token estimate\n# @TEST_EDGE: auto_calc — no batch_size specified, auto-calculates max safe\n# @TEST_EDGE: exact_fit — exactly fits context window, batch_adjusted == requested\n# @TEST_EDGE: conservative_min — even with huge rows, batch_size_adjusted >= 1\n# @TEST_INVARIANT: batch_size_adjusted >= 1 always\n# @TEST_INVARIANT: max_output_needed between MIN_MAX_TOKENS(4096) and max_output_tokens(8192)\n# @TEST_INVARIANT: warning is None when batch fits, str when reduced\n\nfrom src.plugins.translate._token_budget import DEFAULT_CONTEXT_WINDOW, DEFAULT_MAX_OUTPUT_TOKENS, estimate_token_budget\n\n\n# region _make_row [TYPE Function]\n# @BRIEF Create a test source row dict.\ndef _make_row(text: str, **context) -> dict:\n row = {\"source_text\": text, \"row_index\": \"0\"}\n row.update(context)\n return row\n# endregion _make_row\n\n\n# region TestTokenBudget [TYPE Class]\n# @BRIEF Test suite for estimate_token_budget.\nclass TestTokenBudget:\n\n # region test_small_rows_fit_at_requested_size [TYPE Function]\n # @BRIEF Short text rows fill the requested batch_size without reduction.\n def test_small_rows_fit_at_requested_size(self):\n \"\"\"Short text of ~50 chars should fit 50-row batch easily.\"\"\"\n rows = [_make_row(\"Hello world, this is a short text for translation.\")] * 50\n result = estimate_token_budget(\n source_rows=rows,\n target_languages=[\"ru\"],\n batch_size=50,\n )\n assert result[\"batch_size_adjusted\"] == 50\n assert result[\"estimated_input_tokens\"] > 0\n assert result[\"estimated_output_tokens\"] > 0\n assert result[\"max_output_needed\"] >= 4096\n assert result[\"max_output_needed\"] <= DEFAULT_MAX_OUTPUT_TOKENS\n assert result[\"warning\"] is None\n # endregion test_small_rows_fit_at_requested_size\n\n # region test_large_rows_reduce_batch_size [TYPE Function]\n # @BRIEF Very long text rows force batch size reduction to fit context window.\n def test_large_rows_reduce_batch_size(self):\n \"\"\"~10000 char rows should cause batch reduction from 50 to a smaller number.\"\"\"\n long_text = \"X\" * 10000 # ~4545 tokens each at 2.2 chars/token\n rows = [_make_row(long_text)] * 50\n result = estimate_token_budget(\n source_rows=rows,\n target_languages=[\"ru\", \"en\"],\n batch_size=50,\n )\n # Each row is ~4545 tokens input, plus ~2400 output (2 langs * 60 * 20 + 2000)\n # With 50 rows: ~227K tokens — way over 64K. Should reduce significantly.\n assert result[\"batch_size_adjusted\"] < 50\n assert result[\"batch_size_adjusted\"] >= 1\n assert result[\"warning\"] is not None\n assert \"Reduced batch size\" in result[\"warning\"]\n # endregion test_large_rows_reduce_batch_size\n\n # region test_multi_language_increases_output_estimate [TYPE Function]\n # @BRIEF More target languages increase the estimated output tokens.\n def test_multi_language_increases_output_estimate(self):\n \"\"\"4 target languages should have higher output estimate than 1.\"\"\"\n rows = [_make_row(\"Short text.\")] * 10\n\n single_lang = estimate_token_budget(rows, [\"ru\"], batch_size=10)\n multi_lang = estimate_token_budget(rows, [\"ru\", \"en\", \"fr\", \"de\"], batch_size=10)\n\n assert multi_lang[\"estimated_output_tokens\"] > single_lang[\"estimated_output_tokens\"]\n # Both should fit without reduction\n assert single_lang[\"batch_size_adjusted\"] == 10\n assert multi_lang[\"batch_size_adjusted\"] == 10\n # endregion test_multi_language_increases_output_estimate\n\n # region test_context_columns_increase_input [TYPE Function]\n # @BRIEF Context columns add to the input token estimate.\n def test_context_columns_increase_input(self):\n \"\"\"Rows with context columns should have higher input tokens.\"\"\"\n rows = [_make_row(\"Short text.\")] * 10\n\n no_context = estimate_token_budget(rows, [\"ru\"], batch_size=10)\n with_context = estimate_token_budget(\n rows, [\"ru\"], batch_size=10,\n context_columns=[\"description\", \"category\"],\n )\n\n assert with_context[\"estimated_input_tokens\"] > no_context[\"estimated_input_tokens\"]\n # endregion test_context_columns_increase_input\n\n # region test_dictionary_entries_increase_input [TYPE Function]\n # @BRIEF Dictionary entries add to the input token estimate.\n def test_dictionary_entries_increase_input(self):\n \"\"\"Dictionary entries should increase estimated_input_tokens.\"\"\"\n rows = [_make_row(\"Short text.\")] * 10\n dict_entries = [{\"source_term\": f\"term_{i}\", \"target_term\": f\"trans_{i}\"} for i in range(100)]\n\n no_dict = estimate_token_budget(rows, [\"ru\"], batch_size=10)\n with_dict = estimate_token_budget(rows, [\"ru\"], batch_size=10, dictionary_entries=dict_entries)\n\n assert with_dict[\"estimated_input_tokens\"] > no_dict[\"estimated_input_tokens\"]\n # endregion test_dictionary_entries_increase_input\n\n # region test_auto_calc_finds_safe_size [TYPE Function]\n # @BRIEF Without batch_size specified, auto-calculate max safe batch.\n def test_auto_calc_finds_safe_size(self):\n \"\"\"Auto-calculation should find the max rows that fit context window.\"\"\"\n rows = [_make_row(\"A\" * 500)] * 100 # ~227 tokens/row\n\n result = estimate_token_budget(\n source_rows=rows,\n target_languages=[\"ru\", \"en\"],\n batch_size=None, # auto-calc\n )\n\n assert result[\"batch_size_adjusted\"] >= 1\n assert result[\"batch_size_adjusted\"] <= 100\n # Verify it found a reasonable size\n assert result[\"estimated_input_tokens\"] + result[\"max_output_needed\"] <= DEFAULT_CONTEXT_WINDOW\n # endregion test_auto_calc_finds_safe_size\n\n # region test_empty_rows_returns_minimum [TYPE Function]\n # @BRIEF Empty source rows returns batch_size_adjusted=1 and minimum estimates.\n def test_empty_rows_returns_minimum(self):\n \"\"\"Empty rows list should return batch_size_adjusted=1 with min estimates.\"\"\"\n result = estimate_token_budget(\n source_rows=[],\n target_languages=[\"ru\"],\n batch_size=10,\n )\n assert result[\"batch_size_adjusted\"] == 1\n assert result[\"estimated_input_tokens\"] >= 300 # at least prompt base\n assert result[\"estimated_output_tokens\"] >= 2000 # at least reasoning overhead\n # endregion test_empty_rows_returns_minimum\n\n # region test_exact_fit_no_warning [TYPE Function]\n # @BRIEF When batch fits exactly, no warning is generated.\n def test_exact_fit_no_warning(self):\n \"\"\"Small batch that fits easily should have no warning.\"\"\"\n rows = [_make_row(\"Short text.\")] * 5\n result = estimate_token_budget(rows, [\"ru\"], batch_size=5)\n assert result[\"warning\"] is None\n assert result[\"batch_size_adjusted\"] == 5\n # endregion test_exact_fit_no_warning\n\n # region test_huge_rows_still_return_min_one [TYPE Function]\n # @BRIEF Even with massive rows, batch_size_adjusted is at least 1.\n def test_huge_rows_still_return_min_one(self):\n \"\"\"Massive rows that exceed context window still return batch_size_adjusted >= 1.\"\"\"\n huge_text = \"X\" * 500000 # ~227K tokens — exceeds context window\n rows = [_make_row(huge_text)] * 10\n result = estimate_token_budget(rows, [\"ru\", \"en\", \"fr\"], batch_size=10)\n assert result[\"batch_size_adjusted\"] >= 1\n # endregion test_huge_rows_still_return_min_one\n\n # region test_max_output_needed_bounds [TYPE Function]\n # @BRIEF max_output_needed stays within reasonable bounds.\n def test_max_output_needed_bounds(self):\n \"\"\"max_output_needed is between MIN_MAX_TOKENS and max_output_tokens.\"\"\"\n rows = [_make_row(\"Short text.\")] * 5\n result = estimate_token_budget(rows, [\"ru\", \"en\"], batch_size=5)\n assert 4096 <= result[\"max_output_needed\"] <= DEFAULT_MAX_OUTPUT_TOKENS\n # endregion test_max_output_needed_bounds\n\n # region test_single_row_never_reduced [TYPE Function]\n # @BRIEF Batch of 1 should never be reduced (batch_size_adjusted >= requested when requested=1).\n def test_single_row_never_reduced(self):\n \"\"\"Even a very long single row should still fit (batch_size_adjusted=1).\"\"\"\n long_text = \"X\" * 100000 # large but still fits context if alone\n rows = [_make_row(long_text)]\n result = estimate_token_budget(rows, [\"ru\", \"en\", \"fr\", \"de\"], batch_size=1)\n assert result[\"batch_size_adjusted\"] == 1\n # endregion test_single_row_never_reduced\n\n # region test_no_target_languages_defaults_to_en [TYPE Function]\n # @BRIEF When target_languages is empty, defaults to [\"en\"].\n def test_no_target_languages_defaults_to_en(self):\n \"\"\"Empty target_languages defaults to ['en'] without error.\"\"\"\n rows = [_make_row(\"Short text.\")] * 5\n result = estimate_token_budget(rows, [], batch_size=5)\n assert result[\"batch_size_adjusted\"] == 5\n assert result[\"estimated_output_tokens\"] > 0\n # endregion test_no_target_languages_defaults_to_en\n\n# endregion TestTokenBudget\n# #endregion TestTokenBudget\n" @@ -39905,8 +34951,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Insert successful translation records into target table via Superset SQL Lab." + "BRIEF": "Insert successful translation records into target table via Superset SQL Lab.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -39923,8 +34969,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Insert successful records from a single batch into the target table." + "BRIEF": "Insert successful records from a single batch into the target table.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -40060,8 +35106,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Batch processing for translation: classify rows (same-language/cache/preview/LLM)," + "BRIEF": "Batch processing for translation: classify rows (same-language/cache/preview/LLM),", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -40078,10 +35124,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Process a single batch: create record, classify rows, call LLM, persist.", "COMPLEXITY": 3, "POST": "TranslationBatch and TranslationRecord rows are created.", "PRE": "job and batch_rows are valid.", - "PURPOSE": "Process a single batch: create record, classify rows, call LLM, persist.", "SIDE_EFFECT": "LLM API call; DB writes." }, "relations": [], @@ -40099,8 +35145,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Adaptive batch sizing for LLM translation — splits source rows into variable-sized" + "BRIEF": "Adaptive batch sizing for LLM translation — splits source rows into variable-sized", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -40117,9 +35163,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve the LLM provider model name for token budget estimation.", "COMPLEXITY": 2, "POST": "Returns model name string or None if resolution fails.", - "PURPOSE": "Resolve the LLM provider model name for token budget estimation.", "SIDE_EFFECT": "DB query to LLM provider table." }, "relations": [], @@ -40137,10 +35183,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Split source rows into variable-sized batches based on content length.", "COMPLEXITY": 3, "POST": "Returns list of batches, each batch is a list of row dicts.", - "PRE": "source_rows is non-empty. job has valid config.", - "PURPOSE": "Split source rows into variable-sized batches based on content length." + "PRE": "source_rows is non-empty. job has valid config." }, "relations": [], "schema_warnings": [], @@ -40157,8 +35203,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Local language detection powered by lingua-language-detector (no LLM)." + "BRIEF": "Local language detection powered by lingua-language-detector (no LLM).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -40175,8 +35221,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Build a deterministic cache key from target languages list." + "BRIEF": "Build a deterministic cache key from target languages list.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -40193,8 +35239,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Build a LanguageDetector restricted to target + common source languages." + "BRIEF": "Build a LanguageDetector restricted to target + common source languages.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -40211,8 +35257,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get or create a cached detector for the given target languages." + "BRIEF": "Get or create a cached detector for the given target languages.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -40229,9 +35275,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Detect the language of a single text string. Returns BCP-47 code or \"und\".", "COMPLEXITY": 2, - "ERROR": "Does not raise — all exceptions caught internally and return \"und\".", - "PURPOSE": "Detect the language of a single text string. Returns BCP-47 code or \"und\"." + "ERROR": "Does not raise — all exceptions caught internally and return \"und\"." }, "relations": [], "schema_warnings": [], @@ -40248,8 +35294,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "When lingua returns \"und\", check if character-block dominance (e.g. Cyrillic)" + "BRIEF": "When lingua returns \"und\", check if character-block dominance (e.g. Cyrillic)", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -40266,8 +35312,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Detect language for multiple texts in batch. Builds detector if not provided." + "BRIEF": "Detect language for multiple texts in batch. Builds detector if not provided.", + "COMPLEXITY": 3 }, "relations": [ { @@ -40303,8 +35349,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "LLM interaction for batch translation: call provider with retry, handle truncation" + "BRIEF": "LLM interaction for batch translation: call provider with retry, handle truncation", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -40321,10 +35367,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Call LLM for a batch of rows requiring translation. Parse and persist results.", "COMPLEXITY": 3, "POST": "Returns dict with successful/failed/skipped counts.", "PRE": "job has valid provider_id. batch_rows is non-empty.", - "PURPOSE": "Call LLM for a batch of rows requiring translation. Parse and persist results.", "SIDE_EFFECT": "HTTP call to LLM provider; DB writes." }, "relations": [], @@ -40342,8 +35388,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Route to provider-specific LLM call implementation." + "BRIEF": "Route to provider-specific LLM call implementation.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -40360,8 +35406,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "HTTP client for OpenAI-compatible LLM API calls with rate-limit handling and", "COMPLEXITY": 3, - "PURPOSE": "HTTP client for OpenAI-compatible LLM API calls with rate-limit handling and", "RATIONALE": "Extracted 'openai' default provider type and 8192 default max_tokens into module-level constants DEFAULT_PROVIDER_TYPE and DEFAULT_MAX_TOKENS." }, "relations": [], @@ -40379,10 +35425,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Call OpenAI-compatible API with rate-limit handling and structured output fallback.", "COMPLEXITY": 3, "POST": "Returns (response text, finish_reason).", "PRE": "Valid API endpoint, key, model, and prompt.", - "PURPOSE": "Call OpenAI-compatible API with rate-limit handling and structured output fallback.", "SIDE_EFFECT": "HTTP POST to LLM API." }, "relations": [], @@ -40434,8 +35480,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Parse LLM JSON response into per-row translations with support for markdown code" + "BRIEF": "Parse LLM JSON response into per-row translations with support for markdown code", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -40486,8 +35532,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Full run lifecycle: prepare run, fetch source rows, filter new keys, orchestrate batches," + "BRIEF": "Full run lifecycle: prepare run, fetch source rows, filter new keys, orchestrate batches,", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -40504,8 +35550,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Fetch source rows for translation runs from Superset datasource or preview session." + "BRIEF": "Fetch source rows for translation runs from Superset datasource or preview session.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -40522,8 +35568,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Fetch source rows from Superset datasource or preview session fallback." + "BRIEF": "Fetch source rows from Superset datasource or preview session fallback.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -40557,8 +35603,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Text cleaning utilities for the translation pipeline — whitespace normalization" + "BRIEF": "Text cleaning utilities for the translation pipeline — whitespace normalization", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -40575,8 +35621,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Collapse multiple spaces, tabs, and newlines into single spaces; trim leading/trailing" + "BRIEF": "Collapse multiple spaces, tabs, and newlines into single spaces; trim leading/trailing", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -40593,10 +35639,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Truncate text to max_length characters, appending \"...\" if truncation occurs.", "COMPLEXITY": 2, "POST": "When len(text) <= max_length, returns text unchanged.", - "PRE": "text is a string. max_length >= 0.", - "PURPOSE": "Truncate text to max_length characters, appending \"...\" if truncation occurs." + "PRE": "text is a string. max_length >= 0." }, "relations": [], "schema_warnings": [], @@ -40613,8 +35659,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Combine whitespace normalization and truncation into one step." + "BRIEF": "Combine whitespace normalization and truncation into one step.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -40631,9 +35677,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Calculate safe batch_size and max_tokens for LLM translation calls based on actual content length and model context window limits.", "COMPLEXITY": 3, "LAYER": "Domain", - "PURPOSE": "Calculate safe batch_size and max_tokens for LLM translation calls based on actual content length and model context window limits.", "RATIONALE": "Added comment clarifying PROVIDER_DEFAULTS is a fallback — primary source should be LLMProvider API." }, "relations": [ @@ -40844,8 +35890,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Shared utility functions for the translation plugin — dictionary enforcement," + "BRIEF": "Shared utility functions for the translation plugin — dictionary enforcement,", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -40862,7 +35908,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Normalize a term for case-insensitive unique constraint lookup.", + "BRIEF": "Normalize a term for case-insensitive unique constraint lookup.", "RATIONALE": "NFC normalization is applied before lowercasing to ensure consistent" }, "relations": [], @@ -40880,7 +35926,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Detect the delimiter used in a CSV/TSV header line." + "BRIEF": "Detect the delimiter used in a CSV/TSV header line." }, "relations": [], "schema_warnings": [], @@ -40897,10 +35943,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Post-process LLM output: enforce dictionary term replacements.", "COMPLEXITY": 2, "POST": "per_lang_values may be mutated to include forced dictionary replacements.", "PRE": "dict_matches is a list of dict entries with source_term/target_term.", - "PURPOSE": "Post-process LLM output: enforce dictionary term replacements.", "SIDE_EFFECT": "Logs when enforcement is applied." }, "relations": [], @@ -40918,8 +35964,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Compute deterministic cache key for a source row." + "BRIEF": "Compute deterministic cache key for a source row.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -40936,8 +35982,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Look up a previously successful translation by source_hash." + "BRIEF": "Look up a previously successful translation by source_hash.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -40954,8 +36000,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Compute a stable hash from source_data dict for matching preview edits." + "BRIEF": "Compute a stable hash from source_data dict for matching preview edits.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -40972,10 +36018,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Estimate token count for a single source row including context fields.", "COMPLEXITY": 2, "POST": "Returns estimated token count >= 1.", - "PRE": "source_text is a string.", - "PURPOSE": "Estimate token count for a single source row including context fields." + "PRE": "source_text is a string." }, "relations": [], "schema_warnings": [], @@ -40992,11 +36038,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Business logic for terminology dictionary management, entry CRUD, CSV/TSV import with conflict detection, and per-batch filtering.", "COMPLEXITY": 4, "LAYER": "Domain", "POST": "Dictionary and entry mutations are persisted with conflict detection.", "PRE": "Database session is open and valid.", - "PURPOSE": "Business logic for terminology dictionary management, entry CRUD, CSV/TSV import with conflict detection, and per-batch filtering.", "RATIONALE": "C4 complexity because dictionary CRUD is stateful with referential integrity enforcement on deletion.", "REJECTED": "Monolithic DictionaryManager class — violated INV_7. Decomposed into DictionaryCRUD, DictionaryEntryCRUD, DictionaryImportExport, DictionaryBatchFilter, DictionaryCorrectionService.", "SIDE_EFFECT": "Creates, updates, deletes TerminologyDictionary and DictionaryEntry rows; enforces deletion guards." @@ -41041,10 +36087,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Facade for terminology dictionaries: delegates to DictionaryCRUD, DictionaryEntryCRUD, DictionaryImportExport, DictionaryBatchFilter, DictionaryCorrectionService.", "COMPLEXITY": 4, "POST": "Dictionary and entry mutations are persisted with conflict detection.", "PRE": "Database session is open and valid.", - "PURPOSE": "Facade for terminology dictionaries: delegates to DictionaryCRUD, DictionaryEntryCRUD, DictionaryImportExport, DictionaryBatchFilter, DictionaryCorrectionService.", "RATIONALE": "Thin facade preserves API compatibility after decomposition.", "REJECTED": "Removing the facade would break all upstream imports; delegation pattern preferred.", "SIDE_EFFECT": "Creates, updates, deletes TerminologyDictionary and DictionaryEntry rows; enforces deletion guards." @@ -41064,8 +36110,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Submit term corrections and bulk corrections to dictionaries with conflict detection." + "BRIEF": "Submit term corrections and bulk corrections to dictionaries with conflict detection.", + "COMPLEXITY": 3 }, "relations": [ { @@ -41095,8 +36141,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "CRUD operations for TerminologyDictionary records." + "BRIEF": "CRUD operations for TerminologyDictionary records.", + "COMPLEXITY": 3 }, "relations": [ { @@ -41132,8 +36178,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "CRUD operations for DictionaryEntry records." + "BRIEF": "CRUD operations for DictionaryEntry records.", + "COMPLEXITY": 3 }, "relations": [ { @@ -41163,8 +36209,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Scan batch texts for case-insensitive, word-boundary-aware matches against dictionaries." + "BRIEF": "Scan batch texts for case-insensitive, word-boundary-aware matches against dictionaries.", + "COMPLEXITY": 3 }, "relations": [ { @@ -41206,8 +36252,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Import/export entries as CSV/TSV with conflict detection, and migration of old entries." + "BRIEF": "Import/export entries as CSV/TSV with conflict detection, and migration of old entries.", + "COMPLEXITY": 3 }, "relations": [ { @@ -41237,8 +36283,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Validate that a language tag is a non-empty BCP-47 string." + "BRIEF": "Validate that a language tag is a non-empty BCP-47 string.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -41255,13 +36301,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Structured event logging for translation operations with terminal event invariant enforcement.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[run_id:Optional[str], job_id:str, event_type:str, payload:dict] -> Output[TranslationEvent]", "INVARIANT": "Exactly one run_started + exactly one terminal event per non-null run_id.", "LAYER": "Domain", "POST": "Events are persisted immutably; terminal events enforce exactly-one invariant per run.", "PRE": "Database session is open and valid.", - "PURPOSE": "Structured event logging for translation operations with terminal event invariant enforcement.", "RATIONALE": "Immutable event log with nullable run_id allows job-level events (no run context) and run-level events.", "REJECTED": "Separate event table per entity — single TranslationEvent table with nullable run_id is simpler for audit.", "SIDE_EFFECT": "Writes TranslationEvent rows; prunes expired events with MetricSnapshot before deletion." @@ -41294,8 +36340,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Process translation in batches: fetch source rows, call LLM, persist TranslationBatch" + "BRIEF": "Process translation in batches: fetch source rows, call LLM, persist TranslationBatch", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -41312,11 +36358,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Aggregate translation metrics from live TranslationEvent + MetricSnapshot for per-job reporting.", "COMPLEXITY": "4", "LAYER": "Domain", "POST": "Metrics are aggregated and returned; no side effects.", "PRE": "Database session is open.", - "PURPOSE": "Aggregate translation metrics from live TranslationEvent + MetricSnapshot for per-job reporting.", "RATIONALE": "Live events (<90 days) + MetricSnapshot (>=90 days) fusion for complete picture.", "REJECTED": "Querying all events for all time — would be slow; MetricSnapshot provides historical summary." }, @@ -41360,13 +36406,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Run lifecycle coordination: validate preconditions, dispatch executor, generate SQL, submit to Superset, record events.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[db, config_manager, current_user] -> Output[TranslationRun]", "INVARIANT": "State transitions: PENDING -> RUNNING -> COMPLETED|FAILED|CANCELLED. Exactly one terminal event per run.", "LAYER": "Domain", "POST": "Translation run is executed, SQL generated and submitted, events recorded.", "PRE": "Valid job and accepted preview (for manual runs). Superset and LLM are reachable.", - "PURPOSE": "Run lifecycle coordination: validate preconditions, dispatch executor, generate SQL, submit to Superset, record events.", "RATIONALE": "C5 orchestrator because preview, execution, event logging, and retry share state within single transaction boundary.", "REJECTED": "stdout-only logging — lacks structured payload integrity; cannot enforce terminal-event invariant.", "SIDE_EFFECT": "Creates TranslationRun; creates batches and records; generates SQL; submits to Superset; records events." @@ -41429,10 +36475,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Query translation run status, records, and history.", "COMPLEXITY": 4, "POST": "Returns structured run data with pagination.", "PRE": "Database session is available.", - "PURPOSE": "Query translation run status, records, and history.", "RATIONALE": "Language stats aggregation extracted to orchestrator_lang_stats; query methods to orchestrator_query." }, "relations": [ @@ -41493,8 +36539,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Cancel and retry-insert operations for translation runs.", "COMPLEXITY": 3, - "PURPOSE": "Cancel and retry-insert operations for translation runs.", "RATIONALE": "Extracted from orchestrator_retry.py for INV_7 compliance (module < 150 lines)." }, "relations": [ @@ -41537,8 +36583,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Config hash and dictionary snapshot hash utilities for translation planning." + "BRIEF": "Config hash and dictionary snapshot hash utilities for translation planning.", + "COMPLEXITY": 3 }, "relations": [ { @@ -41568,10 +36614,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Execute translation runs: dispatch executor, manage completion and failure paths.", "COMPLEXITY": 4, "POST": "Run is executed with SQL generated; events recorded.", "PRE": "Database session and config manager are available. Run is in valid state.", - "PURPOSE": "Execute translation runs: dispatch executor, manage completion and failure paths.", "SIDE_EFFECT": "LLM calls, DB writes, Superset API calls." }, "relations": [ @@ -41626,8 +36672,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Aggregate TranslationLanguage entries by language_code and update TranslationRunLanguageStats.", "COMPLEXITY": 3, - "PURPOSE": "Aggregate TranslationLanguage entries by language_code and update TranslationRunLanguageStats.", "SIDE_EFFECT": "DB writes on language_stats objects." }, "relations": [ @@ -41664,10 +36710,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Handle translation run planning: validation, config hashing, dictionary snapshot.", "COMPLEXITY": 4, "POST": "TranslationRun is planned with hashes and config snapshot; events recorded.", "PRE": "Database session and config manager are available.", - "PURPOSE": "Handle translation run planning: validation, config hashing, dictionary snapshot.", "RATIONALE": "Split from monolithic class: validation -> orchestrator_validation, hashing -> orchestrator_config.", "SIDE_EFFECT": "Creates TranslationRun; computes config and dict hashes; logs events." }, @@ -41711,8 +36757,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Query translation run records and history with pagination." + "BRIEF": "Query translation run records and history with pagination.", + "COMPLEXITY": 3 }, "relations": [ { @@ -41742,10 +36788,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Manage retry of translation run batches.", "COMPLEXITY": 4, "POST": "Retried batches are re-executed.", "PRE": "Database session and config manager are available.", - "PURPOSE": "Manage retry of translation run batches.", "RATIONALE": "Cancel and retry-insert extracted to orchestrator_cancel module for INV_7 compliance.", "SIDE_EFFECT": "DB writes, event log entries." }, @@ -41795,8 +36841,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Post-execution run completion handlers: cancelled, success-with-insert, and failure paths." + "BRIEF": "Post-execution run completion handlers: cancelled, success-with-insert, and failure paths.", + "COMPLEXITY": 3 }, "relations": [ { @@ -41844,10 +36890,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Coordinate translation run execution, retry, and cancellation via delegated components.", "COMPLEXITY": 4, "POST": "Run is executed; events recorded.", "PRE": "Database session and config manager are available. Run is in valid state.", - "PURPOSE": "Coordinate translation run execution, retry, and cancellation via delegated components.", "SIDE_EFFECT": "LLM calls, DB writes, Superset API calls." }, "relations": [ @@ -41884,10 +36930,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Generate INSERT SQL from translation records and submit to Superset SQL Lab.", "COMPLEXITY": 4, "POST": "SQL is generated and submitted to Superset; returns execution result.", "PRE": "Job has target table configured. Run has successful records.", - "PURPOSE": "Generate INSERT SQL from translation records and submit to Superset SQL Lab.", "RATIONALE": "Row/column building extracted to orchestrator_sql_rows module for INV_7 compliance.", "SIDE_EFFECT": "Superset API call; event log entries." }, @@ -41931,8 +36977,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Column and row building utilities for SQL insertion in translate plugin." + "BRIEF": "Column and row building utilities for SQL insertion in translate plugin.", + "COMPLEXITY": 3 }, "relations": [ { @@ -41962,8 +37008,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Build list of target columns for SQL INSERT from job configuration." + "BRIEF": "Build list of target columns for SQL INSERT from job configuration.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -41980,8 +37026,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Build list of context keys for SQL row data." + "BRIEF": "Build list of context keys for SQL row data.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -41998,8 +37044,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Build row data for SQL INSERT with per-language expansion.", "COMPLEXITY": 2, - "PURPOSE": "Build row data for SQL INSERT with per-language expansion.", "SIDE_EFFECT": "Reads translation record language entries." }, "relations": [], @@ -42017,10 +37063,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Validate preconditions before starting a translation run.", "COMPLEXITY": 3, "POST": "Raises ValueError if any precondition fails.", - "PRE": "Job exists and db session is valid.", - "PURPOSE": "Validate preconditions before starting a translation run." + "PRE": "Job exists and db session is valid." }, "relations": [ { @@ -42044,9 +37090,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "TranslatePlugin skeleton for cross-dialect SQL and dashboard translation.", "COMPLEXITY": 2, "LAYER": "Domain", - "PURPOSE": "TranslatePlugin skeleton for cross-dialect SQL and dashboard translation.", "RATIONALE": "Separate plugin avoids bloating LLMAnalysisPlugin beyond fractal limit (<400 lines).", "REJECTED": "Extending LLMAnalysisPlugin would conflate two distinct feature domains." }, @@ -42072,8 +37118,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Default LLM prompt template for full execution (batch translation)." + "BRIEF": "Default LLM prompt template for full execution (batch translation).", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -42090,8 +37136,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Default LLM prompt template for preview (sample translation)." + "BRIEF": "Default LLM prompt template for preview (sample translation).", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -42108,10 +37154,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Fetch sample data from Superset and call LLM provider for preview.", "COMPLEXITY": 4, "POST": "Sample rows fetched, LLM called.", "PRE": "Database session, config manager, and Superset client are available.", - "PURPOSE": "Fetch sample data from Superset and call LLM provider for preview.", "RATIONALE": "LLM response parsing and hash utilities extracted to preview_response_parser module for INV_7 compliance.", "SIDE_EFFECT": "Fetches data from Superset; makes HTTP calls to LLM provider." }, @@ -42155,8 +37201,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Build LLM prompts for preview sessions including dictionary glossary and row context.", "COMPLEXITY": 3, - "PURPOSE": "Build LLM prompts for preview sessions including dictionary glossary and row context.", "RATIONALE": "Token estimation and budget helpers extracted to preview_prompt_helpers module for INV_7 compliance." }, "relations": [ @@ -42193,8 +37239,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Token estimation metadata and budget helpers for preview prompt building." + "BRIEF": "Token estimation metadata and budget helpers for preview prompt building.", + "COMPLEXITY": 2 }, "relations": [ { @@ -42224,9 +37270,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Check token budget and optionally truncate source rows for preview.", "COMPLEXITY": 2, - "POST": "Returns adjusted source_rows, actual_row_count, and token_budget dict.", - "PURPOSE": "Check token budget and optionally truncate source rows for preview." + "POST": "Returns adjusted source_rows, actual_row_count, and token_budget dict." }, "relations": [], "schema_warnings": [], @@ -42243,9 +37289,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Compute token estimation metadata for prompt builder return dict.", "COMPLEXITY": 1, - "POST": "Returns prompt, row_meta, target_languages, cost estimates, and cost_warning.", - "PURPOSE": "Compute token estimation metadata for prompt builder return dict." + "POST": "Returns prompt, row_meta, target_languages, cost estimates, and cost_warning." }, "relations": [], "schema_warnings": [], @@ -42262,8 +37308,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Parse LLM JSON responses and Superset data; compute config/dict hashes for preview." + "BRIEF": "Parse LLM JSON responses and Superset data; compute config/dict hashes for preview.", + "COMPLEXITY": 3 }, "relations": [ { @@ -42293,10 +37339,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Parse LLM JSON response into structured translations dict with per-language support.", "COMPLEXITY": 3, "POST": "Returns dict mapping row_id -> {detected_source_language, lang_code: translation, ...}.", - "PRE": "response_text is a valid JSON string (possibly wrapped in markdown code block).", - "PURPOSE": "Parse LLM JSON response into structured translations dict with per-language support." + "PRE": "response_text is a valid JSON string (possibly wrapped in markdown code block)." }, "relations": [], "schema_warnings": [], @@ -42313,8 +37359,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Extract data rows from Superset chart data API response." + "BRIEF": "Extract data rows from Superset chart data API response.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -42331,8 +37377,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Compute a deterministic hash of job configuration for snapshot comparison." + "BRIEF": "Compute a deterministic hash of job configuration for snapshot comparison.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -42349,8 +37395,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Compute a hash of dictionary state for snapshot comparison." + "BRIEF": "Compute a hash of dictionary state for snapshot comparison.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -42367,8 +37413,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Manage preview session row-level actions: approve/edit/reject rows.", "COMPLEXITY": 3, - "PURPOSE": "Manage preview session row-level actions: approve/edit/reject rows.", "RATIONALE": "Session accept/get and serialization extracted to preview_session_ops module for INV_7 compliance." }, "relations": [ @@ -42411,8 +37457,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Preview session lifecycle operations: accept and query preview sessions." + "BRIEF": "Preview session lifecycle operations: accept and query preview sessions.", + "COMPLEXITY": 3 }, "relations": [ { @@ -42448,8 +37494,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Get the latest preview session for a job with its records." + "BRIEF": "Get the latest preview session for a job with its records.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -42466,8 +37512,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Serialization and action helpers for preview sessions: record serialization and per-row approve/reject/edit actions.", "COMPLEXITY": 3, - "PURPOSE": "Serialization and action helpers for preview sessions: record serialization and per-row approve/reject/edit actions.", "RATIONALE": "Extracted from preview_session_ops.py for INV_7 compliance (module < 150 lines)." }, "relations": [ @@ -42498,8 +37544,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Serialize a TranslationPreviewRecord to a response dict." + "BRIEF": "Serialize a TranslationPreviewRecord to a response dict.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -42516,8 +37562,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Apply approve/reject/edit action to a TranslationPreviewLanguage entry." + "BRIEF": "Apply approve/reject/edit action to a TranslationPreviewLanguage entry.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -42534,8 +37580,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Apply approve/reject/edit action to a TranslationPreviewRecord and its language entries." + "BRIEF": "Apply approve/reject/edit action to a TranslationPreviewRecord and its language entries.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -42552,8 +37598,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Estimate token counts and costs for LLM translation operations.", "COMPLEXITY": 2, - "PURPOSE": "Estimate token counts and costs for LLM translation operations.", "RATIONALE": "Token estimation uses a heuristic (chars/token ratio) since exact tokenization depends on the LLM model.", "REJECTED": "Using an external tokenizer library would introduce a heavy dependency for estimation only." }, @@ -42572,9 +37618,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Pure-function prompt builder that enhances dictionary entries with context annotations.", "COMPLEXITY": 2, "LAYER": "Domain", - "PURPOSE": "Pure-function prompt builder that enhances dictionary entries with context annotations.", "RATIONALE": "Pure functions only — no I/O, no DB access. Separated from executor for testability.", "REJECTED": "Embedding context inline in the executor would make it untestable without mocking DB." }, @@ -42600,11 +37646,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Manage TranslationSchedule rows and register them with core SchedulerService.", "COMPLEXITY": 4, "LAYER": "Domain", "POST": "TranslationSchedule CRUD persisted; APScheduler jobs registered/updated/removed.", "PRE": "Database session and SchedulerService are available.", - "PURPOSE": "Manage TranslationSchedule rows and register them with core SchedulerService.", "RATIONALE": "Uses existing SchedulerService (APScheduler) to avoid creating a second scheduler instance.", "REJECTED": "Polling-based approach — event-driven APScheduler is more precise.", "SIDE_EFFECT": "Registers APScheduler jobs; runs translations on trigger; creates events." @@ -42649,10 +37695,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "APScheduler job handler — runs scheduled translation with concurrency check and new-key-only fallback.", "COMPLEXITY": "4", "POST": "Translation run created and executed if no concurrent run exists.", "PRE": "schedule_id is valid.", - "PURPOSE": "APScheduler job handler — runs scheduled translation with concurrency check and new-key-only fallback.", "RATIONALE": "New-key-only mode compares keys against most recent succeeded run; baseline_expired fallback does full.", "SIDE_EFFECT": "DB writes; LLM calls; Superset API calls." }, @@ -42671,11 +37717,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Service layer for translation job CRUD with datasource column validation and database dialect detection.", "COMPLEXITY": 4, "LAYER": "Domain", "POST": "Translation jobs are created/updated/deleted with column validation and dialect caching.", "PRE": "Database session and config manager are available.", - "PURPOSE": "Service layer for translation job CRUD with datasource column validation and database dialect detection.", "RATIONALE": "Snapshot isolation — in-progress runs use config snapshot; config edits affect future runs only.", "REJECTED": "Monolithic service.py — violated INV_7. Decomposed into service_datasource, service_inline_correction, service_bulk_replace, service_utils.", "SIDE_EFFECT": "Queries Superset for column metadata and database dialect at save time." @@ -42714,8 +37760,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Service for bulk find-and-replace operations on translated values." + "BRIEF": "Service for bulk find-and-replace operations on translated values.", + "COMPLEXITY": 3 }, "relations": [ { @@ -42751,11 +37797,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Fetch datasource column metadata and database dialect from Superset.", "COMPLEXITY": 4, "LAYER": "Domain", "POST": "Datasource metadata is fetched with column details and normalized dialect.", - "PRE": "Database session and config manager are available.", - "PURPOSE": "Fetch datasource column metadata and database dialect from Superset." + "PRE": "Database session and config manager are available." }, "relations": [ { @@ -42785,8 +37831,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Extract normalized dialect string from a Superset database record." + "BRIEF": "Extract normalized dialect string from a Superset database record.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -42803,8 +37849,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Fetch datasource columns and database dialect from Superset." + "BRIEF": "Fetch datasource columns and database dialect from Superset.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -42821,8 +37867,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Identify virtual (calculated) columns from column metadata." + "BRIEF": "Identify virtual (calculated) columns from column metadata.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -42839,10 +37885,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Service for inline editing translated values and submitting corrections to dictionaries.", "COMPLEXITY": 4, "POST": "Inline edits applied with optional dictionary submission.", "PRE": "Database session is available.", - "PURPOSE": "Service for inline editing translated values and submitting corrections to dictionaries.", "SIDE_EFFECT": "Modifies TranslationLanguage entries; optionally creates DictionaryEntry rows." }, "relations": [ @@ -42885,8 +37931,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Проверка схемы целевой таблицы: запрос колонок через Superset SQL Lab," + "BRIEF": "Проверка схемы целевой таблицы: запрос колонок через Superset SQL Lab,", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -42903,8 +37949,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Собирает список ожидаемых колонок по конфигурации column mapping." + "BRIEF": "Собирает список ожидаемых колонок по конфигурации column mapping.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -42921,8 +37967,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Извлекает список колонок таблицы из data-строк результата SQL Lab." + "BRIEF": "Извлекает список колонок таблицы из data-строк результата SQL Lab.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -42939,8 +37985,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Извлекает data-строки из ответа Superset SQL Lab." + "BRIEF": "Извлекает data-строки из ответа Superset SQL Lab.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -42957,10 +38003,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Основная функция: проверяет схему целевой таблицы через Superset SQL Lab.", "COMPLEXITY": 4, "POST": "Возвращает TargetSchemaValidationResponse с diff-анализом.", "PRE": "Superset окружение и target_database_id валидны.", - "PURPOSE": "Основная функция: проверяет схему целевой таблицы через Superset SQL Lab.", "SIDE_EFFECT": "Выполняет SQL-запрос к information_schema через Superset SQL Lab API." }, "relations": [ @@ -43003,8 +38049,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Utility functions for the translate service layer." + "BRIEF": "Utility functions for the translate service layer.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43021,7 +38067,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Extract database dialect from Superset backend URI." + "BRIEF": "Extract database dialect from Superset backend URI." }, "relations": [], "schema_warnings": [], @@ -43038,7 +38084,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Convert a TranslationJob ORM model to a TranslateJobResponse schema with dictionary_ids." + "BRIEF": "Convert a TranslationJob ORM model to a TranslateJobResponse schema with dictionary_ids." }, "relations": [], "schema_warnings": [], @@ -43055,11 +38101,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Dialect-aware safe SQL generation for INSERT/UPSERT operations.", "COMPLEXITY": 3, "LAYER": "Domain", "POST": "Returns safe SQL strings for the target dialect.", "PRE": "Job has target_schema and target_table configured. Dialect is one of supported SUPPORTED_DIALECTS.", - "PURPOSE": "Dialect-aware safe SQL generation for INSERT/UPSERT operations.", "RATIONALE": "Dialect-aware SQL uses ON CONFLICT for PostgreSQL; plain INSERT for ClickHouse with documented limitations.", "REJECTED": "ORM-based insert bypasses Superset's SQL Lab audit trail.", "SIDE_EFFECT": "None — pure code generation." @@ -43092,8 +38138,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Detect Unix timestamp strings (seconds or millis) and convert to 'YYYY-MM-DD' for Date columns." + "BRIEF": "Detect Unix timestamp strings (seconds or millis) and convert to 'YYYY-MM-DD' for Date columns.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -43110,10 +38156,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Quote an identifier per dialect rules. PostgreSQL uses double quotes; ClickHouse uses backticks.", "COMPLEXITY": 4, "POST": "Returns safely quoted identifier.", - "PRE": "identifier is a non-empty string.", - "PURPOSE": "Quote an identifier per dialect rules. PostgreSQL uses double quotes; ClickHouse uses backticks." + "PRE": "identifier is a non-empty string." }, "relations": [], "schema_warnings": [], @@ -43130,8 +38176,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Encode a Python value into a SQL-safe literal for INSERT VALUES, with ClickHouse timestamp normalization." + "BRIEF": "Encode a Python value into a SQL-safe literal for INSERT VALUES, with ClickHouse timestamp normalization.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -43148,8 +38194,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Build a VALUES clause for multiple rows with per-column value encoding and dialect-aware quoting." + "BRIEF": "Build a VALUES clause for multiple rows with per-column value encoding and dialect-aware quoting.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -43166,8 +38212,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Generate a dialect-aware plain INSERT SQL statement for the given table, columns, and rows." + "BRIEF": "Generate a dialect-aware plain INSERT SQL statement for the given table, columns, and rows.", + "COMPLEXITY": 3 }, "relations": [ { @@ -43197,10 +38243,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Generate PostgreSQL dialect UPSERT SQL with ON CONFLICT DO UPDATE.", "COMPLEXITY": "4", "POST": "Returns UPSERT SQL string or raises ValueError.", - "PRE": "dialect is postgresql-compatible. target_table, columns, key_columns are non-empty.", - "PURPOSE": "Generate PostgreSQL dialect UPSERT SQL with ON CONFLICT DO UPDATE." + "PRE": "dialect is postgresql-compatible. target_table, columns, key_columns are non-empty." }, "relations": [], "schema_warnings": [], @@ -43217,11 +38263,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Submit SQL to Superset SQL Lab API and poll execution status.", "COMPLEXITY": 4, "LAYER": "Infrastructure", "POST": "SQL is submitted to Superset SQL Lab; execution reference is returned.", "PRE": "Valid Superset environment configuration and authenticated client.", - "PURPOSE": "Submit SQL to Superset SQL Lab API and poll execution status.", "RATIONALE": "Direct SQL Lab API submission provides audit trail and execution monitoring within Superset.", "REJECTED": "Direct database connection bypass — would skip Superset's SQL Lab audit and RBAC.", "SIDE_EFFECT": "Makes HTTP calls to Superset /api/v1/sqllab/execute/; polls status." @@ -43254,38 +38300,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "API schema package root." + "BRIEF": "API schema package root." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region SchemasPackage [TYPE Package] [SEMANTICS schema, package, init]\n# @BRIEF API schema package root.\n# #endregion SchemasPackage\n" @@ -43299,7 +38317,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure policy schema accepts structured custom channel objects with type/target fields." + "BRIEF": "Ensure policy schema accepts structured custom channel objects with type/target fields." }, "relations": [ { @@ -43323,7 +38341,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure legacy list[str] custom channel payload is rejected by typed channel contract." + "BRIEF": "Ensure legacy list[str] custom channel payload is rejected by typed channel contract." }, "relations": [ { @@ -43347,7 +38365,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify strict grouped regex only accepts PASS/WARN/FAIL/UNKNOWN exact statuses." + "BRIEF": "Verify strict grouped regex only accepts PASS/WARN/FAIL/UNKNOWN exact statuses." }, "relations": [ { @@ -43371,11 +38389,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Pydantic schemas for authentication requests and responses.", "COMPLEXITY": 5, "DATA_CONTRACT": "AuthPayload -> AuthSchema", "INVARIANT": "Sensitive fields like password must not be included in response schemas.", - "LAYER": "API", - "PURPOSE": "Pydantic schemas for authentication requests and responses." + "LAYER": "API" }, "relations": [ { @@ -43399,8 +38417,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Represents a JWT access token response." + "BRIEF": "Represents a JWT access token response.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43417,8 +38435,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Represents the data encoded in a JWT token." + "BRIEF": "Represents the data encoded in a JWT token.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43435,8 +38453,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Represents a permission in API responses." + "BRIEF": "Represents a permission in API responses.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43453,7 +38471,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents a role in API responses." + "BRIEF": "Represents a role in API responses." }, "relations": [], "schema_warnings": [], @@ -43470,7 +38488,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for creating a new role." + "BRIEF": "Schema for creating a new role." }, "relations": [], "schema_warnings": [], @@ -43487,7 +38505,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for updating an existing role." + "BRIEF": "Schema for updating an existing role." }, "relations": [], "schema_warnings": [], @@ -43504,7 +38522,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents an AD Group to Role mapping in API responses." + "BRIEF": "Represents an AD Group to Role mapping in API responses." }, "relations": [], "schema_warnings": [], @@ -43521,7 +38539,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for creating an AD Group mapping." + "BRIEF": "Schema for creating an AD Group mapping." }, "relations": [], "schema_warnings": [], @@ -43538,7 +38556,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Base schema for user data." + "BRIEF": "Base schema for user data." }, "relations": [], "schema_warnings": [], @@ -43555,7 +38573,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for creating a new user." + "BRIEF": "Schema for creating a new user." }, "relations": [], "schema_warnings": [], @@ -43572,7 +38590,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for updating an existing user." + "BRIEF": "Schema for updating an existing user." }, "relations": [], "schema_warnings": [], @@ -43589,7 +38607,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for user data in API responses." + "BRIEF": "Schema for user data in API responses." }, "relations": [], "schema_warnings": [], @@ -43606,9 +38624,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Thin facade re-exporting all dataset review API schemas from decomposed sub-modules.", "COMPLEXITY": 2, "LAYER": "API", - "PURPOSE": "Thin facade re-exporting all dataset review API schemas from decomposed sub-modules.", "RATIONALE": "Original 419-line file exceeded INV_7 (400-line module limit). Decomposed into DTO and composite sub-modules.", "REJECTED": "Keeping all schemas in a single file because it exceeded the fractal limit." }, @@ -43627,9 +38645,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Composite Pydantic DTOs for clarification, preview, run context, and session summary/detail responses.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "Composite Pydantic DTOs for clarification, preview, run context, and session summary/detail responses." + "LAYER": "API" }, "relations": [ { @@ -43653,8 +38671,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Clarification option DTO." + "BRIEF": "Clarification option DTO.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43671,8 +38689,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Clarification answer DTO with feedback." + "BRIEF": "Clarification answer DTO with feedback.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43689,8 +38707,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Clarification question DTO with nested options and answer." + "BRIEF": "Clarification question DTO with nested options and answer.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -43707,8 +38725,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Clarification session DTO with nested questions." + "BRIEF": "Clarification session DTO with nested questions.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -43725,8 +38743,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Compiled preview DTO with fingerprint and session version." + "BRIEF": "Compiled preview DTO with fingerprint and session version.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43743,8 +38761,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Run context DTO with launch audit data and session version." + "BRIEF": "Run context DTO with launch audit data and session version.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43761,8 +38779,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Lightweight session summary DTO for list responses." + "BRIEF": "Lightweight session summary DTO for list responses.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -43779,8 +38797,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Full session detail DTO with all nested aggregates for detail views." + "BRIEF": "Full session detail DTO with all nested aggregates for detail views.", + "COMPLEXITY": 2 }, "relations": [ { @@ -43804,9 +38822,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Pydantic DTOs for session, profile, findings, collaborators, and semantic field API payloads.", "COMPLEXITY": 2, - "LAYER": "API", - "PURPOSE": "Pydantic DTOs for session, profile, findings, collaborators, and semantic field API payloads." + "LAYER": "API" }, "relations": [ { @@ -43830,8 +38848,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Collaborator DTO for session access control." + "BRIEF": "Collaborator DTO for session access control.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43848,8 +38866,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Dataset profile DTO with business summary and confidence metadata." + "BRIEF": "Dataset profile DTO with business summary and confidence metadata.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43866,8 +38884,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Validation finding DTO with resolution tracking." + "BRIEF": "Validation finding DTO with resolution tracking.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43884,8 +38902,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Semantic source DTO with trust level and status." + "BRIEF": "Semantic source DTO with trust level and status.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43902,8 +38920,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Semantic candidate DTO with match type and confidence score." + "BRIEF": "Semantic candidate DTO with match type and confidence score.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43920,8 +38938,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Semantic field entry DTO with nested candidates and session version." + "BRIEF": "Semantic field entry DTO with nested candidates and session version.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -43938,8 +38956,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Imported filter DTO with confidence and recovery status." + "BRIEF": "Imported filter DTO with confidence and recovery status.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43956,8 +38974,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Template variable DTO with mapping status." + "BRIEF": "Template variable DTO with mapping status.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43974,8 +38992,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Execution mapping DTO with approval state and session version." + "BRIEF": "Execution mapping DTO with approval state and session version.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -43992,9 +39010,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Pydantic schemas for dashboard health summary.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Pydantic schemas for dashboard health summary." + "LAYER": "Domain" }, "relations": [ { @@ -44018,7 +39036,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Represents the latest health status of a single dashboard." + "BRIEF": "Represents the latest health status of a single dashboard." }, "relations": [], "schema_warnings": [], @@ -44035,7 +39053,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Aggregated health summary for all dashboards." + "BRIEF": "Aggregated health summary for all dashboards." }, "relations": [], "schema_warnings": [], @@ -44052,11 +39070,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Defines API schemas for profile preference persistence, security read-only snapshot, and Superset account lookup.", "COMPLEXITY": 5, "DATA_CONTRACT": "ProfilePayload -> ProfileSchema", "INVARIANT": "Schema shapes stay stable for profile UI states and backend preference contracts.", - "LAYER": "API", - "PURPOSE": "Defines API schemas for profile preference persistence, security read-only snapshot, and Superset account lookup." + "LAYER": "API" }, "relations": [ { @@ -44080,8 +39098,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Represents one permission badge state for profile read-only security view." + "BRIEF": "Represents one permission badge state for profile read-only security view.", + "COMPLEXITY": 3 }, "relations": [ { @@ -44105,8 +39123,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Read-only security and access snapshot for current user." + "BRIEF": "Read-only security and access snapshot for current user.", + "COMPLEXITY": 3 }, "relations": [ { @@ -44130,8 +39148,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Represents persisted profile preference for a single authenticated user." + "BRIEF": "Represents persisted profile preference for a single authenticated user.", + "COMPLEXITY": 3 }, "relations": [ { @@ -44155,8 +39173,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Request payload for updating current user's profile settings." + "BRIEF": "Request payload for updating current user's profile settings.", + "COMPLEXITY": 3 }, "relations": [ { @@ -44180,8 +39198,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Response envelope for profile preference read/update endpoints." + "BRIEF": "Response envelope for profile preference read/update endpoints.", + "COMPLEXITY": 3 }, "relations": [ { @@ -44205,8 +39223,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Query contract for Superset account lookup by selected environment." + "BRIEF": "Query contract for Superset account lookup by selected environment.", + "COMPLEXITY": 3 }, "relations": [ { @@ -44230,8 +39248,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Canonical account candidate projected from Superset users payload." + "BRIEF": "Canonical account candidate projected from Superset users payload.", + "COMPLEXITY": 3 }, "relations": [ { @@ -44255,8 +39273,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Response envelope for Superset account lookup (success or degraded mode)." + "BRIEF": "Response envelope for Superset account lookup (success or degraded mode).", + "COMPLEXITY": 3 }, "relations": [ { @@ -44280,9 +39298,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Pydantic schemas for application settings and automation policies.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Pydantic schemas for application settings and automation policies." + "LAYER": "Domain" }, "relations": [ { @@ -44306,7 +39324,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Structured notification channel definition for policy-level custom routing." + "BRIEF": "Structured notification channel definition for policy-level custom routing." }, "relations": [], "schema_warnings": [], @@ -44323,7 +39341,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Base schema for validation policy data." + "BRIEF": "Base schema for validation policy data." }, "relations": [], "schema_warnings": [], @@ -44340,7 +39358,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for creating a new validation policy." + "BRIEF": "Schema for creating a new validation policy." }, "relations": [], "schema_warnings": [], @@ -44357,7 +39375,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for updating an existing validation policy." + "BRIEF": "Schema for updating an existing validation policy." }, "relations": [], "schema_warnings": [], @@ -44374,7 +39392,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for validation policy response data." + "BRIEF": "Schema for validation policy response data." }, "relations": [], "schema_warnings": [], @@ -44391,8 +39409,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response schema for a translation schedule item with joined job name." + "BRIEF": "Response schema for a translation schedule item with joined job name.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -44409,9 +39427,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Pydantic v2 schemas for translation API request/response serialization.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Pydantic v2 schemas for translation API request/response serialization." + "LAYER": "API" }, "relations": [ { @@ -44435,7 +39453,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for creating a new translation job." + "BRIEF": "Schema for creating a new translation job." }, "relations": [], "schema_warnings": [], @@ -44452,7 +39470,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for updating an existing translation job." + "BRIEF": "Schema for updating an existing translation job." }, "relations": [], "schema_warnings": [], @@ -44469,7 +39487,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for translation job API responses." + "BRIEF": "Schema for translation job API responses." }, "relations": [], "schema_warnings": [], @@ -44486,7 +39504,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for datasource column metadata response." + "BRIEF": "Schema for datasource column metadata response." }, "relations": [], "schema_warnings": [], @@ -44503,7 +39521,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for datasource columns endpoint response." + "BRIEF": "Schema for datasource columns endpoint response." }, "relations": [], "schema_warnings": [], @@ -44520,7 +39538,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for duplicate job response." + "BRIEF": "Schema for duplicate job response." }, "relations": [], "schema_warnings": [], @@ -44537,7 +39555,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for creating a new terminology dictionary." + "BRIEF": "Schema for creating a new terminology dictionary." }, "relations": [], "schema_warnings": [], @@ -44554,7 +39572,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for importing entries into a terminology dictionary." + "BRIEF": "Schema for importing entries into a terminology dictionary." }, "relations": [], "schema_warnings": [], @@ -44571,7 +39589,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for terminology dictionary API responses." + "BRIEF": "Schema for terminology dictionary API responses." }, "relations": [], "schema_warnings": [], @@ -44588,7 +39606,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for adding/editing a dictionary entry with language pair support." + "BRIEF": "Schema for adding/editing a dictionary entry with language pair support." }, "relations": [], "schema_warnings": [], @@ -44605,7 +39623,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for dictionary entry API responses." + "BRIEF": "Schema for dictionary entry API responses." }, "relations": [], "schema_warnings": [], @@ -44622,7 +39640,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for dictionary import result." + "BRIEF": "Schema for dictionary import result." }, "relations": [], "schema_warnings": [], @@ -44639,7 +39657,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for triggering a translation preview." + "BRIEF": "Schema for triggering a translation preview." }, "relations": [], "schema_warnings": [], @@ -44656,7 +39674,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for approving/editing/rejecting a preview row." + "BRIEF": "Schema for approving/editing/rejecting a preview row." }, "relations": [], "schema_warnings": [], @@ -44673,7 +39691,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for preview accept response." + "BRIEF": "Schema for preview accept response." }, "relations": [], "schema_warnings": [], @@ -44690,7 +39708,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for cost estimation in preview response." + "BRIEF": "Schema for cost estimation in preview response." }, "relations": [], "schema_warnings": [], @@ -44707,7 +39725,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for submitting a term correction in a translation preview." + "BRIEF": "Schema for submitting a term correction in a translation preview." }, "relations": [], "schema_warnings": [], @@ -44724,7 +39742,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for submitting multiple term corrections atomically." + "BRIEF": "Schema for submitting multiple term corrections atomically." }, "relations": [], "schema_warnings": [], @@ -44741,7 +39759,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for reporting conflicts in correction submission." + "BRIEF": "Schema for reporting conflicts in correction submission." }, "relations": [], "schema_warnings": [], @@ -44758,7 +39776,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for correction submission response." + "BRIEF": "Schema for correction submission response." }, "relations": [], "schema_warnings": [], @@ -44775,7 +39793,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for schedule API responses." + "BRIEF": "Schema for schedule API responses." }, "relations": [], "schema_warnings": [], @@ -44792,7 +39810,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for next execution preview." + "BRIEF": "Schema for next execution preview." }, "relations": [], "schema_warnings": [], @@ -44809,7 +39827,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for translation run API responses." + "BRIEF": "Schema for translation run API responses." }, "relations": [], "schema_warnings": [], @@ -44826,7 +39844,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for detailed run response including records, events, and config snapshot." + "BRIEF": "Schema for detailed run response including records, events, and config snapshot." }, "relations": [], "schema_warnings": [], @@ -44843,7 +39861,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for filtering run history." + "BRIEF": "Schema for filtering run history." }, "relations": [], "schema_warnings": [], @@ -44860,7 +39878,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for paginated run list response." + "BRIEF": "Schema for paginated run list response." }, "relations": [], "schema_warnings": [], @@ -44877,7 +39895,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for aggregated per-job metrics." + "BRIEF": "Schema for aggregated per-job metrics." }, "relations": [], "schema_warnings": [], @@ -44894,8 +39912,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for per-language preview data in API responses." + "BRIEF": "Schema for per-language preview data in API responses.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -44912,7 +39930,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "A single row in a translation preview showing original and translated content side by side." + "BRIEF": "A single row in a translation preview showing original and translated content side by side." }, "relations": [], "schema_warnings": [], @@ -44929,7 +39947,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for translation preview session API responses." + "BRIEF": "Schema for translation preview session API responses." }, "relations": [], "schema_warnings": [], @@ -44946,7 +39964,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for translation batch API responses." + "BRIEF": "Schema for translation batch API responses." }, "relations": [], "schema_warnings": [], @@ -44963,7 +39981,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Schema for translation metrics API responses." + "BRIEF": "Schema for translation metrics API responses." }, "relations": [], "schema_warnings": [], @@ -44980,8 +39998,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for per-language translation data in API responses." + "BRIEF": "Schema for per-language translation data in API responses.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -44998,8 +40016,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for per-language statistics in run API responses." + "BRIEF": "Schema for per-language statistics in run API responses.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45016,8 +40034,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for manually overriding the detected source language of a translation." + "BRIEF": "Schema for manually overriding the detected source language of a translation.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45034,8 +40052,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for bulk find-and-replace within translations for a target language." + "BRIEF": "Schema for bulk find-and-replace within translations for a target language.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45052,8 +40070,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for inline editing a translated value on a completed run result." + "BRIEF": "Schema for inline editing a translated value on a completed run result.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45070,8 +40088,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "A single item in a bulk replace preview list." + "BRIEF": "A single item in a bulk replace preview list.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45088,8 +40106,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Response for bulk find-and-replace operation." + "BRIEF": "Response for bulk find-and-replace operation.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45106,8 +40124,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for submitting an inline correction for a specific translated record." + "BRIEF": "Schema for submitting an inline correction for a specific translated record.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45124,8 +40142,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for requesting target table schema validation." + "BRIEF": "Schema for requesting target table schema validation.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45142,8 +40160,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for a single column in the schema validation response." + "BRIEF": "Schema for a single column in the schema validation response.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45160,8 +40178,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for target table schema validation response." + "BRIEF": "Schema for target table schema validation response.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45178,9 +40196,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Pydantic v2 schemas for validation task management and run history API serialization.", "COMPLEXITY": 3, - "LAYER": "API", - "PURPOSE": "Pydantic v2 schemas for validation task management and run history API serialization." + "LAYER": "API" }, "relations": [ { @@ -45204,8 +40222,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for creating a new validation task (policy)." + "BRIEF": "Schema for creating a new validation task (policy).", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45222,8 +40240,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for updating an existing validation task (policy)." + "BRIEF": "Schema for updating an existing validation task (policy).", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45240,8 +40258,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for validation task API responses — includes last run status from join." + "BRIEF": "Schema for validation task API responses — includes last run status from join.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45258,8 +40276,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for paginated task list response." + "BRIEF": "Schema for paginated task list response.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45276,8 +40294,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for validation run history listing." + "BRIEF": "Schema for validation run history listing.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45294,8 +40312,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for paginated run list response." + "BRIEF": "Schema for paginated run list response.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45312,8 +40330,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for full run detail including parsed issues and raw response." + "BRIEF": "Schema for full run detail including parsed issues and raw response.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45330,8 +40348,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Schema for trigger-run response — returns spawned task ID." + "BRIEF": "Schema for trigger-run response — returns spawned task ID.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -45348,38 +40366,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Script entrypoint package root." + "BRIEF": "Script entrypoint package root." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ScriptsPackage [TYPE Package]\n# @BRIEF Script entrypoint package root.\n# #endregion ScriptsPackage\n" @@ -45393,9 +40383,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Provide headless CLI commands for candidate registration, artifact import and manifest build.", "COMPLEXITY": 3, - "LAYER": "Scripts", - "PURPOSE": "Provide headless CLI commands for candidate registration, artifact import and manifest build." + "LAYER": "Scripts" }, "relations": [ { @@ -45438,7 +40428,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Build argparse parser for clean release CLI." + "BRIEF": "Build argparse parser for clean release CLI." }, "relations": [], "schema_warnings": [], @@ -45455,9 +40445,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Register candidate in repository via CLI command.", "POST": "Candidate is persisted in DRAFT status.", - "PRE": "Candidate ID must be unique.", - "PURPOSE": "Register candidate in repository via CLI command." + "PRE": "Candidate ID must be unique." }, "relations": [], "schema_warnings": [], @@ -45474,9 +40464,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Import single artifact for existing candidate.", "POST": "Artifact is persisted for candidate.", - "PRE": "Candidate must exist.", - "PURPOSE": "Import single artifact for existing candidate." + "PRE": "Candidate must exist." }, "relations": [], "schema_warnings": [], @@ -45493,9 +40483,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build immutable manifest snapshot for candidate.", "POST": "New manifest version is persisted.", - "PRE": "Candidate must exist.", - "PURPOSE": "Build immutable manifest snapshot for candidate." + "PRE": "Candidate must exist." }, "relations": [], "schema_warnings": [], @@ -45512,9 +40502,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Execute compliance run for candidate with optional manifest fallback.", "POST": "Returns run payload and exit code 0 on success.", - "PRE": "Candidate exists and trusted snapshots are configured.", - "PURPOSE": "Execute compliance run for candidate with optional manifest fallback." + "PRE": "Candidate exists and trusted snapshots are configured." }, "relations": [], "schema_warnings": [], @@ -45531,9 +40521,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Read run status by run id.", "POST": "Returns run status payload.", - "PRE": "Run exists.", - "PURPOSE": "Read run status by run id." + "PRE": "Run exists." }, "relations": [], "schema_warnings": [], @@ -45550,9 +40540,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Serialize domain models for CLI JSON output across SQLAlchemy/Pydantic variants.", "POST": "Returns dictionary payload without mutating value.", - "PRE": "value is serializable model or primitive object.", - "PURPOSE": "Serialize domain models for CLI JSON output across SQLAlchemy/Pydantic variants." + "PRE": "value is serializable model or primitive object." }, "relations": [], "schema_warnings": [], @@ -45569,9 +40559,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Read immutable report by run id.", "POST": "Returns report payload.", - "PRE": "Run and report exist.", - "PURPOSE": "Read immutable report by run id." + "PRE": "Run and report exist." }, "relations": [], "schema_warnings": [], @@ -45588,9 +40578,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Read run violations by run id.", "POST": "Returns violations payload.", - "PRE": "Run exists.", - "PURPOSE": "Read run violations by run id." + "PRE": "Run exists." }, "relations": [], "schema_warnings": [], @@ -45607,9 +40597,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Approve candidate based on immutable PASSED report.", "POST": "Persists APPROVED decision and returns success payload.", - "PRE": "Candidate and report exist; report is PASSED.", - "PURPOSE": "Approve candidate based on immutable PASSED report." + "PRE": "Candidate and report exist; report is PASSED." }, "relations": [], "schema_warnings": [], @@ -45626,9 +40616,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Reject candidate without mutating compliance evidence.", "POST": "Persists REJECTED decision and returns success payload.", - "PRE": "Candidate and report exist.", - "PURPOSE": "Reject candidate without mutating compliance evidence." + "PRE": "Candidate and report exist." }, "relations": [], "schema_warnings": [], @@ -45645,9 +40635,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Publish approved candidate to target channel.", "POST": "Appends ACTIVE publication record and returns payload.", - "PRE": "Candidate is approved and report belongs to candidate.", - "PURPOSE": "Publish approved candidate to target channel." + "PRE": "Candidate is approved and report belongs to candidate." }, "relations": [], "schema_warnings": [], @@ -45664,9 +40654,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Revoke active publication record.", "POST": "Publication record status becomes REVOKED.", - "PRE": "Publication id exists and is ACTIVE.", - "PURPOSE": "Revoke active publication record." + "PRE": "Publication id exists and is ACTIVE." }, "relations": [], "schema_warnings": [], @@ -45683,11 +40673,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Interactive terminal interface for Enterprise Clean Release compliance validation.", "COMPLEXITY": 3, "DATA_CONTRACT": "CLIArgs -> TUIExitCode", "INVARIANT": "TUI refuses startup in non-TTY environments; headless flow is CLI/API only.", - "LAYER": "UI", - "PURPOSE": "Interactive terminal interface for Enterprise Clean Release compliance validation." + "LAYER": "UI" }, "relations": [ { @@ -45717,9 +40707,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Thin TUI adapter that routes business mutations through application services.", "POST": "Business actions return service results/errors without direct TUI-owned mutations.", - "PRE": "repository contains candidate and trusted policy/registry snapshots for execution.", - "PURPOSE": "Thin TUI adapter that routes business mutations through application services." + "PRE": "repository contains candidate and trusted policy/registry snapshots for execution." }, "relations": [], "schema_warnings": [], @@ -45736,53 +40726,12 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Curses-based application for compliance monitoring.", + "BRIEF": "Curses-based application for compliance monitoring.", "UX_FEEDBACK": "Red alerts for BLOCKED status, Green for COMPLIANT.", "UX_STATE": "BLOCKED -> Violations detected, release forbidden." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 CleanReleaseTUI [TYPE Class]\n# @BRIEF Curses-based application for compliance monitoring.\n# @UX_STATE: READY -> Waiting for operator to start checks (F5).\n# @UX_STATE: RUNNING -> Executing compliance stages with progress feedback.\n# @UX_STATE: COMPLIANT -> Release candidate passed all checks.\n# @UX_STATE: BLOCKED -> Violations detected, release forbidden.\n# @UX_FEEDBACK: Red alerts for BLOCKED status, Green for COMPLIANT.\nclass CleanReleaseTUI:\n def __init__(self, stdscr: curses.window):\n self.stdscr = stdscr\n self.mode = os.getenv(\"CLEAN_TUI_MODE\", \"demo\").strip().lower()\n self.repo = self._build_repository(self.mode)\n self.facade = TuiFacadeAdapter(self.repo)\n self.candidate_id = self._resolve_candidate_id()\n self.status: Any = \"READY\"\n self.checks_progress: list[dict[str, Any]] = []\n self.violations_list: list[ComplianceViolation] = []\n self.report_id: str | None = None\n self.last_error: str | None = None\n self.overview: dict[str, Any] = {}\n self.refresh_overview()\n curses.start_color()\n curses.use_default_colors()\n curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE) # Header/Footer\n curses.init_pair(2, curses.COLOR_GREEN, -1) # PASS\n curses.init_pair(3, curses.COLOR_RED, -1) # FAIL/BLOCKED\n curses.init_pair(4, curses.COLOR_YELLOW, -1) # RUNNING\n curses.init_pair(5, curses.COLOR_CYAN, -1) # Text\n def _build_repository(self, mode: str) -> CleanReleaseRepository:\n repo = CleanReleaseRepository()\n if mode == \"demo\":\n self._bootstrap_demo_repository(repo)\n else:\n self._bootstrap_real_repository(repo)\n return repo\n def _bootstrap_demo_repository(self, repository: CleanReleaseRepository) -> None:\n now = datetime.now(UTC)\n policy = CleanProfilePolicy(\n policy_id=\"POL-ENT-CLEAN\",\n policy_version=\"1\",\n profile=ProfileType.ENTERPRISE_CLEAN,\n active=True,\n internal_source_registry_ref=\"REG-1\",\n prohibited_artifact_categories=[\"test-data\"],\n effective_from=now,\n )\n policy.immutable = True\n repository.save_policy(policy)\n registry = ResourceSourceRegistry(\n registry_id=\"REG-1\",\n name=\"Default Internal Registry\",\n entries=[\n ResourceSourceEntry(\n source_id=\"S1\",\n host=\"internal-repo.company.com\",\n protocol=\"https\",\n purpose=\"artifactory\",\n )\n ],\n updated_at=now,\n updated_by=\"system\",\n )\n registry.immutable = True\n registry.allowed_hosts = [\"internal-repo.company.com\"]\n registry.allowed_schemes = [\"https\"]\n registry.allowed_source_types = [\"artifactory\"]\n repository.save_registry(registry)\n candidate = ReleaseCandidate(\n id=\"2026.03.03-rc1\",\n version=\"1.0.0\",\n source_snapshot_ref=\"v1.0.0-rc1\",\n created_at=now,\n created_by=\"system\",\n status=CandidateStatus.DRAFT.value,\n )\n candidate.transition_to(CandidateStatus.PREPARED)\n repository.save_candidate(candidate)\n repository.save_artifact(\n CandidateArtifact(\n id=\"demo-art-1\",\n candidate_id=candidate.id,\n path=\"src/main.py\",\n sha256=\"sha256-demo-core\",\n size=128,\n detected_category=\"core\",\n )\n )\n repository.save_artifact(\n CandidateArtifact(\n id=\"demo-art-2\",\n candidate_id=candidate.id,\n path=\"test/data.csv\",\n sha256=\"sha256-demo-test\",\n size=64,\n detected_category=\"test-data\",\n )\n )\n manifest = build_manifest_snapshot(\n repository=repository,\n candidate_id=candidate.id,\n created_by=\"system\",\n policy_id=\"POL-ENT-CLEAN\",\n )\n summary = dict(manifest.content_json.get(\"summary\", {}))\n summary[\"prohibited_detected_count\"] = 1\n manifest.content_json[\"summary\"] = summary\n def _bootstrap_real_repository(self, repository: CleanReleaseRepository) -> None:\n bootstrap_path = os.getenv(\"CLEAN_TUI_BOOTSTRAP_JSON\", \"\").strip()\n if not bootstrap_path:\n return\n with open(bootstrap_path, encoding=\"utf-8\") as bootstrap_file:\n payload = json.load(bootstrap_file)\n now = datetime.now(UTC)\n candidate = ReleaseCandidate(\n id=payload.get(\"candidate_id\", \"candidate-1\"),\n version=payload.get(\"version\", \"1.0.0\"),\n source_snapshot_ref=payload.get(\"source_snapshot_ref\", \"snapshot-ref\"),\n created_at=now,\n created_by=payload.get(\"created_by\", \"operator\"),\n status=ReleaseCandidateStatus.DRAFT,\n )\n repository.save_candidate(candidate)\n imported_artifacts = load_bootstrap_artifacts(\n os.getenv(\"CLEAN_TUI_ARTIFACTS_JSON\", \"\").strip(),\n candidate.id,\n )\n for artifact in imported_artifacts:\n repository.save_artifact(artifact)\n if imported_artifacts:\n candidate.transition_to(CandidateStatus.PREPARED)\n repository.save_candidate(candidate)\n registry_id = payload.get(\"registry_id\", \"REG-1\")\n entries = [\n ResourceSourceEntry(\n source_id=f\"S-{index + 1}\",\n host=host,\n protocol=\"https\",\n purpose=\"bootstrap\",\n enabled=True,\n )\n for index, host in enumerate(payload.get(\"allowed_hosts\", []))\n if str(host).strip()\n ]\n if entries:\n repository.save_registry(\n ResourceSourceRegistry(\n registry_id=registry_id,\n name=payload.get(\"registry_name\", \"Bootstrap Internal Registry\"),\n entries=entries,\n updated_at=now,\n updated_by=payload.get(\"created_by\", \"operator\"),\n status=RegistryStatus.ACTIVE,\n )\n )\n if entries:\n repository.save_policy(\n CleanProfilePolicy(\n policy_id=payload.get(\"policy_id\", \"POL-ENT-CLEAN\"),\n policy_version=payload.get(\"policy_version\", \"1\"),\n profile=ProfileType.ENTERPRISE_CLEAN,\n active=True,\n internal_source_registry_ref=registry_id,\n prohibited_artifact_categories=payload.get(\n \"prohibited_artifact_categories\",\n [\"test-data\", \"demo\", \"load-test\"],\n ),\n required_system_categories=payload.get(\n \"required_system_categories\", [\"core\"]\n ),\n effective_from=now,\n )\n )\n def _resolve_candidate_id(self) -> str:\n env_candidate = os.getenv(\"CLEAN_TUI_CANDIDATE_ID\", \"\").strip()\n if env_candidate:\n return env_candidate\n candidate_ids = list(self.repo.candidates.keys())\n if candidate_ids:\n return candidate_ids[0]\n return \"\"\n def draw_header(self, max_y: int, max_x: int):\n header_text = \" Enterprise Clean Release Validator (TUI) \"\n self.stdscr.attron(curses.color_pair(1) | curses.A_BOLD)\n # Avoid slicing if possible to satisfy Pyre, or use explicit int\n centered = header_text.center(max_x)\n self.stdscr.addstr(0, 0, centered[:max_x])\n self.stdscr.attroff(curses.color_pair(1) | curses.A_BOLD)\n candidate = self.overview.get(\"candidate\")\n candidate_text = self.candidate_id or \"not-set\"\n profile_text = \"enterprise-clean\"\n lifecycle = getattr(candidate, \"status\", \"UNKNOWN\")\n info_line_text = (\n f\" │ Candidate: [{candidate_text}] Profile: [{profile_text}] \"\n f\"Lifecycle: [{lifecycle}] Mode: [{self.mode}]\"\n ).ljust(max_x)\n self.stdscr.addstr(2, 0, info_line_text[:max_x])\n def draw_checks(self):\n self.stdscr.addstr(4, 3, \"Checks:\")\n check_defs = [\n (CheckStageName.DATA_PURITY, \"Data Purity (no test/demo payloads)\"),\n (\n CheckStageName.INTERNAL_SOURCES_ONLY,\n \"Internal Sources Only (company servers)\",\n ),\n (CheckStageName.NO_EXTERNAL_ENDPOINTS, \"No External Internet Endpoints\"),\n (CheckStageName.MANIFEST_CONSISTENCY, \"Release Manifest Consistency\"),\n ]\n row = 5\n drawn_checks = {c[\"stage\"]: c for c in self.checks_progress}\n for stage, desc in check_defs:\n status_text = \" \"\n color = curses.color_pair(5)\n if stage in drawn_checks:\n c = drawn_checks[stage]\n if c[\"status\"] == \"RUNNING\":\n status_text = \"...\"\n color = curses.color_pair(4)\n elif c[\"status\"] == CheckStageStatus.PASS:\n status_text = \"PASS\"\n color = curses.color_pair(2)\n elif c[\"status\"] == CheckStageStatus.FAIL:\n status_text = \"FAIL\"\n color = curses.color_pair(3)\n self.stdscr.addstr(row, 4, f\"[{status_text:^4}] {desc}\")\n if status_text != \" \":\n self.stdscr.addstr(row, 50, f\"{status_text:>10}\", color | curses.A_BOLD)\n row += 1\n def draw_sources(self):\n self.stdscr.addstr(12, 3, \"Allowed Internal Sources:\", curses.A_BOLD)\n reg = self.overview.get(\"registry\")\n row = 13\n if reg:\n for entry in reg.entries:\n self.stdscr.addstr(row, 3, f\" - {entry.host}\")\n row += 1\n else:\n self.stdscr.addstr(row, 3, \" - (none)\")\n def draw_status(self):\n color = curses.color_pair(5)\n if self.status == CheckFinalStatus.COMPLIANT:\n color = curses.color_pair(2)\n elif self.status == CheckFinalStatus.BLOCKED:\n color = curses.color_pair(3)\n stat_str = str(\n self.status.value if hasattr(self.status, \"value\") else self.status\n )\n self.stdscr.addstr(\n 18, 3, f\"FINAL STATUS: {stat_str.upper()}\", color | curses.A_BOLD\n )\n if self.report_id:\n self.stdscr.addstr(19, 3, f\"Report ID: {self.report_id}\")\n approval = self.overview.get(\"approval\")\n publication = self.overview.get(\"publication\")\n if approval:\n self.stdscr.addstr(20, 3, f\"Approval: {approval.decision}\")\n if publication:\n self.stdscr.addstr(20, 32, f\"Publication: {publication.status}\")\n if self.violations_list:\n self.stdscr.addstr(\n 21,\n 3,\n f\"Violations Details ({len(self.violations_list)} total):\",\n curses.color_pair(3) | curses.A_BOLD,\n )\n row = 22\n for i, v in enumerate(self.violations_list[:5]):\n v_cat = str(getattr(v, \"code\", \"VIOLATION\"))\n msg = str(getattr(v, \"message\", \"Violation detected\"))\n location = str(\n getattr(v, \"artifact_path\", \"\")\n or getattr(getattr(v, \"evidence_json\", {}), \"get\", lambda *_: \"\")(\n \"location\", \"\"\n )\n )\n msg_text = f\"[{v_cat}] {msg} (Loc: {location})\"\n self.stdscr.addstr(row + i, 5, msg_text[:70], curses.color_pair(3))\n if self.last_error:\n self.stdscr.addstr(\n 27,\n 3,\n f\"Error: {self.last_error}\"[:100],\n curses.color_pair(3) | curses.A_BOLD,\n )\n def draw_footer(self, max_y: int, max_x: int):\n footer_text = \" F4 Build Bundle F5 Run F6 Manifest F7 Refresh F8 Approve F9 Publish F10 Exit \".center(\n max_x\n )\n self.stdscr.attron(curses.color_pair(1))\n self.stdscr.addstr(max_y - 1, 0, footer_text[:max_x])\n self.stdscr.attroff(curses.color_pair(1))\n # [DEF:run_checks:Function]\n # @PURPOSE: Execute compliance run via facade adapter and update UI state.\n # @PRE: Candidate and policy snapshots are present in repository.\n # @POST: UI reflects final run/report/violation state from service result.\n def run_checks(self):\n self.status = \"RUNNING\"\n self.report_id = None\n self.violations_list = []\n self.checks_progress = []\n self.last_error = None\n self.refresh_screen()\n try:\n result = self.facade.run_compliance(\n candidate_id=self.candidate_id, actor=\"operator\"\n )\n except Exception as exc:\n self.status = CheckFinalStatus.FAILED\n self.last_error = str(exc)\n self.refresh_screen()\n return\n self.checks_progress = [\n {\n \"stage\": stage.stage_name,\n \"status\": CheckStageStatus.PASS\n if str(stage.decision).upper() == \"PASSED\"\n else CheckStageStatus.FAIL,\n }\n for stage in result.stage_runs\n ]\n self.violations_list = result.violations\n self.report_id = result.report.id if result.report is not None else None\n final_status = str(result.run.final_status or \"\").upper()\n if final_status in {\"BLOCKED\", CheckFinalStatus.BLOCKED.value}:\n self.status = CheckFinalStatus.BLOCKED\n elif final_status in {\"COMPLIANT\", \"PASSED\", CheckFinalStatus.COMPLIANT.value}:\n self.status = CheckFinalStatus.COMPLIANT\n else:\n self.status = CheckFinalStatus.FAILED\n self.refresh_overview()\n self.refresh_screen()\n # [/DEF:run_checks:Function]\n def build_manifest(self):\n try:\n manifest = self.facade.build_manifest(\n candidate_id=self.candidate_id, actor=\"operator\"\n )\n self.status = \"READY\"\n self.report_id = None\n self.violations_list = []\n self.checks_progress = []\n self.last_error = f\"Manifest built: {manifest.id}\"\n except Exception as exc:\n self.last_error = str(exc)\n self.refresh_overview()\n self.refresh_screen()\n def clear_history(self):\n self.status = \"READY\"\n self.report_id = None\n self.violations_list = []\n self.checks_progress = []\n self.last_error = None\n self.refresh_overview()\n self.refresh_screen()\n def approve_latest(self):\n if not self.report_id:\n self.last_error = \"F8 disabled: no compliance report available\"\n self.refresh_screen()\n return\n try:\n self.facade.approve_latest(candidate_id=self.candidate_id, actor=\"operator\")\n self.last_error = None\n except Exception as exc:\n self.last_error = str(exc)\n self.refresh_overview()\n self.refresh_screen()\n def publish_latest(self):\n if not self.report_id:\n self.last_error = \"F9 disabled: no compliance report available\"\n self.refresh_screen()\n return\n try:\n self.facade.publish_latest(candidate_id=self.candidate_id, actor=\"operator\")\n self.last_error = None\n except Exception as exc:\n self.last_error = str(exc)\n self.refresh_overview()\n self.refresh_screen()\n # #region bundle_build_mode [C:4] [TYPE Function] [SEMANTICS bundle,build,release]\n # @BRIEF Interactive bundle build screen — select type, enter tag, watch live build output.\n # @PRE TTY is available. Bundle type selected (1 or 2). Tag is non-empty.\n # @POST Subprocess completes (success/failure). Output displayed. User returns via Esc.\n # @SIDE_EFFECT Runs docker build subprocess, creates dist/docker/ files\n # @RELATION CALLS -> [EXT:build.sh]\n # @UX_STATE BUNDLE_MENU -> User selects bundle type and enters release tag\n # @UX_STATE BUNDLE_BUILDING -> Subprocess running, real-time output displayed\n # @UX_STATE BUNDLE_DONE -> Build completed with success/failure result\n def bundle_build_mode(self):\n \"\"\"Enter bundle build sub-loop: choose type, enter tag, watch live output.\"\"\"\n max_y, max_x = self.stdscr.getmaxyx()\n # ── Phase 1: Bundle type selection ──\n self.stdscr.clear()\n self.stdscr.attron(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(0, 0, \" Bundle Build \".center(max_x)[:max_x])\n self.stdscr.attroff(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(3, 3, \"Select bundle type:\", curses.A_BOLD)\n self.stdscr.addstr(5, 5, \"[1] Full Bundle (backend + frontend + postgres — all dependencies)\")\n self.stdscr.addstr(6, 5, \"[2] Light Bundle (~200MB, compressed without Playwright)\")\n self.stdscr.addstr(8, 3, \"Your choice: \")\n self.stdscr.addstr(max_y - 1, 0, \" Esc: Cancel \".center(max_x)[:max_x],\n curses.color_pair(1))\n self.stdscr.refresh()\n bundle_cmd: str | None = None\n bundle_label: str | None = None\n while True:\n k = self.stdscr.getch()\n if k == ord(\"1\"):\n bundle_cmd, bundle_label = \"bundle\", \"Full Bundle\"\n break\n if k == ord(\"2\"):\n bundle_cmd, bundle_label = \"bundle:light\", \"Light Bundle\"\n break\n if k == 27: # Esc\n return\n # ── Phase 2: Tag input ──\n self.stdscr.clear()\n self.stdscr.attron(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(0, 0, f\" Bundle Build — {bundle_label} \".center(max_x)[:max_x])\n self.stdscr.attroff(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(3, 3, f\"Type: {bundle_label}\", curses.A_BOLD)\n self.stdscr.addstr(5, 3, \"Release tag (e.g. v1.0.0): \")\n self.stdscr.addstr(max_y - 1, 0, \" Esc: Cancel \".center(max_x)[:max_x],\n curses.color_pair(1))\n self.stdscr.refresh()\n curses.echo()\n raw_tag = self.stdscr.getstr(5, 33, 30).decode().strip()\n curses.noecho()\n tag = raw_tag.strip()\n if not tag:\n return\n # ── Phase 3: Build execution ──\n build_script = os.path.join(os.path.dirname(BACKEND_ROOT), \"build.sh\")\n self.stdscr.clear()\n self.stdscr.attron(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(0, 0, f\" Building {bundle_label} — {tag} \".center(max_x)[:max_x])\n self.stdscr.attroff(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.refresh()\n try:\n proc = subprocess.Popen(\n [build_script, bundle_cmd, tag],\n stdout=subprocess.PIPE,\n stderr=subprocess.STDOUT,\n text=True,\n bufsize=1,\n )\n except (FileNotFoundError, OSError) as exc:\n self.stdscr.addstr(3, 3, str(exc), curses.color_pair(3))\n self.stdscr.addstr(max_y - 1, 0, \" Press Esc to return \".center(max_x)[:max_x],\n curses.color_pair(1))\n self.stdscr.refresh()\n while self.stdscr.getch() != 27:\n pass\n return\n output_lines: list[str] = []\n lock = threading.Lock()\n build_done = threading.Event()\n return_code: list[int | None] = [None]\n def _reader_thread() -> None:\n \"\"\"Read subprocess stdout line by line in a background thread.\"\"\"\n try:\n for line in iter(proc.stdout.readline, \"\"):\n with lock:\n output_lines.append(line.rstrip(\"\\n\"))\n proc.stdout.close()\n except ValueError:\n logger.debug(\"[reader_thread] stdout read completed (stream closed)\")\n return_code[0] = proc.wait()\n build_done.set()\n reader = threading.Thread(target=_reader_thread, daemon=True)\n reader.start()\n output_top = 2\n output_height = max_y - 4\n canceled = False\n while not build_done.is_set():\n with lock:\n visible = output_lines[-(output_height - 1):] if output_lines else []\n for i, line in enumerate(visible):\n with contextlib.suppress(curses.error):\n self.stdscr.addstr(output_top + i, 2, line[:max_x - 4])\n with contextlib.suppress(curses.error):\n self.stdscr.addstr(max_y - 2, 2, \" Building... (Esc to cancel) \",\n curses.color_pair(4))\n self.stdscr.refresh()\n self.stdscr.timeout(200)\n k = self.stdscr.getch()\n self.stdscr.timeout(-1)\n if k == 27: # Esc\n proc.terminate()\n canceled = True\n build_done.wait(timeout=5.0)\n if proc.poll() is None:\n proc.kill()\n build_done.wait(timeout=2.0)\n break\n if not canceled:\n build_done.wait()\n try:\n remaining = proc.stdout.read()\n if remaining:\n with lock:\n for line in remaining.rstrip(\"\\n\").split(\"\\n\"):\n if line:\n output_lines.append(line)\n except Exception:\n logger.debug(\"[reader_thread] exception reading remaining stdout\")\n # ── Phase 4: Result summary ──\n self.stdscr.clear()\n ret = return_code[0]\n if ret == 0:\n title = f\" ✅ BUILD COMPLETE — {bundle_label} / {tag} \"\n elif canceled:\n title = f\" ⏹ BUILD CANCELED — {bundle_label} / {tag} \"\n else:\n title = f\" ❌ BUILD FAILED — {bundle_label} / {tag} \"\n self.stdscr.attron(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(0, 0, title.center(max_x)[:max_x])\n self.stdscr.attroff(curses.color_pair(1) | curses.A_BOLD)\n if ret == 0:\n self.stdscr.addstr(2, 3, \"Build completed successfully!\",\n curses.color_pair(2) | curses.A_BOLD)\n self.stdscr.addstr(3, 3, \"Output: dist/docker/\",\n curses.color_pair(2))\n elif canceled:\n self.stdscr.addstr(2, 3, \"Build canceled by user.\",\n curses.color_pair(4) | curses.A_BOLD)\n else:\n self.stdscr.addstr(2, 3, f\"Build FAILED (exit code: {ret})\",\n curses.color_pair(3) | curses.A_BOLD)\n self.stdscr.addstr(5, 3, \"Last output:\", curses.A_BOLD)\n with lock:\n tail = output_lines[-12:] if len(output_lines) > 12 else output_lines\n for i, line in enumerate(tail):\n with contextlib.suppress(curses.error):\n self.stdscr.addstr(6 + i, 3, line[:max_x - 6])\n self.stdscr.addstr(max_y - 1, 0, \" Press Esc to return \".center(max_x)[:max_x],\n curses.color_pair(1))\n self.stdscr.refresh()\n while self.stdscr.getch() != 27:\n pass\n # #endregion bundle_build_mode\n def refresh_overview(self):\n if not self.candidate_id:\n self.overview = {}\n return\n self.overview = self.facade.get_overview(candidate_id=self.candidate_id)\n def refresh_screen(self):\n max_y, max_x = self.stdscr.getmaxyx()\n self.stdscr.clear()\n try:\n self.draw_header(max_y, max_x)\n self.draw_checks()\n self.draw_sources()\n self.draw_status()\n self.draw_footer(max_y, max_x)\n except Exception:\n logger.debug(\"[refresh_screen] exception drawing TUI\")\n self.stdscr.refresh()\n def loop(self):\n self.refresh_screen()\n while True:\n char = self.stdscr.getch()\n if char == curses.KEY_F10:\n break\n elif char == curses.KEY_F4:\n self.bundle_build_mode()\n self.refresh_screen()\n elif char == curses.KEY_F5:\n self.run_checks()\n elif char == curses.KEY_F6:\n self.build_manifest()\n elif char == curses.KEY_F7:\n self.clear_history()\n elif char == curses.KEY_F8:\n self.approve_latest()\n elif char == curses.KEY_F9:\n self.publish_latest()\n# #endregion CleanReleaseTUI\n" @@ -45796,9 +40745,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Execute compliance run via facade adapter and update UI state.", "POST": "UI reflects final run/report/violation state from service result.", - "PRE": "Candidate and policy snapshots are present in repository.", - "PURPOSE": "Execute compliance run via facade adapter and update UI state." + "PRE": "Candidate and policy snapshots are present in repository." }, "relations": [], "schema_warnings": [ @@ -45826,10 +40775,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Interactive bundle build screen — select type, enter tag, watch live build output.", "COMPLEXITY": 4, "POST": "Subprocess completes (success/failure). Output displayed. User returns via Esc.", "PRE": "TTY is available. Bundle type selected (1 or 2). Tag is non-empty.", - "PURPOSE": "Interactive bundle build screen — select type, enter tag, watch live build output.", "SIDE_EFFECT": "Runs docker build subprocess, creates dist/docker/ files", "UX_STATE": "BUNDLE_DONE -> Build completed with success/failure result" }, @@ -45841,28 +40790,7 @@ "target_ref": "[EXT:build.sh]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Function' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": " # #region bundle_build_mode [C:4] [TYPE Function] [SEMANTICS bundle,build,release]\n # @BRIEF Interactive bundle build screen — select type, enter tag, watch live build output.\n # @PRE TTY is available. Bundle type selected (1 or 2). Tag is non-empty.\n # @POST Subprocess completes (success/failure). Output displayed. User returns via Esc.\n # @SIDE_EFFECT Runs docker build subprocess, creates dist/docker/ files\n # @RELATION CALLS -> [EXT:build.sh]\n # @UX_STATE BUNDLE_MENU -> User selects bundle type and enters release tag\n # @UX_STATE BUNDLE_BUILDING -> Subprocess running, real-time output displayed\n # @UX_STATE BUNDLE_DONE -> Build completed with success/failure result\n def bundle_build_mode(self):\n \"\"\"Enter bundle build sub-loop: choose type, enter tag, watch live output.\"\"\"\n max_y, max_x = self.stdscr.getmaxyx()\n # ── Phase 1: Bundle type selection ──\n self.stdscr.clear()\n self.stdscr.attron(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(0, 0, \" Bundle Build \".center(max_x)[:max_x])\n self.stdscr.attroff(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(3, 3, \"Select bundle type:\", curses.A_BOLD)\n self.stdscr.addstr(5, 5, \"[1] Full Bundle (backend + frontend + postgres — all dependencies)\")\n self.stdscr.addstr(6, 5, \"[2] Light Bundle (~200MB, compressed without Playwright)\")\n self.stdscr.addstr(8, 3, \"Your choice: \")\n self.stdscr.addstr(max_y - 1, 0, \" Esc: Cancel \".center(max_x)[:max_x],\n curses.color_pair(1))\n self.stdscr.refresh()\n bundle_cmd: str | None = None\n bundle_label: str | None = None\n while True:\n k = self.stdscr.getch()\n if k == ord(\"1\"):\n bundle_cmd, bundle_label = \"bundle\", \"Full Bundle\"\n break\n if k == ord(\"2\"):\n bundle_cmd, bundle_label = \"bundle:light\", \"Light Bundle\"\n break\n if k == 27: # Esc\n return\n # ── Phase 2: Tag input ──\n self.stdscr.clear()\n self.stdscr.attron(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(0, 0, f\" Bundle Build — {bundle_label} \".center(max_x)[:max_x])\n self.stdscr.attroff(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(3, 3, f\"Type: {bundle_label}\", curses.A_BOLD)\n self.stdscr.addstr(5, 3, \"Release tag (e.g. v1.0.0): \")\n self.stdscr.addstr(max_y - 1, 0, \" Esc: Cancel \".center(max_x)[:max_x],\n curses.color_pair(1))\n self.stdscr.refresh()\n curses.echo()\n raw_tag = self.stdscr.getstr(5, 33, 30).decode().strip()\n curses.noecho()\n tag = raw_tag.strip()\n if not tag:\n return\n # ── Phase 3: Build execution ──\n build_script = os.path.join(os.path.dirname(BACKEND_ROOT), \"build.sh\")\n self.stdscr.clear()\n self.stdscr.attron(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(0, 0, f\" Building {bundle_label} — {tag} \".center(max_x)[:max_x])\n self.stdscr.attroff(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.refresh()\n try:\n proc = subprocess.Popen(\n [build_script, bundle_cmd, tag],\n stdout=subprocess.PIPE,\n stderr=subprocess.STDOUT,\n text=True,\n bufsize=1,\n )\n except (FileNotFoundError, OSError) as exc:\n self.stdscr.addstr(3, 3, str(exc), curses.color_pair(3))\n self.stdscr.addstr(max_y - 1, 0, \" Press Esc to return \".center(max_x)[:max_x],\n curses.color_pair(1))\n self.stdscr.refresh()\n while self.stdscr.getch() != 27:\n pass\n return\n output_lines: list[str] = []\n lock = threading.Lock()\n build_done = threading.Event()\n return_code: list[int | None] = [None]\n def _reader_thread() -> None:\n \"\"\"Read subprocess stdout line by line in a background thread.\"\"\"\n try:\n for line in iter(proc.stdout.readline, \"\"):\n with lock:\n output_lines.append(line.rstrip(\"\\n\"))\n proc.stdout.close()\n except ValueError:\n logger.debug(\"[reader_thread] stdout read completed (stream closed)\")\n return_code[0] = proc.wait()\n build_done.set()\n reader = threading.Thread(target=_reader_thread, daemon=True)\n reader.start()\n output_top = 2\n output_height = max_y - 4\n canceled = False\n while not build_done.is_set():\n with lock:\n visible = output_lines[-(output_height - 1):] if output_lines else []\n for i, line in enumerate(visible):\n with contextlib.suppress(curses.error):\n self.stdscr.addstr(output_top + i, 2, line[:max_x - 4])\n with contextlib.suppress(curses.error):\n self.stdscr.addstr(max_y - 2, 2, \" Building... (Esc to cancel) \",\n curses.color_pair(4))\n self.stdscr.refresh()\n self.stdscr.timeout(200)\n k = self.stdscr.getch()\n self.stdscr.timeout(-1)\n if k == 27: # Esc\n proc.terminate()\n canceled = True\n build_done.wait(timeout=5.0)\n if proc.poll() is None:\n proc.kill()\n build_done.wait(timeout=2.0)\n break\n if not canceled:\n build_done.wait()\n try:\n remaining = proc.stdout.read()\n if remaining:\n with lock:\n for line in remaining.rstrip(\"\\n\").split(\"\\n\"):\n if line:\n output_lines.append(line)\n except Exception:\n logger.debug(\"[reader_thread] exception reading remaining stdout\")\n # ── Phase 4: Result summary ──\n self.stdscr.clear()\n ret = return_code[0]\n if ret == 0:\n title = f\" ✅ BUILD COMPLETE — {bundle_label} / {tag} \"\n elif canceled:\n title = f\" ⏹ BUILD CANCELED — {bundle_label} / {tag} \"\n else:\n title = f\" ❌ BUILD FAILED — {bundle_label} / {tag} \"\n self.stdscr.attron(curses.color_pair(1) | curses.A_BOLD)\n self.stdscr.addstr(0, 0, title.center(max_x)[:max_x])\n self.stdscr.attroff(curses.color_pair(1) | curses.A_BOLD)\n if ret == 0:\n self.stdscr.addstr(2, 3, \"Build completed successfully!\",\n curses.color_pair(2) | curses.A_BOLD)\n self.stdscr.addstr(3, 3, \"Output: dist/docker/\",\n curses.color_pair(2))\n elif canceled:\n self.stdscr.addstr(2, 3, \"Build canceled by user.\",\n curses.color_pair(4) | curses.A_BOLD)\n else:\n self.stdscr.addstr(2, 3, f\"Build FAILED (exit code: {ret})\",\n curses.color_pair(3) | curses.A_BOLD)\n self.stdscr.addstr(5, 3, \"Last output:\", curses.A_BOLD)\n with lock:\n tail = output_lines[-12:] if len(output_lines) > 12 else output_lines\n for i, line in enumerate(tail):\n with contextlib.suppress(curses.error):\n self.stdscr.addstr(6 + i, 3, line[:max_x - 6])\n self.stdscr.addstr(max_y - 1, 0, \" Press Esc to return \".center(max_x)[:max_x],\n curses.color_pair(1))\n self.stdscr.refresh()\n while self.stdscr.getch() != 27:\n pass\n # #endregion bundle_build_mode\n" @@ -45876,11 +40804,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "CLI tool for creating the initial admin user.", "COMPLEXITY": 5, "DATA_CONTRACT": "CLIArgs -> AdminUser", "INVARIANT": "Admin user must have the \"Admin\" role.", "LAYER": "Infrastructure", - "PURPOSE": "CLI tool for creating the initial admin user.", "SIDE_EFFECT": "Writes admin user to database" }, "relations": [ @@ -45917,9 +40845,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Creates an admin user and necessary roles/permissions.", "POST": "Admin user exists in auth.db.", - "PRE": "username and password provided via CLI.", - "PURPOSE": "Creates an admin user and necessary roles/permissions." + "PRE": "username and password provided via CLI." }, "relations": [], "schema_warnings": [], @@ -45936,9 +40864,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Script to delete tasks with RUNNING status from the database.", "COMPLEXITY": 3, "LAYER": "Infrastructure", - "PURPOSE": "Script to delete tasks with RUNNING status from the database.", "SEMANTICS": [ "maintenance", "database", @@ -45973,10 +40901,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Delete all tasks with RUNNING status from the database.", "COMPLEXITY": 4, "POST": "All tasks with status 'RUNNING' are removed from the database.", "PRE": "Database is accessible and TaskRecord model is defined.", - "PURPOSE": "Delete all tasks with RUNNING status from the database.", "SIDE_EFFECT": "Modifies DB: deletes RUNNING tasks. Prints to stdout." }, "relations": [], @@ -45994,10 +40922,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Initializes the auth database and creates the necessary tables.", "COMPLEXITY": 2, "INVARIANT": "Safe to run multiple times (idempotent).", - "LAYER": "Scripts", - "PURPOSE": "Initializes the auth database and creates the necessary tables." + "LAYER": "Scripts" }, "relations": [ { @@ -46052,9 +40980,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Main entry point for the initialization script.", "COMPLEXITY": 3, - "POST": "auth.db is initialized with the correct schema and seeded permissions.", - "PURPOSE": "Main entry point for the initialization script." + "POST": "auth.db is initialized with the correct schema and seeded permissions." }, "relations": [ { @@ -46090,11 +41018,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Populates the auth database with initial system permissions.", "COMPLEXITY": 5, "DATA_CONTRACT": "CLIArgs -> SeedSummary", "INVARIANT": "Safe to run multiple times (idempotent).", "LAYER": "Infrastructure", - "PURPOSE": "Populates the auth database with initial system permissions.", "SIDE_EFFECT": "Writes permissions to database" }, "relations": [ @@ -46137,8 +41065,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Canonical bootstrap permission tuples seeded into auth storage." + "BRIEF": "Canonical bootstrap permission tuples seeded into auth storage.", + "COMPLEXITY": 3 }, "relations": [ { @@ -46148,70 +41076,7 @@ "target_ref": "SeedPermissionsScript" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Constant' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Constant" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Constant' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Constant" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Constant' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Constant" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region INITIAL_PERMISSIONS [C:3] [TYPE Constant]\n# @BRIEF Canonical bootstrap permission tuples seeded into auth storage.\n# @RELATION DEPENDS_ON -> SeedPermissionsScript\nINITIAL_PERMISSIONS = [\n # Admin Permissions\n {\"resource\": \"admin:users\", \"action\": \"READ\"},\n {\"resource\": \"admin:users\", \"action\": \"WRITE\"},\n {\"resource\": \"admin:roles\", \"action\": \"READ\"},\n {\"resource\": \"admin:roles\", \"action\": \"WRITE\"},\n {\"resource\": \"admin:settings\", \"action\": \"READ\"},\n {\"resource\": \"admin:settings\", \"action\": \"WRITE\"},\n {\"resource\": \"environments\", \"action\": \"READ\"},\n {\"resource\": \"plugins\", \"action\": \"READ\"},\n {\"resource\": \"tasks\", \"action\": \"READ\"},\n {\"resource\": \"tasks\", \"action\": \"WRITE\"},\n # Plugin Permissions\n {\"resource\": \"plugin:backup\", \"action\": \"EXECUTE\"},\n {\"resource\": \"plugin:migration\", \"action\": \"EXECUTE\"},\n {\"resource\": \"plugin:mapper\", \"action\": \"EXECUTE\"},\n {\"resource\": \"plugin:search\", \"action\": \"EXECUTE\"},\n {\"resource\": \"plugin:git\", \"action\": \"EXECUTE\"},\n {\"resource\": \"plugin:storage\", \"action\": \"EXECUTE\"},\n {\"resource\": \"plugin:storage\", \"action\": \"READ\"},\n {\"resource\": \"plugin:storage\", \"action\": \"WRITE\"},\n {\"resource\": \"plugin:debug\", \"action\": \"EXECUTE\"},\n {\"resource\": \"git_config\", \"action\": \"READ\"},\n # Dataset Review Permissions\n {\"resource\": \"dataset:session\", \"action\": \"READ\"},\n {\"resource\": \"dataset:session\", \"action\": \"MANAGE\"},\n {\"resource\": \"dataset:session\", \"action\": \"APPROVE\"},\n {\"resource\": \"dataset:execution\", \"action\": \"PREVIEW\"},\n {\"resource\": \"dataset:execution\", \"action\": \"LAUNCH\"},\n {\"resource\": \"dataset:execution\", \"action\": \"LAUNCH_PROD\"},\n]\n# #endregion INITIAL_PERMISSIONS\n" @@ -46225,9 +41090,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Inserts missing permissions into the database.", "COMPLEXITY": 3, - "POST": "All INITIAL_PERMISSIONS exist in the DB.", - "PURPOSE": "Inserts missing permissions into the database." + "POST": "All INITIAL_PERMISSIONS exist in the DB." }, "relations": [ { @@ -46275,11 +41140,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Creates randomized load-test data in Superset by cloning chart configurations and creating dashboards in target environments.", "COMPLEXITY": 5, "DATA_CONTRACT": "CLIArgs -> TestDataSummary", "INVARIANT": "Created chart and dashboard names are globally unique for one script run.", - "LAYER": "Infrastructure", - "PURPOSE": "Creates randomized load-test data in Superset by cloning chart configurations and creating dashboards in target environments." + "LAYER": "Infrastructure" }, "relations": [ { @@ -46309,9 +41174,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Parses CLI arguments for load-test data generation.", "POST": "Returns validated argument namespace.", - "PRE": "Script is called from CLI.", - "PURPOSE": "Parses CLI arguments for load-test data generation." + "PRE": "Script is called from CLI." }, "relations": [], "schema_warnings": [], @@ -46328,9 +41193,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Normalizes Superset API payloads that may be wrapped in `result`.", "POST": "Returns the unwrapped object when present.", - "PRE": "payload is a JSON-decoded API response.", - "PURPOSE": "Normalizes Superset API payloads that may be wrapped in `result`." + "PRE": "payload is a JSON-decoded API response." }, "relations": [], "schema_warnings": [], @@ -46347,9 +41212,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Extracts object ID from create/update API response.", "POST": "Returns integer object ID or None if missing.", - "PRE": "payload is a JSON-decoded API response.", - "PURPOSE": "Extracts object ID from create/update API response." + "PRE": "payload is a JSON-decoded API response." }, "relations": [], "schema_warnings": [], @@ -46366,9 +41231,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Generates globally unique random names for charts/dashboards.", "POST": "Returns a unique string and stores it in used_names.", - "PRE": "used_names is mutable set for collision tracking.", - "PURPOSE": "Generates globally unique random names for charts/dashboards." + "PRE": "used_names is mutable set for collision tracking." }, "relations": [], "schema_warnings": [], @@ -46385,9 +41250,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolves requested environment IDs from configuration.", "POST": "Returns mapping env_id -> configured environment object.", - "PRE": "env_ids is non-empty.", - "PURPOSE": "Resolves requested environment IDs from configuration." + "PRE": "env_ids is non-empty." }, "relations": [], "schema_warnings": [], @@ -46404,9 +41269,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Builds a pool of source chart templates to clone in one environment.", "POST": "Returns non-empty list of chart payload templates.", - "PRE": "Client is authenticated.", - "PURPOSE": "Builds a pool of source chart templates to clone in one environment." + "PRE": "Client is authenticated." }, "relations": [], "schema_warnings": [], @@ -46423,9 +41288,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Creates dashboards and cloned charts for load testing across target environments.", "POST": "Returns execution statistics dictionary.", "PRE": "Target environments must be reachable and authenticated.", - "PURPOSE": "Creates dashboards and cloned charts for load testing across target environments.", "SIDE_EFFECT": "Creates objects in Superset environments." }, "relations": [], @@ -46443,9 +41308,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "CLI entrypoint for Superset load-test data seeding.", "POST": "Prints summary and exits with non-zero status on failure.", - "PRE": "Command line arguments are valid.", - "PURPOSE": "CLI entrypoint for Superset load-test data seeding." + "PRE": "Command line arguments are valid." }, "relations": [], "schema_warnings": [], @@ -46462,8 +41327,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Tests and inspects dataset-to-dashboard relationship responses from Superset API.", "COMPLEXITY": 2, - "PURPOSE": "Tests and inspects dataset-to-dashboard relationship responses from Superset API.", "RATIONALE": "Added '# DIAGNOSTIC SCRIPT — not a test' header comment. Script already had if __name__ guard." }, "relations": [], @@ -46481,9 +41346,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Package initialization for services module", "COMPLEXITY": 2, - "NOTE": "GitService, AuthService, LLMProviderService have circular import issues - import directly when needed", - "PURPOSE": "Package initialization for services module" + "NOTE": "GitService, AuthService, LLMProviderService have circular import issues - import directly when needed" }, "relations": [], "schema_warnings": [ @@ -46507,13 +41372,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Orchestrates credential authentication and ADFS JIT user provisioning.", "COMPLEXITY": 5, "DATA_CONTRACT": "[Credentials | ADFSClaims] -> [UserEntity | SessionToken]", "INVARIANT": "Authentication succeeds only for active users with valid credentials; issued sessions encode subject and scopes from assigned roles.", "LAYER": "Domain", "POST": "User identity verified and session tokens issued according to role scopes.", "PRE": "Core auth models and security utilities available.", - "PURPOSE": "Orchestrates credential authentication and ADFS JIT user provisioning.", "SIDE_EFFECT": "Writes last login timestamps and JIT-provisions external users." }, "relations": [ @@ -46562,8 +41427,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Provides high-level authentication services." + "BRIEF": "Provides high-level authentication services.", + "COMPLEXITY": 3 }, "relations": [ { @@ -46599,9 +41464,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Publish the canonical semantic root for the clean-release backend service cluster.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Publish the canonical semantic root for the clean-release backend service cluster." + "LAYER": "Domain" }, "relations": [ { @@ -46643,13 +41508,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Enforce approval/rejection gates over immutable compliance reports.", "COMPLEXITY": 5, "DATA_CONTRACT": "ApprovalRequest -> ApprovalDecision", "INVARIANT": "Approval is allowed only for PASSED report bound to candidate; decisions are append-only.", "LAYER": "Domain", "POST": "Approval decision appended; candidate lifecycle advanced", "PRE": "Report with PASSED final_status exists for candidate", - "PURPOSE": "Enforce approval/rejection gates over immutable compliance reports.", "SIDE_EFFECT": "Persists approval decisions, transitions candidate status" }, "relations": [ @@ -46686,9 +41551,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Provide append-only in-memory storage for approval decisions.", "POST": "Returns mutable decision list attached to repository.", - "PRE": "repository is initialized.", - "PURPOSE": "Provide append-only in-memory storage for approval decisions." + "PRE": "repository is initialized." }, "relations": [], "schema_warnings": [], @@ -46705,9 +41570,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve latest approval decision for candidate from append-only store.", "POST": "Returns latest ApprovalDecision or None.", - "PRE": "candidate_id is non-empty.", - "PURPOSE": "Resolve latest approval decision for candidate from append-only store." + "PRE": "candidate_id is non-empty." }, "relations": [], "schema_warnings": [], @@ -46724,9 +41589,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate candidate/report existence and ownership prior to decision persistence.", "POST": "Returns tuple(candidate, report); raises ApprovalGateError on contract violation.", - "PRE": "candidate_id and report_id are non-empty.", - "PURPOSE": "Validate candidate/report existence and ownership prior to decision persistence." + "PRE": "candidate_id and report_id are non-empty." }, "relations": [], "schema_warnings": [], @@ -46743,9 +41608,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Persist immutable APPROVED decision and advance candidate lifecycle to APPROVED.", "POST": "Approval decision is appended and candidate transitions to APPROVED.", - "PRE": "Candidate exists, report belongs to candidate, report final_status is PASSED, candidate not already APPROVED.", - "PURPOSE": "Persist immutable APPROVED decision and advance candidate lifecycle to APPROVED." + "PRE": "Candidate exists, report belongs to candidate, report final_status is PASSED, candidate not already APPROVED." }, "relations": [], "schema_warnings": [], @@ -46762,9 +41627,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Persist immutable REJECTED decision without promoting candidate lifecycle.", "POST": "Rejected decision is appended; candidate lifecycle is unchanged.", - "PRE": "Candidate exists and report belongs to candidate.", - "PURPOSE": "Persist immutable REJECTED decision without promoting candidate lifecycle." + "PRE": "Candidate exists and report belongs to candidate." }, "relations": [], "schema_warnings": [], @@ -46781,11 +41646,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Load bootstrap artifact catalogs for clean release real-mode flows.", "COMPLEXITY": 5, "DATA_CONTRACT": "FilePath -> CandidateArtifact[]", "INVARIANT": "Artifact catalog must produce deterministic CandidateArtifact entries with required identity and checksum fields.", "LAYER": "Domain", - "PURPOSE": "Load bootstrap artifact catalogs for clean release real-mode flows.", "SIDE_EFFECT": "Reads JSON file from filesystem" }, "relations": [ @@ -46810,9 +41675,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Parse artifact catalog JSON into CandidateArtifact models for TUI/bootstrap flows.", "POST": "Returns non-mutated CandidateArtifact models with required fields populated.", - "PRE": "path points to readable JSON file; payload is list[artifact] or {\"artifacts\": list[artifact]}.", - "PURPOSE": "Parse artifact catalog JSON into CandidateArtifact models for TUI/bootstrap flows." + "PRE": "path points to readable JSON file; payload is list[artifact] or {\"artifacts\": list[artifact]}." }, "relations": [], "schema_warnings": [], @@ -46829,13 +41694,13 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Provide lightweight audit hooks for clean release preparation/check/report lifecycle.", "COMPLEXITY": 3, "DATA_CONTRACT": "AuditAction -> LogEntry", "INVARIANT": "Audit hooks are append-only log actions.", "LAYER": "Infrastructure", "POST": "Audit events appended to log", "PRE": "Logger configured", - "PURPOSE": "Provide lightweight audit hooks for clean release preparation/check/report lifecycle.", "SIDE_EFFECT": "Writes audit events to logger and repository" }, "relations": [ @@ -46860,12 +41725,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Register release candidates with validated artifacts and advance lifecycle through legal transitions.", "COMPLEXITY": 5, "INVARIANT": "Candidate lifecycle transitions are delegated to domain guard logic.", "LAYER": "Domain", "POST": "candidate and artifacts are persisted; candidate transitions DRAFT -> PREPARED only.", - "PRE": "candidate_id must be unique; artifacts input must be non-empty and valid.", - "PURPOSE": "Register release candidates with validated artifacts and advance lifecycle through legal transitions." + "PRE": "candidate_id must be unique; artifacts input must be non-empty and valid." }, "relations": [ { @@ -46895,9 +41760,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate raw artifact payload list for required fields and shape.", "POST": "Returns normalized artifact list or raises ValueError.", - "PRE": "artifacts payload is provided by caller.", - "PURPOSE": "Validate raw artifact payload list for required fields and shape." + "PRE": "artifacts payload is provided by caller." }, "relations": [], "schema_warnings": [], @@ -46914,13 +41779,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Create and execute compliance runs with trusted snapshots, deterministic stages, violations and immutable report persistence.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[candidate_id, requested_by, manifest_id?, policy snapshots, stage results] -> Output[ComplianceExecutionResult]", "INVARIANT": "A run binds to exactly one candidate/manifest/policy/registry snapshot set.", "LAYER": "Domain", "POST": "Candidate-scoped compliance runs persist stage evidence, terminal status, and immutable report artifacts when execution succeeds.", "PRE": "Repository adapters, trusted policy resolution, and deterministic stage implementations are available for the run request.", - "PURPOSE": "Create and execute compliance runs with trusted snapshots, deterministic stages, violations and immutable report persistence.", "SIDE_EFFECT": "Persists runs, stage results, violations, and reports through repository adapters and audit helpers." }, "relations": [ @@ -46963,7 +41828,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Return envelope for compliance execution with run/report and persisted stage artifacts." + "BRIEF": "Return envelope for compliance execution with run/report and persisted stage artifacts." }, "relations": [], "schema_warnings": [], @@ -46980,13 +41845,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Execute mandatory clean compliance stages and produce final COMPLIANT/BLOCKED/FAILED outcome.", "COMPLEXITY": 5, "DATA_CONTRACT": "Manifest -> ComplianceReport", "INVARIANT": "COMPLIANT is impossible when any mandatory stage fails.", "LAYER": "Domain", "POST": "OrchestrationResult with compliance status", "PRE": "ManifestService and PolicyEngine are available", - "PURPOSE": "Execute mandatory clean compliance stages and produce final COMPLIANT/BLOCKED/FAILED outcome.", "SIDE_EFFECT": "Triggers compliance checks; may modify manifest state", "TEST_CONTRACT": "ComplianceCheckRun -> ComplianceCheckRun", "TEST_EDGE": "report_generation_error -> Downstream reporting failure does not alter orchestrator status derivation contract", @@ -47013,70 +41878,7 @@ "target_ref": "[CleanReleaseModels]" } ], - "schema_warnings": [ - { - "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 C5", - "detail": { - "actual_complexity": 5, - "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 C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is forbidden for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ComplianceOrchestrator [C:5] [TYPE Module] [SEMANTICS clean-release, compliance, orchestration, stage]\n# @BRIEF Execute mandatory clean compliance stages and produce final COMPLIANT/BLOCKED/FAILED outcome.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [ComplianceStages]\n# @RELATION DEPENDS_ON -> [RepositoryRelations]\n# @RELATION DEPENDS_ON -> [CleanReleaseModels]\n# @INVARIANT: COMPLIANT is impossible when any mandatory stage fails.\n# @TEST_CONTRACT: ComplianceCheckRun -> ComplianceCheckRun\n# @TEST_FIXTURE: compliant_candidate -> file:backend/tests/fixtures/clean_release/fixtures_clean_release.json\n# @TEST_EDGE: stage_failure_blocks_release -> Mandatory stage returns FAIL and final status becomes BLOCKED\n# @TEST_EDGE: missing_stage_result -> Finalization with incomplete/empty mandatory stage set must not produce COMPLIANT\n# @TEST_EDGE: report_generation_error -> Downstream reporting failure does not alter orchestrator status derivation contract\n# @TEST_INVARIANT: compliant_requires_all_mandatory_pass -> VERIFIED_BY: [stage_failure_blocks_release]\n# @PRE: ManifestService and PolicyEngine are available\n# @POST: OrchestrationResult with compliance status\n# @SIDE_EFFECT: Triggers compliance checks; may modify manifest state\n# @DATA_CONTRACT: Manifest -> ComplianceReport\n\nfrom __future__ import annotations\n\nfrom datetime import UTC, datetime\nfrom uuid import uuid4\n\nfrom ...core.logger import belief_scope, logger\nfrom ...models.clean_release import (\n ComplianceRun,\n ComplianceStageRun,\n)\nfrom .enums import (\n ComplianceDecision,\n RunStatus,\n)\nfrom .repository import CleanReleaseRepository\nfrom .stages import derive_final_status\n\n\n# #region CleanComplianceOrchestrator [TYPE Class]\n# @BRIEF Coordinate clean-release compliance verification stages.\nclass CleanComplianceOrchestrator:\n # region __init__ [TYPE Function]\n # @PURPOSE: Bind repository dependency used for orchestrator persistence and lookups.\n # @PRE: repository is a valid CleanReleaseRepository instance with required methods.\n # @POST: self.repository is assigned and used by all orchestration steps.\n # @SIDE_EFFECT: Stores repository reference on orchestrator instance.\n # @DATA_CONTRACT: Input -> CleanReleaseRepository, Output -> None\n def __init__(self, repository: CleanReleaseRepository):\n with belief_scope(\"CleanComplianceOrchestrator.__init__\"):\n self.repository = repository\n\n # endregion __init__\n\n # region start_check_run [TYPE Function]\n # @PURPOSE: Initiate a new compliance run session.\n # @PRE: candidate_id and policy_id are provided; legacy callers may omit persisted manifest/policy records.\n # @POST: Returns initialized ComplianceRun in RUNNING state persisted in repository.\n # @SIDE_EFFECT: Reads manifest/policy when present and writes new ComplianceRun via repository.save_check_run.\n # @DATA_CONTRACT: Input -> (candidate_id:str, policy_id:str, requested_by:str, manifest_id:str|None), Output -> ComplianceRun\n def start_check_run(\n self,\n candidate_id: str,\n policy_id: str,\n requested_by: str | None = None,\n manifest_id: str | None = None,\n **legacy_kwargs,\n ) -> ComplianceRun:\n with belief_scope(\"start_check_run\"):\n actor = requested_by or legacy_kwargs.get(\"triggered_by\") or \"system\"\n execution_mode = (\n str(legacy_kwargs.get(\"execution_mode\") or \"\").strip().lower()\n )\n manifest_id_value = manifest_id\n\n if manifest_id_value and str(manifest_id_value).strip().lower() in {\n \"tui\",\n \"api\",\n \"scheduler\",\n }:\n logger.reason(\n \"Detected legacy positional execution_mode passed through manifest_id slot\",\n extra={\n \"candidate_id\": candidate_id,\n \"execution_mode\": manifest_id_value,\n },\n )\n execution_mode = str(manifest_id_value).strip().lower()\n manifest_id_value = None\n\n manifest = (\n self.repository.get_manifest(manifest_id_value)\n if manifest_id_value\n else None\n )\n policy = self.repository.get_policy(policy_id)\n\n if manifest_id_value and manifest is None:\n logger.explore(\n \"Manifest lookup missed during run start; rejecting explicit manifest contract\",\n extra={\n \"candidate_id\": candidate_id,\n \"manifest_id\": manifest_id_value,\n },\n )\n raise ValueError(\"Manifest or Policy not found\")\n\n if policy is None:\n logger.explore(\n \"Policy lookup missed during run start; using compatibility placeholder snapshot\",\n extra={\n \"candidate_id\": candidate_id,\n \"policy_id\": policy_id,\n \"execution_mode\": execution_mode or \"unspecified\",\n },\n )\n\n manifest_id_value = manifest_id_value or f\"manifest-{candidate_id}\"\n manifest_digest = getattr(manifest, \"manifest_digest\", \"pending\")\n registry_snapshot_id = (\n getattr(policy, \"registry_snapshot_id\", None)\n or getattr(policy, \"internal_source_registry_ref\", None)\n or \"pending\"\n )\n\n check_run = ComplianceRun(\n id=f\"check-{uuid4()}\",\n candidate_id=candidate_id,\n manifest_id=manifest_id_value,\n manifest_digest=manifest_digest,\n policy_snapshot_id=policy_id,\n registry_snapshot_id=registry_snapshot_id,\n requested_by=actor,\n requested_at=datetime.now(UTC),\n started_at=datetime.now(UTC),\n status=RunStatus.RUNNING,\n )\n logger.reflect(\n \"Initialized compliance run with compatibility-safe dependency placeholders\",\n extra={\n \"run_id\": check_run.id,\n \"candidate_id\": candidate_id,\n \"policy_id\": policy_id,\n },\n )\n return self.repository.save_check_run(check_run)\n\n # endregion start_check_run\n\n # region execute_stages [TYPE Function]\n # @PURPOSE: Execute or accept compliance stage outcomes and set intermediate/final check-run status fields.\n # @PRE: check_run exists and references candidate/policy/registry/manifest identifiers resolvable by repository.\n # @POST: Returns persisted ComplianceRun with status FAILED on missing dependencies, otherwise SUCCEEDED with final_status set.\n # @SIDE_EFFECT: Reads candidate/policy/registry/manifest and persists updated check_run.\n # @DATA_CONTRACT: Input -> (check_run:ComplianceRun, forced_results:Optional[List[ComplianceStageRun]]), Output -> ComplianceRun\n def execute_stages(\n self,\n check_run: ComplianceRun,\n forced_results: list[ComplianceStageRun] | None = None,\n ) -> ComplianceRun:\n with belief_scope(\"execute_stages\"):\n if forced_results is not None:\n for index, result in enumerate(forced_results, start=1):\n if isinstance(result, ComplianceStageRun):\n stage_run = result\n else:\n status_value = getattr(result, \"status\", None)\n if status_value == \"PASS\":\n decision = ComplianceDecision.PASSED.value\n elif status_value == \"FAIL\":\n decision = ComplianceDecision.BLOCKED.value\n else:\n decision = ComplianceDecision.ERROR.value\n stage_run = ComplianceStageRun(\n id=f\"{check_run.id}-stage-{index}\",\n run_id=check_run.id,\n stage_name=result.stage.value,\n status=result.status.value,\n decision=decision,\n details_json={\"details\": result.details},\n )\n self.repository.stage_runs[stage_run.id] = stage_run\n\n check_run.final_status = derive_final_status(forced_results).value\n check_run.status = RunStatus.SUCCEEDED\n return self.repository.save_check_run(check_run)\n\n candidate = self.repository.get_candidate(check_run.candidate_id)\n policy = self.repository.get_policy(check_run.policy_snapshot_id)\n registry = self.repository.get_registry(check_run.registry_snapshot_id)\n manifest = self.repository.get_manifest(check_run.manifest_id)\n\n if not candidate or not policy or not registry or not manifest:\n check_run.status = RunStatus.FAILED\n check_run.finished_at = datetime.now(UTC)\n return self.repository.save_check_run(check_run)\n\n summary = manifest.content_json.get(\"summary\", {})\n purity_ok = summary.get(\"prohibited_detected_count\", 0) == 0\n check_run.final_status = (\n ComplianceDecision.PASSED.value\n if purity_ok\n else ComplianceDecision.BLOCKED.value\n )\n check_run.status = RunStatus.SUCCEEDED\n check_run.finished_at = datetime.now(UTC)\n\n return self.repository.save_check_run(check_run)\n\n # endregion execute_stages\n\n # region finalize_run [TYPE Function]\n # @PURPOSE: Finalize run status based on cumulative stage results.\n # @PRE: check_run was started and may already contain a derived final_status from stage execution.\n # @POST: Returns persisted ComplianceRun in SUCCEEDED status with final_status guaranteed non-empty.\n # @SIDE_EFFECT: Mutates check_run terminal fields and persists via repository.save_check_run.\n # @DATA_CONTRACT: Input -> ComplianceRun, Output -> ComplianceRun\n def finalize_run(self, check_run: ComplianceRun) -> ComplianceRun:\n with belief_scope(\"finalize_run\"):\n if check_run.status == RunStatus.FAILED:\n check_run.finished_at = datetime.now(UTC)\n return self.repository.save_check_run(check_run)\n\n if not check_run.final_status:\n stage_results = [\n stage_run\n for stage_run in self.repository.stage_runs.values()\n if stage_run.run_id == check_run.id\n ]\n derived = derive_final_status(stage_results)\n check_run.final_status = derived.value\n\n check_run.status = RunStatus.SUCCEEDED\n check_run.finished_at = datetime.now(UTC)\n return self.repository.save_check_run(check_run)\n\n # endregion finalize_run\n\n\n# #endregion CleanComplianceOrchestrator\n\n\n# #region run_check_legacy [TYPE Function]\n# @BRIEF Legacy wrapper for compatibility with previous orchestrator call style.\n# @PRE: repository and identifiers are valid and resolvable by orchestrator dependencies.\n# @POST: Returns finalized ComplianceRun produced by orchestrator start->execute->finalize sequence.\n# @SIDE_EFFECT: Reads/writes compliance entities through repository during orchestrator calls.\n# @DATA_CONTRACT: Input -> (repository:CleanReleaseRepository, candidate_id:str, policy_id:str, requested_by:str, manifest_id:str), Output -> ComplianceRun\ndef run_check_legacy(\n repository: CleanReleaseRepository,\n candidate_id: str,\n policy_id: str,\n requested_by: str,\n manifest_id: str,\n) -> ComplianceRun:\n with belief_scope(\"run_check_legacy\"):\n orchestrator = CleanComplianceOrchestrator(repository)\n run = orchestrator.start_check_run(\n candidate_id=candidate_id,\n policy_id=policy_id,\n requested_by=requested_by,\n manifest_id=manifest_id,\n )\n run = orchestrator.execute_stages(run)\n return orchestrator.finalize_run(run)\n\n\n# #endregion run_check_legacy\n# #endregion ComplianceOrchestrator\n" @@ -47090,7 +41892,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Coordinate clean-release compliance verification stages." + "BRIEF": "Coordinate clean-release compliance verification stages." }, "relations": [], "schema_warnings": [], @@ -47107,10 +41909,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Legacy wrapper for compatibility with previous orchestrator call style.", "DATA_CONTRACT": "Input -> (repository:CleanReleaseRepository, candidate_id:str, policy_id:str, requested_by:str, manifest_id:str), Output -> ComplianceRun", "POST": "Returns finalized ComplianceRun produced by orchestrator start->execute->finalize sequence.", "PRE": "repository and identifiers are valid and resolvable by orchestrator dependencies.", - "PURPOSE": "Legacy wrapper for compatibility with previous orchestrator call style.", "SIDE_EFFECT": "Reads/writes compliance entities through repository during orchestrator calls." }, "relations": [], @@ -47128,11 +41930,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provide deterministic namespace helpers and isolated in-memory repository creation for demo and real modes.", "COMPLEXITY": 5, "DATA_CONTRACT": "SeedConfig -> DemoEntities", "INVARIANT": "Demo and real namespaces must never collide for generated physical identifiers.", "LAYER": "Domain", - "PURPOSE": "Provide deterministic namespace helpers and isolated in-memory repository creation for demo and real modes.", "SIDE_EFFECT": "Writes demo entities to repository" }, "relations": [ @@ -47157,9 +41959,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve canonical clean-release namespace for requested mode.", "POST": "Returns deterministic namespace key for demo/real separation.", - "PRE": "mode is a non-empty string identifying runtime mode.", - "PURPOSE": "Resolve canonical clean-release namespace for requested mode." + "PRE": "mode is a non-empty string identifying runtime mode." }, "relations": [], "schema_warnings": [], @@ -47176,9 +41978,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build storage-safe physical identifier under mode namespace.", "POST": "Returns deterministic \"{namespace}::{logical_id}\" identifier.", - "PRE": "namespace and logical_id are non-empty strings.", - "PURPOSE": "Build storage-safe physical identifier under mode namespace." + "PRE": "namespace and logical_id are non-empty strings." }, "relations": [], "schema_warnings": [], @@ -47195,9 +41997,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Create isolated in-memory repository instance for selected mode namespace.", "POST": "Returns repository instance tagged with namespace metadata.", - "PRE": "mode is a valid runtime mode marker.", - "PURPOSE": "Create isolated in-memory repository instance for selected mode namespace." + "PRE": "mode is a valid runtime mode marker." }, "relations": [], "schema_warnings": [], @@ -47214,9 +42016,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Data Transfer Objects for clean release compliance subsystem.", "COMPLEXITY": 3, - "LAYER": "Application", - "PURPOSE": "Data Transfer Objects for clean release compliance subsystem." + "LAYER": "Application" }, "relations": [ { @@ -47259,9 +42061,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Canonical enums for clean release lifecycle and compliance.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Canonical enums for clean release lifecycle and compliance." + "LAYER": "Domain" }, "relations": [ { @@ -47285,9 +42087,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Domain exceptions for clean release compliance subsystem.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Domain exceptions for clean release compliance subsystem." + "LAYER": "Domain" }, "relations": [ { @@ -47311,9 +42113,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Unified entry point for clean release operations.", "COMPLEXITY": 3, - "LAYER": "Application", - "PURPOSE": "Unified entry point for clean release operations." + "LAYER": "Application" }, "relations": [ { @@ -47356,11 +42158,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Build deterministic distribution manifest from classified artifact input.", "COMPLEXITY": 5, "DATA_CONTRACT": "ArtifactSet -> Manifest", "INVARIANT": "Equal semantic artifact sets produce identical deterministic hash values.", "LAYER": "Domain", - "PURPOSE": "Build deterministic distribution manifest from classified artifact input.", "SIDE_EFFECT": "Computes hash of artifact set" }, "relations": [ @@ -47385,9 +42187,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build DistributionManifest with deterministic hash and validated counters.", "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." + "PRE": "artifacts list contains normalized classification values." }, "relations": [], "schema_warnings": [], @@ -47404,13 +42206,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Build immutable distribution manifests with deterministic digest and version increment.", "COMPLEXITY": 5, "DATA_CONTRACT": "Manifest -> ManifestRecord; Candidate -> ManifestRecord", "INVARIANT": "Existing manifests are never mutated.", "LAYER": "Domain", "POST": "New immutable manifest is persisted with incremented version and deterministic digest.", "PRE": "Candidate exists and is PREPARED or MANIFEST_BUILT; artifacts are present.", - "PURPOSE": "Build immutable distribution manifests with deterministic digest and version increment.", "SIDE_EFFECT": "May modify manifest state during processing" }, "relations": [ @@ -47447,9 +42249,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Create a new immutable manifest version for a candidate.", "POST": "Returns persisted DistributionManifest with monotonically incremented version.", - "PRE": "Candidate is prepared, artifacts are available, candidate_id is valid.", - "PURPOSE": "Create a new immutable manifest version for a candidate." + "PRE": "Candidate is prepared, artifacts are available, candidate_id is valid." }, "relations": [], "schema_warnings": [], @@ -47466,9 +42268,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Map between domain entities (SQLAlchemy models) and DTOs.", "COMPLEXITY": 3, - "LAYER": "Application", - "PURPOSE": "Map between domain entities (SQLAlchemy models) and DTOs." + "LAYER": "Application" }, "relations": [ { @@ -47511,13 +42313,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Evaluate artifact/source policies for enterprise clean profile with deterministic outcomes.", "COMPLEXITY": 5, "DATA_CONTRACT": "Candidate -> PolicyDecision", "INVARIANT": "Enterprise-clean policy always treats non-registry sources as violations.", "LAYER": "Domain", "POST": "PolicyDecision returned with approval status", "PRE": "PolicyRepository is accessible", - "PURPOSE": "Evaluate artifact/source policies for enterprise clean profile with deterministic outcomes.", "SIDE_EFFECT": "Read-only policy evaluation; no state changes" }, "relations": [ @@ -47557,112 +42359,7 @@ "TEST_SCENARIO": "policy_valid -> Enterprise clean policy with matching registry returns ok=True" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_EDGE", - "message": "@TEST_EDGE is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_EDGE", - "message": "@TEST_EDGE is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_INVARIANT", - "message": "@TEST_INVARIANT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Module", - "Function" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_INVARIANT", - "message": "@TEST_INVARIANT is forbidden for contract type 'Class' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Class" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO 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 CleanPolicyEngine [TYPE Class]\n# @PRE: Active policy exists and is internally consistent.\n# @POST: Deterministic classification and source validation are available.\n# @TEST_CONTRACT: CandidateEvaluationInput -> PolicyValidationResult|SourceValidationResult\n# @TEST_SCENARIO: policy_valid -> Enterprise clean policy with matching registry returns ok=True\n# @TEST_FIXTURE: policy_enterprise_clean -> file:backend/tests/fixtures/clean_release/fixtures_clean_release.json\n# @TEST_EDGE: missing_registry_ref -> policy has empty registry_snapshot_id\n# @TEST_EDGE: conflicting_registry -> policy registry ref does not match registry id\n# @TEST_EDGE: external_endpoint -> endpoint not present in enabled internal registry entries\n# @TEST_INVARIANT: deterministic_classification -> VERIFIED_BY: [policy_valid]\nclass CleanPolicyEngine:\n def __init__(\n self,\n policy: CleanPolicySnapshot | CleanProfilePolicy,\n registry: SourceRegistrySnapshot | ResourceSourceRegistry,\n ):\n self.policy = policy\n self.registry = registry\n\n def validate_policy(self) -> PolicyValidationResult:\n with belief_scope(\"clean_policy_engine.validate_policy\"):\n logger.reason(\n \"Validating enterprise-clean policy and internal registry consistency\"\n )\n reasons: list[str] = []\n\n registry_ref = (\n getattr(self.policy, \"registry_snapshot_id\", None)\n or getattr(self.policy, \"internal_source_registry_ref\", \"\")\n or \"\"\n )\n if not str(registry_ref).strip():\n reasons.append(\"Policy missing internal_source_registry_ref\")\n\n content = dict(getattr(self.policy, \"content_json\", None) or {})\n if not content:\n content = {\n \"profile\": getattr(\n getattr(self.policy, \"profile\", None),\n \"value\",\n getattr(self.policy, \"profile\", \"standard\"),\n ),\n \"prohibited_artifact_categories\": list(\n getattr(self.policy, \"prohibited_artifact_categories\", []) or []\n ),\n \"required_system_categories\": list(\n getattr(self.policy, \"required_system_categories\", []) or []\n ),\n \"external_source_forbidden\": getattr(\n self.policy, \"external_source_forbidden\", False\n ),\n }\n\n profile = content.get(\"profile\", \"standard\")\n\n if profile == \"enterprise-clean\":\n if not content.get(\"prohibited_artifact_categories\"):\n reasons.append(\n \"Enterprise policy requires prohibited artifact categories\"\n )\n if not content.get(\"external_source_forbidden\"):\n reasons.append(\n \"Enterprise policy requires external_source_forbidden=true\"\n )\n\n registry_id = getattr(self.registry, \"id\", None) or getattr(\n self.registry, \"registry_id\", None\n )\n if registry_id != registry_ref:\n reasons.append(\"Policy registry ref does not match provided registry\")\n\n allowed_hosts = getattr(self.registry, \"allowed_hosts\", None)\n if allowed_hosts is None:\n entries = getattr(self.registry, \"entries\", []) or []\n allowed_hosts = [\n entry.host for entry in entries if getattr(entry, \"enabled\", True)\n ]\n\n if not allowed_hosts:\n reasons.append(\"Registry must contain allowed hosts\")\n\n logger.reflect(\n f\"Policy validation completed. blocking_reasons={len(reasons)}\"\n )\n return PolicyValidationResult(\n ok=len(reasons) == 0, blocking_reasons=reasons\n )\n\n def classify_artifact(self, artifact: dict) -> str:\n category = (artifact.get(\"category\") or \"\").strip()\n content = dict(getattr(self.policy, \"content_json\", None) or {})\n if not content:\n content = {\n \"required_system_categories\": list(\n getattr(self.policy, \"required_system_categories\", []) or []\n ),\n \"prohibited_artifact_categories\": list(\n getattr(self.policy, \"prohibited_artifact_categories\", []) or []\n ),\n }\n\n required = content.get(\"required_system_categories\", [])\n prohibited = content.get(\"prohibited_artifact_categories\", [])\n\n if category in required:\n logger.reason(\n f\"Artifact category '{category}' classified as required-system\"\n )\n return \"required-system\"\n if category in prohibited:\n logger.reason(\n f\"Artifact category '{category}' classified as excluded-prohibited\"\n )\n return \"excluded-prohibited\"\n logger.reflect(f\"Artifact category '{category}' classified as allowed\")\n return \"allowed\"\n\n def validate_resource_source(self, endpoint: str) -> SourceValidationResult:\n with belief_scope(\"clean_policy_engine.validate_resource_source\"):\n if not endpoint:\n logger.explore(\n \"Empty endpoint detected; treating as blocking external-source violation\"\n )\n return SourceValidationResult(\n ok=False,\n violation={\n \"category\": \"external-source\",\n \"location\": \"\",\n \"remediation\": \"Replace with approved internal server\",\n \"blocked_release\": True,\n },\n )\n\n allowed_hosts = getattr(self.registry, \"allowed_hosts\", None)\n if allowed_hosts is None:\n entries = getattr(self.registry, \"entries\", []) or []\n allowed_hosts = [\n entry.host for entry in entries if getattr(entry, \"enabled\", True)\n ]\n allowed_hosts = set(allowed_hosts or [])\n normalized = endpoint.strip().lower()\n\n if normalized in allowed_hosts:\n logger.reason(\n f\"Endpoint '{normalized}' is present in internal allowlist\"\n )\n return SourceValidationResult(ok=True, violation=None)\n\n logger.explore(f\"Endpoint '{endpoint}' is outside internal allowlist\")\n return SourceValidationResult(\n ok=False,\n violation={\n \"category\": \"external-source\",\n \"location\": endpoint,\n \"remediation\": \"Replace with approved internal server\",\n \"blocked_release\": True,\n },\n )\n\n def evaluate_candidate(\n self, artifacts: Iterable[dict], sources: Iterable[str]\n ) -> tuple[list[dict], list[dict]]:\n with belief_scope(\"clean_policy_engine.evaluate_candidate\"):\n logger.reason(\n \"Evaluating candidate artifacts and resource sources against enterprise policy\"\n )\n classified: list[dict] = []\n violations: list[dict] = []\n\n for artifact in artifacts:\n classification = self.classify_artifact(artifact)\n enriched = dict(artifact)\n enriched[\"classification\"] = classification\n if classification == \"excluded-prohibited\":\n violations.append(\n {\n \"category\": \"data-purity\",\n \"location\": artifact.get(\"path\", \"\"),\n \"remediation\": \"Remove prohibited content\",\n \"blocked_release\": True,\n }\n )\n classified.append(enriched)\n\n for source in sources:\n source_result = self.validate_resource_source(source)\n if not source_result.ok and source_result.violation:\n violations.append(source_result.violation)\n\n logger.reflect(\n f\"Candidate evaluation finished. artifacts={len(classified)} violations={len(violations)}\"\n )\n return classified, violations\n\n\n# #endregion CleanPolicyEngine\n" @@ -47676,13 +42373,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Resolve trusted policy and registry snapshots from ConfigManager without runtime overrides.", "COMPLEXITY": 5, "DATA_CONTRACT": "PolicyRequest -> ResolutionResult", "INVARIANT": "Trusted snapshot resolution is based only on ConfigManager active identifiers.", "LAYER": "Domain", "POST": "ResolutionResult with matched policies", "PRE": "PolicyRepository and Manifest are available", - "PURPOSE": "Resolve trusted policy and registry snapshots from ConfigManager without runtime overrides.", "SIDE_EFFECT": "Read-only policy evaluation; logs resolution decisions" }, "relations": [ @@ -47719,9 +42416,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve immutable trusted policy and registry snapshots using active config IDs only.", "POST": "Returns immutable policy and registry snapshots; runtime override attempts are rejected.", "PRE": "ConfigManager provides active_policy_id and active_registry_id; repository contains referenced snapshots.", - "PURPOSE": "Resolve immutable trusted policy and registry snapshots using active config IDs only.", "SIDE_EFFECT": "None." }, "relations": [], @@ -47739,11 +42436,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Prepare release candidate by policy evaluation and deterministic manifest creation.", "COMPLEXITY": 5, "DATA_CONTRACT": "PrepareRequest -> PrepareResult", "INVARIANT": "Candidate preparation always persists manifest and candidate status deterministically.", "LAYER": "Domain", - "PURPOSE": "Prepare release candidate by policy evaluation and deterministic manifest creation.", "SIDE_EFFECT": "Persists candidate and manifest" }, "relations": [ @@ -47780,9 +42477,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Legacy compatibility wrapper kept for migration period.", "POST": "Delegates to canonical prepare_candidate and preserves response shape.", - "PRE": "Same as prepare_candidate.", - "PURPOSE": "Legacy compatibility wrapper kept for migration period." + "PRE": "Same as prepare_candidate." }, "relations": [], "schema_warnings": [], @@ -47799,10 +42496,10 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Enforce publication and revocation gates with append-only publication records.", "COMPLEXITY": 5, "INVARIANT": "Publication records are append-only snapshots; revoke mutates only publication status for targeted record.", - "LAYER": "Domain", - "PURPOSE": "Enforce publication and revocation gates with append-only publication records." + "LAYER": "Domain" }, "relations": [ { @@ -47844,9 +42541,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Provide in-memory append-only publication storage.", "POST": "Returns publication list attached to repository.", - "PRE": "repository is initialized.", - "PURPOSE": "Provide in-memory append-only publication storage." + "PRE": "repository is initialized." }, "relations": [], "schema_warnings": [], @@ -47863,9 +42560,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve latest publication record for candidate.", "POST": "Returns latest record or None.", - "PRE": "candidate_id is non-empty.", - "PURPOSE": "Resolve latest publication record for candidate." + "PRE": "candidate_id is non-empty." }, "relations": [], "schema_warnings": [], @@ -47882,9 +42579,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve latest approval decision from repository decision store.", "POST": "Returns latest decision object or None.", - "PRE": "candidate_id is non-empty.", - "PURPOSE": "Resolve latest approval decision from repository decision store." + "PRE": "candidate_id is non-empty." }, "relations": [], "schema_warnings": [], @@ -47901,9 +42598,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Create immutable publication record for approved candidate.", "POST": "New ACTIVE publication record is appended.", - "PRE": "Candidate exists, report belongs to candidate, latest approval is APPROVED.", - "PURPOSE": "Create immutable publication record for approved candidate." + "PRE": "Candidate exists, report belongs to candidate, latest approval is APPROVED." }, "relations": [], "schema_warnings": [], @@ -47920,9 +42617,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Revoke existing publication record without deleting history.", "POST": "Target publication status becomes REVOKED and updated record is returned.", - "PRE": "publication_id exists in repository publication store.", - "PURPOSE": "Revoke existing publication record without deleting history." + "PRE": "publication_id exists in repository publication store." }, "relations": [], "schema_warnings": [], @@ -47939,13 +42636,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Build and persist compliance reports with consistent counter invariants.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[ComplianceRun, List[ComplianceViolation]] -> Output[ComplianceReport]", "INVARIANT": "blocking_violations_count never exceeds violations_count.", "LAYER": "Domain", "POST": "Returns immutable report payloads with consistent violation counters and operator summary content.", "PRE": "Compliance run is terminal and repository persistence is available for report storage.", - "PURPOSE": "Build and persist compliance reports with consistent counter invariants.", "SIDE_EFFECT": "Writes report artifacts to repository when persistence helpers are invoked.", "TEST_CONTRACT": "ComplianceCheckRun,List[ComplianceViolation] -> ComplianceReport", "TEST_EDGE": "missing_operator_summary -> non-terminal run prevents report creation and summary generation", @@ -47966,70 +42663,7 @@ "target_ref": "[RepositoryRelations]" } ], - "schema_warnings": [ - { - "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 C5", - "detail": { - "actual_complexity": 5, - "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 C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is forbidden for contract type 'Module' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ReportBuilder [C:5] [TYPE Module] [SEMANTICS report, clean-release, compliance, builder, render]\n# @BRIEF Build and persist compliance reports with consistent counter invariants.\n# @LAYER: Domain\n# @RELATION DEPENDS_ON -> [CleanReleaseModels]\n# @RELATION DEPENDS_ON -> [RepositoryRelations]\n# @INVARIANT: blocking_violations_count never exceeds violations_count.\n# @TEST_CONTRACT: ComplianceCheckRun,List[ComplianceViolation] -> ComplianceReport\n# @TEST_FIXTURE: blocked_with_two_violations -> file:backend/tests/fixtures/clean_release/fixtures_clean_release.json\n# @TEST_EDGE: empty_violations_for_blocked -> BLOCKED run with zero blocking violations raises ValueError\n# @TEST_EDGE: counter_mismatch -> blocking counter cannot exceed total violations counter\n# @TEST_EDGE: missing_operator_summary -> non-terminal run prevents report creation and summary generation\n# @TEST_INVARIANT: blocking_count_le_total_count -> VERIFIED_BY: [counter_mismatch, empty_violations_for_blocked]\n# @DATA_CONTRACT: Input[ComplianceRun, List[ComplianceViolation]] -> Output[ComplianceReport]\n# @PRE: Compliance run is terminal and repository persistence is available for report storage.\n# @POST: Returns immutable report payloads with consistent violation counters and operator summary content.\n# @SIDE_EFFECT: Writes report artifacts to repository when persistence helpers are invoked.\n\nfrom __future__ import annotations\n\nfrom datetime import UTC, datetime\nfrom uuid import uuid4\n\nfrom ...models.clean_release import ComplianceReport, ComplianceRun, ComplianceViolation\nfrom .enums import ComplianceDecision, RunStatus\nfrom .repository import CleanReleaseRepository\n\n\nclass ComplianceReportBuilder:\n def __init__(self, repository: CleanReleaseRepository):\n self.repository = repository\n\n def build_report_payload(\n self, check_run: ComplianceRun, violations: list[ComplianceViolation]\n ) -> ComplianceReport:\n if check_run.status == RunStatus.RUNNING:\n raise ValueError(\"Cannot build report for non-terminal run\")\n\n violations_count = len(violations)\n blocking_violations_count = sum(\n 1\n for v in violations\n if bool(getattr(v, \"blocked_release\", False))\n or bool(getattr(v, \"evidence_json\", {}).get(\"blocked_release\", False))\n )\n\n if (\n check_run.final_status == ComplianceDecision.BLOCKED\n and blocking_violations_count <= 0\n ):\n raise ValueError(\"Blocked run requires at least one blocking violation\")\n\n summary = (\n \"Compliance passed with no blocking violations\"\n if check_run.final_status == ComplianceDecision.PASSED\n else f\"Blocked with {blocking_violations_count} blocking violation(s)\"\n )\n\n return ComplianceReport(\n id=f\"CCR-{uuid4()}\",\n run_id=check_run.id,\n candidate_id=check_run.candidate_id,\n generated_at=datetime.now(UTC),\n final_status=check_run.final_status,\n summary_json={\n \"operator_summary\": summary,\n \"violations_count\": violations_count,\n \"blocking_violations_count\": blocking_violations_count,\n },\n immutable=True,\n )\n\n def persist_report(self, report: ComplianceReport) -> ComplianceReport:\n return self.repository.save_report(report)\n\n\n# #endregion ReportBuilder\n" @@ -48043,8 +42677,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Export all clean release repositories." + "BRIEF": "Export all clean release repositories.", + "COMPLEXITY": 3 }, "relations": [ { @@ -48068,9 +42702,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist and query approval decisions.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Persist and query approval decisions." + "LAYER": "Infra" }, "relations": [ { @@ -48113,9 +42747,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist and query candidate artifacts.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Persist and query candidate artifacts." + "LAYER": "Infra" }, "relations": [ { @@ -48158,9 +42792,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist and query audit logs for clean release operations.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Persist and query audit logs for clean release operations." + "LAYER": "Infra" }, "relations": [ { @@ -48203,9 +42837,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist and query release candidates.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Persist and query release candidates." + "LAYER": "Infra" }, "relations": [ { @@ -48248,9 +42882,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist and query compliance runs, stage runs, and violations.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Persist and query compliance runs, stage runs, and violations." + "LAYER": "Infra" }, "relations": [ { @@ -48293,9 +42927,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist and query distribution manifests.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Persist and query distribution manifests." + "LAYER": "Infra" }, "relations": [ { @@ -48350,8 +42984,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Encapsulates database CRUD operations for DistributionManifest entities." + "BRIEF": "Encapsulates database CRUD operations for DistributionManifest entities.", + "COMPLEXITY": 3 }, "relations": [ { @@ -48381,9 +43015,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist and query policy and registry snapshots.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Persist and query policy and registry snapshots." + "LAYER": "Infra" }, "relations": [ { @@ -48426,9 +43060,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist and query publication records.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Persist and query publication records." + "LAYER": "Infra" }, "relations": [ { @@ -48471,9 +43105,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist and query compliance reports.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "Persist and query compliance reports." + "LAYER": "Infra" }, "relations": [ { @@ -48516,13 +43150,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Provide repository adapter for clean release entities with deterministic access methods.", "COMPLEXITY": 5, "DATA_CONTRACT": "Entity -> RepositoryOperation", "INVARIANT": "Repository operations are side-effect free outside explicit save/update calls.", "LAYER": "Infrastructure", "POST": "Repository operations exported", "PRE": "In-memory storage initialized", - "PURPOSE": "Provide repository adapter for clean release entities with deterministic access methods.", "SIDE_EFFECT": "Modifies in-memory state on save/update" }, "relations": [ @@ -48547,7 +43181,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Data access object for clean release lifecycle." + "BRIEF": "Data access object for clean release lifecycle." }, "relations": [], "schema_warnings": [], @@ -48564,13 +43198,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Validate that all resource endpoints belong to the approved internal source registry.", "COMPLEXITY": 5, "DATA_CONTRACT": "SourceURL -> ViolationReport", "INVARIANT": "Any endpoint outside enabled registry entries is treated as external-source violation.", "LAYER": "Domain", "POST": "Source isolation violations identified", "PRE": "Source registry configured", - "PURPOSE": "Validate that all resource endpoints belong to the approved internal source registry.", "SIDE_EFFECT": "None (read-only check)" }, "relations": [ @@ -48595,11 +43229,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Define compliance stage order and helper functions for deterministic run-state evaluation.", "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": [ @@ -48630,9 +43264,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build default deterministic stage pipeline implementation order.", "POST": "Returns stage instances in mandatory execution order.", - "PRE": "None.", - "PURPOSE": "Build default deterministic stage pipeline implementation order." + "PRE": "None." }, "relations": [], "schema_warnings": [], @@ -48649,9 +43283,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Convert stage result list to dictionary by stage name.", "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." + "PRE": "stage_results may be empty or contain unique stage names." }, "relations": [], "schema_warnings": [], @@ -48668,9 +43302,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Identify mandatory stages that are absent from run results.", "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." + "PRE": "stage_status_map contains zero or more known stage statuses." }, "relations": [], "schema_warnings": [], @@ -48687,9 +43321,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Derive final run status from stage results with deterministic blocking behavior.", "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." + "PRE": "Stage statuses correspond to compliance checks." }, "relations": [], "schema_warnings": [], @@ -48706,11 +43340,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Define shared contracts and helpers for pluggable clean-release compliance stages.", "COMPLEXITY": 5, "DATA_CONTRACT": "Context -> StageResult", "INVARIANT": "Stage execution is deterministic for equal input context.", "LAYER": "Domain", - "PURPOSE": "Define shared contracts and helpers for pluggable clean-release compliance stages.", "SIDE_EFFECT": "None (deterministic execution)" }, "relations": [ @@ -48741,7 +43375,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Immutable input envelope passed to each compliance stage." + "BRIEF": "Immutable input envelope passed to each compliance stage." }, "relations": [], "schema_warnings": [], @@ -48758,7 +43392,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Structured stage output containing decision, details and violations." + "BRIEF": "Structured stage output containing decision, details and violations." }, "relations": [], "schema_warnings": [], @@ -48775,7 +43409,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Protocol for pluggable stage implementations." + "BRIEF": "Protocol for pluggable stage implementations." }, "relations": [], "schema_warnings": [], @@ -48792,9 +43426,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build persisted stage run record from stage result.", "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." + "PRE": "run_id and stage_name are non-empty." }, "relations": [], "schema_warnings": [], @@ -48811,9 +43445,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Construct a compliance violation with normalized defaults.", "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." + "PRE": "run_id, stage_name, code and message are non-empty." }, "relations": [], "schema_warnings": [], @@ -48830,11 +43464,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Evaluate manifest purity counters and emit blocking violations for prohibited artifacts.", "COMPLEXITY": 5, "DATA_CONTRACT": "Manifest -> DataPurityVerdict", "INVARIANT": "prohibited_detected_count > 0 always yields BLOCKED stage decision.", "LAYER": "Domain", - "PURPOSE": "Evaluate manifest purity counters and emit blocking violations for prohibited artifacts.", "SIDE_EFFECT": "None (read-only validation)" }, "relations": [ @@ -48865,9 +43499,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate manifest summary for prohibited artifacts.", "POST": "Returns PASSED when no prohibited artifacts are detected, otherwise BLOCKED with violations.", - "PRE": "context.manifest.content_json contains summary block or defaults to safe counters.", - "PURPOSE": "Validate manifest summary for prohibited artifacts." + "PRE": "context.manifest.content_json contains summary block or defaults to safe counters." }, "relations": [], "schema_warnings": [], @@ -48884,11 +43518,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Verify manifest-declared sources belong to trusted internal registry allowlist.", "COMPLEXITY": 5, "DATA_CONTRACT": "Sources -> SourceViolationReport", "INVARIANT": "Any source host outside allowed_hosts yields BLOCKED decision with at least one violation.", "LAYER": "Domain", - "PURPOSE": "Verify manifest-declared sources belong to trusted internal registry allowlist.", "SIDE_EFFECT": "None (read-only validation)" }, "relations": [ @@ -48919,9 +43553,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Enforce internal-source-only policy from trusted registry snapshot.", "POST": "Returns PASSED when all hosts are allowed; otherwise BLOCKED and violations captured.", - "PRE": "context.registry.allowed_hosts is available.", - "PURPOSE": "Enforce internal-source-only policy from trusted registry snapshot." + "PRE": "context.registry.allowed_hosts is available." }, "relations": [], "schema_warnings": [], @@ -48938,11 +43572,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Ensure run is bound to the exact manifest snapshot and digest used at run creation time.", "COMPLEXITY": 5, "DATA_CONTRACT": "RunData -> ConsistencyVerdict", "INVARIANT": "Digest mismatch between run and manifest yields ERROR with blocking violation evidence.", "LAYER": "Domain", - "PURPOSE": "Ensure run is bound to the exact manifest snapshot and digest used at run creation time.", "SIDE_EFFECT": "None (read-only validation)" }, "relations": [ @@ -48973,9 +43607,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate run/manifest linkage consistency.", "POST": "Returns PASSED when digests match, otherwise ERROR with one violation.", - "PRE": "context.run and context.manifest are loaded from repository for same run.", - "PURPOSE": "Validate run/manifest linkage consistency." + "PRE": "context.run and context.manifest are loaded from repository for same run." }, "relations": [], "schema_warnings": [], @@ -48992,11 +43626,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Block manifest payloads that expose external endpoints outside trusted schemes and hosts.", "COMPLEXITY": 5, "DATA_CONTRACT": "Endpoints -> EndpointViolationReport", "INVARIANT": "Endpoint outside allowed scheme/host always yields BLOCKED stage decision.", "LAYER": "Domain", - "PURPOSE": "Block manifest payloads that expose external endpoints outside trusted schemes and hosts.", "SIDE_EFFECT": "None (read-only validation)" }, "relations": [ @@ -49027,9 +43661,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate endpoint references from manifest against trusted registry.", "POST": "Returns PASSED when all endpoints are trusted, otherwise BLOCKED with endpoint violations.", - "PRE": "context.registry includes allowed hosts and schemes.", - "PURPOSE": "Validate endpoint references from manifest against trusted registry." + "PRE": "context.registry includes allowed hosts and schemes." }, "relations": [], "schema_warnings": [], @@ -49046,8 +43680,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Services", - "PURPOSE": "Provides services for dataset-centered orchestration flow." + "BRIEF": "Provides services for dataset-centered orchestration flow.", + "LAYER": "Services" }, "relations": [ { @@ -49109,13 +43743,13 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Manage one-question-at-a-time clarification state, deterministic answer persistence, and readiness/finding updates.", "COMPLEXITY": 4, "DATA_CONTRACT": "Input[DatasetReviewSession|ClarificationAnswerCommand] -> Output[ClarificationStateResult]", "INVARIANT": "Only one active clarification question may exist at a time; skipped and expert-review items remain unresolved and visible.", "LAYER": "Domain", "POST": "Active clarification payload exposes one highest-priority unresolved question, and each recorded answer is persisted before pointer/readiness mutation.", "PRE": "Target session contains a persisted clarification aggregate in the current ownership scope.", - "PURPOSE": "Manage one-question-at-a-time clarification state, deterministic answer persistence, and readiness/finding updates.", "RATIONALE": "Original 635-line file exceeded INV_7 (400-line module limit). Extracted pure helpers into _helpers sub-module.", "REJECTED": "Keeping all clarification logic in one file because it exceeded the fractal limit.", "SIDE_EFFECT": "Persists clarification answers, question/session states, and related readiness/finding changes." @@ -49172,8 +43806,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Typed active-question payload returned to the API layer." + "BRIEF": "Typed active-question payload returned to the API layer.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49190,8 +43824,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Clarification state result carrying the current session, active payload, and changed findings." + "BRIEF": "Clarification state result carrying the current session, active payload, and changed findings.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49208,8 +43842,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Typed answer command for clarification state mutation." + "BRIEF": "Typed answer command for clarification state mutation.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49226,9 +43860,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Pure helper functions for clarification engine — question selection, counting, normalization, finding upsert, and readiness derivation.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Pure helper functions for clarification engine — question selection, counting, normalization, finding upsert, and readiness derivation." + "LAYER": "Domain" }, "relations": [ { @@ -49252,8 +43886,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Select the next unresolved question in deterministic priority order." + "BRIEF": "Select the next unresolved question in deterministic priority order.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49270,8 +43904,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Count questions whose answers fully resolved the ambiguity." + "BRIEF": "Count questions whose answers fully resolved the ambiguity.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -49288,8 +43922,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Count questions still unresolved or deferred after clarification interaction." + "BRIEF": "Count questions still unresolved or deferred after clarification interaction.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -49306,8 +43940,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Validate and normalize answer payload based on answer kind and active question options." + "BRIEF": "Validate and normalize answer payload based on answer kind and active question options.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49324,8 +43958,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Build a compact audit note describing how the clarification answer affects session state." + "BRIEF": "Build a compact audit note describing how the clarification answer affects session state.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -49342,8 +43976,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Keep one finding per clarification topic aligned with answer outcome and unresolved visibility rules." + "BRIEF": "Keep one finding per clarification topic aligned with answer outcome and unresolved visibility rules.", + "COMPLEXITY": 3 }, "relations": [ { @@ -49367,8 +44001,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Recompute readiness after clarification mutation while preserving unresolved visibility semantics." + "BRIEF": "Recompute readiness after clarification mutation while preserving unresolved visibility semantics.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49385,8 +44019,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Recompute next-action guidance after clarification mutations." + "BRIEF": "Recompute next-action guidance after clarification mutations.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49403,12 +44037,12 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Persist explicit session mutation events for dataset-review audit trails without weakening ownership or approval invariants.", "COMPLEXITY": 4, "DATA_CONTRACT": "Input[SessionEventPayload] -> Output[SessionEvent]", "LAYER": "Domain", "POST": "Every logged event is committed as an explicit, queryable audit record with deterministic event metadata.", "PRE": "Caller provides an owned session scope and an authenticated actor identifier for each persisted mutation event.", - "PURPOSE": "Persist explicit session mutation events for dataset-review audit trails without weakening ownership or approval invariants.", "SIDE_EFFECT": "Inserts persisted session event rows and emits runtime belief-state logs for audit-sensitive mutations." }, "relations": [ @@ -49454,8 +44088,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Typed input contract for one persisted dataset-review session audit event." + "BRIEF": "Typed input contract for one persisted dataset-review session audit event.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49472,11 +44106,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Persist explicit dataset-review session audit events with meaningful runtime reasoning logs.", "COMPLEXITY": 4, "DATA_CONTRACT": "Input[SessionEventPayload] -> Output[SessionEvent]", "POST": "Returns the committed session event row with a stable identifier and stored detail payload.", "PRE": "The database session is live and payload identifiers are non-empty.", - "PURPOSE": "Persist explicit dataset-review session audit events with meaningful runtime reasoning logs.", "SIDE_EFFECT": "Writes one audit row to persistence and emits logger.reason/logger.reflect traces." }, "relations": [ @@ -49507,13 +44141,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Coordinate dataset review session startup and lifecycle-safe intake recovery for one authenticated user.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[SessionCommand] -> Output[DatasetReviewSession | CompiledPreview | DatasetRunContext]", "INVARIANT": "Launch is blocked unless a current session has no open blocking findings, all launch-sensitive mappings are approved, and a non-stale Superset-generated compiled preview matches the current input fingerprint.", "LAYER": "Domain", "POST": "state transitions are persisted atomically and emit observable progress for long-running steps.", "PRE": "session mutations must execute inside a persisted session boundary scoped to one authenticated user.", - "PURPOSE": "Coordinate dataset review session startup and lifecycle-safe intake recovery for one authenticated user.", "RATIONALE": "Original 1198-line monolith violated INV_7 (400-line module limit). Decomposed into commands and helpers sub-modules while preserving the orchestrator class as the single entry point.", "REJECTED": "Keeping all orchestration logic in one file because it exceeded the fractal limit by 3x.", "SIDE_EFFECT": "creates task records, updates session aggregates, triggers upstream Superset calls, persists audit artifacts." @@ -49576,9 +44210,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Typed command and result dataclasses for dataset review orchestration boundary.", "COMPLEXITY": 2, - "LAYER": "Domain", - "PURPOSE": "Typed command and result dataclasses for dataset review orchestration boundary." + "LAYER": "Domain" }, "relations": [ { @@ -49608,8 +44242,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Typed input contract for starting a dataset review session." + "BRIEF": "Typed input contract for starting a dataset review session.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49626,8 +44260,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Session-start result carrying the persisted session and intake recovery metadata." + "BRIEF": "Session-start result carrying the persisted session and intake recovery metadata.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49644,8 +44278,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Typed input contract for compiling one Superset-backed session preview." + "BRIEF": "Typed input contract for compiling one Superset-backed session preview.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49662,8 +44296,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Result contract for one persisted compiled preview attempt." + "BRIEF": "Result contract for one persisted compiled preview attempt.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49680,8 +44314,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Typed input contract for launching one dataset-review session into SQL Lab." + "BRIEF": "Typed input contract for launching one dataset-review session into SQL Lab.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49698,8 +44332,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Launch result carrying immutable run context and any gate blockers." + "BRIEF": "Launch result carrying immutable run context and any gate blockers.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49716,11 +44350,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Pure helper methods extracted from DatasetReviewOrchestrator for INV_7 compliance — snapshot, blockers, fingerprint, recovery bootstrap.", "COMPLEXITY": 4, "LAYER": "Domain", "POST": "Helper results are deterministic and do not mutate persistence directly.", - "PRE": "Caller provides a loaded session aggregate with hydrated child collections.", - "PURPOSE": "Pure helper methods extracted from DatasetReviewOrchestrator for INV_7 compliance — snapshot, blockers, fingerprint, recovery bootstrap." + "PRE": "Caller provides a loaded session aggregate with hydrated child collections." }, "relations": [ { @@ -49750,8 +44384,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Normalize dataset-selection payload into canonical session references." + "BRIEF": "Normalize dataset-selection payload into canonical session references.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49768,8 +44402,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Create the first profile snapshot so exports and detail views remain usable immediately after intake." + "BRIEF": "Create the first profile snapshot so exports and detail views remain usable immediately after intake.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49786,10 +44420,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Project partial Superset intake recovery into explicit findings without blocking session usability.", "COMPLEXITY": 3, "POST": "Returns warning-level findings that preserve usable but incomplete state.", - "PRE": "parsed_context.partial_recovery is true.", - "PURPOSE": "Project partial Superset intake recovery into explicit findings without blocking session usability." + "PRE": "parsed_context.partial_recovery is true." }, "relations": [], "schema_warnings": [], @@ -49806,8 +44440,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Separate normalized filter payload metadata from the user-facing effective filter value." + "BRIEF": "Separate normalized filter payload metadata from the user-facing effective filter value.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49824,10 +44458,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Build effective filters, template params, approvals, and fingerprint for preview and launch gating.", "COMPLEXITY": 4, "POST": "Returns deterministic execution snapshot for current session state without mutating persistence.", - "PRE": "Session aggregate includes imported filters, template variables, and current execution mappings.", - "PURPOSE": "Build effective filters, template params, approvals, and fingerprint for preview and launch gating." + "PRE": "Session aggregate includes imported filters, template variables, and current execution mappings." }, "relations": [], "schema_warnings": [], @@ -49844,10 +44478,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Enforce launch gates from findings, approvals, and current preview truth.", "COMPLEXITY": 3, "POST": "Returns explicit blocker codes for every unmet launch invariant.", - "PRE": "execution_snapshot was computed from current session state.", - "PURPOSE": "Enforce launch gates from findings, approvals, and current preview truth." + "PRE": "execution_snapshot was computed from current session state." }, "relations": [], "schema_warnings": [], @@ -49864,8 +44498,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Resolve the current latest preview snapshot for one session aggregate." + "BRIEF": "Resolve the current latest preview snapshot for one session aggregate.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -49882,8 +44516,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Produce deterministic execution fingerprint for preview truth and staleness checks." + "BRIEF": "Produce deterministic execution fingerprint for preview truth and staleness checks.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -49900,11 +44534,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Persistence mutation operations for dataset review session aggregates — profile/findings, recovery state, preview, run context.", "COMPLEXITY": 4, "LAYER": "Domain", "POST": "Session aggregate writes preserve ownership and version semantics.", - "PRE": "All mutations execute within authenticated request or task scope.", - "PURPOSE": "Persistence mutation operations for dataset review session aggregates — profile/findings, recovery state, preview, run context." + "PRE": "All mutations execute within authenticated request or task scope." }, "relations": [ { @@ -49934,10 +44568,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Persist profile state and replace validation findings for an owned session in one transaction.", "COMPLEXITY": 4, "POST": "stored profile matches the current session and findings are replaced by the supplied collection.", "PRE": "session_id belongs to user_id and the supplied profile/findings belong to the same aggregate scope.", - "PURPOSE": "Persist profile state and replace validation findings for an owned session in one transaction.", "SIDE_EFFECT": "updates profile rows, deletes stale findings, inserts current findings, and commits the transaction." }, "relations": [], @@ -49955,10 +44589,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Persist imported filters, template variables, and initial execution mappings for one owned session.", "COMPLEXITY": 4, "POST": "Recovery state persisted to database.", "PRE": "session_id belongs to user_id.", - "PURPOSE": "Persist imported filters, template variables, and initial execution mappings for one owned session.", "SIDE_EFFECT": "Writes to database." }, "relations": [], @@ -49976,10 +44610,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist a preview snapshot and mark prior session previews stale.", "COMPLEXITY": 3, "POST": "preview is persisted and the session points to the latest preview identifier.", "PRE": "session_id belongs to user_id and preview is prepared for the same session aggregate.", - "PURPOSE": "Persist a preview snapshot and mark prior session previews stale.", "SIDE_EFFECT": "updates prior preview statuses, inserts a preview row, mutates the parent session, and commits." }, "relations": [], @@ -49997,10 +44631,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persist an immutable launch audit snapshot for an owned session.", "COMPLEXITY": 3, "POST": "run context is persisted and linked as the latest launch snapshot for the session.", "PRE": "session_id belongs to user_id and run_context targets the same aggregate.", - "PURPOSE": "Persist an immutable launch audit snapshot for an owned session.", "SIDE_EFFECT": "inserts a run-context row, mutates the parent session pointer, and commits." }, "relations": [], @@ -50018,13 +44652,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Persist and retrieve dataset review session aggregates, including readiness, findings, semantic decisions, clarification state, previews, and run contexts.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[SessionMutation] -> Output[PersistedSessionAggregate]", "INVARIANT": "answers, mapping approvals, preview artifacts, and launch snapshots are never attributed to the wrong user or session.", "LAYER": "Domain", "POST": "session aggregate reads are structurally consistent and writes preserve ownership and version semantics.", "PRE": "repository operations execute within authenticated request or task scope.", - "PURPOSE": "Persist and retrieve dataset review session aggregates, including readiness, findings, semantic decisions, clarification state, previews, and run contexts.", "RATIONALE": "Original 627-line file exceeded INV_7 (400-line module limit). Extracted mutation operations into _mutations sub-module.", "REJECTED": "Keeping all repository operations in one file because it exceeded the fractal limit.", "SIDE_EFFECT": "reads and writes SQLAlchemy-backed session aggregates." @@ -50075,8 +44709,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Signal optimistic-lock conflicts for dataset review session mutations." + "BRIEF": "Signal optimistic-lock conflicts for dataset review session mutations.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -50093,12 +44727,12 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Resolve and rank semantic candidates from trusted dictionary-like sources before any inferred fallback.", "COMPLEXITY": 4, "INVARIANT": "Manual overrides are never silently replaced by imported, inferred, or AI-generated values.", "LAYER": "Domain", "POST": "candidate ranking follows the configured confidence hierarchy and unresolved fuzzy matches remain reviewable.", "PRE": "selected source and target field set must be known.", - "PURPOSE": "Resolve and rank semantic candidates from trusted dictionary-like sources before any inferred fallback.", "SIDE_EFFECT": "may create conflict findings and semantic candidate records." }, "relations": [ @@ -50156,8 +44790,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Carries field-level dictionary resolution output with explicit review and partial-recovery state." + "BRIEF": "Carries field-level dictionary resolution output with explicit review and partial-recovery state.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -50174,9 +44808,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Composed GitService via multiple inheritance from domain-specific mixins.", "COMPLEXITY": 3, "LAYER": "Infra", - "PURPOSE": "Composed GitService via multiple inheritance from domain-specific mixins.", "RATIONALE": "Decomposed from monolithic git_service.py (2101 lines) into" }, "relations": [ @@ -50268,8 +44902,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Composed GitService class providing all Git operations — init, clone, branches, commits, push, pull," + "BRIEF": "Composed GitService class providing all Git operations — init, clone, branches, commits, push, pull,", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -50286,9 +44920,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Core GitService base class — initialization, path resolution, repo lifecycle (init/delete/get), identity configuration, concurrent locking, and shared HTTP client pool.", "COMPLEXITY": 4, "LAYER": "Infra", - "PURPOSE": "Core GitService base class — initialization, path resolution, repo lifecycle (init/delete/get), identity configuration, concurrent locking, and shared HTTP client pool.", "RATIONALE": "Extracted 'git_repos' default into DEFAULT_GIT_REPOS_PATH constant. Fixed typo 'repositorys' → 'repositories' with breaking change warning for existing installations." }, "relations": [ @@ -50350,9 +44984,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Branch and commit operations for GitService — gitflow branches, list/create/checkout branches, commit changes (all concurrent-safe via per-dashboard locks).", "COMPLEXITY": 4, - "LAYER": "Infra", - "PURPOSE": "Branch and commit operations for GitService — gitflow branches, list/create/checkout branches, commit changes (all concurrent-safe via per-dashboard locks)." + "LAYER": "Infra" }, "relations": [ { @@ -50414,9 +45048,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Gitea API operations for GitService — connection testing, repository CRUD, and pull request creation. Uses shared self._http_client for connection pooling.", "COMPLEXITY": 4, - "LAYER": "Infra", - "PURPOSE": "Gitea API operations for GitService — connection testing, repository CRUD, and pull request creation. Uses shared self._http_client for connection pooling." + "LAYER": "Infra" }, "relations": [ { @@ -50478,9 +45112,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Merge operations for GitService — conflict detection, resolution, abort, continue, and direct promote (all concurrent-safe via per-dashboard locks).", "COMPLEXITY": 4, - "LAYER": "Infra", - "PURPOSE": "Merge operations for GitService — conflict detection, resolution, abort, continue, and direct promote (all concurrent-safe via per-dashboard locks)." + "LAYER": "Infra" }, "relations": [ { @@ -50542,9 +45176,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "GitHub and GitLab provider operations for GitService — repository creation and PR/MR creation. Uses shared self._http_client for connection pooling.", "COMPLEXITY": 4, - "LAYER": "Infra", - "PURPOSE": "GitHub and GitLab provider operations for GitService — repository creation and PR/MR creation. Uses shared self._http_client for connection pooling." + "LAYER": "Infra" }, "relations": [ { @@ -50606,8 +45240,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Mixin providing GitHub API operations for GitService." + "BRIEF": "Mixin providing GitHub API operations for GitService.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -50624,8 +45258,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Mixin providing GitLab API operations for GitService." + "BRIEF": "Mixin providing GitLab API operations for GitService.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -50642,9 +45276,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Status, diff, and commit history operations for GitService (all concurrent-safe via per-dashboard locks).", "COMPLEXITY": 4, - "LAYER": "Infra", - "PURPOSE": "Status, diff, and commit history operations for GitService (all concurrent-safe via per-dashboard locks)." + "LAYER": "Infra" }, "relations": [ { @@ -50706,9 +45340,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Push and pull operations for GitService with origin host auto-alignment (concurrent-safe).", "COMPLEXITY": 4, - "LAYER": "Infra", - "PURPOSE": "Push and pull operations for GitService with origin host auto-alignment (concurrent-safe)." + "LAYER": "Infra" }, "relations": [ { @@ -50776,9 +45410,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "URL helper mixin for GitService — parse, normalize, align, and strip credentials from Git URLs.", "COMPLEXITY": 3, - "LAYER": "Infra", - "PURPOSE": "URL helper mixin for GitService — parse, normalize, align, and strip credentials from Git URLs." + "LAYER": "Infra" }, "relations": [ { @@ -50890,9 +45524,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Business logic for aggregating dashboard health status from validation records.", "COMPLEXITY": 3, - "LAYER": "Domain/Service", - "PURPOSE": "Business logic for aggregating dashboard health status from validation records." + "LAYER": "Domain/Service" }, "relations": [ { @@ -50953,11 +45587,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Aggregate latest dashboard validation state and manage persisted health report lifecycle.", "COMPLEXITY": 4, "DATA_CONTRACT": "Input[Session, Optional[Any]] -> Output[HealthSummaryResponse|bool]", "POST": "Exposes health summary aggregation and validation report deletion operations.", "PRE": "Service is constructed with a live SQLAlchemy session and optional config manager.", - "PURPOSE": "Aggregate latest dashboard validation state and manage persisted health report lifecycle.", "SIDE_EFFECT": "Maintains in-memory dashboard metadata caches and may coordinate cleanup through collaborators." }, "relations": [ @@ -51012,10 +45646,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Provide default LLM prompt templates and normalization helpers for runtime usage.", "COMPLEXITY": 2, "INVARIANT": "All required prompt template keys are always present after normalization.", - "LAYER": "Domain", - "PURPOSE": "Provide default LLM prompt templates and normalization helpers for runtime usage." + "LAYER": "Domain" }, "relations": [ { @@ -51039,65 +45673,11 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Default prompt templates used by documentation, dashboard validation, and git commit generation." + "BRIEF": "Default prompt templates used by documentation, dashboard validation, and git commit generation.", + "COMPLEXITY": 2 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Constant' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Constant" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Constant' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Constant" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -51111,65 +45691,11 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Default provider binding per task domain." + "BRIEF": "Default provider binding per task domain.", + "COMPLEXITY": 2 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Constant' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Constant" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Constant' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Constant" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -51183,65 +45709,11 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Default planner settings for assistant chat intent model/provider resolution." + "BRIEF": "Default planner settings for assistant chat intent model/provider resolution.", + "COMPLEXITY": 2 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Constant' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Constant" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Constant' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Constant" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -51255,10 +45727,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Ensure llm settings contain stable schema with prompts section and default templates.", "COMPLEXITY": 3, "POST": "Returned dict contains prompts with all required template keys.", - "PRE": "llm_settings is dictionary-like value or None.", - "PURPOSE": "Ensure llm settings contain stable schema with prompts section and default templates." + "PRE": "llm_settings is dictionary-like value or None." }, "relations": [ { @@ -51282,9 +45754,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Heuristically determine whether model supports image input required for dashboard validation.", "COMPLEXITY": 3, "DEPRECATED": "Use the explicit `db_provider.is_multimodal` flag instead (see migration 9f8e7d6c5b4a).", - "PURPOSE": "Heuristically determine whether model supports image input required for dashboard validation.", "RATIONALE": "Added import warnings + warnings.warn(DeprecationWarning) to is_multimodal_model as a deprecation shim." }, "relations": [], @@ -51302,10 +45774,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Resolve provider id configured for a task binding with fallback to default provider.", "COMPLEXITY": 3, "POST": "Returns configured provider id or fallback id/empty string when not defined.", - "PRE": "llm_settings is normalized or raw dict from config.", - "PURPOSE": "Resolve provider id configured for a task binding with fallback to default provider." + "PRE": "llm_settings is normalized or raw dict from config." }, "relations": [ { @@ -51329,10 +45801,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Render prompt template using deterministic placeholder replacement with graceful fallback.", "COMPLEXITY": 3, "POST": "Returns rendered prompt text with known placeholders substituted. Warns about unfilled placeholders.", - "PRE": "template is a string and variables values are already stringifiable.", - "PURPOSE": "Render prompt template using deterministic placeholder replacement with graceful fallback." + "PRE": "template is a string and variables values are already stringifiable." }, "relations": [ { @@ -51356,9 +45828,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Service for managing LLM provider configurations with encrypted API keys.", "COMPLEXITY": 3, - "LAYER": "Domain", - "PURPOSE": "Service for managing LLM provider configurations with encrypted API keys." + "LAYER": "Domain" }, "relations": [ { @@ -51394,10 +45866,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Mask an API key for safe display, showing first 4 and last 4 characters.", "COMPLEXITY": 2, "POST": "Returns \"****\" for very short keys; \"{first 2}...{last 2}\" for <=8 chars;", - "PRE": "api_key is a plaintext string or None.", - "PURPOSE": "Mask an API key for safe display, showing first 4 and last 4 characters." + "PRE": "api_key is a plaintext string or None." }, "relations": [], "schema_warnings": [], @@ -51414,10 +45886,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Predicate: True when api_key is None, empty, \"********\", or contains \"...\".", "COMPLEXITY": 2, "POST": "Returns True only for non-real-key values.", - "PRE": "api_key can be None.", - "PURPOSE": "Predicate: True when api_key is None, empty, \"********\", or contains \"...\"." + "PRE": "api_key can be None." }, "relations": [], "schema_warnings": [], @@ -51434,12 +45906,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Load and validate the Fernet key used for secret encryption.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[ENCRYPTION_KEY:str] -> Output[bytes]", "INVARIANT": "Encryption initialization never falls back to a hardcoded secret.", "POST": "Returns validated key bytes ready for Fernet initialization.", "PRE": "ENCRYPTION_KEY environment variable must be set to a valid Fernet key.", - "PURPOSE": "Load and validate the Fernet key used for secret encryption.", "SIDE_EFFECT": "Emits belief-state logs for missing or invalid encryption configuration." }, "relations": [ @@ -51464,12 +45936,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Handles encryption and decryption of sensitive data like API keys.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[str] -> Output[str]", "INVARIANT": "Uses only a validated secret key from environment.", "POST": "Manager exposes reversible encrypt/decrypt operations for persisted secrets.", "PRE": "ENCRYPTION_KEY is configured with a valid Fernet key before instantiation.", - "PURPOSE": "Handles encryption and decryption of sensitive data like API keys.", "SIDE_EFFECT": "Initializes Fernet cryptography state from process environment.", "TEST_CONTRACT": "EncryptionManagerModel ->" }, @@ -51481,29 +45953,7 @@ "target_ref": "[_require_fernet_key]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is forbidden for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region EncryptionManager [C:5] [TYPE Class]\n# @BRIEF Handles encryption and decryption of sensitive data like API keys.\n# @RELATION CALLS -> [_require_fernet_key]\n# @PRE: ENCRYPTION_KEY is configured with a valid Fernet key before instantiation.\n# @POST: Manager exposes reversible encrypt/decrypt operations for persisted secrets.\n# @SIDE_EFFECT: Initializes Fernet cryptography state from process environment.\n# @DATA_CONTRACT: Input[str] -> Output[str]\n# @INVARIANT: Uses only a validated secret key from environment.\n#\n# @TEST_CONTRACT: EncryptionManagerModel ->\n# {\n# required_fields: {},\n# invariants: [\n# \"encrypted data can be decrypted back to the original string\"\n# ]\n# }\n# @TEST_FIXTURE: basic_encryption_cycle -> {\"data\": \"my_secret_key\"}\n# @TEST_EDGE: decrypt_invalid_data -> raises Exception\n# @TEST_EDGE: empty_string_encryption -> {\"data\": \"\"}\n# @TEST_INVARIANT: symmetric_encryption -> verifies: [basic_encryption_cycle, empty_string_encryption]\nclass EncryptionManager:\n # region EncryptionManager_init [TYPE Function]\n # @PURPOSE: Initialize the encryption manager with a Fernet key.\n # @PRE: ENCRYPTION_KEY env var must be set to a valid Fernet key.\n # @POST: Fernet instance ready for encryption/decryption.\n def __init__(self):\n self.key = _require_fernet_key()\n self.fernet = Fernet(self.key)\n\n # endregion EncryptionManager_init\n\n # region encrypt [TYPE Function]\n # @PURPOSE: Encrypt a plaintext string.\n # @PRE: data must be a non-empty string.\n # @POST: Returns encrypted string.\n def encrypt(self, data: str) -> str:\n with belief_scope(\"encrypt\"):\n return self.fernet.encrypt(data.encode()).decode()\n\n # endregion encrypt\n\n # region decrypt [TYPE Function]\n # @PURPOSE: Decrypt an encrypted string.\n # @PRE: encrypted_data must be a valid Fernet-encrypted string.\n # @POST: Returns original plaintext string.\n def decrypt(self, encrypted_data: str) -> str:\n with belief_scope(\"decrypt\"):\n return self.fernet.decrypt(encrypted_data.encode()).decode()\n\n # endregion decrypt\n\n\n# #endregion EncryptionManager\n" @@ -51517,8 +45967,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Service to manage LLM provider lifecycle." + "BRIEF": "Service to manage LLM provider lifecycle.", + "COMPLEXITY": 3 }, "relations": [ { @@ -51554,9 +46004,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Maintenance Banner service package. Re-exports all public orchestrators and helpers.", "COMPLEXITY": 1, - "LAYER": "Service", - "PURPOSE": "Maintenance Banner service package. Re-exports all public orchestrators and helpers." + "LAYER": "Service" }, "relations": [ { @@ -51584,92 +46034,7 @@ "target_ref": "[MaintenanceChartManager]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region MaintenancePackage [C:1] [TYPE Package] [SEMANTICS maintenance, service, package]\n# @BRIEF Maintenance Banner service package. Re-exports all public orchestrators and helpers.\n# @LAYER Service\n# @RELATION DEPENDS_ON -> [MaintenanceOrchestrators]\n# @RELATION DEPENDS_ON -> [MaintenanceDashboardScanner]\n# @RELATION DEPENDS_ON -> [MaintenanceBannerRenderer]\n# @RELATION DEPENDS_ON -> [MaintenanceChartManager]\n\nfrom ._banner_renderer import build_banner_text, rebuild_banner\nfrom ._chart_manager import ensure_banner_chart\nfrom ._dashboard_scanner import find_affected_dashboards\nfrom ._orchestrators import (\n build_idempotency_key,\n end_all_maintenance,\n end_maintenance,\n start_maintenance,\n)\n\n__all__ = [\n \"build_banner_text\",\n \"build_idempotency_key\",\n \"end_all_maintenance\",\n \"end_maintenance\",\n \"ensure_banner_chart\",\n \"find_affected_dashboards\",\n \"rebuild_banner\",\n \"start_maintenance\",\n]\n\n# #endregion MaintenancePackage\n" @@ -51683,8 +46048,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Banner text rendering and rebuild helpers. Build aggregated markdown from" + "BRIEF": "Banner text rendering and rebuild helpers. Build aggregated markdown from", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -51701,8 +46066,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Build aggregated banner markdown text from events using settings template." + "BRIEF": "Build aggregated banner markdown text from events using settings template.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -51719,8 +46084,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Build aggregated banner text for a banner based on all active events linked to it." + "BRIEF": "Build aggregated banner text for a banner based on all active events linked to it.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -51737,8 +46102,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Rebuild aggregated banner text for a banner and update the Superset chart." + "BRIEF": "Rebuild aggregated banner text for a banner and update the Superset chart.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -51755,8 +46120,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Chart operations for maintenance banners: create/get banner charts, process" + "BRIEF": "Chart operations for maintenance banners: create/get banner charts, process", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -51773,8 +46138,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Get or create a MaintenanceDashboardBanner for a dashboard in the target environment." + "BRIEF": "Get or create a MaintenanceDashboardBanner for a dashboard in the target environment.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -51791,8 +46156,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Process each dashboard for a start maintenance event: ensure banner chart," + "BRIEF": "Process each dashboard for a start maintenance event: ensure banner chart,", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -51809,8 +46174,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Process each dashboard state for an end maintenance event: if other events" + "BRIEF": "Process each dashboard state for an end maintenance event: if other events", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -51827,8 +46192,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Dashboard discovery and filtering helpers for maintenance banner feature." + "BRIEF": "Dashboard discovery and filtering helpers for maintenance banner feature.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -51845,8 +46210,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Find all dashboard IDs whose datasets reference any of the given tables." + "BRIEF": "Find all dashboard IDs whose datasets reference any of the given tables.", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -51863,8 +46228,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Fetch linked dashboards for a dataset from Superset.", "COMPLEXITY": 2, - "PURPOSE": "Fetch linked dashboards for a dataset from Superset.", "SIDE_EFFECT": "Calls Superset API." }, "relations": [], @@ -51882,8 +46247,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Apply scope (published/draft/all), excluded, and forced filters from settings." + "BRIEF": "Apply scope (published/draft/all), excluded, and forced filters from settings.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -51900,8 +46265,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Resolve dashboard title from Superset by ID." + "BRIEF": "Resolve dashboard title from Superset by ID.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -51918,8 +46283,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "C4 orchestrators for maintenance event lifecycle: start, end, end-all." + "BRIEF": "C4 orchestrators for maintenance event lifecycle: start, end, end-all.", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -51936,10 +46301,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Build idempotency key from (tables, start_time, end_time). Sorted lowercased tables, ISO timestamps.", "COMPLEXITY": 2, "POST": "Returns a tuple of (frozenset(str), str|None, str|None) for DB comparison.", "PRE": "tables is a list of strings. start_time is a datetime or None. end_time is a datetime or None.", - "PURPOSE": "Build idempotency key from (tables, start_time, end_time). Sorted lowercased tables, ISO timestamps.", "RATIONALE": "message is intentionally excluded from key per spec — different message with same tables/times = same event." }, "relations": [], @@ -51957,13 +46322,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Orchestrates database fetching and fuzzy matching suggestions.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[source_env_id: str, target_env_id: str] -> Output[List[Dict]]", "INVARIANT": "Suggestions are based on database names.", "LAYER": "Service", "POST": "Exposes stateless mapping suggestion orchestration over configured environments.", "PRE": "source/target environment identifiers are provided by caller.", - "PURPOSE": "Orchestrates database fetching and fuzzy matching suggestions.", "SIDE_EFFECT": "Performs remote metadata reads through Superset API clients." }, "relations": [ @@ -51994,11 +46359,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Service for handling database mapping logic.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input[config_manager] -> Output[List[Dict]]", "POST": "Provides client resolution and mapping suggestion methods.", "PRE": "config_manager exposes get_environments() with environment objects containing id.", - "PURPOSE": "Service for handling database mapping logic.", "SIDE_EFFECT": "Instantiates Superset clients and performs upstream metadata reads." }, "relations": [ @@ -52029,7 +46394,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Notification service package root." + "BRIEF": "Notification service package root." }, "relations": [ { @@ -52040,42 +46405,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -52109,13 +46438,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Defines abstract base and concrete implementations for external notification delivery.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[target, subject, body, context?] -> Output[bool]", "INVARIANT": "Sensitive credentials must be handled via encrypted config.", "LAYER": "Infra", "POST": "Each provider exposes async send contract returning boolean delivery outcome.", "PRE": "Provider configuration dictionaries are supplied by trusted configuration sources.", - "PURPOSE": "Defines abstract base and concrete implementations for external notification delivery.", "SIDE_EFFECT": "Performs outbound network I/O to SMTP or HTTP endpoints." }, "relations": [ @@ -52202,8 +46531,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Abstract base class for all notification providers." + "BRIEF": "Abstract base class for all notification providers.", + "COMPLEXITY": 2 }, "relations": [ { @@ -52297,8 +46626,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Delivers notifications via SMTP." + "BRIEF": "Delivers notifications via SMTP.", + "COMPLEXITY": 3 }, "relations": [ { @@ -52322,8 +46651,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Delivers notifications via Telegram Bot API." + "BRIEF": "Delivers notifications via Telegram Bot API.", + "COMPLEXITY": 3 }, "relations": [ { @@ -52347,8 +46676,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Delivers notifications via Slack Webhooks or API." + "BRIEF": "Delivers notifications via Slack Webhooks or API.", + "COMPLEXITY": 3 }, "relations": [ { @@ -52372,13 +46701,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Orchestrates notification routing based on user preferences and policy context.", "COMPLEXITY": 5, "DATA_CONTRACT": "NotificationChannelConfig -> NotificationRecipient", "INVARIANT": "NotificationService maintains singleton pattern for per-channel notifications", "LAYER": "Domain", "POST": "Notification dispatched via configured providers", "PRE": "channel_config is loaded", - "PURPOSE": "Orchestrates notification routing based on user preferences and policy context.", "SIDE_EFFECT": "Sends notifications via configured providers" }, "relations": [ @@ -52439,11 +46768,11 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Routes validation reports to appropriate users and channels.", "COMPLEXITY": 4, "DATA_CONTRACT": "Input[ValidationRecord, Optional[ValidationPolicy], Optional[BackgroundTasks]] -> Output[None]", "POST": "Service can resolve targets and dispatch provider sends without mutating validation records.", "PRE": "Service receives a live DB session and configuration manager with notification payload settings.", - "PURPOSE": "Routes validation reports to appropriate users and channels.", "SIDE_EFFECT": "Reads notification configuration, queries user preferences, and dispatches provider I/O." }, "relations": [ @@ -52486,8 +46815,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Profile preference persistence — read, update, and normalize user dashboard filter preferences" + "BRIEF": "Profile preference persistence — read, update, and normalize user dashboard filter preferences", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -52504,10 +46833,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Handles profile preference persistence, validation, and token encryption.", "COMPLEXITY": 4, "POST": "Preference CRUD operations are user-scoped and return normalized ProfilePreferenceResponse.", - "PRE": "db session is active.", - "PURPOSE": "Handles profile preference persistence, validation, and token encryption." + "PRE": "db session is active." }, "relations": [ { @@ -52543,9 +46872,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return current user's persisted preference or default non-configured view.", "POST": "Returned payload belongs to current_user only.", - "PRE": "current_user is authenticated.", - "PURPOSE": "Return current user's persisted preference or default non-configured view." + "PRE": "current_user is authenticated." }, "relations": [], "schema_warnings": [], @@ -52562,9 +46891,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return only dashboard-filter fields required by dashboards listing hot path.", "POST": "Returns normalized username and profile-default filter toggles without security summary expansion.", - "PRE": "current_user is authenticated.", - "PURPOSE": "Return only dashboard-filter fields required by dashboards listing hot path." + "PRE": "current_user is authenticated." }, "relations": [], "schema_warnings": [], @@ -52581,9 +46910,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate and persist current user's profile preference in self-scoped mode.", "POST": "Preference row for current_user is created/updated when validation passes.", - "PRE": "current_user is authenticated and payload is provided.", - "PURPOSE": "Validate and persist current user's profile preference in self-scoped mode." + "PRE": "current_user is authenticated and payload is provided." }, "relations": [], "schema_warnings": [], @@ -52600,9 +46929,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Map ORM preference row to API DTO with token metadata.", "POST": "Returns normalized ProfilePreference object.", - "PRE": "preference row can contain nullable optional fields.", - "PURPOSE": "Map ORM preference row to API DTO with token metadata." + "PRE": "preference row can contain nullable optional fields." }, "relations": [], "schema_warnings": [], @@ -52619,8 +46948,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Delegate to profile_utils.build_default_preference." + "BRIEF": "Delegate to profile_utils.build_default_preference.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -52637,8 +46966,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Return persisted preference row for user or None." + "BRIEF": "Return persisted preference row for user or None.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -52655,8 +46984,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Return existing preference row or create new unsaved row." + "BRIEF": "Return existing preference row or create new unsaved row.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -52673,8 +47002,8 @@ "tier": "TIER_3", "complexity": 5, "metadata": { - "COMPLEXITY": 5, - "PURPOSE": "Composite facade orchestrating profile preference persistence, Superset account lookup," + "BRIEF": "Composite facade orchestrating profile preference persistence, Superset account lookup,", + "COMPLEXITY": 5 }, "relations": [], "schema_warnings": [], @@ -52691,8 +47020,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Facade that composes ProfilePreferenceService, SupersetLookupService, and" + "BRIEF": "Facade that composes ProfilePreferenceService, SupersetLookupService, and", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -52709,8 +47038,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Pure utility helpers for profile data sanitization, normalization, and secret masking." + "BRIEF": "Pure utility helpers for profile data sanitization, normalization, and secret masking.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -52727,8 +47056,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Domain validation error for profile preference update requests." + "BRIEF": "Domain validation error for profile preference update requests.", + "COMPLEXITY": 2 }, "relations": [ { @@ -52752,8 +47081,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Raised when environment_id from lookup request is unknown in app configuration." + "BRIEF": "Raised when environment_id from lookup request is unknown in app configuration.", + "COMPLEXITY": 2 }, "relations": [ { @@ -52777,8 +47106,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Raised when caller attempts cross-user preference mutation." + "BRIEF": "Raised when caller attempts cross-user preference mutation.", + "COMPLEXITY": 2 }, "relations": [ { @@ -52802,8 +47131,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Normalize optional text into trimmed form or None." + "BRIEF": "Normalize optional text into trimmed form or None.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -52820,8 +47149,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Normalize secret input into trimmed form or None." + "BRIEF": "Normalize secret input into trimmed form or None.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -52838,8 +47167,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Normalize raw username into trimmed form or None for empty input." + "BRIEF": "Normalize raw username into trimmed form or None for empty input.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -52856,8 +47185,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Apply deterministic trim+lower normalization for actor matching." + "BRIEF": "Apply deterministic trim+lower normalization for actor matching.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -52874,8 +47203,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Normalize supported start page aliases to canonical values." + "BRIEF": "Normalize supported start page aliases to canonical values.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -52892,8 +47221,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Normalize supported density aliases to canonical values." + "BRIEF": "Normalize supported density aliases to canonical values.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -52910,8 +47239,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Build a safe display value for sensitive secrets." + "BRIEF": "Build a safe display value for sensitive secrets.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -52928,9 +47257,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Validate username/toggle constraints for preference mutation.", "COMPLEXITY": 2, - "POST": "Returns validation errors list; empty list means valid.", - "PURPOSE": "Validate username/toggle constraints for preference mutation." + "POST": "Returns validation errors list; empty list means valid." }, "relations": [ { @@ -52966,8 +47295,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Build non-persisted default preference DTO for unconfigured users." + "BRIEF": "Build non-persisted default preference DTO for unconfigured users.", + "COMPLEXITY": 2 }, "relations": [ { @@ -52991,8 +47320,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Normalize owners payload into deduplicated lower-cased tokens." + "BRIEF": "Normalize owners payload into deduplicated lower-cased tokens.", + "COMPLEXITY": 2 }, "relations": [ { @@ -53016,8 +47345,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Discovers declared RBAC permissions from API routes/plugins and synchronizes them into auth database." + "BRIEF": "Discovers declared RBAC permissions from API routes/plugins and synchronizes them into auth database.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -53034,38 +47363,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Regex pattern for extracting has_permission(\"resource\", \"ACTION\") declarations." + "BRIEF": "Regex pattern for extracting has_permission(\"resource\", \"ACTION\") declarations." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Constant' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Constant" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region HAS_PERMISSION_PATTERN [TYPE Constant]\n# @BRIEF Regex pattern for extracting has_permission(\"resource\", \"ACTION\") declarations.\nHAS_PERMISSION_PATTERN = re.compile(\n r\"\"\"has_permission\\(\\s*['\"]([^'\"]+)['\"]\\s*,\\s*['\"]([A-Z]+)['\"]\\s*\\)\"\"\"\n)\n# #endregion HAS_PERMISSION_PATTERN\n" @@ -53079,38 +47380,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Absolute directory path where API route RBAC declarations are defined." + "BRIEF": "Absolute directory path where API route RBAC declarations are defined." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Constant'", - "detail": { - "actual_type": "Constant", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Constant' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Constant" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ROUTES_DIR [TYPE Constant]\n# @BRIEF Absolute directory path where API route RBAC declarations are defined.\nROUTES_DIR = Path(__file__).resolve().parent.parent / \"api\" / \"routes\"\n# #endregion ROUTES_DIR\n" @@ -53124,10 +47397,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Iterates API route files that may contain RBAC declarations.", "COMPLEXITY": 4, "POST": "Yields Python files excluding test and cache directories.", - "PRE": "ROUTES_DIR points to backend/src/api/routes.", - "PURPOSE": "Iterates API route files that may contain RBAC declarations." + "PRE": "ROUTES_DIR points to backend/src/api/routes." }, "relations": [], "schema_warnings": [], @@ -53144,10 +47417,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Extracts explicit has_permission declarations from API route source code.", "COMPLEXITY": 4, "POST": "Returns unique set of (resource, action) pairs declared in route guards.", - "PRE": "Route files are readable UTF-8 text files.", - "PURPOSE": "Extracts explicit has_permission declarations from API route source code." + "PRE": "Route files are readable UTF-8 text files." }, "relations": [], "schema_warnings": [], @@ -53164,10 +47437,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Cache route permission discovery because route source files are static during normal runtime.", "COMPLEXITY": 4, "POST": "Returns stable discovered route permission pairs without repeated filesystem scans.", - "PRE": "None.", - "PURPOSE": "Cache route permission discovery because route source files are static during normal runtime." + "PRE": "None." }, "relations": [], "schema_warnings": [], @@ -53184,10 +47457,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Derives dynamic task permissions of form plugin:{plugin_id}:EXECUTE from plugin registry.", "COMPLEXITY": 4, "POST": "Returns unique plugin EXECUTE permissions if loader is available.", - "PRE": "plugin_loader is optional and may expose get_all_plugin_configs.", - "PURPOSE": "Derives dynamic task permissions of form plugin:{plugin_id}:EXECUTE from plugin registry." + "PRE": "plugin_loader is optional and may expose get_all_plugin_configs." }, "relations": [], "schema_warnings": [], @@ -53204,10 +47477,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Cache dynamic plugin EXECUTE permission pairs by normalized plugin id tuple.", "COMPLEXITY": 4, "POST": "Returns stable permission tuple without repeated plugin catalog expansion.", - "PRE": "plugin_ids is a deterministic tuple of plugin ids.", - "PURPOSE": "Cache dynamic plugin EXECUTE permission pairs by normalized plugin id tuple." + "PRE": "plugin_ids is a deterministic tuple of plugin ids." }, "relations": [], "schema_warnings": [], @@ -53224,10 +47497,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Builds canonical RBAC permission catalog from routes and plugin registry.", "COMPLEXITY": 4, "POST": "Returns union of route-declared and dynamic plugin EXECUTE permissions.", - "PRE": "plugin_loader may be provided for dynamic task plugin permission discovery.", - "PURPOSE": "Builds canonical RBAC permission catalog from routes and plugin registry." + "PRE": "plugin_loader may be provided for dynamic task plugin permission discovery." }, "relations": [], "schema_warnings": [], @@ -53244,10 +47517,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Persists missing RBAC permission pairs into auth database.", "COMPLEXITY": 4, "POST": "Missing permissions are inserted; existing permissions remain untouched.", "PRE": "declared_permissions is an iterable of (resource, action) tuples.", - "PURPOSE": "Persists missing RBAC permission pairs into auth database.", "SIDE_EFFECT": "Commits auth database transaction when new permissions are added." }, "relations": [], @@ -53265,38 +47538,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Report service package root." + "BRIEF": "Report service package root." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Package'", - "detail": { - "actual_type": "Package", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Package' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Package" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region reports [TYPE Package] [SEMANTICS report, package, service, root]\n# @BRIEF Report service package root.\n# #endregion reports\n" @@ -53310,13 +47555,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Convert task manager task objects into canonical unified TaskReport entities with deterministic fallback behavior.", "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": [ @@ -53353,9 +47598,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Normalize internal task status to canonical report status.", "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." + "PRE": "status may be known or unknown string/enum value." }, "relations": [], "schema_warnings": [], @@ -53372,9 +47617,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build deterministic user-facing summary from task payload and status.", "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." + "PRE": "report_status is canonical; plugin_id may be unknown." }, "relations": [], "schema_warnings": [], @@ -53391,9 +47636,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Extract normalized error context and next actions for failed/partial reports.", "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." + "PRE": "task is a valid Task object." }, "relations": [], "schema_warnings": [], @@ -53410,9 +47655,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Convert one Task to canonical TaskReport envelope.", "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.", "TEST_CONTRACT": "NormalizeTaskReport ->" }, "relations": [], @@ -53430,13 +47675,13 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Aggregate, normalize, filter, and paginate task reports for unified list/detail API use cases.", "COMPLEXITY": 5, "DATA_CONTRACT": "ReportQuery -> ReportRow; session_id -> valid UUID", "INVARIANT": "ReportService maintains consistent report structure", "LAYER": "Domain", "POST": "Returns Report with generated summary", "PRE": "session is active and valid", - "PURPOSE": "Aggregate, normalize, filter, and paginate task reports for unified list/detail API use cases.", "SIDE_EFFECT": "Read-only database operations; logs report generation" }, "relations": [ @@ -53497,12 +47742,12 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Service layer for list/detail report retrieval and normalization.", "COMPLEXITY": 5, "DATA_CONTRACT": "Input[TaskManager, Optional[CleanReleaseRepository], ReportQuery|report_id] -> Output[ReportCollection|ReportDetailView|None]", "INVARIANT": "Service methods are read-only over task history source.", "POST": "Provides deterministic list/detail report responses.", "PRE": "TaskManager dependency is initialized.", - "PURPOSE": "Service layer for list/detail report retrieval and normalization.", "SIDE_EFFECT": "Reads task history and optional clean-release repository state without mutating source records.", "TEST_CONTRACT": "ReportsServiceModel ->" }, @@ -53526,29 +47771,7 @@ "target_ref": "[normalize_task_report]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Class'", - "detail": { - "actual_type": "Class", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is forbidden for contract type 'Class' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Class" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region ReportsService [C:5] [TYPE Class]\n# @BRIEF Service layer for list/detail report retrieval and normalization.\n# @PRE: TaskManager dependency is initialized.\n# @POST: Provides deterministic list/detail report responses.\n# @RELATION DEPENDS_ON -> [TaskManager]\n# @RELATION DEPENDS_ON -> [CleanReleaseRepository]\n# @RELATION CALLS -> [normalize_task_report]\n# @SIDE_EFFECT: Reads task history and optional clean-release repository state without mutating source records.\n# @DATA_CONTRACT: Input[TaskManager, Optional[CleanReleaseRepository], ReportQuery|report_id] -> Output[ReportCollection|ReportDetailView|None]\n# @INVARIANT: Service methods are read-only over task history source.\n#\n# @TEST_CONTRACT: ReportsServiceModel ->\n# {\n# required_fields: {task_manager: TaskManager},\n# invariants: [\n# \"list_reports returns a matching ReportCollection\",\n# \"get_report_detail returns a valid ReportDetailView or None\"\n# ]\n# }\n# @TEST_FIXTURE: valid_service -> {\"task_manager\": \"MockTaskManager()\"}\n# @TEST_EDGE: empty_task_list -> returns empty ReportCollection\n# @TEST_EDGE: report_not_found -> get_report_detail returns None\n# @TEST_INVARIANT: consistent_pagination -> verifies: [valid_service]\nclass ReportsService:\n # region init [TYPE Function]\n # @PURPOSE: Initialize service with TaskManager dependency.\n # @PRE: task_manager is a live TaskManager instance.\n # @POST: self.task_manager is assigned and ready for read operations.\n # @INVARIANT: Constructor performs no task mutations.\n # @RELATION: [BINDS_TO] ->[ReportsService]\n # @RELATION: [DEPENDS_ON] ->[TaskManager]\n # @RELATION: [DEPENDS_ON] ->[CleanReleaseRepository]\n # @SIDE_EFFECT: Stores collaborator references for later read-only report projections.\n # @DATA_CONTRACT: Input[TaskManager, Optional[CleanReleaseRepository]] -> Output[ReportsService]\n # @PARAM: task_manager (TaskManager) - Task manager providing source task history.\n def __init__(\n self,\n task_manager: TaskManager,\n clean_release_repository: CleanReleaseRepository | None = None,\n ):\n with belief_scope(\"__init__\"):\n self.task_manager = task_manager\n self.clean_release_repository = clean_release_repository\n\n # endregion init\n\n # region _load_normalized_reports [TYPE Function]\n # @PURPOSE: Build normalized reports from all available tasks.\n # @PRE: Task manager returns iterable task history records.\n # @POST: Returns normalized report list preserving source cardinality.\n # @INVARIANT: Every returned item is a TaskReport.\n # @RETURN: List[TaskReport] - Reports sorted later by list logic.\n def _load_normalized_reports(self) -> list[TaskReport]:\n with belief_scope(\"_load_normalized_reports\"):\n tasks = self.task_manager.get_all_tasks()\n reports = [normalize_task_report(task) for task in tasks]\n return reports\n\n # endregion _load_normalized_reports\n\n # region _to_utc_datetime [TYPE Function]\n # @PURPOSE: Normalize naive/aware datetime values to UTC-aware datetime for safe comparisons.\n # @PRE: value is either datetime or None.\n # @POST: Returns UTC-aware datetime or None.\n # @INVARIANT: Naive datetimes are interpreted as UTC to preserve deterministic ordering/filtering.\n # @PARAM: value (Optional[datetime]) - Source datetime value.\n # @RETURN: Optional[datetime] - UTC-aware datetime or None.\n def _to_utc_datetime(self, value: datetime | None) -> datetime | None:\n with belief_scope(\"_to_utc_datetime\"):\n if value is None:\n return None\n if value.tzinfo is None:\n return value.replace(tzinfo=UTC)\n return value.astimezone(UTC)\n\n # endregion _to_utc_datetime\n\n # region _datetime_sort_key [TYPE Function]\n # @PURPOSE: Produce stable numeric sort key for report timestamps.\n # @PRE: report contains updated_at datetime.\n # @POST: Returns float timestamp suitable for deterministic sorting.\n # @INVARIANT: Mixed naive/aware datetimes never raise TypeError.\n # @PARAM: report (TaskReport) - Report item.\n # @RETURN: float - UTC timestamp key.\n def _datetime_sort_key(self, report: TaskReport) -> float:\n with belief_scope(\"_datetime_sort_key\"):\n updated = self._to_utc_datetime(report.updated_at)\n if updated is None:\n return 0.0\n return updated.timestamp()\n\n # endregion _datetime_sort_key\n\n # region _matches_query [TYPE Function]\n # @PURPOSE: Apply query filtering to a report.\n # @PRE: report and query are normalized schema instances.\n # @POST: Returns True iff report satisfies all active query filters.\n # @INVARIANT: Filter evaluation is side-effect free.\n # @PARAM: report (TaskReport) - Candidate report.\n # @PARAM: query (ReportQuery) - Applied query.\n # @RETURN: bool - True if report matches all filters.\n def _matches_query(self, report: TaskReport, query: ReportQuery) -> bool:\n with belief_scope(\"_matches_query\"):\n if query.task_types and report.task_type not in query.task_types:\n return False\n if query.statuses and report.status not in query.statuses:\n return False\n report_updated_at = self._to_utc_datetime(report.updated_at)\n query_time_from = self._to_utc_datetime(query.time_from)\n query_time_to = self._to_utc_datetime(query.time_to)\n\n if (\n query_time_from\n and report_updated_at\n and report_updated_at < query_time_from\n ):\n return False\n if (\n query_time_to\n and report_updated_at\n and report_updated_at > query_time_to\n ):\n return False\n if query.search:\n needle = query.search.lower()\n haystack = f\"{report.summary} {report.task_type.value} {report.status.value}\".lower()\n if needle not in haystack:\n return False\n return True\n\n # endregion _matches_query\n\n # region _sort_reports [TYPE Function]\n # @PURPOSE: Sort reports deterministically according to query settings.\n # @PRE: reports contains only TaskReport items.\n # @POST: Returns reports ordered by selected sort field and order.\n # @INVARIANT: Sorting criteria are deterministic for equal input.\n # @PARAM: reports (List[TaskReport]) - Filtered reports.\n # @PARAM: query (ReportQuery) - Sort config.\n # @RETURN: List[TaskReport] - Sorted reports.\n def _sort_reports(\n self, reports: list[TaskReport], query: ReportQuery\n ) -> list[TaskReport]:\n with belief_scope(\"_sort_reports\"):\n reverse = query.sort_order == \"desc\"\n\n if query.sort_by == \"status\":\n reports.sort(key=lambda item: item.status.value, reverse=reverse)\n elif query.sort_by == \"task_type\":\n reports.sort(key=lambda item: item.task_type.value, reverse=reverse)\n else:\n reports.sort(key=self._datetime_sort_key, reverse=reverse)\n\n return reports\n\n # endregion _sort_reports\n\n # region list_reports [TYPE Function]\n # @PURPOSE: Return filtered, sorted, paginated report collection.\n # @PRE: query has passed schema validation.\n # @POST: Returns {items,total,page,page_size,has_next,applied_filters}.\n # @PARAM: query (ReportQuery) - List filters and pagination.\n # @RETURN: ReportCollection - Paginated unified reports payload.\n def list_reports(self, query: ReportQuery) -> ReportCollection:\n with belief_scope(\"list_reports\"):\n reports = self._load_normalized_reports()\n filtered = [\n report for report in reports if self._matches_query(report, query)\n ]\n sorted_reports = self._sort_reports(filtered, query)\n\n total = len(sorted_reports)\n start = (query.page - 1) * query.page_size\n end = start + query.page_size\n items = sorted_reports[start:end]\n has_next = end < total\n\n return ReportCollection(\n items=items,\n total=total,\n page=query.page,\n page_size=query.page_size,\n has_next=has_next,\n applied_filters=query,\n )\n\n # endregion list_reports\n\n # region get_report_detail [TYPE Function]\n # @PURPOSE: Return one normalized report with timeline/diagnostics/next actions.\n # @PRE: report_id exists in normalized report set.\n # @POST: Returns normalized detail envelope with diagnostics and next actions where applicable.\n # @PARAM: report_id (str) - Stable report identifier.\n # @RETURN: Optional[ReportDetailView] - Detailed report or None if not found.\n def get_report_detail(self, report_id: str) -> ReportDetailView | None:\n with belief_scope(\"get_report_detail\"):\n reports = self._load_normalized_reports()\n target = next(\n (report for report in reports if report.report_id == report_id), None\n )\n if not target:\n return None\n\n timeline = []\n if target.started_at:\n timeline.append(\n {\"event\": \"started\", \"at\": target.started_at.isoformat()}\n )\n timeline.append({\"event\": \"updated\", \"at\": target.updated_at.isoformat()})\n\n diagnostics = target.details or {}\n if not diagnostics:\n diagnostics = {\"note\": \"Not provided\"}\n if target.error_context:\n diagnostics[\"error_context\"] = target.error_context.model_dump()\n\n if (\n target.task_type == TaskType.CLEAN_RELEASE\n and self.clean_release_repository is not None\n ):\n run_id = None\n if isinstance(diagnostics, dict):\n result_payload = diagnostics.get(\"result\")\n if isinstance(result_payload, dict):\n run_id = result_payload.get(\"run_id\") or result_payload.get(\n \"check_run_id\"\n )\n if run_id:\n run = self.clean_release_repository.get_check_run(str(run_id))\n if run is not None:\n diagnostics[\"clean_release_run\"] = {\n \"run_id\": run.id,\n \"candidate_id\": run.candidate_id,\n \"status\": run.status,\n \"final_status\": run.final_status,\n \"requested_by\": run.requested_by,\n }\n linked_report = next(\n (\n item\n for item in self.clean_release_repository.reports.values()\n if item.run_id == run.id\n ),\n None,\n )\n if linked_report is not None:\n diagnostics[\"clean_release_report\"] = {\n \"report_id\": linked_report.id,\n \"final_status\": linked_report.final_status,\n }\n\n next_actions = []\n if target.error_context and target.error_context.next_actions:\n next_actions = target.error_context.next_actions\n elif target.status in {ReportStatus.FAILED, ReportStatus.PARTIAL}:\n next_actions = [\"Review diagnostics\", \"Retry task if applicable\"]\n\n return ReportDetailView(\n report=target,\n timeline=timeline,\n diagnostics=diagnostics,\n next_actions=next_actions,\n )\n\n # endregion get_report_detail\n\n\n# #endregion ReportsService\n" @@ -53562,8 +47785,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Deterministic mapping of plugin/task identifiers to canonical report task types and fallback profile metadata." + "BRIEF": "Deterministic mapping of plugin/task identifiers to canonical report task types and fallback profile metadata.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -53580,38 +47803,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Maps plugin identifiers to normalized report task types." + "BRIEF": "Maps plugin identifiers to normalized report task types." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Data'", - "detail": { - "actual_type": "Data", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Data' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Data" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -53625,38 +47820,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Profile metadata registry for each normalized task type." + "BRIEF": "Profile metadata registry for each normalized task type." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Data'", - "detail": { - "actual_type": "Data", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Data' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Data" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #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" @@ -53670,9 +47837,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve canonical task type from plugin/task identifier with guaranteed fallback.", "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.", "TEST_CONTRACT": "ResolveTaskType ->" }, "relations": [], @@ -53690,9 +47857,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return deterministic profile metadata for a task type.", "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.", "TEST_CONTRACT": "GetTypeProfile ->" }, "relations": [], @@ -53710,11 +47877,11 @@ "tier": "TIER_3", "complexity": 5, "metadata": { + "BRIEF": "Shared service for fetching resource data with Git status and task status", "COMPLEXITY": 5, "DATA_CONTRACT": "ResourceQuery -> ResourceStatusSummary", "INVARIANT": "All resources include metadata about their current state", "LAYER": "Service", - "PURPOSE": "Shared service for fetching resource data with Git status and task status", "SIDE_EFFECT": "Queries multiple backends for status" }, "relations": [ @@ -53757,8 +47924,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Provides centralized access to resource data with enhanced metadata" + "BRIEF": "Provides centralized access to resource data with enhanced metadata", + "COMPLEXITY": 3 }, "relations": [ { @@ -53788,8 +47955,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Builds security summary and permission badges for profile UI — role extraction," + "BRIEF": "Builds security summary and permission badges for profile UI — role extraction,", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -53806,10 +47973,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Builds security summary with role names and permission badges for profile UI display.", "COMPLEXITY": 4, "POST": "build_security_summary returns ProfileSecuritySummary with deterministic sorted permissions.", - "PRE": "plugin_loader may be None for degraded permission discovery.", - "PURPOSE": "Builds security summary with role names and permission badges for profile UI display." + "PRE": "plugin_loader may be None for degraded permission discovery." }, "relations": [ { @@ -53839,9 +48006,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build read-only security snapshot with role and permission badges.", "POST": "Returns deterministic security projection for profile UI.", - "PRE": "current_user is authenticated.", - "PURPOSE": "Build read-only security snapshot with role and permission badges." + "PRE": "current_user is authenticated." }, "relations": [], "schema_warnings": [], @@ -53858,9 +48025,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Collect effective permission tuples from current user's roles.", "POST": "Returns unique normalized (resource, ACTION) tuples.", - "PRE": "current_user can include role/permission graph.", - "PURPOSE": "Collect effective permission tuples from current user's roles." + "PRE": "current_user can include role/permission graph." }, "relations": [], "schema_warnings": [], @@ -53877,8 +48044,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Convert normalized permission pair to compact UI key." + "BRIEF": "Convert normalized permission pair to compact UI key.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -53895,8 +48062,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Three-phase SQL+Jinja table name extractor for virtual datasets as per FR-003." + "BRIEF": "Three-phase SQL+Jinja table name extractor for virtual datasets as per FR-003.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -53913,10 +48080,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Phase 1: Split raw SQL text into Jinja spans and SQL spans.", "COMPLEXITY": 2, "POST": "Returns a list of (span_type: str, text: str) tuples.", - "PRE": "raw_sql is a string (possibly empty).", - "PURPOSE": "Phase 1: Split raw SQL text into Jinja spans and SQL spans." + "PRE": "raw_sql is a string (possibly empty)." }, "relations": [], "schema_warnings": [], @@ -53933,8 +48100,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Phase 2: Extract \"schema.table\" references from Jinja string values." + "BRIEF": "Phase 2: Extract \"schema.table\" references from Jinja string values.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -53951,10 +48118,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Check if a sqlparse Token is a string literal (not a schema.table identifier).", "COMPLEXITY": 1, "POST": "Returns True if the token is a string/Single/Literal.String.", - "PRE": "token is a sqlparse Token.", - "PURPOSE": "Check if a sqlparse Token is a string literal (not a schema.table identifier)." + "PRE": "token is a sqlparse Token." }, "relations": [], "schema_warnings": [], @@ -53971,8 +48138,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Phase 3: Extract schema.table references from SQL text using regex + sqlparse filtering." + "BRIEF": "Phase 3: Extract schema.table references from SQL text using regex + sqlparse filtering.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -53989,10 +48156,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Three-phase entry point: extract all schema.table references from raw SQL+Jinja text.", "COMPLEXITY": 2, "POST": "Returns a set of lowercased fully-qualified table names (schema.table format).", - "PRE": "raw_sql is a string (possibly empty).", - "PURPOSE": "Three-phase entry point: extract all schema.table references from raw SQL+Jinja text." + "PRE": "raw_sql is a string (possibly empty)." }, "relations": [ { @@ -54028,9 +48195,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Environment-scoped Superset account lookup with degradation fallback for network failures.", "COMPLEXITY": 4, "LAYER": "Domain", - "PURPOSE": "Environment-scoped Superset account lookup with degradation fallback for network failures.", "RATIONALE": "Extracted from ProfileService to satisfy INV_7. Superset account lookup has distinct" }, "relations": [ @@ -54067,8 +48234,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { - "COMPLEXITY": 4, - "PURPOSE": "Resolves environments and queries Superset users in selected environment," + "BRIEF": "Resolves environments and queries Superset users in selected environment,", + "COMPLEXITY": 4 }, "relations": [], "schema_warnings": [], @@ -54085,10 +48252,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Resolve environment model from configured environments by id.", "COMPLEXITY": 2, "POST": "Returns environment object when found else None.", - "PRE": "environment_id is provided.", - "PURPOSE": "Resolve environment model from configured environments by id." + "PRE": "environment_id is provided." }, "relations": [], "schema_warnings": [], @@ -54105,9 +48272,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Business logic for validation run queries: list, detail, delete.", "COMPLEXITY": 3, - "LAYER": "Service", - "PURPOSE": "Business logic for validation run queries: list, detail, delete." + "LAYER": "Service" }, "relations": [], "schema_warnings": [], @@ -54141,9 +48308,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Business logic for validation task CRUD and trigger-run.", "COMPLEXITY": 3, - "LAYER": "Service", - "PURPOSE": "Business logic for validation task CRUD and trigger-run." + "LAYER": "Service" }, "relations": [], "schema_warnings": [], @@ -54160,8 +48327,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Validation task (policy) CRUD with provider validation and trigger-run.", "COMPLEXITY": 4, - "PURPOSE": "Validation task (policy) CRUD with provider validation and trigger-run.", "RATIONALE": "Service-layer class for validation task CRUD with provider validation and trigger-run. Separates API layer concerns from business logic; enables unit testing without HTTP.", "REJECTED": "Embedding CRUD in route handlers rejected — would duplicate validation logic across endpoints; centralized service ensures consistent provider/environment validation before persistence." }, @@ -54233,10 +48400,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Shared pytest fixtures and session configuration for backend tests.", "COMPLEXITY": 2, "POST": "Database tables exist before test session executes.", "PRE": "All test modules use sys.path patching to import from src/.", - "PURPOSE": "Shared pytest fixtures and session configuration for backend tests.", "RATIONALE": "AUTH_SECRET_KEY/AUTH_DATABASE_URL/DATABASE_URL/DEV_MODE must be set before" }, "relations": [ @@ -54261,8 +48428,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Domain", - "PURPOSE": "Unit tests for MigrationArchiveParser ZIP extraction contract." + "BRIEF": "Unit tests for MigrationArchiveParser ZIP extraction contract.", + "LAYER": "Domain" }, "relations": [ { @@ -54297,7 +48464,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify archive parser collects dashboard/chart/dataset YAML objects into typed buckets.", + "BRIEF": "Verify archive parser collects dashboard/chart/dataset YAML objects into typed buckets.", "TEST_CONTRACT": "zip_archive_fixture -> typed dashboard/chart/dataset extraction buckets", "TEST_EDGE": "external_fail -> Corrupt archive would fail extraction before typed buckets are returned.", "TEST_SCENARIO": "archive_with_supported_objects_extracts_all_types -> One YAML file per supported type lands in matching bucket." @@ -54335,8 +48502,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Domain", - "PURPOSE": "Unit tests for MigrationDryRunService diff and risk computation contracts." + "BRIEF": "Unit tests for MigrationDryRunService diff and risk computation contracts.", + "LAYER": "Domain" }, "relations": [ { @@ -54371,7 +48538,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Load canonical migration dry-run fixture payload used by deterministic orchestration assertions." + "BRIEF": "Load canonical migration dry-run fixture payload used by deterministic orchestration assertions." }, "relations": [ { @@ -54406,7 +48573,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify dry-run orchestration returns stable diff summary and required risk codes.", + "BRIEF": "Verify dry-run orchestration returns stable diff summary and required risk codes.", "TEST_CONTRACT": "dry_run_result_contract -> {", "TEST_EDGE": "external_fail -> Engine transform stub failure would stop result production.", "TEST_INVARIANT": "dry_run_result_contract_matches_fixture -> VERIFIED_BY: [dry_run_builds_diff_and_risk]", @@ -54643,9 +48810,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate Gitea PR creation fallback behavior when configured server URL is stale.", "INVARIANT": "A 404 from primary Gitea URL retries once against remote-url host when different.", "LAYER": "Domain", - "PURPOSE": "Validate Gitea PR creation fallback behavior when configured server URL is stale.", "SEMANTICS": [ "tests", "git", @@ -54706,9 +48873,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure helper returns host base URL and removes embedded credentials.", "POST": "Result is scheme+host only.", - "PRE": "remote_url is an https URL with username/token.", - "PURPOSE": "Ensure helper returns host base URL and removes embedded credentials." + "PRE": "remote_url is an https URL with username/token." }, "relations": [ { @@ -54743,9 +48910,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verify create_gitea_pull_request retries with remote URL host after primary 404.", "POST": "Method returns success payload from fallback request.", - "PRE": "primary server_url differs from remote_url host.", - "PURPOSE": "Verify create_gitea_pull_request retries with remote URL host after primary 404." + "PRE": "primary server_url differs from remote_url host." }, "relations": [ { @@ -54780,9 +48947,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure Gitea 404 on PR creation is mapped to actionable target-branch validation error.", "POST": "Service raises HTTPException 400 with explicit missing target branch message.", - "PRE": "PR create call returns 404 and target branch is absent.", - "PURPOSE": "Ensure Gitea 404 on PR creation is mapped to actionable target-branch validation error." + "PRE": "PR create call returns 404 and target branch is absent." }, "relations": [ { @@ -54817,8 +48984,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Domain", - "PURPOSE": "Unit tests for the IdMappingService matching UUIDs to integer IDs." + "BRIEF": "Unit tests for the IdMappingService matching UUIDs to integer IDs.", + "LAYER": "Domain" }, "relations": [ { @@ -55216,8 +49383,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Domain", - "PURPOSE": "Unit tests for MigrationEngine's cross-filter patching algorithms." + "BRIEF": "Unit tests for MigrationEngine's cross-filter patching algorithms.", + "LAYER": "Domain" }, "relations": [ { @@ -55252,9 +49419,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Deterministic mapping service double for native filter ID remapping scenarios.", "INVARIANT": "Returns mappings only for requested UUID keys present in seeded map.", - "INVARIANT_VIOLATION": "resource_type parameter is silently ignored. Lookups are UUID-only; chart and dataset UUIDs share the same namespace. Tests that mix resource types will produce false positives.", - "PURPOSE": "Deterministic mapping service double for native filter ID remapping scenarios." + "INVARIANT_VIOLATION": "resource_type parameter is silently ignored. Lookups are UUID-only; chart and dataset UUIDs share the same namespace. Tests that mix resource types will produce false positives." }, "relations": [ { @@ -55295,7 +49462,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Serialize dashboard metadata into YAML fixture with json_metadata payload for patch tests." + "BRIEF": "Serialize dashboard metadata into YAML fixture with json_metadata payload for patch tests." }, "relations": [ { @@ -55330,7 +49497,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify native filter target chartId values are remapped via mapping service results." + "BRIEF": "Verify native filter target chartId values are remapped via mapping service results." }, "relations": [ { @@ -55365,7 +49532,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify native filter target datasetId values are remapped via mapping service results." + "BRIEF": "Verify native filter target datasetId values are remapped via mapping service results." }, "relations": [ { @@ -55400,7 +49567,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure dashboard files without json_metadata are left unchanged by metadata patching." + "BRIEF": "Ensure dashboard files without json_metadata are left unchanged by metadata patching." }, "relations": [ { @@ -55435,7 +49602,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify patching updates mapped targets while preserving unmapped native filter IDs." + "BRIEF": "Verify patching updates mapped targets while preserving unmapped native filter IDs." }, "relations": [ { @@ -55470,7 +49637,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify chart archive scan returns complete local chart id-to-uuid mapping." + "BRIEF": "Verify chart archive scan returns complete local chart id-to-uuid mapping." }, "relations": [ { @@ -55505,7 +49672,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure dataset YAML database_uuid fields are replaced when source UUID mapping exists." + "BRIEF": "Ensure dataset YAML database_uuid fields are replaced when source UUID mapping exists." }, "relations": [ { @@ -55540,7 +49707,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Ensure transform_yaml leaves dataset files untouched when database_uuid is not mapped." + "BRIEF": "Ensure transform_yaml leaves dataset files untouched when database_uuid is not mapped." }, "relations": [ { @@ -55575,7 +49742,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Validate full ZIP transform pipeline remaps datasets and dashboard cross-filter chart IDs." + "BRIEF": "Validate full ZIP transform pipeline remaps datasets and dashboard cross-filter chart IDs." }, "relations": [ { @@ -55610,7 +49777,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify transform_zip returns False when source archive path does not exist." + "BRIEF": "Verify transform_zip returns False when source archive path does not exist." }, "relations": [ { @@ -55645,7 +49812,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify transform_yaml raises FileNotFoundError for missing YAML source files." + "BRIEF": "Verify transform_yaml raises FileNotFoundError for missing YAML source files." }, "relations": [ { @@ -55680,8 +49847,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "LAYER": "Domain", - "PURPOSE": "Smoke tests for the redesigned clean release CLI." + "BRIEF": "Smoke tests for the redesigned clean release CLI.", + "LAYER": "Domain" }, "relations": [ { @@ -55735,7 +49902,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify candidate-register command exits successfully for valid required arguments." + "BRIEF": "Verify candidate-register command exits successfully for valid required arguments." }, "relations": [ { @@ -55770,7 +49937,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify candidate-register/artifact-import/manifest-build smoke path succeeds end-to-end." + "BRIEF": "Verify candidate-register/artifact-import/manifest-build smoke path succeeds end-to-end." }, "relations": [ { @@ -55805,8 +49972,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "INVARIANT": "SimpleNamespace substitutes for GlobalSettings — any field rename in GlobalSettings will silently not propagate here; re-verify on GlobalSettings schema changes.", - "PURPOSE": "Verify compliance run/status/violations/report commands complete for prepared candidate." + "BRIEF": "Verify compliance run/status/violations/report commands complete for prepared candidate.", + "INVARIANT": "SimpleNamespace substitutes for GlobalSettings — any field rename in GlobalSettings will silently not propagate here; re-verify on GlobalSettings schema changes." }, "relations": [ { @@ -55841,7 +50008,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify approve/reject/publish/revoke release-gate commands execute with valid fixtures." + "BRIEF": "Verify approve/reject/publish/revoke release-gate commands execute with valid fixtures." }, "relations": [ { @@ -55876,9 +50043,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for the interactive curses TUI of the clean release process.", "INVARIANT": "TUI initializes, handles hotkeys (F5, F10) and safely falls back without TTY.", "LAYER": "Scripts", - "PURPOSE": "Unit tests for the interactive curses TUI of the clean release process.", "SEMANTICS": [ "tests", "tui", @@ -56154,8 +50321,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "LAYER": "Domain", - "PURPOSE": "Smoke tests for thin-client TUI action dispatch and blocked transition behavior." + "BRIEF": "Smoke tests for thin-client TUI action dispatch and blocked transition behavior.", + "LAYER": "Domain" }, "relations": [ { @@ -56209,7 +50376,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Build deterministic curses screen mock with default terminal geometry and exit key." + "BRIEF": "Build deterministic curses screen mock with default terminal geometry and exit key." }, "relations": [ { @@ -56244,7 +50411,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify F5 key dispatch invokes run_checks exactly once before graceful exit." + "BRIEF": "Verify F5 key dispatch invokes run_checks exactly once before graceful exit." }, "relations": [ { @@ -56279,7 +50446,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify blocked compliance state is surfaced after F5-triggered run action." + "BRIEF": "Verify blocked compliance state is surfaced after F5-triggered run action." }, "relations": [ { @@ -56314,7 +50481,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify non-TTY execution returns exit code 2 with actionable stderr guidance." + "BRIEF": "Verify non-TTY execution returns exit code 2 with actionable stderr guidance." }, "relations": [ { @@ -56349,7 +50516,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify F8 path reports disabled action instead of mutating hidden facade state." + "BRIEF": "Verify F8 path reports disabled action instead of mutating hidden facade state." }, "relations": [ { @@ -56384,9 +50551,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Define approval gate contracts for approve/reject operations over immutable compliance evidence.", "INVARIANT": "Approval is allowed only for PASSED report bound to candidate; duplicate approve and foreign report must be rejected.", "LAYER": "Tests", - "PURPOSE": "Define approval gate contracts for approve/reject operations over immutable compliance evidence.", "SEMANTICS": [ "tests", "clean-release", @@ -56447,9 +50614,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Seed candidate and report fixtures for approval gate tests.", "POST": "Repository contains candidate and report linked by candidate_id.", - "PRE": "candidate_id and report_id are non-empty.", - "PURPOSE": "Seed candidate and report fixtures for approval gate tests." + "PRE": "candidate_id and report_id are non-empty." }, "relations": [ { @@ -56484,9 +50651,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure approve is rejected when latest report final status is not PASSED.", "POST": "approve_candidate raises ApprovalGateError.", - "PRE": "Candidate has BLOCKED report.", - "PURPOSE": "Ensure approve is rejected when latest report final status is not PASSED." + "PRE": "Candidate has BLOCKED report." }, "relations": [ { @@ -56521,9 +50688,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure approve is rejected when report belongs to another candidate.", "POST": "approve_candidate raises ApprovalGateError.", - "PRE": "Candidate exists, report candidate_id differs.", - "PURPOSE": "Ensure approve is rejected when report belongs to another candidate." + "PRE": "Candidate exists, report candidate_id differs." }, "relations": [ { @@ -56558,9 +50725,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure repeated approve decision for same candidate is blocked.", "POST": "Second approve_candidate call raises ApprovalGateError.", - "PRE": "Candidate has already been approved once.", - "PURPOSE": "Ensure repeated approve decision for same candidate is blocked." + "PRE": "Candidate has already been approved once." }, "relations": [ { @@ -56595,9 +50762,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure reject decision is immutable and does not promote candidate to APPROVED.", "POST": "reject_candidate persists REJECTED decision; candidate status remains unchanged.", - "PRE": "Candidate has PASSED report and CHECK_PASSED lifecycle state.", - "PURPOSE": "Ensure reject decision is immutable and does not promote candidate to APPROVED." + "PRE": "Candidate has PASSED report and CHECK_PASSED lifecycle state." }, "relations": [ { @@ -56632,9 +50799,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure latest REJECTED decision blocks publication gate.", "POST": "publish_candidate raises PublicationGateError.", - "PRE": "Candidate is rejected for passed report.", - "PURPOSE": "Ensure latest REJECTED decision blocks publication gate." + "PRE": "Candidate is rejected for passed report." }, "relations": [ { @@ -56669,8 +50836,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "LAYER": "Tests", - "PURPOSE": "Test lifecycle and manifest versioning for release candidates." + "BRIEF": "Test lifecycle and manifest versioning for release candidates.", + "LAYER": "Tests" }, "relations": [ { @@ -56724,7 +50891,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify release candidate allows legal status transitions and rejects forbidden back-transitions." + "BRIEF": "Verify release candidate allows legal status transitions and rejects forbidden back-transitions." }, "relations": [ { @@ -56759,7 +50926,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify manifest versions increment monotonically and older snapshots remain queryable." + "BRIEF": "Verify manifest versions increment monotonically and older snapshots remain queryable." }, "relations": [ { @@ -56794,7 +50961,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Provide canonical valid artifact payload used by candidate registration tests." + "BRIEF": "Provide canonical valid artifact payload used by candidate registration tests." }, "relations": [ { @@ -56829,7 +50996,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify duplicate candidate_id registration is rejected by service invariants." + "BRIEF": "Verify duplicate candidate_id registration is rejected by service invariants." }, "relations": [ { @@ -56864,7 +51031,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify candidate registration rejects artifact payloads missing required fields." + "BRIEF": "Verify candidate registration rejects artifact payloads missing required fields." }, "relations": [ { @@ -56899,7 +51066,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify candidate registration rejects empty artifact collections." + "BRIEF": "Verify candidate registration rejects empty artifact collections." }, "relations": [ { @@ -56934,7 +51101,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify repeated manifest build creates a new incremented immutable version." + "BRIEF": "Verify repeated manifest build creates a new incremented immutable version." }, "relations": [ { @@ -56969,7 +51136,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify existing manifest snapshot remains immutable when rebuilding newer manifest version." + "BRIEF": "Verify existing manifest snapshot remains immutable when rebuilding newer manifest version." }, "relations": [ { @@ -57004,7 +51171,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify manifest build fails with missing candidate identifier." + "BRIEF": "Verify manifest build fails with missing candidate identifier." }, "relations": [ { @@ -57039,9 +51206,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate stage pipeline and run finalization contracts for compliance execution.", "INVARIANT": "Missing manifest prevents run startup; failed execution cannot finalize as PASSED.", "LAYER": "Tests", - "PURPOSE": "Validate stage pipeline and run finalization contracts for compliance execution.", "SEMANTICS": [ "tests", "clean-release", @@ -57102,9 +51269,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build deterministic repository state for run startup tests.", "POST": "Returns repository with candidate, policy and registry; manifest is optional.", - "PRE": "candidate_id and snapshot ids are non-empty.", - "PURPOSE": "Build deterministic repository state for run startup tests." + "PRE": "candidate_id and snapshot ids are non-empty." }, "relations": [ { @@ -57139,9 +51306,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure compliance run cannot start when manifest is unresolved.", "POST": "start_check_run raises ValueError and no run is persisted.", - "PRE": "Candidate/policy exist but manifest is missing.", - "PURPOSE": "Ensure compliance run cannot start when manifest is unresolved." + "PRE": "Candidate/policy exist but manifest is missing." }, "relations": [ { @@ -57176,9 +51343,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure execution crash conditions force FAILED run status.", "POST": "execute_stages persists run with FAILED status.", - "PRE": "Run exists, then required dependency becomes unavailable before execute_stages.", - "PURPOSE": "Ensure execution crash conditions force FAILED run status." + "PRE": "Run exists, then required dependency becomes unavailable before execute_stages." }, "relations": [ { @@ -57213,9 +51380,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure blocked runs require blocking violations before report creation.", "POST": "finalize keeps BLOCKED and report_builder rejects zero blocking violations.", - "PRE": "Manifest contains prohibited artifacts leading to BLOCKED decision.", - "PURPOSE": "Ensure blocked runs require blocking violations before report creation." + "PRE": "Manifest contains prohibited artifacts leading to BLOCKED decision." }, "relations": [ { @@ -57250,9 +51417,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verify clean release compliance runs execute through TaskManager lifecycle with observable success/failure outcomes.", "INVARIANT": "Compliance execution triggered as task produces terminal task status and persists run evidence.", "LAYER": "Tests", - "PURPOSE": "Verify clean release compliance runs execute through TaskManager lifecycle with observable success/failure outcomes.", "SEMANTICS": [ "tests", "clean-release", @@ -57313,9 +51480,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Prepare deterministic candidate/policy/registry/manifest fixtures for task integration tests.", "POST": "Returns initialized repository and identifiers for compliance run startup.", - "PRE": "with_manifest controls manifest availability.", - "PURPOSE": "Prepare deterministic candidate/policy/registry/manifest fixtures for task integration tests." + "PRE": "with_manifest controls manifest availability." }, "relations": [ { @@ -57350,7 +51517,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "TaskManager plugin shim that executes clean release compliance orchestration." + "BRIEF": "TaskManager plugin shim that executes clean release compliance orchestration." }, "relations": [ { @@ -57385,9 +51552,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Provide minimal plugin loader contract used by TaskManager in integration tests.", "CONTRACT": "Partial PluginLoader stub. Implements: has_plugin, get_plugin. Stubs (NotImplementedError): list_plugins, get_all_plugins, get_all_plugin_configs.", - "INVARIANT": "has_plugin/get_plugin only acknowledge the seeded compliance plugin id.", - "PURPOSE": "Provide minimal plugin loader contract used by TaskManager in integration tests." + "INVARIANT": "has_plugin/get_plugin only acknowledge the seeded compliance plugin id." }, "relations": [ { @@ -57428,8 +51595,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "POST": "Returns TaskManager ready for async task execution.", - "PURPOSE": "Build TaskManager with mocked persistence services for isolated integration tests." + "BRIEF": "Build TaskManager with mocked persistence services for isolated integration tests.", + "POST": "Returns TaskManager ready for async task execution." }, "relations": [ { @@ -57464,9 +51631,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Poll task registry until target task reaches terminal status.", "POST": "Returns task with SUCCESS or FAILED status, otherwise raises TimeoutError.", - "PRE": "task_id exists in manager registry.", - "PURPOSE": "Poll task registry until target task reaches terminal status." + "PRE": "task_id exists in manager registry." }, "relations": [ { @@ -57501,9 +51668,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verify successful compliance execution is observable as TaskManager SUCCESS task.", "POST": "Task ends with SUCCESS; run is persisted with SUCCEEDED status and task binding.", - "PRE": "Candidate, policy and manifest are available in repository.", - "PURPOSE": "Verify successful compliance execution is observable as TaskManager SUCCESS task." + "PRE": "Candidate, policy and manifest are available in repository." }, "relations": [ { @@ -57538,9 +51705,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verify missing manifest startup failure is surfaced as TaskManager FAILED task.", "POST": "Task ends with FAILED and run history remains empty.", - "PRE": "Candidate/policy exist but manifest is absent.", - "PURPOSE": "Verify missing manifest startup failure is surfaced as TaskManager FAILED task." + "PRE": "Candidate/policy exist but manifest is absent." }, "relations": [ { @@ -57575,8 +51742,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verify demo and real mode namespace isolation contracts before TUI integration.", "LAYER": "Tests", - "PURPOSE": "Verify demo and real mode namespace isolation contracts before TUI integration.", "SEMANTICS": [ "clean-release", "demo-mode", @@ -57618,9 +51785,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure namespace resolver returns deterministic and distinct namespaces.", "POST": "Demo and real namespaces are different and stable.", - "PRE": "Mode names are provided as user/runtime strings.", - "PURPOSE": "Ensure namespace resolver returns deterministic and distinct namespaces." + "PRE": "Mode names are provided as user/runtime strings." }, "relations": [ { @@ -57655,9 +51822,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure ID generation prevents demo/real collisions for identical logical IDs.", "POST": "Produced physical IDs differ by namespace prefix.", - "PRE": "Same logical candidate id is used in two different namespaces.", - "PURPOSE": "Ensure ID generation prevents demo/real collisions for identical logical IDs." + "PRE": "Same logical candidate id is used in two different namespaces." }, "relations": [ { @@ -57692,9 +51859,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verify demo and real repositories do not leak state across mode boundaries.", "POST": "Candidate mutations in one mode are not visible in the other mode.", - "PRE": "Two repositories are created for distinct modes.", - "PURPOSE": "Verify demo and real repositories do not leak state across mode boundaries." + "PRE": "Two repositories are created for distinct modes." }, "relations": [ { @@ -57729,9 +51896,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verify trusted policy snapshot resolution contract and error guards.", "INVARIANT": "Resolution uses only ConfigManager active IDs and rejects runtime override attempts.", "LAYER": "Tests", - "PURPOSE": "Verify trusted policy snapshot resolution contract and error guards.", "SEMANTICS": [ "clean-release", "policy-resolution", @@ -57784,10 +51951,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build deterministic ConfigManager-like stub for tests.", "INVARIANT": "Only settings.clean_release.active_policy_id and active_registry_id are populated; any other settings field access raises AttributeError.", "POST": "Returns object exposing get_config().settings.clean_release active IDs.", - "PRE": "policy_id and registry_id may be None or non-empty strings.", - "PURPOSE": "Build deterministic ConfigManager-like stub for tests." + "PRE": "policy_id and registry_id may be None or non-empty strings." }, "relations": [ { @@ -57822,9 +51989,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure resolution fails when trusted profile is not configured.", "POST": "Raises PolicyResolutionError with missing trusted profile reason.", - "PRE": "active_policy_id is None.", - "PURPOSE": "Ensure resolution fails when trusted profile is not configured." + "PRE": "active_policy_id is None." }, "relations": [ { @@ -57859,9 +52026,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure resolution fails when trusted registry is not configured.", "POST": "Raises PolicyResolutionError with missing trusted registry reason.", - "PRE": "active_registry_id is None and active_policy_id is set.", - "PURPOSE": "Ensure resolution fails when trusted registry is not configured." + "PRE": "active_registry_id is None and active_policy_id is set." }, "relations": [ { @@ -57896,9 +52063,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure runtime override attempt is rejected even if snapshots exist.", "POST": "Raises PolicyResolutionError with override forbidden reason.", - "PRE": "valid trusted snapshots exist in repository and override is provided.", - "PURPOSE": "Ensure runtime override attempt is rejected even if snapshots exist." + "PRE": "valid trusted snapshots exist in repository and override is provided." }, "relations": [ { @@ -57933,9 +52100,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Define publication gate contracts over approved candidates and immutable publication records.", "INVARIANT": "Publish requires approval; revoke requires existing publication; republish after revoke is allowed as a new record.", "LAYER": "Tests", - "PURPOSE": "Define publication gate contracts over approved candidates and immutable publication records.", "SEMANTICS": [ "tests", "clean-release", @@ -57996,9 +52163,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Seed candidate/report fixtures for publication gate scenarios.", "POST": "Repository contains candidate and PASSED report.", - "PRE": "candidate_id and report_id are non-empty.", - "PURPOSE": "Seed candidate/report fixtures for publication gate scenarios." + "PRE": "candidate_id and report_id are non-empty." }, "relations": [ { @@ -58033,9 +52200,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure publish action is blocked until candidate is approved.", "POST": "publish_candidate raises PublicationGateError.", - "PRE": "Candidate has PASSED report but status is not APPROVED.", - "PURPOSE": "Ensure publish action is blocked until candidate is approved." + "PRE": "Candidate has PASSED report but status is not APPROVED." }, "relations": [ { @@ -58070,9 +52237,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure revocation is rejected for unknown publication id.", "POST": "revoke_publication raises PublicationGateError.", - "PRE": "Repository has no matching publication record.", - "PURPOSE": "Ensure revocation is rejected for unknown publication id." + "PRE": "Repository has no matching publication record." }, "relations": [ { @@ -58107,9 +52274,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure republish after revoke is allowed and creates a new ACTIVE record.", "POST": "New publish call returns distinct publication id with ACTIVE status.", - "PRE": "Candidate is APPROVED and first publication has been revoked.", - "PURPOSE": "Ensure republish after revoke is allowed and creates a new ACTIVE record." + "PRE": "Candidate is APPROVED and first publication has been revoked." }, "relations": [ { @@ -58144,9 +52311,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate report snapshot immutability expectations and append-only audit hook behavior for US2.", "INVARIANT": "Built reports are immutable snapshots; audit hooks produce append-only event traces.", "LAYER": "Tests", - "PURPOSE": "Validate report snapshot immutability expectations and append-only audit hook behavior for US2.", "SEMANTICS": [ "tests", "clean-release", @@ -58208,9 +52375,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build deterministic terminal run fixture for report snapshot tests.", "POST": "Returns a terminal ComplianceRun suitable for report generation.", - "PRE": "final_status is a valid ComplianceDecision value.", - "PURPOSE": "Build deterministic terminal run fixture for report snapshot tests." + "PRE": "final_status is a valid ComplianceDecision value." }, "relations": [ { @@ -58245,9 +52412,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Ensure generated report payload is marked immutable and persisted as snapshot.", "POST": "Built report has immutable=True and repository stores same immutable object.", - "PRE": "Terminal run exists.", - "PURPOSE": "Ensure generated report payload is marked immutable and persisted as snapshot." + "PRE": "Terminal run exists." }, "relations": [ { @@ -58282,9 +52449,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Define immutability contract that report snapshots cannot be overwritten by same identifier.", "POST": "Second save for same report id is rejected with explicit immutability error.", - "PRE": "Existing report with id is already persisted.", - "PURPOSE": "Define immutability contract that report snapshots cannot be overwritten by same identifier." + "PRE": "Existing report with id is already persisted." }, "relations": [ { @@ -58319,9 +52486,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verify audit hooks emit one event per action call and preserve call order.", "POST": "Three calls produce three ordered info entries with molecular prefixes.", - "PRE": "Logger backend is patched.", - "PURPOSE": "Verify audit hooks emit one event per action call and preserve call order." + "PRE": "Logger backend is patched." }, "relations": [ { @@ -58356,8 +52523,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verifies Superset preview and SQL Lab endpoint fallback strategy used by dataset-review orchestration.", "LAYER": "Tests", - "PURPOSE": "Verifies Superset preview and SQL Lab endpoint fallback strategy used by dataset-review orchestration.", "SEMANTICS": [ "dataset_review", "superset", @@ -58444,7 +52611,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Build an adapter with a mock Superset client and deterministic environment for compatibility tests." + "BRIEF": "Build an adapter with a mock Superset client and deterministic environment for compatibility tests." }, "relations": [ { @@ -58498,7 +52665,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Confirms preview compilation uses a supported client method first when the capability exists." + "BRIEF": "Confirms preview compilation uses a supported client method first when the capability exists." }, "relations": [ { @@ -58552,8 +52719,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "FRAGILE": "Positional call assertion — ordering changes will break this test without indicating a real regression. Prefer content-based assertion.", - "PURPOSE": "Confirms preview fallback walks the compatibility matrix from preferred to legacy endpoints until one returns compiled SQL." + "BRIEF": "Confirms preview fallback walks the compatibility matrix from preferred to legacy endpoints until one returns compiled SQL.", + "FRAGILE": "Positional call assertion — ordering changes will break this test without indicating a real regression. Prefer content-based assertion." }, "relations": [ { @@ -58613,8 +52780,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "FRAGILE": "Positional call assertion — ordering changes will break this test without indicating a real regression. Prefer content-based assertion.", - "PURPOSE": "Confirms SQL Lab launch falls back from modern to legacy execute endpoint and preserves canonical session reference extraction." + "BRIEF": "Confirms SQL Lab launch falls back from modern to legacy execute endpoint and preserves canonical session reference extraction.", + "FRAGILE": "Positional call assertion — ordering changes will break this test without indicating a real regression. Prefer content-based assertion." }, "relations": [ { @@ -58674,8 +52841,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Contract tests for API key authentication — valid key, invalid, revoked, expired, missing permission," + "BRIEF": "Contract tests for API key authentication — valid key, invalid, revoked, expired, missing permission,", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -58692,8 +52859,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "No X-API-Key header → returns None." + "BRIEF": "No X-API-Key header → returns None.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58710,8 +52877,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Valid API key → returns APIKeyPrincipal with correct fields." + "BRIEF": "Valid API key → returns APIKeyPrincipal with correct fields.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58728,8 +52895,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Invalid API key → 401." + "BRIEF": "Invalid API key → 401.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58746,8 +52913,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Revoked (active=False) API key → 401." + "BRIEF": "Revoked (active=False) API key → 401.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58764,8 +52931,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Expired API key → 401." + "BRIEF": "Expired API key → 401.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58782,8 +52949,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Valid API key with matching permission → 202." + "BRIEF": "Valid API key with matching permission → 202.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58800,8 +52967,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "API key lacks required permission → 403." + "BRIEF": "API key lacks required permission → 403.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58818,8 +52985,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Revoked API key → 401." + "BRIEF": "Revoked API key → 401.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58836,8 +53003,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Expired API key → 401." + "BRIEF": "Expired API key → 401.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58854,8 +53021,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Non-existent key → 401." + "BRIEF": "Non-existent key → 401.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58872,8 +53039,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Key scoped to ss-dev, request for ss-prod → 400." + "BRIEF": "Key scoped to ss-dev, request for ss-prod → 400.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58890,8 +53057,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Key scoped to ss-dev, request for ss-dev → 202." + "BRIEF": "Key scoped to ss-dev, request for ss-dev → 202.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58908,8 +53075,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Both valid API key + valid JWT → JWT takes precedence." + "BRIEF": "Both valid API key + valid JWT → JWT takes precedence.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -58926,8 +53093,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Contract tests for the APIKey SQLAlchemy model — creation, hash storage, and field constraints.", "COMPLEXITY": 2, - "PURPOSE": "Contract tests for the APIKey SQLAlchemy model — creation, hash storage, and field constraints.", "TEST_CONTRACT": "APIKey model stores SHA-256 hash and prefix; raw key never persisted.", "TEST_EDGE": "active defaults to True" }, @@ -58939,50 +53106,7 @@ "target_ref": "[APIKeyModel]" } ], - "schema_warnings": [ - { - "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" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestAPIKeyModel [C:2] [TYPE Module] [SEMANTICS test, api_key, model]\n# @BRIEF Contract tests for the APIKey SQLAlchemy model — creation, hash storage, and field constraints.\n# @RELATION BINDS_TO -> [APIKeyModel]\n# @TEST_CONTRACT: APIKey model stores SHA-256 hash and prefix; raw key never persisted.\n# @TEST_EDGE: key_hash is unique and indexed\n# @TEST_EDGE: prefix is exactly 11 chars (\"ssk_\" + 7)\n# @TEST_EDGE: active defaults to True\nimport pytest\nfrom datetime import datetime, timezone\n\n\n# #region clean_db [C:1] [TYPE Fixture]\n# @BRIEF In-memory SQLite fixture for APIKey model tests.\n@pytest.fixture\ndef clean_db():\n from sqlalchemy import create_engine\n from sqlalchemy.orm import sessionmaker\n from sqlalchemy.pool import StaticPool\n from src.models.mapping import Base\n\n engine = create_engine(\n \"sqlite:///:memory:\",\n poolclass=StaticPool,\n connect_args={\"check_same_thread\": False},\n )\n Base.metadata.create_all(engine)\n Session = sessionmaker(bind=engine)\n session = Session()\n yield session\n session.close()\n# #endregion clean_db\n\n\nclass TestAPIKeyModel:\n \"\"\"Verify APIKey model fields and constraints.\"\"\"\n\n # #region test_create_api_key [C:2] [TYPE Function]\n # @BRIEF Create APIKey with required fields and verify defaults.\n def test_create_api_key(self, clean_db):\n from src.models.api_key import APIKey\n\n api_key = APIKey(\n key_hash=\"a\" * 64,\n prefix=\"ssk_abc1234\",\n name=\"Test Key\",\n permissions=[\"maintenance:start\"],\n )\n clean_db.add(api_key)\n clean_db.commit()\n clean_db.refresh(api_key)\n\n assert api_key.id is not None\n assert api_key.key_hash == \"a\" * 64\n assert api_key.prefix == \"ssk_abc1234\"\n assert api_key.name == \"Test Key\"\n assert api_key.permissions == [\"maintenance:start\"]\n assert api_key.active is True\n assert api_key.created_at is not None\n assert api_key.environment_id is None\n assert api_key.expires_at is None\n assert api_key.last_used_at is None\n # #endregion test_create_api_key\n\n # #region test_key_hash_unique [C:2] [TYPE Function]\n # @BRIEF key_hash is unique — duplicate raises IntegrityError.\n def test_key_hash_unique(self, clean_db):\n from sqlalchemy.exc import IntegrityError\n from src.models.api_key import APIKey\n\n clean_db.add(APIKey(\n key_hash=\"b\" * 64,\n prefix=\"ssk_xyz7890\",\n name=\"Key 1\",\n permissions=[\"maintenance:start\"],\n ))\n clean_db.commit()\n\n with pytest.raises(IntegrityError):\n clean_db.add(APIKey(\n key_hash=\"b\" * 64, # Same hash\n prefix=\"ssk_def5678\",\n name=\"Key 2\",\n permissions=[\"maintenance:end\"],\n ))\n clean_db.commit()\n # #endregion test_key_hash_unique\n\n # #region test_prefix_length [C:2] [TYPE Function]\n # @BRIEF prefix is exactly 11 characters.\n def test_prefix_length(self, clean_db):\n from src.models.api_key import APIKey\n\n api_key = APIKey(\n key_hash=\"c\" * 64,\n prefix=\"ssk_short1\", # 10 chars — should be ok in SQL\n name=\"Short Prefix\",\n permissions=[\"maintenance:start\"],\n )\n clean_db.add(api_key)\n clean_db.commit()\n # The DB allows any prefix length; the app layer enforces 11 chars\n # via generate_api_key. Model just stores what it's given.\n assert len(api_key.prefix) <= 11\n # #endregion test_prefix_length\n\n # #region test_active_default_true [C:2] [TYPE Function]\n # @BRIEF active column defaults to True.\n def test_active_default_true(self, clean_db):\n from src.models.api_key import APIKey\n\n api_key = APIKey(\n key_hash=\"d\" * 64,\n prefix=\"ssk_def1234\",\n name=\"Default Active\",\n permissions=[],\n )\n clean_db.add(api_key)\n clean_db.commit()\n\n assert api_key.active is True\n # #endregion test_active_default_true\n# #endregion TestAPIKeyModel\n" @@ -58996,65 +53120,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "In-memory SQLite fixture for APIKey model tests." + "BRIEF": "In-memory SQLite fixture for APIKey model tests.", + "COMPLEXITY": 1 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Fixture'", - "detail": { - "actual_type": "Fixture", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Fixture' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Fixture" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Fixture'", - "detail": { - "actual_type": "Fixture", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Fixture' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Fixture" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region clean_db [C:1] [TYPE Fixture]\n# @BRIEF In-memory SQLite fixture for APIKey model tests.\n@pytest.fixture\ndef clean_db():\n from sqlalchemy import create_engine\n from sqlalchemy.orm import sessionmaker\n from sqlalchemy.pool import StaticPool\n from src.models.mapping import Base\n\n engine = create_engine(\n \"sqlite:///:memory:\",\n poolclass=StaticPool,\n connect_args={\"check_same_thread\": False},\n )\n Base.metadata.create_all(engine)\n Session = sessionmaker(bind=engine)\n session = Session()\n yield session\n session.close()\n# #endregion clean_db\n" @@ -59068,8 +53138,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Create APIKey with required fields and verify defaults." + "BRIEF": "Create APIKey with required fields and verify defaults.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59086,8 +53156,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "key_hash is unique — duplicate raises IntegrityError." + "BRIEF": "key_hash is unique — duplicate raises IntegrityError.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59104,8 +53174,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "prefix is exactly 11 characters." + "BRIEF": "prefix is exactly 11 characters.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59122,8 +53192,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "active column defaults to True." + "BRIEF": "active column defaults to True.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59140,8 +53210,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Contract tests for admin API key CRUD endpoints — list, create (raw key present), revoke, idempotent revoke.", "COMPLEXITY": 3, - "PURPOSE": "Contract tests for admin API key CRUD endpoints — list, create (raw key present), revoke, idempotent revoke.", "TEST_CONTRACT": "DELETE /api/admin/api-keys/{id} -> 200 with status=revoked", "TEST_EDGE": "missing_permissions -> 422" }, @@ -59153,50 +53223,7 @@ "target_ref": "[AdminApiKeyRoutes]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestAPIKeyRoutes [C:3] [TYPE Module] [SEMANTICS test, api_key, routes, crud]\n# @BRIEF Contract tests for admin API key CRUD endpoints — list, create (raw key present), revoke, idempotent revoke.\n# @RELATION BINDS_TO -> [AdminApiKeyRoutes]\n# @TEST_CONTRACT: GET /api/admin/api-keys -> list of keys without raw_key or key_hash\n# @TEST_CONTRACT: POST /api/admin/api-keys -> 201 with raw_key in response\n# @TEST_CONTRACT: DELETE /api/admin/api-keys/{id} -> 200 with status=revoked\n# @TEST_EDGE: revoked_key_delete -> 404\n# @TEST_EDGE: missing_name -> 422\n# @TEST_EDGE: missing_permissions -> 422\nimport json\nimport sys\nfrom datetime import datetime, timezone, timedelta\nfrom unittest.mock import MagicMock, patch\n\nimport pytest\nfrom fastapi import status\nfrom fastapi.testclient import TestClient\n\n# Patch GitService at module level to prevent /app/storage/repositories error\n_mock_git_svc_cls = MagicMock()\n_mock_git_svc_cls.return_value = MagicMock()\nsys.modules['src.services.git._base'] = MagicMock(GitService=_mock_git_svc_cls)\nsys.modules['src.services.git_service'] = MagicMock(GitService=_mock_git_svc_cls)\n\n\n# ── Fixtures ──────────────────────────────────────────────────\n\n@pytest.fixture\ndef client():\n \"\"\"Create a TestClient with all dependencies mocked.\"\"\"\n from src.app import app\n return TestClient(app)\n\n\ndef _mock_admin_auth():\n \"\"\"Apply dependency overrides for admin authentication.\"\"\"\n from src.dependencies import get_current_user\n from src.app import app\n\n mock_role = MagicMock()\n mock_role.name = \"Admin\"\n mock_role.permissions = []\n\n mock_user = MagicMock()\n mock_user.username = \"test-admin\"\n mock_user.roles = [mock_role]\n\n async def _mock_get_current_user():\n return mock_user\n\n app.dependency_overrides[get_current_user] = _mock_get_current_user\n\n\ndef _clear_overrides():\n from src.app import app\n app.dependency_overrides = {}\n\n\n@pytest.fixture(autouse=True)\ndef auth_mock():\n _mock_admin_auth()\n yield\n _clear_overrides()\n\n\n@pytest.fixture\ndef mock_db():\n \"\"\"Patch get_db dependency with in-memory SQLite session.\"\"\"\n from sqlalchemy import create_engine\n from sqlalchemy.orm import sessionmaker\n from sqlalchemy.pool import StaticPool\n from src.models.mapping import Base\n from src.dependencies import get_db\n from src.app import app\n\n engine = create_engine(\n \"sqlite:///:memory:\",\n poolclass=StaticPool,\n connect_args={\"check_same_thread\": False},\n )\n Base.metadata.create_all(engine)\n Session = sessionmaker(bind=engine)\n session = Session()\n\n def _get_db_override():\n db = Session()\n try:\n yield db\n finally:\n db.close()\n\n app.dependency_overrides[get_db] = _get_db_override\n yield session\n app.dependency_overrides.pop(get_db, None)\n session.close()\n\n\n# ── Tests ─────────────────────────────────────────────────────\n\nclass TestListApiKeys:\n \"\"\"Contract tests for GET /api/admin/api-keys.\"\"\"\n\n # #region test_list_empty [C:2] [TYPE Function]\n # @BRIEF No keys → returns empty list.\n def test_list_empty(self, client, mock_db):\n response = client.get(\"/api/admin/api-keys/\")\n assert response.status_code == 200\n data = response.json()\n assert isinstance(data, list)\n assert len(data) == 0\n # #endregion test_list_empty\n\n # #region test_list_with_keys [C:2] [TYPE Function]\n # @BRIEF Keys exist → returns list without raw_key or key_hash fields.\n def test_list_with_keys(self, client, mock_db):\n from src.models.api_key import APIKey\n from src.core.auth.api_key import generate_api_key\n\n # Create a key\n raw, prefix, key_hash = generate_api_key()\n api_key = APIKey(\n key_hash=key_hash,\n prefix=prefix,\n name=\"Test Key\",\n permissions=[\"maintenance:start\", \"maintenance:end\"],\n active=True,\n )\n mock_db.add(api_key)\n mock_db.commit()\n\n response = client.get(\"/api/admin/api-keys/\")\n assert response.status_code == 200\n data = response.json()\n assert len(data) == 1\n assert data[0][\"name\"] == \"Test Key\"\n assert data[0][\"prefix\"] == prefix\n assert \"raw_key\" not in data[0]\n assert \"key_hash\" not in data[0]\n # #endregion test_list_with_keys\n\n\nclass TestCreateApiKey:\n \"\"\"Contract tests for POST /api/admin/api-keys.\"\"\"\n\n # #region test_create_valid [C:2] [TYPE Function]\n # @BRIEF Valid request → 201 with raw_key, prefix, id.\n def test_create_valid(self, client, mock_db):\n response = client.post(\n \"/api/admin/api-keys/\",\n json={\n \"name\": \"CI/CD Pipeline\",\n \"permissions\": [\"maintenance:start\", \"maintenance:end\"],\n \"environment_id\": \"prod-env-1\",\n },\n )\n assert response.status_code == 201\n data = response.json()\n assert \"id\" in data\n assert \"raw_key\" in data\n assert data[\"raw_key\"].startswith(\"ssk_\")\n assert data[\"prefix\"] == data[\"raw_key\"][:11]\n assert data[\"name\"] == \"CI/CD Pipeline\"\n assert data[\"permissions\"] == [\"maintenance:start\", \"maintenance:end\"]\n assert data[\"active\"] is True\n assert data[\"environment_id\"] == \"prod-env-1\"\n # Verify raw key is NOT in DB\n from src.models.api_key import APIKey\n db_key = mock_db.query(APIKey).filter(APIKey.id == data[\"id\"]).first()\n assert db_key is not None\n assert db_key.key_hash != data[\"raw_key\"]\n assert db_key.prefix == data[\"prefix\"]\n # #endregion test_create_valid\n\n # #region test_create_missing_name [C:2] [TYPE Function]\n # @BRIEF Missing name → 400 or 422.\n def test_create_missing_name(self, client, mock_db):\n response = client.post(\n \"/api/admin/api-keys/\",\n json={\n \"permissions\": [\"maintenance:start\"],\n },\n )\n assert response.status_code in (400, 422)\n # #endregion test_create_missing_name\n\n # #region test_create_empty_permissions [C:2] [TYPE Function]\n # @BRIEF Empty permissions → 400 or 422.\n def test_create_empty_permissions(self, client, mock_db):\n response = client.post(\n \"/api/admin/api-keys/\",\n json={\n \"name\": \"No Perms\",\n \"permissions\": [],\n },\n )\n assert response.status_code in (400, 422)\n # #endregion test_create_empty_permissions\n\n\nclass TestRevokeApiKey:\n \"\"\"Contract tests for DELETE /api/admin/api-keys/{id}.\"\"\"\n\n # #region test_revoke_valid [C:2] [TYPE Function]\n # @BRIEF Revoke existing active key → 200 with status=revoked.\n def test_revoke_valid(self, client, mock_db):\n from src.models.api_key import APIKey\n from src.core.auth.api_key import generate_api_key\n\n raw, prefix, key_hash = generate_api_key()\n api_key = APIKey(\n key_hash=key_hash,\n prefix=prefix,\n name=\"To Revoke\",\n permissions=[\"maintenance:start\"],\n active=True,\n )\n mock_db.add(api_key)\n mock_db.commit()\n\n response = client.delete(f\"/api/admin/api-keys/{api_key.id}\")\n assert response.status_code == 200\n data = response.json()\n assert data[\"id\"] == api_key.id\n assert data[\"status\"] == \"revoked\"\n\n # Verify DB\n mock_db.refresh(api_key)\n assert api_key.active is False\n # #endregion test_revoke_valid\n\n # #region test_revoke_already_revoked [C:2] [TYPE Function]\n # @BRIEF Revoke already revoked key → 404.\n def test_revoke_already_revoked(self, client, mock_db):\n from src.models.api_key import APIKey\n from src.core.auth.api_key import generate_api_key\n\n raw, prefix, key_hash = generate_api_key()\n api_key = APIKey(\n key_hash=key_hash,\n prefix=prefix,\n name=\"Already Revoked\",\n permissions=[\"maintenance:start\"],\n active=False, # already revoked\n )\n mock_db.add(api_key)\n mock_db.commit()\n\n response = client.delete(f\"/api/admin/api-keys/{api_key.id}\")\n assert response.status_code == 404\n # #endregion test_revoke_already_revoked\n\n # #region test_revoke_not_found [C:2] [TYPE Function]\n # @BRIEF Revoke non-existent key → 404.\n def test_revoke_not_found(self, client, mock_db):\n response = client.delete(\"/api/admin/api-keys/nonexistent-id\")\n assert response.status_code == 404\n # #endregion test_revoke_not_found\n# #endregion TestAPIKeyRoutes\n" @@ -59210,8 +53237,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "No keys → returns empty list." + "BRIEF": "No keys → returns empty list.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59228,8 +53255,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Keys exist → returns list without raw_key or key_hash fields." + "BRIEF": "Keys exist → returns list without raw_key or key_hash fields.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59246,8 +53273,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Valid request → 201 with raw_key, prefix, id." + "BRIEF": "Valid request → 201 with raw_key, prefix, id.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59264,8 +53291,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Missing name → 400 or 422." + "BRIEF": "Missing name → 400 or 422.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59282,8 +53309,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Empty permissions → 400 or 422." + "BRIEF": "Empty permissions → 400 or 422.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59300,8 +53327,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Revoke existing active key → 200 with status=revoked." + "BRIEF": "Revoke existing active key → 200 with status=revoked.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59318,8 +53345,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Revoke already revoked key → 404." + "BRIEF": "Revoke already revoked key → 404.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59336,8 +53363,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Revoke non-existent key → 404." + "BRIEF": "Revoke non-existent key → 404.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59354,8 +53381,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Test", - "PURPOSE": "Covers authentication service/repository behavior and auth bootstrap helpers." + "BRIEF": "Covers authentication service/repository behavior and auth bootstrap helpers.", + "LAYER": "Test" }, "relations": [ { @@ -59667,8 +53694,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Verify Class 5 fix — hardcoded values extracted to named module-level constants.", "COMPLEXITY": 3, - "PURPOSE": "Verify Class 5 fix — hardcoded values extracted to named module-level constants.", "TEST_EDGE": "git_typo_fix -> services/git/_base.py still has \"repositorys\" at line 148 (bug)" }, "relations": [ @@ -59697,29 +53724,7 @@ "target_ref": "[GitServiceBase]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestConstantsAuditFixes [C:3] [TYPE Module] [SEMANTICS test,constants,hardcoded,audit]\n# @BRIEF Verify Class 5 fix — hardcoded values extracted to named module-level constants.\n# @RELATION BINDS_TO -> [SupersetClientBase]\n# @RELATION BINDS_TO -> [LLMAnalysisService]\n# @RELATION BINDS_TO -> [DatabaseModule]\n# @RELATION BINDS_TO -> [GitServiceBase]\n# @TEST_EDGE: page_size_constant -> DEFAULT_PAGE_SIZE should be importable (RATIONALE says extracted)\n# @TEST_EDGE: timeout_constants -> Playwright/HTTP timeout constants should be defined (RATIONALE says extracted)\n# @TEST_EDGE: base_dir_constant -> BASE_DIR equivalent resolves to backend/ root\n# @TEST_EDGE: git_typo_fix -> services/git/_base.py still has \"repositorys\" at line 148 (bug)\nimport os\nimport sys\nfrom pathlib import Path\n\nimport pytest\n\nsys.path.insert(0, str(Path(__file__).parent.parent / \"src\"))\n\n\nclass TestConstantsAuditFixes:\n \"\"\"Verify Class 5 fix — named constants replace hardcoded magic values.\"\"\"\n\n # #region test_page_size_constant_exists [C:2] [TYPE Function]\n # @BRIEF DEFAULT_PAGE_SIZE contract: importable, int > 0 (not yet defined in source).\n def test_page_size_constant_exists(self):\n \"\"\"DEFAULT_PAGE_SIZE should be defined per RATIONALE comment.\n\n The RATIONALE in _base.py says 'Extracted magic number 100 into\n DEFAULT_PAGE_SIZE constant at module level' but the constant\n is NOT defined in the current source.\n \"\"\"\n try:\n from src.core.superset_client._base import DEFAULT_PAGE_SIZE\n assert isinstance(DEFAULT_PAGE_SIZE, int)\n assert DEFAULT_PAGE_SIZE > 0\n except ImportError:\n pytest.skip(\n \"DEFAULT_PAGE_SIZE is not defined in src.core.superset_client._base. \"\n \"RATIONALE comment says it was extracted but the constant is missing. \"\n \"Define as: DEFAULT_PAGE_SIZE: int = 100\"\n )\n # #endregion test_page_size_constant_exists\n\n # #region test_llm_analysis_timeout_constants [C:2] [TYPE Function]\n # @BRIEF Named timeout constants should exist per RATIONALE comment (not yet defined).\n def test_llm_analysis_timeout_constants(self):\n \"\"\"Timeout constants should be defined per RATIONALE comment.\n\n The RATIONALE says they were extracted as 'named module-level constants'\n but they don't exist in the current source.\n \"\"\"\n try:\n import importlib\n mod = importlib.import_module(\"src.plugins.llm_analysis.service\")\n except Exception:\n pytest.skip(\n \"Cannot import llm_analysis.service (transitive dependency on AuthConfig \"\n \"which crashes due to pydantic-settings v2 incompatibility)\"\n )\n return\n\n expected = [\n \"PLAYWRIGHT_TIMEOUT_MS\",\n \"PLAYWRIGHT_SHORT_TIMEOUT_MS\",\n \"PLAYWRIGHT_SCREENSHOT_TIMEOUT_MS\",\n \"HTTP_TIMEOUT_MS\",\n \"LLM_HTTP_TIMEOUT_S\",\n ]\n missing = [c for c in expected if not hasattr(mod, c)]\n assert not missing, (\n f\"Missing timeout constants: {missing}. \"\n \"RATIONALE says they were extracted.\"\n )\n # #endregion test_llm_analysis_timeout_constants\n\n # #region test_base_dir_constant_replaces_parents [C:2] [TYPE Function]\n # @BRIEF BASE_DIR resolves to backend/ root, not __file__-dependent relative path.\n def test_base_dir_constant_replaces_parents(self):\n \"\"\"Verify BASE_DIR contract (same formula as database.py).\n\n database.py defines: BASE_DIR = Path(__file__).resolve().parent.parent.parent\n where __file__ = src/core/database.py → result = backend/ root\n \"\"\"\n db_path = Path(__file__).resolve().parent.parent / \"src\" / \"core\" / \"database.py\"\n assert db_path.exists(), f\"database.py not found at {db_path}\"\n\n # Same formula: database.py's __file__.parent.parent.parent\n base_dir = db_path.resolve().parent.parent.parent\n assert isinstance(base_dir, Path)\n assert base_dir.is_absolute()\n assert (base_dir / \"src\").is_dir(), \"BASE_DIR should point to backend/ root\"\n assert (base_dir / \"src\" / \"app.py\").exists(), \"BASE_DIR should contain src/\"\n # #endregion test_base_dir_constant_replaces_parents\n\n # #region test_git_service_repositorys_typo_regression [C:2] [TYPE Function]\n # @BRIEF services/git/_base.py still has \"repositorys\" (old typo) at line 148 — known bug.\n @pytest.mark.xfail(\n reason=\"Line 148 still uses Path('repositorys') instead of Path('repositories'). \"\n \"RATIONALE says 'Fixed typo repositorys→repositories' but it was NOT applied to line 148.\",\n )\n def test_git_service_repositorys_typo_regression(self):\n \"\"\"Verify the 'repositorys' typo is fixed in git/_base.py.\n\n Line 148 has: Path(\"repositorys\") instead of Path(\"repositories\").\n Expected: Path(\"repositorys\") is no longer used in executable code.\n \"\"\"\n git_base_path = Path(__file__).parent.parent / \"src\" / \"services\" / \"git\" / \"_base.py\"\n source = git_base_path.read_text(encoding=\"utf-8\")\n bad_lines = []\n for i, line in enumerate(source.splitlines(), 1):\n stripped = line.strip()\n if \"repositorys\" in stripped and not stripped.startswith(\"#\"):\n bad_lines.append(f\" line {i}: {stripped}\")\n assert not bad_lines, (\n f\"Hardcoded 'repositorys' found in executable code — fix not fully applied:\\n\"\n + \"\\n\".join(bad_lines)\n )\n # #endregion test_git_service_repositorys_typo_regression\n\n # #region test_git_default_repos_path_constant [C:2] [TYPE Function]\n # @BRIEF DEFAULT_GIT_REPOS_PATH should be defined per RATIONALE (not yet defined).\n def test_git_default_repos_path_constant(self):\n \"\"\"DEFAULT_GIT_REPOS_PATH should exist per RATIONALE comment.\n\n RATIONALE says it was extracted as a constant, but the source uses\n the literal string 'git_repos' in __init__ default parameter.\n \"\"\"\n try:\n from src.services.git._base import DEFAULT_GIT_REPOS_PATH\n assert isinstance(DEFAULT_GIT_REPOS_PATH, str)\n except Exception:\n pytest.skip(\n \"DEFAULT_GIT_REPOS_PATH is not defined. \"\n \"Cannot import git._base (transitive dependency on AuthConfig crash). \"\n \"Additionally, the constant was never extracted — __init__ uses literal 'git_repos'.\"\n )\n # #endregion test_git_default_repos_path_constant\n\n # #region test_superset_client_module_loads [C:2] [TYPE Function]\n # @BRIEF superset_client._base is importable (no dependency on crashing modules).\n def test_superset_client_module_loads(self):\n from src.core.superset_client._base import SupersetClientBase\n assert SupersetClientBase is not None\n # #endregion test_superset_client_module_loads\n\n # #region test_constants_are_immutable [C:2] [TYPE Function]\n # @BRIEF Module-level constants use int/str types (immutable by convention).\n def test_constants_are_immutable(self):\n \"\"\"Check that known constants in superset_client use immutable types.\"\"\"\n from src.core.superset_client._base import SupersetClientBase\n # Verify the class is defined with constants pattern\n source = Path(SupersetClientBase.__module__.replace(\".\", \"/\") + \".py\")\n src_path = Path(__file__).parent.parent / \"src\" / source\n if src_path.exists():\n content = src_path.read_text(encoding=\"utf-8\")\n # Verify PAGE_SIZE concept is documented\n assert \"page_size\" in content\n # #endregion test_constants_are_immutable\n# #endregion TestConstantsAuditFixes\n" @@ -59733,8 +53738,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "DEFAULT_PAGE_SIZE contract: importable, int > 0 (not yet defined in source)." + "BRIEF": "DEFAULT_PAGE_SIZE contract: importable, int > 0 (not yet defined in source).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59751,8 +53756,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Named timeout constants should exist per RATIONALE comment (not yet defined)." + "BRIEF": "Named timeout constants should exist per RATIONALE comment (not yet defined).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59769,8 +53774,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "BASE_DIR resolves to backend/ root, not __file__-dependent relative path." + "BRIEF": "BASE_DIR resolves to backend/ root, not __file__-dependent relative path.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59787,8 +53792,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "services/git/_base.py still has \"repositorys\" (old typo) at line 148 — known bug." + "BRIEF": "services/git/_base.py still has \"repositorys\" (old typo) at line 148 — known bug.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59805,8 +53810,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "DEFAULT_GIT_REPOS_PATH should be defined per RATIONALE (not yet defined)." + "BRIEF": "DEFAULT_GIT_REPOS_PATH should be defined per RATIONALE (not yet defined).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59823,8 +53828,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "superset_client._base is importable (no dependency on crashing modules)." + "BRIEF": "superset_client._base is importable (no dependency on crashing modules).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59841,8 +53846,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Module-level constants use int/str types (immutable by convention)." + "BRIEF": "Module-level constants use int/str types (immutable by convention).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -59859,8 +53864,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Verify SchedulerService load_schedules and translation job add/remove contracts.", "COMPLEXITY": 3, - "PURPOSE": "Verify SchedulerService load_schedules and translation job add/remove contracts.", "TEST_EDGE": "add_remove_translation_job — job correctly registered and removed from APScheduler", "TEST_INVARIANT": "translation_jobs_persist_across_reload -> VERIFIED_BY: [test_load_schedules_reloads_translation_schedules]" }, @@ -59872,29 +53877,7 @@ "target_ref": "[SchedulerService]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestCoreScheduler [C:3] [TYPE Module] [SEMANTICS test, scheduler, apscheduler, load, reload]\n# @BRIEF Verify SchedulerService load_schedules and translation job add/remove contracts.\n# @RELATION BINDS_TO -> [SchedulerService]\n# @TEST_EDGE: load_schedules_reloads — jobs survive remove_all_jobs when re-registered from DB\n# @TEST_EDGE: add_remove_translation_job — job correctly registered and removed from APScheduler\n# @TEST_INVARIANT: translation_jobs_persist_across_reload -> VERIFIED_BY: [test_load_schedules_reloads_translation_schedules]\n\nimport asyncio\nfrom datetime import time\nfrom pathlib import Path\nimport sys\n\nsys.path.insert(0, str(Path(__file__).parent.parent / \"src\"))\n\nfrom unittest.mock import MagicMock, patch\n\nfrom apscheduler.schedulers.background import BackgroundScheduler\n\n# ---------------------------------------------------------------------------\n# Helpers — fresh scheduler & mock config\n# ---------------------------------------------------------------------------\n\ndef _make_mock_config_manager(backup_env_id=\"env1\", backup_cron=\"0 3 * * *\"):\n \"\"\"Build a mock ConfigManager returning a single backup-enabled environment.\"\"\"\n mgr = MagicMock()\n mock_env = MagicMock()\n mock_env.id = backup_env_id\n mock_env.backup_schedule = MagicMock()\n mock_env.backup_schedule.enabled = True\n mock_env.backup_schedule.cron_expression = backup_cron\n mock_config = MagicMock()\n mock_config.environments = [mock_env]\n mgr.get_config.return_value = mock_config\n return mgr\n\n\ndef _make_mock_task_manager():\n \"\"\"Build a mock TaskManager returning no active tasks.\"\"\"\n tm = MagicMock()\n tm.get_tasks.return_value = []\n return tm\n\n\n# ---------------------------------------------------------------------------\n# Fixture helpers — start/stop a real BackgroundScheduler\n# ---------------------------------------------------------------------------\n\ndef _start_scheduler():\n \"\"\"Create and start a BackgroundScheduler. Returns the scheduler instance.\"\"\"\n sched = BackgroundScheduler()\n sched.start()\n return sched\n\n\ndef _stop_scheduler(sched):\n \"\"\"Shutdown a BackgroundScheduler if running.\"\"\"\n if sched.running:\n sched.shutdown(wait=False)\n\n\n# #region test_load_schedules_reloads_translation_schedules [C:1] [TYPE Function]\ndef test_load_schedules_reloads_translation_schedules():\n \"\"\"Verify load_schedules re-registers translation jobs after remove_all_jobs.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n\n # Pre-register a translation job (simulates what happens before reload)\n svc.add_translation_job(\n schedule_id=\"sched-1\",\n job_id=\"job-1\",\n cron_expression=\"0 2 * * *\",\n )\n\n # Verify it exists BEFORE reload\n job_before = sched.get_job(\"translate_sched-1\")\n assert job_before is not None, \"Translation job should exist before reload\"\n\n # Mock the DB query that load_schedules uses internally\n mock_schedule = MagicMock()\n mock_schedule.id = \"sched-1\"\n mock_schedule.job_id = \"job-1\"\n mock_schedule.cron_expression = \"0 2 * * *\"\n mock_schedule.timezone = \"UTC\"\n mock_schedule.execution_mode = \"full\"\n\n mock_db = MagicMock()\n mock_db.query.return_value.filter.return_value.all.return_value = [mock_schedule]\n\n with patch(\"src.core.scheduler.SessionLocal\", return_value=mock_db):\n svc.load_schedules()\n\n # After reload, the translation job should STILL exist\n job_after = sched.get_job(\"translate_sched-1\")\n assert job_after is not None, (\n \"Translation job should survive load_schedules (re-registered from DB)\"\n )\n\n # Backup job should also exist (added from config)\n backup_job = sched.get_job(\"backup_env1\")\n assert backup_job is not None, \"Backup job should be registered by load_schedules\"\n finally:\n _stop_scheduler(sched)\n# #endregion test_load_schedules_reloads_translation_schedules\n\n\n# #region test_add_and_remove_translation_job [C:1] [TYPE Function]\ndef test_add_and_remove_translation_job():\n \"\"\"Verify add_translation_job registers and remove_translation_job removes.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n\n # Should NOT exist before add\n assert sched.get_job(\"translate_sched-x\") is None\n\n svc.add_translation_job(\n schedule_id=\"sched-x\",\n job_id=\"job-x\",\n cron_expression=\"*/5 * * * *\",\n )\n\n # Should exist after add\n job = sched.get_job(\"translate_sched-x\")\n assert job is not None, \"Translation job should be registered after add\"\n assert job.id == \"translate_sched-x\"\n\n svc.remove_translation_job(\"sched-x\")\n\n # Should NOT exist after remove\n assert sched.get_job(\"translate_sched-x\") is None, (\n \"Translation job should be removed after remove_translation_job\"\n )\n finally:\n _stop_scheduler(sched)\n# #endregion test_add_and_remove_translation_job\n\n\n# #region test_remove_nonexistent_translation_job_no_error [C:1] [TYPE Function]\ndef test_remove_nonexistent_translation_job_no_error():\n \"\"\"Verify remove_translation_job handles non-existent job silently.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n\n # Should not raise — silent ignore\n svc.remove_translation_job(\"nonexistent-sched\")\n finally:\n _stop_scheduler(sched)\n# #endregion test_remove_nonexistent_translation_job_no_error\n\n\n# #region test_add_validation_job [C:1] [TYPE Function]\ndef test_add_validation_job():\n \"\"\"Verify add_validation_job registers an APScheduler job.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n\n assert sched.get_job(\"validation_pol-1\") is None\n\n svc.add_validation_job(\n policy_id=\"pol-1\",\n cron_expression=\"30 10 * * 0,2,4\", # 10:30 Mon, Wed, Fri\n app_timezone=\"Europe/Moscow\",\n )\n\n job = sched.get_job(\"validation_pol-1\")\n assert job is not None, \"Validation job should be registered after add\"\n assert job.id == \"validation_pol-1\"\n finally:\n _stop_scheduler(sched)\n# #endregion test_add_validation_job\n\n\n# #region test_load_schedules_loads_validation_policies [C:1] [TYPE Function]\ndef test_load_schedules_loads_validation_policies():\n \"\"\"Verify load_schedules re-registers validation jobs from DB.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n # Add app_timezone to config so cron gets a timezone\n cfg.get_config.return_value.settings.app_timezone = \"Europe/Moscow\"\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n\n # Pre-register a validation job (to test it survives reload)\n svc.add_validation_job(\n policy_id=\"pol-1\",\n cron_expression=\"0 10 * * 1,3,5\",\n )\n assert sched.get_job(\"validation_pol-1\") is not None\n\n # Mock DB to return an active ValidationPolicy with schedule_days\n mock_policy = MagicMock()\n mock_policy.id = \"pol-1\"\n mock_policy.schedule_days = [0, 2, 4] # Mon, Wed, Fri\n mock_policy.window_start = time(10, 30)\n mock_policy.window_end = time(11, 0)\n\n mock_db = MagicMock()\n # First query is for TranslationSchedule (empty), second is ValidationPolicy\n mock_db.query.side_effect = [\n MagicMock(filter=MagicMock(return_value=MagicMock(all=MagicMock(return_value=[])))),\n MagicMock(filter=MagicMock(return_value=MagicMock(all=MagicMock(return_value=[mock_policy])))),\n ]\n\n with patch(\"src.core.scheduler.SessionLocal\", return_value=mock_db):\n svc.load_schedules()\n\n # Validation job should still exist after reload\n job = sched.get_job(\"validation_pol-1\")\n assert job is not None, \"Validation job should survive load_schedules\"\n finally:\n _stop_scheduler(sched)\n# #endregion test_load_schedules_loads_validation_policies\n\n\n# #region test_trigger_validation_creates_tasks [C:1] [TYPE Function]\ndef test_trigger_validation_creates_tasks():\n \"\"\"Verify _trigger_validation creates TaskManager tasks for each dashboard.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n svc.loop = asyncio.new_event_loop()\n\n # Mock the ValidationPolicy DB query\n mock_policy = MagicMock()\n mock_policy.id = \"pol-1\"\n mock_policy.is_active = True\n mock_policy.dashboard_ids = [\"dash-1\", \"dash-2\"]\n mock_policy.environment_id = \"ss-dev\"\n mock_policy.provider_id = \"prov-1\"\n mock_policy.window_start = time(10, 0)\n mock_policy.window_end = time(10, 30)\n\n mock_db = MagicMock()\n mock_db.query.return_value.filter.return_value.first.return_value = mock_policy\n\n # Patch asyncio.run_coroutine_threadsafe to call the function synchronously\n # so we can verify the mock was called\n captured_calls = []\n\n def fake_run_coro(_coro_or_fn, _loop):\n captured_calls.append(1)\n return MagicMock()\n\n with patch(\"src.core.scheduler.SessionLocal\", return_value=mock_db), \\\n patch(\"src.core.scheduler.asyncio.run_coroutine_threadsafe\", side_effect=fake_run_coro):\n svc._trigger_validation(\"pol-1\")\n\n # Should have submitted 2 coroutines via run_coroutine_threadsafe (one per dashboard)\n assert len(captured_calls) == 2, (\n f\"Expected 2 task submissions via run_coroutine_threadsafe, got {len(captured_calls)}\"\n )\n finally:\n _stop_scheduler(sched)\n# #endregion test_trigger_validation_creates_tasks\n\n\n# #region test_trigger_validation_skips_missing_policy [C:1] [TYPE Function]\ndef test_trigger_validation_skips_missing_policy():\n \"\"\"Verify _trigger_validation does not fail when policy is missing.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n svc.loop = asyncio.new_event_loop()\n\n # Mock DB to return None (policy not found)\n mock_db = MagicMock()\n mock_db.query.return_value.filter.return_value.first.return_value = None\n\n with patch(\"src.core.scheduler.SessionLocal\", return_value=mock_db):\n # Should not raise\n svc._trigger_validation(\"nonexistent-policy\")\n\n # create_task should not have been called\n assert tm.create_task.call_count == 0\n finally:\n _stop_scheduler(sched)\n# #endregion test_trigger_validation_skips_missing_policy\n\n\n# #region test_trigger_validation_skips_inactive_policy [C:1] [TYPE Function]\ndef test_trigger_validation_skips_inactive_policy():\n \"\"\"Verify _trigger_validation skips an inactive policy.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n svc.loop = asyncio.new_event_loop()\n\n mock_policy = MagicMock()\n mock_policy.id = \"pol-inactive\"\n mock_policy.is_active = False\n mock_policy.dashboard_ids = [\"dash-1\"]\n\n mock_db = MagicMock()\n mock_db.query.return_value.filter.return_value.first.return_value = mock_policy\n\n with patch(\"src.core.scheduler.SessionLocal\", return_value=mock_db):\n svc._trigger_validation(\"pol-inactive\")\n\n # create_task should not have been called for inactive policy\n assert tm.create_task.call_count == 0\n finally:\n _stop_scheduler(sched)\n# #endregion test_trigger_validation_skips_inactive_policy\n\n\n# #region test_trigger_validation_skips_no_dashboards [C:1] [TYPE Function]\ndef test_trigger_validation_skips_no_dashboards():\n \"\"\"Verify _trigger_validation skips a policy with no dashboards.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n svc.loop = asyncio.new_event_loop()\n\n mock_policy = MagicMock()\n mock_policy.id = \"pol-empty\"\n mock_policy.is_active = True\n mock_policy.dashboard_ids = []\n\n mock_db = MagicMock()\n mock_db.query.return_value.filter.return_value.first.return_value = mock_policy\n\n with patch(\"src.core.scheduler.SessionLocal\", return_value=mock_db):\n svc._trigger_validation(\"pol-empty\")\n\n assert tm.create_task.call_count == 0\n finally:\n _stop_scheduler(sched)\n# #endregion test_trigger_validation_skips_no_dashboards\n\n\n# #region test_remove_validation_job [C:1] [TYPE Function]\ndef test_remove_validation_job():\n \"\"\"Verify remove_validation_job removes an existing job.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n\n svc.add_validation_job(\"pol-remove\", cron_expression=\"0 10 * * 1\")\n assert sched.get_job(\"validation_pol-remove\") is not None\n\n svc.remove_validation_job(\"pol-remove\")\n assert sched.get_job(\"validation_pol-remove\") is None\n finally:\n _stop_scheduler(sched)\n# #endregion test_remove_validation_job\n\n\n# #region test_remove_nonexistent_validation_job [C:1] [TYPE Function]\ndef test_remove_nonexistent_validation_job():\n \"\"\"Verify remove_validation_job handles non-existent job silently.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n\n # Should not raise\n svc.remove_validation_job(\"nonexistent-pol\")\n finally:\n _stop_scheduler(sched)\n# #endregion test_remove_nonexistent_validation_job\n\n\n# #region test_reload_validation_policy_adds_job [C:1] [TYPE Function]\ndef test_reload_validation_policy_adds_job():\n \"\"\"Verify reload_validation_policy registers a job for an active policy with schedule.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n\n # Mock DB to return an active policy with schedule_days\n mock_policy = MagicMock()\n mock_policy.id = \"pol-reload\"\n mock_policy.is_active = True\n mock_policy.schedule_days = [0, 2, 4]\n mock_policy.window_start = time(10, 30)\n\n mock_db = MagicMock()\n mock_db.query.return_value.filter.return_value.first.return_value = mock_policy\n\n with patch(\"src.core.scheduler.SessionLocal\", return_value=mock_db):\n svc.reload_validation_policy(\"pol-reload\")\n\n job = sched.get_job(\"validation_pol-reload\")\n assert job is not None, \"Job should be registered after reload\"\n finally:\n _stop_scheduler(sched)\n# #endregion test_reload_validation_policy_adds_job\n\n\n# #region test_reload_validation_policy_removes_job_when_policy_gone [C:1] [TYPE Function]\ndef test_reload_validation_policy_removes_job_when_policy_gone():\n \"\"\"Verify reload_validation_policy removes job when policy is missing or inactive.\"\"\"\n from src.core.scheduler import SchedulerService\n\n sched = _start_scheduler()\n try:\n cfg = _make_mock_config_manager()\n tm = _make_mock_task_manager()\n\n svc = SchedulerService.__new__(SchedulerService)\n svc.task_manager = tm\n svc.config_manager = cfg\n svc.scheduler = sched\n\n # Pre-register a job\n svc.add_validation_job(\"pol-gone\", cron_expression=\"0 10 * * 1\")\n assert sched.get_job(\"validation_pol-gone\") is not None\n\n # Mock DB to return None (policy not found)\n mock_db = MagicMock()\n mock_db.query.return_value.filter.return_value.first.return_value = None\n\n with patch(\"src.core.scheduler.SessionLocal\", return_value=mock_db):\n svc.reload_validation_policy(\"pol-gone\")\n\n # Job should have been removed\n assert sched.get_job(\"validation_pol-gone\") is None\n finally:\n _stop_scheduler(sched)\n# #endregion test_reload_validation_policy_removes_job_when_policy_gone\n# #endregion TestCoreScheduler\n" @@ -60129,8 +54112,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Comprehensive contract-driven tests for Dashboard Hub API", "LAYER": "Domain (Tests)", - "PURPOSE": "Comprehensive contract-driven tests for Dashboard Hub API", "SEMANTICS": [ "tests", "dashboards", @@ -60454,8 +54437,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Verify Class 7 fix — is_multimodal_model should emit DeprecationWarning.", "COMPLEXITY": 3, - "PURPOSE": "Verify Class 7 fix — is_multimodal_model should emit DeprecationWarning.", "RATIONALE": "The RATIONALE comment in llm_prompt_templates.py says warnings.warn(DeprecationWarning)", "TEST_EDGE": "text_only_model_returns_false -> models with text-only markers return False" }, @@ -60467,29 +54450,7 @@ "target_ref": "[llm_prompt_templates]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestDeprecationAuditFixes [C:3] [TYPE Module] [SEMANTICS test,deprecation,warning,audit]\n# @BRIEF Verify Class 7 fix — is_multimodal_model should emit DeprecationWarning.\n# @RELATION BINDS_TO -> [llm_prompt_templates]\n# @TEST_EDGE: deprecated_function_warns -> is_multimodal_model should emit DeprecationWarning\n# @TEST_EDGE: old_callers_not_broken -> returns correct boolean for known multimodal models\n# @TEST_EDGE: text_only_model_returns_false -> models with text-only markers return False\n# @RATIONALE The RATIONALE comment in llm_prompt_templates.py says warnings.warn(DeprecationWarning)\n# was added, but the actual function body (lines 137-167) does NOT contain the call.\n# This is a known gap — the DeprecationWarning shim was documented but not implemented.\nimport sys\nimport warnings\nfrom pathlib import Path\n\nimport pytest\n\nsys.path.insert(0, str(Path(__file__).parent.parent / \"src\"))\n\n\nclass TestDeprecationAuditFixes:\n \"\"\"Verify is_multimodal_model behavior and document missing DeprecationWarning shim.\"\"\"\n\n # #region test_is_multimodal_model_emits_warning [C:2] [TYPE Function]\n # @BRIEF is_multimodal_model should emit DeprecationWarning (shim not yet implemented).\n def test_is_multimodal_model_emits_warning(self):\n \"\"\"Verify is_multimodal_model emits DeprecationWarning.\n\n NOTE: The RATIONALE comment in the source says warnings.warn(DeprecationWarning)\n was added as a deprecation shim, but the function body (llm_prompt_templates.py:137-167)\n does NOT contain the call. This test documents the gap.\n \"\"\"\n from src.services.llm_prompt_templates import is_multimodal_model\n\n # Check if the source actually has the DeprecationWarning call\n import inspect\n source = inspect.getsource(is_multimodal_model)\n if \"DeprecationWarning\" not in source:\n pytest.skip(\n \"GAP: is_multimodal_model body does not contain warnings.warn(DeprecationWarning). \"\n \"The RATIONALE comment says it was added but the implementation is missing. \"\n \"Add: warnings.warn(DeprecationWarning('is_multimodal_model is deprecated, \"\n \"use db_provider.is_multimodal flag instead'), stacklevel=2)\"\n )\n\n # If the fix IS applied, verify it works\n with pytest.warns(DeprecationWarning):\n result = is_multimodal_model(\"gpt-4o\")\n assert result is True\n # #endregion test_is_multimodal_model_emits_warning\n\n # #region test_multimodal_model_returns_true [C:2] [TYPE Function]\n # @BRIEF Known multimodal models (gpt-4o, claude-3, gemini) return True.\n def test_multimodal_model_returns_true(self):\n from src.services.llm_prompt_templates import is_multimodal_model\n\n multimodal_cases = [\"gpt-4o\", \"claude-3-sonnet\", \"gemini-pro-vision\", \"gpt-4.1\"]\n for model in multimodal_cases:\n with warnings.catch_warnings():\n warnings.simplefilter(\"ignore\", DeprecationWarning)\n assert is_multimodal_model(model) is True, f\"{model} should be multimodal\"\n # #endregion test_multimodal_model_returns_true\n\n # #region test_text_only_model_returns_false [C:2] [TYPE Function]\n # @BRIEF Text-only models (embedding, whisper, rerank) return False.\n def test_text_only_model_returns_false(self):\n from src.services.llm_prompt_templates import is_multimodal_model\n\n text_only_cases = [\"text-embedding-3\", \"whisper-1\", \"rerank-v2\", \"tts-1\"]\n for model in text_only_cases:\n with warnings.catch_warnings():\n warnings.simplefilter(\"ignore\", DeprecationWarning)\n assert is_multimodal_model(model) is False, f\"{model} should be text-only\"\n # #endregion test_text_only_model_returns_false\n\n # #region test_empty_model_returns_false [C:2] [TYPE Function]\n # @BRIEF Empty or None model name returns False without error.\n def test_empty_model_returns_false(self):\n from src.services.llm_prompt_templates import is_multimodal_model\n\n with warnings.catch_warnings():\n warnings.simplefilter(\"ignore\", DeprecationWarning)\n assert is_multimodal_model(\"\") is False\n assert is_multimodal_model(\" \") is False\n # #endregion test_empty_model_returns_false\n\n # #region test_case_insensitive_matching [C:2] [TYPE Function]\n # @BRIEF Model name matching is case-insensitive.\n def test_case_insensitive_matching(self):\n from src.services.llm_prompt_templates import is_multimodal_model\n\n with warnings.catch_warnings():\n warnings.simplefilter(\"ignore\", DeprecationWarning)\n assert is_multimodal_model(\"GPT-4O\") is True\n assert is_multimodal_model(\"CLAUDE-3-OPUS\") is True\n # #endregion test_case_insensitive_matching\n\n # #region test_deprecation_comment_exists [C:2] [TYPE Function]\n # @BRIEF The source module documents the @DEPRECATED rationale in the region header.\n def test_deprecation_comment_exists(self):\n \"\"\"Verify the source file documents the is_multimodal_model deprecation.\n\n The @DEPRECATED tag is in the region header (line 127), not in the function body.\n inspect.getsource(function) only returns the body (lines 137-167).\n \"\"\"\n module_path = Path(__file__).parent.parent / \"src\" / \"services\" / \"llm_prompt_templates.py\"\n source = module_path.read_text(encoding=\"utf-8\")\n assert \"DEPRECATED\" in source, \"Source must document @DEPRECATED status\"\n assert \"is_multimodal_model is deprecated\" in source.lower() or \"deprecated\" in source.lower()\n # #endregion test_deprecation_comment_exists\n# #endregion TestDeprecationAuditFixes\n" @@ -60503,8 +54464,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "is_multimodal_model should emit DeprecationWarning (shim not yet implemented)." + "BRIEF": "is_multimodal_model should emit DeprecationWarning (shim not yet implemented).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60521,8 +54482,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Known multimodal models (gpt-4o, claude-3, gemini) return True." + "BRIEF": "Known multimodal models (gpt-4o, claude-3, gemini) return True.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60539,8 +54500,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Text-only models (embedding, whisper, rerank) return False." + "BRIEF": "Text-only models (embedding, whisper, rerank) return False.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60557,8 +54518,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Empty or None model name returns False without error." + "BRIEF": "Empty or None model name returns False without error.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60575,8 +54536,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Model name matching is case-insensitive." + "BRIEF": "Model name matching is case-insensitive.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60593,8 +54554,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "The source module documents the @DEPRECATED rationale in the region header." + "BRIEF": "The source module documents the @DEPRECATED rationale in the region header.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60611,65 +54572,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Contract tests for layout utility functions — _estimate_markdown_height." + "BRIEF": "Contract tests for layout utility functions — _estimate_markdown_height.", + "COMPLEXITY": 3 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'TestModule'", - "detail": { - "actual_type": "TestModule", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'TestModule' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "TestModule" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'TestModule'", - "detail": { - "actual_type": "TestModule", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'TestModule' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "TestModule" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_layout_utils [C:3] [TYPE TestModule] [SEMANTICS test, layout, superset, height, estimation]\n# @BRIEF Contract tests for layout utility functions — _estimate_markdown_height.\n# Verifies the height estimation formula: empty → 19, short text → computed,\n# padding accounted for, and long text capped at 200.\n# @LAYER Test\n# @RELATION BINDS_TO -> [LayoutUtils]\n# @TEST_CONTRACT: _estimate_markdown_height(str) -> int in [19, 200]\n# @TEST_EDGE: empty_content -> returns minimum height (19)\n# @TEST_EDGE: html_only_content -> returns minimum height (19)\n# @TEST_EDGE: content_with_padding -> padding:12 correctly increases height\n# @TEST_EDGE: very_long_content -> capped at maximum height (200)\nimport pytest\n\nfrom src.core.superset_client._layout_utils import _estimate_markdown_height\n\n\nclass TestEstimateMarkdownHeight:\n \"\"\"Tests for _estimate_markdown_height pure function.\"\"\"\n\n # #region test_empty_content [C:2] [TYPE Function]\n # @BRIEF Empty string returns minimum height 19.\n def test_empty_content(self):\n assert _estimate_markdown_height(\"\") == 19\n # #endregion test_empty_content\n\n # #region test_single_line_text [C:2] [TYPE Function]\n # @BRIEF Short text without padding returns expected computed height.\n # 200 chars → 200//40+1 = 6 lines → 6*22 = 132px → 40+132 = 172px → 172//8 = 21\n def test_single_line_text(self):\n text = \"A\" * 200\n assert _estimate_markdown_height(text) == 21\n # #endregion test_single_line_text\n\n # #region test_content_with_padding [C:2] [TYPE Function]\n # @BRIEF Content with padding:12 — 24px added to content height.\n # 200 chars + padding:12 → 6*22 + 24 = 156 → 40+156 = 196 → 196//8 = 24\n def test_content_with_padding(self):\n content = '
' + \"A\" * 200 + \"
\"\n assert _estimate_markdown_height(content) == 24\n # #endregion test_content_with_padding\n\n # #region test_very_long_content [C:2] [TYPE Function]\n # @BRIEF Very long content (3000 chars) capped at max height 200.\n def test_very_long_content(self):\n text = \"A\" * 3000\n assert _estimate_markdown_height(text) == 200\n # #endregion test_very_long_content\n\n # #region test_html_only_content [C:2] [TYPE Function]\n # @BRIEF HTML-only content (no visible text) returns minimum height 19.\n def test_html_only_content(self):\n content = \"

\"\n assert _estimate_markdown_height(content) == 19\n # #endregion test_html_only_content\n# #endregion test_layout_utils\n" @@ -60683,8 +54590,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Empty string returns minimum height 19." + "BRIEF": "Empty string returns minimum height 19.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60701,8 +54608,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Short text without padding returns expected computed height." + "BRIEF": "Short text without padding returns expected computed height.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60719,8 +54626,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Content with padding:12 — 24px added to content height." + "BRIEF": "Content with padding:12 — 24px added to content height.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60737,8 +54644,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Very long content (3000 chars) capped at max height 200." + "BRIEF": "Very long content (3000 chars) capped at max height 200.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60755,8 +54662,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "HTML-only content (no visible text) returns minimum height 19." + "BRIEF": "HTML-only content (no visible text) returns minimum height 19.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -60773,8 +54680,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Unit tests for TaskLogPersistenceService.", "LAYER": "Test", - "PURPOSE": "Unit tests for TaskLogPersistenceService.", "SEMANTICS": [ "test", "log", @@ -60852,7 +54759,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Test suite for TaskLogPersistenceService.", + "BRIEF": "Test suite for TaskLogPersistenceService.", "TEST_DATA": "log_entry -> {\"task_id\": \"test-task-1\", \"level\": \"INFO\", \"source\": \"test_source\", \"message\": \"Test message\"}" }, "relations": [ @@ -60894,9 +54801,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test adding a single log entry.", "POST": "Log entry persisted to database.", - "PRE": "Service and session initialized.", - "PURPOSE": "Test adding a single log entry." + "PRE": "Service and session initialized." }, "relations": [], "schema_warnings": [ @@ -60924,9 +54831,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test adding multiple log entries in batch.", "POST": "All log entries persisted to database.", - "PRE": "Service and session initialized.", - "PURPOSE": "Test adding multiple log entries in batch." + "PRE": "Service and session initialized." }, "relations": [], "schema_warnings": [ @@ -60954,9 +54861,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test adding empty log list (should be no-op).", "POST": "No logs added.", - "PRE": "Service initialized.", - "PURPOSE": "Test adding empty log list (should be no-op)." + "PRE": "Service initialized." }, "relations": [], "schema_warnings": [ @@ -60984,9 +54891,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test retrieving logs by task ID.", "POST": "Returns logs for the specified task.", - "PRE": "Service and session initialized, logs exist.", - "PURPOSE": "Test retrieving logs by task ID." + "PRE": "Service and session initialized, logs exist." }, "relations": [], "schema_warnings": [ @@ -61014,9 +54921,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test retrieving logs with level and source filters.", "POST": "Returns filtered logs.", - "PRE": "Service and session initialized, logs exist.", - "PURPOSE": "Test retrieving logs with level and source filters." + "PRE": "Service and session initialized, logs exist." }, "relations": [], "schema_warnings": [ @@ -61044,9 +54951,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test retrieving logs with pagination.", "POST": "Returns paginated logs.", - "PRE": "Service and session initialized, logs exist.", - "PURPOSE": "Test retrieving logs with pagination." + "PRE": "Service and session initialized, logs exist." }, "relations": [], "schema_warnings": [ @@ -61074,9 +54981,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test retrieving logs with search query.", "POST": "Returns logs matching search query.", - "PRE": "Service and session initialized, logs exist.", - "PURPOSE": "Test retrieving logs with search query." + "PRE": "Service and session initialized, logs exist." }, "relations": [], "schema_warnings": [ @@ -61104,9 +55011,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test retrieving log statistics.", "POST": "Returns LogStats model with counts by level and source.", - "PRE": "Service and session initialized, logs exist.", - "PURPOSE": "Test retrieving log statistics." + "PRE": "Service and session initialized, logs exist." }, "relations": [], "schema_warnings": [ @@ -61134,9 +55041,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test retrieving unique log sources.", "POST": "Returns list of unique sources.", - "PRE": "Service and session initialized, logs exist.", - "PURPOSE": "Test retrieving unique log sources." + "PRE": "Service and session initialized, logs exist." }, "relations": [], "schema_warnings": [ @@ -61164,9 +55071,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test deleting logs by task ID.", "POST": "Logs for the task are deleted.", - "PRE": "Service and session initialized, logs exist.", - "PURPOSE": "Test deleting logs by task ID." + "PRE": "Service and session initialized, logs exist." }, "relations": [], "schema_warnings": [ @@ -61194,9 +55101,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test deleting logs for multiple tasks.", "POST": "Logs for all specified tasks are deleted.", - "PRE": "Service and session initialized, logs exist.", - "PURPOSE": "Test deleting logs for multiple tasks." + "PRE": "Service and session initialized, logs exist." }, "relations": [], "schema_warnings": [ @@ -61224,9 +55131,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test deleting with empty list (no-op).", "POST": "No error, no deletion.", - "PRE": "Service initialized.", - "PURPOSE": "Test deleting with empty list (no-op)." + "PRE": "Service initialized." }, "relations": [], "schema_warnings": [ @@ -61254,9 +55161,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for the custom logger CoT JSON formatters and configuration context manager.", "INVARIANT": "All required log statements must correctly check the threshold.", "LAYER": "Logging (Tests)", - "PURPOSE": "Unit tests for the custom logger CoT JSON formatters and configuration context manager.", "SEMANTICS": [ "logging", "tests", @@ -61316,9 +55223,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that belief_scope logs REFLECT marker on success.", "POST": "Logs are verified to contain REFLECT marker.", - "PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.", - "PURPOSE": "Test that belief_scope logs REFLECT marker on success." + "PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG." }, "relations": [ { @@ -61353,9 +55260,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Test that belief_scope REASON/REFLECT markers are NOT visible at INFO level.", "POST": "REASON/REFLECT markers are not captured at INFO level.", - "PRE": "belief_scope is available. caplog fixture is used.", - "PURPOSE": "Test that belief_scope REASON/REFLECT markers are NOT visible at INFO level." + "PRE": "belief_scope is available. caplog fixture is used." }, "relations": [ { @@ -61390,7 +55297,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Test that CotJsonFormatter produces valid JSON with expected fields." + "BRIEF": "Test that CotJsonFormatter produces valid JSON with expected fields." }, "relations": [ { @@ -61425,7 +55332,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Test that CotJsonFormatter wraps plain messages (no extra) with default marker." + "BRIEF": "Test that CotJsonFormatter wraps plain messages (no extra) with default marker." }, "relations": [ { @@ -61460,8 +55367,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Verify Class 2 fix — no bare `except: pass` patterns remain in src/.", "COMPLEXITY": 3, - "PURPOSE": "Verify Class 2 fix — no bare `except: pass` patterns remain in src/.", "TEST_EDGE": "plugin_loader_uses_logger -> plugin_loader.py uses logger, not print" }, "relations": [ @@ -61472,29 +55379,7 @@ "target_ref": "[PluginLoaderCore]" } ], - "schema_warnings": [ - { - "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 C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region TestLoggingAuditFixes [C:3] [TYPE Module] [SEMANTICS test,logging,except,audit]\n# @BRIEF Verify Class 2 fix — no bare `except: pass` patterns remain in src/.\n# @RELATION BINDS_TO -> [PluginLoaderCore]\n# @TEST_EDGE: except_pass_replaced -> bare `except: pass` patterns are absent from src/\n# @TEST_EDGE: plugin_loader_uses_logger -> plugin_loader.py uses logger, not print\nimport ast\nimport sys\nfrom pathlib import Path\n\nsys.path.insert(0, str(Path(__file__).parent.parent / \"src\"))\n\n\nclass TestLoggingAuditFixes:\n \"\"\"Verify that all bare `except: pass` patterns have been replaced with proper logging.\"\"\"\n\n PLUGIN_LOADER_PATH = Path(__file__).parent.parent / \"src\" / \"core\" / \"plugin_loader.py\"\n\n # #region _collect_src_files [C:1] [TYPE Function]\n # @BRIEF Collect all .py files under src/ excluding test/ and mock/ directories.\n @staticmethod\n def _collect_src_files():\n src_root = Path(__file__).parent.parent / \"src\"\n return sorted(\n p for p in src_root.rglob(\"*.py\")\n if \"test\" not in p.parts and \"mock\" not in p.parts and p.name != \"__init__.py\"\n )\n # #endregion _collect_src_files\n\n # #region test_except_pass_replaced_with_log [C:2] [TYPE Function]\n # @BRIEF AST audit: bare `except: pass` nodes are absent from src/ source files.\n def test_except_pass_replaced_with_log(self):\n files_with_bare_except_pass = []\n\n for filepath in self._collect_src_files():\n try:\n tree = ast.parse(filepath.read_text(encoding=\"utf-8\"), filename=str(filepath))\n except SyntaxError:\n continue\n\n for node in ast.walk(tree):\n if not isinstance(node, ast.ExceptHandler):\n continue\n if node.type is not None:\n continue\n if len(node.body) == 1 and isinstance(node.body[0], ast.Pass):\n files_with_bare_except_pass.append(str(filepath))\n break\n\n assert not files_with_bare_except_pass, (\n f\"Bare `except: pass` found in {len(files_with_bare_except_pass)} file(s):\\n\"\n + \"\\n\".join(files_with_bare_except_pass)\n )\n # #endregion test_except_pass_replaced_with_log\n\n # #region test_plugin_loader_uses_logger_not_print [C:2] [TYPE Function]\n # @BRIEF plugin_loader.py (src/core/) uses logger for error/warning, not print().\n def test_plugin_loader_uses_logger_not_print(self):\n code = self.PLUGIN_LOADER_PATH.read_text(encoding=\"utf-8\")\n tree = ast.parse(code, filename=str(self.PLUGIN_LOADER_PATH))\n\n # Find all print() calls in executable code\n print_lines = []\n for node in ast.walk(tree):\n if (isinstance(node, ast.Call)\n and isinstance(node.func, ast.Name)\n and node.func.id == \"print\"):\n print_lines.append(node.lineno)\n\n assert len(print_lines) == 0, (\n f\"plugin_loader.py still contains print() calls at lines: {print_lines}\"\n )\n # #endregion test_plugin_loader_uses_logger_not_print\n\n # #region test_plugin_loader_imports_logger [C:2] [TYPE Function]\n # @BRIEF plugin_loader.py imports a logger or _logger for structured reporting.\n def test_plugin_loader_imports_logger(self):\n code = self.PLUGIN_LOADER_PATH.read_text(encoding=\"utf-8\")\n tree = ast.parse(code, filename=str(self.PLUGIN_LOADER_PATH))\n\n has_logger_import = False\n for node in ast.walk(tree):\n if isinstance(node, (ast.Import, ast.ImportFrom)):\n for alias in node.names:\n if \"logger\" in alias.name.lower():\n has_logger_import = True\n break\n\n assert has_logger_import, (\n \"plugin_loader.py should import 'logger' or '_logger' \"\n \"for log-based error handling (instead of print)\"\n )\n # #endregion test_plugin_loader_imports_logger\n\n # #region test_plugin_loader_logger_calls_exist [C:2] [TYPE Function]\n # @BRIEF plugin_loader.py references logger.error/warning/info in its code.\n def test_plugin_loader_logger_calls_exist(self):\n code = self.PLUGIN_LOADER_PATH.read_text(encoding=\"utf-8\")\n tree = ast.parse(code, filename=str(self.PLUGIN_LOADER_PATH))\n\n logger_calls = []\n for node in ast.walk(tree):\n if (isinstance(node, ast.Call)\n and isinstance(node.func, ast.Attribute)\n and isinstance(node.func.value, ast.Name)\n and \"logger\" in node.func.value.id.lower()):\n logger_calls.append((node.lineno, node.func.attr))\n\n error_levels = {\"error\", \"warning\", \"info\", \"debug\", \"reason\", \"reflect\", \"explore\"}\n matching = [call for call in logger_calls if call[1] in error_levels]\n assert len(matching) >= 4, (\n f\"plugin_loader.py has only {len(matching)} logger.error/warning/info calls \"\n f\"(expected at least 4 for the 4 replaced print() statements): {matching}\"\n )\n # #endregion test_plugin_loader_logger_calls_exist\n# #endregion TestLoggingAuditFixes\n" @@ -61508,8 +55393,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "Collect all .py files under src/ excluding test/ and mock/ directories." + "BRIEF": "Collect all .py files under src/ excluding test/ and mock/ directories.", + "COMPLEXITY": 1 }, "relations": [], "schema_warnings": [], @@ -61526,8 +55411,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "AST audit: bare `except: pass` nodes are absent from src/ source files." + "BRIEF": "AST audit: bare `except: pass` nodes are absent from src/ source files.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61544,8 +55429,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "plugin_loader.py (src/core/) uses logger for error/warning, not print()." + "BRIEF": "plugin_loader.py (src/core/) uses logger for error/warning, not print().", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61562,8 +55447,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "plugin_loader.py imports a logger or _logger for structured reporting." + "BRIEF": "plugin_loader.py imports a logger or _logger for structured reporting.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61580,8 +55465,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "plugin_loader.py references logger.error/warning/info in its code." + "BRIEF": "plugin_loader.py references logger.error/warning/info in its code.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61598,65 +55483,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Contract tests for Maintenance Banner API endpoints — T016, T025." + "BRIEF": "Contract tests for Maintenance Banner API endpoints — T016, T025.", + "COMPLEXITY": 3 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'TestModule'", - "detail": { - "actual_type": "TestModule", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'TestModule' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "TestModule" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'TestModule'", - "detail": { - "actual_type": "TestModule", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'TestModule' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "TestModule" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_maintenance_api [C:3] [TYPE TestModule] [SEMANTICS test, maintenance, api, fastapi, pytest]\n# @BRIEF Contract tests for Maintenance Banner API endpoints — T016, T025.\n# Tests POST /start, POST /{id}/end, POST /end-all, GET /events, GET /dashboard-banners,\n# GET /settings, PUT /settings.\n# @LAYER Test\n# @RELATION BINDS_TO -> [MaintenanceRoutesModule]\n# @TEST_CONTRACT: POST /api/maintenance/start -> 202 {task_id, maintenance_id, status}\n# @TEST_CONTRACT: POST /api/maintenance/{id}/end -> 202 {task_id, status}\n# @TEST_CONTRACT: POST /api/maintenance/end-all -> 202 {task_id, status}\n# @TEST_EDGE: missing_tables -> 422 validation error\n# @TEST_EDGE: end_time_before_start_time -> 400 validation error\n# @TEST_EDGE: non_existent_event_end -> 404 not found\nimport json\nimport os\nimport uuid\nfrom datetime import datetime, timezone, timedelta\nfrom typing import Any\nfrom unittest.mock import AsyncMock, MagicMock, patch, PropertyMock\n\nimport pytest\nfrom fastapi import status\n\n# Patch GitService at module level to prevent /app/storage/repositories error\n# This patches the base module BEFORE any imports can reach it\nimport sys\nfrom unittest.mock import MagicMock\n\n_mock_git_svc_cls = MagicMock()\n_mock_git_svc_cls.return_value = MagicMock()\nsys.modules['src.services.git._base'] = MagicMock(GitService=_mock_git_svc_cls)\nsys.modules['src.services.git_service'] = MagicMock(GitService=_mock_git_svc_cls)\n\n\n# ── Fixtures ──────────────────────────────────────────────────\n\n@pytest.fixture\ndef client():\n \"\"\"Create a TestClient with all dependencies mocked.\"\"\"\n from fastapi.testclient import TestClient\n from src.app import app\n return TestClient(app)\n\n\n@pytest.fixture(autouse=True)\ndef auth_mock(client, mock_db):\n \"\"\"Create a valid API key with maintenance permissions and mock JWT user.\"\"\"\n from src.core.auth.api_key import generate_api_key\n from src.models.api_key import APIKey\n from src.dependencies import get_current_user\n from src.app import app\n\n # Create API key for mutation endpoints\n raw, prefix, key_hash = generate_api_key()\n api_key = APIKey(\n key_hash=key_hash,\n prefix=prefix,\n name=\"Test API Key\",\n permissions=[\"maintenance:start\", \"maintenance:end\", \"maintenance:end_all\"],\n active=True,\n )\n mock_db.add(api_key)\n mock_db.commit()\n\n client.headers.update({\"X-API-Key\": raw})\n\n # Mock JWT user for read-only endpoints\n mock_role = MagicMock()\n mock_role.name = \"Admin\"\n mock_role.permissions = []\n\n mock_user = MagicMock()\n mock_user.username = \"test-admin\"\n mock_user.roles = [mock_role]\n\n async def _mock_get_current_user():\n return mock_user\n\n app.dependency_overrides[get_current_user] = _mock_get_current_user\n\n yield\n\n client.headers.pop(\"X-API-Key\", None)\n app.dependency_overrides = {}\n\n\n@pytest.fixture\ndef mock_db():\n \"\"\"Patch get_db dependency to return a clean in-memory session.\n \n Uses StaticPool so all Session() instances share the same connection,\n preventing SQLite threading issues where each :memory: connection\n creates a separate database.\n Creates all tables on the shared Base.metadata.\n \"\"\"\n from sqlalchemy import create_engine\n from sqlalchemy.orm import sessionmaker, Session as SASession\n from sqlalchemy.pool import StaticPool\n from src.models.mapping import Base\n from src.dependencies import get_db\n from src.models.maintenance import MaintenanceSettings, DashboardScope\n\n # StaticPool ensures all sessions share the same in-memory connection\n engine = create_engine(\n \"sqlite:///:memory:\",\n poolclass=StaticPool,\n connect_args={\"check_same_thread\": False},\n echo=False,\n )\n Base.metadata.create_all(engine)\n Session = sessionmaker(bind=engine)\n session = Session()\n\n # Create default settings\n settings = MaintenanceSettings(\n id=\"default\",\n target_environment_id=\"test-env\",\n display_timezone=\"UTC\",\n banner_template=\"Test: {message} ({start_time}-{end_time})\",\n dashboard_scope=DashboardScope.PUBLISHED_ONLY,\n excluded_dashboard_ids=[],\n forced_dashboard_ids=[],\n )\n session.add(settings)\n session.commit()\n\n def _get_db_override():\n db = Session()\n try:\n yield db\n finally:\n db.close()\n\n from src.app import app\n app.dependency_overrides[get_db] = _get_db_override\n yield session\n app.dependency_overrides.pop(get_db, None)\n session.close()\n\n\n@pytest.fixture\ndef mock_task_manager():\n \"\"\"Patch get_task_manager to return a mock.\"\"\"\n from src.dependencies import get_task_manager\n\n mock_tm = MagicMock()\n mock_task = MagicMock()\n mock_task.id = \"test-task-id-123\"\n mock_tm.create_task = AsyncMock(return_value=mock_task)\n\n from src.app import app\n app.dependency_overrides[get_task_manager] = lambda: mock_tm\n yield mock_tm\n app.dependency_overrides.pop(get_task_manager, None)\n\n\n# ── T016: POST /api/maintenance/start ─────────────────────────\n\nclass TestStartEndpoint:\n \"\"\"Contract tests for POST /api/maintenance/start.\"\"\"\n\n # #region test_start_returns_202 [C:2] [TYPE Function]\n # @BRIEF Valid request returns 202 with task_id and maintenance_id.\n def test_start_returns_202(self, client, mock_db, mock_task_manager):\n response = client.post(\n \"/api/maintenance/start\",\n json={\n \"tables\": [\"raw.sales\"],\n \"start_time\": (datetime.now(timezone.utc) + timedelta(hours=1)).isoformat(),\n \"end_time\": (datetime.now(timezone.utc) + timedelta(hours=3)).isoformat(),\n \"message\": \"Test maintenance\",\n \"environment_id\": \"test-env\",\n },\n )\n assert response.status_code == 202\n data = response.json()\n assert \"task_id\" in data\n assert \"maintenance_id\" in data\n assert data[\"status\"] == \"pending\"\n # #endregion test_start_returns_202\n\n # #region test_start_missing_tables [C:2] [TYPE Function]\n # @BRIEF Missing tables field returns 422.\n def test_start_missing_tables(self, client, mock_db, mock_task_manager):\n response = client.post(\n \"/api/maintenance/start\",\n json={\n \"start_time\": (datetime.now(timezone.utc) + timedelta(hours=1)).isoformat(),\n },\n )\n assert response.status_code == 422\n # #endregion test_start_missing_tables\n\n # #region test_start_end_time_before_start [C:2] [TYPE Function]\n # @BRIEF end_time before start_time returns 400.\n def test_start_end_time_before_start(self, client, mock_db, mock_task_manager):\n response = client.post(\n \"/api/maintenance/start\",\n json={\n \"tables\": [\"raw.sales\"],\n \"start_time\": (datetime.now(timezone.utc) + timedelta(hours=3)).isoformat(),\n \"end_time\": (datetime.now(timezone.utc) + timedelta(hours=1)).isoformat(),\n \"environment_id\": \"test-env\",\n },\n )\n assert response.status_code == 400\n # #endregion test_start_end_time_before_start\n\n # #region test_start_too_many_tables [C:2] [TYPE Function]\n # @BRIEF More than 100 tables returns 422 (Pydantic validation).\n def test_start_too_many_tables(self, client, mock_db, mock_task_manager):\n tables = [f\"raw.table{i}\" for i in range(101)]\n response = client.post(\n \"/api/maintenance/start\",\n json={\n \"tables\": tables,\n \"start_time\": (datetime.now(timezone.utc) + timedelta(hours=1)).isoformat(),\n \"environment_id\": \"test-env\",\n },\n )\n assert response.status_code == 422\n # #endregion test_start_too_many_tables\n\n # #region test_start_idempotency [C:2] [TYPE Function]\n # @BRIEF Same (tables, start, end) returns already_active.\n def test_start_idempotency(self, client, mock_db, mock_task_manager):\n from src.models.maintenance import MaintenanceEvent, MaintenanceEventStatus\n\n payload = {\n \"tables\": [\"raw.sales\"],\n \"start_time\": (datetime.now(timezone.utc) + timedelta(hours=1)).isoformat(),\n \"end_time\": (datetime.now(timezone.utc) + timedelta(hours=3)).isoformat(),\n \"environment_id\": \"test-env\",\n }\n\n # First call creates event\n response1 = client.post(\"/api/maintenance/start\", json=payload)\n assert response1.status_code == 202\n\n # Manually set event to ACTIVE so idempotency check finds it\n maintenance_id = response1.json()[\"maintenance_id\"]\n event = mock_db.query(MaintenanceEvent).filter(\n MaintenanceEvent.id == maintenance_id\n ).first()\n if event:\n event.status = MaintenanceEventStatus.ACTIVE\n mock_db.commit()\n\n # Second call with same params — idempotent\n response2 = client.post(\"/api/maintenance/start\", json=payload)\n assert response2.status_code == 202\n data = response2.json()\n # Should have maintenance_id and status\n assert data.get(\"maintenance_id\") or data.get(\"status\")\n # #endregion test_start_idempotency\n\n\n# ── T025: POST /api/maintenance/{id}/end ──────────────────────\n\nclass TestEndEndpoint:\n \"\"\"Contract tests for POST /api/maintenance/{id}/end.\"\"\"\n\n # #region test_end_returns_202 [C:2] [TYPE Function]\n # @BRIEF Valid maintenance_id returns 202.\n def test_end_returns_202(self, client, mock_db, mock_task_manager):\n from src.models.maintenance import MaintenanceEvent, MaintenanceEventStatus\n\n event = MaintenanceEvent(\n tables=[\"raw.sales\"],\n start_time=datetime.now(timezone.utc),\n status=MaintenanceEventStatus.ACTIVE,\n environment_id=\"test-env\",\n )\n mock_db.add(event)\n mock_db.commit()\n\n response = client.post(f\"/api/maintenance/{event.id}/end\")\n assert response.status_code == 202\n data = response.json()\n assert \"task_id\" in data\n # #endregion test_end_returns_202\n\n # #region test_end_not_found [C:2] [TYPE Function]\n # @BRIEF Non-existent maintenance_id returns 404.\n def test_end_not_found(self, client, mock_db, mock_task_manager):\n response = client.post(\"/api/maintenance/nonexistent-id/end\")\n assert response.status_code == 404\n # #endregion test_end_not_found\n\n\n# ── POST /api/maintenance/end-all ─────────────────────────────\n\nclass TestEndAllEndpoint:\n \"\"\"Contract tests for POST /api/maintenance/end-all.\"\"\"\n\n # #region test_end_all_returns_202 [C:2] [TYPE Function]\n # @BRIEF end-all returns 202.\n def test_end_all_returns_202(self, client, mock_db, mock_task_manager):\n response = client.post(\"/api/maintenance/end-all\")\n assert response.status_code == 202\n data = response.json()\n assert \"task_id\" in data\n assert data[\"status\"] == \"pending\"\n # #endregion test_end_all_returns_202\n\n\n# ── GET /api/maintenance/events ───────────────────────────────\n\nclass TestEventsEndpoint:\n \"\"\"Contract tests for GET /api/maintenance/events.\"\"\"\n\n # #region test_list_events [C:2] [TYPE Function]\n # @BRIEF Returns active and completed events.\n def test_list_events(self, client, mock_db, mock_task_manager):\n from src.models.maintenance import MaintenanceEvent, MaintenanceEventStatus\n\n active = MaintenanceEvent(\n tables=[\"raw.active\"],\n start_time=datetime.now(timezone.utc),\n status=MaintenanceEventStatus.ACTIVE,\n environment_id=\"test-env\",\n )\n mock_db.add(active)\n\n completed = MaintenanceEvent(\n tables=[\"raw.done\"],\n start_time=datetime.now(timezone.utc),\n status=MaintenanceEventStatus.COMPLETED,\n environment_id=\"test-env\",\n )\n mock_db.add(completed)\n mock_db.commit()\n\n response = client.get(\"/api/maintenance/events\")\n assert response.status_code == 200\n data = response.json()\n assert \"active\" in data\n assert \"completed\" in data\n # #endregion test_list_events\n\n # #region test_expired_event_auto_ends [C:2] [TYPE Function]\n # @BRIEF Event past end_time with ACTIVE status → create_task called with auto-end params.\n def test_expired_event_auto_ends(self, client, mock_db, mock_task_manager):\n from src.models.maintenance import MaintenanceEvent, MaintenanceEventStatus\n from datetime import timedelta\n\n event = MaintenanceEvent(\n tables=[\"raw.sales\"],\n start_time=datetime.now(timezone.utc) - timedelta(hours=2),\n end_time=datetime.now(timezone.utc) - timedelta(hours=1),\n message=\"Expired maintenance\",\n status=MaintenanceEventStatus.ACTIVE,\n environment_id=\"test-env\",\n )\n mock_db.add(event)\n mock_db.commit()\n\n response = client.get(\"/api/maintenance/events\")\n assert response.status_code == 200\n\n mock_task_manager.create_task.assert_called_once_with(\n plugin_id=\"maintenance_banner_apply\",\n params={\n \"operation\": \"end\",\n \"event_id\": event.id,\n \"environment_id\": \"test-env\",\n \"user\": \"system\",\n },\n )\n # #endregion test_expired_event_auto_ends\n\n # #region test_future_end_time_skipped [C:2] [TYPE Function]\n # @BRIEF Event with future end_time → no task created, skipped by < now filter.\n def test_future_end_time_skipped(self, client, mock_db, mock_task_manager):\n from src.models.maintenance import MaintenanceEvent, MaintenanceEventStatus\n from datetime import timedelta\n\n event = MaintenanceEvent(\n tables=[\"raw.sales\"],\n start_time=datetime.now(timezone.utc) + timedelta(hours=1),\n end_time=datetime.now(timezone.utc) + timedelta(hours=3),\n message=\"Future maintenance\",\n status=MaintenanceEventStatus.ACTIVE,\n environment_id=\"test-env\",\n )\n mock_db.add(event)\n mock_db.commit()\n\n response = client.get(\"/api/maintenance/events\")\n assert response.status_code == 200\n\n mock_task_manager.create_task.assert_not_called()\n # #endregion test_future_end_time_skipped\n\n # #region test_no_end_time_skipped [C:2] [TYPE Function]\n # @BRIEF Event with end_time=None → no task created, skipped by isnot(None) filter.\n def test_no_end_time_skipped(self, client, mock_db, mock_task_manager):\n from src.models.maintenance import MaintenanceEvent, MaintenanceEventStatus\n from datetime import timedelta\n\n event = MaintenanceEvent(\n tables=[\"raw.sales\"],\n start_time=datetime.now(timezone.utc) - timedelta(hours=2),\n end_time=None,\n message=\"No end time\",\n status=MaintenanceEventStatus.ACTIVE,\n environment_id=\"test-env\",\n )\n mock_db.add(event)\n mock_db.commit()\n\n response = client.get(\"/api/maintenance/events\")\n assert response.status_code == 200\n\n mock_task_manager.create_task.assert_not_called()\n # #endregion test_no_end_time_skipped\n\n\n# ── GET /api/maintenance/dashboard-banners ────────────────────\n\nclass TestDashboardBannersEndpoint:\n \"\"\"Contract tests for GET /api/maintenance/dashboard-banners.\"\"\"\n\n # #region test_list_banners [C:2] [TYPE Function]\n # @BRIEF Returns list of active banners.\n def test_list_banners(self, client, mock_db, mock_task_manager):\n from src.models.maintenance import (\n MaintenanceDashboardBanner,\n MaintenanceDashboardBannerStatus,\n )\n\n banner = MaintenanceDashboardBanner(\n environment_id=\"test-env\",\n dashboard_id=101,\n chart_id=12345,\n banner_text=\"Test\",\n status=MaintenanceDashboardBannerStatus.ACTIVE,\n )\n mock_db.add(banner)\n mock_db.commit()\n\n response = client.get(\"/api/maintenance/dashboard-banners\")\n assert response.status_code == 200\n data = response.json()\n assert isinstance(data, list)\n # #endregion test_list_banners\n\n\n# ── GET /api/maintenance/settings ─────────────────────────────\n\nclass TestSettingsEndpoint:\n \"\"\"Contract tests for GET/PUT /api/maintenance/settings.\"\"\"\n\n # #region test_get_settings [C:2] [TYPE Function]\n # @BRIEF GET returns settings.\n def test_get_settings(self, client, mock_db, mock_task_manager):\n response = client.get(\"/api/maintenance/settings\")\n assert response.status_code == 200\n data = response.json()\n assert \"target_environment_id\" in data\n assert data[\"target_environment_id\"] == \"test-env\"\n # #endregion test_get_settings\n\n # #region test_put_settings [C:2] [TYPE Function]\n # @BRIEF PUT updates settings.\n def test_put_settings(self, client, mock_db, mock_task_manager):\n response = client.put(\n \"/api/maintenance/settings\",\n json={\"display_timezone\": \"Europe/Moscow\"},\n )\n assert response.status_code == 200\n data = response.json()\n assert data[\"display_timezone\"] == \"Europe/Moscow\"\n # #endregion test_put_settings\n# #endregion test_maintenance_api\n" @@ -61670,8 +55501,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Valid request returns 202 with task_id and maintenance_id." + "BRIEF": "Valid request returns 202 with task_id and maintenance_id.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61688,8 +55519,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Missing tables field returns 422." + "BRIEF": "Missing tables field returns 422.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61706,8 +55537,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "end_time before start_time returns 400." + "BRIEF": "end_time before start_time returns 400.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61724,8 +55555,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "More than 100 tables returns 422 (Pydantic validation)." + "BRIEF": "More than 100 tables returns 422 (Pydantic validation).", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61742,8 +55573,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Same (tables, start, end) returns already_active." + "BRIEF": "Same (tables, start, end) returns already_active.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61760,8 +55591,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Valid maintenance_id returns 202." + "BRIEF": "Valid maintenance_id returns 202.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61778,8 +55609,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Non-existent maintenance_id returns 404." + "BRIEF": "Non-existent maintenance_id returns 404.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61796,8 +55627,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "end-all returns 202." + "BRIEF": "end-all returns 202.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61814,8 +55645,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Returns active and completed events." + "BRIEF": "Returns active and completed events.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61832,8 +55663,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Event past end_time with ACTIVE status → create_task called with auto-end params." + "BRIEF": "Event past end_time with ACTIVE status → create_task called with auto-end params.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61850,8 +55681,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Event with future end_time → no task created, skipped by < now filter." + "BRIEF": "Event with future end_time → no task created, skipped by < now filter.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61868,8 +55699,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Event with end_time=None → no task created, skipped by isnot(None) filter." + "BRIEF": "Event with end_time=None → no task created, skipped by isnot(None) filter.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61886,8 +55717,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Returns list of active banners." + "BRIEF": "Returns list of active banners.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61904,8 +55735,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "GET returns settings." + "BRIEF": "GET returns settings.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61922,8 +55753,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "PUT updates settings." + "BRIEF": "PUT updates settings.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -61940,65 +55771,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Integration tests for MaintenanceService — T018, T026, T026a." + "BRIEF": "Integration tests for MaintenanceService — T018, T026, T026a.", + "COMPLEXITY": 3 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'TestModule'", - "detail": { - "actual_type": "TestModule", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'TestModule' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "TestModule" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'TestModule'", - "detail": { - "actual_type": "TestModule", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'TestModule' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "TestModule" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "# #region test_maintenance_service [C:3] [TYPE TestModule] [SEMANTICS test, maintenance, service, pytest, integration]\n# @BRIEF Integration tests for MaintenanceService — T018, T026, T026a.\n# Tests the C3/C4 orchestrators: start_maintenance, end_maintenance, end_all_maintenance,\n# and helpers: find_affected_dashboards, ensure_banner_chart, build_banner_text, rebuild_banner.\n# @LAYER Test\n# @RELATION BINDS_TO -> [MaintenanceServiceModule]\n# @TEST_CONTRACT: start_maintenance(str, Session, SupersetClient) -> dict\n# @TEST_CONTRACT: end_maintenance(str, Session, SupersetClient) -> dict\n# @TEST_CONTRACT: end_all_maintenance(Session, SupersetClient) -> dict\n# @TEST_EDGE: event_not_found -> returns failed status with error message\n# @TEST_EDGE: no_matching_dashboards -> returns \"no_match\" status\n# @TEST_EDGE: superset_api_failure -> returns partial/failed with error details\nimport uuid\nfrom datetime import datetime, timezone\nfrom typing import Any, cast\nfrom unittest.mock import MagicMock, patch, PropertyMock\n\nimport pytest\n\nfrom src.models.maintenance import (\n DashboardScope,\n MaintenanceDashboardBanner,\n MaintenanceDashboardBannerStatus,\n MaintenanceDashboardState,\n MaintenanceDashboardStateStatus,\n MaintenanceEvent,\n MaintenanceEventStatus,\n MaintenanceSettings,\n)\nfrom src.services.maintenance import (\n build_banner_text,\n build_idempotency_key,\n end_all_maintenance,\n end_maintenance,\n ensure_banner_chart,\n find_affected_dashboards,\n rebuild_banner,\n start_maintenance,\n)\n\n\n# ── Fixtures ──────────────────────────────────────────────────\n\n@pytest.fixture\ndef mock_superset():\n \"\"\"Create a mock SupersetClient for testing.\"\"\"\n client = MagicMock()\n # Default: no datasets\n client.get_datasets.return_value = (0, [])\n client.get_dashboards.return_value = (0, [])\n client.get_dataset_detail.return_value = {\"linked_dashboards\": []}\n client.create_markdown_chart.return_value = 12345\n client.get_chart.return_value = {\"id\": 12345, \"result\": {\"viz_type\": \"markdown\"}}\n client.update_banner_on_dashboard.return_value = {\"result\": \"ok\"}\n client.update_dashboard_layout.return_value = {\"result\": \"ok\"}\n client.remove_chart_from_layout.return_value = {\"result\": \"ok\"}\n client.delete_chart.return_value = {\"result\": \"ok\"}\n return client\n\n\n@pytest.fixture\ndef db_session():\n \"\"\"Create an in-memory SQLite session with tables.\"\"\"\n from sqlalchemy import create_engine\n from sqlalchemy.orm import sessionmaker\n from src.models.mapping import Base\n\n engine = create_engine(\"sqlite:///:memory:\", echo=False)\n Base.metadata.create_all(engine)\n Session = sessionmaker(bind=engine)\n session = Session()\n\n # Create default settings\n settings = MaintenanceSettings(\n id=\"default\",\n target_environment_id=\"test-env\",\n display_timezone=\"UTC\",\n banner_template=\"Maintenance: {message} ({start_time} - {end_time})\",\n dashboard_scope=DashboardScope.PUBLISHED_ONLY,\n excluded_dashboard_ids=[],\n forced_dashboard_ids=[],\n )\n session.add(settings)\n session.commit()\n return session\n\n\n@pytest.fixture\ndef pending_event(db_session):\n \"\"\"Create a PENDING maintenance event in the DB.\"\"\"\n event = MaintenanceEvent(\n tables=[\"raw.sales\", \"raw.inventory\"],\n start_time=datetime.now(timezone.utc),\n end_time=datetime.now(timezone.utc),\n message=\"Test maintenance\",\n status=MaintenanceEventStatus.PENDING,\n environment_id=\"test-env\",\n )\n db_session.add(event)\n db_session.commit()\n return event\n\n\n# ── T017: build_idempotency_key tests ─────────────────────────\n\nclass TestBuildIdempotencyKey:\n \"\"\"Tests for build_idempotency_key helper.\"\"\"\n\n # #region test_basic_key [C:2] [TYPE Function]\n # @BRIEF Basic idempotency key with tables and times.\n def test_basic_key(self):\n tables = [\"raw.sales\", \"RAW.INVENTORY\"]\n start = datetime(2026, 5, 21, 22, 0, 0, tzinfo=timezone.utc)\n end = datetime(2026, 5, 22, 2, 0, 0, tzinfo=timezone.utc)\n key = build_idempotency_key(tables, start, end)\n assert key[0] == frozenset({\"raw.inventory\", \"raw.sales\"})\n assert key[1] == \"2026-05-21T22:00:00+00:00\"\n assert key[2] == \"2026-05-22T02:00:00+00:00\"\n # #endregion test_basic_key\n\n # #region test_key_without_end_time [C:2] [TYPE Function]\n # @BRIEF Idempotency key with None end_time.\n def test_key_without_end_time(self):\n tables = [\"raw.sales\"]\n start = datetime(2026, 5, 21, 22, 0, 0, tzinfo=timezone.utc)\n key = build_idempotency_key(tables, start, None)\n assert key[0] == frozenset({\"raw.sales\"})\n assert key[1] == \"2026-05-21T22:00:00+00:00\"\n assert key[2] is None\n # #endregion test_key_without_end_time\n\n # #region test_key_table_sorting [C:2] [TYPE Function]\n # @BRIEF Tables are sorted alphabetically in frozenset.\n def test_key_table_sorting(self):\n key1 = build_idempotency_key([\"z.table\", \"a.table\"], None, None)\n key2 = build_idempotency_key([\"a.table\", \"z.table\"], None, None)\n assert key1 == key2\n # #endregion test_key_table_sorting\n\n\n# ── T019: find_affected_dashboards tests ──────────────────────\n\nclass TestFindAffectedDashboards:\n \"\"\"Tests for find_affected_dashboards.\"\"\"\n\n # #region test_empty_tables [C:2] [TYPE Function]\n # @BRIEF Empty tables list returns empty.\n def test_empty_tables(self, mock_superset):\n result = find_affected_dashboards([], mock_superset)\n assert result == []\n # #endregion test_empty_tables\n\n # #region test_table_based_match [C:2] [TYPE Function]\n # @BRIEF Table-based dataset matching.\n def test_table_based_match(self, mock_superset):\n mock_superset.get_datasets.return_value = (2, [\n {\"id\": 1, \"schema\": \"raw\", \"table_name\": \"sales\", \"sql\": None},\n {\"id\": 2, \"schema\": \"raw\", \"table_name\": \"inventory\", \"sql\": None},\n ])\n mock_superset.get_dataset_detail.side_effect = [\n {\"linked_dashboards\": [{\"id\": 101}]},\n {\"linked_dashboards\": [{\"id\": 102}]},\n ]\n\n result = find_affected_dashboards([\"raw.sales\"], mock_superset)\n assert 101 in result\n assert 102 not in result\n # #endregion test_table_based_match\n\n # #region test_virtual_dataset_match [C:2] [TYPE Function]\n # @BRIEF Virtual SQL dataset matching via SqlTableExtractor.\n def test_virtual_dataset_match(self, mock_superset):\n mock_superset.get_datasets.return_value = (1, [\n {\n \"id\": 1,\n \"schema\": \"raw\",\n \"table_name\": \"sales_view\",\n \"sql\": \"SELECT * FROM raw.sales\",\n \"is_sqllab_view\": True,\n },\n ])\n mock_superset.get_dataset_detail.return_value = {\n \"linked_dashboards\": [{\"id\": 101}],\n }\n\n result = find_affected_dashboards([\"raw.sales\"], mock_superset)\n assert 101 in result\n # #endregion test_virtual_dataset_match\n\n # #region test_case_insensitive_matching [C:2] [TYPE Function]\n # @BRIEF Matching is case-insensitive.\n def test_case_insensitive_matching(self, mock_superset):\n mock_superset.get_datasets.return_value = (1, [\n {\"id\": 1, \"schema\": \"RAW\", \"table_name\": \"SALES\", \"sql\": None},\n ])\n mock_superset.get_dataset_detail.return_value = {\n \"linked_dashboards\": [{\"id\": 101}],\n }\n\n result = find_affected_dashboards([\"raw.sales\"], mock_superset)\n assert 101 in result\n # #endregion test_case_insensitive_matching\n\n # #region test_superset_api_failure [C:2] [TYPE Function]\n # @BRIEF Superset API failure propagates.\n def test_superset_api_failure(self, mock_superset):\n mock_superset.get_datasets.side_effect = Exception(\"Superset API error\")\n with pytest.raises(Exception, match=\"Superset API error\"):\n find_affected_dashboards([\"raw.sales\"], mock_superset)\n # #endregion test_superset_api_failure\n\n\n# ── T019a: ensure_banner_chart tests ──────────────────────────\n\nclass TestEnsureBannerChart:\n \"\"\"Tests for ensure_banner_chart.\"\"\"\n\n # #region test_creates_new_banner [C:2] [TYPE Function]\n # @BRIEF No existing banner — creates new chart and banner row.\n def test_creates_new_banner(self, mock_superset, db_session):\n banner = ensure_banner_chart(\n 101, \"test-env\", mock_superset, db_session\n )\n assert banner.dashboard_id == 101\n assert banner.chart_id == 12345\n assert banner.status == MaintenanceDashboardBannerStatus.ACTIVE\n mock_superset.create_markdown_chart.assert_called_once_with(101, \"*Maintenance banner placeholder*\")\n mock_superset.update_dashboard_layout.assert_called_once_with(101, 12345)\n # #endregion test_creates_new_banner\n\n # #region test_returns_existing_banner [C:2] [TYPE Function]\n # @BRIEF Existing active banner — returns it.\n def test_returns_existing_banner(self, mock_superset, db_session):\n existing = MaintenanceDashboardBanner(\n environment_id=\"test-env\",\n dashboard_id=101,\n chart_id=999,\n banner_text=\"Existing\",\n status=MaintenanceDashboardBannerStatus.ACTIVE,\n )\n db_session.add(existing)\n db_session.commit()\n\n banner = ensure_banner_chart(\n 101, \"test-env\", mock_superset, db_session\n )\n assert banner.id == existing.id\n assert banner.chart_id == 999\n mock_superset.create_markdown_chart.assert_not_called()\n # #endregion test_returns_existing_banner\n\n # #region test_chart_creation_failure [C:2] [TYPE Function]\n # @BRIEF Chart creation failure propagates.\n def test_chart_creation_failure(self, mock_superset, db_session):\n mock_superset.create_markdown_chart.side_effect = Exception(\"Chart error\")\n with pytest.raises(Exception, match=\"Chart error\"):\n ensure_banner_chart(101, \"test-env\", mock_superset, db_session)\n # #endregion test_chart_creation_failure\n\n\n# ── T020: build_banner_text tests ─────────────────────────────\n\nclass TestBuildBannerText:\n \"\"\"Tests for build_banner_text.\"\"\"\n\n # #region test_single_event [C:2] [TYPE Function]\n # @BRIEF Single event — direct substitution.\n def test_single_event(self):\n events = [\n {\"start_time\": \"2026-05-21T22:00:00+00:00\",\n \"end_time\": \"2026-05-22T02:00:00+00:00\",\n \"message\": \"Updating tables\"}\n ]\n template = \"Banner: {message} ({start_time} - {end_time})\"\n result = build_banner_text(events, template)\n assert \"Updating tables\" in result\n assert \"2026-05-21 22:00\" in result\n assert \"2026-05-22 02:00\" in result\n # #endregion test_single_event\n\n # #region test_multiple_events [C:2] [TYPE Function]\n # @BRIEF Multiple events — combined message.\n def test_multiple_events(self):\n events = [\n {\"start_time\": \"2026-05-21T22:00:00+00:00\",\n \"end_time\": \"2026-05-22T02:00:00+00:00\",\n \"message\": \"Event 1\"},\n {\"start_time\": \"2026-05-23T22:00:00+00:00\",\n \"end_time\": \"2026-05-24T02:00:00+00:00\",\n \"message\": \"Event 2\"},\n ]\n template = \"Banner: {message} ({start_time} - {end_time})\"\n result = build_banner_text(events, template)\n assert \"Event 1\" in result\n assert \"Event 2\" in result\n # #endregion test_multiple_events\n\n # #region test_empty_events [C:2] [TYPE Function]\n # @BRIEF Empty events list returns empty string.\n def test_empty_events(self):\n result = build_banner_text([], \"Template: {message}\")\n assert result == \"\"\n # #endregion test_empty_events\n\n # #region test_missing_variables [C:2] [TYPE Function]\n # @BRIEF Missing variables replaced with empty string.\n def test_missing_variables(self):\n events = [{\"start_time\": None, \"end_time\": None, \"message\": \"Hi\"}]\n template = \"Start: {start_time} - End: {end_time} - Msg: {message}\"\n result = build_banner_text(events, template)\n assert \"уточняется\" in result\n assert \"Hi\" in result\n # #endregion test_missing_variables\n\n # #region test_html_escaping [C:2] [TYPE Function]\n # @BRIEF Message is HTML-escaped.\n def test_html_escaping(self):\n events = [{\n \"start_time\": \"2026-05-21T22:00:00+00:00\",\n \"end_time\": \"2026-05-22T02:00:00+00:00\",\n \"message\": \"\",\n }]\n template = \"{message}\"\n result = build_banner_text(events, template)\n assert \"\n\n
\n \n Superset Tools\n \n \n
\n\n" @@ -69857,9 +62013,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "A modal component to prompt the user for database passwords when a migration task is paused.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "A modal component to prompt the user for database passwords when a migration task is paused.", "SEMANTICS": [ "password", "prompt", @@ -69888,55 +62044,7 @@ "target_ref": "oncancel" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n{#if show}\n \n \n \n \n\n \n\n \n
\n
\n \n \n \n \n \n
\n \n \n Database Password Required\n \n
\n

\n The migration process requires passwords for\n the following databases to proceed.\n

\n\n {#if errorMessage}\n \n Error: {errorMessage}\n
\n {/if}\n\n { e.preventDefault(); handleSubmit(); }}\n class=\"space-y-4\"\n >\n {#each databases as dbName}\n
\n \n Password for {dbName}\n \n \n
\n {/each}\n \n
\n \n \n \n \n \n {submitting ? \"Resuming...\" : \"Resume Migration\"}\n \n \n Cancel\n \n \n \n \n \n{/if}\n\n" @@ -69950,9 +62058,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validates and forwards passwords to resume the task.", "POST": "Parent resume callback receives passwords payload.", - "PRE": "All database passwords must be entered.", - "PURPOSE": "Validates and forwards passwords to resume the task." + "PRE": "All database passwords must be entered." }, "relations": [], "schema_warnings": [], @@ -69969,9 +62077,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Cancels the password prompt.", "POST": "Parent cancel callback is invoked and show is set to false.", - "PRE": "Modal is open.", - "PURPOSE": "Cancels the password prompt." + "PRE": "Modal is open." }, "relations": [], "schema_warnings": [], @@ -69988,9 +62096,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Toggles sort direction or changes sort column.", "POST": "sortColumn and sortDirection state updated.", - "PRE": "column name is provided.", - "PURPOSE": "Toggles sort direction or changes sort column." + "PRE": "column name is provided." }, "relations": [], "schema_warnings": [], @@ -70007,9 +62115,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Handles individual checkbox changes.", "POST": "selectedIds array updated.", - "PRE": "dashboard ID and checked status provided.", - "PURPOSE": "Handles individual checkbox changes." + "PRE": "dashboard ID and checked status provided." }, "relations": [], "schema_warnings": [], @@ -70026,9 +62134,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Handles select all checkbox.", "POST": "selectedIds array updated for all paginated items.", - "PRE": "checked status provided.", - "PURPOSE": "Handles select all checkbox." + "PRE": "checked status provided." }, "relations": [], "schema_warnings": [], @@ -70045,9 +62153,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Changes current page.", "POST": "currentPage state updated if within valid range.", - "PRE": "page index is provided.", - "PURPOSE": "Changes current page." + "PRE": "page index is provided." }, "relations": [], "schema_warnings": [], @@ -70064,9 +62172,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns normalized repository status token for a dashboard.", "POST": "Returns one of loading|no_repo|synced|changes|behind_remote|ahead_remote|diverged|error.", - "PRE": "Dashboard exists.", - "PURPOSE": "Returns normalized repository status token for a dashboard." + "PRE": "Dashboard exists." }, "relations": [], "schema_warnings": [], @@ -70083,7 +62191,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Determines whether git actions can run for a dashboard." + "BRIEF": "Determines whether git actions can run for a dashboard." }, "relations": [], "schema_warnings": [], @@ -70100,7 +62208,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Marks dashboard statuses as loading so they are refetched." + "BRIEF": "Marks dashboard statuses as loading so they are refetched." }, "relations": [], "schema_warnings": [], @@ -70117,7 +62225,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Converts git status payload into a stable UI status token." + "BRIEF": "Converts git status payload into a stable UI status token." }, "relations": [], "schema_warnings": [], @@ -70134,7 +62242,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Hydrates repository status map for dashboards in repository mode." + "BRIEF": "Hydrates repository status map for dashboards in repository mode." }, "relations": [], "schema_warnings": [], @@ -70151,7 +62259,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Executes git action for selected dashboards with limited parallelism." + "BRIEF": "Executes git action for selected dashboards with limited parallelism." }, "relations": [], "schema_warnings": [], @@ -70228,7 +62336,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Removes selected repositories from storage and binding table." + "BRIEF": "Removes selected repositories from storage and binding table." }, "relations": [], "schema_warnings": [], @@ -70245,7 +62353,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Opens Git manager for exactly one selected dashboard." + "BRIEF": "Opens Git manager for exactly one selected dashboard." }, "relations": [], "schema_warnings": [], @@ -70262,9 +62370,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolves dashboard slug from payload fields.", "POST": "Returns slug string or null if unavailable.", - "PRE": "Dashboard metadata is provided.", - "PURPOSE": "Resolves dashboard slug from payload fields." + "PRE": "Dashboard metadata is provided." }, "relations": [], "schema_warnings": [], @@ -70281,7 +62389,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Opens Git manager for provided dashboard metadata." + "BRIEF": "Opens Git manager for provided dashboard metadata." }, "relations": [], "schema_warnings": [], @@ -70298,7 +62406,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Opens Git manager from bulk actions to initialize selected repository." + "BRIEF": "Opens Git manager from bulk actions to initialize selected repository." }, "relations": [], "schema_warnings": [], @@ -70315,7 +62423,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Returns sort value for status column based on mode." + "BRIEF": "Returns sort value for status column based on mode." }, "relations": [], "schema_warnings": [], @@ -70332,7 +62440,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Returns localized label for status column." + "BRIEF": "Returns localized label for status column." }, "relations": [], "schema_warnings": [], @@ -70349,7 +62457,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Returns badge style for status column." + "BRIEF": "Returns badge style for status column." }, "relations": [], "schema_warnings": [], @@ -70366,9 +62474,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Displays a list of recent tasks with their status and allows selecting them for viewing logs.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Displays a list of recent tasks with their status and allows selecting them for viewing logs.", "SEMANTICS": [ "task", "history", @@ -70393,53 +62501,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -70473,9 +62534,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns the CSS color class for a given task status.", "POST": "Returns tailwind color class string.", - "PRE": "status string is provided.", - "PURPOSE": "Returns the CSS color class for a given task status." + "PRE": "status string is provided." }, "relations": [], "schema_warnings": [], @@ -70492,9 +62553,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Cleans up the polling interval when the component is destroyed.", "POST": "Polling interval is cleared.", - "PRE": "Component is being destroyed.", - "PURPOSE": "Cleans up the polling interval when the component is destroyed." + "PRE": "Component is being destroyed." }, "relations": [], "schema_warnings": [], @@ -70511,9 +62572,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Displays a list of tasks with their status and execution details.", "COMPLEXITY": 3, "LAYER": "Component", - "PURPOSE": "Displays a list of tasks with their status and execution details.", "SEMANTICS": [ "tasks", "list", @@ -70530,28 +62591,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -70569,31 +62608,6 @@ ], "value": "Component" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -70609,9 +62623,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Forwards the selected task through a callback prop.", "POST": "Parent callback receives task id and task payload.", - "PRE": "taskId is provided.", - "PURPOSE": "Forwards the selected task through a callback prop." + "PRE": "taskId is provided." }, "relations": [], "schema_warnings": [], @@ -70628,10 +62642,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Displays task logs inline (in drawer) or as modal. Merges real-time WebSocket logs with polled historical logs.", "COMPLEXITY": 3, "INVARIANT": "Real-time logs are always appended without duplicates.", "LAYER": "UI", - "PURPOSE": "Displays task logs inline (in drawer) or as modal. Merges real-time WebSocket logs with polled historical logs.", "SEMANTICS": [ "task", "log", @@ -70655,55 +62669,7 @@ "target_ref": "TaskLogPanel" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n{#if shouldShow}\n {#if inline}\n \n
\n {#if loading && logs.length === 0}\n
\n
\n {$t.tasks?.loading}\n
\n {:else if error}\n
\n
\n {error}\n {$t.common?.retry}\n
\n {:else}\n \n {/if}\n
\n {:else}\n \n
\n
\n \n { show = false; onclose(); }}\n role=\"presentation\"\n >
\n\n \n\n
\n
\n
\n

\n {$t.tasks?.logs_title}\n

\n { show = false; onclose(); }}\n aria-label={$t.common?.close}\n >\n \n \n
\n
\n {#if loading && logs.length === 0}\n
\n
\n

{$t.tasks?.loading}

\n
\n {:else if error}\n
\n
\n \n
\n

{error}

\n \n {$t.common?.retry}\n \n
\n {:else}\n \n {/if}\n
\n
\n
\n
\n \n {/if}\n{/if}\n\n" @@ -70717,9 +62683,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Establishes WebSocket connection with exponential backoff and filter parameters.", "POST": "WebSocket instance created and listeners attached.", - "PRE": "selectedTask must be set in the store.", - "PURPOSE": "Establishes WebSocket connection with exponential backoff and filter parameters." + "PRE": "selectedTask must be set in the store." }, "relations": [], "schema_warnings": [], @@ -70736,9 +62702,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Handles filter changes and reconnects WebSocket with new parameters.", "POST": "WebSocket reconnected with new filter parameters, logs cleared.", - "PRE": "event.detail contains source and level filter values.", - "PURPOSE": "Handles filter changes and reconnects WebSocket with new parameters." + "PRE": "event.detail contains source and level filter values." }, "relations": [], "schema_warnings": [], @@ -70755,9 +62721,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches available databases from target environment for mapping.", "POST": "targetDatabases array populated with available databases.", - "PRE": "selectedTask must have to_env parameter set.", - "PURPOSE": "Fetches available databases from target environment for mapping." + "PRE": "selectedTask must have to_env parameter set." }, "relations": [], "schema_warnings": [], @@ -70774,9 +62740,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolves missing database mapping and continues migration.", "POST": "Mapping created in backend, task resumed with resolution params.", - "PRE": "event.detail contains sourceDbUuid, targetDbUuid, targetDbName.", - "PURPOSE": "Resolves missing database mapping and continues migration." + "PRE": "event.detail contains sourceDbUuid, targetDbUuid, targetDbName." }, "relations": [], "schema_warnings": [], @@ -70793,9 +62759,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Submits passwords and resumes paused migration task.", "POST": "Task resumed with passwords, connection status restored to connected.", - "PRE": "event.detail contains passwords object.", - "PURPOSE": "Submits passwords and resumes paused migration task." + "PRE": "event.detail contains passwords object." }, "relations": [], "schema_warnings": [], @@ -70812,9 +62778,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Starts timeout timer to detect idle connection.", "POST": "waitingForData set to true after 5 seconds if no data received.", - "PRE": "connectionStatus is 'connected'.", - "PURPOSE": "Starts timeout timer to detect idle connection." + "PRE": "connectionStatus is 'connected'." }, "relations": [], "schema_warnings": [], @@ -70831,9 +62797,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resets data timeout timer when new data arrives.", "POST": "waitingForData reset to false, new timeout started.", - "PRE": "dataTimeout must be set.", - "PURPOSE": "Resets data timeout timer when new data arrives." + "PRE": "dataTimeout must be set." }, "relations": [], "schema_warnings": [], @@ -70850,9 +62816,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Displays transient notifications (toasts) in the bottom-right corner.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Displays transient notifications (toasts) in the bottom-right corner.", "SEMANTICS": [ "toast", "notification", @@ -70869,55 +62835,7 @@ "target_ref": "toasts" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n
\n {#each $toasts as toast (toast.id)}\n
\n {toast.message}\n
\n {/each}\n
\n\n\n\n" @@ -70931,9 +62849,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for TaskLogViewer component by mounting it and observing the DOM.", "INVARIANT": "Duplicate logs are never appended. Polling only active for in-progress tasks.", "LAYER": "UI (Tests)", - "PURPOSE": "Unit tests for TaskLogViewer component by mounting it and observing the DOM.", "SEMANTICS": [ "tests", "task-log", @@ -70956,28 +62874,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -70995,26 +62891,6 @@ ], "value": "UI (Tests)" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -71030,10 +62906,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validates session and optional permission gate before allowing protected content render.", "DATA_CONTRACT": "Input[AuthState, requiredPermission, fallbackPath] -> Output[RouteDecision{login_redirect|fallback_redirect|grant}]", "POST": "hasRouteAccess=true only when user identity is valid and permission check (if provided) passes.", "PRE": "auth store is initialized and can provide token/user state; navigation is available.", - "PURPOSE": "Validates session and optional permission gate before allowing protected content render.", "SIDE_EFFECT": "Mutates auth loading/user state, performs API I/O to /auth/me, and may redirect." }, "relations": [], @@ -71051,9 +62927,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Triggers a new backup task for the selected environment.", "POST": "A new task is created on the backend.", "PRE": "selectedEnvId must be a valid environment ID.", - "PURPOSE": "Triggers a new backup task for the selected environment.", "RETURNS": "{Promise}", "SIDE_EFFECT": "Dispatches a toast notification." }, @@ -71079,9 +62955,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Updates the backup schedule for the selected environment.", "POST": "Environment config is updated on the backend.", - "PRE": "selectedEnvId must be set.", - "PURPOSE": "Updates the backup schedule for the selected environment." + "PRE": "selectedEnvId must be set." }, "relations": [], "schema_warnings": [], @@ -71098,9 +62974,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Загружает список веток для дашборда.", "POST": "branches обновлен.", - "PRE": "dashboardId is provided.", - "PURPOSE": "Загружает список веток для дашборда." + "PRE": "dashboardId is provided." }, "relations": [], "schema_warnings": [], @@ -71117,9 +62993,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Handles branch selection from dropdown.", "POST": "handleCheckout is called with selected branch.", - "PRE": "event contains branch name.", - "PURPOSE": "Handles branch selection from dropdown." + "PRE": "event contains branch name." }, "relations": [], "schema_warnings": [], @@ -71136,9 +63012,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Переключает текущую ветку.", "PARAM": "{string} branchName - Имя ветки.", - "POST": "currentBranch обновлен, родительский callback вызван.", - "PURPOSE": "Переключает текущую ветку." + "POST": "currentBranch обновлен, родительский callback вызван." }, "relations": [], "schema_warnings": [ @@ -71162,9 +63038,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Создает новую ветку.", "POST": "Новая ветка создана и загружена; showCreate reset.", - "PRE": "newBranchName is not empty.", - "PURPOSE": "Создает новую ветку." + "PRE": "newBranchName is not empty." }, "relations": [], "schema_warnings": [], @@ -71181,9 +63057,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch commit history from the backend.", "POST": "history state is updated.", - "PRE": "dashboardId is valid.", - "PURPOSE": "Fetch commit history from the backend." + "PRE": "dashboardId is valid." }, "relations": [], "schema_warnings": [], @@ -71200,7 +63076,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Generates a commit message using LLM." + "BRIEF": "Generates a commit message using LLM." }, "relations": [], "schema_warnings": [], @@ -71217,8 +63093,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PRE": "dashboardId должен быть валидным.", - "PURPOSE": "Загружает текущий статус репозитория и diff." + "BRIEF": "Загружает текущий статус репозитория и diff.", + "PRE": "dashboardId должен быть валидным." }, "relations": [], "schema_warnings": [], @@ -71235,9 +63111,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Создает коммит с указанным сообщением.", "POST": "Коммит создан и модальное окно закрыто.", - "PRE": "message не должно быть пустым.", - "PURPOSE": "Создает коммит с указанным сообщением." + "PRE": "message не должно быть пустым." }, "relations": [], "schema_warnings": [], @@ -71269,8 +63145,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "POST": "Returns DEV/PREPROD/PROD.", - "PURPOSE": "Normalize environment stage with legacy production fallback." + "BRIEF": "Normalize environment stage with legacy production fallback.", + "POST": "Returns DEV/PREPROD/PROD." }, "relations": [], "schema_warnings": [], @@ -71287,8 +63163,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "POST": "Returns stable URL string.", - "PURPOSE": "Resolve environment URL from consolidated or git-specific payload shape." + "BRIEF": "Resolve environment URL from consolidated or git-specific payload shape.", + "POST": "Returns stable URL string." }, "relations": [], "schema_warnings": [], @@ -71305,8 +63181,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch available environments from API.", "POST": "environments state is populated.", - "PURPOSE": "Fetch available environments from API.", "SIDE_EFFECT": "Updates environments state." }, "relations": [], @@ -71324,9 +63200,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Trigger deployment to selected environment.", "POST": "Deploy request finishes and modal closes on success.", "PRE": "selectedEnv must be set.", - "PURPOSE": "Trigger deployment to selected environment.", "SIDE_EFFECT": "Triggers API call, closes modal, shows toast." }, "relations": [], @@ -71344,9 +63220,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Git initialization panel: select config, create remote repo, init local repo.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Git initialization panel: select config, create remote repo, init local repo.", "UX_STATE": "Loading -> Buttons disabled, spinner visible." }, "relations": [ @@ -71363,30 +63239,7 @@ "target_ref": "[gitService]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n
\n \n

\n {$t.git?.not_linked || 'Этот дашборд еще не привязан к Git-репозиторию.'}\n

\n\n
\n ({ value: c.id, label: `${c.name} (${c.provider})` }))}\n />\n {#if configs.length === 0}\n

{$t.git?.no_servers_configured || 'Нет сконфигурированных Git серверов'}

\n {/if}\n\n \n \n Create repo\n \n\n \n {$t.git?.init_repo || 'Инициализировать Git-репозиторий'}\n \n
\n
\n
\n\n" @@ -71400,9 +63253,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Central Git management UI — thin shell delegating to sub-panels and composable handlers.", "COMPLEXITY": 4, "LAYER": "UI", - "PURPOSE": "Central Git management UI — thin shell delegating to sub-panels and composable handlers.", "RATIONALE": "Decomposed from 1220→~370 lines by extracting sub-panels, utils, and composable handlers per INV_7.", "REJECTED": "Keeping all logic inline was rejected because it exceeded 150-line contract limit.", "UX_STATE": "MergeDialog -> Recovery overlay." @@ -71475,30 +63328,7 @@ "target_ref": "[UseGitManager]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "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\n\n\n\n{#if show}\n
{ if (e.key === 'Escape') closeModal(); }} role=\"button\" tabindex=\"0\" aria-label={$t.common?.close || 'Close'}>\n
\n \n \n
slug: {dashboardId}
\n
\n\n {#if checkingStatus}\n
\n {:else if !initialized}\n \n {:else}\n
\n {#if hasOriginConfigMismatch}\n
Git server mismatch detected
Configured: {configHost}, origin: {originHost}.
\n {/if}\n
\n
\n {currentEnvStage || 'DEV'}\n Текущая ветка: {currentBranch}\n
\n
\n
\n
\n \n \n \n
\n {#if activeTab === 'workspace'}\n \n {:else if activeTab === 'release'}\n \n {:else}\n \n {/if}\n
\n {/if}\n
\n \n
\n{/if}\n\n\n\n" @@ -71512,9 +63342,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Unfinished merge recovery dialog: abort, continue, resolve conflicts.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Unfinished merge recovery dialog: abort, continue, resolve conflicts.", "UX_STATE": "Loading -> Recovery state loading spinner." }, "relations": [ @@ -71531,30 +63361,7 @@ "target_ref": "[gitService]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n{#if show && unfinishedMergeContext}\n \n
\n
\n {$t.git?.unfinished_merge?.title || 'Repository has an unfinished merge'}\n
\n

\n {unfinishedMergeContext.message || ($t.git?.unfinished_merge?.default_message || 'An unfinished merge was detected in this repository.')}\n

\n\n
\n
\n
{$t.git?.unfinished_merge?.repository_path || 'Repository path'}
\n
{unfinishedMergeContext.repositoryPath || '—'}
\n
\n
\n
{$t.git?.unfinished_merge?.branch || 'Current branch'}
\n
{unfinishedMergeContext.currentBranch || '—'}
\n
\n {#if unfinishedMergeContext.mergeHead}\n
\n
MERGE_HEAD
\n
{unfinishedMergeContext.mergeHead}
\n
\n {/if}\n
\n\n {#if unfinishedMergeContext.nextSteps?.length}\n
\n
\n {$t.git?.unfinished_merge?.next_steps || 'Recommended steps'}\n
\n
    \n {#each unfinishedMergeContext.nextSteps as step}\n
  1. {step}
  2. \n {/each}\n
\n
\n {/if}\n\n {#if unfinishedMergeContext.commands?.length}\n
\n
\n {$t.git?.unfinished_merge?.manual_commands || 'Manual recovery commands'}\n
\n
{unfinishedMergeContext.commands.join('\\n')}
\n
\n {/if}\n\n
\n \n {$t.common?.refresh || 'Refresh'}\n \n \n {$t.git?.unfinished_merge?.copy_commands || 'Copy commands'}\n \n \n {$t.git?.unfinished_merge?.open_resolver || 'Open conflict resolver'}\n \n \n {$t.git?.unfinished_merge?.abort_merge || 'Abort merge'}\n \n \n {$t.git?.unfinished_merge?.continue_merge || 'Continue merge'}\n \n \n
\n
\n \n{/if}\n\n" @@ -71568,35 +63375,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Git server operations panel: pull, push, and deploy actions.", "COMPLEXITY": 2, - "LAYER": "UI", - "PURPOSE": "Git server operations panel: pull, push, and deploy actions." + "LAYER": "UI" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n
\n \n ⬇ Pull\n \n \n ⬆ Push{#if workspaceStatus?.ahead_count > 0} ({workspaceStatus.ahead_count}){/if}\n \n \n 🚀 Deploy\n \n
\n\n" @@ -71610,9 +63394,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Git release panel: promote branches via MR or direct mode.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Git release panel: promote branches via MR or direct mode.", "UX_STATE": "Advanced -> Expandable branch/reason settings." }, "relations": [ @@ -71629,30 +63413,7 @@ "target_ref": "[gitService]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n
\n
\n
Текущий статус пайплайна
\n
\n DEV (dev)\n \n PREPROD (preprod)\n \n PROD (main)\n
\n {#if preferredDeployTargetStage}\n

\n Следующий шаг по GitFlow: {promoteFromBranch} ➔ {promoteToBranch}\n

\n {/if}\n
\n\n \n {promoteMode === 'direct'\n ? `Прямой перенос ${promoteFromBranch} ➔ ${promoteToBranch} (unsafe)`\n : `Создать Merge Request (${promoteFromBranch} ➔ ${promoteToBranch})`}\n \n\n (showAdvancedPromote = !showAdvancedPromote)}\n >\n {showAdvancedPromote ? '▴ Скрыть advanced settings' : '▾ Advanced settings'}\n \n\n {#if showAdvancedPromote}\n
\n
\n \n \n
\n \n {#if promoteMode === 'direct'}\n
\n
Внимание: прямой перенос без MR
\n
Это обходит процесс аппрува и записывается в audit лог.
\n
\n \n {/if}\n
\n {/if}\n
\n\n" @@ -71666,9 +63427,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Git workspace panel: sync, commit message input, diff viewer, commit action.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Git workspace panel: sync, commit message input, diff viewer, commit action.", "UX_STATE": "Error -> Toast on failure." }, "relations": [ @@ -71685,30 +63446,7 @@ "target_ref": "[gitService]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n\n
\n
\n \n 🔄 Синхронизировать из Superset\n \n\n
\n
\n

Сообщение коммита

\n \n ✨ Сгенерировать LLM\n \n
\n \n
\n\n
\n Файлов с изменениями: {changedFilesCount}\n
\n\n \n Зафиксировать (Commit)\n \n \n
\n\n
\n
\n Diff (изменения)\n
\n
\n {#if workspaceLoading}\n
\n {#each Array(6) as _}\n
\n {/each}\n
\n {:else}\n
\n Нет изменений для коммита\n
\n {/if}\n
\n
\n
\n\n" @@ -71722,7 +63460,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Protect unresolved-merge dialog contract in GitManager pull flow.", + "BRIEF": "Protect unresolved-merge dialog contract in GitManager pull flow.", "SEMANTICS": [ "git-manager", "unfinished-merge", @@ -71752,8 +63490,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Composable for GitManager handler functions — extracted to reduce component size per INV_7.", "COMPLEXITY": 3, - "PURPOSE": "Composable for GitManager handler functions — extracted to reduce component size per INV_7.", "RATIONALE": "Extracted handler logic from GitManager (1220→~350 lines) to meet INV_7 <150 line contract limit." }, "relations": [ @@ -71784,9 +63522,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "UI component for previewing generated dataset documentation before saving.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "UI component for previewing generated dataset documentation before saving.", "TYPE": "{Object}", "UX_STATE": "Loading -> Default" }, @@ -71799,28 +63537,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -71854,9 +63570,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "UI form for managing LLM provider configurations.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "UI form for managing LLM provider configurations.", "UX_STATE": "Loading -> Default" }, "relations": [ @@ -71867,30 +63583,7 @@ "target_ref": "requestApi" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n
\n
\n

{$t.llm.providers_title}

\n {\n resetForm();\n showForm = true;\n }}\n >\n {$t.llm.add_provider}\n \n
\n\n {#if showForm}\n \n
\n

\n {editingProvider ? $t.llm.edit_provider : $t.llm.new_provider}\n

\n\n
\n
\n {$t.llm.name}\n \n
\n\n
\n {$t.llm.type}\n updateBaseUrlForType(formData.provider_type)}\n class=\"mt-1 block w-full border rounded-md p-2\"\n >\n \n \n \n \n \n
\n\n
\n {$t.llm.base_url}\n
\n \n \n {isLoadingModels ? \"...\" : \"↻\"}\n \n
\n
\n\n
\n {$t.llm.api_key}\n {#if editingProvider && formData.api_key && isMaskedKey(formData.api_key)}\n
\n \n {formData.api_key}\n \n { formData.api_key = \"\"; }}\n >\n {$t.llm?.change_key || \"Change\"}\n \n
\n

\n {$t.llm?.key_masked_hint || \"Masked for security. Click \\\"Change\\\" to enter a new key.\"}\n

\n {:else}\n \n {/if}\n
\n\n
\n {$t.llm.default_model}\n\n {#if isLoadingModels}\n
\n \n {$t.llm.loading_models}\n
\n {:else if modelsLoadError}\n
{modelsLoadError}
\n {/if}\n\n {#if availableModels.length > 0 && !isLoadingModels}\n \n {#each availableModels as model}\n \n {/each}\n \n
\n {($t.llm.models_loaded || \"{count} models loaded\").replace(\"{count}\", availableModels.length)}\n
\n {:else}\n \n {/if}\n
\n\n
\n \n {$t.llm.active}\n
\n\n
\n \n \n {$t.llm.multimodal_checkbox}\n \n
\n
\n\n {#if testStatus.message}\n \n {testStatus.message}\n
\n {/if}\n\n
\n {\n showForm = false;\n }}\n >\n {$t.llm.cancel}\n \n \n {isTesting ? $t.llm.testing : $t.llm.test}\n \n \n {$t.llm.save}\n \n
\n
\n \n {/if}\n\n
\n {#each providers as provider}\n \n
\n
\n {provider.name}\n \n {provider.is_active ? $t.llm.active : \"Inactive\"}\n \n \n {provider.is_multimodal\n ? ($t.llm?.multimodal )\n : ($t.llm?.text_only )}\n \n
\n
\n {provider.provider_type} • {provider.default_model}\n
\n
\n
\n handleEdit(provider)}\n >\n {$t.common.edit}\n \n handleDelete(provider)}\n disabled={deletingProviderIds.has(provider.id)}\n >\n {#if deletingProviderIds.has(provider.id)}\n ...\n {:else}\n {$t.common.delete}\n {/if}\n \n toggleActive(provider)}\n disabled={togglingProviderIds.has(provider.id) || deletingProviderIds.has(provider.id)}\n >\n {#if togglingProviderIds.has(provider.id)}\n ...\n {:else}\n {provider.is_active ? \"Deactivate\" : \"Activate\"}\n {/if}\n \n
\n
\n {:else}\n \n {$t.llm.no_providers}\n \n {/each}\n \n\n\n\n" @@ -71904,9 +63597,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Displays the results of an LLM-based dashboard validation task.", "COMPLEXITY": 3, - "LAYER": "UI", - "PURPOSE": "Displays the results of an LLM-based dashboard validation task." + "LAYER": "UI" }, "relations": [ { @@ -71922,30 +63615,7 @@ "target_ref": "[api_module]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n{#if result}\n
\n
\n

{$t.llm?.validation_report_title}

\n \n {result.status}\n \n
\n\n
\n

{$t.reports?.summary}

\n

{result.summary}

\n
\n\n {#if result.issues && result.issues.length > 0}\n
\n

{$t.tasks?.issues}

\n
\n \n \n \n \n \n \n \n \n \n {#each result.issues as issue}\n \n \n \n \n \n {/each}\n \n
{$t.reports?.severity}{$t.reports?.message}{$t.tasks?.location}
\n \n {issue.severity}\n \n {issue.message}{issue.location || $t.common?.not_available}
\n
\n
\n {/if}\n\n {#if result.screenshot_path}\n
\n

{$t.dashboard?.screenshot_strategy}

\n {$t.dashboard?.dashboard_validation}\n
\n {/if}\n
\n{:else}\n
\n

{$t.llm?.no_validation_result}

\n
\n{/if}\n\n\n" @@ -71959,9 +63629,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate edit and delete handler wiring plus normalized edit form state mapping.", "POST": "Contract checks ensure edit click cannot degrade into no-op flow.", - "PRE": "ProviderConfig component source exists in expected path.", - "PURPOSE": "Validate edit and delete handler wiring plus normalized edit form state mapping." + "PRE": "ProviderConfig component source exists in expected path." }, "relations": [ { @@ -71985,10 +63655,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Checks if a file object represents a directory.", "PARAM": "{Object} file - The file object to check.", "POST": "Returns boolean.", "PRE": "file object has mime_type property.", - "PURPOSE": "Checks if a file object represents a directory.", "RETURN": "{boolean} True if it's a directory, false otherwise." }, "relations": [], @@ -72019,10 +63689,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Formats file size in bytes into a human-readable string.", "PARAM": "{number} bytes - The size in bytes.", "POST": "Returns formatted string.", "PRE": "bytes is a number.", - "PURPOSE": "Formats file size in bytes into a human-readable string.", "RETURN": "{string} Formatted size (e.g., \"1.2 MB\")." }, "relations": [], @@ -72053,10 +63723,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Formats an ISO date string into a localized readable format.", "PARAM": "{string} dateStr - The date string to format.", "POST": "Returns localized string.", "PRE": "dateStr is a valid date string.", - "PURPOSE": "Formats an ISO date string into a localized readable format.", "RETURN": "{string} Localized date and time." }, "relations": [], @@ -72087,9 +63757,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Downloads selected file through authenticated API request.", "POST": "Browser download starts or user sees toast on failure.", - "PRE": "file is a non-directory storage entry with category/path.", - "PURPOSE": "Downloads selected file through authenticated API request." + "PRE": "file is a non-directory storage entry with category/path." }, "relations": [], "schema_warnings": [], @@ -72106,9 +63776,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Handles the file upload process.", "POST": "The file is uploaded to the server and a success toast is shown.", - "PRE": "A file must be selected in the file input.", - "PURPOSE": "Handles the file upload process." + "PRE": "A file must be selected in the file input." }, "relations": [], "schema_warnings": [], @@ -72125,8 +63795,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PARAM": "{DragEvent} event - The drop event.", - "PURPOSE": "Handles the file drop event for drag-and-drop." + "BRIEF": "Handles the file drop event for drag-and-drop.", + "PARAM": "{DragEvent} event - The drop event." }, "relations": [], "schema_warnings": [ @@ -72150,9 +63820,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Renders a single log entry with stacked layout optimized for narrow drawer panels.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Renders a single log entry with stacked layout optimized for narrow drawer panels.", "SEMANTICS": [ "log", "entry", @@ -72171,53 +63841,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -72251,7 +63874,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Format ISO timestamp to HH:MM:SS" + "BRIEF": "Format ISO timestamp to HH:MM:SS" }, "relations": [], "schema_warnings": [], @@ -72268,9 +63891,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Compact filter toolbar for logs — level, source, and text search in a single dense row.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Compact filter toolbar for logs — level, source, and text search in a single dense row.", "SEMANTICS": [ "log", "filter", @@ -72286,55 +63909,7 @@ "target_ref": "App" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n
\n
\n \n \n {#each levelOptions as option}\n \n {/each}\n \n\n \n \n \n {#each availableSources as source}\n \n {/each}\n \n\n \n
\n \n \n \n \n \n
\n
\n\n {#if hasActiveFilters}\n \n \n \n \n \n {/if}\n
\n\n" @@ -72348,10 +63923,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Combines log filtering and display into a single cohesive light-themed panel.", "COMPLEXITY": 3, "INVARIANT": "Must always display logs in chronological order and respect auto-scroll preference.", "LAYER": "UI", - "PURPOSE": "Combines log filtering and display into a single cohesive light-themed panel.", "SEMANTICS": [ "task", "log", @@ -72375,55 +63950,7 @@ "target_ref": "LogEntryRow" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n
\n \n \n\n \n \n {#if filteredLogs.length === 0}\n \n \n \n \n \n \n \n \n No logs available\n
\n {:else}\n {#each filteredLogs as log}\n \n {/each}\n {/if}\n \n\n \n \n \n {filteredLogs.length}{filteredLogs.length !== logs.length\n ? ` / ${logs.length}`\n : \"\"} entries\n \n \n {#if autoScroll}\n \n {/if}\n Auto-scroll {autoScroll ? \"on\" : \"off\"}\n \n \n\n\n" @@ -72437,9 +63964,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Displays formatted task result summary with status badges and result details.", "COMPLEXITY": 2, "LAYER": "UI", - "PURPOSE": "Displays formatted task result summary with status badges and result details.", "UX_STATE": "Loaded -> Task result displayed with status color coding." }, "relations": [ @@ -72450,30 +63977,7 @@ "target_ref": "[i18n]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n{#if !task}\n
\n {$t.tasks?.result_select_task}\n
\n{:else if !result}\n
\n

{$t.tasks?.result_not_structured}

\n
\n{:else if pluginId === 'llm_dashboard_validation'}\n
\n
\n

{$t.tasks?.result_llm_validation}

\n {result.status || 'UNKNOWN'}\n
\n

{result.summary || $t.tasks?.result_no_summary}

\n {#if result.issues?.length}\n
\n

{$t.tasks?.issues} ({result.issues.length})

\n
    \n {#each result.issues as issue}\n
  • \n
    \n {issue.severity}\n {issue.message}\n
    \n {#if issue.location}\n

    {$t.tasks?.location}: {issue.location}

    \n {/if}\n
  • \n {/each}\n
\n
\n {/if}\n
\n{:else if pluginId === 'superset-backup'}\n
\n
\n

{$t.tasks?.backup_result}

\n {result.status || 'UNKNOWN'}\n
\n
\n

{$t.dashboard?.environment}: {result.environment || $t.common?.not_available}

\n

{$t.tasks?.total}: {result.total_dashboards ?? 0}

\n

{$t.tasks?.successful}: {result.backed_up_dashboards ?? 0}

\n

{$t.tasks?.failed}: {result.failed_dashboards ?? 0}

\n
\n {#if result.failures?.length}\n
\n

{$t.tasks?.errors}

\n
    \n {#each result.failures as failure}\n
  • \n {failure.title || failure.id}: {failure.error}\n
  • \n {/each}\n
\n
\n {/if}\n
\n{:else if pluginId === 'superset-migration'}\n
\n
\n

{$t.tasks?.migration_result}

\n {result.status || 'UNKNOWN'}\n
\n
\n

{$t.migration?.source_env}: {result.source_environment || $t.common?.not_available}

\n

{$t.migration?.target_env}: {result.target_environment || $t.common?.not_available}

\n

{$t.tasks?.selected}: {result.selected_dashboards ?? 0}

\n

{$t.tasks?.successful}: {result.migrated_dashboards?.length ?? 0}

\n

{$t.tasks?.with_errors}: {result.failed_dashboards?.length ?? 0}

\n

{$t.tasks?.mappings}: {result.mapping_count ?? 0}

\n
\n {#if result.failed_dashboards?.length}\n
\n

{$t.tasks?.migration_errors}

\n
    \n {#each result.failed_dashboards as failed}\n
  • \n {failed.title || failed.id}: {failed.error}\n
  • \n {/each}\n
\n
\n {/if}\n
\n{:else}\n
\n
{JSON.stringify(result, null, 2)}
\n
\n{/if}\n\n\n" @@ -72487,9 +63991,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Triggers the debug task.", "POST": "Task is started and polling begins.", "PRE": "Required fields are selected.", - "PURPOSE": "Triggers the debug task.", "RETURNS": "{Promise}" }, "relations": [], @@ -72514,10 +64018,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Polls for task completion.", "PARAM": "{string} taskId - ID of the task.", "POST": "Polls until success/failure.", "PRE": "Task ID is valid.", - "PURPOSE": "Polls for task completion.", "RETURNS": "{void}" }, "relations": [], @@ -72548,9 +64052,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "UI component for mapping dataset column verbose names using Superset SQL Lab or Excel files.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "UI component for mapping dataset column verbose names using Superset SQL Lab or Excel files.", "SEMANTICS": [ "mapper", "tool", @@ -72567,55 +64071,7 @@ "target_ref": "frontend/src/services/toolsService.js" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n
\n \n
\n
\n
\n ({ value: e.id, label: e.name }))\n ]}\n />\n
\n
\n \n
\n
\n\n
\n {$t.mapper.source}\n
\n \n \n
\n
\n\n {#if source === 'sqllab'}\n
\n
\n \n
\n
\n \n
\n
\n {:else}\n
\n \n
\n {/if}\n\n
\n \n {#if isGeneratingDocs}\n {$t.mapper?.generating}\n {:else}\n {$t.datasets?.generate_docs}\n {/if}\n \n \n {isRunning ? $t.mapper.starting : $t.mapper.run}\n \n
\n
\n
\n\n generatedDoc = null}\n onSave={handleApplyDoc}\n />\n
\n\n\n" @@ -72629,9 +64085,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches environments.", "POST": "envs array is populated.", - "PRE": "None.", - "PURPOSE": "Fetches environments." + "PRE": "None." }, "relations": [], "schema_warnings": [], @@ -72648,9 +64104,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Triggers the MapperPlugin task via new sqllab/excel sources.", "POST": "Mapper task is started and selectedTask is updated.", - "PRE": "selectedEnv and datasetId are set; source-specific fields are valid.", - "PURPOSE": "Triggers the MapperPlugin task via new sqllab/excel sources." + "PRE": "selectedEnv and datasetId are set; source-specific fields are valid." }, "relations": [], "schema_warnings": [], @@ -72667,9 +64123,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Triggers the LLM Documentation task.", "POST": "Documentation task is started.", - "PRE": "selectedEnv and datasetId are set.", - "PURPOSE": "Triggers the LLM Documentation task." + "PRE": "selectedEnv and datasetId are set." }, "relations": [], "schema_warnings": [], @@ -72686,36 +64142,13 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Simple counter demo component", "COMPLEXITY": 2, "LAYER": "UI", - "PURPOSE": "Simple counter demo component", "UX_STATE": "Incremented -> Count increases immediately after button activation." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n" @@ -72729,8 +64162,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Handles all communication with the backend API via fetch wrappers with auth, error normalization, and toast feedback.", "COMPLEXITY": 3, - "PURPOSE": "Handles all communication with the backend API via fetch wrappers with auth, error normalization, and toast feedback.", "TYPE": "{any}" }, "relations": [ @@ -72781,8 +64214,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unit tests for reports API client functions: query string building, error normalization, and fetch wrappers." + "BRIEF": "Unit tests for reports API client functions: query string building, error normalization, and fetch wrappers.", + "COMPLEXITY": 3 }, "relations": [ { @@ -72806,9 +64239,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for reports API client functions: query string building, error normalization, and fetch wrappers.", "INVARIANT": "Pure functions produce deterministic output. Async wrappers propagate structured errors.", "LAYER": "Infra (Tests)", - "PURPOSE": "Unit tests for reports API client functions: query string building, error normalization, and fetch wrappers.", "SEMANTICS": [ "tests", "reports", @@ -72826,28 +64259,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -72880,9 +64291,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate query string construction from filter options.", "POST": "Correct URLSearchParams string produced.", - "PRE": "Options object with various filter fields.", - "PURPOSE": "Validate query string construction from filter options." + "PRE": "Options object with various filter fields." }, "relations": [], "schema_warnings": [], @@ -72899,9 +64310,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate error normalization for UI-state mapping.", "POST": "Always returns {message, code, retryable} object.", - "PRE": "Various error types (Error, string, object).", - "PURPOSE": "Validate error normalization for UI-state mapping." + "PRE": "Various error types (Error, string, object)." }, "relations": [], "schema_warnings": [], @@ -72918,9 +64329,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate getReports and getReportDetail with mocked api.fetchApi.", "POST": "Functions call correct endpoints and propagate results/errors.", - "PRE": "api.fetchApi is mocked via vi.mock.", - "PURPOSE": "Validate getReports and getReportDetail with mocked api.fetchApi." + "PRE": "api.fetchApi is mocked via vi.mock." }, "relations": [], "schema_warnings": [], @@ -72937,8 +64348,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "API client wrapper for assistant chat, session-scoped prompts, confirmation actions, conversation management, and history retrieval." + "BRIEF": "API client wrapper for assistant chat, session-scoped prompts, confirmation actions, conversation management, and history retrieval.", + "COMPLEXITY": 3 }, "relations": [ { @@ -72962,9 +64373,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "API client wrapper for assistant chat, session-scoped prompts, confirmation actions, and history retrieval.", "INVARIANT": "All assistant requests must use requestApi wrapper (no native fetch).", "LAYER": "Infra-API", - "PURPOSE": "API client wrapper for assistant chat, session-scoped prompts, confirmation actions, and history retrieval.", "SEMANTICS": [ "assistant", "api", @@ -72982,28 +64393,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -73036,9 +64425,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Send a user message to assistant orchestrator endpoint.", "POST": "Returns assistant response object with deterministic state.", - "PRE": "payload.message is a non-empty string.", - "PURPOSE": "Send a user message to assistant orchestrator endpoint." + "PRE": "payload.message is a non-empty string." }, "relations": [], "schema_warnings": [], @@ -73055,9 +64444,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Compose visible assistant seed text from context label and prompt body.", "POST": "Returns trimmed seed message string for prefilled input.", - "PRE": "prompt contains the user-visible request.", - "PURPOSE": "Compose visible assistant seed text from context label and prompt body." + "PRE": "prompt contains the user-visible request." }, "relations": [], "schema_warnings": [], @@ -73074,9 +64463,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Confirm a pending risky assistant operation.", "POST": "Returns execution response (started/success/failed).", - "PRE": "confirmationId references an existing pending token.", - "PURPOSE": "Confirm a pending risky assistant operation." + "PRE": "confirmationId references an existing pending token." }, "relations": [], "schema_warnings": [], @@ -73093,9 +64482,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Cancel a pending risky assistant operation.", "POST": "Operation is cancelled and cannot be executed by this token.", - "PRE": "confirmationId references an existing pending token.", - "PURPOSE": "Cancel a pending risky assistant operation." + "PRE": "confirmationId references an existing pending token." }, "relations": [], "schema_warnings": [], @@ -73112,9 +64501,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieve paginated assistant conversation history.", "POST": "Returns a paginated payload with history items.", - "PRE": "page/pageSize are positive integers.", - "PURPOSE": "Retrieve paginated assistant conversation history." + "PRE": "page/pageSize are positive integers." }, "relations": [], "schema_warnings": [], @@ -73131,9 +64520,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Retrieve paginated conversation list for assistant sidebar/history switcher.", "POST": "Returns paginated conversation summaries.", - "PRE": "page/pageSize are positive integers.", - "PURPOSE": "Retrieve paginated conversation list for assistant sidebar/history switcher." + "PRE": "page/pageSize are positive integers." }, "relations": [], "schema_warnings": [], @@ -73150,9 +64539,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Soft-delete or hard-delete a conversation.", "POST": "Returns success status.", - "PRE": "conversationId string is provided.", - "PURPOSE": "Soft-delete or hard-delete a conversation." + "PRE": "conversationId string is provided." }, "relations": [], "schema_warnings": [], @@ -73169,8 +64558,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Shared frontend helpers for dataset review session-scoped API requests, optimistic-lock propagation, and session DTO normalization." + "BRIEF": "Shared frontend helpers for dataset review session-scoped API requests, optimistic-lock propagation, and session DTO normalization.", + "COMPLEXITY": 3 }, "relations": [ { @@ -73194,8 +64583,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Provide shared frontend helpers for dataset review session-scoped API requests, optimistic-lock propagation, and refreshed session DTO normalization.", "LAYER": "Infra-API", - "PURPOSE": "Provide shared frontend helpers for dataset review session-scoped API requests, optimistic-lock propagation, and refreshed session DTO normalization.", "SEMANTICS": [ "dataset-review", "api", @@ -73213,28 +64602,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -73267,9 +64634,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Attach optimistic-lock session version header when the current version is known.", "POST": "Returns requestApi-compatible options object.", - "PRE": "sessionVersion may be null when no loaded session version exists yet.", - "PURPOSE": "Attach optimistic-lock session version header when the current version is known." + "PRE": "sessionVersion may be null when no loaded session version exists yet." }, "relations": [], "schema_warnings": [], @@ -73286,9 +64653,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Proxy dataset review mutations through requestApi with optional optimistic-lock headers.", "POST": "Executes requestApi with X-Session-Version only when a session version is known.", - "PRE": "endpoint and method are valid requestApi inputs.", - "PURPOSE": "Proxy dataset review mutations through requestApi with optional optimistic-lock headers." + "PRE": "endpoint and method are valid requestApi inputs." }, "relations": [], "schema_warnings": [], @@ -73305,9 +64672,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Detect optimistic-lock conflicts from dataset review mutations.", "POST": "Returns true when the mutation failed with 409 conflict semantics.", - "PRE": "error may be null or a normalized API error.", - "PURPOSE": "Detect optimistic-lock conflicts from dataset review mutations." + "PRE": "error may be null or a normalized API error." }, "relations": [], "schema_warnings": [], @@ -73324,9 +64691,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return explicit 409-style guidance for stale dataset review mutations.", "POST": "Returns a user-facing conflict message string.", - "PRE": "error may be null or a normalized API error.", - "PURPOSE": "Return explicit 409-style guidance for stale dataset review mutations." + "PRE": "error may be null or a normalized API error." }, "relations": [], "schema_warnings": [], @@ -73343,9 +64710,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve the latest session version from refreshed DTO fragments.", "POST": "Returns the newest known session version or null.", - "PRE": "payload may be a session summary, a detail payload, or a mutation fragment.", - "PURPOSE": "Resolve the latest session version from refreshed DTO fragments." + "PRE": "payload may be a session summary, a detail payload, or a mutation fragment." }, "relations": [], "schema_warnings": [], @@ -73362,9 +64729,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Normalize refreshed session-detail DTOs into the legacy route-friendly workspace shape.", "POST": "Returns a shape with flattened summary fields plus refreshed collections and version metadata.", - "PRE": "detail may already be legacy-flat or refreshed with nested session/session_version fields.", - "PURPOSE": "Normalize refreshed session-detail DTOs into the legacy route-friendly workspace shape." + "PRE": "detail may already be legacy-flat or refreshed with nested session/session_version fields." }, "relations": [], "schema_warnings": [], @@ -73381,9 +64748,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "API client for Maintenance Banner endpoints. Uses requestApi for all calls.", "COMPLEXITY": 2, - "LAYER": "Frontend", - "PURPOSE": "API client for Maintenance Banner endpoints. Uses requestApi for all calls." + "LAYER": "Frontend" }, "relations": [ { @@ -73531,10 +64898,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Wrapper-based reports API client for list/detail retrieval through the shared API wrapper.", "COMPLEXITY": 4, "POST": "Report list and detail helpers return backend payloads or normalized UI-safe errors.", "PRE": "Shared API wrapper is configured for the current frontend auth/session context.", - "PURPOSE": "Wrapper-based reports API client for list/detail retrieval through the shared API wrapper.", "SIDE_EFFECT": "Performs authenticated report HTTP requests through the shared API wrapper." }, "relations": [ @@ -73559,11 +64926,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Wrapper-based reports API client for list/detail retrieval without direct native fetch usage.", "INVARIANT": "Uses existing api wrapper methods and returns structured errors for UI-state mapping.", "LAYER": "Infra", "POST": "Report list and detail helpers return backend payloads or normalized UI-safe errors.", "PRE": "Shared API wrapper is configured for the current frontend auth/session context.", - "PURPOSE": "Wrapper-based reports API client for list/detail retrieval without direct native fetch usage.", "SEMANTICS": [ "frontend", "api_client", @@ -73581,28 +64948,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -73635,9 +64980,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build query string for reports list endpoint from filter options.", "POST": "Returns URL query string without leading '?'.", - "PRE": "options is an object with optional report query fields.", - "PURPOSE": "Build query string for reports list endpoint from filter options." + "PRE": "options is an object with optional report query fields." }, "relations": [], "schema_warnings": [], @@ -73654,9 +64999,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Convert unknown API exceptions into deterministic UI-consumable error objects.", "POST": "Returns structured error object.", - "PRE": "error may be Error/string/object.", - "PURPOSE": "Convert unknown API exceptions into deterministic UI-consumable error objects." + "PRE": "error may be Error/string/object." }, "relations": [], "schema_warnings": [], @@ -73673,9 +65018,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch unified report list using existing request wrapper.", "POST": "Returns parsed payload or structured error for UI-state mapping.", "PRE": "valid auth context for protected endpoint.", - "PURPOSE": "Fetch unified report list using existing request wrapper.", "TEST_CONTRACT": "GetReportsApi ->" }, "relations": [], @@ -73693,9 +65038,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch one report detail by report_id.", "POST": "Returns parsed detail payload or structured error object.", - "PRE": "reportId is non-empty string; valid auth context.", - "PURPOSE": "Fetch one report detail by report_id." + "PRE": "reportId is non-empty string; valid auth context." }, "relations": [], "schema_warnings": [], @@ -73712,8 +65057,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Barrel module re-exporting all translate API functions from domain-split modules.", "COMPLEXITY": 2, - "PURPOSE": "Barrel module re-exporting all translate API functions from domain-split modules.", "RATIONALE": "Decomposed from 664->~30 lines by splitting into domain modules per INV_7.", "REJECTED": "Keeping all APIs in one file was rejected because it exceeded the 400-line module limit." }, @@ -73763,9 +65108,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Unit tests for checkTargetTableSchema API client fetch wrapper.", "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" }, @@ -73795,48 +65140,6 @@ ], "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", @@ -73852,7 +65155,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Happy path — API returns full validation result." + "BRIEF": "Happy path — API returns full validation result." }, "relations": [], "schema_warnings": [], @@ -73869,7 +65172,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "API error returns fallback response with error message." + "BRIEF": "API error returns fallback response with error message." }, "relations": [], "schema_warnings": [], @@ -73886,7 +65189,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "String error is captured as message." + "BRIEF": "String error is captured as message." }, "relations": [], "schema_warnings": [], @@ -73903,8 +65206,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "API client for translation corrections — inline edits, dictionary submission, bulk find-and-replace, CSV download." + "BRIEF": "API client for translation corrections — inline edits, dictionary submission, bulk find-and-replace, CSV download.", + "COMPLEXITY": 2 }, "relations": [ { @@ -73928,8 +65231,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "API client for translation datasources — column fetching, preview, row-level review actions." + "BRIEF": "API client for translation datasources — column fetching, preview, row-level review actions.", + "COMPLEXITY": 2 }, "relations": [ { @@ -73953,8 +65256,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "API client for translation dictionary CRUD — list, create, update, delete, entries, import." + "BRIEF": "API client for translation dictionary CRUD — list, create, update, delete, entries, import.", + "COMPLEXITY": 2 }, "relations": [ { @@ -73978,8 +65281,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "API client for translation job CRUD — list, create, update, delete, duplicate." + "BRIEF": "API client for translation job CRUD — list, create, update, delete, duplicate.", + "COMPLEXITY": 2 }, "relations": [ { @@ -74003,8 +65306,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "API client for translation run control — trigger, status, history, records, retry, cancel, metrics." + "BRIEF": "API client for translation run control — trigger, status, history, records, retry, cancel, metrics.", + "COMPLEXITY": 2 }, "relations": [ { @@ -74028,8 +65331,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "API client for translation job scheduling — CRUD, enable/disable, next executions." + "BRIEF": "API client for translation job scheduling — CRUD, enable/disable, next executions.", + "COMPLEXITY": 2 }, "relations": [ { @@ -74053,8 +65356,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": 1, - "PURPOSE": "API client for target table schema validation." + "BRIEF": "API client for target table schema validation.", + "COMPLEXITY": 1 }, "relations": [ { @@ -74093,8 +65396,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "API client functions for the Validation section — tasks and runs CRUD.", "COMPLEXITY": 2, - "PURPOSE": "API client functions for the Validation section — tasks and runs CRUD.", "RATIONALE": "Centralized API module for all validation endpoints — single import point for pages, consistent error handling through shared fetchApi/postApi/deleteApi wrappers, and easy mocking in tests.", "REJECTED": "Inline fetch calls in each page rejected — would duplicate base URL construction and auth header logic; centralized module enables consistent error handling and simplifies test mocking." }, @@ -74132,9 +65435,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build URLSearchParams from a params object, skipping null/undefined/empty values.", "COMPLEXITY": 1, - "PARAM": "{Record} params", - "PURPOSE": "Build URLSearchParams from a params object, skipping null/undefined/empty values." + "PARAM": "{Record} params" }, "relations": [], "schema_warnings": [ @@ -74548,8 +65851,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Verifies frontend RBAC permission parsing and access checks." + "BRIEF": "Verifies frontend RBAC permission parsing and access checks.", + "COMPLEXITY": 3 }, "relations": [ { @@ -74573,8 +65876,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verifies frontend RBAC permission parsing and access checks.", "LAYER": "UI (Tests)", - "PURPOSE": "Verifies frontend RBAC permission parsing and access checks.", "SEMANTICS": [ "tests", "auth", @@ -74591,28 +65894,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -74645,8 +65926,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Shared frontend RBAC utilities for route guards, permission checks, and menu visibility based on user roles." + "BRIEF": "Shared frontend RBAC utilities for route guards, permission checks, and menu visibility based on user roles.", + "COMPLEXITY": 3 }, "relations": [ { @@ -74670,9 +65951,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Shared frontend RBAC utilities for route guards and menu visibility.", "INVARIANT": "Admin role always bypasses explicit permission checks.", "LAYER": "Domain", - "PURPOSE": "Shared frontend RBAC utilities for route guards and menu visibility.", "SEMANTICS": [ "auth", "permissions", @@ -74688,30 +65969,7 @@ "target_ref": "[authStore]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region Permissions:Module [TYPE Function]\n// @SEMANTICS: auth, permissions, rbac, roles\n// @PURPOSE: Shared frontend RBAC utilities for route guards and menu visibility.\n// @LAYER: Domain\n// @RELATION: DEPENDS_ON -> [authStore]\n// @INVARIANT: Admin role always bypasses explicit permission checks.\n\nconst KNOWN_ACTIONS = new Set([\"READ\", \"WRITE\", \"EXECUTE\", \"DELETE\"]);\n\nfunction normalizeAction(action, fallback = \"READ\") {\n const normalized = String(action || \"\").trim().toUpperCase();\n if (!normalized) return fallback;\n return normalized;\n}\n\n// #region normalizePermissionRequirement:Function [TYPE Function]\n// @PURPOSE: Convert permission requirement string to canonical resource/action tuple.\n// @PRE: Permission can be \"resource\" or \"resource:ACTION\" where resource itself may contain \":\".\n// @POST: Returns normalized object with action in uppercase.\nexport function normalizePermissionRequirement(permission, defaultAction = \"READ\") {\n const fallbackAction = normalizeAction(defaultAction, \"READ\");\n const rawPermission = String(permission || \"\").trim();\n\n if (!rawPermission) {\n return { resource: null, action: fallbackAction };\n }\n\n const parts = rawPermission.split(\":\");\n if (parts.length > 1) {\n const tail = normalizeAction(parts[parts.length - 1], fallbackAction);\n if (KNOWN_ACTIONS.has(tail)) {\n const resource = parts.slice(0, -1).join(\":\");\n return { resource, action: tail };\n }\n }\n\n return { resource: rawPermission, action: fallbackAction };\n}\n// #endregion normalizePermissionRequirement:Function\n\n// #region isAdminUser:Function [TYPE Function]\n// @PURPOSE: Determine whether user has Admin role.\n// @PRE: user can be null or partially populated.\n// @POST: Returns true when at least one role name equals \"Admin\" (case-insensitive).\nexport function isAdminUser(user) {\n const roles = Array.isArray(user?.roles) ? user.roles : [];\n return roles.some(\n (role) => String(role?.name || \"\").trim().toLowerCase() === \"admin\",\n );\n}\n// #endregion isAdminUser:Function\n\n// #region hasPermission:Function [TYPE Function]\n// @PURPOSE: Check if user has a required resource/action permission.\n// @PRE: user contains roles with permissions from /api/auth/me payload.\n// @POST: Returns true when requirement is empty, user is admin, or matching permission exists.\nexport function hasPermission(user, requirement, action = \"READ\") {\n if (!requirement) return true;\n if (!user) return false;\n if (isAdminUser(user)) return true;\n\n const { resource, action: requiredAction } = normalizePermissionRequirement(\n requirement,\n action,\n );\n if (!resource) return true;\n\n const roles = Array.isArray(user.roles) ? user.roles : [];\n for (const role of roles) {\n const permissions = Array.isArray(role?.permissions) ? role.permissions : [];\n for (const permission of permissions) {\n if (typeof permission === \"string\") {\n const normalized = normalizePermissionRequirement(\n permission,\n requiredAction,\n );\n if (\n normalized.resource === resource &&\n normalized.action === requiredAction\n ) {\n return true;\n }\n continue;\n }\n\n const permissionResource = String(permission?.resource || \"\").trim();\n const permissionAction = normalizeAction(permission?.action, \"\");\n if (\n permissionResource === resource &&\n permissionAction === requiredAction\n ) {\n return true;\n }\n }\n }\n\n return false;\n}\n// #endregion hasPermission:Function\n\n// #endregion Permissions:Module\n" @@ -74725,9 +65983,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Convert permission requirement string to canonical resource/action tuple.", "POST": "Returns normalized object with action in uppercase.", - "PRE": "Permission can be \"resource\" or \"resource:ACTION\" where resource itself may contain \":\".", - "PURPOSE": "Convert permission requirement string to canonical resource/action tuple." + "PRE": "Permission can be \"resource\" or \"resource:ACTION\" where resource itself may contain \":\"." }, "relations": [], "schema_warnings": [], @@ -74744,9 +66002,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Determine whether user has Admin role.", "POST": "Returns true when at least one role name equals \"Admin\" (case-insensitive).", - "PRE": "user can be null or partially populated.", - "PURPOSE": "Determine whether user has Admin role." + "PRE": "user can be null or partially populated." }, "relations": [], "schema_warnings": [], @@ -74763,9 +66021,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Check if user has a required resource/action permission.", "POST": "Returns true when requirement is empty, user is admin, or matching permission exists.", - "PRE": "user contains roles with permissions from /api/auth/me payload.", - "PURPOSE": "Check if user has a required resource/action permission." + "PRE": "user contains roles with permissions from /api/auth/me payload." }, "relations": [], "schema_warnings": [], @@ -74782,8 +66040,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Manages the global authentication state including JWT token, user profile, and login/logout lifecycle.", "COMPLEXITY": 3, - "PURPOSE": "Manages the global authentication state including JWT token, user profile, and login/logout lifecycle.", "UX_STATE": "Unauthenticated -> No valid session, login required" }, "relations": [ @@ -74794,90 +66052,7 @@ "target_ref": "[PermissionsModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region AuthStore [C:3] [TYPE Store] [SEMANTICS auth, store, jwt, token, login, session]\n// @BRIEF Manages the global authentication state including JWT token, user profile, and login/logout lifecycle.\n// @RELATION BINDS_TO -> [PermissionsModule]\n// @UX_STATE Loading -> Auth state being initialized from localStorage\n// @UX_STATE Authenticated -> User profile and token active\n// @UX_STATE Unauthenticated -> No valid session, login required\n\n// #region authStore:Store [TYPE Function]\n// @SEMANTICS: auth, store, svelte, jwt, session\n// @PURPOSE: Manages the global authentication state on the frontend.\n// @LAYER: Feature\n// @RELATION: MODIFIED_BY -> AuthService\n// @RELATION: BINDS_TO -> Navbar\n\nimport { writable } from 'svelte/store';\nimport { browser } from '$app/environment';\n\n// #region AuthState:Interface [TYPE Function]\n/**\n * @purpose Defines the structure of the authentication state.\n */\nexport interface AuthState {\n user: any | null;\n token: string | null;\n isAuthenticated: boolean;\n loading: boolean;\n}\n// #endregion AuthState:Interface\n\nconst initialState: AuthState = {\n user: null,\n token: browser ? localStorage.getItem('auth_token') : null,\n isAuthenticated: false,\n loading: true\n};\n\n// #region createAuthStore:Function [TYPE Function]\n/**\n * @purpose Creates and configures the auth store with helper methods.\n * @pre No preconditions - initialization function.\n * @post Returns configured auth store with subscribe, setToken, setUser, logout, setLoading methods.\n * @returns {Writable}\n */\nfunction createAuthStore() {\n const { subscribe, set, update } = writable(initialState);\n\n return {\n subscribe,\n // #region setToken:Function [TYPE Function]\n /**\n * @purpose Updates the store with a new JWT token.\n * @pre token must be a valid JWT string.\n * @post Store updated with new token, isAuthenticated set to true.\n * @param {string} token - The JWT access token.\n */\n setToken: (token: string) => {\n console.log(\"[setToken][Action] Updating token\");\n if (browser) {\n localStorage.setItem('auth_token', token);\n }\n update(state => ({ ...state, token, isAuthenticated: !!token }));\n },\n // #endregion setToken:Function\n // #region setUser:Function [TYPE Function]\n /**\n * @purpose Sets the current user profile data.\n * @pre User object must contain valid profile data.\n * @post Store updated with user, isAuthenticated true, loading false.\n * @param {any} user - The user profile object.\n */\n setUser: (user: any) => {\n console.log(\"[setUser][Action] Setting user profile\");\n update(state => ({ ...state, user, isAuthenticated: !!user, loading: false }));\n },\n // #endregion setUser:Function\n // #region logout:Function [TYPE Function]\n /**\n * @purpose Clears authentication state and storage.\n * @pre User is currently authenticated.\n * @post Auth token removed from localStorage, store reset to initial state.\n */\n logout: () => {\n console.log(\"[logout][Action] Logging out\");\n if (browser) {\n localStorage.removeItem('auth_token');\n }\n set({ user: null, token: null, isAuthenticated: false, loading: false });\n },\n // #endregion logout:Function\n // #region setLoading:Function [TYPE Function]\n /**\n * @purpose Updates the loading state.\n * @pre None.\n * @post Store loading state updated.\n * @param {boolean} loading - Loading status.\n */\n setLoading: (loading: boolean) => {\n console.log(`[setLoading][Action] Setting loading to ${loading}`);\n update(state => ({ ...state, loading }));\n }\n // #endregion setLoading:Function\n };\n}\n// #endregion createAuthStore:Function\n\nexport const auth = createAuthStore();\n\n// #endregion authStore:Store\n// #endregion AuthStore\n" @@ -74891,8 +66066,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Manages the global authentication state on the frontend.", "LAYER": "Feature", - "PURPOSE": "Manages the global authentication state on the frontend.", "SEMANTICS": [ "auth", "store", @@ -74916,28 +66091,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -74989,7 +66142,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Defines the structure of the authentication state." + "BRIEF": "Defines the structure of the authentication state." }, "relations": [], "schema_warnings": [], @@ -75021,9 +66174,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Creates and configures the auth store with helper methods.", "POST": "Returns configured auth store with subscribe, setToken, setUser, logout, setLoading methods.", "PRE": "No preconditions - initialization function.", - "PURPOSE": "Creates and configures the auth store with helper methods.", "RETURNS": "{Writable}" }, "relations": [], @@ -75066,10 +66219,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Updates the store with a new JWT token.", "PARAM": "{string} token - The JWT access token.", "POST": "Store updated with new token, isAuthenticated set to true.", - "PRE": "token must be a valid JWT string.", - "PURPOSE": "Updates the store with a new JWT token." + "PRE": "token must be a valid JWT string." }, "relations": [], "schema_warnings": [ @@ -75093,10 +66246,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Sets the current user profile data.", "PARAM": "{any} user - The user profile object.", "POST": "Store updated with user, isAuthenticated true, loading false.", - "PRE": "User object must contain valid profile data.", - "PURPOSE": "Sets the current user profile data." + "PRE": "User object must contain valid profile data." }, "relations": [], "schema_warnings": [ @@ -75120,9 +66273,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Clears authentication state and storage.", "POST": "Auth token removed from localStorage, store reset to initial state.", - "PRE": "User is currently authenticated.", - "PURPOSE": "Clears authentication state and storage." + "PRE": "User is currently authenticated." }, "relations": [], "schema_warnings": [], @@ -75139,10 +66292,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Updates the loading state.", "PARAM": "{boolean} loading - Loading status.", "POST": "Store loading state updated.", - "PRE": "None.", - "PURPOSE": "Updates the loading state." + "PRE": "None." }, "relations": [], "schema_warnings": [ @@ -75166,12 +66319,12 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Render the active dataset-review clarification queue inside AssistantChatPanel so users can answer, skip, defer, and resume questions without leaving the assistant workspace.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input[{sessionId, disabled}] -> Output[{clarification_state|clarification_session|current_question|session}] via onupdated callback.", "LAYER": "UI", "POST": "Clarification queue state is readable in-chat and answer mutations refresh the active question state without requiring a dedicated dialog.", "PRE": "sessionId belongs to the current dataset review workspace and the assistant drawer is open for session-scoped work.", - "PURPOSE": "Render the active dataset-review clarification queue inside AssistantChatPanel so users can answer, skip, defer, and resume questions without leaving the assistant workspace.", "SEMANTICS": [ "assistant", "clarification", @@ -75206,53 +66359,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -75324,9 +66430,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Read and parse JSON fixture file from disk.", "POST": "Returns parsed object representation.", - "PRE": "filePath points to existing UTF-8 JSON file.", - "PURPOSE": "Read and parse JSON fixture file from disk." + "PRE": "filePath points to existing UTF-8 JSON file." }, "relations": [], "schema_warnings": [], @@ -75343,8 +66449,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verify AssistantChatPanel hosts the resumable dataset-review clarification flow inside the assistant drawer and refreshes workspace session state after answering.", "LAYER": "UI Tests", - "PURPOSE": "Verify AssistantChatPanel hosts the resumable dataset-review clarification flow inside the assistant drawer and refreshes workspace session state after answering.", "SEMANTICS": [ "assistant", "clarification", @@ -75362,28 +66468,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -75416,9 +66500,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verify first optimistic user message stays visible while a new conversation request is pending.", "INVARIANT": "Starting a new conversation must not trigger history reload that overwrites the first local user message.", "LAYER": "UI Tests", - "PURPOSE": "Verify first optimistic user message stays visible while a new conversation request is pending.", "SEMANTICS": [ "assistant", "integration-test", @@ -75435,28 +66519,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -75489,9 +66551,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Guard optimistic first-message UX against history reload race in new conversation flow.", "POST": "First user message remains visible before pending send request resolves.", - "PRE": "Assistant panel renders with open state and mocked network dependencies.", - "PURPOSE": "Guard optimistic first-message UX against history reload race in new conversation flow." + "PRE": "Assistant panel renders with open state and mocked network dependencies." }, "relations": [ { @@ -75515,12 +66577,12 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Present the exact Superset-generated compiled SQL preview, expose readiness or staleness clearly, and preserve readable recovery paths when preview generation fails.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input -> Dataset review preview payload { sessionId, preview, previewState }; Output -> onupdated({ preview, preview_state }) route-shell refresh payload and onjump({ target }) recovery navigation signal.", "LAYER": "UI", "POST": "Users can distinguish missing, pending, ready, stale, and error preview states and can trigger only Superset-backed preview generation.", "PRE": "Session id is available and preview state comes from the current ownership-scoped session detail payload.", - "PURPOSE": "Present the exact Superset-generated compiled SQL preview, expose readiness or staleness clearly, and preserve readable recovery paths when preview generation fails.", "SEMANTICS": [ "dataset-review", "compiled-sql-preview", @@ -75549,53 +66611,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -75648,12 +66663,12 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Review imported-filter to template-variable mappings, surface effective values and blockers, and require explicit approval for warning-sensitive execution inputs before preview or launch.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input -> Dataset review execution payload { sessionId, mappings[], importedFilters[], templateVariables[] }; Output -> onupdated({ mapping | mappings, preview_state }) route-shell refresh payload.", "LAYER": "UI", "POST": "Users can review effective mapping values, approve warning-sensitive transformations, or manually override them while unresolved required-value blockers remain visible.", "PRE": "Session id, execution mappings, imported filters, and template variables belong to the current ownership-scoped session payload.", - "PURPOSE": "Review imported-filter to template-variable mappings, surface effective values and blockers, and require explicit approval for warning-sensitive execution inputs before preview or launch.", "SEMANTICS": [ "dataset-review", "execution-mapping", @@ -75682,53 +66697,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -75781,12 +66749,12 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Summarize final execution context, surface launch blockers explicitly, and confirm only a gate-complete SQL Lab launch request.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input -> Dataset review launch payload { sessionId, session, findings[], mappings[], preview, previewState, latestRunContext }; Output -> onupdated({ launch_result, preview_state }) workspace refresh payload and onjump({ target }) remediation navigation signal.", "LAYER": "UI", "POST": "Users can see why launch is blocked or confirm a run-ready launch with explicit SQL Lab handoff evidence.", "PRE": "Session detail, mappings, findings, preview state, and latest run context belong to the current ownership-scoped session payload.", - "PURPOSE": "Summarize final execution context, surface launch blockers explicitly, and confirm only a gate-complete SQL Lab launch request.", "SEMANTICS": [ "dataset-review", "launch-confirmation", @@ -75815,53 +66783,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -75914,12 +66835,12 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Surface field-level semantic decisions with provenance, confidence, candidate acceptance, and manual override safeguards for US2 review flow.", "COMPLEXITY": 3, "DATA_CONTRACT": "Input -> Dataset review session detail { sessionId, fields[], semanticSources[] }; Output -> onupdated(updatedField | { fields: updatedFields }) refresh payload.", "LAYER": "UI", "POST": "Users can review the current semantic value, accept a candidate, apply manual override, and lock or unlock field state without violating backend provenance rules.", "PRE": "Session id is available and semantic field entries come from the current ownership-scoped session detail payload.", - "PURPOSE": "Surface field-level semantic decisions with provenance, confidence, candidate acceptance, and manual override safeguards for US2 review flow.", "SEMANTICS": [ "dataset-review", "semantic-layer", @@ -75948,53 +66869,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -76047,9 +66921,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Collect initial dataset source input through Superset link paste or dataset selection entry paths.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Collect initial dataset source input through Superset link paste or dataset selection entry paths.", "SEMANTICS": [ "dataset-review", "intake", @@ -76071,53 +66945,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -76151,9 +66978,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Present validation findings grouped by severity with explicit resolution and actionability signals.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Present validation findings grouped by severity with explicit resolution and actionability signals.", "SEMANTICS": [ "dataset-review", "findings", @@ -76175,53 +67002,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -76255,8 +67035,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verify source intake entry paths, validation feedback, and submit payload behavior for US1.", "LAYER": "UI", - "PURPOSE": "Verify source intake entry paths, validation feedback, and submit payload behavior for US1.", "SEMANTICS": [ "dataset-review", "source-intake", @@ -76278,50 +67058,7 @@ "target_ref": "[SourceIntakePanel]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 SourceIntakePanelUxTests:Module [TYPE Function]\n// @SEMANTICS: dataset-review, source-intake, ux-tests, validation, recovery\n// @PURPOSE: Verify source intake entry paths, validation feedback, and submit payload behavior for US1.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [SourceIntakePanel]\n// @UX_STATE: Idle -> Default intake renders both entry paths and waits for user input.\n// @UX_STATE: Validating -> Inline feedback confirms recognized links and local payload validation.\n// @UX_STATE: Rejected -> Invalid source input remains local and exposes recovery guidance.\n// @TEST_CONTRACT: SourceIntakePanelProps -> ObservableIntakeUX\n// @TEST_SCENARIO: invalid_superset_link_shows_rejected_state -> Invalid URL input keeps submit local and shows rejection feedback.\n// @TEST_SCENARIO: recognized_superset_link_submits_payload -> Recognized link path submits normalized payload.\n// @TEST_SCENARIO: dataset_selection_mode_changes_cta -> Dataset selection path switches CTA and payload source kind.\n// @TEST_EDGE: missing_environment -> Required environment guard blocks submit.\n// @TEST_EDGE: invalid_type -> Invalid Superset URL shows recovery hint.\n// @TEST_EDGE: external_fail -> Submit callback failure is rendered inline.\n// @TEST_INVARIANT: intake_contract_remains_observable -> VERIFIED_BY: [invalid_superset_link_shows_rejected_state, recognized_superset_link_submits_payload, dataset_selection_mode_changes_cta]\n\nimport { describe, it, expect, vi } from \"vitest\";\nimport { fireEvent, render, screen } from \"@testing-library/svelte\";\nimport SourceIntakePanel from \"../SourceIntakePanel.svelte\";\n\nvi.mock(\"$lib/i18n\", () => ({\n t: {\n subscribe: (fn) => {\n fn({\n common: {\n choose_environment: \"Choose environment\",\n error: \"Common error\",\n },\n dataset_review: {\n source: {\n eyebrow: \"Source intake\",\n title: \"Start dataset review\",\n description: \"Paste link or provide dataset reference.\",\n state_idle: \"Idle\",\n state_validating: \"Validating\",\n state_rejected: \"Rejected\",\n environment_label: \"Environment\",\n environment_required: \"Environment is required\",\n superset_link_tab: \"Superset link\",\n superset_link_tab_hint: \"Paste dashboard or explore URL\",\n dataset_selection_tab: \"Dataset selection\",\n dataset_selection_tab_hint: \"Enter dataset ref\",\n superset_link_label: \"Superset link\",\n dataset_selection_label: \"Dataset reference\",\n superset_link_placeholder: \"https://superset.local/dashboard/10\",\n dataset_selection_placeholder: \"public.sales\",\n superset_link_hint: \"Paste a full Superset URL\",\n dataset_selection_hint: \"Provide schema.dataset reference\",\n recognized_link_hint: \"Recognized Superset link\",\n superset_link_required: \"Superset link is required\",\n dataset_selection_required: \"Dataset reference is required\",\n superset_link_invalid: \"Superset link must start with http\",\n submit_failed: \"Submit failed\",\n superset_link_recovery_note: \"You can fix the link inline\",\n dataset_selection_recovery_note: \"You can fix the dataset inline\",\n submitting: \"Submitting\",\n submit_superset_link: \"Start from link\",\n submit_dataset_selection: \"Start from dataset\",\n dataset_selection_acknowledged: \"Dataset selection acknowledged\",\n },\n },\n });\n return () => {};\n },\n },\n}));\n\ndescribe(\"SourceIntakePanel UX Contract\", () => {\n const environments = [{ id: \"env-1\", name: \"DEV\" }];\n\n it(\"invalid_superset_link_shows_rejected_state\", async () => {\n const onsubmit = vi.fn();\n const { container } = render(SourceIntakePanel, {\n environments,\n onsubmit,\n });\n\n await fireEvent.change(screen.getByRole(\"combobox\"), {\n target: { value: \"env-1\" },\n });\n await fireEvent.input(screen.getByPlaceholderText(\"https://superset.local/dashboard/10\"), {\n target: { value: \"not-a-url\" },\n });\n await fireEvent.submit(container.querySelector(\"form\"));\n\n expect(onsubmit).not.toHaveBeenCalled();\n expect(screen.getByText(\"Rejected\")).toBeDefined();\n expect(screen.getByText(\"Superset link must start with http\")).toBeDefined();\n });\n\n it(\"recognized_superset_link_submits_payload\", async () => {\n const onsubmit = vi.fn().mockResolvedValue(undefined);\n const { container } = render(SourceIntakePanel, {\n environments,\n selectedEnvironmentId: \"env-1\",\n acknowledgment: \"Recognized Superset link\",\n onsubmit,\n });\n\n await fireEvent.input(screen.getByPlaceholderText(\"https://superset.local/dashboard/10\"), {\n target: { value: \"https://demo.local/superset/dashboard/42 \" },\n });\n await fireEvent.submit(container.querySelector(\"form\"));\n\n expect(onsubmit).toHaveBeenCalledWith({\n environment_id: \"env-1\",\n source_input: \"https://demo.local/superset/dashboard/42\",\n source_kind: \"superset_link\",\n });\n expect(screen.getByText(\"Recognized Superset link\")).toBeDefined();\n });\n\n it(\"dataset_selection_mode_changes_cta\", async () => {\n const onsubmit = vi.fn().mockResolvedValue(undefined);\n const { container } = render(SourceIntakePanel, {\n environments,\n onsubmit,\n });\n\n await fireEvent.click(\n screen.getByRole(\"button\", {\n name: \"Dataset selection Enter dataset ref\",\n }),\n );\n await fireEvent.change(screen.getByRole(\"combobox\"), {\n target: { value: \"env-1\" },\n });\n await fireEvent.input(screen.getByPlaceholderText(\"public.sales\"), {\n target: { value: \" public.sales \" },\n });\n await fireEvent.submit(container.querySelector(\"form\"));\n\n expect(onsubmit).toHaveBeenCalledWith({\n environment_id: \"env-1\",\n source_input: \"public.sales\",\n source_kind: \"dataset_selection\",\n });\n });\n\n it(\"external_fail_renders_inline_error\", async () => {\n const onsubmit = vi.fn().mockRejectedValue(new Error(\"Backend rejected source\"));\n const { container } = render(SourceIntakePanel, {\n environments,\n selectedEnvironmentId: \"env-1\",\n onsubmit,\n });\n\n await fireEvent.input(screen.getByPlaceholderText(\"https://superset.local/dashboard/10\"), {\n target: { value: \"https://demo.local/dashboard/42\" },\n });\n await fireEvent.submit(container.querySelector(\"form\"));\n\n expect(screen.getByText(\"Backend rejected source\")).toBeDefined();\n });\n});\n// #endregion SourceIntakePanelUxTests:Module\n" @@ -76335,8 +67072,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verify US2 dataset review surfaces keep semantic review actionable, route clarification through AssistantChatPanel, and preserve explicit preview/mapping gates.", "LAYER": "UI", - "PURPOSE": "Verify US2 dataset review surfaces keep semantic review actionable, route clarification through AssistantChatPanel, and preserve explicit preview/mapping gates.", "SEMANTICS": [ "dataset-review", "semantics", @@ -76362,30 +67099,7 @@ "target_ref": "[ExecutionMappingReview]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region DatasetReviewUs2WorkspaceUxTests:Module [TYPE Function]\n// @SEMANTICS: dataset-review, semantics, assistant, workspace, ux-tests, mapping-review\n// @PURPOSE: Verify US2 dataset review surfaces keep semantic review actionable, route clarification through AssistantChatPanel, and preserve explicit preview/mapping gates.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [SemanticLayerReview]\n// @RELATION: DEPENDS_ON -> [ExecutionMappingReview]\n// @TEST_SCENARIO: semantic_review_surfaces_active_value_and_candidates -> Field-level semantic review shows provenance, candidates, and mutation callbacks.\n// @TEST_SCENARIO: mapping_review_marks_row_focused_and_requires_explicit_approval -> Mapping review keeps warning approvals explicit and highlightable.\n// @TEST_EDGE: external_fail -> Failed request surfaces inline recovery message.\n\nimport { describe, it, expect, vi, beforeEach } from \"vitest\";\nimport { render, screen, fireEvent, waitFor } from \"@testing-library/svelte\";\nimport SemanticLayerReview from \"../SemanticLayerReview.svelte\";\nimport ExecutionMappingReview from \"../ExecutionMappingReview.svelte\";\n\nvi.mock(\"$lib/i18n\", () => ({\n t: {\n subscribe: (fn) => {\n fn({\n common: {\n error: \"Common error\",\n cancel: \"Cancel\",\n unknown: \"Unknown\",\n not_available: \"N/A\",\n },\n dataset_review: {\n assistant: {\n ask_ai_action: \"✨ Ask AI\",\n improve_action: \"✨ Improve\",\n },\n semantics: {\n eyebrow: \"Semantic layer\",\n title: \"Review semantic field values\",\n description: \"Review semantic candidates\",\n field_count_label: \"Fields in review\",\n empty: \"No semantic fields\",\n unknown_source: \"Unknown source\",\n active_value_label: \"Active semantic value\",\n provenance_label: \"Provenance\",\n confidence_label: \"Confidence\",\n confidence_unset: \"No confidence rank\",\n confidence_rank_label: \"Rank\",\n source_label: \"Source\",\n changed_by_label: \"Changed by\",\n locked_badge: \"Locked\",\n unlocked_badge: \"Unlocked\",\n conflict_badge: \"Conflict\",\n needs_review_badge: \"Needs review\",\n manual_verbose_name_label: \"Manual verbose name\",\n manual_description_label: \"Manual description\",\n manual_display_format_label: \"Manual display format\",\n manual_override_action: \"Manual override\",\n save_manual_action: \"Save manual value\",\n lock_action: \"Lock field\",\n unlock_action: \"Unlock field\",\n feedback_up_action: \"Thumbs up\",\n feedback_down_action: \"Thumbs down\",\n candidates_title: \"Candidate options\",\n candidates_empty: \"No candidates\",\n candidate_description_empty: \"No candidate description\",\n display_format_label: \"Display format\",\n score_label: \"Score\",\n apply_candidate_action: \"Apply\",\n apply_and_lock_action: \"Apply and lock\",\n empty_value: \"No value\",\n provenance: {\n unresolved: \"Unresolved\",\n dictionary_exact: \"Dictionary exact match\",\n manual_override: \"Manual override\",\n },\n candidate_status: {\n pending: \"Pending\",\n },\n messages: {\n saving: \"Saving semantic decision...\",\n save_failed: \"Failed to save semantic decision.\",\n candidate_applied: \"Candidate value applied.\",\n },\n },\n mapping: {\n eyebrow: \"Template mapping\",\n title: \"Review filter-to-template mappings\",\n description: \"Verify imported values\",\n state_label: \"Mapping state\",\n state: {\n Incomplete: \"Incomplete\",\n WarningApproval: \"Approval required\",\n Approved: \"Approved\",\n },\n pending_approvals_label: \"Pending approvals\",\n required_values_label: \"Missing required values\",\n empty: \"No mappings\",\n required_blockers_notice: \"{count} required values missing\",\n approval_notice: \"{count} approvals needed\",\n to_variable_label: \"To variable\",\n required_badge: \"Required\",\n approval_required_badge: \"Approval required\",\n approved_badge: \"Approved\",\n source_filter_label: \"Source filter\",\n source_value_label: \"Source value\",\n confidence_label: \"Confidence\",\n recovery_label: \"Recovery\",\n effective_value_label: \"Effective value\",\n method_label: \"Method\",\n approval_label: \"Approval\",\n warning_label: \"Warning\",\n transformation_note_label: \"Transformation note\",\n missing_required_value: \"Missing required value\",\n manual_value_label: \"Manual effective value\",\n manual_note_label: \"Manual note\",\n save_override_action: \"Save manual override\",\n manual_override_action: \"Manual override\",\n approve_action: \"Approve mapping\",\n approve_all_action: \"Approve all pending mappings\",\n approval_state: {\n pending: \"Pending\",\n approved: \"Approved\",\n },\n warning_level: {\n high: \"High\",\n },\n method: {\n heuristic_match: \"Heuristic match\",\n manual_override: \"Manual override\",\n },\n messages: {\n saving: \"Saving mapping decision...\",\n approval_saved: \"Mapping approval recorded.\",\n approval_failed: \"Failed to save mapping approval.\",\n override_saved: \"Manual mapping override saved. Preview should be refreshed.\",\n override_failed: \"Failed to save manual mapping override.\",\n required_value_missing: \"Provide a required value before saving the manual override.\",\n },\n },\n },\n });\n return () => {};\n },\n },\n}));\n\nvi.mock(\"$lib/api/datasetReview.js\", () => ({\n requestDatasetReviewApi: vi.fn(),\n}));\n\ndescribe(\"Dataset review US2 workspace surfaces\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"semantic_review_surfaces_active_value_and_candidates\", async () => {\n const { requestDatasetReviewApi } = await import(\"$lib/api/datasetReview.js\");\n requestDatasetReviewApi.mockResolvedValue({\n field_id: \"field-1\",\n field_name: \"customer_name\",\n verbose_name: \"Customer name\",\n description: \"Customer display name\",\n display_format: \"text\",\n provenance: \"dictionary_exact\",\n source_id: \"source-1\",\n confidence_rank: 1,\n is_locked: false,\n has_conflict: false,\n needs_review: false,\n last_changed_by: \"user\",\n candidates: [],\n session_version: 5,\n });\n\n const onupdated = vi.fn();\n\n render(SemanticLayerReview, {\n sessionId: \"session-1\",\n sessionVersion: 4,\n semanticSources: [\n { source_id: \"source-1\", display_name: \"Trusted dictionary\", source_version: \"v1\" },\n ],\n fields: [\n {\n field_id: \"field-1\",\n field_name: \"customer_name\",\n field_kind: \"dimension\",\n verbose_name: \"Customer name\",\n description: \"Resolved from trusted dictionary\",\n display_format: \"text\",\n provenance: \"dictionary_exact\",\n source_id: \"source-1\",\n confidence_rank: 1,\n is_locked: false,\n has_conflict: true,\n needs_review: true,\n last_changed_by: \"system\",\n candidates: [\n {\n candidate_id: \"candidate-1\",\n match_type: \"exact\",\n confidence_score: 0.98,\n proposed_verbose_name: \"Customer name\",\n proposed_description: \"Customer display name\",\n proposed_display_format: \"text\",\n status: \"pending\",\n },\n ],\n },\n ],\n focusTarget: { target: \"field:field-1\", source: \"test\" },\n onupdated,\n });\n\n expect(screen.getByText(\"Review semantic field values\")).toBeDefined();\n expect(screen.getByText(\"customer_name\")).toBeDefined();\n expect(document.querySelector('[data-focus-target=\"field:field-1\"]')).toBeTruthy();\n\n await fireEvent.click(screen.getByRole(\"button\", { name: \"Apply\" }));\n\n await waitFor(() => {\n expect(requestDatasetReviewApi).toHaveBeenCalledWith(\n \"/dataset-orchestration/sessions/session-1/fields/field-1/semantic\",\n \"PATCH\",\n { candidate_id: \"candidate-1\", lock_field: false },\n 4,\n );\n });\n\n expect(onupdated).toHaveBeenCalled();\n expect(screen.getByText(\"Candidate value applied.\")).toBeDefined();\n });\n\n it(\"mapping_review_marks_row_focused_and_requires_explicit_approval\", async () => {\n const { requestDatasetReviewApi } = await import(\"$lib/api/datasetReview.js\");\n requestDatasetReviewApi.mockResolvedValue({\n mapping_id: \"mapping-1\",\n filter_id: \"filter-1\",\n variable_id: \"variable-1\",\n approval_state: \"approved\",\n requires_explicit_approval: true,\n warning_level: \"high\",\n mapping_method: \"heuristic_match\",\n effective_value: \"EU\",\n session_version: 6,\n });\n\n const onupdated = vi.fn();\n const onaskai = vi.fn();\n\n render(ExecutionMappingReview, {\n sessionId: \"session-1\",\n sessionVersion: 5,\n mappings: [\n {\n mapping_id: \"mapping-1\",\n filter_id: \"filter-1\",\n variable_id: \"variable-1\",\n approval_state: \"pending\",\n requires_explicit_approval: true,\n warning_level: \"high\",\n mapping_method: \"heuristic_match\",\n transformation_note: \"Europe → EU\",\n effective_value: \"EU\",\n },\n ],\n importedFilters: [\n {\n filter_id: \"filter-1\",\n filter_name: \"region\",\n display_name: \"Region\",\n raw_value: \"Europe\",\n confidence_state: \"mostly_confirmed\",\n recovery_status: \"partial\",\n },\n ],\n templateVariables: [\n {\n variable_id: \"variable-1\",\n variable_name: \"region_code\",\n is_required: true,\n },\n ],\n focusTarget: { target: \"mapping:mapping-1\", source: \"test\" },\n onupdated,\n onaskai,\n });\n\n expect(document.querySelector('[data-focus-target=\"mapping:mapping-1\"]')).toBeTruthy();\n expect(screen.getByText(\"Approval required\")).toBeDefined();\n\n await fireEvent.click(screen.getByRole(\"button\", { name: \"✨ Ask AI\" }));\n expect(onaskai).toHaveBeenCalled();\n\n await fireEvent.click(screen.getByRole(\"button\", { name: \"Approve mapping\" }));\n\n await waitFor(() => {\n expect(requestDatasetReviewApi).toHaveBeenCalledWith(\n \"/dataset-orchestration/sessions/session-1/mappings/mapping-1/approve\",\n \"POST\",\n { approval_note: \"Europe → EU\" },\n 5,\n );\n });\n\n expect(onupdated).toHaveBeenCalledWith(\n expect.objectContaining({ preview_state: \"unchanged\" }),\n );\n });\n});\n// #endregion DatasetReviewUs2WorkspaceUxTests:Module\n" @@ -76399,8 +67113,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verify US3 mapping review, Superset preview, and launch confirmation UX contracts.", "LAYER": "UI", - "PURPOSE": "Verify US3 mapping review, Superset preview, and launch confirmation UX contracts.", "SEMANTICS": [ "dataset-review", "execution", @@ -76435,50 +67149,7 @@ "target_ref": "[LaunchConfirmationPanel]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 DatasetReviewUs3UxTests:Module [TYPE Function]\n// @SEMANTICS: dataset-review, execution, mapping, preview, launch, ux-tests\n// @PURPOSE: Verify US3 mapping review, Superset preview, and launch confirmation UX contracts.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [ExecutionMappingReview]\n// @RELATION: DEPENDS_ON -> [CompiledSQLPreview]\n// @RELATION: DEPENDS_ON -> [LaunchConfirmationPanel]\n// @UX_STATE: WarningApproval -> Mapping review requires explicit approval or manual override.\n// @UX_STATE: Ready -> Preview and launch panels expose reviewed Superset-backed execution context.\n// @UX_STATE: Blocked -> Launch panel lists blockers instead of allowing hidden bypass.\n// @TEST_CONTRACT: Us3ExecutionProps -> ObservableExecutionUx\n// @TEST_SCENARIO: mapping_review_approves_warning_sensitive_row -> Approval persists and keeps blockers visible until cleared.\n// @TEST_SCENARIO: preview_panel_requests_superset_compilation_and_renders_sql -> Preview stays explicitly Superset-derived.\n// @TEST_SCENARIO: launch_panel_blocks_then_submits_sql_lab_launch -> Launch lists gates first and shows audited handoff after success.\n// @TEST_EDGE: missing_field -> Missing preview or run context remains readable.\n// @TEST_EDGE: external_fail -> Failed preview request surfaces inline error.\n// @TEST_EDGE: invalid_type -> Mixed values stringify without crashing.\n// @TEST_INVARIANT: execution_gates_remain_visible -> VERIFIED_BY: [mapping_review_approves_warning_sensitive_row, preview_panel_requests_superset_compilation_and_renders_sql, launch_panel_blocks_then_submits_sql_lab_launch]\n\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { fireEvent, render, screen, waitFor } from \"@testing-library/svelte\";\nimport { requestDatasetReviewApi } from \"$lib/api/datasetReview.js\";\nimport ExecutionMappingReview from \"../ExecutionMappingReview.svelte\";\nimport CompiledSQLPreview from \"../CompiledSQLPreview.svelte\";\nimport LaunchConfirmationPanel from \"../LaunchConfirmationPanel.svelte\";\n\nvi.mock(\"$lib/api/datasetReview.js\", () => ({\n requestDatasetReviewApi: vi.fn(),\n}));\n\nvi.mock(\"$lib/i18n\", () => ({\n t: {\n subscribe: (fn) => {\n fn({\n common: {\n error: \"Common error\",\n cancel: \"Cancel\",\n not_available: \"N/A\",\n unknown: \"Unknown\",\n },\n dataset_review: {\n mapping: {\n eyebrow: \"Template mapping\",\n title: \"Review filter-to-template mappings\",\n description: \"Verify imported filter values, effective execution values, and warning-sensitive transformations before preview or launch.\",\n state_label: \"Mapping state\",\n state: {\n Incomplete: \"Incomplete\",\n WarningApproval: \"Approval required\",\n Approved: \"Approved\",\n },\n pending_approvals_label: \"Pending approvals\",\n required_values_label: \"Missing required values\",\n empty: \"No execution mappings are available yet.\",\n required_blockers_notice: \"{count} required values still need attention before preview or launch can proceed.\",\n approval_notice: \"{count} mapping transformations still need explicit approval.\",\n to_variable_label: \"To variable\",\n required_badge: \"Required\",\n approval_required_badge: \"Approval required\",\n approved_badge: \"Approved\",\n source_filter_label: \"Source filter\",\n source_value_label: \"Source value\",\n confidence_label: \"Confidence\",\n recovery_label: \"Recovery\",\n effective_value_label: \"Effective value\",\n method_label: \"Method\",\n approval_label: \"Approval\",\n warning_label: \"Warning\",\n transformation_note_label: \"Transformation note\",\n missing_required_value: \"This mapping still lacks a required effective value.\",\n manual_value_label: \"Manual effective value\",\n manual_note_label: \"Manual override note\",\n save_override_action: \"Save manual override\",\n manual_override_action: \"Manual override\",\n approve_action: \"Approve mapping\",\n approve_all_action: \"Approve all pending mappings\",\n approval_state: {\n pending: \"Pending\",\n approved: \"Approved\",\n rejected: \"Rejected\",\n not_required: \"Not required\",\n },\n warning_level: {\n none: \"None\",\n low: \"Low\",\n medium: \"Medium\",\n high: \"High\",\n },\n method: {\n direct_match: \"Direct match\",\n heuristic_match: \"Heuristic match\",\n semantic_match: \"Semantic match\",\n manual_override: \"Manual override\",\n },\n messages: {\n saving: \"Saving mapping decision...\",\n approval_saved: \"Mapping approval recorded.\",\n approval_failed: \"Failed to save mapping approval.\",\n override_saved: \"Manual mapping override saved. Preview should be refreshed.\",\n override_failed: \"Failed to save manual mapping override.\",\n required_value_missing: \"Provide a required value before saving the manual override.\",\n },\n },\n preview: {\n eyebrow: \"Compiled SQL preview\",\n title: \"Review Superset-compiled SQL\",\n description: \"Preview truth comes only from Superset. Regenerate the preview whenever mappings or required inputs change.\",\n state_label: \"Preview state\",\n state: {\n missing: \"Missing\",\n pending: \"Pending\",\n ready: \"Ready\",\n stale: \"Stale\",\n failed: \"Error\",\n },\n generate_action: \"Generate SQL preview\",\n generate_loading: \"Generating preview...\",\n missing_body: \"No Superset preview is available yet. Generate one before attempting launch.\",\n pending_body: \"Superset is compiling the current execution context. Launch stays blocked until preview completes.\",\n ready_body: \"This SQL preview was compiled by Superset for the current execution inputs.\",\n stale_body: \"Mappings or effective values changed after the last successful preview. Regenerate before launch.\",\n error_body: \"Superset could not compile the current execution context.\",\n compiler_label: \"Compiled source\",\n compiled_by_superset: \"Compiled by Superset\",\n compiled_source_unknown: \"Compilation source unavailable\",\n fingerprint_label: \"Preview fingerprint\",\n compiled_at_label: \"Compiled at\",\n sql_block_title: \"Superset SQL\",\n compiled_truth_note: \"Exact SQL returned by Superset\",\n go_to_mapping_action: \"Review mapping inputs\",\n review_inputs_action: \"Review changed inputs\",\n messages: {\n generated: \"Superset preview refreshed.\",\n generate_failed: \"Failed to generate Superset preview.\",\n },\n },\n launch: {\n eyebrow: \"Launch confirmation\",\n title: \"Confirm SQL Lab launch\",\n description: \"Launch remains blocked until preview truth, approvals, and readiness gates all match the reviewed execution context.\",\n state_label: \"Launch state\",\n state: {\n Blocked: \"Blocked\",\n Ready: \"Ready\",\n Submitted: \"Submitted\",\n },\n blocked_title: \"Launch blockers\",\n blocked_body: \"Resolve the items below before sending this dataset run to SQL Lab.\",\n resolve_action: \"Open related area\",\n dataset_ref_label: \"Dataset reference\",\n readiness_label: \"Readiness\",\n approved_mappings_label: \"Approved mappings\",\n preview_fingerprint_label: \"Preview fingerprint\",\n sql_lab_target_title: \"Launch target\",\n sql_lab_target_body: \"The canonical launch target is a Superset SQL Lab session using the reviewed preview and effective execution inputs.\",\n preview_status_label: \"Preview status\",\n compiled_by_label: \"Compiled by\",\n launch_action: \"Launch dataset\",\n launch_loading: \"Launching dataset...\",\n submitted_title: \"Launch submitted\",\n submitted_body: \"SQL Lab handoff and audited run context were recorded for this launch request.\",\n run_context_label: \"Run context\",\n sql_lab_session_label: \"SQL Lab session\",\n launch_status_label: \"Launch status\",\n preview_ref_label: \"Preview reference\",\n blockers: {\n blocking_finding: \"Blocking findings remain unresolved\",\n mapping_approval_required: \"Mapping approval is still required\",\n preview_missing: \"Superset preview is required before launch\",\n preview_pending: \"Preview generation is still in progress\",\n preview_stale: \"Preview no longer matches the current execution inputs\",\n preview_failed: \"Preview failed and launch remains blocked\",\n readiness_not_run_ready: \"Session is not yet in run-ready state\",\n preview_fingerprint_missing: \"Preview fingerprint is missing, so launch cannot be trusted\",\n },\n messages: {\n launch_started: \"Dataset launch request sent to SQL Lab.\",\n launch_failed: \"Failed to launch dataset in SQL Lab.\",\n },\n },\n },\n });\n return () => {};\n },\n },\n}));\n\ndescribe(\"Dataset review US3 execution UX\", () => {\n beforeEach(() => {\n requestDatasetReviewApi.mockReset();\n });\n\n it(\"mapping_review_approves_warning_sensitive_row\", async () => {\n requestDatasetReviewApi.mockResolvedValueOnce({\n mapping_id: \"map-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: \"approved\",\n });\n\n const onupdated = vi.fn();\n\n render(ExecutionMappingReview, {\n sessionId: \"session-1\",\n mappings: [\n {\n mapping_id: \"map-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: \"pending\",\n },\n ],\n importedFilters: [\n {\n filter_id: \"filter-1\",\n filter_name: \"country\",\n display_name: \"Country\",\n raw_value: \"DE\",\n normalized_value: \"DE\",\n confidence_state: \"imported\",\n recovery_status: \"recovered\",\n },\n ],\n templateVariables: [\n {\n variable_id: \"var-1\",\n variable_name: \"country\",\n is_required: true,\n default_value: null,\n },\n ],\n onupdated,\n });\n\n expect(screen.getByText(\"Review filter-to-template mappings\")).toBeDefined();\n expect(screen.getByText(\"Approval required\")).toBeDefined();\n expect(screen.getByText(\"Country\")).toBeDefined();\n expect(screen.getByText(/Trimmed imported value/)).toBeDefined();\n\n await fireEvent.click(screen.getByRole(\"button\", { name: \"Approve mapping\" }));\n\n await waitFor(() => {\n expect(requestDatasetReviewApi).toHaveBeenCalledWith(\n \"/dataset-orchestration/sessions/session-1/mappings/map-1/approve\",\n \"POST\",\n { approval_note: \"Trimmed imported value\" },\n null,\n );\n });\n\n expect(onupdated).toHaveBeenCalledWith({\n mapping: expect.objectContaining({\n mapping_id: \"map-1\",\n approval_state: \"approved\",\n }),\n preview_state: \"unchanged\",\n });\n expect(screen.getByText(\"Mapping approval recorded.\")).toBeDefined();\n });\n\n it(\"mapping_review_batch_approves_pending_rows\", async () => {\n requestDatasetReviewApi.mockResolvedValueOnce([\n {\n mapping_id: \"map-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: \"approved\",\n },\n ]);\n\n const onupdated = vi.fn();\n\n render(ExecutionMappingReview, {\n sessionId: \"session-1\",\n mappings: [\n {\n mapping_id: \"map-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: \"pending\",\n },\n ],\n importedFilters: [\n {\n filter_id: \"filter-1\",\n filter_name: \"country\",\n display_name: \"Country\",\n raw_value: \"DE\",\n normalized_value: \"DE\",\n confidence_state: \"imported\",\n recovery_status: \"recovered\",\n },\n ],\n templateVariables: [\n {\n variable_id: \"var-1\",\n variable_name: \"country\",\n is_required: true,\n default_value: null,\n },\n ],\n onupdated,\n });\n\n await fireEvent.click(screen.getByRole(\"button\", { name: \"Approve all pending mappings\" }));\n\n await waitFor(() => {\n expect(requestDatasetReviewApi).toHaveBeenCalledWith(\n \"/dataset-orchestration/sessions/session-1/mappings/approve-batch\",\n \"POST\",\n { mapping_ids: [\"map-1\"] },\n null,\n );\n });\n\n expect(onupdated).toHaveBeenCalledWith({\n mappings: expect.any(Array),\n preview_state: \"unchanged\",\n });\n });\n\n it(\"preview_panel_requests_superset_compilation_and_renders_sql\", async () => {\n requestDatasetReviewApi.mockResolvedValueOnce({\n preview_id: \"preview-1\",\n session_id: \"session-1\",\n preview_status: \"ready\",\n compiled_sql: \"SELECT * FROM sales WHERE country = 'DE'\",\n preview_fingerprint: \"fingerprint-1\",\n compiled_by: \"superset\",\n compiled_at: \"2026-03-17T09:00:00Z\",\n });\n\n const onupdated = vi.fn();\n\n render(CompiledSQLPreview, {\n sessionId: \"session-1\",\n preview: null,\n previewState: \"missing\",\n onupdated,\n });\n\n expect(screen.getByText(\"Review Superset-compiled SQL\")).toBeDefined();\n expect(screen.getByText(\"No Superset preview is available yet. Generate one before attempting launch.\")).toBeDefined();\n\n await fireEvent.click(screen.getByRole(\"button\", { name: \"Generate SQL preview\" }));\n\n await waitFor(() => {\n expect(requestDatasetReviewApi).toHaveBeenCalledWith(\n \"/dataset-orchestration/sessions/session-1/preview\",\n \"POST\",\n null,\n null,\n );\n });\n\n await waitFor(() => {\n expect(onupdated).toHaveBeenCalledWith({\n preview: expect.objectContaining({\n preview_id: \"preview-1\",\n compiled_by: \"superset\",\n }),\n preview_state: \"ready\",\n });\n });\n\n requestDatasetReviewApi.mockRejectedValueOnce(new Error(\"Superset compile failed\"));\n\n const onjump = vi.fn();\n render(CompiledSQLPreview, {\n sessionId: \"session-1\",\n preview: {\n preview_id: \"preview-err\",\n preview_status: \"failed\",\n preview_fingerprint: \"fingerprint-err\",\n compiled_by: \"superset\",\n error_details: \"Variable country is invalid\",\n },\n previewState: \"failed\",\n onjump,\n });\n\n expect(screen.getByText(\"Variable country is invalid\")).toBeDefined();\n\n await fireEvent.click(screen.getByRole(\"button\", { name: \"Review mapping inputs\" }));\n expect(onjump).toHaveBeenCalledWith({ target: \"mapping\" });\n });\n\n it(\"launch_panel_blocks_then_submits_sql_lab_launch\", async () => {\n const onjump = vi.fn();\n const { rerender } = render(LaunchConfirmationPanel, {\n sessionId: \"session-1\",\n session: {\n dataset_ref: \"public.sales\",\n readiness_state: \"mapping_review_needed\",\n },\n findings: [\n {\n severity: \"blocking\",\n resolution_state: \"open\",\n title: \"Missing required value\",\n message: \"country is required\",\n code: \"REQ_COUNTRY\",\n },\n ],\n mappings: [\n {\n mapping_id: \"map-1\",\n requires_explicit_approval: true,\n approval_state: \"pending\",\n transformation_note: \"Europe -> EU\",\n },\n ],\n preview: null,\n previewState: \"missing\",\n onjump,\n });\n\n expect(screen.getByText(\"Launch blockers\")).toBeDefined();\n expect(screen.getByText(\"Blocking findings remain unresolved\")).toBeDefined();\n expect(screen.getByText(\"Mapping approval is still required\")).toBeDefined();\n expect(screen.getByText(\"Superset preview is required before launch\")).toBeDefined();\n\n await fireEvent.click(screen.getAllByRole(\"button\", { name: \"Open related area\" })[1]);\n expect(onjump).toHaveBeenCalledWith({ target: \"mapping\" });\n\n requestDatasetReviewApi.mockResolvedValueOnce({\n run_context: {\n run_context_id: \"run-1\",\n sql_lab_session_ref: \"sql-lab-77\",\n launch_status: \"started\",\n preview_id: \"preview-1\",\n },\n });\n\n await rerender({\n sessionId: \"session-1\",\n session: {\n dataset_ref: \"public.sales\",\n readiness_state: \"run_ready\",\n },\n findings: [],\n mappings: [\n {\n mapping_id: \"map-1\",\n requires_explicit_approval: true,\n approval_state: \"approved\",\n transformation_note: \"Europe -> EU\",\n },\n ],\n preview: {\n preview_id: \"preview-1\",\n preview_status: \"ready\",\n preview_fingerprint: \"fingerprint-1\",\n compiled_by: \"superset\",\n },\n previewState: \"ready\",\n onupdated: vi.fn(),\n onjump,\n });\n\n expect(screen.getByText(\"Confirm SQL Lab launch\")).toBeDefined();\n expect(screen.getByText(\"Launch state: Ready\")).toBeDefined();\n\n await fireEvent.click(screen.getByRole(\"button\", { name: \"Launch dataset\" }));\n\n await waitFor(() => {\n expect(requestDatasetReviewApi).toHaveBeenCalledWith(\n \"/dataset-orchestration/sessions/session-1/launch\",\n \"POST\",\n null,\n null,\n );\n });\n\n expect(screen.getByText(\"Dataset launch request sent to SQL Lab.\")).toBeDefined();\n });\n});\n// #endregion DatasetReviewUs3UxTests:Module\n" @@ -76492,8 +67163,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verify grouped findings visibility, empty state, and remediation jump behavior for US1.", "LAYER": "UI", - "PURPOSE": "Verify grouped findings visibility, empty state, and remediation jump behavior for US1.", "SEMANTICS": [ "dataset-review", "findings", @@ -76515,50 +67186,7 @@ "target_ref": "[ValidationFindingsPanel]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 ValidationFindingsPanelUxTests:Module [TYPE Function]\n// @SEMANTICS: dataset-review, findings, severity, jump, ux-tests\n// @PURPOSE: Verify grouped findings visibility, empty state, and remediation jump behavior for US1.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [ValidationFindingsPanel]\n// @UX_STATE: Blocking -> Blocking findings dominate the panel and expose remediation jumps.\n// @UX_STATE: Warning -> Warning findings remain visible with explicit resolution state.\n// @UX_STATE: Informational -> Informational notes stay readable without competing with blockers.\n// @TEST_CONTRACT: FindingsPanelProps -> ObservableFindingsUX\n// @TEST_SCENARIO: blocking_warning_info_groups_render -> Findings render in the proper severity groups with counts.\n// @TEST_SCENARIO: jump_action_maps_area_to_workspace_target -> Jump action emits normalized remediation target.\n// @TEST_SCENARIO: empty_findings_show_success_state -> Empty list shows ready feedback.\n// @TEST_EDGE: missing_field -> Missing optional fields do not crash rendering.\n// @TEST_EDGE: invalid_type -> Unknown severity falls back to informational grouping.\n// @TEST_EDGE: external_fail -> Jump callback remains optional.\n// @TEST_INVARIANT: findings_groups_remain_actionable -> VERIFIED_BY: [blocking_warning_info_groups_render, jump_action_maps_area_to_workspace_target, empty_findings_show_success_state]\n\nimport { describe, it, expect, vi } from \"vitest\";\nimport { fireEvent, render, screen } from \"@testing-library/svelte\";\nimport ValidationFindingsPanel from \"../ValidationFindingsPanel.svelte\";\n\nvi.mock(\"$lib/i18n\", () => ({\n t: {\n subscribe: (fn) => {\n fn({\n dataset_review: {\n findings: {\n eyebrow: \"Validation findings\",\n title: \"Findings\",\n description: \"Review validation results\",\n next_action_label: \"Next action\",\n empty: \"No findings\",\n blocking_title: \"Blocking\",\n blocking_empty: \"No blocking findings\",\n warning_title: \"Warnings\",\n warning_empty: \"No warning findings\",\n informational_title: \"Info\",\n informational_empty: \"No informational findings\",\n resolution_label: \"Resolution\",\n reference_label: \"Reference\",\n jump_action: \"Jump to area\",\n resolution: {\n open: \"Open\",\n approved: \"Approved\",\n },\n areas: {\n source_intake: \"Source intake\",\n dataset_profile: \"Dataset summary\",\n semantic_enrichment: \"Semantics\",\n },\n },\n workspace: {\n actions: {\n review_documentation: \"Review documentation\",\n import_from_superset: \"Import from Superset\",\n },\n },\n },\n });\n return () => {};\n },\n },\n}));\n\ndescribe(\"ValidationFindingsPanel UX Contract\", () => {\n const findings = [\n {\n finding_id: \"f-1\",\n severity: \"blocking\",\n code: \"REQ_ENV\",\n area: \"source_intake\",\n title: \"Environment required\",\n message: \"Select environment\",\n resolution_state: \"open\",\n },\n {\n finding_id: \"f-2\",\n severity: \"warning\",\n code: \"PARTIAL_RECOVERY\",\n area: \"dataset_profile\",\n title: \"Partial recovery\",\n message: \"Some metadata needs review\",\n resolution_state: \"approved\",\n caused_by_ref: \"dashboard:42\",\n },\n {\n finding_id: \"f-3\",\n severity: \"unexpected\",\n code: \"INFO_NOTE\",\n area: \"semantic_enrichment\",\n title: \"Dictionary note\",\n message: \"Trusted source used\",\n resolution_state: \"open\",\n },\n ];\n\n it(\"blocking_warning_info_groups_render\", () => {\n render(ValidationFindingsPanel, {\n findings,\n recommendedAction: \"review_documentation\",\n });\n\n expect(screen.getByText(\"Blocking\")).toBeDefined();\n expect(screen.getByText(\"Warnings\")).toBeDefined();\n expect(screen.getByText(\"Info\")).toBeDefined();\n expect(screen.getByText(\"Environment required\")).toBeDefined();\n expect(screen.getByText(\"Partial recovery\")).toBeDefined();\n expect(screen.getByText(\"Dictionary note\")).toBeDefined();\n expect(screen.getByText(\"Review documentation\")).toBeDefined();\n });\n\n it(\"jump_action_maps_area_to_workspace_target\", async () => {\n const onjump = vi.fn();\n render(ValidationFindingsPanel, {\n findings: [findings[0]],\n recommendedAction: \"import_from_superset\",\n onjump,\n });\n\n await fireEvent.click(screen.getByRole(\"button\", { name: \"Jump to area\" }));\n\n expect(onjump).toHaveBeenCalledWith({\n target: \"intake\",\n finding: findings[0],\n });\n });\n\n it(\"empty_findings_show_success_state\", () => {\n render(ValidationFindingsPanel, {\n findings: [],\n recommendedAction: \"review_documentation\",\n });\n\n expect(screen.getByText(\"No findings\")).toBeDefined();\n });\n});\n// #endregion ValidationFindingsPanelUxTests:Module\n" @@ -76572,9 +67200,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Visual grid summary representing dashboard health status counts.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Visual grid summary representing dashboard health status counts.", "TYPE": "{{", "UX_REACTIVITY": "Uses $derived to keep aggregate totals consistent with the count props.", "UX_STATE": "Error -> Displays an error message with a retry option." @@ -76588,28 +67216,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -76643,11 +67249,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Form for creating and editing validation policies.", "COMPLEXITY": 3, "LAYER": "UI", "POST": "Form submission forwards the current draft to onSave and cancel delegates dismissal to the parent callback without mutating external state directly.", "PRE": "Parent provides callable onSave/onCancel handlers and an environments collection that may be empty but remains array-like.", - "PURPOSE": "Form for creating and editing validation policies.", "TYPE": "{{ policy: any, environments: any[], onSave: (p: any) => void, onCancel: () => void }}", "UX_FEEDBACK": "Error -> Invalid field or submit failures keep the draft visible for correction.", "UX_REACTIVITY": "Uses $state for mutable form data and $derived values for window health checks.", @@ -76662,28 +67268,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -76717,8 +67301,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Compact weekly schedule widget showing active validation tasks with day grid, time windows, and cross-referenced health status.", "COMPLEXITY": 3, - "PURPOSE": "Compact weekly schedule widget showing active validation tasks with day grid, time windows, and cross-referenced health status.", "TYPE": "{{ healthItems: Array<{task_id?: string, status: string}>, selectedEnvId?: string, appTimezone?: string }}", "UX_FEEDBACK": "Click on policy row navigates to validation task edit page", "UX_REACTIVITY": "Props -> healthItems, selectedEnvId. LocalState -> tasks, loading, error", @@ -76785,9 +67369,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Persistent left sidebar with grouped sections (Resources/Operations/System), expand/collapse, health indicators, RBAC filtering, profile footer.", "COMPLEXITY": 4, "LAYER": "UI", - "PURPOSE": "Persistent left sidebar with grouped sections (Resources/Operations/System), expand/collapse, health indicators, RBAC filtering, profile footer.", "UX_FEEDBACK": "Profile footer shows user avatar and username.", "UX_RECOVERY": "Click outside on mobile closes overlay.", "UX_STATE": "MobileOpen -> Overlay and sidebar visible until dismissed." @@ -76818,30 +67402,7 @@ "target_ref": "[Icon]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{#if isMobileOpen}\n \n \n{/if}\n\n\n\n \n \n {#if isExpanded}\n \n \n \n \n {translationState.current?.nav?.menu || \"Menu\"}\n \n \n \n \n {:else}\n \n \n \n \n \n \n {/if}\n \n\n \n \n\n \n
\n {#if isExpanded}\n \n
\n \n \n {getInitials(user)}\n \n \n {user?.display_name || user?.username || user?.email || \"Profile\"}\n \n \n
\n \n \n \n
\n
\n {:else}\n \n
\n \n \n {getInitials(user)}\n \n \n \n \n \n
\n {/if}\n
\n\n\n\n" @@ -76855,9 +67416,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Disconnects the active WebSocket connection", "POST": "ws is closed and set to null", "PRE": "ws may or may not be initialized", - "PURPOSE": "Disconnects the active WebSocket connection", "UX_STATE": "Loading -> Default" }, "relations": [ @@ -76868,28 +67429,7 @@ "target_ref": "App" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 disconnectWebSocket:Function [TYPE Function]\n// @UX_STATE: Loading -> Default\n// @RELATION: USES -> App\n /**\n * @PURPOSE: Disconnects the active WebSocket connection\n * @PRE: ws may or may not be initialized\n * @POST: ws is closed and set to null\n */\n function disconnectWebSocket() {\n console.log(\"[TaskDrawer][WebSocket][disconnectWebSocket:START]\");\n if (ws) {\n ws.close();\n ws = null;\n }\n }\n // #endregion disconnectWebSocket:Function\n" @@ -76903,9 +67443,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Load recent tasks for list mode display", "POST": "recentTasks array populated with task list", - "PRE": "User is on task drawer or api is ready.", - "PURPOSE": "Load recent tasks for list mode display" + "PRE": "User is on task drawer or api is ready." }, "relations": [], "schema_warnings": [], @@ -76922,9 +67462,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Select a task from list to view details", "POST": "drawer state updated to show task details", - "PRE": "task is a valid task object", - "PURPOSE": "Select a task from list to view details" + "PRE": "task is a valid task object" }, "relations": [], "schema_warnings": [], @@ -76941,9 +67481,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return to task list view from task details", "POST": "Drawer switches to list view and reloads tasks", "PRE": "Drawer is open and activeTaskId is set", - "PURPOSE": "Return to task list view from task details", "UX_STATE": "Loading -> Default" }, "relations": [ @@ -76954,28 +67494,7 @@ "target_ref": "App" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 goBackToList:Function [TYPE Function]\n// @UX_STATE: Loading -> Default\n// @RELATION: USES -> App\n /**\n * @PURPOSE: Return to task list view from task details\n * @PRE: Drawer is open and activeTaskId is set\n * @POST: Drawer switches to list view and reloads tasks\n */\n function goBackToList() {\n console.log(\"[TaskDrawer][UI][goBackToList:START]\");\n taskDrawerStore.update((state) => ({\n ...state,\n activeTaskId: null,\n }));\n // Reload the task list\n loadRecentTasks();\n console.log(\"[TaskDrawer][UI][goBackToList:SUCCESS]\");\n }\n // #endregion goBackToList:Function\n" @@ -76989,8 +67508,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verifies RBAC-based sidebar sections and category visibility.", "LAYER": "UI (Tests)", - "PURPOSE": "Verifies RBAC-based sidebar sections and category visibility.", "SEMANTICS": [ "tests", "sidebar", @@ -77008,28 +67527,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -77062,8 +67559,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Contract-focused unit tests for Breadcrumbs.svelte logic and UX annotations", "LAYER": "UI", - "PURPOSE": "Contract-focused unit tests for Breadcrumbs.svelte logic and UX annotations", "UX_STATE": "Loading -> Default" }, "relations": [ @@ -77074,50 +67571,7 @@ "target_ref": "[Breadcrumbs]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 BreadcrumbsContractTest:Module [TYPE Function]\n// @UX_STATE: Loading -> Default\n// @PURPOSE: Contract-focused unit tests for Breadcrumbs.svelte logic and UX annotations\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [Breadcrumbs]\n\nimport { describe, it, expect } from 'vitest';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst COMPONENT_PATH = path.resolve(\n process.cwd(),\n 'src/lib/components/layout/Breadcrumbs.svelte'\n);\n\nfunction getBreadcrumbs(pathname, maxVisible = 3) {\n const segments = pathname.split('/').filter(Boolean);\n const allItems = [{ label: 'Home', path: '/' }];\n\n let currentPath = '';\n segments.forEach((segment, index) => {\n currentPath += `/${segment}`;\n const label = formatBreadcrumbLabel(segment);\n allItems.push({\n label,\n path: currentPath,\n isLast: index === segments.length - 1\n });\n });\n\n if (allItems.length > maxVisible) {\n const firstItem = allItems[0];\n const itemsToShow = [];\n itemsToShow.push(firstItem);\n itemsToShow.push({ isEllipsis: true });\n\n const startFromIndex = allItems.length - (maxVisible - 1);\n for (let i = startFromIndex; i < allItems.length; i++) {\n itemsToShow.push(allItems[i]);\n }\n return itemsToShow;\n }\n\n return allItems;\n}\n\nfunction formatBreadcrumbLabel(segment) {\n const specialCases = {\n dashboards: 'Dashboards',\n datasets: 'Datasets',\n storage: 'Storage',\n admin: 'Admin',\n settings: 'Settings',\n git: 'Git'\n };\n\n if (specialCases[segment]) {\n return specialCases[segment];\n }\n\n return segment\n .split('-')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\ndescribe('Breadcrumbs Component Contract & Logic', () => {\n it('contains required UX tags and current dependency contract', () => {\n const source = fs.readFileSync(COMPONENT_PATH, 'utf-8');\n\n expect(source).toContain('@UX_STATE: Idle');\n expect(source).toContain('@UX_FEEDBACK');\n expect(source).toContain('@UX_RECOVERY');\n expect(source).toContain('@RELATION: BINDS_TO -> [i18n]');\n expect(source).toContain('import { page } from \"$app/state\"');\n });\n\n it('returns Home for root path (Short-Path UX state)', () => {\n const result = getBreadcrumbs('/', 3);\n\n expect(result).toEqual([{ label: 'Home', path: '/' }]);\n });\n\n it('maps known segments to expected labels', () => {\n expect(formatBreadcrumbLabel('dashboards')).toBe('Dashboards');\n expect(formatBreadcrumbLabel('datasets')).toBe('Datasets');\n expect(formatBreadcrumbLabel('settings')).toBe('Settings');\n });\n\n it('formats unknown kebab-case segment to title case', () => {\n expect(formatBreadcrumbLabel('data-quality-rules')).toBe('Data Quality Rules');\n });\n\n it('truncates long paths with ellipsis and keeps tail segments', () => {\n const result = getBreadcrumbs('/dashboards/segment-a/segment-b/segment-c', 3);\n\n expect(result[0]).toEqual({ label: 'Home', path: '/' });\n expect(result[1]).toEqual({ isEllipsis: true });\n const lastItem = result[result.length - 1];\n expect('label' in lastItem && lastItem.label).toBe('Segment C');\n expect(result.length).toBe(4);\n });\n});\n\n// #endregion BreadcrumbsContractTest:Module\n" @@ -77131,8 +67585,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for Sidebar.svelte component", "LAYER": "UI", - "PURPOSE": "Unit tests for Sidebar.svelte component", "UX_STATE": "Loading -> Default" }, "relations": [ @@ -77143,50 +67597,7 @@ "target_ref": "[Sidebar]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 SidebarStoreTest:Module [TYPE Function]\n// @UX_STATE: Loading -> Default\n// @PURPOSE: Unit tests for Sidebar.svelte component\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [Sidebar]\n\nimport { describe, it, expect, beforeEach, vi } from 'vitest';\n\n// Mock browser environment\nvi.mock('$app/environment', () => ({\n browser: true\n}));\n\n// Mock localStorage\nconst localStorageMock = (() => {\n let store = {};\n return {\n getItem: vi.fn((key) => store[key] || null),\n setItem: vi.fn((key, value) => { store[key] = value; }),\n clear: () => { store = {}; }\n };\n})();\n\nObject.defineProperty(global, 'localStorage', { value: localStorageMock });\n\n// Mock $app/stores PageStore\nvi.mock('$app/stores', () => ({\n page: {\n subscribe: vi.fn((callback) => {\n callback({ url: { pathname: '/dashboards' } });\n return vi.fn();\n })\n }\n}));\n\ndescribe('Sidebar Component', () => {\n beforeEach(() => {\n vi.clearAllMocks();\n localStorageMock.clear();\n vi.resetModules();\n });\n\n describe('Store State', () => {\n it('should have correct initial expanded state', async () => {\n const { sidebarStore } = await import('$lib/stores/sidebar.js');\n \n let state = null;\n const unsubscribe = sidebarStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isExpanded).toBe(true);\n });\n\n it('should toggle sidebar expansion', async () => {\n const { sidebarStore, toggleSidebar } = await import('$lib/stores/sidebar.js');\n \n let state = null;\n const unsub1 = sidebarStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isExpanded).toBe(true);\n \n toggleSidebar();\n \n const unsub2 = sidebarStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isExpanded).toBe(false);\n });\n\n it('should track mobile open state', async () => {\n const { sidebarStore, setMobileOpen } = await import('$lib/stores/sidebar.js');\n \n setMobileOpen(true);\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n expect(state.isMobileOpen).toBe(true);\n });\n\n it('should close mobile sidebar', async () => {\n const { sidebarStore, closeMobile } = await import('$lib/stores/sidebar.js');\n \n // First open mobile\n sidebarStore.update(s => ({ ...s, isMobileOpen: true }));\n \n let state = null;\n const unsub1 = sidebarStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isMobileOpen).toBe(true);\n \n closeMobile();\n \n const unsub2 = sidebarStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isMobileOpen).toBe(false);\n });\n\n it('should toggle mobile sidebar', async () => {\n const { sidebarStore, toggleMobileSidebar } = await import('$lib/stores/sidebar.js');\n \n toggleMobileSidebar();\n \n let state = null;\n const unsub1 = sidebarStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isMobileOpen).toBe(true);\n \n toggleMobileSidebar();\n \n const unsub2 = sidebarStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isMobileOpen).toBe(false);\n });\n\n it('should set active category and item', async () => {\n const { sidebarStore, setActiveItem } = await import('$lib/stores/sidebar.js');\n \n setActiveItem('datasets', '/datasets');\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n expect(state.activeCategory).toBe('datasets');\n expect(state.activeItem).toBe('/datasets');\n });\n });\n\n describe('Persistence', () => {\n it('should save state to localStorage on toggle', async () => {\n const { toggleSidebar } = await import('$lib/stores/sidebar.js');\n \n toggleSidebar();\n \n expect(localStorageMock.setItem).toHaveBeenCalled();\n });\n\n it('should load state from localStorage', async () => {\n localStorageMock.getItem.mockReturnValue(JSON.stringify({\n isExpanded: false,\n activeCategory: 'storage',\n activeItem: '/storage',\n isMobileOpen: true\n }));\n \n vi.resetModules();\n const { sidebarStore } = await import('$lib/stores/sidebar.js');\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n expect(state.isExpanded).toBe(false);\n expect(state.activeCategory).toBe('storage');\n expect(state.isMobileOpen).toBe(true);\n });\n });\n\n describe('UX States', () => {\n it('should support expanded state', async () => {\n const { sidebarStore } = await import('$lib/stores/sidebar.js');\n \n sidebarStore.update(s => ({ ...s, isExpanded: true }));\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n \n // Expanded state means isExpanded = true\n expect(state.isExpanded).toBe(true);\n });\n\n it('should support collapsed state', async () => {\n const { sidebarStore } = await import('$lib/stores/sidebar.js');\n \n sidebarStore.update(s => ({ ...s, isExpanded: false }));\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n \n // Collapsed state means isExpanded = false\n expect(state.isExpanded).toBe(false);\n });\n\n it('should support mobile overlay state', async () => {\n const { sidebarStore } = await import('$lib/stores/sidebar.js');\n \n sidebarStore.update(s => ({ ...s, isMobileOpen: true }));\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n \n expect(state.isMobileOpen).toBe(true);\n });\n });\n\n describe('Category Navigation', () => {\n beforeEach(() => {\n // Clear localStorage before category tests to ensure clean state\n localStorage.clear();\n });\n \n it('should have default active category dashboards', async () => {\n // Note: This test may fail if localStorage has stored state from previous tests\n // The store loads from localStorage on initialization, so we test the setter instead\n const { sidebarStore, setActiveItem } = await import('$lib/stores/sidebar.js');\n \n // Set to default explicitly to test the setActiveItem function works\n setActiveItem('dashboards', '/dashboards');\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n \n expect(state.activeCategory).toBe('dashboards');\n expect(state.activeItem).toBe('/dashboards');\n });\n\n it('should change active category', async () => {\n const { setActiveItem } = await import('$lib/stores/sidebar.js');\n \n setActiveItem('admin', '/settings');\n \n const { sidebarStore } = await import('$lib/stores/sidebar.js');\n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n \n expect(state.activeCategory).toBe('admin');\n expect(state.activeItem).toBe('/settings');\n });\n });\n});\n\n// #endregion SidebarStoreTest:Module\n" @@ -77200,8 +67611,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for TaskDrawer.svelte component", "LAYER": "UI", - "PURPOSE": "Unit tests for TaskDrawer.svelte component", "UX_STATE": "Loading -> Default" }, "relations": [ @@ -77212,50 +67623,7 @@ "target_ref": "[TaskDrawer]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 TaskDrawerStoreTest:Module [TYPE Function]\n// @UX_STATE: Loading -> Default\n// @PURPOSE: Unit tests for TaskDrawer.svelte component\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [TaskDrawer]\n\nimport { describe, it, expect, beforeEach, vi } from 'vitest';\n\ndescribe('TaskDrawer Component Store Tests', () => {\n beforeEach(() => {\n vi.resetModules();\n });\n\n describe('Initial State', () => {\n it('should have isOpen false initially', async () => {\n const { taskDrawerStore } = await import('$lib/stores/taskDrawer.js');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isOpen).toBe(false);\n });\n\n it('should have null activeTaskId initially', async () => {\n const { taskDrawerStore } = await import('$lib/stores/taskDrawer.js');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.activeTaskId).toBeNull();\n });\n\n it('should have empty resourceTaskMap initially', async () => {\n const { taskDrawerStore } = await import('$lib/stores/taskDrawer.js');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.resourceTaskMap).toEqual({});\n });\n });\n\n describe('UX States - Open/Close', () => {\n it('should open drawer for specific task', async () => {\n const { taskDrawerStore, openDrawerForTask } = await import('$lib/stores/taskDrawer.js');\n \n openDrawerForTask('task-123');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isOpen).toBe(true);\n expect(state.activeTaskId).toBe('task-123');\n });\n\n it('should open drawer in list mode', async () => {\n const { taskDrawerStore, openDrawer } = await import('$lib/stores/taskDrawer.js');\n \n openDrawer();\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isOpen).toBe(true);\n expect(state.activeTaskId).toBeNull();\n });\n\n it('should close drawer', async () => {\n const { taskDrawerStore, openDrawerForTask, closeDrawer } = await import('$lib/stores/taskDrawer.js');\n \n // First open drawer\n openDrawerForTask('task-123');\n \n let state = null;\n const unsub1 = taskDrawerStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isOpen).toBe(true);\n \n closeDrawer();\n \n const unsub2 = taskDrawerStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isOpen).toBe(false);\n expect(state.activeTaskId).toBeNull();\n });\n });\n\n describe('Resource-Task Mapping', () => {\n it('should update resource-task mapping', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n \n updateResourceTask('dashboard-1', 'task-123', 'RUNNING');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.resourceTaskMap['dashboard-1']).toEqual({\n taskId: 'task-123',\n status: 'RUNNING'\n });\n });\n\n it('should remove mapping on SUCCESS status', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n \n // First add a running task\n updateResourceTask('dashboard-1', 'task-123', 'RUNNING');\n \n let state = null;\n const unsub1 = taskDrawerStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.resourceTaskMap['dashboard-1']).toBeDefined();\n \n // Complete the task\n updateResourceTask('dashboard-1', 'task-123', 'SUCCESS');\n \n const unsub2 = taskDrawerStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.resourceTaskMap['dashboard-1']).toBeUndefined();\n });\n\n it('should remove mapping on ERROR status', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n \n updateResourceTask('dataset-1', 'task-456', 'RUNNING');\n \n let state = null;\n const unsub1 = taskDrawerStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.resourceTaskMap['dataset-1']).toBeDefined();\n \n // Error the task\n updateResourceTask('dataset-1', 'task-456', 'ERROR');\n \n const unsub2 = taskDrawerStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.resourceTaskMap['dataset-1']).toBeUndefined();\n });\n\n it('should remove mapping on IDLE status', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n \n updateResourceTask('storage-1', 'task-789', 'RUNNING');\n \n let state = null;\n const unsub1 = taskDrawerStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.resourceTaskMap['storage-1']).toBeDefined();\n \n // Set to IDLE\n updateResourceTask('storage-1', 'task-789', 'IDLE');\n \n const unsub2 = taskDrawerStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.resourceTaskMap['storage-1']).toBeUndefined();\n });\n\n it('should keep mapping for WAITING_INPUT status', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n \n updateResourceTask('dashboard-1', 'task-789', 'WAITING_INPUT');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.resourceTaskMap['dashboard-1']).toEqual({\n taskId: 'task-789',\n status: 'WAITING_INPUT'\n });\n });\n\n it('should keep mapping for RUNNING status', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n \n updateResourceTask('dashboard-1', 'task-abc', 'RUNNING');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.resourceTaskMap['dashboard-1']).toEqual({\n taskId: 'task-abc',\n status: 'RUNNING'\n });\n });\n });\n\n describe('Task Retrieval', () => {\n it('should get task for resource', async () => {\n const { updateResourceTask, getTaskForResource } = await import('$lib/stores/taskDrawer.js');\n \n updateResourceTask('dashboard-1', 'task-123', 'RUNNING');\n \n const taskInfo = getTaskForResource('dashboard-1');\n expect(taskInfo).toEqual({\n taskId: 'task-123',\n status: 'RUNNING'\n });\n });\n\n it('should return null for resource without task', async () => {\n const { getTaskForResource } = await import('$lib/stores/taskDrawer.js');\n \n const taskInfo = getTaskForResource('non-existent');\n expect(taskInfo).toBeNull();\n });\n });\n\n describe('Multiple Resources', () => {\n it('should handle multiple resource-task mappings', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n \n updateResourceTask('dashboard-1', 'task-1', 'RUNNING');\n updateResourceTask('dashboard-2', 'task-2', 'RUNNING');\n updateResourceTask('dataset-1', 'task-3', 'WAITING_INPUT');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(Object.keys(state.resourceTaskMap).length).toBe(3);\n });\n\n it('should update existing mapping', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n \n updateResourceTask('dashboard-1', 'task-1', 'RUNNING');\n updateResourceTask('dashboard-1', 'task-2', 'SUCCESS');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n // Should be removed due to SUCCESS status\n expect(state.resourceTaskMap['dashboard-1']).toBeUndefined();\n });\n });\n});\n\n// #endregion TaskDrawerStoreTest:Module\n" @@ -77269,8 +67637,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for TopNavbar.svelte component", "LAYER": "UI", - "PURPOSE": "Unit tests for TopNavbar.svelte component", "UX_STATE": "Loading -> Default" }, "relations": [ @@ -77281,50 +67649,7 @@ "target_ref": "[TopNavbar]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 TopNavbarStoreTest:Module [TYPE Function]\n// @UX_STATE: Loading -> Default\n// @PURPOSE: Unit tests for TopNavbar.svelte component\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [TopNavbar]\n\nimport { describe, it, expect, beforeEach, vi } from 'vitest';\n\n// Mock dependencies\nvi.mock('$app/environment', () => ({\n browser: true\n}));\n\nvi.mock('$app/stores', () => ({\n page: {\n subscribe: vi.fn((callback) => {\n callback({ url: { pathname: '/dashboards' } });\n return vi.fn();\n })\n }\n}));\n\ndescribe('TopNavbar Component Store Tests', () => {\n beforeEach(() => {\n vi.resetModules();\n });\n\n describe('Sidebar Store Integration', () => {\n it('should read isExpanded from sidebarStore', async () => {\n const { sidebarStore } = await import('$lib/stores/sidebar.js');\n \n let state = null;\n const unsubscribe = sidebarStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isExpanded).toBe(true);\n });\n\n it('should toggle sidebar via toggleMobileSidebar', async () => {\n const { sidebarStore, toggleMobileSidebar } = await import('$lib/stores/sidebar.js');\n \n let state = null;\n const unsub1 = sidebarStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isMobileOpen).toBe(false);\n \n toggleMobileSidebar();\n \n const unsub2 = sidebarStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isMobileOpen).toBe(true);\n });\n });\n\n describe('Activity Store Integration', () => {\n it('should have zero activeCount initially', async () => {\n const { activityStore } = await import('$lib/stores/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 });\n\n it('should count RUNNING tasks as active', async () => {\n const { updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n const { activityStore } = await import('$lib/stores/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('$lib/stores/taskDrawer.js');\n const { activityStore } = await import('$lib/stores/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 WAITING_INPUT as active', async () => {\n const { updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n const { activityStore } = await import('$lib/stores/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\n describe('Task Drawer Integration', () => {\n it('should open drawer for specific task', async () => {\n const { taskDrawerStore, openDrawerForTask } = await import('$lib/stores/taskDrawer.js');\n \n openDrawerForTask('task-123');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isOpen).toBe(true);\n expect(state.activeTaskId).toBe('task-123');\n });\n\n it('should open drawer in list mode', async () => {\n const { taskDrawerStore, openDrawer } = await import('$lib/stores/taskDrawer.js');\n \n openDrawer();\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isOpen).toBe(true);\n expect(state.activeTaskId).toBeNull();\n });\n\n it('should close drawer', async () => {\n const { taskDrawerStore, openDrawerForTask, closeDrawer } = await import('$lib/stores/taskDrawer.js');\n \n // First open drawer\n openDrawerForTask('task-123');\n \n let state = null;\n const unsub1 = taskDrawerStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isOpen).toBe(true);\n \n closeDrawer();\n \n const unsub2 = taskDrawerStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isOpen).toBe(false);\n });\n });\n\n describe('UX States', () => {\n it('should support activity badge with count > 0', async () => {\n const { updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n const { activityStore } = await import('$lib/stores/activity.js');\n \n updateResourceTask('dashboard-1', 'task-1', 'RUNNING');\n updateResourceTask('dashboard-2', 'task-2', 'RUNNING');\n \n let state = null;\n const unsubscribe = activityStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.activeCount).toBe(2);\n expect(state.activeCount).toBeGreaterThan(0);\n });\n\n it('should show 9+ for counts exceeding 9', async () => {\n const { updateResourceTask } = await import('$lib/stores/taskDrawer.js');\n const { activityStore } = await import('$lib/stores/activity.js');\n \n // Add 10 running tasks\n for (let i = 0; i < 10; i++) {\n updateResourceTask(`resource-${i}`, `task-${i}`, 'RUNNING');\n }\n \n let state = null;\n const unsubscribe = activityStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.activeCount).toBe(10);\n });\n });\n});\n\n// #endregion TopNavbarStoreTest:Module\n" @@ -77338,9 +67663,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build sidebar navigation sections and categories filtered by user permissions and feature flags.", "INVARIANT": "Admin role can access all categories and subitems through permission utility.", "LAYER": "UI", - "PURPOSE": "Build sidebar navigation sections and categories filtered by user permissions and feature flags.", "SEMANTICS": [ "navigation", "sidebar", @@ -77363,30 +67688,7 @@ "target_ref": "[Sidebar]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region SidebarNavigation:Module [TYPE Function]\n// @SEMANTICS: navigation, sidebar, rbac, menu, filtering\n// @PURPOSE: Build sidebar navigation sections and categories filtered by user permissions and feature flags.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [Permissions]\n// @RELATION: BINDS_TO -> [Sidebar]\n// @INVARIANT: Admin role can access all categories and subitems through permission utility.\n\nimport { hasPermission } from \"$lib/auth/permissions.js\";\n\n// #region isItemAllowed:Function [TYPE Function]\n// @PURPOSE: Check whether a single menu node can be shown for a given user.\n// @PRE: item can contain optional requiredPermission/requiredAction.\n// @POST: Returns true when no permission is required or permission check passes.\nfunction isItemAllowed(user, item) {\n if (!item?.requiredPermission) return true;\n return hasPermission(\n user,\n item.requiredPermission,\n item.requiredAction || \"READ\",\n );\n}\n// #endregion isItemAllowed:Function\n\n// #region isFeatureEnabled:Function [TYPE Function]\nfunction isFeatureEnabled(item, features) {\n if (!item?.requiredFeature) return true;\n return features[item.requiredFeature] !== false;\n}\n// #endregion isFeatureEnabled:Function\n\n// #region buildSidebarSections:Function [TYPE Function]\n// @PURPOSE: Build translated sidebar sections with categories, filtered by RBAC permissions and feature flags.\n// @PRE: i18nState provides nav labels; user can be null; features default to {} (all enabled).\n// @POST: Returns only sections/categories/subitems available for provided user and enabled features.\nexport function buildSidebarSections(i18nState, user, features = {}) {\n const nav = i18nState?.nav || {};\n\n // ── Section 1: Resources ─────────────────────────────────\n const resources = {\n id: \"resources\",\n label: nav.section_resources,\n categories: [\n {\n id: \"dashboards\",\n label: nav.dashboards,\n icon: \"dashboard\",\n tone: \"from-sky-100 to-sky-200 text-sky-700 ring-sky-200\",\n path: \"/dashboards\",\n requiredPermission: \"plugin:migration\",\n requiredAction: \"READ\",\n subItems: [\n { label: nav.overview, path: \"/dashboards\", requiredPermission: \"plugin:migration\", requiredAction: \"READ\" },\n { label: nav.health_center, path: \"/dashboards/health\", requiredPermission: \"plugin:migration\", requiredAction: \"READ\", requiredFeature: \"health_monitor\" },\n ],\n },\n {\n id: \"datasets\",\n label: nav.datasets,\n icon: \"database\",\n tone: \"from-emerald-100 to-emerald-200 text-emerald-700 ring-emerald-200\",\n path: \"/datasets\",\n requiredPermission: \"plugin:migration\",\n requiredAction: \"READ\",\n subItems: [\n { label: nav.all_datasets, path: \"/datasets\", requiredPermission: \"plugin:migration\", requiredAction: \"READ\" },\n { label: nav.dataset_review_workspace, path: \"/datasets/review\", requiredPermission: \"plugin:migration\", requiredAction: \"READ\", requiredFeature: \"dataset_review\" },\n ],\n },\n {\n id: \"migration\",\n label: nav.migration,\n icon: \"layers\",\n tone: \"from-orange-100 to-orange-200 text-orange-700 ring-orange-200\",\n path: \"/migration\",\n requiredPermission: \"plugin:migration\",\n requiredAction: \"READ\",\n subItems: [\n { label: nav.migration_overview || \"Overview\", path: \"/migration\", requiredPermission: \"plugin:migration\", requiredAction: \"READ\" },\n { label: nav.migration_mappings || \"Mappings\", path: \"/migration/mappings\", requiredPermission: \"plugin:migration\", requiredAction: \"READ\" },\n ],\n },\n ],\n };\n\n // ── Section 2: Operations ────────────────────────────────\n const operations = {\n id: \"operations\",\n label: nav.section_operations,\n categories: [\n {\n id: \"git\",\n label: nav.git,\n icon: \"activity\",\n tone: \"from-purple-100 to-purple-200 text-purple-700 ring-purple-200\",\n path: \"/git\",\n subItems: [\n { label: nav.git_repo_status || \"Repository Status\", path: \"/git\" },\n ],\n },\n {\n id: \"translation\",\n label: nav.translation,\n icon: \"translate\",\n tone: \"from-cyan-100 to-teal-100 text-teal-700 ring-teal-200\",\n path: \"/translate\",\n requiredPermission: \"translate.job\",\n requiredAction: \"VIEW\",\n subItems: [\n { label: nav.translation_jobs, path: \"/translate\", requiredPermission: \"translate.job\", requiredAction: \"VIEW\" },\n { label: nav.translation_dictionaries, path: \"/translate/dictionaries\", requiredPermission: \"translate.dictionary\", requiredAction: \"VIEW\" },\n { label: nav.translation_history, path: \"/translate/history\", requiredPermission: \"translate.job\", requiredAction: \"VIEW\" },\n ],\n },\n {\n id: \"validation\",\n label: nav.validation,\n icon: \"activity\",\n tone: \"from-amber-100 to-yellow-100 text-amber-700 ring-amber-200\",\n path: \"/validation\",\n requiredPermission: \"validation.task\",\n requiredAction: \"VIEW\",\n subItems: [\n { label: nav.validation_tasks, path: \"/validation\", requiredPermission: \"validation.task\", requiredAction: \"VIEW\" },\n { label: nav.validation_history, path: \"/validation/history\", requiredPermission: \"validation.run\", requiredAction: \"VIEW\" },\n ],\n },\n {\n id: \"reports\",\n label: nav.reports,\n icon: \"reports\",\n tone: \"from-violet-100 to-fuchsia-100 text-violet-700 ring-violet-200\",\n path: \"/reports\",\n requiredPermission: \"tasks\",\n requiredAction: \"READ\",\n subItems: [\n { label: nav.all_reports || \"All Reports\", path: \"/reports\", requiredPermission: \"tasks\", requiredAction: \"READ\" },\n ],\n },\n ],\n };\n\n // ── Section 3: System ────────────────────────────────────\n const system = {\n id: \"system\",\n label: nav.section_system,\n categories: [\n {\n id: \"tools\",\n label: nav.tools,\n icon: \"list\",\n tone: \"from-slate-100 to-slate-200 text-slate-700 ring-slate-200\",\n path: \"/tools/mapper\",\n subItems: [\n { label: nav.tools_mapper, path: \"/tools/mapper\" },\n { label: nav.tools_debug, path: \"/tools/debug\" },\n { label: nav.tools_storage, path: \"/tools/storage\" },\n { label: nav.tools_backups, path: \"/tools/backups\" },\n ],\n },\n {\n id: \"storage\",\n label: nav.storage,\n icon: \"storage\",\n tone: \"from-amber-100 to-amber-200 text-amber-800 ring-amber-200\",\n path: \"/storage\",\n requiredPermission: \"plugin:storage\",\n requiredAction: \"READ\",\n subItems: [\n { label: nav.repositories, path: \"/storage/repos\", requiredPermission: \"plugin:storage\", requiredAction: \"READ\" },\n ],\n },\n {\n id: \"admin\",\n label: nav.admin,\n icon: \"admin\",\n tone: \"from-rose-100 to-rose-200 text-rose-700 ring-rose-200\",\n path: \"/admin/users\",\n subItems: [\n { label: nav.admin_users, path: \"/admin/users\", requiredPermission: \"admin:users\", requiredAction: \"READ\" },\n { label: nav.admin_roles, path: \"/admin/roles\", requiredPermission: \"admin:roles\", requiredAction: \"READ\" },\n { label: nav.admin_settings, path: \"/admin/settings\", requiredPermission: \"admin:settings\", requiredAction: \"READ\" },\n { label: nav.admin_llm, path: \"/admin/settings/llm\", requiredPermission: \"admin:settings\", requiredAction: \"READ\" },\n ],\n },\n {\n id: \"maintenance\",\n label: nav.maintenance || \"Maintenance\",\n icon: \"activity\",\n tone: \"from-orange-100 to-orange-200 text-orange-700 ring-orange-200\",\n path: \"/maintenance\",\n requiredPermission: \"maintenance:write\",\n requiredAction: \"READ\",\n subItems: [\n { label: nav.maintenance || \"Maintenance\", path: \"/maintenance\", requiredPermission: \"maintenance:write\", requiredAction: \"READ\" },\n ],\n },\n ],\n };\n\n const allSections = [resources, operations, system];\n\n // Filter by permissions and features\n return allSections\n .map((section) => ({\n ...section,\n categories: section.categories\n .map((category) => {\n const visibleSubItems = (category.subItems || []).filter(\n (sub) => isItemAllowed(user, sub) && isFeatureEnabled(sub, features),\n );\n return { ...category, subItems: visibleSubItems };\n })\n .filter((category) => {\n if (!isItemAllowed(user, category)) return false;\n return Array.isArray(category.subItems) && category.subItems.length > 0;\n }),\n }))\n .filter((section) => section.categories.length > 0);\n}\n// #endregion buildSidebarSections:Function\n\n// ── Legacy adapter for backward compatibility ──────────────\n// @DEPRECATED Use buildSidebarSections instead. Returns flat category list for old consumers.\nexport function buildSidebarCategories(i18nState, user, features = {}) {\n const sections = buildSidebarSections(i18nState, user, features);\n return sections.flatMap((s) => s.categories);\n}\n// #endregion SidebarNavigation:Module\n" @@ -77400,9 +67702,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Check whether a single menu node can be shown for a given user.", "POST": "Returns true when no permission is required or permission check passes.", - "PRE": "item can contain optional requiredPermission/requiredAction.", - "PURPOSE": "Check whether a single menu node can be shown for a given user." + "PRE": "item can contain optional requiredPermission/requiredAction." }, "relations": [], "schema_warnings": [], @@ -77434,9 +67736,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build translated sidebar sections with categories, filtered by RBAC permissions and feature flags.", "POST": "Returns only sections/categories/subitems available for provided user and enabled features.", - "PRE": "i18nState provides nav labels; user can be null; features default to {} (all enabled).", - "PURPOSE": "Build translated sidebar sections with categories, filtered by RBAC permissions and feature flags." + "PRE": "i18nState provides nav labels; user can be null; features default to {} (all enabled)." }, "relations": [], "schema_warnings": [], @@ -77453,9 +67755,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Test UX states and transitions for ReportCard component", "INVARIANT": "Each test asserts at least one observable UX contract outcome.", "LAYER": "UI", - "PURPOSE": "Test UX states and transitions for ReportCard component", "SEMANTICS": [ "reports", "ux-tests", @@ -77477,50 +67779,7 @@ "target_ref": "[ReportCard]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE 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 ReportCardTest:Module [TYPE Function]\n// @SEMANTICS: reports, ux-tests, card, states, recovery\n// @PURPOSE: Test UX states and transitions for ReportCard component\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [ReportCard]\n// @INVARIANT: Each test asserts at least one observable UX contract outcome.\n// @TEST_CONTRACT: ReportCardInputProps -> ObservableUXOutput\n// @TEST_SCENARIO: ready_state_shows_summary_status_type -> Ready state renders summary/status/type labels.\n// @TEST_FIXTURE: valid_report_card -> INLINE_JSON\n// @TEST_EDGE: empty_report_object -> Missing fields use placeholders and fallback labels.\n// @TEST_EDGE: random_status -> Unknown status is rendered without crashing.\n// @TEST_EDGE: missing_optional_fields -> Partial report keeps component interactive and emits select.\n// @TEST_INVARIANT: report_card_state_is_observable -> VERIFIED_BY: [ready_state_shows_summary_status_type, empty_report_object, random_status]\n\nimport { describe, it, expect, vi } from 'vitest';\nimport { render, screen, fireEvent } from '@testing-library/svelte';\nimport ReportCard from '../ReportCard.svelte';\nimport { mixedTaskReports } from './fixtures/reports.fixtures.js';\n\n// Mock i18n\nvi.mock('$lib/i18n', () => ({\n t: {\n subscribe: (fn) => {\n fn({\n reports: {\n not_provided: 'Not provided',\n unknown_type: 'Other / Unknown Type',\n status_success: 'Success',\n status_failed: 'Failed',\n status_in_progress: 'In Progress',\n status_partial: 'Partial'\n }\n });\n return () => { };\n }\n },\n _: vi.fn((key) => key)\n}));\n\ndescribe('ReportCard UX Contract', () => {\n const mockReport = mixedTaskReports[0]; // Success report\n\n // @UX_STATE: Ready -> Card displays summary/status/type.\n it('should display summary, status and type in Ready state', () => {\n render(ReportCard, { report: mockReport, onselect: vi.fn() });\n expect(screen.getByText(mockReport.summary)).toBeDefined();\n // mockReport.status is \"success\", getStatusLabel(status) returns $t.reports?.status_success\n expect(screen.getByText('Success')).toBeDefined();\n // Profile label for llm_verification is 'LLM'\n expect(screen.getByText('LLM')).toBeDefined();\n });\n\n // @UX_FEEDBACK: Click on report emits select event.\n it('should emit select event on click', async () => {\n const onSelect = vi.fn();\n render(ReportCard, { report: mockReport, onselect: onSelect });\n\n const button = screen.getByRole('button');\n await fireEvent.click(button);\n\n expect(onSelect).toHaveBeenCalled();\n });\n\n // @UX_RECOVERY: Missing fields are rendered with explicit placeholder text.\n it('should render placeholders for missing fields', () => {\n const partialReport = { report_id: 'partial-1' };\n render(ReportCard, { report: partialReport, onselect: vi.fn() });\n\n // Check placeholders (using text from mocked $t)\n const placeholders = screen.getAllByText('Not provided');\n expect(placeholders.length).toBeGreaterThan(0);\n\n // Check fallback type (the profile itself returns 'reports.unknown_type' string which doesn't get translated by $t in the mock if it's returning the key)\n expect(screen.getByText('reports.unknown_type')).toBeDefined();\n });\n\n// @TEST_FIXTURE: valid_report_card -> INLINE_JSON\n it('should render valid_report_card correctly', () => {\n const validReportCard = {\n task_type: \"migration\",\n status: \"success\",\n summary: \"Test Summary\",\n updated_at: \"2024-01-01\"\n };\n render(ReportCard, { report: validReportCard, onselect: vi.fn() });\n\n expect(screen.getByText('Test Summary')).toBeDefined();\n expect(screen.getByText('Success')).toBeDefined();\n });\n\n// @TEST_EDGE: empty_report_object -> Missing fields use placeholders and fallback labels.\n it('should handle completely empty report object gracefully', () => {\n render(ReportCard, { report: {}, onselect: vi.fn() });\n const placeholders = screen.getAllByText('Not provided');\n expect(placeholders.length).toBeGreaterThan(0);\n });\n\n// @TEST_EDGE: random_status -> Unknown status is rendered without crashing.\n it('should render random status directly if no translation matches', () => {\n render(ReportCard, { report: { status: \"unknown_status_code\" }, onselect: vi.fn() });\n expect(screen.getByText('unknown_status_code')).toBeDefined();\n });\n});\n\n// #endregion ReportCardTest:Module\n" @@ -77534,9 +67793,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate detail-panel behavior for failed reports and recovery guidance visibility.", "INVARIANT": "Failed report detail exposes actionable next actions when available.", "LAYER": "UI (Tests)", - "PURPOSE": "Validate detail-panel behavior for failed reports and recovery guidance visibility.", "SEMANTICS": [ "tests", "reports", @@ -77560,28 +67819,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -77614,9 +67851,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Test UX states and recovery for ReportDetailPanel component", "INVARIANT": "Detail UX tests keep placeholder-safe rendering and recovery visibility verifiable.", "LAYER": "UI", - "PURPOSE": "Test UX states and recovery for ReportDetailPanel component", "SEMANTICS": [ "reports", "ux-tests", @@ -77633,30 +67870,7 @@ "target_ref": "[ReportDetailPanel]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region ReportDetailUxTest:Module [TYPE Function]\n// @SEMANTICS: reports, ux-tests, detail, diagnostics, recovery\n// @PURPOSE: Test UX states and recovery for ReportDetailPanel component\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [ReportDetailPanel]\n// @INVARIANT: Detail UX tests keep placeholder-safe rendering and recovery visibility verifiable.\n\nimport { describe, it, expect, vi } from 'vitest';\nimport { render, screen } from '@testing-library/svelte';\nimport ReportDetailPanel from '../ReportDetailPanel.svelte';\nimport { mixedTaskReports } from './fixtures/reports.fixtures.js';\n\n// Mock i18n\nvi.mock('$lib/i18n', () => ({\n t: {\n subscribe: (fn) => {\n fn({\n reports: {\n not_provided: 'Not provided',\n view_details: 'View details'\n }\n });\n return () => {};\n }\n }\n}));\n\ndescribe('ReportDetailPanel UX Contract', () => {\n const mockReport = mixedTaskReports[0];\n const mockDetail = {\n report: mockReport,\n timeline: [{ event: 'started', at: mockReport.started_at }],\n diagnostics: { note: 'All systems green' },\n next_actions: []\n };\n\n // @UX_STATE: Ready -> Report detail content visible.\n it('should display report details in Ready state', () => {\n render(ReportDetailPanel, { detail: mockDetail });\n \n expect(screen.getByText(mockReport.report_id)).toBeDefined();\n expect(screen.getByText(mockReport.summary)).toBeDefined();\n expect(screen.getByText(/All systems green/)).toBeDefined();\n });\n\n // @UX_RECOVERY: Failed/partial report shows next actions and placeholder-safe diagnostics.\n it('should show recovery guidance for failed reports', () => {\n const failedReport = mixedTaskReports.find(r => r.status === 'failed');\n const failedDetail = {\n report: failedReport,\n diagnostics: { error: 'Disk full' },\n next_actions: ['Free storage', 'Retry']\n };\n\n render(ReportDetailPanel, { detail: failedDetail });\n\n expect(screen.getByText('Free storage')).toBeDefined();\n expect(screen.getByText('Retry')).toBeDefined();\n });\n\n it('should render placeholders when no detail is provided', () => {\n render(ReportDetailPanel, { detail: null });\n \n // Should show \"Not provided\" (from mocked $t)\n const placeholders = screen.getAllByText('Not provided');\n expect(placeholders.length).toBeGreaterThan(0);\n });\n});\n\n// #endregion ReportDetailUxTest:Module\n" @@ -77670,9 +67884,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate report type profile mapping and unknown fallback behavior.", "INVARIANT": "Unknown task_type always resolves to the fallback profile.", "LAYER": "UI (Tests)", - "PURPOSE": "Validate report type profile mapping and unknown fallback behavior.", "SEMANTICS": [ "tests", "reports", @@ -77689,28 +67903,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -77743,8 +67935,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Guard test for report filter responsiveness on moderate in-memory dataset.", "LAYER": "UI (Tests)", - "PURPOSE": "Guard test for report filter responsiveness on moderate in-memory dataset.", "SEMANTICS": [ "tests", "reports", @@ -77761,28 +67953,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -77815,8 +67985,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Test ReportsList component iteration and event forwarding.", "LAYER": "UI", - "PURPOSE": "Test ReportsList component iteration and event forwarding.", "SEMANTICS": [ "reports", "list", @@ -77837,50 +68007,7 @@ "target_ref": "[ReportsList]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE 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 ReportsListTest:Module [TYPE Function]\n// @SEMANTICS: reports, list, ux-tests, events, iteration\n// @PURPOSE: Test ReportsList component iteration and event forwarding.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [ReportsList]\n// @TEST_CONTRACT: ReportsListProps -> rendered cards and forwarded select events\n// @TEST_SCENARIO: renders_report_cards_for_each_item -> Each report becomes one rendered selectable card.\n// @TEST_SCENARIO: renders_empty_list_container -> Empty input keeps stable container without child cards.\n// @TEST_SCENARIO: forwards_select_event -> Child click forwards select payload to parent listener.\n// @TEST_FIXTURE: reports_list_examples -> INLINE_JSON\n// @TEST_INVARIANT: report_iteration_and_select_contract -> VERIFIED_BY: [renders_report_cards_for_each_item, renders_empty_list_container, forwards_select_event]\n\nimport { describe, it, expect, vi } from 'vitest';\nimport { render, screen, fireEvent } from '@testing-library/svelte';\nimport ReportsList from '../ReportsList.svelte';\n\n// Mock i18n since ReportsList -> ReportCard -> i18n\nvi.mock('$lib/i18n', () => ({\n t: {\n subscribe: (fn) => {\n fn({\n reports: {\n not_provided: 'N/A',\n status_success: 'OK',\n status_failed: 'ERR'\n }\n });\n return () => { };\n }\n },\n _: vi.fn((key) => key)\n}));\n\ndescribe('ReportsList UX Contract', () => {\n const mockReports = [\n { report_id: '1', summary: 'Report One', task_type: 'migration', status: 'success' },\n { report_id: '2', summary: 'Report Two', task_type: 'backup', status: 'failed' }\n ];\n\n // @TEST_FIXTURE: renders_list -> INLINE_JSON\n it('should render multiple report cards and mark the selected one', () => {\n const { container } = render(ReportsList, { reports: mockReports, selectedReportId: '2' });\n\n expect(screen.getByText('Report One')).toBeDefined();\n expect(screen.getByText('Report Two')).toBeDefined();\n\n // Check selection logic - we look for a marker or class change in the child cards\n // In our simplified test, we check if screen find two buttons\n const buttons = screen.getAllByRole('button');\n expect(buttons.length).toBe(2);\n });\n\n // @TEST_EDGE: empty_list -> Empty reports array keeps container stable.\n // @TEST_INVARIANT: correct_iteration -> VERIFIED_BY: [renders_report_cards_for_each_item, renders_empty_list_container]\n it('should render empty container for empty list', () => {\n const { container } = render(ReportsList, { reports: [] });\n // Root div should have space-y-2 class but be empty\n const div = container.querySelector('.space-y-2');\n expect(div).toBeDefined();\n expect(div.children.length).toBe(0);\n });\n\n // @UX_FEEDBACK: Click on report emits select event.\n // @TEST_CONTRACT: Component_ReportsList -> Forwards select events from children.\n it('should forward select event when a report card is clicked', async () => {\n const onSelect = vi.fn();\n const { component } = render(ReportsList, { reports: [mockReports[0]], onselect: onSelect });\n\n const button = screen.getByRole('button');\n await fireEvent.click(button);\n\n expect(onSelect).toHaveBeenCalled();\n expect(onSelect.mock.calls[0][0].report.report_id).toBe('1');\n });\n});\n// #endregion ReportsListTest:Module\n" @@ -77894,9 +68021,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Integration-style checks for unified mixed-type reports rendering expectations.", "INVARIANT": "Mixed fixture includes all supported report types in one list.", "LAYER": "UI (Tests)", - "PURPOSE": "Integration-style checks for unified mixed-type reports rendering expectations.", "SEMANTICS": [ "tests", "reports", @@ -77920,28 +68047,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -77974,7 +68079,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Deterministic mapping from report task_type to visual profile with one fallback." + "BRIEF": "Deterministic mapping from report task_type to visual profile with one fallback." }, "relations": [], "schema_warnings": [], @@ -77991,9 +68096,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve visual profile by task type with guaranteed fallback.", "POST": "Returns one profile object.", "PRE": "taskType may be known/unknown/empty.", - "PURPOSE": "Resolve visual profile by task type with guaranteed fallback.", "TEST_CONTRACT": "GetReportTypeProfileModel ->" }, "relations": [], @@ -78011,9 +68116,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "API Key management tab — list, generate (one-time reveal), and revoke API keys.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "API Key management tab — list, generate (one-time reveal), and revoke API keys.", "UX_FEEDBACK": "Toast on generate success/error, revoke success/error", "UX_REACTIVITY": "Props -> $props(), LocalState -> $state(keys, isLoading, error)", "UX_RECOVERY": "Retry button on load error", @@ -78039,30 +68144,7 @@ "target_ref": "[ToastsModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "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
\n
\n

{$t.api_keys?.title || 'API Keys'}

\n

\n {$t.api_keys?.description || 'Manage API keys for service-to-service authentication.'}\n

\n
\n { showGenerateForm = !showGenerateForm; }}\n disabled={isLoading}\n >\n {$t.api_keys?.generate?.title || 'Generate New API Key'}\n \n
\n\n \n {#if showGenerateForm}\n
\n

{$t.api_keys?.generate?.title || 'Generate New API Key'}

\n\n \n
\n \n \n
\n\n \n
\n \n \n \n {#each environments as env (env.id)}\n \n {/each}\n \n
\n\n \n
\n \n
\n {#each AVAILABLE_PERMISSIONS as perm}\n \n {/each}\n
\n
\n\n \n
\n \n \n
\n\n \n
\n \n {#if isGenerating}\n \n \n \n \n {/if}\n {$t.api_keys?.generate?.generate || 'Generate Key'}\n \n \n {$t.api_keys?.generate?.cancel || 'Cancel'}\n \n
\n
\n {/if}\n\n \n {#if revealedKey}\n
\n
\n ⚠️\n
\n

\n {$t.api_keys?.reveal?.warning || 'This is the ONLY time the key will be shown. Copy it now.'}\n

\n
{revealedKey.raw_key}
\n
\n
\n
\n copyToClipboard(revealedKey.raw_key)}\n >\n {$t.api_keys?.reveal?.copy || 'Copy to Clipboard'}\n \n \n {$t.api_keys?.reveal?.dismiss || 'Dismiss'}\n \n
\n
\n {/if}\n\n \n {#if error}\n
\n {error}\n \n Retry\n \n
\n {:else if isLoading}\n \n
\n {#each [1, 2, 3] as _}\n
\n {/each}\n
\n {:else if keys.length === 0}\n \n
\n {$t.api_keys?.empty || 'No API keys configured.'}\n
\n {:else}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n {#each keys as key (key.id)}\n \n \n \n \n \n \n \n \n {/each}\n \n
\n {$t.api_keys?.table?.name || 'Name'}\n \n {$t.api_keys?.table?.prefix || 'Prefix'}\n \n {$t.api_keys?.table?.environment || 'Environment'}\n \n {$t.api_keys?.table?.permissions || 'Permissions'}\n \n {$t.api_keys?.table?.status || 'Status'}\n \n {$t.api_keys?.table?.actions || 'Actions'}\n
{key.name}{key.prefix}...{key.environment_id || '—'}\n
\n {#each key.permissions as perm}\n {perm}\n {/each}\n
\n
\n \n \n {key.active\n ? ($t.api_keys?.status?.active || 'Active')\n : ($t.api_keys?.status?.revoked || 'Revoked')}\n \n \n {#if key.active}\n confirmRevoke(key)}\n disabled={revokingId === key.id}\n >\n {#if revokingId === key.id}\n Revoking...\n {:else}\n ✕ {$t.api_keys?.revoke?.revoke || 'Revoke'}\n {/if}\n \n {:else}\n \n {/if}\n
\n
\n {/if}\n
\n\n" @@ -78076,8 +68158,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Component component: lib/components/translate/BulkCorrectionSidebar.svelte", "COMPLEXITY": 3, - "PURPOSE": "Component component: lib/components/translate/BulkCorrectionSidebar.svelte", "TYPE": "{'closed'|'collecting'|'reviewing'|'submitting'|'submitted'}", "UX_FEEDBACK": "Toast on success/error; count badge on toggle button", "UX_RECOVERY": "Remove individual items; retry submission", @@ -78131,9 +68213,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Modal dialog for bulk find-and-replace on translated values within a completed run.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Modal dialog for bulk find-and-replace on translated values within a completed run.", "TYPE": "{'closed'|'configuring'|'previewing'|'preview_error'|'confirming'|'applying'|'applied'|'apply_error'}", "UX_STATE": "apply_error -> Apply failed with error message" }, @@ -78146,28 +68228,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -78201,9 +68261,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Inline-editable cell for translation run results with edit-save-cancel UX and submit-to-dictionary flow.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Inline-editable cell for translation run results with edit-save-cancel UX and submit-to-dictionary flow.", "TYPE": "{'view'|'editing'|'saving'|'saved'|'submitting_to_dict'|'dict_submitted'|'error'}", "UX_STATE": "error -> Error state with retry option" }, @@ -78222,28 +68282,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -78277,8 +68315,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Component component: lib/components/translate/ScheduleConfig.svelte", "COMPLEXITY": 3, - "PURPOSE": "Component component: lib/components/translate/ScheduleConfig.svelte", "TYPE": "{'idle'|'editing'|'enabled'|'disabled'|'no_prior_run_warning'}", "UX_FEEDBACK": "Next-3-executions preview; toast on save/error", "UX_RECOVERY": "Enable/disable toggle; delete schedule", @@ -78326,8 +68364,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Подсказка о колонках целевой таблицы + кнопка \"Проверить схему\"." + "BRIEF": "Подсказка о колонках целевой таблицы + кнопка \"Проверить схему\".", + "COMPLEXITY": 3 }, "relations": [], "schema_warnings": [], @@ -78344,8 +68382,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Component component: lib/components/translate/TermCorrectionPopup.svelte", "COMPLEXITY": 3, - "PURPOSE": "Component component: lib/components/translate/TermCorrectionPopup.svelte", "TYPE": "{'closed'|'selecting'|'editing'|'submitting'|'conflict_detected'|'submitted'}", "UX_FEEDBACK": "Toast on success/error; conflict dialog with action buttons", "UX_RECOVERY": "Cancel button returns to previous state", @@ -78399,8 +68437,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Component component: lib/components/translate/TranslationMetricsDashboard.svelte", "COMPLEXITY": 3, - "PURPOSE": "Component component: lib/components/translate/TranslationMetricsDashboard.svelte", "TYPE": "{'loading'|'loaded'|'error'|'empty'}", "UX_FEEDBACK": "Spinner during load; card grid for totals; table for per-job breakdown", "UX_RECOVERY": "Retry button on error", @@ -78448,8 +68486,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Component component: lib/components/translate/TranslationPreview.svelte", "COMPLEXITY": 3, - "PURPOSE": "Component component: lib/components/translate/TranslationPreview.svelte", "TYPE": "{'idle'|'loading'|'preview_loaded'|'preview_error'|'accepted'|'stale_config'}", "UX_FEEDBACK": "spinner during preview; visual distinction for LLM vs edited translations; cost warning for large previews.", "UX_RECOVERY": "retry preview; re-fetch with updated config.", @@ -78503,8 +68541,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Persistent rich progress panel for active translation runs, rendered in root layout.", "COMPLEXITY": 3, - "PURPOSE": "Persistent rich progress panel for active translation runs, rendered in root layout.", "UX_FEEDBACK": "Rich stats during active run; compact auto-dismiss for terminal states", "UX_STATE": "cancelled -> Compact gray banner with auto-dismiss after 8s" }, @@ -78530,8 +68568,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Component component: lib/components/translate/TranslationRunProgress.svelte", "COMPLEXITY": 3, - "PURPOSE": "Component component: lib/components/translate/TranslationRunProgress.svelte", "TYPE": "{{ runId: string, onRetry?: () => void, onRetryInsert?: () => void, onComplete?: (statusData: any) => void }}", "UX_FEEDBACK": "progress bar with percentage; batch counter; per-phase counts; cancel button during running/inserting.", "UX_RECOVERY": "retry on failure states.", @@ -78585,8 +68623,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Component component: lib/components/translate/TranslationRunResult.svelte", "COMPLEXITY": 3, - "PURPOSE": "Component component: lib/components/translate/TranslationRunResult.svelte", "TYPE": "{'completed'|'partial'|'failed'|'insert_failed'}", "UX_FEEDBACK": "Tabular statistics; click to copy Superset query ID; collapsible SQL block.", "UX_RECOVERY": "Retry failed batches; retry insert.", @@ -78640,9 +68678,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Contract-focused unit tests for TargetSchemaHint.svelte component.", "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" }, @@ -78672,48 +68710,6 @@ ], "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", @@ -78729,7 +68725,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify component file exists." + "BRIEF": "Verify component file exists." }, "relations": [], "schema_warnings": [], @@ -78746,7 +68742,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Component contains required UX state tags." + "BRIEF": "Component contains required UX state tags." }, "relations": [], "schema_warnings": [], @@ -78763,7 +68759,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Component accepts required props." + "BRIEF": "Component accepts required props." }, "relations": [], "schema_warnings": [], @@ -78780,7 +68776,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Button disabled logic: canCheck derived checks all required props." + "BRIEF": "Button disabled logic: canCheck derived checks all required props." }, "relations": [], "schema_warnings": [], @@ -78797,7 +68793,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Idle state shows hint text and check button." + "BRIEF": "Idle state shows hint text and check button." }, "relations": [], "schema_warnings": [], @@ -78814,7 +68810,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Checking state shows spinner and disables button." + "BRIEF": "Checking state shows spinner and disables button." }, "relations": [], "schema_warnings": [], @@ -78831,7 +68827,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Complete state shows result with green/yellow/red indicators." + "BRIEF": "Complete state shows result with green/yellow/red indicators." }, "relations": [], "schema_warnings": [], @@ -78848,7 +68844,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Error state shows connection error message." + "BRIEF": "Error state shows connection error message." }, "relations": [], "schema_warnings": [], @@ -78865,7 +68861,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Component uses i18n _() for all user-facing strings with fallbacks." + "BRIEF": "Component uses i18n _() for all user-facing strings with fallbacks." }, "relations": [], "schema_warnings": [], @@ -78882,7 +68878,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Component uses AbortController for request cancellation." + "BRIEF": "Component uses AbortController for request cancellation." }, "relations": [], "schema_warnings": [], @@ -78899,9 +68895,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Contract-focused unit tests for BulkReplaceModal.svelte component.", "COMPLEXITY": 2, "LAYER": "Test", - "PURPOSE": "Contract-focused unit tests for BulkReplaceModal.svelte component.", "TEST_CONTRACT": "BulkReplaceModal -> configuring, preview, confirm, apply flow", "TEST_EDGE": "applied -> Success state" }, @@ -78931,48 +68927,6 @@ ], "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", @@ -78988,9 +68942,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Contract-focused unit tests for CorrectionCell.svelte component.", "COMPLEXITY": 2, "LAYER": "Test", - "PURPOSE": "Contract-focused unit tests for CorrectionCell.svelte component.", "TEST_CONTRACT": "CorrectionCell -> renders value, click-to-edit, save, submit-to-dictionary", "TEST_EDGE": "submit_with_context -> Submit payload includes context_data and usage_notes" }, @@ -79020,48 +68974,6 @@ ], "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", @@ -79077,7 +68989,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify component file exists and has required contracts" + "BRIEF": "Verify component file exists and has required contracts" }, "relations": [], "schema_warnings": [], @@ -79094,7 +69006,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Unit tests for translate API preview functions." + "BRIEF": "Unit tests for translate API preview functions." }, "relations": [], "schema_warnings": [], @@ -79111,7 +69023,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify fetchPreview calls postApi with correct endpoint and payload." + "BRIEF": "Verify fetchPreview calls postApi with correct endpoint and payload." }, "relations": [], "schema_warnings": [], @@ -79128,7 +69040,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify approveRow calls requestApi with correct action." + "BRIEF": "Verify approveRow calls requestApi with correct action." }, "relations": [], "schema_warnings": [], @@ -79145,7 +69057,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify editRow calls requestApi with edit action and translation." + "BRIEF": "Verify editRow calls requestApi with edit action and translation." }, "relations": [], "schema_warnings": [], @@ -79162,7 +69074,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify rejectRow calls requestApi with reject action." + "BRIEF": "Verify rejectRow calls requestApi with reject action." }, "relations": [], "schema_warnings": [], @@ -79179,7 +69091,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify acceptPreview calls postApi with correct endpoint." + "BRIEF": "Verify acceptPreview calls postApi with correct endpoint." }, "relations": [], "schema_warnings": [], @@ -79196,7 +69108,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify fetchPreviewRecords calls fetchApi with correct endpoint." + "BRIEF": "Verify fetchPreviewRecords calls fetchApi with correct endpoint." }, "relations": [], "schema_warnings": [], @@ -79213,7 +69125,7 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "PURPOSE": "Verify API errors are normalized consistently." + "BRIEF": "Verify API errors are normalized consistently." }, "relations": [], "schema_warnings": [], @@ -79230,8 +69142,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Centralized internationalization management using Svelte stores with Russian and English locale support persisted in LocalStorage." + "BRIEF": "Centralized internationalization management using Svelte stores with Russian and English locale support persisted in LocalStorage.", + "COMPLEXITY": 3 }, "relations": [ { @@ -79261,9 +69173,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Centralized internationalization management using Svelte stores.", "INVARIANT": "Persistence is handled via LocalStorage.", "LAYER": "Infra", - "PURPOSE": "Centralized internationalization management using Svelte stores.", "SEMANTICS": [ "i18n", "localization", @@ -79286,28 +69198,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -79340,7 +69230,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Holds the current active locale string.", + "BRIEF": "Holds the current active locale string.", "SIDE_EFFECT": "Writes to LocalStorage on change." }, "relations": [], @@ -79358,7 +69248,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Derived store providing the translation dictionary." + "BRIEF": "Derived store providing the translation dictionary." }, "relations": [ { @@ -79382,8 +69272,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Get translation by key path.", "PARAM": "key - Translation key path (e.g., 'nav.dashboard')", - "PURPOSE": "Get translation by key path.", "RETURNS": "Translation string or key if not found" }, "relations": [], @@ -79429,8 +69319,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Global Svelte writable stores for plugins, tasks, and UI page state management." + "BRIEF": "Global Svelte writable stores for plugins, tasks, and UI page state management.", + "COMPLEXITY": 3 }, "relations": [ { @@ -79454,8 +69344,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Global state management using Svelte stores.", "LAYER": "UI-State", - "PURPOSE": "Global state management using Svelte stores.", "SEMANTICS": [ "state", "stores", @@ -79473,28 +69363,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -79527,7 +69395,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Store for the list of available plugins." + "BRIEF": "Store for the list of available plugins." }, "relations": [], "schema_warnings": [], @@ -79544,7 +69412,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Store for the list of tasks." + "BRIEF": "Store for the list of tasks." }, "relations": [], "schema_warnings": [], @@ -79561,7 +69429,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Store for the currently selected plugin." + "BRIEF": "Store for the currently selected plugin." }, "relations": [], "schema_warnings": [], @@ -79578,7 +69446,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Store for the currently selected task." + "BRIEF": "Store for the currently selected task." }, "relations": [], "schema_warnings": [], @@ -79595,7 +69463,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Store for the current page." + "BRIEF": "Store for the current page." }, "relations": [], "schema_warnings": [], @@ -79612,7 +69480,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Store for the logs of the currently selected task." + "BRIEF": "Store for the logs of the currently selected task." }, "relations": [], "schema_warnings": [], @@ -79629,9 +69497,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches plugins from the API and updates the plugins store.", "POST": "plugins store is updated with data from the API.", - "PRE": "None.", - "PURPOSE": "Fetches plugins from the API and updates the plugins store." + "PRE": "None." }, "relations": [], "schema_warnings": [], @@ -79648,9 +69516,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches tasks from the API and updates the tasks store.", "POST": "tasks store is updated with data from the API.", - "PRE": "None.", - "PURPOSE": "Fetches tasks from the API and updates the tasks store." + "PRE": "None." }, "relations": [], "schema_warnings": [], @@ -79667,8 +69535,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unit tests for assistant chat store validating open/close/toggle, conversation binding, session context, and seed message state transitions." + "BRIEF": "Unit tests for assistant chat store validating open/close/toggle, conversation binding, session context, and seed message state transitions.", + "COMPLEXITY": 3 }, "relations": [ { @@ -79692,9 +69560,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Validate assistant chat store visibility and conversation binding transitions.", "INVARIANT": "Each test starts from default closed state.", "LAYER": "UI Tests", - "PURPOSE": "Validate assistant chat store visibility and conversation binding transitions.", "SEMANTICS": [ "test", "store", @@ -79712,28 +69580,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -79766,9 +69612,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Group store unit scenarios for assistant panel behavior.", "POST": "Open/close/toggle/conversation transitions are validated.", - "PRE": "Store can be reset to baseline state in beforeEach hook.", - "PURPOSE": "Group store unit scenarios for assistant panel behavior." + "PRE": "Store can be reset to baseline state in beforeEach hook." }, "relations": [ { @@ -79809,8 +69655,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "UI (Tests)", - "PURPOSE": "Mock for $env/static/public SvelteKit module in vitest" + "BRIEF": "Mock for $env/static/public SvelteKit module in vitest", + "LAYER": "UI (Tests)" }, "relations": [ { @@ -79821,28 +69667,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -79875,8 +69699,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Mock for $app/environment in vitest, supplying browser, dev, and building flags." + "BRIEF": "Mock for $app/environment in vitest, supplying browser, dev, and building flags.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -79893,8 +69717,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "UI (Tests)", - "PURPOSE": "Mock for $app/environment in tests" + "BRIEF": "Mock for $app/environment in tests", + "LAYER": "UI (Tests)" }, "relations": [ { @@ -79905,28 +69729,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -79959,8 +69761,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Mock for $app/navigation in vitest, supplying goto, push, replace, prefetch, and prefetchRoutes stubs." + "BRIEF": "Mock for $app/navigation in vitest, supplying goto, push, replace, prefetch, and prefetchRoutes stubs.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -79977,8 +69779,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Mock for $app/navigation in tests", "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.", - "PURPOSE": "Mock for $app/navigation in tests", "SEMANTICS": [ "mock", "navigation", @@ -80013,8 +69815,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Mock for $app/state page data in vitest route/component tests, supplying default params, route, URL, status, and data." + "BRIEF": "Mock for $app/state page data in vitest route/component tests, supplying default params, route, URL, status, and data.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -80031,33 +69833,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "UI Tests", - "PURPOSE": "Mock for AppState in vitest route/component tests." + "BRIEF": "Mock for AppState in vitest route/component tests.", + "LAYER": "UI Tests" }, "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -80107,8 +69887,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Mock for $app/stores in tests", "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.", - "PURPOSE": "Mock for $app/stores in tests", "SEMANTICS": [ "mock", "stores", @@ -80143,8 +69923,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Global vitest test setup with mocks for SvelteKit modules ($app/environment, $app/stores, $app/navigation, localStorage)." + "BRIEF": "Global vitest test setup with mocks for SvelteKit modules ($app/environment, $app/stores, $app/navigation, localStorage).", + "COMPLEXITY": 3 }, "relations": [ { @@ -80180,8 +69960,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Global test setup with mocks for SvelteKit modules", "LAYER": "UI", - "PURPOSE": "Global test setup with mocks for SvelteKit modules", "UX_STATE": "Idle -> Global test environment exposes stable mocked browser services." }, "relations": [ @@ -80204,50 +69984,7 @@ "target_ref": "[EnvironmentMock]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 setupTests:Module [TYPE Function]\n// @UX_STATE: Idle -> Global test environment exposes stable mocked browser services.\n// @RELATION: DEPENDS_ON -> [StoresMock]\n// @RELATION: DEPENDS_ON -> [NavigationMock]\n// @RELATION: DEPENDS_ON -> [EnvironmentMock]\n// @PURPOSE: Global test setup with mocks for SvelteKit modules\n// @LAYER: UI\n\nimport { vi } from 'vitest';\n\n// Mock $app/environment\nvi.mock('$app/environment', () => ({\n browser: true,\n dev: true,\n building: false\n}));\n\n// Mock $app/stores\nvi.mock('$app/stores', () => {\n const { writable } = require('svelte/store');\n return {\n page: writable({ url: new URL('http://localhost'), params: {}, route: { id: 'test' } }),\n navigating: writable(null),\n updated: { check: vi.fn(), subscribe: writable(false).subscribe }\n };\n});\n\n// Mock $app/navigation\nvi.mock('$app/navigation', () => ({\n goto: vi.fn(),\n push: vi.fn(),\n replace: vi.fn(),\n prefetch: vi.fn(),\n prefetchRoutes: vi.fn()\n}));\n\n// Mock localStorage\nconst localStorageMock = (() => {\n let store = {};\n return {\n getItem: vi.fn((key) => store[key] || null),\n setItem: vi.fn((key, value) => { store[key] = value; }),\n removeItem: vi.fn((key) => { delete store[key]; }),\n clear: () => { store = {}; },\n get length() { return Object.keys(store).length; },\n key: vi.fn((i) => Object.keys(store)[i] || null)\n };\n})();\n\nObject.defineProperty(global, 'localStorage', { value: localStorageMock });\nObject.defineProperty(global, 'sessionStorage', { value: localStorageMock });\n\n// Mock console.log to reduce noise in tests\nconst originalLog = console.log;\nconsole.log = vi.fn((...args) => {\n // Keep activity store and task drawer logs for test output\n const firstArg = args[0];\n if (typeof firstArg === 'string' && \n (firstArg.includes('[activityStore]') || \n firstArg.includes('[taskDrawer]') ||\n firstArg.includes('[SidebarStore]'))) {\n originalLog.apply(console, args);\n }\n});\n\n// #endregion setupTests:Module\n" @@ -80261,8 +69998,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unit tests for sidebar store validating expansion toggles, active item selection, and mobile open/close transitions." + "BRIEF": "Unit tests for sidebar store validating expansion toggles, active item selection, and mobile open/close transitions.", + "COMPLEXITY": 3 }, "relations": [ { @@ -80286,9 +70023,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for sidebar store", "INVARIANT": "Sidebar store transitions must be deterministic across desktop/mobile toggles.", "LAYER": "Domain (Tests)", - "PURPOSE": "Unit tests for sidebar store", "SEMANTICS": [ "sidebar", "store", @@ -80306,28 +70043,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -80360,9 +70075,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verify initial sidebar store values when no persisted state is available.", "POST": "Default state is { isExpanded: true, activeCategory: 'dashboards', activeItem: '/dashboards', isMobileOpen: false }", "PRE": "No localStorage state", - "PURPOSE": "Verify initial sidebar store values when no persisted state is available.", "TEST": "Store initializes with default values" }, "relations": [], @@ -80387,9 +70102,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verify desktop sidebar expansion toggles deterministically.", "POST": "isExpanded is toggled from previous value", "PRE": "Store is initialized", - "PURPOSE": "Verify desktop sidebar expansion toggles deterministically.", "TEST": "toggleSidebar toggles isExpanded state" }, "relations": [], @@ -80414,9 +70129,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verify active-category updates remain deterministic after item selection.", "POST": "activeCategory and activeItem are updated", "PRE": "Store is initialized", - "PURPOSE": "Verify active-category updates remain deterministic after item selection.", "TEST": "setActiveItem updates activeCategory and activeItem" }, "relations": [], @@ -80441,9 +70156,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Verify mobile sidebar helpers update open-state transitions predictably.", "POST": "isMobileOpen is correctly updated", "PRE": "Store is initialized", - "PURPOSE": "Verify mobile sidebar helpers update open-state transitions predictably.", "TEST": "Mobile functions correctly update isMobileOpen" }, "relations": [], @@ -80468,8 +70183,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unit tests for task drawer store validating open/close, preference-aware opening, resource task mapping, and status-driven cleanup." + "BRIEF": "Unit tests for task drawer store validating open/close, preference-aware opening, resource task mapping, and status-driven cleanup.", + "COMPLEXITY": 3 }, "relations": [ { @@ -80493,8 +70208,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unit tests validating activity store derived count and recent task tracking behavior." + "BRIEF": "Unit tests validating activity store derived count and recent task tracking behavior.", + "COMPLEXITY": 3 }, "relations": [ { @@ -80524,7 +70239,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Unit tests for activity store" + "BRIEF": "Unit tests for activity store" }, "relations": [ { @@ -80554,8 +70269,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unit tests for dataset review session store: session set/reset, loading, error, dirty flag, and patch operations." + "BRIEF": "Unit tests for dataset review session store: session set/reset, loading, error, dirty flag, and patch operations.", + "COMPLEXITY": 3 }, "relations": [ { @@ -80579,8 +70294,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for dataset review session store.", "LAYER": "UI", - "PURPOSE": "Unit tests for dataset review session store.", "SEMANTICS": [ "dataset-review", "store", @@ -80597,50 +70312,7 @@ "target_ref": "[datasetReviewSession]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 DatasetReviewSessionStoreTests:Module [TYPE Function]\n// @SEMANTICS: dataset-review, store, session, tests\n// @PURPOSE: Unit tests for dataset review session store.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [datasetReviewSession]\n// @UX_STATE: Idle -> Store helpers are exercised without asynchronous UI transitions.\n\nimport { describe, it, expect, beforeEach, vi } from 'vitest';\n\ndescribe('datasetReviewSession store', () => {\n beforeEach(async () => {\n vi.resetModules();\n });\n\n it('should have correct initial state', async () => {\n const { datasetReviewSessionStore } = await import('../datasetReviewSession.js');\n \n let state = null;\n const unsubscribe = datasetReviewSessionStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.session).toBeNull();\n expect(state.isLoading).toBe(false);\n expect(state.isSaving).toBe(false);\n expect(state.error).toBeNull();\n expect(state.isDirty).toBe(false);\n });\n\n it('should set session data', async () => {\n const { datasetReviewSessionStore, setSession } = await import('../datasetReviewSession.js');\n const mockSession = { session_id: 's1', user_id: 'u1' };\n \n setSession(mockSession);\n \n let state = null;\n const unsubscribe = datasetReviewSessionStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.session).toEqual(mockSession);\n expect(state.isLoading).toBe(false);\n expect(state.error).toBeNull();\n expect(state.lastUpdated).toBeInstanceOf(Date);\n expect(state.isDirty).toBe(false);\n });\n\n it('should update loading state', async () => {\n const { datasetReviewSessionStore, setLoading } = await import('../datasetReviewSession.js');\n \n setLoading(true);\n \n let state = null;\n const unsubscribe = datasetReviewSessionStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isLoading).toBe(true);\n });\n\n it('should set error state', async () => {\n const { datasetReviewSessionStore, setError } = await import('../datasetReviewSession.js');\n \n setError('Failed to load');\n \n let state = null;\n const unsubscribe = datasetReviewSessionStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.error).toBe('Failed to load');\n expect(state.isLoading).toBe(false);\n });\n\n it('should mark as dirty', async () => {\n const { datasetReviewSessionStore, setDirty } = await import('../datasetReviewSession.js');\n \n setDirty(true);\n \n let state = null;\n const unsubscribe = datasetReviewSessionStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isDirty).toBe(true);\n });\n\n it('should patch session data and mark as dirty', async () => {\n const { datasetReviewSessionStore, setSession, patchSession } = await import('../datasetReviewSession.js');\n const mockSession = { session_id: 's1', readiness_state: 'empty' };\n \n setSession(mockSession);\n patchSession({ readiness_state: 'ready' });\n \n let state = null;\n const unsubscribe = datasetReviewSessionStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.session.readiness_state).toBe('ready');\n expect(state.isDirty).toBe(true);\n });\n\n it('should reset session', async () => {\n const { datasetReviewSessionStore, setSession, resetSession } = await import('../datasetReviewSession.js');\n setSession({ id: 's1' });\n \n resetSession();\n \n let state = null;\n const unsubscribe = datasetReviewSessionStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.session).toBeNull();\n });\n});\n\n// #endregion DatasetReviewSessionStoreTests:Module\n" @@ -80654,8 +70326,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unit tests for sidebar store validating initial state, toggle, navigation, mobile overlay, and localStorage persistence." + "BRIEF": "Unit tests for sidebar store validating initial state, toggle, navigation, mobile overlay, and localStorage persistence.", + "COMPLEXITY": 3 }, "relations": [ { @@ -80679,8 +70351,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "UI", - "PURPOSE": "Unit tests for sidebar store" + "BRIEF": "Unit tests for sidebar store", + "LAYER": "UI" }, "relations": [ { @@ -80690,30 +70362,7 @@ "target_ref": "[sidebar]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region SidebarIntegrationTest:Module [TYPE Function]\n// @PURPOSE: Unit tests for sidebar store\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [sidebar]\n\nimport { describe, it, expect, beforeEach, vi } from 'vitest';\n\n// Mock browser environment\nvi.mock('$app/environment', () => ({\n browser: true\n}));\n\n// Mock localStorage\nconst localStorageMock = (() => {\n let store = {};\n return {\n getItem: vi.fn((key) => store[key] || null),\n setItem: vi.fn((key, value) => { store[key] = value; }),\n clear: () => { store = {}; }\n };\n})();\n\nObject.defineProperty(global, 'localStorage', { value: localStorageMock });\n\ndescribe('sidebar store', () => {\n // Reset modules to get fresh store\n beforeEach(async () => {\n localStorageMock.clear();\n vi.clearAllMocks();\n vi.resetModules();\n });\n\n it('should have correct initial state', async () => {\n const { sidebarStore } = await import('../sidebar.js');\n \n let state = null;\n const unsubscribe = sidebarStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isExpanded).toBe(true);\n expect(state.activeCategory).toBe('dashboards');\n expect(state.activeItem).toBe('/dashboards');\n expect(state.isMobileOpen).toBe(false);\n });\n\n it('should toggle sidebar expansion', async () => {\n const { sidebarStore, toggleSidebar } = await import('../sidebar.js');\n \n let state = null;\n const unsub1 = sidebarStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isExpanded).toBe(true);\n \n toggleSidebar();\n \n const unsub2 = sidebarStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isExpanded).toBe(false);\n expect(localStorageMock.setItem).toHaveBeenCalled();\n });\n\n it('should set active category and item', async () => {\n const { sidebarStore, setActiveItem } = await import('../sidebar.js');\n \n setActiveItem('datasets', '/datasets');\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n expect(state.activeCategory).toBe('datasets');\n expect(state.activeItem).toBe('/datasets');\n expect(localStorageMock.setItem).toHaveBeenCalled();\n });\n\n it('should set mobile open state', async () => {\n const { sidebarStore, setMobileOpen } = await import('../sidebar.js');\n \n setMobileOpen(true);\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n expect(state.isMobileOpen).toBe(true);\n });\n\n it('should close mobile sidebar', async () => {\n const { sidebarStore, closeMobile } = await import('../sidebar.js');\n \n // First open mobile\n let state = null;\n sidebarStore.update(s => ({ ...s, isMobileOpen: true }));\n const unsub1 = sidebarStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isMobileOpen).toBe(true);\n \n closeMobile();\n \n const unsub2 = sidebarStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isMobileOpen).toBe(false);\n });\n\n it('should toggle mobile sidebar', async () => {\n const { sidebarStore, toggleMobileSidebar } = await import('../sidebar.js');\n \n toggleMobileSidebar();\n \n let state = null;\n const unsub1 = sidebarStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isMobileOpen).toBe(true);\n \n toggleMobileSidebar();\n \n const unsub2 = sidebarStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isMobileOpen).toBe(false);\n });\n\n it('should load state from localStorage', async () => {\n localStorageMock.getItem.mockReturnValue(JSON.stringify({\n isExpanded: false,\n activeCategory: 'storage',\n activeItem: '/storage',\n isMobileOpen: true\n }));\n \n // Re-import with localStorage populated\n vi.resetModules();\n const { sidebarStore } = await import('../sidebar.js');\n \n let state = null;\n const unsub = sidebarStore.subscribe(s => { state = s; });\n unsub();\n expect(state.isExpanded).toBe(false);\n expect(state.activeCategory).toBe('storage');\n expect(state.isMobileOpen).toBe(true);\n });\n});\n\n// #endregion SidebarIntegrationTest:Module\n" @@ -80727,8 +70376,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Unit tests for task drawer store validating open/close transitions, preference-aware opening, and resource-task mapping lifecycle." + "BRIEF": "Unit tests for task drawer store validating open/close transitions, preference-aware opening, and resource-task mapping lifecycle.", + "COMPLEXITY": 3 }, "relations": [ { @@ -80752,9 +70401,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Unit tests for task drawer store", "INVARIANT": "Store state transitions remain deterministic for open/close and task-status mapping.", "LAYER": "UI", - "PURPOSE": "Unit tests for task drawer store", "SEMANTICS": [ "task-drawer", "store", @@ -80770,30 +70419,7 @@ "target_ref": "[taskDrawer]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region TaskDrawerTest:Module [TYPE Function]\n// @SEMANTICS: task-drawer, store, mapping, tests\n// @PURPOSE: Unit tests for task drawer store\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [taskDrawer]\n// @INVARIANT: Store state transitions remain deterministic for open/close and task-status mapping.\n\nimport { describe, it, expect, beforeEach, vi } from 'vitest';\n\ndescribe('taskDrawer store', () => {\n beforeEach(async () => {\n vi.resetModules();\n });\n\n it('should have correct initial state', async () => {\n const { taskDrawerStore } = await import('../taskDrawer.js');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isOpen).toBe(false);\n expect(state.activeTaskId).toBeNull();\n expect(state.resourceTaskMap).toEqual({});\n });\n\n it('should open drawer for specific task', async () => {\n const { taskDrawerStore, openDrawerForTask } = await import('../taskDrawer.js');\n \n openDrawerForTask('task-123');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isOpen).toBe(true);\n expect(state.activeTaskId).toBe('task-123');\n });\n\n it('should open drawer in list mode', async () => {\n const { taskDrawerStore, openDrawer } = await import('../taskDrawer.js');\n \n openDrawer();\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.isOpen).toBe(true);\n expect(state.activeTaskId).toBeNull();\n });\n\n it('should close drawer', async () => {\n const { taskDrawerStore, openDrawerForTask, closeDrawer } = await import('../taskDrawer.js');\n \n // First open drawer\n openDrawerForTask('task-123');\n \n let state = null;\n const unsub1 = taskDrawerStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.isOpen).toBe(true);\n \n closeDrawer();\n \n const unsub2 = taskDrawerStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.isOpen).toBe(false);\n expect(state.activeTaskId).toBeNull();\n });\n\n it('should update resource-task mapping', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('../taskDrawer.js');\n \n updateResourceTask('dashboard-1', 'task-123', 'RUNNING');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.resourceTaskMap['dashboard-1']).toEqual({\n taskId: 'task-123',\n status: 'RUNNING'\n });\n });\n\n it('should remove mapping on task completion (SUCCESS)', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('../taskDrawer.js');\n \n // First add a running task\n updateResourceTask('dashboard-1', 'task-123', 'RUNNING');\n \n let state = null;\n const unsub1 = taskDrawerStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.resourceTaskMap['dashboard-1']).toBeDefined();\n \n // Complete the task\n updateResourceTask('dashboard-1', 'task-123', 'SUCCESS');\n \n const unsub2 = taskDrawerStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.resourceTaskMap['dashboard-1']).toBeUndefined();\n });\n\n it('should remove mapping on task error', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('../taskDrawer.js');\n \n updateResourceTask('dataset-1', 'task-456', 'RUNNING');\n \n let state = null;\n const unsub1 = taskDrawerStore.subscribe(s => { state = s; });\n unsub1();\n expect(state.resourceTaskMap['dataset-1']).toBeDefined();\n \n // Error the task\n updateResourceTask('dataset-1', 'task-456', 'ERROR');\n \n const unsub2 = taskDrawerStore.subscribe(s => { state = s; });\n unsub2();\n expect(state.resourceTaskMap['dataset-1']).toBeUndefined();\n });\n\n it('should keep mapping for WAITING_INPUT status', async () => {\n const { taskDrawerStore, updateResourceTask } = await import('../taskDrawer.js');\n \n updateResourceTask('dashboard-1', 'task-789', 'WAITING_INPUT');\n \n let state = null;\n const unsubscribe = taskDrawerStore.subscribe(s => { state = s; });\n unsubscribe();\n \n expect(state.resourceTaskMap['dashboard-1']).toEqual({\n taskId: 'task-789',\n status: 'WAITING_INPUT'\n });\n });\n\n it('should get task for resource', async () => {\n const { updateResourceTask, getTaskForResource } = await import('../taskDrawer.js');\n \n updateResourceTask('dashboard-1', 'task-123', 'RUNNING');\n \n const taskInfo = getTaskForResource('dashboard-1');\n expect(taskInfo).toEqual({\n taskId: 'task-123',\n status: 'RUNNING'\n });\n });\n\n it('should return null for resource without task', async () => {\n const { getTaskForResource } = await import('../taskDrawer.js');\n \n const taskInfo = getTaskForResource('non-existent');\n expect(taskInfo).toBeNull();\n });\n});\n\n// #endregion TaskDrawerTest:Module\n" @@ -80807,65 +70433,11 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Derived store that counts active running tasks for navbar indicator badge." + "BRIEF": "Derived store that counts active running tasks for navbar indicator badge.", + "COMPLEXITY": 2 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Store' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Store' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Store" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region ActivityStore [C:2] [TYPE Store] [SEMANTICS activity, store, derived, task-count, badge]\n// @BRIEF Derived store that counts active running tasks for navbar indicator badge.\n\n// #region activity:Store [TYPE Function]\n// @PURPOSE: Track active task count for navbar indicator\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> taskDrawer\n\nimport { derived } from 'svelte/store';\nimport { taskDrawerStore } from './taskDrawer.js';\n\n/**\n * Derived store that counts active tasks\n * @UX_STATE: Idle -> No active tasks, badge hidden\n * @UX_STATE: Active -> Badge shows count of running tasks\n */\nexport const activityStore = derived(taskDrawerStore, ($drawer) => {\n const activeCount = Object.values($drawer.resourceTaskMap)\n .filter(t => t.status === 'RUNNING').length;\n \n console.log(`[activityStore][State] Active count: ${activeCount}`);\n \n return {\n activeCount,\n recentTasks: Object.entries($drawer.resourceTaskMap)\n .map(([resourceId, taskInfo]) => ({\n taskId: taskInfo.taskId,\n resourceId,\n status: taskInfo.status\n }))\n .slice(-5) // Last 5 tasks\n };\n});\n\n// #endregion activity:Store\n// #endregion ActivityStore\n" @@ -80879,8 +70451,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "UI", - "PURPOSE": "Track active task count for navbar indicator" + "BRIEF": "Track active task count for navbar indicator", + "LAYER": "UI" }, "relations": [ { @@ -80890,30 +70462,7 @@ "target_ref": "taskDrawer" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region activity:Store [TYPE Function]\n// @PURPOSE: Track active task count for navbar indicator\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> taskDrawer\n\nimport { derived } from 'svelte/store';\nimport { taskDrawerStore } from './taskDrawer.js';\n\n/**\n * Derived store that counts active tasks\n * @UX_STATE: Idle -> No active tasks, badge hidden\n * @UX_STATE: Active -> Badge shows count of running tasks\n */\nexport const activityStore = derived(taskDrawerStore, ($drawer) => {\n const activeCount = Object.values($drawer.resourceTaskMap)\n .filter(t => t.status === 'RUNNING').length;\n \n console.log(`[activityStore][State] Active count: ${activeCount}`);\n \n return {\n activeCount,\n recentTasks: Object.entries($drawer.resourceTaskMap)\n .map(([resourceId, taskInfo]) => ({\n taskId: taskInfo.taskId,\n resourceId,\n status: taskInfo.status\n }))\n .slice(-5) // Last 5 tasks\n };\n});\n\n// #endregion activity:Store\n" @@ -80927,8 +70476,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Control assistant chat panel visibility, conversation binding, session context, and seeded prompts.", "COMPLEXITY": 3, - "PURPOSE": "Control assistant chat panel visibility, conversation binding, session context, and seeded prompts.", "UX_STATE": "Open -> Chat panel visible with active conversation" }, "relations": [ @@ -80939,90 +70488,7 @@ "target_ref": "[AssistantChatPanel]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region AssistantChatStore [C:3] [TYPE Store] [SEMANTICS assistant, chat, store, session, panel]\n// @BRIEF Control assistant chat panel visibility, conversation binding, session context, and seeded prompts.\n// @RELATION BINDS_TO -> [AssistantChatPanel]\n// @UX_STATE Closed -> Chat panel hidden\n// @UX_STATE Open -> Chat panel visible with active conversation\n\n// #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// #endregion AssistantChatStore\n" @@ -81036,7 +70502,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Control assistant chat panel visibility and active conversation binding." + "BRIEF": "Control assistant chat panel visibility and active conversation binding." }, "relations": [ { @@ -81060,9 +70526,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Toggle assistant panel visibility.", "POST": "isOpen value inverted.", - "PRE": "Store is initialized.", - "PURPOSE": "Toggle assistant panel visibility." + "PRE": "Store is initialized." }, "relations": [], "schema_warnings": [], @@ -81079,9 +70545,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Open assistant panel.", "POST": "isOpen = true.", - "PRE": "Store is initialized.", - "PURPOSE": "Open assistant panel." + "PRE": "Store is initialized." }, "relations": [], "schema_warnings": [], @@ -81098,9 +70564,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Open assistant panel with dataset review session context and optional seeded prompt/focus target.", "POST": "Assistant drawer opens with session binding and visible focus metadata.", - "PRE": "Context payload may be partial.", - "PURPOSE": "Open assistant panel with dataset review session context and optional seeded prompt/focus target." + "PRE": "Context payload may be partial." }, "relations": [], "schema_warnings": [], @@ -81117,9 +70583,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Close assistant panel.", "POST": "isOpen = false.", - "PRE": "Store is initialized.", - "PURPOSE": "Close assistant panel." + "PRE": "Store is initialized." }, "relations": [], "schema_warnings": [], @@ -81136,9 +70602,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Bind current conversation id in UI state.", "POST": "store.conversationId updated.", - "PRE": "conversationId is string-like identifier.", - "PURPOSE": "Bind current conversation id in UI state." + "PRE": "conversationId is string-like identifier." }, "relations": [], "schema_warnings": [], @@ -81155,9 +70621,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Bind active dataset review session to assistant state.", "POST": "store.datasetReviewSessionId updated.", - "PRE": "session identifier may be null when workspace context is cleared.", - "PURPOSE": "Bind active dataset review session to assistant state." + "PRE": "session identifier may be null when workspace context is cleared." }, "relations": [], "schema_warnings": [], @@ -81174,9 +70640,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Stage a seeded assistant prompt for contextual send UX.", "POST": "store.seedMessage updated.", - "PRE": "seedMessage can be empty to clear staged draft.", - "PURPOSE": "Stage a seeded assistant prompt for contextual send UX." + "PRE": "seedMessage can be empty to clear staged draft." }, "relations": [], "schema_warnings": [], @@ -81193,9 +70659,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Track the workspace entity currently referenced by assistant context.", "POST": "store.focusTarget updated.", - "PRE": "focusTarget may be null to clear prior focus.", - "PURPOSE": "Track the workspace entity currently referenced by assistant context." + "PRE": "focusTarget may be null to clear prior focus." }, "relations": [], "schema_warnings": [], @@ -81212,10 +70678,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Manage active dataset review session state including loading, local edits, error capture, and reset semantics.", "COMPLEXITY": 4, "POST": "Store transitions keep session, loading, error, and dirty flags internally consistent after each helper call.", "PRE": "Consumers provide session-shaped payloads and initialize the store before reading derived session fields.", - "PURPOSE": "Manage active dataset review session state including loading, local edits, error capture, and reset semantics.", "SIDE_EFFECT": "Mutates the writable dataset review session store in frontend memory.", "UX_STATE": "Error -> Failed to load or update session" }, @@ -81227,162 +70693,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Store' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "POST", - "message": "@POST is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "POST", - "message": "@POST is forbidden for contract type 'Store' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PRE", - "message": "@PRE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PRE", - "message": "@PRE is forbidden for contract type 'Store' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Store' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is forbidden for contract type 'Store' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Store' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Store" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Store' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Store" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region DatasetReviewSessionStore [C:4] [TYPE Store] [SEMANTICS dataset, review, session, store, state]\n// @BRIEF Manage active dataset review session state including loading, local edits, error capture, and reset semantics.\n// @RELATION DEPENDS_ON -> [ApiModule]\n// @PRE Consumers provide session-shaped payloads and initialize the store before reading derived session fields.\n// @POST Store transitions keep session, loading, error, and dirty flags internally consistent after each helper call.\n// @SIDE_EFFECT Mutates the writable dataset review session store in frontend memory.\n// @UX_STATE Loading -> Session detail is being fetched\n// @UX_STATE Ready -> Session detail available for UI binding\n// @UX_STATE Saving -> Updates are being persisted\n// @UX_STATE Error -> Failed to load or update session\n\n// #region datasetReviewSession:Store [TYPE Function]\n// @PURPOSE: Manage active dataset review session state, including loading, local edits, error capture, and reset semantics for the active review workspace.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [api_module]\n// @PRE: Consumers provide session-shaped payloads when setting or patching state and initialize the store before reading derived session fields.\n// @POST: Store transitions keep session, loading, error, and dirty flags internally consistent after each helper call.\n// @SIDE_EFFECT: Mutates the writable dataset review session store in frontend memory.\n// @DATA_CONTRACT: Input[SessionDetail | Partial | boolean | string | null] -> Output[DatasetReviewSessionStoreState]\n//\n// @UX_STATE: Loading -> Session detail is being fetched.\n// @UX_STATE: Ready -> Session detail is available for UI binding.\n// @UX_STATE: Saving -> Updates are being persisted.\n// @UX_STATE: Error -> Failed to load or update session.\n// @UX_STATE: PartialPreview -> Session has preview data but launch gates are not yet satisfied.\n// @UX_STATE: LaunchBlocked -> Session remains reviewable while explicit launch blockers are unresolved.\n// @UX_REACTIVITY: Uses Svelte writable store for session aggregate.\n\nimport { writable } from 'svelte/store';\n\n// [SECTION: INITIAL STATE]\nconst initialState = {\n session: null,\n isLoading: false,\n isSaving: false,\n error: null,\n lastUpdated: null,\n isDirty: false\n};\n// [/SECTION]\n\nexport const datasetReviewSessionStore = writable(initialState);\n\n/**\n * Set active session data\n * @param {Object} session - Full SessionDetail aggregate\n */\nexport function setSession(session) {\n datasetReviewSessionStore.update(state => ({\n ...state,\n session,\n isLoading: false,\n error: null,\n lastUpdated: new Date(),\n isDirty: false\n }));\n}\n\n/**\n * Update session loading state\n * @param {boolean} isLoading\n */\nexport function setLoading(isLoading) {\n datasetReviewSessionStore.update(state => ({ ...state, isLoading }));\n}\n\n/**\n * Set session error state\n * @param {string|null} error\n */\nexport function setError(error) {\n datasetReviewSessionStore.update(state => ({ ...state, error, isLoading: false, isSaving: false }));\n}\n\n/**\n * Mark session as dirty (unsaved changes)\n * @param {boolean} isDirty\n */\nexport function setDirty(isDirty) {\n datasetReviewSessionStore.update(state => ({ ...state, isDirty }));\n}\n\n/**\n * Reset store to initial state\n */\nexport function resetSession() {\n datasetReviewSessionStore.set(initialState);\n}\n\n/**\n * Patch session data locally\n * @param {Object} patch - Partial session data\n */\nexport function patchSession(patch) {\n datasetReviewSessionStore.update(state => {\n if (!state.session) return state;\n return {\n ...state,\n session: { ...state.session, ...patch },\n isDirty: true\n };\n });\n}\n\n/**\n * Derive a conservative UI phase label from persisted session state.\n * This helper is additive and does not alter orchestration behavior.\n *\n * @param {Object|null} session\n * @returns {\"empty\"|\"importing\"|\"review\"|\"partial_preview\"|\"launch_blocked\"|\"run_ready\"|\"run_in_progress\"}\n */\nexport function getSessionUiPhase(session) {\n if (!session) return \"empty\";\n\n const readiness = String(session.readiness_state || \"\");\n if (readiness === \"importing\") return \"importing\";\n if (readiness === \"partially_ready\" || readiness === \"compiled_preview_ready\") return \"partial_preview\";\n if (readiness === \"recovery_required\") return \"launch_blocked\";\n if (readiness === \"run_ready\") return \"run_ready\";\n if (readiness === \"run_in_progress\") return \"run_in_progress\";\n return \"review\";\n}\n\n// #endregion datasetReviewSession:Store\n// #endregion DatasetReviewSessionStore\n" @@ -81396,11 +70707,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Manage active dataset review session state, including loading, local edits, error capture, and reset semantics for the active review workspace.", "DATA_CONTRACT": "Input[SessionDetail | Partial | boolean | string | null] -> Output[DatasetReviewSessionStoreState]", "LAYER": "UI", "POST": "Store transitions keep session, loading, error, and dirty flags internally consistent after each helper call.", "PRE": "Consumers provide session-shaped payloads when setting or patching state and initialize the store before reading derived session fields.", - "PURPOSE": "Manage active dataset review session state, including loading, local edits, error capture, and reset semantics for the active review workspace.", "SIDE_EFFECT": "Mutates the writable dataset review session store in frontend memory.", "UX_REACTIVITY": "Uses Svelte writable store for session aggregate.", "UX_STATE": "LaunchBlocked -> Session remains reviewable while explicit launch blockers are unresolved." @@ -81413,70 +70724,7 @@ "target_ref": "[api_module]" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 datasetReviewSession:Store [TYPE Function]\n// @PURPOSE: Manage active dataset review session state, including loading, local edits, error capture, and reset semantics for the active review workspace.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> [api_module]\n// @PRE: Consumers provide session-shaped payloads when setting or patching state and initialize the store before reading derived session fields.\n// @POST: Store transitions keep session, loading, error, and dirty flags internally consistent after each helper call.\n// @SIDE_EFFECT: Mutates the writable dataset review session store in frontend memory.\n// @DATA_CONTRACT: Input[SessionDetail | Partial | boolean | string | null] -> Output[DatasetReviewSessionStoreState]\n//\n// @UX_STATE: Loading -> Session detail is being fetched.\n// @UX_STATE: Ready -> Session detail is available for UI binding.\n// @UX_STATE: Saving -> Updates are being persisted.\n// @UX_STATE: Error -> Failed to load or update session.\n// @UX_STATE: PartialPreview -> Session has preview data but launch gates are not yet satisfied.\n// @UX_STATE: LaunchBlocked -> Session remains reviewable while explicit launch blockers are unresolved.\n// @UX_REACTIVITY: Uses Svelte writable store for session aggregate.\n\nimport { writable } from 'svelte/store';\n\n// [SECTION: INITIAL STATE]\nconst initialState = {\n session: null,\n isLoading: false,\n isSaving: false,\n error: null,\n lastUpdated: null,\n isDirty: false\n};\n// [/SECTION]\n\nexport const datasetReviewSessionStore = writable(initialState);\n\n/**\n * Set active session data\n * @param {Object} session - Full SessionDetail aggregate\n */\nexport function setSession(session) {\n datasetReviewSessionStore.update(state => ({\n ...state,\n session,\n isLoading: false,\n error: null,\n lastUpdated: new Date(),\n isDirty: false\n }));\n}\n\n/**\n * Update session loading state\n * @param {boolean} isLoading\n */\nexport function setLoading(isLoading) {\n datasetReviewSessionStore.update(state => ({ ...state, isLoading }));\n}\n\n/**\n * Set session error state\n * @param {string|null} error\n */\nexport function setError(error) {\n datasetReviewSessionStore.update(state => ({ ...state, error, isLoading: false, isSaving: false }));\n}\n\n/**\n * Mark session as dirty (unsaved changes)\n * @param {boolean} isDirty\n */\nexport function setDirty(isDirty) {\n datasetReviewSessionStore.update(state => ({ ...state, isDirty }));\n}\n\n/**\n * Reset store to initial state\n */\nexport function resetSession() {\n datasetReviewSessionStore.set(initialState);\n}\n\n/**\n * Patch session data locally\n * @param {Object} patch - Partial session data\n */\nexport function patchSession(patch) {\n datasetReviewSessionStore.update(state => {\n if (!state.session) return state;\n return {\n ...state,\n session: { ...state.session, ...patch },\n isDirty: true\n };\n });\n}\n\n/**\n * Derive a conservative UI phase label from persisted session state.\n * This helper is additive and does not alter orchestration behavior.\n *\n * @param {Object|null} session\n * @returns {\"empty\"|\"importing\"|\"review\"|\"partial_preview\"|\"launch_blocked\"|\"run_ready\"|\"run_in_progress\"}\n */\nexport function getSessionUiPhase(session) {\n if (!session) return \"empty\";\n\n const readiness = String(session.readiness_state || \"\");\n if (readiness === \"importing\") return \"importing\";\n if (readiness === \"partially_ready\" || readiness === \"compiled_preview_ready\") return \"partial_preview\";\n if (readiness === \"recovery_required\") return \"launch_blocked\";\n if (readiness === \"run_ready\") return \"run_ready\";\n if (readiness === \"run_in_progress\") return \"run_in_progress\";\n return \"review\";\n}\n\n// #endregion datasetReviewSession:Store\n" @@ -81595,8 +70843,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Global selected environment context for navigation, safety cues, and environment-based filtering.", "COMPLEXITY": 3, - "PURPOSE": "Global selected environment context for navigation, safety cues, and environment-based filtering.", "UX_STATE": "Error -> Failed to load environments" }, "relations": [ @@ -81613,90 +70861,7 @@ "target_ref": "[SidebarStore]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region EnvironmentContextStore [C:3] [TYPE Store] [SEMANTICS environment, context, store, selector, filter]\n// @BRIEF Global selected environment context for navigation, safety cues, and environment-based filtering.\n// @RELATION DEPENDS_ON -> [ApiModule]\n// @RELATION BINDS_TO -> [SidebarStore]\n// @UX_STATE Loading -> Environments being fetched\n// @UX_STATE Ready -> Environment selector active with environment list\n// @UX_STATE Error -> Failed to load environments\n\n// #region environmentContext:Store [TYPE Function]\n// @RELATION: USES -> App\n// @PURPOSE: Global selected environment context for navigation and safety cues.\n// @LAYER: UI-State\n\nimport { derived, get, writable } from \"svelte/store\";\nimport { browser } from \"$app/environment\";\nimport { api } from \"$lib/api.js\";\n\nconst INITIAL_STATE = {\n environments: [],\n selectedEnvId: \"\",\n isLoading: false,\n isLoaded: false,\n error: null,\n};\n\nconst SELECTED_ENV_KEY = \"selected_env_id\";\nconst contextStore = writable(INITIAL_STATE);\n\nfunction getStoredSelectedEnvId() {\n if (!browser) return \"\";\n return localStorage.getItem(SELECTED_ENV_KEY) || \"\";\n}\n\nfunction persistSelectedEnvId(envId) {\n if (!browser) return;\n if (!envId) {\n localStorage.removeItem(SELECTED_ENV_KEY);\n return;\n }\n localStorage.setItem(SELECTED_ENV_KEY, envId);\n}\n\nfunction hasAuthToken() {\n if (!browser) return false;\n return Boolean(localStorage.getItem(\"auth_token\"));\n}\n\nfunction resolveSelectedEnvId(environments, preferredEnvId) {\n if (!Array.isArray(environments) || environments.length === 0) return \"\";\n if (preferredEnvId && environments.some((env) => env.id === preferredEnvId)) {\n return preferredEnvId;\n }\n const stored = getStoredSelectedEnvId();\n if (stored && environments.some((env) => env.id === stored)) {\n return stored;\n }\n return environments[0].id;\n}\n\nfunction applySelectedEnvId(selectedEnvId) {\n contextStore.update((state) => {\n const exists = state.environments.some((env) => env.id === selectedEnvId);\n const nextSelectedEnvId = exists ? selectedEnvId : \"\";\n persistSelectedEnvId(nextSelectedEnvId);\n return { ...state, selectedEnvId: nextSelectedEnvId };\n });\n}\n\nasync function refreshEnvironmentContext(preferredEnvId = \"\") {\n if (!hasAuthToken()) {\n contextStore.update((state) => ({\n ...state,\n isLoading: false,\n isLoaded: false,\n error: null,\n }));\n return;\n }\n\n contextStore.update((state) => ({ ...state, isLoading: true, error: null }));\n try {\n const environments = await api.getEnvironmentsList();\n const current = get(contextStore).selectedEnvId;\n const selectedEnvId = resolveSelectedEnvId(\n environments,\n preferredEnvId || current,\n );\n persistSelectedEnvId(selectedEnvId);\n contextStore.update((state) => ({\n ...state,\n environments,\n selectedEnvId,\n isLoading: false,\n isLoaded: true,\n error: null,\n }));\n } catch (error) {\n if (error?.status === 401) {\n contextStore.update((state) => ({\n ...state,\n isLoading: false,\n isLoaded: false,\n error: null,\n }));\n return;\n }\n console.error(\n \"[environmentContext][Coherence:Failed] Failed to refresh environments\",\n error,\n );\n contextStore.update((state) => ({\n ...state,\n environments: [],\n selectedEnvId: \"\",\n isLoading: false,\n isLoaded: true,\n error: error?.message || \"Failed to load environments\",\n }));\n }\n}\n\nasync function initializeEnvironmentContext() {\n const state = get(contextStore);\n if (state.isLoading || state.isLoaded) return;\n await refreshEnvironmentContext();\n}\n\nexport const environmentContextStore = {\n subscribe: contextStore.subscribe,\n};\n\nexport function setSelectedEnvironment(envId) {\n applySelectedEnvId(envId);\n}\n\nexport { refreshEnvironmentContext, initializeEnvironmentContext };\n\nexport const selectedEnvironmentStore = derived(\n environmentContextStore,\n ($context) =>\n $context.environments.find((env) => env.id === $context.selectedEnvId) ||\n null,\n);\n\nexport const isProductionContextStore = derived(\n selectedEnvironmentStore,\n ($selectedEnvironment) =>\n String($selectedEnvironment?.stage || \"\").toUpperCase() === \"PROD\" ||\n Boolean($selectedEnvironment?.is_production),\n);\n// #endregion environmentContext:Store\n// #endregion EnvironmentContextStore\n" @@ -81710,8 +70875,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "UI-State", - "PURPOSE": "Global selected environment context for navigation and safety cues." + "BRIEF": "Global selected environment context for navigation and safety cues.", + "LAYER": "UI-State" }, "relations": [ { @@ -81722,28 +70887,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -81776,8 +70919,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Manage dashboard health summary state and failing counts for UI badges.", "COMPLEXITY": 3, - "PURPOSE": "Manage dashboard health summary state and failing counts for UI badges.", "UX_STATE": "Error -> Error state with retry option" }, "relations": [ @@ -81788,90 +70931,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region HealthStore [C:3] [TYPE Store] [SEMANTICS health, store, dashboard, summary, badge]\n// @BRIEF Manage dashboard health summary state and failing counts for UI badges.\n// @RELATION DEPENDS_ON -> [ApiModule]\n// @UX_STATE Loading -> Loading spinner, badges hidden\n// @UX_STATE Ready -> Health summary displayed with pass/warn/fail counts\n// @UX_STATE Error -> Error state with retry option\n\n// #region health_store:Store [TYPE Function]\n// @UX_STATE: Loading -> Default\n// @PURPOSE: Manage dashboard health summary state and failing counts for UI badges.\n// @LAYER: UI\n// @RELATION: DEPENDS_ON -> api_module\n\nimport { writable, derived } from 'svelte/store';\nimport { api } from '../api.js';\n\n/**\n * @typedef {Object} HealthState\n * @property {Array} items - List of dashboard health items\n * @property {number} pass_count - Number of passing dashboards\n * @property {number} warn_count - Number of warning dashboards\n * @property {number} fail_count - Number of failing dashboards\n * @property {number} unknown_count - Number of unknown status dashboards\n * @property {boolean} loading - Loading state\n * @property {Date|null} lastUpdated - Last successful fetch timestamp\n */\n\nfunction createHealthStore() {\n const { subscribe, set, update } = writable({\n items: [],\n pass_count: 0,\n warn_count: 0,\n fail_count: 0,\n unknown_count: 0,\n loading: false,\n lastUpdated: null\n });\n let inflightRefresh = null;\n let inflightEnvironmentId = null;\n /** @type {boolean} - Set to true when the health monitor feature is disabled on the backend. Prevents further polling. */\n let _isDisabled = false;\n\n /**\n * Refresh health summary from API\n * @param {string|null} environmentId - Optional environment filter\n */\n async function refresh(environmentId = null) {\n if (_isDisabled) return null;\n\n const normalizedEnvironmentId = environmentId || null;\n if (inflightRefresh && inflightEnvironmentId === normalizedEnvironmentId) {\n return inflightRefresh;\n }\n\n update(s => ({ ...s, loading: true }));\n inflightEnvironmentId = normalizedEnvironmentId;\n inflightRefresh = (async () => {\n try {\n console.log(`[HealthStore][Action] Refreshing health summary context={{'environmentId': '${environmentId}'}}`);\n const summary = await api.getHealthSummary(environmentId);\n set({\n ...summary,\n loading: false,\n lastUpdated: new Date()\n });\n return summary;\n } catch (error) {\n const msg = error?.message || String(error);\n if (msg.includes('Health monitor feature is disabled') || msg.includes('404')) {\n console.warn('[HealthStore][Coherence:Disabled] Health monitor feature is disabled — stopping polling');\n _isDisabled = true;\n }\n console.error('[HealthStore][Coherence:Failed] Failed to fetch health summary:', error);\n update(s => ({ ...s, loading: false }));\n return null;\n } finally {\n inflightRefresh = null;\n inflightEnvironmentId = null;\n }\n })();\n return inflightRefresh;\n }\n\n return {\n subscribe,\n refresh\n };\n}\n\nexport const healthStore = createHealthStore();\n\n/**\n * Derived store for the total count of failing dashboards.\n * Used for sidebar badges and global notifications.\n */\nexport const failingCount = derived(healthStore, $health => $health.fail_count);\n\n// #endregion health_store:Store\n// #endregion HealthStore\n" @@ -81885,9 +70945,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Manage dashboard health summary state and failing counts for UI badges.", "LAYER": "UI", "PROPERTY": "{Date|null} lastUpdated - Last successful fetch timestamp", - "PURPOSE": "Manage dashboard health summary state and failing counts for UI badges.", "TYPEDEF": "{Object} HealthState", "UX_STATE": "Loading -> Default" }, @@ -81900,28 +70960,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "unknown_tag", "tag": "PROPERTY", @@ -81933,26 +70971,6 @@ "tag": "TYPEDEF", "message": "@TYPEDEF is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } } ], "anchor_syntax": "region", @@ -81998,9 +71016,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Svelte 5 (Runes) store for maintenance banner state. Auto-polls events every 30s via interval.", "COMPLEXITY": 3, "LAYER": "Frontend", - "PURPOSE": "Svelte 5 (Runes) store for maintenance banner state. Auto-polls events every 30s via interval.", "RETURNS": "{object} Maintenance store with runes state and methods.", "UI_STATE": "Error -> error state populated with message", "UX_REACTIVITY": "$state for events/settings/banners. Manual setInterval for polling.", @@ -82050,46 +71068,6 @@ "tag": "UI_STATE", "message": "@UI_STATE is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } } ], "anchor_syntax": "region", @@ -82289,8 +71267,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Manage sidebar visibility, expansion state, active navigation item, and mobile overlay.", "COMPLEXITY": 3, - "PURPOSE": "Manage sidebar visibility, expansion state, active navigation item, and mobile overlay.", "UX_STATE": "Toggling -> Expand/collapse animation" }, "relations": [ @@ -82301,90 +71279,7 @@ "target_ref": "[EnvironmentContextStore]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region SidebarStore [C:3] [TYPE Store] [SEMANTICS sidebar, store, navigation, state, toggle]\n// @BRIEF Manage sidebar visibility, expansion state, active navigation item, and mobile overlay.\n// @RELATION BINDS_TO -> [EnvironmentContextStore]\n// @UX_STATE Idle -> Sidebar visible with current state\n// @UX_STATE Toggling -> Expand/collapse animation\n\n// #region sidebar:Store [TYPE Function]\n// @RELATION: USES -> App\n// @PURPOSE: Manage sidebar visibility and navigation state\n// @LAYER: UI\n// @INVARIANT: isExpanded state is always synced with localStorage\n//\n// @UX_STATE: Idle -> Sidebar visible with current state\n// @UX_STATE: Toggling -> Animation plays for 200ms\n\nimport { writable } from 'svelte/store';\nimport { browser } from '$app/environment';\n\n// Load from localStorage on initialization\nconst STORAGE_KEY = 'sidebar_state';\n\nconst loadState = () => {\n if (!browser) return null;\n try {\n const saved = localStorage.getItem(STORAGE_KEY);\n if (saved) {\n return JSON.parse(saved);\n }\n } catch (e) {\n console.error('[SidebarStore] Failed to load state:', e);\n }\n return null;\n};\n\nconst saveState = (state) => {\n if (!browser) return;\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(state));\n } catch (e) {\n console.error('[SidebarStore] Failed to save state:', e);\n }\n};\n\nconst initialState = loadState() || {\n isExpanded: true,\n activeCategory: 'dashboards',\n activeItem: '/dashboards',\n isMobileOpen: false\n};\n\nexport const sidebarStore = writable(initialState);\n\n/**\n * Toggle sidebar expansion state\n * @UX_STATE: Toggling -> Animation plays for 200ms\n */\nexport function toggleSidebar() {\n sidebarStore.update(state => {\n const newState = { ...state, isExpanded: !state.isExpanded };\n saveState(newState);\n return newState;\n });\n}\n\n/**\n * Set active category and item\n * @param {string} category - Category name (dashboards, datasets, storage, admin)\n * @param {string} item - Route path\n */\nexport function setActiveItem(category, item) {\n sidebarStore.update(state => {\n const newState = { ...state, activeCategory: category, activeItem: item };\n saveState(newState);\n return newState;\n });\n}\n\n/**\n * Toggle mobile overlay mode\n * @param {boolean} isOpen - Whether the mobile overlay should be open\n */\nexport function setMobileOpen(isOpen) {\n sidebarStore.update(state => ({ ...state, isMobileOpen: isOpen }));\n}\n\n/**\n * Close mobile overlay\n */\nexport function closeMobile() {\n sidebarStore.update(state => ({ ...state, isMobileOpen: false }));\n}\n\n/**\n * Toggle mobile sidebar (for hamburger menu)\n */\nexport function toggleMobileSidebar() {\n sidebarStore.update(state => ({ ...state, isMobileOpen: !state.isMobileOpen }));\n}\n\n// #endregion sidebar:Store\n// #endregion SidebarStore\n" @@ -82398,9 +71293,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Manage sidebar visibility and navigation state", "INVARIANT": "isExpanded state is always synced with localStorage", "LAYER": "UI", - "PURPOSE": "Manage sidebar visibility and navigation state", "UX_STATE": "Toggling -> Animation plays for 200ms" }, "relations": [ @@ -82411,50 +71306,7 @@ "target_ref": "App" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 sidebar:Store [TYPE Function]\n// @RELATION: USES -> App\n// @PURPOSE: Manage sidebar visibility and navigation state\n// @LAYER: UI\n// @INVARIANT: isExpanded state is always synced with localStorage\n//\n// @UX_STATE: Idle -> Sidebar visible with current state\n// @UX_STATE: Toggling -> Animation plays for 200ms\n\nimport { writable } from 'svelte/store';\nimport { browser } from '$app/environment';\n\n// Load from localStorage on initialization\nconst STORAGE_KEY = 'sidebar_state';\n\nconst loadState = () => {\n if (!browser) return null;\n try {\n const saved = localStorage.getItem(STORAGE_KEY);\n if (saved) {\n return JSON.parse(saved);\n }\n } catch (e) {\n console.error('[SidebarStore] Failed to load state:', e);\n }\n return null;\n};\n\nconst saveState = (state) => {\n if (!browser) return;\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(state));\n } catch (e) {\n console.error('[SidebarStore] Failed to save state:', e);\n }\n};\n\nconst initialState = loadState() || {\n isExpanded: true,\n activeCategory: 'dashboards',\n activeItem: '/dashboards',\n isMobileOpen: false\n};\n\nexport const sidebarStore = writable(initialState);\n\n/**\n * Toggle sidebar expansion state\n * @UX_STATE: Toggling -> Animation plays for 200ms\n */\nexport function toggleSidebar() {\n sidebarStore.update(state => {\n const newState = { ...state, isExpanded: !state.isExpanded };\n saveState(newState);\n return newState;\n });\n}\n\n/**\n * Set active category and item\n * @param {string} category - Category name (dashboards, datasets, storage, admin)\n * @param {string} item - Route path\n */\nexport function setActiveItem(category, item) {\n sidebarStore.update(state => {\n const newState = { ...state, activeCategory: category, activeItem: item };\n saveState(newState);\n return newState;\n });\n}\n\n/**\n * Toggle mobile overlay mode\n * @param {boolean} isOpen - Whether the mobile overlay should be open\n */\nexport function setMobileOpen(isOpen) {\n sidebarStore.update(state => ({ ...state, isMobileOpen: isOpen }));\n}\n\n/**\n * Close mobile overlay\n */\nexport function closeMobile() {\n sidebarStore.update(state => ({ ...state, isMobileOpen: false }));\n}\n\n/**\n * Toggle mobile sidebar (for hamburger menu)\n */\nexport function toggleMobileSidebar() {\n sidebarStore.update(state => ({ ...state, isMobileOpen: !state.isMobileOpen }));\n}\n\n// #endregion sidebar:Store\n" @@ -82543,8 +71395,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Manage Task Drawer visibility, active task binding, and resource-to-task mapping.", "COMPLEXITY": 3, - "PURPOSE": "Manage Task Drawer visibility, active task binding, and resource-to-task mapping.", "UX_STATE": "Open -> Drawer visible with task logs or task list" }, "relations": [ @@ -82555,90 +71407,7 @@ "target_ref": "[ActivityStore]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region TaskDrawerStore [C:3] [TYPE Store] [SEMANTICS task, drawer, store, resource, mapping]\n// @BRIEF Manage Task Drawer visibility, active task binding, and resource-to-task mapping.\n// @RELATION BINDS_TO -> [ActivityStore]\n// @UX_STATE Closed -> Drawer hidden, no active task\n// @UX_STATE Open -> Drawer visible with task logs or task list\n\n// #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// #endregion TaskDrawerStore\n" @@ -82652,7 +71421,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Manage Task Drawer visibility and resource-to-task mapping" + "BRIEF": "Manage Task Drawer visibility and resource-to-task mapping" }, "relations": [ { @@ -82796,72 +71565,19 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Global store for active translation run progress — survives page navigation.", "COMPLEXITY": 3, "PROPERTY": "{boolean} isActive - Derived: true when polling is active", - "PURPOSE": "Global store for active translation run progress — survives page navigation.", "TYPEDEF": "{Object} TranslationRunState" }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, { "code": "unknown_tag", "tag": "PROPERTY", "message": "@PROPERTY is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Store'", - "detail": { - "actual_type": "Store", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Store' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Store" - } - }, { "code": "unknown_tag", "tag": "TYPEDEF", @@ -82972,8 +71688,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Manages toast notifications using a Svelte writable store with deduplication and auto-removal." + "BRIEF": "Manages toast notifications using a Svelte writable store with deduplication and auto-removal.", + "COMPLEXITY": 3 }, "relations": [ { @@ -82997,8 +71713,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Manages toast notifications using a Svelte writable store.", "LAYER": "UI-State", - "PURPOSE": "Manages toast notifications using a Svelte writable store.", "SEMANTICS": [ "notification", "toast", @@ -83008,28 +71724,6 @@ }, "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83062,7 +71756,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Writable store containing the list of active toasts." + "BRIEF": "Writable store containing the list of active toasts." }, "relations": [], "schema_warnings": [], @@ -83079,10 +71773,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Adds a new toast message.", "PARAM": "duration (number) - Duration in ms before the toast is removed.", "POST": "New toast is added to the store and scheduled for removal.", - "PRE": "message string is provided.", - "PURPOSE": "Adds a new toast message." + "PRE": "message string is provided." }, "relations": [], "schema_warnings": [ @@ -83106,10 +71800,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Removes a toast message by ID.", "PARAM": "id (string) - The ID of the toast to remove.", "POST": "Toast is removed from the store.", - "PRE": "id is provided.", - "PURPOSE": "Removes a toast message by ID." + "PRE": "id is provided." }, "relations": [], "schema_warnings": [ @@ -83133,10 +71827,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Standardized button component with variants and loading states.", "COMPLEXITY": 2, "INVARIANT": "Supports accessible labels and keyboard navigation.", "LAYER": "Atom", - "PURPOSE": "Standardized button component with variants and loading states.", "SEMANTICS": [ "button", "ui-atom", @@ -83153,28 +71847,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83192,31 +71864,6 @@ ], "value": "Atom" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -83232,9 +71879,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Standardized container with padding and elevation.", "COMPLEXITY": 2, "LAYER": "Atom", - "PURPOSE": "Standardized container with padding and elevation.", "SEMANTICS": [ "card", "container", @@ -83251,28 +71898,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83290,31 +71915,6 @@ ], "value": "Atom" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -83330,10 +71930,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Render the shared inline SVG icon set with consistent sizing and stroke props.", "COMPLEXITY": 1, "INVARIANT": "Icon output remains aria-hidden because labels belong to the interactive parent.", "LAYER": "Atom", - "PURPOSE": "Render the shared inline SVG icon set with consistent sizing and stroke props.", "SEMANTICS": [ "icon", "ui-atom", @@ -83343,28 +71943,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83382,31 +71960,6 @@ ], "value": "Atom" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -83422,10 +71975,10 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Standardized text input component with label and error handling.", "COMPLEXITY": 2, "INVARIANT": "Consistent spacing and focus states.", "LAYER": "Atom", - "PURPOSE": "Standardized text input component with label and error handling.", "SEMANTICS": [ "input", "form-field", @@ -83442,28 +71995,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83481,31 +72012,6 @@ ], "value": "Atom" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -83521,9 +72027,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Dropdown component to switch between supported languages.", "COMPLEXITY": 1, "LAYER": "Atom", - "PURPOSE": "Dropdown component to switch between supported languages.", "SEMANTICS": [ "language-switcher", "i18n-ui", @@ -83546,28 +72052,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83585,31 +72069,6 @@ ], "value": "Atom" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -83625,9 +72084,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Standardized page header with title and action area.", "COMPLEXITY": 2, "LAYER": "Atom", - "PURPOSE": "Standardized page header with title and action area.", "SEMANTICS": [ "page-header", "layout-atom" @@ -83643,28 +72102,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83682,31 +72119,6 @@ ], "value": "Atom" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -83722,9 +72134,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Standardized dropdown selection component.", "COMPLEXITY": 2, "LAYER": "Atom", - "PURPOSE": "Standardized dropdown selection component.", "SEMANTICS": [ "select", "dropdown", @@ -83742,28 +72154,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83781,31 +72171,6 @@ ], "value": "Atom" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } } ], "anchor_syntax": "region", @@ -83821,9 +72186,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Central export point for standardized UI components.", "INVARIANT": "All components exported here must follow Semantic Protocol.", "LAYER": "Atom", - "PURPOSE": "Central export point for standardized UI components.", "SEMANTICS": [ "ui", "components", @@ -83833,28 +72198,6 @@ }, "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83904,33 +72247,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Infra", - "PURPOSE": "General utility functions (class merging)" + "BRIEF": "General utility functions (class merging)", + "LAYER": "Infra" }, "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -83995,33 +72316,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Infra", - "PURPOSE": "Debounce utility for limiting function execution rate" + "BRIEF": "Debounce utility for limiting function execution rate", + "LAYER": "Infra" }, "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -84069,9 +72368,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch plugins when the component mounts.", "POST": "plugins store is populated with available tools.", - "PRE": "Component is mounting.", - "PURPOSE": "Fetch plugins when the component mounts." + "PRE": "Component is mounting." }, "relations": [], "schema_warnings": [], @@ -84088,10 +72387,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Selects a plugin to display its form.", "PARAM": "{Object} plugin - The plugin object to select.", "POST": "selectedPlugin store is updated.", - "PRE": "plugin object is provided.", - "PURPOSE": "Selects a plugin to display its form." + "PRE": "plugin object is provided." }, "relations": [], "schema_warnings": [ @@ -84115,9 +72414,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Loads settings from the backend.", "POST": "settings object is populated with backend data.", - "PRE": "Component mounted or refresh requested.", - "PURPOSE": "Loads settings from the backend." + "PRE": "Component mounted or refresh requested." }, "relations": [], "schema_warnings": [], @@ -84134,9 +72433,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Saves global settings to the backend.", "POST": "Backend global settings are updated.", - "PRE": "settings.settings contains valid configuration.", - "PURPOSE": "Saves global settings to the backend." + "PRE": "settings.settings contains valid configuration." }, "relations": [], "schema_warnings": [], @@ -84153,9 +72452,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Adds or updates an environment.", "POST": "Environment list is updated on backend and reloaded locally.", - "PRE": "newEnv contains valid environment details.", - "PURPOSE": "Adds or updates an environment." + "PRE": "newEnv contains valid environment details." }, "relations": [], "schema_warnings": [], @@ -84172,10 +72471,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Deletes an environment.", "PARAM": "{string} id - The ID of the environment to delete.", "POST": "Environment is removed from backend and list is reloaded.", - "PRE": "id of environment to delete is provided.", - "PURPOSE": "Deletes an environment." + "PRE": "id of environment to delete is provided." }, "relations": [], "schema_warnings": [ @@ -84199,10 +72498,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Tests the connection to an environment.", "PARAM": "{string} id - The ID of the environment to test.", "POST": "Connection test result is displayed via toast.", - "PRE": "Environment ID is valid.", - "PURPOSE": "Tests the connection to an environment." + "PRE": "Environment ID is valid." }, "relations": [], "schema_warnings": [ @@ -84226,10 +72525,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Sets the form to edit an existing environment.", "PARAM": "{Object} env - The environment object to edit.", "POST": "newEnv is populated with env data and editingEnvId is set.", - "PRE": "env object is provided.", - "PURPOSE": "Sets the form to edit an existing environment." + "PRE": "env object is provided." }, "relations": [], "schema_warnings": [ @@ -84253,9 +72552,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resets the environment form.", "POST": "newEnv is reset to initial state and editingEnvId is cleared.", - "PRE": "None.", - "PURPOSE": "Resets the environment form." + "PRE": "None." }, "relations": [], "schema_warnings": [], @@ -84272,61 +72571,13 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Global error page displaying HTTP status code and error message with navigation back to dashboard.", "COMPLEXITY": 2, "LAYER": "Page", - "PURPOSE": "Global error page displaying HTTP status code and error message with navigation back to dashboard.", "UX_STATE": "Error -> Displays error code and message with \"Back to Dashboard\" link." }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -84344,53 +72595,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -84406,10 +72610,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Root layout component providing global UI structure: Sidebar, TopNavbar, Footer, TaskDrawer, Toasts.", "COMPLEXITY": 3, "INVARIANT": "Sidebar width adapts (ml-60 vs ml-16) based on sidebar expanded state.", "LAYER": "Layout", - "PURPOSE": "Root layout component providing global UI structure: Sidebar, TopNavbar, Footer, TaskDrawer, Toasts.", "UX_FEEDBACK": "Toast notifications rendered globally.", "UX_STATE": "Authenticated -> Full shell rendered with Sidebar, TopNavbar, Footer, global components." }, @@ -84482,80 +72686,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Layout'", - "detail": { - "actual_type": "Layout", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Layout' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Layout" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "INVARIANT", - "message": "@INVARIANT is not allowed for contract type 'Layout'", - "detail": { - "actual_type": "Layout", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Layout' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Layout" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Layout'", - "detail": { - "actual_type": "Layout", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Layout' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Layout" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -84573,82 +72703,6 @@ ], "value": "Layout" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Layout'", - "detail": { - "actual_type": "Layout", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Layout' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Layout" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Layout'", - "detail": { - "actual_type": "Layout", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Layout' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Layout" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Layout'", - "detail": { - "actual_type": "Layout", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Layout' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Layout" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Layout' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Layout" - } } ], "anchor_syntax": "region", @@ -84664,33 +72718,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Infra", - "PURPOSE": "Root layout configuration (SPA mode)" + "BRIEF": "Root layout configuration (SPA mode)", + "LAYER": "Infra" }, "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -84723,10 +72755,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Redirect to preferred start page (dashboards/datasets/reports) based on profile settings, with safe fallback.", "COMPLEXITY": 3, "INVARIANT": "Redirect target resolves to one of /dashboards, /datasets, /reports.", "LAYER": "Page", - "PURPOSE": "Redirect to preferred start page (dashboards/datasets/reports) based on profile settings, with safe fallback.", "UX_FEEDBACK": "Redirects to preferred start page once profile or local fallback is resolved.", "UX_STATE": "Loading -> Shows centered spinner while resolving the preferred landing route." }, @@ -84739,80 +72771,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "INVARIANT", - "message": "@INVARIANT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -84830,82 +72788,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -84921,9 +72803,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Loads initial plugin data for the dashboard.", "POST": "Returns an object with plugins or an error message.", - "PRE": "None.", - "PURPOSE": "Loads initial plugin data for the dashboard." + "PRE": "None." }, "relations": [], "schema_warnings": [], @@ -84955,9 +72837,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Initializes state for creating a new role.", "POST": "showModal is true, roleForm is reset.", - "PRE": "None.", - "PURPOSE": "Initializes state for creating a new role." + "PRE": "None." }, "relations": [], "schema_warnings": [], @@ -84974,9 +72856,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Initializes state for editing an existing role.", "POST": "showModal is true, roleForm is populated.", - "PRE": "role object is provided.", - "PURPOSE": "Initializes state for editing an existing role." + "PRE": "role object is provided." }, "relations": [], "schema_warnings": [], @@ -84993,9 +72875,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Submits role data (create or update).", "POST": "Role is saved, modal closed, data reloaded.", - "PRE": "roleForm contains valid data.", - "PURPOSE": "Submits role data (create or update)." + "PRE": "roleForm contains valid data." }, "relations": [], "schema_warnings": [], @@ -85012,9 +72894,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Deletes a role after confirmation.", "POST": "Role is deleted if confirmed, data reloaded.", - "PRE": "role object is provided.", - "PURPOSE": "Deletes a role after confirmation." + "PRE": "role object is provided." }, "relations": [], "schema_warnings": [], @@ -85031,9 +72913,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Submits a new AD Group to Role mapping to the backend.", "POST": "A new mapping is created in the database and the table is refreshed.", "PRE": "'newMapping' object contains valid 'ad_group' and 'role_id'.", - "PURPOSE": "Submits a new AD Group to Role mapping to the backend.", "RETURNS": "{Promise}", "SIDE_EFFECT": "Closes the modal on success, shows alert on failure." }, @@ -85066,9 +72948,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches current logging configuration from the backend.", "POST": "loggingConfig variable is updated with backend data.", "PRE": "Component is mounted and user has active session.", - "PURPOSE": "Fetches current logging configuration from the backend.", "RETURNS": "{Promise}" }, "relations": [ @@ -85100,9 +72982,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Saves logging configuration to the backend.", "POST": "Configuration is saved and feedback is shown.", "PRE": "loggingConfig contains valid values.", - "PURPOSE": "Saves logging configuration to the backend.", "RETURNS": "{Promise}" }, "relations": [ @@ -85134,9 +73016,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Admin settings page for LLM provider configuration.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Admin settings page for LLM provider configuration.", "SEMANTICS": [ "admin", "llm", @@ -85154,137 +73036,7 @@ "target_ref": "ProviderConfig" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n
\n
\n

{$t.settings?.llm }

\n

\n {$t.settings?.llm_description ||\n \"Configure LLM providers for dashboard validation, documentation generation, and git assistance.\"}\n

\n
\n\n {#if loading}\n
\n
\n
\n {:else}\n \n\n
\n

\n {$t.settings?.llm_chatbot_settings_title }\n

\n

\n {$t.settings?.llm_chatbot_settings_description ||\n 'Select provider and optional model override for assistant intent planning.'}\n

\n\n
\n
\n \n \n \n {#each providers as provider}\n \n {/each}\n \n
\n\n
\n \n \n
\n
\n
\n\n
\n

\n {$t.settings?.llm_provider_bindings_title }\n

\n

\n {$t.settings?.llm_provider_bindings_description ||\n 'Select which provider is used by default for each LLM task.'}\n

\n\n
\n
\n \n \n \n {#each providers as provider}\n \n {/each}\n \n {#if bindings.dashboard_validation && !(getProviderById(bindings.dashboard_validation)?.is_multimodal)}\n

\n {$t.settings?.llm_multimodal_warning ||\n 'Dashboard validation requires a multimodal model (image input).'}\n

\n {/if}\n
\n\n
\n \n \n \n {#each providers as provider}\n \n {/each}\n \n
\n\n
\n \n \n \n {#each providers as provider}\n \n {/each}\n \n
\n
\n
\n\n
\n

\n {$t.settings?.llm_prompts_title }\n

\n

\n {$t.settings?.llm_prompts_description ||\n 'Edit reusable prompts used for documentation, dashboard validation, and git commit generation.'}\n

\n\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n
\n \n {savingPrompts ? '...' : ($t.settings?.save_llm_prompts )}\n \n
\n
\n {/if}\n
\n\n\n" @@ -85298,9 +73050,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Submits user data to the backend (create or update).", "POST": "User created or updated, modal closed, data reloaded.", "PRE": "userForm must be valid.", - "PURPOSE": "Submits user data to the backend (create or update).", "SIDE_EFFECT": "Triggers API call to adminService." }, "relations": [ @@ -85331,10 +73083,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Deletes a user after confirmation.", "PARAM": "{Object} user - The user to delete.", "POST": "User deleted if confirmed, data reloaded.", "PRE": "user object must be valid.", - "PURPOSE": "Deletes a user after confirmation.", "SIDE_EFFECT": "Triggers API call to adminService." }, "relations": [ @@ -85366,9 +73118,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Normalize raw task status to stable lowercase token for UI.", "POST": "returns null or normalized token without enum namespace.", - "PRE": "status can be enum-like string or null.", - "PURPOSE": "Normalize raw task status to stable lowercase token for UI." + "PRE": "status can be enum-like string or null." }, "relations": [], "schema_warnings": [], @@ -85385,9 +73137,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Normalize validation status to pass/fail/warn/unknown.", "POST": "returns one of pass|fail|warn|unknown.", - "PRE": "status can be any scalar.", - "PURPOSE": "Normalize validation status to pass/fail/warn/unknown." + "PRE": "status can be any scalar." }, "relations": [], "schema_warnings": [], @@ -85404,9 +73156,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Map validation level to badge class tuple.", "POST": "returns deterministic tailwind class string.", - "PRE": "level in pass|fail|warn|unknown.", - "PURPOSE": "Map validation level to badge class tuple." + "PRE": "level in pass|fail|warn|unknown." }, "relations": [], "schema_warnings": [], @@ -85423,9 +73175,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Map normalized validation level to compact UI label.", "POST": "returns uppercase status label.", - "PRE": "level in pass|fail|warn|unknown.", - "PURPOSE": "Map normalized validation level to compact UI label." + "PRE": "level in pass|fail|warn|unknown." }, "relations": [], "schema_warnings": [], @@ -85442,9 +73194,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Normalize owners payload to unique non-empty display labels.", "POST": "Returns owner labels preserving source order.", - "PRE": "owners can be null, list of strings, or list of user objects.", - "PURPOSE": "Normalize owners payload to unique non-empty display labels." + "PRE": "owners can be null, list of strings, or list of user objects." }, "relations": [], "schema_warnings": [], @@ -85461,34 +73213,13 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Load full dashboard dataset for current environment and hydrate grid projection.", "POST": "allDashboards, dashboards, pagination and selection state are synchronized.", "PRE": "selectedEnv is not null.", - "PURPOSE": "Load full dashboard dataset for current environment and hydrate grid projection.", "UX_STATE": "Error -> `error` populated when request fails." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 DashboardHub.loadDashboards:Function [TYPE Function]\n /**\n * @PURPOSE: Load full dashboard dataset for current environment and hydrate grid projection.\n * @PRE: selectedEnv is not null.\n * @POST: allDashboards, dashboards, pagination and selection state are synchronized.\n * @UX_STATE: Loading -> true during request lifecycle.\n * @UX_STATE: Error -> `error` populated when request fails.\n */\n async function loadDashboards() {\n if (!selectedEnv) return;\n\n const requestSeq = dashboardsLoadSeq + 1;\n dashboardsLoadSeq = requestSeq;\n isLoading = true;\n error = null;\n try {\n const firstResponse = await api.getDashboards(selectedEnv, {\n page: currentPage,\n page_size: pageSize,\n search: searchQuery.trim() || undefined,\n page_context: \"dashboards_main\",\n apply_profile_default: true,\n override_show_all: profileFilterOverrideShowAll,\n filters: {\n title: Array.from(columnFilters.title),\n git_status: Array.from(columnFilters.git_status),\n llm_status: Array.from(columnFilters.llm_status),\n changed_on: Array.from(columnFilters.changed_on),\n actor: Array.from(columnFilters.actor),\n },\n });\n if (requestSeq !== dashboardsLoadSeq) return;\n\n const rawDashboards = firstResponse?.dashboards || [];\n serverTotal = Number(firstResponse?.total || 0);\n serverTotalPages = Math.max(1, Number(firstResponse?.total_pages || 1));\n effectiveProfileFilter = firstResponse?.effective_profile_filter || null;\n profileFilterOverrideShowAll = Boolean(\n firstResponse?.effective_profile_filter?.override_show_all,\n );\n\n gitResolvedIds = new Set();\n gitLoadingIds = new Set();\n\n allDashboards = rawDashboards.map((d) => {\n const owners = normalizeOwners(d.owners);\n const hasGitStatus = !!d.git_status;\n return {\n id: d.id,\n title: d.title,\n slug: d.slug,\n changedOn: d.last_modified || null,\n changedOnLabel: formatDate(d.last_modified),\n owners,\n actorLabel: owners.length > 0 ? owners.join(\", \") : \"-\",\n git: hasGitStatus\n ? {\n status: d.git_status?.sync_status?.toLowerCase() || \"no_repo\",\n branch: d.git_status?.branch || null,\n hasRepo: d.git_status?.has_repo === true,\n hasChangesForCommit:\n d.git_status?.has_changes_for_commit === true,\n }\n : {\n status: \"pending\",\n branch: null,\n hasRepo: null,\n hasChangesForCommit: false,\n },\n lastTask: d.last_task\n ? {\n status: normalizeTaskStatus(d.last_task.status),\n validationStatus: normalizeValidationStatus(\n d.last_task.validation_status,\n ),\n id: d.last_task.task_id,\n }\n : null,\n actions: [\"migrate\", \"backup\"],\n };\n });\n\n selectedIds = new Set(\n Array.from(selectedIds).filter((id) =>\n allDashboards.some((dashboard) => dashboard.id === id),\n ),\n );\n applyGridTransforms();\n updateSelectionState();\n } catch (err) {\n if (requestSeq !== dashboardsLoadSeq) return;\n error = err.message || $t.dashboard?.load_failed;\n console.error(\n \"[DashboardHub][COHERENCE:FAILED] Load dashboards Error:\",\n err,\n );\n } finally {\n if (requestSeq === dashboardsLoadSeq) {\n isLoading = false;\n }\n }\n }\n\n // Handle search input\n function handleSearch(event) {\n debouncedSearch(event.target.value);\n }\n\n // Load dashboard options for SearchableMultiSelect\n async function loadDashboardSearchOptions(query = '') {\n if (!selectedEnv) return;\n searchableDashboardLoading = true;\n try {\n const response = await api.getDashboards(selectedEnv, {\n search: query || undefined,\n page_size: 100,\n page_context: 'other',\n apply_profile_default: false,\n override_show_all: true,\n });\n searchableDashboardOptions = (response?.dashboards || []).map((d) => ({\n id: d.id,\n name: d.title,\n subtitle: d.slug || '',\n hint: d.last_modified ? formatDate(d.last_modified) : '',\n }));\n } catch {\n searchableDashboardOptions = [];\n } finally {\n searchableDashboardLoading = false;\n }\n }\n\n // Handle page change\n function handlePageChange(page) {\n if (page === currentPage) return;\n currentPage = page;\n void loadDashboards();\n }\n\n // Handle page size change\n function handlePageSizeChange(event) {\n pageSize = parseInt(event.target.value);\n currentPage = 1;\n void loadDashboards();\n }\n\n // #region DashboardHub.handleTemporaryShowAll:Function [TYPE Function]\n /**\n * @PURPOSE: Temporarily disable profile-default dashboard filter for current page context.\n * @PRE: Dashboards list is loaded in dashboards_main context.\n * @POST: Next request is sent with override_show_all=true.\n */\n function handleTemporaryShowAll() {\n if (profileFilterOverrideShowAll) return;\n profileFilterOverrideShowAll = true;\n currentPage = 1;\n void loadDashboards();\n }\n // #endregion DashboardHub.handleTemporaryShowAll:Function\n\n // #region DashboardHub.handleRestoreProfileFilter:Function [TYPE Function]\n /**\n * @PURPOSE: Re-enable persisted profile-default filtering after temporary override.\n * @PRE: Current page is in override mode.\n * @POST: Next request is sent with override_show_all=false.\n */\n function handleRestoreProfileFilter() {\n if (!profileFilterOverrideShowAll) return;\n profileFilterOverrideShowAll = false;\n currentPage = 1;\n void loadDashboards();\n }\n // #endregion DashboardHub.handleRestoreProfileFilter:Function\n\n // Update selection state based on current selection\n function updateSelectionState() {\n const visibleCount = dashboards.length;\n const totalCount = filteredDashboards.length;\n\n isAllSelected = selectedIds.size === totalCount && totalCount > 0;\n isAllVisibleSelected =\n selectedIds.size === visibleCount && visibleCount > 0;\n }\n\n function replaceSelectedIds(nextSelection) {\n selectedIds = nextSelection;\n updateSelectionState();\n }\n\n function clearSelectedIds() {\n replaceSelectedIds(new Set());\n }\n\n // Handle checkbox change for individual dashboard\n function handleCheckboxChange(dashboard, event) {\n const nextSelection = new Set(selectedIds);\n if (event.target.checked) {\n nextSelection.add(dashboard.id);\n } else {\n nextSelection.delete(dashboard.id);\n }\n replaceSelectedIds(nextSelection);\n }\n\n // Handle select all\n function handleSelectAll() {\n if (isAllSelected) {\n clearSelectedIds();\n return;\n }\n const nextSelection = new Set(selectedIds);\n filteredDashboards.forEach((dashboard) => nextSelection.add(dashboard.id));\n replaceSelectedIds(nextSelection);\n }\n\n // Handle select visible\n function handleSelectVisible() {\n const nextSelection = new Set(selectedIds);\n if (isAllVisibleSelected) {\n dashboards.forEach((dashboard) => nextSelection.delete(dashboard.id));\n } else {\n dashboards.forEach((dashboard) => nextSelection.add(dashboard.id));\n }\n replaceSelectedIds(nextSelection);\n }\n\n // #endregion DashboardHub.loadDashboards:Function\n" @@ -85502,9 +73233,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Temporarily disable profile-default dashboard filter for current page context.", "POST": "Next request is sent with override_show_all=true.", - "PRE": "Dashboards list is loaded in dashboards_main context.", - "PURPOSE": "Temporarily disable profile-default dashboard filter for current page context." + "PRE": "Dashboards list is loaded in dashboards_main context." }, "relations": [], "schema_warnings": [], @@ -85521,9 +73252,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Re-enable persisted profile-default filtering after temporary override.", "POST": "Next request is sent with override_show_all=false.", - "PRE": "Current page is in override mode.", - "PURPOSE": "Re-enable persisted profile-default filtering after temporary override." + "PRE": "Current page is in override mode." }, "relations": [], "schema_warnings": [], @@ -85540,9 +73271,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Convert ISO timestamp to locale date string.", "POST": "returns formatted date or \"-\".", - "PRE": "value may be null or invalid date string.", - "PURPOSE": "Convert ISO timestamp to locale date string." + "PRE": "value may be null or invalid date string." }, "relations": [], "schema_warnings": [], @@ -85559,9 +73290,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Compute stable text label for git state column.", "POST": "returns localized summary string.", - "PRE": "dashboard has git projection fields.", - "PURPOSE": "Compute stable text label for git state column." + "PRE": "dashboard has git projection fields." }, "relations": [], "schema_warnings": [], @@ -85578,9 +73309,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Compute normalized LLM validation summary label.", "POST": "returns UNKNOWN fallback for missing status.", - "PRE": "dashboard may have null lastTask.", - "PURPOSE": "Compute normalized LLM validation summary label." + "PRE": "dashboard may have null lastTask." }, "relations": [], "schema_warnings": [], @@ -85597,9 +73328,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve comparable/filterable display value for any grid column.", "POST": "returns non-empty scalar display value.", - "PRE": "column belongs to filterable column set.", - "PURPOSE": "Resolve comparable/filterable display value for any grid column." + "PRE": "column belongs to filterable column set." }, "relations": [], "schema_warnings": [], @@ -85616,9 +73347,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Build unique sorted value list for a column filter dropdown.", "POST": "returns de-duplicated sorted options.", - "PRE": "allDashboards is hydrated.", - "PURPOSE": "Build unique sorted value list for a column filter dropdown." + "PRE": "allDashboards is hydrated." }, "relations": [], "schema_warnings": [], @@ -85635,9 +73366,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Apply in-dropdown search over full filter options.", "POST": "returns subset for current filter popover list.", - "PRE": "columnFilterSearch contains search token for column.", - "PURPOSE": "Apply in-dropdown search over full filter options." + "PRE": "columnFilterSearch contains search token for column." }, "relations": [], "schema_warnings": [], @@ -85654,9 +73385,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Toggle active column filter popover.", "POST": "openFilterColumn updated.", - "PRE": "column is valid filter key.", - "PURPOSE": "Toggle active column filter popover." + "PRE": "column is valid filter key." }, "relations": [], "schema_warnings": [], @@ -85673,9 +73404,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Add/remove specific filter value and reapply projection.", "POST": "columnFilters updated and grid reprojected from page 1.", - "PRE": "value comes from option list of the same column.", - "PURPOSE": "Add/remove specific filter value and reapply projection." + "PRE": "value comes from option list of the same column." }, "relations": [], "schema_warnings": [], @@ -85692,9 +73423,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Reset selected values for one column.", "POST": "filter cleared and projection refreshed.", - "PRE": "column is valid filter key.", - "PURPOSE": "Reset selected values for one column." + "PRE": "column is valid filter key." }, "relations": [], "schema_warnings": [], @@ -85711,9 +73442,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Select all currently visible values in filter popover.", "POST": "column filter equals current visible option set.", - "PRE": "visible options computed for current search token.", - "PURPOSE": "Select all currently visible values in filter popover." + "PRE": "visible options computed for current search token." }, "relations": [], "schema_warnings": [], @@ -85730,9 +73461,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Update local search token for one filter popover.", "POST": "columnFilterSearch updated immutably.", - "PRE": "value is text from input.", - "PURPOSE": "Update local search token for one filter popover." + "PRE": "value is text from input." }, "relations": [], "schema_warnings": [], @@ -85749,9 +73480,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Determine if column has active selected values.", "POST": "returns boolean activation marker.", - "PRE": "column is valid filter key.", - "PURPOSE": "Determine if column has active selected values." + "PRE": "column is valid filter key." }, "relations": [], "schema_warnings": [], @@ -85768,9 +73499,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Evaluate dashboard row against all active column filters.", "POST": "returns true only when row matches every active filter.", - "PRE": "dashboard contains projected values for each filterable column.", - "PURPOSE": "Evaluate dashboard row against all active column filters." + "PRE": "dashboard contains projected values for each filterable column." }, "relations": [], "schema_warnings": [], @@ -85787,9 +73518,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Compute stable comparable sort key for chosen column.", "POST": "returns string/number key suitable for deterministic comparison.", - "PRE": "column belongs to sortable set.", - "PURPOSE": "Compute stable comparable sort key for chosen column." + "PRE": "column belongs to sortable set." }, "relations": [], "schema_warnings": [], @@ -85806,9 +73537,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Toggle or switch sort order and reapply grid projection.", "POST": "sortColumn/sortDirection updated and page reset to 1.", - "PRE": "column belongs to sortable set.", - "PURPOSE": "Toggle or switch sort order and reapply grid projection." + "PRE": "column belongs to sortable set." }, "relations": [], "schema_warnings": [], @@ -85825,9 +73556,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Return visual indicator for active/inactive sort header.", "POST": "returns one of ↕ | ↑ | ↓.", - "PRE": "column belongs to sortable set.", - "PURPOSE": "Return visual indicator for active/inactive sort header." + "PRE": "column belongs to sortable set." }, "relations": [], "schema_warnings": [], @@ -85844,34 +73575,13 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Apply search + column filters + sort + pagination to grid data.", "POST": "filteredDashboards/dashboards/total/totalPages are synchronized.", "PRE": "allDashboards is current source collection.", - "PURPOSE": "Apply search + column filters + sort + pagination to grid data.", "UX_STATE": "Loaded -> visible rows reflect all active controls deterministically." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 DashboardHub.applyGridTransforms:Function [TYPE Function]\n /**\n * @PURPOSE: Apply search + column filters + sort + pagination to grid data.\n * @PRE: allDashboards is current source collection.\n * @POST: filteredDashboards/dashboards/total/totalPages are synchronized.\n * @UX_STATE: Loaded -> visible rows reflect all active controls deterministically.\n */\n function applyGridTransforms() {\n let nextFiltered = allDashboards;\n // Client-side multi-select filter (SearchableMultiSelect)\n if (filterDashboardIds.length > 0) {\n nextFiltered = nextFiltered.filter((d) =>\n filterDashboardIds.includes(d.id),\n );\n }\n\n nextFiltered.sort((a, b) => {\n const aValue = getSortValue(a, sortColumn);\n const bValue = getSortValue(b, sortColumn);\n if (aValue < bValue) return sortDirection === \"asc\" ? -1 : 1;\n if (aValue > bValue) return sortDirection === \"asc\" ? 1 : -1;\n return 0;\n });\n\n filteredDashboards = nextFiltered;\n dashboards = filteredDashboards;\n total = serverTotal;\n totalPages = serverTotalPages;\n updateSelectionState();\n void hydrateVisibleGitStatusesBatch();\n }\n // #endregion DashboardHub.applyGridTransforms:Function\n" @@ -85885,9 +73595,9 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Top title area, breadcrumb, Git branch selector, and action buttons for dashboard detail.", "COMPLEXITY": 2, "LAYER": "UI", - "PURPOSE": "Top title area, breadcrumb, Git branch selector, and action buttons for dashboard detail.", "UX_STATE": "Idle -> Header with back button, title, Git status badge, and action buttons." }, "relations": [ @@ -85904,30 +73614,7 @@ "target_ref": "[Icon]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n
\n
\n \n \n {$t.common?.back}\n \n\n
\n

\n {dashboard?.title || $t.dashboard?.overview}\n

\n {#if hasGitRepo && gitDashboardRef}\n
\n \n
\n {/if}\n
\n\n

\n {$t.common?.id}: {resolvedDashboardId ?? dashboardRef}{#if dashboard?.slug} • {dashboard.slug}{/if}\n |\n \n \n Git: {gitMeta.label}\n {#if gitStatus?.ahead_count > 0}\n ({gitStatus.ahead_count})\n {/if}\n \n

\n
\n\n
\n (showGitManager = true)}\n >\n {$t.git?.management || \"Manage Git\"}\n \n \n {isStartingBackup ? $t.common?.loading || \"Loading...\" : $t.dashboard?.run_backup || \"Run backup\"}\n \n \n {isStartingValidation ? $t.common?.loading || \"Loading...\" : $t.dashboard?.run_llm_check || \"Run LLM check\"}\n \n \n {$t.common?.refresh}\n \n
\n
\n\n" @@ -85941,8 +73628,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Verifies temporary show-all override and restore-on-return behavior for profile-default dashboard filtering.", "LAYER": "UI (Tests)", - "PURPOSE": "Verifies temporary show-all override and restore-on-return behavior for profile-default dashboard filtering.", "SEMANTICS": [ "tests", "dashboards", @@ -85961,28 +73648,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -86034,9 +73699,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Main page for the Dashboard Health Center showing health matrix table with environment filtering.", "COMPLEXITY": 3, "LAYER": "Page", - "PURPOSE": "Main page for the Dashboard Health Center showing health matrix table with environment filtering.", "UX_STATE": "Error -> Error message displayed inline." }, "relations": [ @@ -86060,54 +73725,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -86125,62 +73742,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -86196,9 +73757,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Load health summary rows and environment options for the current filter.", "POST": "`healthData` and `environments` reflect latest backend response.", "PRE": "Page is mounted or environment selection changed.", - "PURPOSE": "Load health summary rows and environment options for the current filter.", "SIDE_EFFECT": "Calls backend API endpoints for health summary and environments." }, "relations": [], @@ -86216,9 +73777,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Apply environment filter and trigger health summary reload.", "POST": "selectedEnvId is updated and new data load starts.", - "PRE": "DOM change event carries target value.", - "PURPOSE": "Apply environment filter and trigger health summary reload." + "PRE": "DOM change event carries target value." }, "relations": [], "schema_warnings": [], @@ -86235,9 +73796,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Delete one health report row with confirmation and optimistic button lock.", "POST": "Row is removed from backend and page data is reloaded on success.", "PRE": "item contains `record_id` from health summary payload.", - "PURPOSE": "Delete one health report row with confirmation and optimistic button lock.", "SIDE_EFFECT": "Calls DELETE health API and emits toast notifications." }, "relations": [], @@ -86255,8 +73816,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Lock dashboard health page contract for slug navigation and report deletion.", "LAYER": "UI Tests", - "PURPOSE": "Lock dashboard health page contract for slug navigation and report deletion.", "SEMANTICS": [ "health-page", "integration-test", @@ -86273,28 +73834,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -86330,34 +73869,7 @@ "COMPLEXITY": 5 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C5", - "detail": { - "actual_complexity": 5, - "contract_type": "Page" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n
\n \n
\n

{$t.nav?.datasets}

\n
\n \n {$t.datasets?.all}: {stats?.total ?? 0}\n \n \n
\n
\n\n \n {#if dsError}\n
\n {dsError}\n \n
\n {/if}\n\n \n \n\n \n
\n \n
\n \n
\n\n \n {#if isMobile && mobileSlideOpen}\n \n \n \n \n
\n {detailData?.table_name ?? $t.datasets?.no_selection}\n \n
\n detailData && loadDetail(detailData.id)} envId={selectedEnv} />\n
\n {:else if !isMobile}\n
\n selectedDatasetId && loadDetail(selectedDatasetId)} envId={selectedEnv} />\n
\n {/if}\n
\n\n \n {#if selectedIds.size >= 2}\n
\n
\n ✓ {selectedIds.size} {$t.datasets?.selected}\n
\n \n \n \n
\n
\n
\n {/if}\n\n \n {#if showMapColumnsModal}\n
{ if (e.target === e.currentTarget) showMapColumnsModal = false; }}>\n
e.stopPropagation()}>\n

{$t.datasets?.bulk_map_columns}

\n

{$t.datasets?.selected_count?.replace('{count}', String(selectedIds.size))}

\n\n \n {$t.datasets?.source_type ?? 'Тип источника'}\n \n \n { if (mapSourceType === 'sqllab' && mapDatabases.length === 0 && selectedEnv) { api.getEnvironmentDatabases(selectedEnv).then(dbs => mapDatabases = dbs ?? []).catch(() => {}); } }}\n >\n \n \n \n {#if mapSourceType === \"sqllab\"}\n \n \n \n \n \n \n {#each mapDatabases as db (db.id)}\n \n {/each}\n \n \n \n \n \n \n
\n {$t.datasets?.sql_templates ?? 'Шаблоны'}:\n { mapSqlQuery = \"SELECT c.column_name, c.data_type, pgd.description\\nFROM information_schema.columns c\\nLEFT JOIN pg_catalog.pg_description pgd ON pgd.objsubid = c.ordinal_position\\n AND pgd.objoid = (SELECT attrelid FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = c.table_name) AND attname = c.column_name)\\nWHERE c.table_schema = 'public'\\n AND c.table_name = 'your_table_name'\\nORDER BY c.ordinal_position;\" }}\n >information_schema\n { mapSqlQuery = \"SELECT column_name, description AS verbose_name\\nFROM my_column_mappings\\nWHERE table_name = 'your_table_name'\\nORDER BY column_name;\" }}\n >{$t.datasets?.sql_template_custom ?? 'Кастомная таблица'}\n { mapSqlQuery = \"\"; }}\n >{$t.datasets?.sql_template_clear ?? 'Очистить'}\n
\n \n {:else}\n \n \n \n \n mapFileData = e.target.files}\n />\n {/if}\n
\n \n \n
\n
\n
\n {/if}\n\n \n {#if showGenerateDocsModal}\n
{ if (e.target === e.currentTarget) showGenerateDocsModal = false; }}>\n
e.stopPropagation()}>\n

{$t.datasets?.bulk_docs_generation}

\n

{$t.datasets?.selected_count?.replace('{count}', String(selectedIds.size))}

\n \n {$t.datasets?.select_llm_provider ?? 'LLM-провайдер'}\n \n \n \n
\n \n \n
\n
\n
\n {/if}\n\n\n" @@ -86371,9 +73883,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Table of dataset columns with type chips, description, and inline-edit capability.", "COMPLEXITY": 4, "LAYER": "UI", - "PURPOSE": "Table of dataset columns with type chips, description, and inline-edit capability.", "UX_REACTIVITY": "Props -> columns, datasetId", "UX_STATE": "Editing -> One row in edit mode (textarea), others dimmed." }, @@ -86385,30 +73897,7 @@ "target_ref": "[api_module]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "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 \n \n {#if columns.length === 0}\n \n {:else}\n {#each columns as col (col.id)}\n \n \n \n \n \n \n {/each}\n {/if}\n \n
{$t.datasets?.table_name ?? 'Column'}{$t.dashboard?.type ?? 'Type'}{$t.dashboard?.description ?? 'Description'}
{$t.datasets?.detail_empty ?? 'No data'}
\n {#if col.verbose_name}\n {col.verbose_name}\n {:else}\n {col.name}\n {/if}\n \n \n {col.type ?? '—'}\n \n \n {#if editingRowId === col.id}\n
\n \n {#if editError}\n {editError}\n {/if}\n
\n saveEdit(col)}\n disabled={isSaving}\n >{isSaving ? '...' : ($t.datasets?.save_description ?? 'Save')}\n {$t.common?.cancel ?? 'Cancel'}\n
\n
\n {:else if col.description}\n {col.description}\n {:else}\n {'✏️ ' + ($t.datasets?.add_description ?? 'Add description')}\n {/if}\n
\n {#if editingRowId !== col.id}\n startEdit(col)}\n aria-label={$t.datasets?.add_description ?? 'Edit'}\n >✏️\n {/if}\n
\n
\n\n" @@ -86422,8 +73911,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Renders paginated dataset cards with mapping progress bars, checkboxes, and quick actions.", "COMPLEXITY": 4, - "PURPOSE": "Renders paginated dataset cards with mapping progress bars, checkboxes, and quick actions.", "RATIONALE": "Action buttons switched from bg-primary solid to border-outline style, card padding reduced from p-3 to p-2.5, row gap from gap-3 to gap-2.5 — fixes \"huge buttons\" visual complaint.", "REJECTED": "Solid blue action buttons rejected — too visually heavy on each card line.", "UX_REACTIVITY": "Props -> datasets, selectedIds, isLoading, error, total, page, totalPages, pageSize, onselect, onaction, onpagechange, onsearch, oncheckbox", @@ -86451,9 +73940,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Right panel showing dataset detail: header info, columns table, metrics table, linked dashboards. Presentational.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Right panel showing dataset detail: header info, columns table, metrics table, linked dashboards. Presentational.", "UX_STATE": "Error -> Error banner with retry." }, "relations": [ @@ -86470,30 +73959,7 @@ "target_ref": "[MetricsTable]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n\n\n{#if isLoading}\n
\n
\n
\n
\n {#each Array(3) as _, i (i)}\n
\n {/each}\n
\n
\n{:else if error}\n
\n
{error}
\n {#if onretry}\n \n {/if}\n
\n{:else if !dataset}\n
\n
\n \n

{$t.datasets?.no_selection ?? 'Select a dataset from the list'}

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

{dataset.table_name ?? dataset.id}

\n
\n {#if dataset.schema}📁 {dataset.schema}{/if}\n {dataset.column_count ?? 0} {$t.datasets?.columns?.toLowerCase() ?? 'columns'}\n {dataset.metric_count ?? 0} {$t.datasets?.metric_count ?? 'metrics'}\n {#if dataset.linked_dashboard_count > 0}\n 📊 {dataset.linked_dashboard_count} dashboards\n {/if}\n
\n {#if dataset.linked_dashboards?.length}\n
\n {#each dataset.linked_dashboards as dash}\n \n {dash.title}\n \n {/each}\n
\n {/if}\n {#if dataset.created_on}\n
{$t.dashboard?.created ?? 'Created'}: {dataset.created_on}
\n {/if}\n
\n\n \n
\n

{$t.datasets?.columns ?? 'Columns'} ({dataset.column_count ?? 0})

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

{$t.datasets?.metrics ?? 'Metrics'} ({dataset.metric_count ?? 0})

\n \n
\n
\n{/if}\n\n" @@ -86507,9 +73973,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Table of dataset metrics with expression, description, and inline-edit capability.", "COMPLEXITY": 4, "LAYER": "UI", - "PURPOSE": "Table of dataset metrics with expression, description, and inline-edit capability.", "UX_REACTIVITY": "Props -> metrics, datasetId", "UX_STATE": "Editing -> One row in edit mode." }, @@ -86521,30 +73987,7 @@ "target_ref": "[api_module]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "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 \n {#if metrics.length === 0}\n \n {:else}\n {#each metrics as metric (metric.id)}\n \n \n \n \n \n {/each}\n {/if}\n \n
{$t.datasets?.metrics ?? 'Metric'}{$t.dashboard?.description ?? 'Description'}
{$t.datasets?.detail_empty ?? 'No data'}
\n {#if metric.verbose_name}\n {metric.verbose_name}\n {:else}\n {metric.metric_name}\n {/if}\n {#if !metric.description && metric.expression}\n
{metric.expression}
\n {/if}\n
\n {#if editingRowId === metric.id}\n
\n \n {#if editError}\n {editError}\n {/if}\n
\n saveEdit(metric)}\n disabled={isSaving}\n >{isSaving ? '...' : ($t.datasets?.save_description ?? 'Save')}\n {$t.common?.cancel ?? 'Cancel'}\n
\n
\n {:else if metric.description}\n {metric.description}\n {:else}\n {'✏️ ' + ($t.datasets?.add_description ?? 'Add description')}\n {/if}\n
\n {#if editingRowId !== metric.id}\n startEdit(metric)}\n aria-label={$t.datasets?.add_description ?? 'Edit'}\n >✏️\n {/if}\n
\n
\n\n" @@ -86558,8 +74001,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Compact filter pills showing aggregate counts (All, Without mapping, Mapped, Linked).", "COMPLEXITY": 3, - "PURPOSE": "Compact filter pills showing aggregate counts (All, Without mapping, Mapped, Linked).", "RATIONALE": "Converted from card tiles (p-3, text-2xl) to compact pills (rounded-full px-3 py-1 text-sm) to fix oversized buttons complaint.", "REJECTED": "Card-tile filter buttons rejected — were too visually heavy at 12px padding + 24px font, dominating the page top.", "UX_REACTIVITY": "Events -> onfilter(filterKey) emitted on pill click", @@ -86587,9 +74030,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Entry route for Dataset Review Workspace — start a new resumable review session or navigate to existing sessions.", "COMPLEXITY": 3, "LAYER": "Page", - "PURPOSE": "Entry route for Dataset Review Workspace — start a new resumable review session or navigate to existing sessions.", "UX_RECOVERY": "User can correct invalid input and retry without losing environment selection.", "UX_STATE": "Error -> Inline error shown while keeping intake editable." }, @@ -86614,54 +74057,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -86679,82 +74074,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -86770,35 +74089,12 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Header section for the dataset review workspace with title, description, and status badges.", "COMPLEXITY": 2, - "LAYER": "UI", - "PURPOSE": "Header section for the dataset review workspace with title, description, and status badges." + "LAYER": "UI" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n
\n
\n

\n {$t.dataset_review?.workspace?.eyebrow}\n

\n

\n {$t.dataset_review?.workspace?.title}\n

\n

\n {$t.dataset_review?.workspace?.description}\n

\n
\n\n
\n {#if session}\n \n {session.source_kind || $t.dataset_review?.workspace?.source_badge_fallback}\n \n \n {profile?.dataset_name || session.dataset_ref}\n \n {/if}\n \n {$t.dataset_review?.workspace?.state_label}: {getWorkspaceStateLabel(currentWorkspaceState)}\n \n {#if session}\n \n {$t.dataset_review?.workspace?.readiness_label}: {readinessLabel}\n \n {/if}\n
\n
\n\n" @@ -86812,35 +74108,12 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Left sidebar for dataset review workspace: source info, import status, session summary, clarification focus, primary actions.", "COMPLEXITY": 3, - "LAYER": "UI", - "PURPOSE": "Left sidebar for dataset review workspace: source info, import status, session summary, clarification focus, primary actions." + "LAYER": "UI" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n
\n

\n {$t.dataset_review?.workspace?.source_session_title}\n

\n\n
\n
\n {$t.dataset_review?.workspace?.source_label}\n
\n
\n {session.source_input || session.dataset_ref}\n
\n
\n\n
\n
\n
\n
\n {$t.dataset_review?.workspace?.import_status_title}\n
\n
\n {getWorkspaceStateLabel(currentWorkspaceState)}\n
\n
\n \n {readinessLabel}\n \n
\n\n
    \n {#each importMilestones as milestone}\n
  1. \n \n {milestone.label}\n
  2. \n {/each}\n
\n
\n\n
\n
\n {$t.dataset_review?.workspace?.session_label || \"Session summary\"}\n
\n
\n {profile?.dataset_name || session.dataset_ref}\n
\n
\n {profile?.business_summary_source || \"ai_draft\"} • {profile?.confidence_state || \"unresolved\"}\n
\n
\n \n {$t.dataset_review?.workspace?.filter_count_label || \"Filters\"}: {importedFilters.length}\n \n \n {$t.dataset_review?.workspace?.mapping_count_label || \"Mappings\"}: {executionMappings.length}\n \n \n {$t.dataset_review?.workspace?.finding_count_label || \"Findings\"}: {findings.length}\n \n
\n
\n\n {#if clarificationCurrentQuestion}\n
\n
\n {$t.dataset_review?.workspace?.clarification_focus_label || \"Clarification focus\"}\n
\n
{clarificationCurrentQuestion.question_text}
\n

{clarificationCurrentQuestion.why_it_matters}

\n onPromptAssistant(`clarification:${clarificationCurrentQuestion.question_id}`, clarificationCurrentQuestion.question_text)}\n >\n {$t.dataset_review?.clarification?.resume_action || \"Resume clarification\"}\n \n
\n {/if}\n\n
\n \n {getPrimaryActionCtaLabel()}\n \n \n {$t.dataset_review?.workspace?.save_session_action}\n \n
\n
\n\n" @@ -86854,35 +74127,12 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Right rail for dataset review workspace: next action, blockers, health counts, exports, SQL preview, launch panel.", "COMPLEXITY": 3, - "LAYER": "UI", - "PURPOSE": "Right rail for dataset review workspace: next action, blockers, health counts, exports, SQL preview, launch panel." + "LAYER": "UI" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n
\n
\n

\n {$t.dataset_review?.workspace?.next_action_card_eyebrow}\n

\n

\n {getRecommendedActionLabel(session.recommended_action)}\n

\n

\n {$t.dataset_review?.workspace?.execution_rail_body || \"The right rail stays dedicated to preview, blockers, exports, and launch.\"}\n

\n\n {#if workspaceLaunchBlockers.length > 0}\n
\n
\n {$t.dataset_review?.workspace?.launch_blockers_title || \"Launch blockers snapshot\"}\n
\n
    \n {#each workspaceLaunchBlockers as blocker}\n
  • {blocker}
  • \n {/each}\n
\n
\n {/if}\n
\n\n
\n

\n {$t.dataset_review?.workspace?.health_title}\n

\n
\n
\n
\n {$t.dataset_review?.findings?.blocking_title}\n
\n
{blockingCount}
\n
\n
\n
\n {$t.dataset_review?.findings?.warning_title}\n
\n
{warningCount}
\n
\n
\n
\n {$t.dataset_review?.findings?.informational_title}\n
\n
{infoCount}
\n
\n
\n
\n\n
\n

\n {$t.dataset_review?.workspace?.exports_title}\n

\n
\n onExportArtifact(\"documentation\", \"json\")}\n disabled={exportDisabled}\n >\n {$t.dataset_review?.workspace?.export_documentation_json}\n \n onExportArtifact(\"documentation\", \"markdown\")}\n disabled={exportDisabled}\n >\n {$t.dataset_review?.workspace?.export_documentation_markdown}\n \n onExportArtifact(\"validation\", \"json\")}\n disabled={exportDisabled}\n >\n {$t.dataset_review?.workspace?.export_validation_json}\n \n onExportArtifact(\"validation\", \"markdown\")}\n disabled={exportDisabled}\n >\n {$t.dataset_review?.workspace?.export_validation_markdown}\n \n
\n {#if exportMessage}\n
\n {exportMessage}\n
\n {/if}\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n" @@ -86896,10 +74146,10 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Main dataset review workspace — thin shell delegating to extracted components.", "COMPLEXITY": 4, "DEPRECATED": "N/A — active workspace page.", "LAYER": "Page", - "PURPOSE": "Main dataset review workspace — thin shell delegating to extracted components.", "RATIONALE": "Decomposed from 1202→~380 lines by extracting helpers, composables, and sidebar/rail/header components per INV_7.", "REJECTED": "Keeping all logic inline was rejected — exceeded 150-line contract limit and cyclomatic complexity thresholds.", "REPLACED_BY": "N/A", @@ -86944,81 +74194,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "DEPRECATED", - "message": "@DEPRECATED is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DEPRECATED", - "message": "@DEPRECATED is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -87036,143 +74211,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REJECTED", - "message": "@REJECTED is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REJECTED", - "message": "@REJECTED is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REPLACED_BY", - "message": "@REPLACED_BY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REPLACED_BY", - "message": "@REPLACED_BY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -87188,9 +74226,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Verify dataset review entry route exposes resumable sessions alongside the new session intake flow.", "COMPLEXITY": "3", "LAYER": "UI", - "PURPOSE": "Verify dataset review entry route exposes resumable sessions alongside the new session intake flow.", "SEMANTICS": [ "dataset-review", "workspace-entry", @@ -87210,47 +74248,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Module'", - "detail": { - "actual_type": "Module", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Module' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Module" - } - }, { "code": "def_format_deprecated", "tag": "FORMAT", @@ -87275,8 +74272,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Shared helper functions for the dataset review workspace.", "COMPLEXITY": 2, - "PURPOSE": "Shared helper functions for the dataset review workspace.", "RATIONALE": "Extracted from DatasetReviewWorkspace to reduce page script size per INV_7." }, "relations": [], @@ -87429,8 +74426,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "Composable for dataset review session state management — load, update, export, and clarify." + "BRIEF": "Composable for dataset review session state management — load, update, export, and clarify.", + "COMPLEXITY": 3 }, "relations": [ { @@ -87472,9 +74469,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Git integration page for selecting environments and managing dashboard repositories.", "COMPLEXITY": 3, "LAYER": "Page", - "PURPOSE": "Git integration page for selecting environments and managing dashboard repositories.", "UX_FEEDBACK": "Toast notifications on API errors.", "UX_RECOVERY": "User can retry by changing environment or refreshing.", "UX_STATE": "Error -> Toast-driven failure feedback preserves filter selection." @@ -87494,54 +74491,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -87559,102 +74508,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -87670,10 +74523,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Provides the user interface for local (username/password) and ADFS SSO authentication.", "COMPLEXITY": 3, "INVARIANT": "Shows both local login form and ADFS SSO button.", "LAYER": "Page", - "PURPOSE": "Provides the user interface for local (username/password) and ADFS SSO authentication.", "UX_FEEDBACK": "Loading text on submit button while authenticating.", "UX_RECOVERY": "User can retry login after error.", "UX_STATE": "Success -> User authenticated, redirected to homepage." @@ -87693,80 +74546,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "INVARIANT", - "message": "@INVARIANT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -87784,102 +74563,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -87895,9 +74578,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Maintenance Banners management page. Composes SettingsPanel and EventsTable from store.", "COMPLEXITY": 3, "LAYER": "Page", - "PURPOSE": "Maintenance Banners management page. Composes SettingsPanel and EventsTable from store.", "UX_FEEDBACK": "Toast via addToast() from $lib/toasts.js", "UX_RECOVERY": "Refresh via maintenanceStore.loadEvents().", "UX_STATE": "Error -> Error toast shown." @@ -87923,54 +74606,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -87988,102 +74623,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -88099,34 +74638,13 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Automatically fetch dashboards when the source environment is changed.", "POST": "fetchDashboards is called with the new sourceEnvId.", "PRE": "sourceEnvId is not empty.", - "PURPOSE": "Automatically fetch dashboards when the source environment is changed.", "UX_STATE": "[Loading] -> Triggered when sourceEnvId changes." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 ReactiveDashboardFetch:Block [TYPE Function]\n /**\n * @BRIEF: Automatically fetch dashboards when the source environment is changed.\n * @PRE: sourceEnvId is not empty.\n * @POST: fetchDashboards is called with the new sourceEnvId.\n * @UX_STATE: [Loading] -> Triggered when sourceEnvId changes.\n */\n $effect(() => {\n if (!sourceEnvId) return;\n console.info(\"[ReactiveDashboardFetch][REASON] Source environment changed, fetching dashboards\", { sourceEnvId });\n void fetchDashboards(sourceEnvId);\n });\n // #endregion ReactiveDashboardFetch:Block\n" @@ -88140,9 +74658,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Saves a mapping to the backend.", "POST": "Mapping is saved and local mappings list is updated.", - "PRE": "event.detail contains sourceUuid and targetUuid.", - "PURPOSE": "Saves a mapping to the backend." + "PRE": "event.detail contains sourceUuid and targetUuid." }, "relations": [], "schema_warnings": [], @@ -88159,9 +74677,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Opens the log viewer for a specific task.", "POST": "logViewer state updated and showLogViewer set to true.", - "PRE": "event.detail contains task object.", - "PURPOSE": "Opens the log viewer for a specific task." + "PRE": "event.detail contains task object." }, "relations": [], "schema_warnings": [], @@ -88178,9 +74696,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Reactive logic to show password prompt when a task is awaiting input.", "POST": "showPasswordPrompt set to true with request data.", - "PRE": "selectedTask status is AWAITING_INPUT.", - "PURPOSE": "Reactive logic to show password prompt when a task is awaiting input." + "PRE": "selectedTask status is AWAITING_INPUT." }, "relations": [], "schema_warnings": [], @@ -88197,34 +74715,13 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Monitor selected task for input requests and trigger password prompt.", "POST": "showPasswordPrompt is set to true if input_request is database_password.", "PRE": "$selectedTask is not null and status is AWAITING_INPUT.", - "PURPOSE": "Monitor selected task for input requests and trigger password prompt.", "UX_STATE": "[AwaitingInput] -> Password prompt modal is displayed." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 ReactivePasswordPrompt:Block [TYPE Function]\n /**\n * @BRIEF: Monitor selected task for input requests and trigger password prompt.\n * @PRE: $selectedTask is not null and status is AWAITING_INPUT.\n * @POST: showPasswordPrompt is set to true if input_request is database_password.\n * @UX_STATE: [AwaitingInput] -> Password prompt modal is displayed.\n */\n $effect(() => {\n const activeTask = selectedTaskState.current;\n if (\n !activeTask ||\n activeTask.status !== \"AWAITING_INPUT\" ||\n !activeTask.input_request\n ) {\n return;\n }\n const req = activeTask.input_request;\n if (req.type === \"database_password\") {\n console.info(\"[ReactivePasswordPrompt][REASON] Task awaiting database passwords\", { taskId: activeTask.id });\n passwordPromptDatabases = req.databases || [];\n passwordPromptErrorMessage = req.error_message || \"\";\n showPasswordPrompt = true;\n }\n });\n // #endregion ReactivePasswordPrompt:Block\n" @@ -88238,9 +74735,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resumes a migration task with provided passwords.", "POST": "resumeTask is called and showPasswordPrompt is hidden on success.", - "PRE": "event.detail contains passwords.", - "PURPOSE": "Resumes a migration task with provided passwords." + "PRE": "event.detail contains passwords." }, "relations": [], "schema_warnings": [], @@ -88257,35 +74754,14 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Initiates the migration process by sending the selection to the backend.", "POST": "A migration task is created and selectedTask store is updated.", "PRE": "sourceEnvId and targetEnvId are set and different; at least one dashboard is selected.", - "PURPOSE": "Initiates the migration process by sending the selection to the backend.", "SIDE_EFFECT": "Resets dryRunResult; updates error state on failure.", "UX_STATE": "[Loading] -> [Success] or [Error]" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 startMigration:Function [TYPE Function]\n /**\n * @BRIEF: Initiates the migration process by sending the selection to the backend.\n * @PRE: sourceEnvId and targetEnvId are set and different; at least one dashboard is selected.\n * @POST: A migration task is created and selectedTask store is updated.\n * @SIDE_EFFECT: Resets dryRunResult; updates error state on failure.\n * @UX_STATE: [Loading] -> [Success] or [Error]\n */\n async function startMigration() {\n return belief_scope(\"startMigration\", async () => {\n if (!sourceEnvId || !targetEnvId) {\n console.warn(\"[startMigration][EXPLORE] Missing environment selection\");\n error =\n $t.migration?.select_both_envs ||\n \"Please select both source and target environments.\";\n return;\n }\n if (sourceEnvId === targetEnvId) {\n console.warn(\"[startMigration][EXPLORE] Source and target environments are identical\");\n error =\n $t.migration?.different_envs ||\n \"Source and target environments must be different.\";\n return;\n }\n if (selectedDashboardIds.length === 0) {\n console.warn(\"[startMigration][EXPLORE] No dashboards selected\");\n error =\n $t.migration?.select_dashboards ||\n \"Please select at least one dashboard to migrate.\";\n return;\n }\n\n console.info(\"[startMigration][REASON] Initiating migration execution\", {\n sourceEnvId,\n targetEnvId,\n dashboardCount: selectedDashboardIds.length\n });\n error = \"\";\n try {\n dryRunResult = null;\n const selection: DashboardSelection = {\n selected_ids: selectedDashboardIds,\n source_env_id: sourceEnvId,\n target_env_id: targetEnvId,\n replace_db_config: replaceDb,\n fix_cross_filters: fixCrossFilters,\n };\n \n const result = await api.postApi(\"/migration/execute\", selection);\n console.info(\"[startMigration][REFLECT] Migration task created\", { taskId: result.task_id });\n\n // Wait a brief moment for the backend to ensure the task is retrievable\n await new Promise((r) => setTimeout(r, 500));\n\n // Fetch full task details and switch to TaskRunner view\n try {\n const task = await api.getTask(result.task_id);\n selectedTask.set(task);\n console.info(\"[startMigration][REFLECT] Task details fetched and store updated\");\n } catch (fetchErr) {\n console.warn(\"[startMigration][EXPLORE] Could not fetch task details immediately, using placeholder\", fetchErr);\n selectedTask.set({\n id: result.task_id,\n plugin_id: \"superset-migration\",\n status: \"RUNNING\",\n logs: [],\n params: {},\n });\n }\n } catch (e) {\n console.error(\"[startMigration][EXPLORE] Migration initiation failed\", e);\n error = e.message;\n }\n });\n }\n // #endregion startMigration:Function\n" @@ -88299,76 +74775,15 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Performs a dry-run migration to identify potential risks and changes.", "POST": "dryRunResult is populated with the pre-flight analysis.", "PRE": "source/target environments and selected dashboards are valid.", - "PURPOSE": "Performs a dry-run migration to identify potential risks and changes.", "UX_FEEDBACK": "User sees summary cards + risk block + JSON details after success.", "UX_RECOVERY": "User can adjust selection and press Dry Run again.", "UX_STATE": "[Loading] -> [Success] or [Error]" }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Function' at C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Function'", - "detail": { - "actual_type": "Function", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE 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 startDryRun:Function [TYPE Function]\n /**\n * @BRIEF: Performs a dry-run migration to identify potential risks and changes.\n * @PRE: source/target environments and selected dashboards are valid.\n * @POST: dryRunResult is populated with the pre-flight analysis.\n * @UX_STATE: [Loading] -> [Success] or [Error]\n * @UX_FEEDBACK: User sees summary cards + risk block + JSON details after success.\n * @UX_RECOVERY: User can adjust selection and press Dry Run again.\n */\n async function startDryRun() {\n return belief_scope(\"startDryRun\", async () => {\n if (!sourceEnvId || !targetEnvId) {\n console.warn(\"[startDryRun][EXPLORE] Missing environment selection\");\n error =\n $t.migration?.select_both_envs ||\n \"Please select both source and target environments.\";\n return;\n }\n if (sourceEnvId === targetEnvId) {\n console.warn(\"[startDryRun][EXPLORE] Source and target environments are identical\");\n error =\n $t.migration?.different_envs ||\n \"Source and target environments must be different.\";\n return;\n }\n if (selectedDashboardIds.length === 0) {\n console.warn(\"[startDryRun][EXPLORE] No dashboards selected\");\n error =\n $t.migration?.select_dashboards ||\n \"Please select at least one dashboard to migrate.\";\n return;\n }\n\n console.info(\"[startDryRun][REASON] Initiating dry-run analysis\", { sourceEnvId, targetEnvId });\n error = \"\";\n dryRunLoading = true;\n try {\n const selection: DashboardSelection = {\n selected_ids: selectedDashboardIds,\n source_env_id: sourceEnvId,\n target_env_id: targetEnvId,\n replace_db_config: replaceDb,\n fix_cross_filters: fixCrossFilters,\n };\n dryRunResult = await api.postApi(\"/migration/dry-run\", selection);\n console.info(\"[startDryRun][REFLECT] Dry-run analysis completed\", { riskScore: dryRunResult.risk.score });\n } catch (e) {\n console.error(\"[startDryRun][EXPLORE] Dry-run analysis failed\", e);\n error = e.message;\n dryRunResult = null;\n } finally {\n dryRunLoading = false;\n }\n });\n }\n // #endregion startDryRun:Function\n" @@ -88382,6 +74797,7 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Render and orchestrate mapping management UI for source/target environments with backend persistence.", "COMPLEXITY": 3, "CRITICAL_TRACE": "Frontend scope; Python belief_scope/logger are not applicable in Svelte runtime. Reflective tracing, when added, must use console prefix [ID][REFLECT].", "DATA_CONTRACT": "Input(Event: update{sourceUuid,targetUuid}) -> Model(MappingPayload); Output(UIState{environments,databases,mappings,suggestions,status})", @@ -88389,7 +74805,6 @@ "LAYER": "UI", "POST": "UI exposes deterministic Idle/Loading/Error/Success states for environment loading, database fetch, and mapping save.", "PRE": "Translation store and API client are available; route is mounted in authenticated UI shell.", - "PURPOSE": "Render and orchestrate mapping management UI for source/target environments with backend persistence.", "SEMANTICS": [ "migration", "mapping", @@ -88441,427 +74856,12 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "unknown_tag", "tag": "CRITICAL_TRACE", "message": "@CRITICAL_TRACE is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_not_for_contract_type", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DATA_CONTRACT", - "message": "@DATA_CONTRACT is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "INVARIANT", - "message": "@INVARIANT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "POST", - "message": "@POST is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "POST", - "message": "@POST is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PRE", - "message": "@PRE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PRE", - "message": "@PRE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_CONTRACT", - "message": "@TEST_CONTRACT is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_EDGE", - "message": "@TEST_EDGE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_EDGE", - "message": "@TEST_EDGE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_FIXTURE", - "message": "@TEST_FIXTURE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_INVARIANT", - "message": "@TEST_INVARIANT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_INVARIANT", - "message": "@TEST_INVARIANT is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Function", - "Block" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "TEST_SCENARIO", - "message": "@TEST_SCENARIO is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -88971,7 +74971,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Define imports, state, and handlers that drive migration mappings page FSM." + "BRIEF": "Define imports, state, and handlers that drive migration mappings page FSM." }, "relations": [ { @@ -89080,7 +75080,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Maintain local page state for environments, fetched databases, mappings, suggestions, and UX messages." + "BRIEF": "Maintain local page state for environments, fetched databases, mappings, suggestions, and UX messages." }, "relations": [], "schema_warnings": [], @@ -89097,10 +75097,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Frontend semantic scope wrapper for CRITICAL trace boundaries without changing business behavior.", "DATA_CONTRACT": "Input(scopeId:string, run:() => Promise) -> Output(Promise)", "POST": "Executes run exactly once and returns/rejects with the same outcome.", "PRE": "scopeId is non-empty and run is callable.", - "PURPOSE": "Frontend semantic scope wrapper for CRITICAL trace boundaries without changing business behavior.", "SIDE_EFFECT": "Emits trace logs for semantic scope entrance/exit." }, "relations": [], @@ -89118,10 +75118,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch both environment database catalogs, existing mappings, and suggested matches.", "DATA_CONTRACT": "Input({sourceEnvId,targetEnvId}) -> Output({sourceDatabases,targetDatabases,mappings,suggestions})", "POST": "fetchingDbs=false and sourceDatabases/targetDatabases/mappings/suggestions updated or error set.", "PRE": "sourceEnvId and targetEnvId are both selected and non-empty.", - "PURPOSE": "Fetch both environment database catalogs, existing mappings, and suggested matches.", "SIDE_EFFECT": "Concurrent network I/O to environments, mappings, and suggestion endpoints; clears transient messages." }, "relations": [], @@ -89139,10 +75139,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Persist a selected mapping pair and reconcile local mapping list by source database UUID.", "DATA_CONTRACT": "Input(CustomEvent<{sourceUuid:string,targetUuid:string}>) -> Output(MappingRecord persisted + UI feedback)", "POST": "mapping persisted; local mappings replaced for same source UUID; success or error feedback shown.", "PRE": "event.detail includes sourceUuid/targetUuid and matching source/target database records exist.", - "PURPOSE": "Persist a selected mapping pair and reconcile local mapping list by source database UUID.", "SIDE_EFFECT": "POST /mappings network I/O; mutates mappings/success/error." }, "relations": [], @@ -89160,8 +75160,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Mapping page template with environment selectors, database mapping table, and action buttons." + "BRIEF": "Mapping page template with environment selectors, database mapping table, and action buttons.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -89178,9 +75178,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "User profile page for viewing and editing personal preferences and settings.", "COMPLEXITY": 3, "LAYER": "Page", - "PURPOSE": "User profile page for viewing and editing personal preferences and settings.", "UX_FEEDBACK": "Success toast on profile update.", "UX_STATE": "Error -> Error message shown." }, @@ -89193,54 +75193,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -89258,82 +75210,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -89349,8 +75225,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Shared deterministic fixture inputs for profile page integration tests.", "INVARIANT": "lookupFailedManualFallback.warning is a hardcoded English string; drift risk if i18n key profile.lookup_error changes without updating this fixture.", - "PURPOSE": "Shared deterministic fixture inputs for profile page integration tests.", "SEMANTICS": [ "fixtures", "profile", @@ -89391,9 +75267,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Verifies profile page loads preferences and saves them.", "COMPLEXITY": "3", "LAYER": "UI (Tests)", - "PURPOSE": "Verifies profile page loads preferences and saves them.", "SEMANTICS": [ "tests", "profile", @@ -89453,9 +75329,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Verifies profile loads preferences, allows changes, and saves correctly.", "COMPLEXITY": "3", "LAYER": "UI (Tests)", - "PURPOSE": "Verifies profile loads preferences, allows changes, and saves correctly.", "SEMANTICS": [ "tests", "profile", @@ -89516,9 +75392,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Unified reports page with task-type and status filtering, list selection, detail panel, and resilient UX states for mixed task types.", "COMPLEXITY": 3, "LAYER": "Page", - "PURPOSE": "Unified reports page with task-type and status filtering, list selection, detail panel, and resilient UX states for mixed task types.", "UX_FEEDBACK": "Selecting a report loads its detail in the right panel.", "UX_RECOVERY": "Retry and clear-filters actions available.", "UX_STATE": "Error -> Inline error with retry preserving filter selections." @@ -89550,54 +75426,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -89615,102 +75443,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -89726,8 +75458,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Protect the LLM report page from self-triggering screenshot load effects.", "LAYER": "UI Tests", - "PURPOSE": "Protect the LLM report page from self-triggering screenshot load effects.", "SEMANTICS": [ "llm-report", "svelte-effect", @@ -89744,28 +75476,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -89798,9 +75508,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Ensure screenshot loading stays untracked from blob-url mutation state.", "POST": "Contract fails if screenshot loading effect can subscribe to screenshotBlobUrls updates.", - "PRE": "Report page source exists.", - "PURPOSE": "Ensure screenshot loading stays untracked from blob-url mutation state." + "PRE": "Report page source exists." }, "relations": [ { @@ -89824,12 +75534,12 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Consolidated Settings Page shell — thin layout that delegates each tab to its own component.", "COMPLEXITY": 4, "DEPRECATED": "N/A", "LAYER": "Page", "POST": "Page exposes consolidated settings tabs; each tab manages its own state.", "PRE": "Route is loaded in the authenticated UI shell.", - "PURPOSE": "Consolidated Settings Page shell — thin layout that delegates each tab to its own component.", "RATIONALE": "Decomposed from 1451→287 lines by extracting 6 tab components and centralizing state in the page shell. The C4 rating reflects the page's role as tab orchestrator with settings load/save lifecycle.", "REJECTED": "Keeping all tab content inline was rejected due to INV_7 violations (single contract exceeded 150 lines, cyclomatic complexity > 10).", "REPLACED_BY": "N/A", @@ -89883,81 +75593,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "DEPRECATED", - "message": "@DEPRECATED is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DEPRECATED", - "message": "@DEPRECATED is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -89975,255 +75610,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "POST", - "message": "@POST is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "POST", - "message": "@POST is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PRE", - "message": "@PRE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PRE", - "message": "@PRE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REJECTED", - "message": "@REJECTED is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REJECTED", - "message": "@REJECTED is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REPLACED_BY", - "message": "@REPLACED_BY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REPLACED_BY", - "message": "@REPLACED_BY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SIDE_EFFECT", - "message": "@SIDE_EFFECT is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -90254,37 +75640,14 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Feature flags configuration tab: enable/disable top-level application features.", "COMPLEXITY": 2, "LAYER": "UI", "POST": "User can toggle feature flags.", - "PRE": "settings object with features config is provided.", - "PURPOSE": "Feature flags configuration tab: enable/disable top-level application features." + "PRE": "settings object with features config is provided." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n
\n

\n {$t.settings?.features || \"Features\"}\n

\n

\n {$t.settings?.features_description || \"Enable or disable top-level application features.\"}\n

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

\n {$t.settings?.feature_dataset_review_hint || \"Automatic dataset review, clarification workflow, and SQL execution.\"}\n

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

\n {$t.settings?.feature_health_monitor_hint || \"Dashboard health monitoring and validation report aggregation.\"}\n

\n
\n \n
\n
\n\n
\n \n {$t.settings?.save_features || $t.settings?.save_logging || \"Save\"}\n \n
\n
\n
\n\n" @@ -90298,11 +75661,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "LLM configuration tab: providers, bindings, prompts for chatbot and validation.", "COMPLEXITY": 3, "LAYER": "UI", "POST": "User can configure LLM provider bindings and prompts.", "PRE": "settings object with llm config and llm_providers list is provided.", - "PURPOSE": "LLM configuration tab: providers, bindings, prompts for chatbot and validation.", "UX_FEEDBACK": "Toast on save.", "UX_STATE": "Loaded -> Full LLM settings panel with provider config, bindings, and prompts." }, @@ -90320,30 +75683,7 @@ "target_ref": "[SettingsUtils]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n\n\n
\n

\n {$t.settings?.llm}\n

\n

\n {$t.settings?.llm_description}\n

\n\n \n\n
\n

\n {$t.settings?.llm_chatbot_settings_title}\n

\n

\n {$t.settings?.llm_chatbot_settings_description}\n

\n\n
\n
\n \n \n {$t.settings?.llm_chatbot_provider}\n \n \n \n \n \n {#each settings.llm_providers || [] as provider}\n \n {/each}\n \n
\n\n
\n \n \n {$t.settings?.llm_chatbot_model}\n \n \n \n \n
\n
\n
\n\n
\n

\n {$t.settings?.llm_provider_bindings_title}\n

\n

\n {$t.settings?.llm_provider_bindings_description}\n

\n\n
\n
\n \n \n {$t.settings?.llm_binding_dashboard_validation}\n \n \n \n \n \n {#each settings.llm_providers || [] as provider}\n \n {/each}\n \n {#if !isDashboardValidationBindingValid(settings)}\n

\n {$t.settings?.llm_multimodal_warning}\n

\n {/if}\n
\n\n
\n \n \n {$t.settings?.llm_binding_documentation}\n \n \n \n \n \n {#each settings.llm_providers || [] as provider}\n \n {/each}\n \n
\n\n
\n \n \n {$t.settings?.llm_binding_git_commit}\n \n \n \n \n \n {#each settings.llm_providers || [] as provider}\n \n {/each}\n \n
\n
\n
\n\n
\n

\n {$t.settings?.llm_prompts_title}\n

\n

\n {$t.settings?.llm_prompts_description}\n

\n\n
\n
\n \n \n {$t.settings?.llm_prompt_documentation}\n \n \n \n \n
\n\n
\n \n \n {$t.settings?.llm_prompt_dashboard_validation}\n \n \n \n \n
\n\n
\n \n \n {$t.settings?.llm_prompt_git_commit}\n \n \n \n \n
\n
\n\n
\n \n {$t.settings?.save_llm_prompts}\n \n
\n
\n
\n\n" @@ -90357,11 +75697,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Logging configuration tab: log level, task log level, belief state toggle.", "COMPLEXITY": 3, "LAYER": "UI", "POST": "User can adjust logging levels and toggle belief state.", "PRE": "settings object with logging config is provided.", - "PURPOSE": "Logging configuration tab: log level, task log level, belief state toggle.", "UX_FEEDBACK": "Toast on save.", "UX_STATE": "Loaded -> Form controls for logging configuration." }, @@ -90373,30 +75713,7 @@ "target_ref": "[SettingsUtils]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n\n
\n

\n {$t.settings?.logging}\n

\n

\n {$t.settings?.logging_description}\n

\n\n
\n
\n
\n {$t.settings?.log_level}\n \n \n \n \n \n \n \n
\n
\n {$t.settings?.task_log_level}\n \n \n \n \n \n \n
\n
\n \n

\n {$t.settings?.belief_state_hint}\n

\n
\n
\n\n
\n \n {$t.settings?.save_logging}\n \n
\n
\n
\n\n" @@ -90410,11 +75727,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Mappings data table with search, filtering, and pagination for migration sync resources. Isolated from the main MigrationSettings to keep each module < 400 lines.", "COMPLEXITY": 3, "LAYER": "UI", "POST": "User can search, filter by environment/type, and paginate through resource mappings.", "PRE": "API client initialized, refreshKey provided by parent.", - "PURPOSE": "Mappings data table with search, filtering, and pagination for migration sync resources. Isolated from the main MigrationSettings to keep each module < 400 lines.", "UX_REACTIVITY": "Props -> refreshKey triggers reload via $effect.", "UX_STATE": "Empty -> \"No mappings\" row." }, @@ -90426,30 +75743,7 @@ "target_ref": "[api_module]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n\n\n\n
\n

\n \n {$t.settings?.synchronized_resources}\n ({mappingsTotal})\n \n loadMappings()}\n class=\"text-sm text-indigo-600 hover:text-indigo-800 flex items-center gap-1\"\n disabled={isLoading}\n >\n \n {$t.common?.refresh}\n \n

\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.settings?.resource_name}\n {$t.settings?.type}\n UUID\n {$t.settings?.target_id}\n {$t.dashboard?.environment}\n \n \n \n {#if isLoading && displayMappings.length === 0}\n {$t.settings?.loading_mappings}\n {:else if displayMappings.length === 0}\n {mappingsSearch ||\n mappingsEnvFilter ||\n mappingsTypeFilter\n ? $t.settings?.no_matching_resources\n : $t.settings?.no_synchronized_resources}\n {:else}\n {#each displayMappings as mapping}\n \n {mapping.resource_name ||\n $t.common?.not_available}\n \n {/each}\n {/if}\n \n
{mapping.resource_type}\n {mapping.uuid}\n {mapping.remote_id}\n {mapping.environment_id}\n
\n
\n\n \n {#if mappingsTotal > mappingsPageSize}\n
\n {($t.dashboard?.showing)\n .replace(\"{start}\", String(mappingsPage * mappingsPageSize + 1))\n .replace(\n \"{end}\",\n String(\n Math.min(\n (mappingsPage + 1) * mappingsPageSize,\n mappingsTotal,\n ),\n ),\n )\n .replace(\"{total}\", String(mappingsTotal))}\n
\n goToPage(0)}\n disabled={mappingsPage === 0}\n class=\"px-2 py-1 rounded border {mappingsPage === 0\n ? 'bg-gray-100 text-gray-400 cursor-not-allowed'\n : 'bg-white hover:bg-gray-50 text-gray-700'}\">«\n goToPage(mappingsPage - 1)}\n disabled={mappingsPage === 0}\n class=\"px-2 py-1 rounded border {mappingsPage === 0\n ? 'bg-gray-100 text-gray-400 cursor-not-allowed'\n : 'bg-white hover:bg-gray-50 text-gray-700'}\">‹\n {mappingsPage + 1} / {mappingsTotalPages}\n goToPage(mappingsPage + 1)}\n disabled={mappingsPage >= mappingsTotalPages - 1}\n class=\"px-2 py-1 rounded border {mappingsPage >=\n mappingsTotalPages - 1\n ? 'bg-gray-100 text-gray-400 cursor-not-allowed'\n : 'bg-white hover:bg-gray-50 text-gray-700'}\">›\n goToPage(mappingsTotalPages - 1)}\n disabled={mappingsPage >= mappingsTotalPages - 1}\n class=\"px-2 py-1 rounded border {mappingsPage >=\n mappingsTotalPages - 1\n ? 'bg-gray-100 text-gray-400 cursor-not-allowed'\n : 'bg-white hover:bg-gray-50 text-gray-700'}\">»\n
\n
\n {/if}\n
\n\n" @@ -90463,11 +75757,11 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Migration sync configuration tab: cron schedule, sync now, mappings table with filtering and pagination.", "COMPLEXITY": 3, "LAYER": "UI", "POST": "User can configure sync schedule, trigger sync, and browse resource mappings.", "PRE": "API client initialized.", - "PURPOSE": "Migration sync configuration tab: cron schedule, sync now, mappings table with filtering and pagination.", "UX_FEEDBACK": "Toast on save/sync/failure.", "UX_STATE": "Loaded -> Full migration sync panel with schedule and mappings table." }, @@ -90479,30 +75773,7 @@ "target_ref": "[api_module]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n\n\n\n\n
\n

\n {$t.settings?.migration_sync_title}\n

\n

\n {$t.settings?.migration_sync_description}\n

\n\n \n
\n

\n {$t.settings?.sync_schedule}\n \n

\n
\n
\n \n {$t.tasks?.cron_label}\n \n \n \n

\n {$t.settings?.migration_cron_hint}\n

\n
\n \n {isSavingMigration ? $t.settings?.saving : $t.common?.save}\n \n \n {#if isSyncing}\n \n {$t.settings?.syncing}\n {:else}\n \n {$t.settings?.sync_now}\n {/if}\n \n
\n
\n\n \n
\n\n" @@ -90516,37 +75787,14 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Storage configuration tab: root path, backup path, repo path.", "COMPLEXITY": 2, "LAYER": "UI", "POST": "User can view and edit storage paths.", - "PRE": "settings object with storage config is provided.", - "PURPOSE": "Storage configuration tab: root path, backup path, repo path." + "PRE": "settings object with storage config is provided." }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Component'", - "detail": { - "actual_type": "Component", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Component' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Component" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n\n\n\n\n
\n

\n {$t.settings?.storage_title}\n

\n

\n {$t.settings?.storage_description}\n

\n\n
\n
\n
\n {$t.storage?.root}\n \n
\n
\n {$t.storage?.backups}\n \n
\n
\n {$t.storage?.repositories}\n \n
\n
\n\n
\n onSave()}\n class=\"bg-primary text-white px-4 py-2 rounded hover:bg-primary-hover\"\n >\n {$t.settings?.save_storage_config}\n \n
\n
\n
\n\n" @@ -90560,10 +75808,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "System settings tab: timezone configuration and API key management.", "COMPLEXITY": 3, "POST": "User can select the application timezone and manage API keys.", - "PRE": "settings object is provided with app_timezone field.", - "PURPOSE": "System settings tab: timezone configuration and API key management." + "PRE": "settings object is provided with app_timezone field." }, "relations": [], "schema_warnings": [], @@ -90580,8 +75828,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Test UX states and transitions", "LAYER": "UI (Tests)", - "PURPOSE": "Test UX states and transitions", "SEMANTICS": [ "settings", "page", @@ -90598,28 +75846,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -90652,9 +75878,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Settings page for managing validation policies.", "COMPLEXITY": 3, "LAYER": "UI/Page", - "PURPOSE": "Settings page for managing validation policies.", "UX_REATIVITY": "State: $state, Derived: $derived.", "UX_STATE": "Loading -> Shows a loading spinner while fetching policies." }, @@ -90667,54 +75893,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -90733,67 +75911,11 @@ "value": "UI/Page" } }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "unknown_tag", "tag": "UX_REATIVITY", "message": "@UX_REATIVITY is not defined in axiom_config.yaml tags", "detail": null - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -90809,9 +75931,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches existing git configurations.", "POST": "configs state is populated.", - "PRE": "Component is mounted.", - "PURPOSE": "Fetches existing git configurations." + "PRE": "Component is mounted." }, "relations": [], "schema_warnings": [], @@ -90828,9 +75950,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Tests connection to a git server with current form data.", "POST": "testing state is managed; toast shown with result.", - "PRE": "newConfig contains valid provider, url, and pat.", - "PURPOSE": "Tests connection to a git server with current form data." + "PRE": "newConfig contains valid provider, url, and pat." }, "relations": [], "schema_warnings": [], @@ -90847,9 +75969,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Saves a new git configuration.", "POST": "New config is saved to DB and added to configs list.", - "PRE": "newConfig is valid and tested.", - "PURPOSE": "Saves a new git configuration." + "PRE": "newConfig is valid and tested." }, "relations": [], "schema_warnings": [], @@ -90866,9 +75988,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Populates the form with an existing config to edit.", "PARAM": "{Object} config - Configuration object to edit.", - "POST": "Form is populated and isEditing state is set.", - "PURPOSE": "Populates the form with an existing config to edit." + "POST": "Form is populated and isEditing state is set." }, "relations": [], "schema_warnings": [ @@ -90892,7 +76014,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Resets the configuration form." + "BRIEF": "Resets the configuration form." }, "relations": [], "schema_warnings": [], @@ -90909,9 +76031,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Loads repositories from selected Gitea config.", "POST": "giteaRepos state updated.", - "PRE": "selectedGiteaConfigId is set.", - "PURPOSE": "Loads repositories from selected Gitea config." + "PRE": "selectedGiteaConfigId is set." }, "relations": [], "schema_warnings": [], @@ -90928,9 +76050,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Creates new repository on selected Gitea server.", "POST": "Repository created and repos list reloaded.", - "PRE": "selectedGiteaConfigId and newGiteaRepo.name are set.", - "PURPOSE": "Creates new repository on selected Gitea server." + "PRE": "selectedGiteaConfigId and newGiteaRepo.name are set." }, "relations": [], "schema_warnings": [], @@ -90947,9 +76069,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Deletes repository from selected Gitea server.", "POST": "Repository deleted and repos list reloaded.", - "PRE": "selectedGiteaConfigId is set.", - "PURPOSE": "Deletes repository from selected Gitea server." + "PRE": "selectedGiteaConfigId is set." }, "relations": [], "schema_warnings": [], @@ -90966,8 +76088,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Test UX states and transitions for the Git Settings page", "LAYER": "UI (Tests)", - "PURPOSE": "Test UX states and transitions for the Git Settings page", "SEMANTICS": [ "settings", "git", @@ -90986,28 +76108,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -91160,88 +76260,14 @@ "tier": "TIER_1", "complexity": 2, "metadata": { + "BRIEF": "Redirect to the backups page as the default storage view.", "COMPLEXITY": 2, "INVARIANT": "Always redirects to /storage/backups.", "LAYER": "Page", - "PURPOSE": "Redirect to the backups page as the default storage view.", "UX_STATE": "Redirecting -> Immediately transfers the user to /storage/backups." }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "INVARIANT", - "message": "@INVARIANT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Page' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -91259,53 +76285,6 @@ ], "value": "Page" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -91321,10 +76300,10 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Temporary switch to legacy storage browser for backup UX validation.", "COMPLEXITY": 3, "INVARIANT": "Always redirects to /tools/storage.", "LAYER": "Page", - "PURPOSE": "Temporary switch to legacy storage browser for backup UX validation.", "SEMANTICS": [ "storage", "backups", @@ -91360,80 +76339,6 @@ } ], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "INVARIANT", - "message": "@INVARIANT is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "INVARIANT", - "message": "@INVARIANT is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -91452,87 +76357,6 @@ "value": "Page" } }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_relation_predicate", "tag": "RELATION", @@ -91566,9 +76390,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches the list of available environments.", "POST": "environments array is populated, selectedEnvId is set to first env if available.", - "PRE": "None.", - "PURPOSE": "Fetches the list of available environments." + "PRE": "None." }, "relations": [], "schema_warnings": [], @@ -91585,9 +76409,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches dashboards for a specific environment.", "POST": "dashboards array is populated with metadata for the selected environment.", - "PRE": "envId is a valid environment ID.", - "PURPOSE": "Fetches dashboards for a specific environment." + "PRE": "envId is a valid environment ID." }, "relations": [], "schema_warnings": [], @@ -91604,9 +76428,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Keep only dashboards that already have initialized Git repositories.", "POST": "Returns dashboards with status != NO_REPO.", - "PRE": "dashboards list is loaded for selected environment.", - "PURPOSE": "Keep only dashboards that already have initialized Git repositories." + "PRE": "dashboards list is loaded for selected environment." }, "relations": [], "schema_warnings": [], @@ -91623,9 +76447,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Page for system diagnostics and debugging.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Page for system diagnostics and debugging.", "SEMANTICS": [ "debug", "diagnostics", @@ -91666,137 +76490,7 @@ "target_ref": "TaskRunner" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - } - ], + "schema_warnings": [], "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\n" @@ -91810,9 +76504,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Page for the dataset column mapper tool.", "COMPLEXITY": 3, "LAYER": "UI", - "PURPOSE": "Page for the dataset column mapper tool.", "SEMANTICS": [ "mapper", "column", @@ -91853,137 +76547,7 @@ "target_ref": "TaskRunner" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "SEMANTICS", - "message": "@SEMANTICS is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "SEMANTICS", - "message": "@SEMANTICS is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - } - ], + "schema_warnings": [], "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\n" @@ -91997,9 +76561,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches the list of files from the server.", "POST": "Updates the `files` array with the latest data.", - "PRE": "currentPath is a valid storage path or empty for root.", - "PURPOSE": "Fetches the list of files from the server." + "PRE": "currentPath is a valid storage path or empty for root." }, "relations": [], "schema_warnings": [], @@ -92016,9 +76580,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Splits UI path into storage API category and category-local subpath.", "POST": "Returns {category, subpath} compatible with /api/storage/files.", - "PRE": "uiPath may be empty or start with backups/repositorys.", - "PURPOSE": "Splits UI path into storage API category and category-local subpath." + "PRE": "uiPath may be empty or start with backups/repositorys." }, "relations": [], "schema_warnings": [], @@ -92035,10 +76599,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Handles the file deletion process.", "PARAM": "{CustomEvent} event - The delete event containing category and path.", "POST": "File is deleted and file list is refreshed.", - "PRE": "The event contains valid category and path.", - "PURPOSE": "Handles the file deletion process." + "PRE": "The event contains valid category and path." }, "relations": [], "schema_warnings": [ @@ -92062,10 +76626,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Updates the current path and reloads files when navigating into a directory.", "PARAM": "{CustomEvent} event - The navigation event containing the new path.", "POST": "currentPath is updated and files are reloaded.", - "PRE": "The event contains a valid path string.", - "PURPOSE": "Updates the current path and reloads files when navigating into a directory." + "PRE": "The event contains a valid path string." }, "relations": [], "schema_warnings": [ @@ -92089,9 +76653,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Navigates one level up in the directory structure.", "POST": "currentPath is moved up one directory level.", - "PRE": "currentPath is not root.", - "PURPOSE": "Navigates one level up in the directory structure." + "PRE": "currentPath is not root." }, "relations": [], "schema_warnings": [], @@ -92108,9 +76672,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Keeps upload category aligned with the currently viewed top-level folder.", "POST": "uploadCategory is either backups or repositorys.", - "PRE": "currentPath can be empty or a slash-delimited path.", - "PURPOSE": "Keeps upload category aligned with the currently viewed top-level folder." + "PRE": "currentPath can be empty or a slash-delimited path." }, "relations": [], "schema_warnings": [], @@ -92132,32 +76696,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -92191,9 +76729,9 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Translation job configuration page - orchestrates form state, datasource loading, LLM settings, run/schedule tabs.", "COMPLEXITY": 4, "DEPRECATED": "N/A — active page.", - "PURPOSE": "Translation job configuration page - orchestrates form state, datasource loading, LLM settings, run/schedule tabs.", "RATIONALE": "Kept as C4 orchestration due to complex lifecycle: load→configure→validate→save→run→monitor across multiple tabs and API interactions.", "REJECTED": "Extracting all sub-tabs into separate page components was rejected due to deep state coupling between datasource selection, column loading, and form validation — would require a global store or excessive prop drilling.", "REPLACED_BY": "N/A — no replacement.", @@ -92201,167 +76739,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "DEPRECATED", - "message": "@DEPRECATED is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "DEPRECATED", - "message": "@DEPRECATED is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REJECTED", - "message": "@REJECTED is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REJECTED", - "message": "@REJECTED is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REPLACED_BY", - "message": "@REPLACED_BY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REPLACED_BY", - "message": "@REPLACED_BY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -92398,34 +76775,7 @@ "COMPLEXITY": 3 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n
\n {#snippet pageActions()}\n {#if !showCreateForm}\n \n {/if}\n {/snippet}\n\n \n\n {#if showCreateForm}\n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n {\n showCreateForm = false;\n createForm = { name: '', source_dialect: '', target_dialect: '', description: '' };\n }}\n >\n {$t.translate?.common?.cancel}\n \n
\n
\n
\n {/if}\n\n {#if state === 'loading'}\n \n
\n {#each [1, 2, 3] as _}\n
\n {/each}\n
\n
\n {:else if state === 'empty'}\n \n
\n

{$t.translate?.dictionaries?.no_dicts}

\n \n
\n
\n {:else if state === 'populated'}\n \n
\n {#each dictionaries as dict}\n
\n
\n goToEditor(dict.id)}\n >\n

{dict.name}

\n

\n {dict.source_dialect} → {dict.target_dialect}\n {#if dict.description}\n — {dict.description}\n {/if}\n

\n

\n {$t.translate?.dictionaries?.entry_count.replace('{count}', dict.entry_count ?? 0)}\n {#if !dict.is_active}\n {$t.translate?.dictionaries?.inactive}\n {/if}\n

\n \n
\n
\n goToEditor(dict.id)}\n >\n {$t.translate?.common?.edit}\n \n {#if deleteConfirmId === dict.id}\n
\n {$t.translate?.dictionaries?.confirm_delete}\n handleDelete(dict.id)}\n >\n {$t.translate?.common?.delete}\n \n \n {$t.translate?.common?.cancel}\n \n
\n {:else}\n openDeleteConfirm(dict.id)}\n >\n {$t.translate?.common?.delete}\n \n {/if}\n
\n
\n {/each}\n
\n
\n\n {#if total > page_size}\n
\n { currentPage--; loadDictionaries(); }}\n >\n {$t.translate?.common?.previous}\n \n \n {$t.translate?.dictionaries?.page_info.replace('{current}', currentPage).replace('{total}', Math.ceil(total / page_size))}\n \n = Math.ceil(total / page_size)}\n onclick={() => { currentPage++; loadDictionaries(); }}\n >\n {$t.translate?.common?.next}\n \n
\n {/if}\n {/if}\n
\n\n\n" @@ -92442,34 +76792,7 @@ "COMPLEXITY": 3 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "\n\n\n
\n {#snippet subtitleContent()}\n {#if dictionary}\n

\n {dictionary.source_dialect} → {dictionary.target_dialect}\n {#if dictionary.description}\n — {dictionary.description}\n {/if}\n · {$t.translate?.dictionaries?.entry_count.replace('{count}', totalEntries)}\n

\n {/if}\n {/snippet}\n\n {#snippet dictActions()}\n {#if state === 'editing'}\n
\n \n \n \n
\n {/if}\n {/snippet}\n\n \n\n {#if state === 'loading'}\n \n
\n {#each [1, 2, 3] as _}\n
\n {/each}\n
\n
\n\n {:else if state === 'importing' || state === 'import_preview'}\n \n
\n {#if state === 'importing'}\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n \n \n
\n {/if}\n\n {#if state === 'import_preview'}\n {#if importPreview.length > 0}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {#each importPreview as row}\n \n \n \n \n \n \n \n \n \n {/each}\n \n
{$t.translate?.dictionaries?.import_table_line}{$t.translate?.dictionaries?.import_table_source}{$t.translate?.dictionaries?.import_table_target}{$t.translate?.dictionaries?.import_table_src_lang}{$t.translate?.dictionaries?.import_table_tgt_lang}{$t.translate?.dictionaries?.import_table_context}{$t.translate?.dictionaries?.import_table_conflict}
{row.line}{row.source_term}{row.target_term}{row.source_language || '—'}{row.target_language || '—'}\n {#if row.has_context || row.context_data}\n {$t.translate?.dictionaries?.import_yes}\n {:else if row.usage_notes}\n {$t.translate?.dictionaries?.import_notes}\n {:else}\n —\n {/if}\n \n {#if row.is_conflict}\n \n {_('translate.dictionaries.import_existing').replace('{term}', row.existing_target_term)}\n ({importOnConflict === 'overwrite' ? $t.translate?.dictionaries?.import_will_overwrite : $t.translate?.dictionaries?.import_will_skip})\n \n {:else}\n {$t.translate?.dictionaries?.import_new}\n {/if}\n
\n
\n {/if}\n\n {#if importErrors.length > 0}\n
\n

{$t.translate?.dictionaries?.import_errors.replace('{count}', importErrors.length)}

\n {#each importErrors as err}\n

{_('translate.dictionaries.import_error_line').replace('{line}', err.line).replace('{error}', err.error)}

\n {/each}\n
\n {/if}\n\n
\n \n \n
\n {/if}\n
\n
\n\n {:else if state === 'editing'}\n {#if showAddForm}\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n {/if}\n\n {#if entries.length === 0}\n \n
\n

{$t.translate?.dictionaries?.no_entries}

\n \n
\n
\n {:else}\n \n {#if availableSourceLanguages.length > 0 || availableTargetLanguages.length > 0}\n
\n {$t.translate?.dictionaries?.filter_by_language}\n \n \n {#each availableSourceLanguages as lang}\n \n {/each}\n \n \n \n \n {#each availableTargetLanguages as lang}\n \n {/each}\n \n {#if filterSourceLanguage || filterTargetLanguage}\n { filterSourceLanguage = ''; filterTargetLanguage = ''; }}\n class=\"text-xs text-primary hover:text-primary-hover\"\n >\n {$t.translate?.dictionaries?.filter_clear}\n \n {_('translate.dictionaries.filter_count').replace('{filtered}', filteredEntries.length).replace('{total}', entries.length)}\n {/if}\n
\n {/if}\n
\n \n \n \n \n \n \n \n \n \n \n \n {#each filteredEntries as entry}\n {#if editEntryId === entry.id}\n \n \n \n \n \n \n \n {:else}\n {\n expandedEntryId = expandedEntryId === entry.id ? null : entry.id;\n expandedEditing = false;\n if (expandedEntryId !== entry.id) {\n expandedContextData = entry.context_data ? JSON.stringify(entry.context_data, null, 2) : '';\n expandedUsageNotes = entry.usage_notes || '';\n }\n }}>\n \n \n \n \n \n \n {#if expandedEntryId === entry.id}\n \n \n \n {/if}\n {/if}\n {/each}\n \n
{$t.translate?.dictionaries?.table_source_term}{$t.translate?.dictionaries?.table_target_term}{$t.translate?.dictionaries?.table_lang}{$t.translate?.dictionaries?.table_context}{$t.translate?.dictionaries?.table_actions}
\n \n \n \n \n
\n \n \n \n
\n
\n \n \n
\n \n \n
\n
{entry.source_term}{entry.target_term}\n {#if entry.source_language || entry.target_language}\n {entry.source_language || '?'} → {entry.target_language || '?'}\n {:else}\n \n {/if}\n \n
\n {entry.context_notes || ''}\n {#if entry.has_context}\n \n context\n \n {/if}\n {#if entry.usage_notes}\n \n notes\n \n {/if}\n
\n
\n {#if deleteEntryId === entry.id}\n
\n {$t.translate?.dictionaries?.confirm_delete_entry}\n \n \n
\n {:else}\n
\n \n \n
\n {/if}\n
\n
\n {#if expandedEditing}\n \n
\n
\n Context data:\n
\n {\n try {\n const updated = await dictionaryApi.updateEntry(dictionaryId, entry.id, {\n context_data: expandedContextData ? JSON.parse(expandedContextData) : null,\n usage_notes: expandedUsageNotes,\n has_context: !!expandedContextData\n });\n addToast(_('translate.dictionaries.updated_toast'), 'success');\n expandedEditing = false;\n await loadEntries();\n } catch (e) {\n addToast(e?.message || _('translate.dictionaries.save_failed_toast'), 'error');\n }\n }}\n class=\"px-2 py-0.5 text-xs bg-primary text-white rounded hover:bg-primary-hover\"\n >{$t.translate?.dictionaries?.save_btn}\n { expandedEditing = false; }}\n class=\"px-2 py-0.5 text-xs border border-gray-300 text-gray-600 rounded hover:bg-gray-50\"\n >{$t.translate?.dictionaries?.cancel_btn}\n
\n
\n \n
\n
\n \n \n
\n {:else}\n \n {#if entry.has_context && entry.context_data}\n
\n
\n {$t.translate?.dictionaries?.context_data_label}\n {\n expandedEditing = true;\n expandedContextData = entry.context_data ? JSON.stringify(entry.context_data, null, 2) : '';\n expandedUsageNotes = entry.usage_notes || '';\n }}\n class=\"text-xs text-primary hover:text-primary-hover\"\n >{$t.translate?.dictionaries?.edit_btn}\n
\n
\n {#if typeof entry.context_data === 'object' && entry.context_data !== null}\n
\n {#each Object.entries(entry.context_data) as [key, val]}\n {key}:\n {typeof val === 'object' ? JSON.stringify(val) : String(val)}\n {/each}\n
\n {:else}\n
{JSON.stringify(entry.context_data, null, 2)}
\n {/if}\n
\n
\n {:else}\n
\n

{$t.translate?.dictionaries?.no_context_data}

\n {\n expandedEditing = true;\n expandedContextData = '';\n expandedUsageNotes = entry.usage_notes || '';\n }}\n class=\"text-xs text-primary hover:text-primary-hover\"\n >{$t.translate?.dictionaries?.add_context}\n
\n {/if}\n {#if entry.usage_notes}\n
\n {$t.translate?.dictionaries?.usage_notes_label}\n

{entry.usage_notes}

\n
\n {:else if expandedEditing}\n \n {/if}\n {/if}\n {#if entry.context_source}\n
\n {$t.translate?.dictionaries?.source_label}\n {entry.context_source}\n
\n {/if}\n
\n
\n
\n
\n\n {#if totalEntries > entryPageSize}\n
\n { entryPage--; loadEntries(); }}\n >\n {$t.translate?.dictionaries?.page_previous}\n \n \n {_('translate.dictionaries.page_info').replace('{current}', entryPage).replace('{total}', Math.ceil(totalEntries / entryPageSize))}\n \n = Math.ceil(totalEntries / entryPageSize)}\n onclick={() => { entryPage++; loadEntries(); }}\n >\n {$t.translate?.dictionaries?.page_next}\n \n
\n {/if}\n {/if}\n {/if}\n
\n\n\n" @@ -92488,32 +76811,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -92547,9 +76844,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Validation task list page with status filter, task cards, and create/duplicate/delete actions.", "COMPLEXITY": 3, "PARAM": "{string} status", - "PURPOSE": "Validation task list page with status filter, task cards, and create/duplicate/delete actions.", "RATIONALE": "Card layout chosen over table because tasks have rich metadata (schedule, provider, last run status, environment) that does not fit into table columns without excessive horizontal scrolling.", "REJECTED": "Table view for task list rejected — dashboard_id + environment_id + provider_id + schedule + last_run_status creates too many columns for a table; cards show all metadata vertically.", "TYPE": "{'idle'|'loading'|'empty'|'populated'|'error'|'filtered_empty'}", @@ -92557,119 +76854,12 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "unknown_tag", "tag": "PARAM", "message": "@PARAM is not defined in axiom_config.yaml tags", "detail": null }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REJECTED", - "message": "@REJECTED is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REJECTED", - "message": "@REJECTED is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -92688,26 +76878,6 @@ ], "value": "{'idle'|'loading'|'empty'|'populated'|'error'|'filtered_empty'}" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -92723,8 +76893,8 @@ "tier": "TIER_2", "complexity": 4, "metadata": { + "BRIEF": "Validation task configuration page with Config and History tabs. Handles new and edit modes.", "COMPLEXITY": 4, - "PURPOSE": "Validation task configuration page with Config and History tabs. Handles new and edit modes.", "RATIONALE": "2-tab design separates task configuration from run history — users can edit settings (name, dashboard, provider, schedule) without scrolling past potentially long run history data.", "REJECTED": "Single scrollable page with config above history rejected — task config form is long (Basic Info + Dashboard & Environment + LLM Provider + Schedule + Active toggle); history would be pushed far below the fold.", "TYPE": "{'idle'|'loading'|'configured'|'saving'|'error'|'not_found'}", @@ -92735,113 +76905,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REJECTED", - "message": "@REJECTED is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REJECTED", - "message": "@REJECTED is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -92860,86 +76923,6 @@ ], "value": "{'idle'|'loading'|'configured'|'saving'|'error'|'not_found'}" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_FEEDBACK", - "message": "@UX_FEEDBACK is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_REACTIVITY", - "message": "@UX_REACTIVITY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_RECOVERY", - "message": "@UX_RECOVERY is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C4", - "detail": { - "actual_complexity": 4, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -92955,8 +76938,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Validation run history page with filters, metrics summary, and run cards.", "COMPLEXITY": 3, - "PURPOSE": "Validation run history page with filters, metrics summary, and run cards.", "RATIONALE": "Filter-driven design with 6 filter dimensions (task, status, dashboard, environment, date from/to) allows users to narrow runs for debugging — essential when hundreds of runs accumulate over time.", "REJECTED": "Unfiltered chronological list rejected — users need to filter by task/status/environment to find relevant runs among hundreds; without filters the page is unusable at scale.", "TYPE": "{'idle'|'loading'|'empty'|'filtered_empty'|'populated'|'error'}", @@ -92964,113 +76947,6 @@ }, "relations": [], "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "RATIONALE", - "message": "@RATIONALE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RATIONALE", - "message": "@RATIONALE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "REJECTED", - "message": "@REJECTED is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "REJECTED", - "message": "@REJECTED is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } - }, { "code": "invalid_enum_value", "tag": "TYPE", @@ -93089,26 +76965,6 @@ ], "value": "{'idle'|'loading'|'empty'|'filtered_empty'|'populated'|'error'}" } - }, - { - "code": "tag_not_for_contract_type", - "tag": "UX_STATE", - "message": "@UX_STATE is not allowed for contract type 'Page'", - "detail": { - "actual_type": "Page", - "allowed_types": [ - "Component" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "UX_STATE", - "message": "@UX_STATE is forbidden for contract type 'Page' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Page" - } } ], "anchor_syntax": "region", @@ -93124,8 +76980,8 @@ "tier": "TIER_2", "complexity": 3, "metadata": { - "COMPLEXITY": 3, - "PURPOSE": "API client tests ensuring correct endpoints are called per contract for Git service operations." + "BRIEF": "API client tests ensuring correct endpoints are called per contract for Git service operations.", + "COMPLEXITY": 3 }, "relations": [ { @@ -93149,10 +77005,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "API client tests ensuring correct endpoints are called per contract", "LAYER": "Infra (Tests)", "POST": "Returns promotion metadata", "PRE": "Repo initialized", - "PURPOSE": "API client tests ensuring correct endpoints are called per contract", "SEMANTICS": [ "git-service", "api-client", @@ -93168,28 +77024,6 @@ } ], "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - }, { "code": "invalid_enum_value", "tag": "LAYER", @@ -93222,9 +77056,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Service for Admin-related API calls including User and Role management, AD group mappings, and logging configuration.", "COMPLEXITY": 3, - "LAYER": "Service", - "PURPOSE": "Service for Admin-related API calls including User and Role management, AD group mappings, and logging configuration." + "LAYER": "Service" }, "relations": [ { @@ -93234,92 +77068,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region AdminService [C:3] [TYPE Service] [SEMANTICS admin, service, user, role, rbac]\n// @BRIEF Service for Admin-related API calls including User and Role management, AD group mappings, and logging configuration.\n// @LAYER Service\n// @RELATION DEPENDS_ON -> [ApiModule]\n\n// #region adminService:Module [TYPE Function]\n//\n// @SEMANTICS: admin, users, roles, ad-mappings, api\n// @PURPOSE: Service for Admin-related API calls (User and Role management).\n// @LAYER: Service\n// @RELATION: DEPENDS_ON -> api_module\n//\n// @INVARIANT: All requests must include valid Admin JWT token (handled by api client).\n\n// [SECTION: IMPORTS]\nimport { api } from '../lib/api';\n// [/SECTION]\n\n// #region getUsers:Function [TYPE Function]\n/**\n * @purpose Fetches all registered users from the backend.\n * @pre User must be authenticated with Admin privileges.\n * @post Returns an array of user objects.\n * @returns {Promise}\n * @relation CALLS -> backend.src.api.routes.admin.list_users\n */\nasync function getUsers() {\n console.log('[getUsers][Entry]');\n try {\n const users = await api.requestApi('/admin/users', 'GET');\n console.log('[getUsers][Coherence:OK]');\n return users;\n } catch (e) {\n console.error('[getUsers][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getUsers:Function\n\n// #region createUser:Function [TYPE Function]\n/**\n * @purpose Creates a new local user.\n * @pre User must be authenticated with Admin privileges.\n * @param {Object} userData - User details (username, email, password, roles, is_active).\n * @post New user record created in auth.db.\n * @returns {Promise}\n * @relation CALLS -> backend.src.api.routes.admin.create_user\n */\nasync function createUser(userData) {\n console.log('[createUser][Entry]');\n try {\n const user = await api.postApi('/admin/users', userData);\n console.log('[createUser][Coherence:OK]');\n return user;\n } catch (e) {\n console.error('[createUser][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion createUser:Function\n\n// #region getRoles:Function [TYPE Function]\n/**\n * @purpose Fetches all available system roles.\n * @pre User must be authenticated with Admin privileges.\n * @post Returns an array of role objects.\n * @returns {Promise}\n * @relation CALLS -> backend.src.api.routes.admin.list_roles\n */\nasync function getRoles() {\n console.log('[getRoles][Entry]');\n try {\n const roles = await api.requestApi('/admin/roles', 'GET');\n console.log('[getRoles][Coherence:OK]');\n return roles;\n } catch (e) {\n console.error('[getRoles][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getRoles:Function\n\n// #region getADGroupMappings:Function [TYPE Function]\n/**\n * @purpose Fetches mappings between AD groups and local roles.\n * @pre User must be authenticated with Admin privileges.\n * @post Returns an array of AD group mapping objects.\n * @returns {Promise}\n */\nasync function getADGroupMappings() {\n console.log('[getADGroupMappings][Entry]');\n try {\n const mappings = await api.requestApi('/admin/ad-mappings', 'GET');\n console.log('[getADGroupMappings][Coherence:OK]');\n return mappings;\n } catch (e) {\n console.error('[getADGroupMappings][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getADGroupMappings:Function\n\n// #region createADGroupMapping:Function [TYPE Function]\n/**\n * @purpose Creates or updates an AD group to Role mapping.\n * @pre User must be authenticated with Admin privileges.\n * @post New or updated mapping created in auth.db.\n * @param {Object} mappingData - Mapping details (ad_group, role_id).\n * @returns {Promise}\n */\nasync function createADGroupMapping(mappingData) {\n console.log('[createADGroupMapping][Entry]');\n try {\n const mapping = await api.postApi('/admin/ad-mappings', mappingData);\n console.log('[createADGroupMapping][Coherence:OK]');\n return mapping;\n } catch (e) {\n console.error('[createADGroupMapping][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion createADGroupMapping:Function\n\n// #region updateUser:Function [TYPE Function]\n/**\n * @purpose Updates an existing user.\n * @pre User must be authenticated with Admin privileges.\n * @post User record updated in auth.db.\n * @param {string} userId - Target user ID.\n * @param {Object} userData - Updated user data.\n * @returns {Promise}\n */\nasync function updateUser(userId, userData) {\n console.log('[updateUser][Entry]');\n try {\n const user = await api.requestApi(`/admin/users/${userId}`, 'PUT', userData);\n console.log('[updateUser][Coherence:OK]');\n return user;\n } catch (e) {\n console.error('[updateUser][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion updateUser:Function\n\n// #region deleteUser:Function [TYPE Function]\n/**\n * @purpose Deletes a user.\n * @pre User must be authenticated with Admin privileges.\n * @post User record removed from auth.db.\n * @param {string} userId - Target user ID.\n * @returns {Promise}\n */\nasync function deleteUser(userId) {\n console.log('[deleteUser][Entry]');\n try {\n await api.requestApi(`/admin/users/${userId}`, 'DELETE');\n console.log('[deleteUser][Coherence:OK]');\n } catch (e) {\n console.error('[deleteUser][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion deleteUser:Function\n\n// #region createRole:Function [TYPE Function]\n/**\n * @purpose Creates a new role.\n * @pre User must be authenticated with Admin privileges.\n * @post New role created in auth.db.\n * @param {Object} roleData - Role details (name, description, permissions).\n * @returns {Promise}\n */\nasync function createRole(roleData) {\n console.log('[createRole][Entry]');\n try {\n const role = await api.postApi('/admin/roles', roleData);\n console.log('[createRole][Coherence:OK]');\n return role;\n } catch (e) {\n console.error('[createRole][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion createRole:Function\n\n// #region updateRole:Function [TYPE Function]\n/**\n * @purpose Updates an existing role.\n * @param {string} roleId - Target role ID.\n * @param {Object} roleData - Updated role data.\n * @returns {Promise}\n */\nasync function updateRole(roleId, roleData) {\n console.log('[updateRole][Entry]');\n try {\n const role = await api.requestApi(`/admin/roles/${roleId}`, 'PUT', roleData);\n console.log('[updateRole][Coherence:OK]');\n return role;\n } catch (e) {\n console.error('[updateRole][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion updateRole:Function\n\n// #region deleteRole:Function [TYPE Function]\n/**\n * @purpose Deletes a role.\n * @param {string} roleId - Target role ID.\n * @returns {Promise}\n */\nasync function deleteRole(roleId) {\n console.log('[deleteRole][Entry]');\n try {\n await api.requestApi(`/admin/roles/${roleId}`, 'DELETE');\n console.log('[deleteRole][Coherence:OK]');\n } catch (e) {\n console.error('[deleteRole][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion deleteRole:Function\n\n// #region getPermissions:Function [TYPE Function]\n/**\n * @purpose Fetches all available permissions.\n * @returns {Promise}\n */\nasync function getPermissions() {\n console.log('[getPermissions][Entry]');\n try {\n const permissions = await api.requestApi('/admin/permissions', 'GET');\n console.log('[getPermissions][Coherence:OK]');\n return permissions;\n } catch (e) {\n console.error('[getPermissions][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getPermissions:Function\n\n// #region getLoggingConfig:Function [TYPE Function]\n/**\n * @purpose Fetches current logging configuration.\n * @returns {Promise} - Logging config with level, task_log_level, enable_belief_state.\n * @relation CALLS -> backend.src.api.routes.settings.get_logging_config\n */\nasync function getLoggingConfig() {\n console.log('[getLoggingConfig][Entry]');\n try {\n const config = await api.requestApi('/settings/logging', 'GET');\n console.log('[getLoggingConfig][Coherence:OK]');\n return config;\n } catch (e) {\n console.error('[getLoggingConfig][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getLoggingConfig:Function\n\n// #region updateLoggingConfig:Function [TYPE Function]\n/**\n * @purpose Updates logging configuration.\n * @param {Object} configData - Logging config (level, task_log_level, enable_belief_state).\n * @returns {Promise}\n * @relation CALLS -> backend.src.api.routes.settings.update_logging_config\n */\nasync function updateLoggingConfig(configData) {\n console.log('[updateLoggingConfig][Entry]');\n try {\n const config = await api.requestApi('/settings/logging', 'PATCH', configData);\n console.log('[updateLoggingConfig][Coherence:OK]');\n return config;\n } catch (e) {\n console.error('[updateLoggingConfig][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion updateLoggingConfig:Function\n\nexport const adminService = {\n getUsers,\n createUser,\n updateUser,\n deleteUser,\n getRoles,\n createRole,\n updateRole,\n deleteRole,\n getPermissions,\n getADGroupMappings,\n createADGroupMapping,\n getLoggingConfig,\n updateLoggingConfig\n};\n\n// #endregion adminService:Module\n// #endregion AdminService\n" @@ -93333,9 +77082,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Service for Admin-related API calls (User and Role management).", "INVARIANT": "All requests must include valid Admin JWT token (handled by api client).", "LAYER": "Service", - "PURPOSE": "Service for Admin-related API calls (User and Role management).", "SEMANTICS": [ "admin", "users", @@ -93352,30 +77101,7 @@ "target_ref": "api_module" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region adminService:Module [TYPE Function]\n//\n// @SEMANTICS: admin, users, roles, ad-mappings, api\n// @PURPOSE: Service for Admin-related API calls (User and Role management).\n// @LAYER: Service\n// @RELATION: DEPENDS_ON -> api_module\n//\n// @INVARIANT: All requests must include valid Admin JWT token (handled by api client).\n\n// [SECTION: IMPORTS]\nimport { api } from '../lib/api';\n// [/SECTION]\n\n// #region getUsers:Function [TYPE Function]\n/**\n * @purpose Fetches all registered users from the backend.\n * @pre User must be authenticated with Admin privileges.\n * @post Returns an array of user objects.\n * @returns {Promise}\n * @relation CALLS -> backend.src.api.routes.admin.list_users\n */\nasync function getUsers() {\n console.log('[getUsers][Entry]');\n try {\n const users = await api.requestApi('/admin/users', 'GET');\n console.log('[getUsers][Coherence:OK]');\n return users;\n } catch (e) {\n console.error('[getUsers][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getUsers:Function\n\n// #region createUser:Function [TYPE Function]\n/**\n * @purpose Creates a new local user.\n * @pre User must be authenticated with Admin privileges.\n * @param {Object} userData - User details (username, email, password, roles, is_active).\n * @post New user record created in auth.db.\n * @returns {Promise}\n * @relation CALLS -> backend.src.api.routes.admin.create_user\n */\nasync function createUser(userData) {\n console.log('[createUser][Entry]');\n try {\n const user = await api.postApi('/admin/users', userData);\n console.log('[createUser][Coherence:OK]');\n return user;\n } catch (e) {\n console.error('[createUser][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion createUser:Function\n\n// #region getRoles:Function [TYPE Function]\n/**\n * @purpose Fetches all available system roles.\n * @pre User must be authenticated with Admin privileges.\n * @post Returns an array of role objects.\n * @returns {Promise}\n * @relation CALLS -> backend.src.api.routes.admin.list_roles\n */\nasync function getRoles() {\n console.log('[getRoles][Entry]');\n try {\n const roles = await api.requestApi('/admin/roles', 'GET');\n console.log('[getRoles][Coherence:OK]');\n return roles;\n } catch (e) {\n console.error('[getRoles][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getRoles:Function\n\n// #region getADGroupMappings:Function [TYPE Function]\n/**\n * @purpose Fetches mappings between AD groups and local roles.\n * @pre User must be authenticated with Admin privileges.\n * @post Returns an array of AD group mapping objects.\n * @returns {Promise}\n */\nasync function getADGroupMappings() {\n console.log('[getADGroupMappings][Entry]');\n try {\n const mappings = await api.requestApi('/admin/ad-mappings', 'GET');\n console.log('[getADGroupMappings][Coherence:OK]');\n return mappings;\n } catch (e) {\n console.error('[getADGroupMappings][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getADGroupMappings:Function\n\n// #region createADGroupMapping:Function [TYPE Function]\n/**\n * @purpose Creates or updates an AD group to Role mapping.\n * @pre User must be authenticated with Admin privileges.\n * @post New or updated mapping created in auth.db.\n * @param {Object} mappingData - Mapping details (ad_group, role_id).\n * @returns {Promise}\n */\nasync function createADGroupMapping(mappingData) {\n console.log('[createADGroupMapping][Entry]');\n try {\n const mapping = await api.postApi('/admin/ad-mappings', mappingData);\n console.log('[createADGroupMapping][Coherence:OK]');\n return mapping;\n } catch (e) {\n console.error('[createADGroupMapping][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion createADGroupMapping:Function\n\n// #region updateUser:Function [TYPE Function]\n/**\n * @purpose Updates an existing user.\n * @pre User must be authenticated with Admin privileges.\n * @post User record updated in auth.db.\n * @param {string} userId - Target user ID.\n * @param {Object} userData - Updated user data.\n * @returns {Promise}\n */\nasync function updateUser(userId, userData) {\n console.log('[updateUser][Entry]');\n try {\n const user = await api.requestApi(`/admin/users/${userId}`, 'PUT', userData);\n console.log('[updateUser][Coherence:OK]');\n return user;\n } catch (e) {\n console.error('[updateUser][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion updateUser:Function\n\n// #region deleteUser:Function [TYPE Function]\n/**\n * @purpose Deletes a user.\n * @pre User must be authenticated with Admin privileges.\n * @post User record removed from auth.db.\n * @param {string} userId - Target user ID.\n * @returns {Promise}\n */\nasync function deleteUser(userId) {\n console.log('[deleteUser][Entry]');\n try {\n await api.requestApi(`/admin/users/${userId}`, 'DELETE');\n console.log('[deleteUser][Coherence:OK]');\n } catch (e) {\n console.error('[deleteUser][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion deleteUser:Function\n\n// #region createRole:Function [TYPE Function]\n/**\n * @purpose Creates a new role.\n * @pre User must be authenticated with Admin privileges.\n * @post New role created in auth.db.\n * @param {Object} roleData - Role details (name, description, permissions).\n * @returns {Promise}\n */\nasync function createRole(roleData) {\n console.log('[createRole][Entry]');\n try {\n const role = await api.postApi('/admin/roles', roleData);\n console.log('[createRole][Coherence:OK]');\n return role;\n } catch (e) {\n console.error('[createRole][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion createRole:Function\n\n// #region updateRole:Function [TYPE Function]\n/**\n * @purpose Updates an existing role.\n * @param {string} roleId - Target role ID.\n * @param {Object} roleData - Updated role data.\n * @returns {Promise}\n */\nasync function updateRole(roleId, roleData) {\n console.log('[updateRole][Entry]');\n try {\n const role = await api.requestApi(`/admin/roles/${roleId}`, 'PUT', roleData);\n console.log('[updateRole][Coherence:OK]');\n return role;\n } catch (e) {\n console.error('[updateRole][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion updateRole:Function\n\n// #region deleteRole:Function [TYPE Function]\n/**\n * @purpose Deletes a role.\n * @param {string} roleId - Target role ID.\n * @returns {Promise}\n */\nasync function deleteRole(roleId) {\n console.log('[deleteRole][Entry]');\n try {\n await api.requestApi(`/admin/roles/${roleId}`, 'DELETE');\n console.log('[deleteRole][Coherence:OK]');\n } catch (e) {\n console.error('[deleteRole][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion deleteRole:Function\n\n// #region getPermissions:Function [TYPE Function]\n/**\n * @purpose Fetches all available permissions.\n * @returns {Promise}\n */\nasync function getPermissions() {\n console.log('[getPermissions][Entry]');\n try {\n const permissions = await api.requestApi('/admin/permissions', 'GET');\n console.log('[getPermissions][Coherence:OK]');\n return permissions;\n } catch (e) {\n console.error('[getPermissions][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getPermissions:Function\n\n// #region getLoggingConfig:Function [TYPE Function]\n/**\n * @purpose Fetches current logging configuration.\n * @returns {Promise} - Logging config with level, task_log_level, enable_belief_state.\n * @relation CALLS -> backend.src.api.routes.settings.get_logging_config\n */\nasync function getLoggingConfig() {\n console.log('[getLoggingConfig][Entry]');\n try {\n const config = await api.requestApi('/settings/logging', 'GET');\n console.log('[getLoggingConfig][Coherence:OK]');\n return config;\n } catch (e) {\n console.error('[getLoggingConfig][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion getLoggingConfig:Function\n\n// #region updateLoggingConfig:Function [TYPE Function]\n/**\n * @purpose Updates logging configuration.\n * @param {Object} configData - Logging config (level, task_log_level, enable_belief_state).\n * @returns {Promise}\n * @relation CALLS -> backend.src.api.routes.settings.update_logging_config\n */\nasync function updateLoggingConfig(configData) {\n console.log('[updateLoggingConfig][Entry]');\n try {\n const config = await api.requestApi('/settings/logging', 'PATCH', configData);\n console.log('[updateLoggingConfig][Coherence:OK]');\n return config;\n } catch (e) {\n console.error('[updateLoggingConfig][Coherence:Failed]', e);\n throw e;\n }\n}\n// #endregion updateLoggingConfig:Function\n\nexport const adminService = {\n getUsers,\n createUser,\n updateUser,\n deleteUser,\n getRoles,\n createRole,\n updateRole,\n deleteRole,\n getPermissions,\n getADGroupMappings,\n createADGroupMapping,\n getLoggingConfig,\n updateLoggingConfig\n};\n\n// #endregion adminService:Module\n" @@ -93389,9 +77115,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches all registered users from the backend.", "POST": "Returns an array of user objects.", "PRE": "User must be authenticated with Admin privileges.", - "PURPOSE": "Fetches all registered users from the backend.", "RETURNS": "{Promise}" }, "relations": [ @@ -93448,10 +77174,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Creates a new local user.", "PARAM": "{Object} userData - User details (username, email, password, roles, is_active).", "POST": "New user record created in auth.db.", "PRE": "User must be authenticated with Admin privileges.", - "PURPOSE": "Creates a new local user.", "RETURNS": "{Promise}" }, "relations": [ @@ -93514,9 +77240,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches all available system roles.", "POST": "Returns an array of role objects.", "PRE": "User must be authenticated with Admin privileges.", - "PURPOSE": "Fetches all available system roles.", "RETURNS": "{Promise}" }, "relations": [ @@ -93573,9 +77299,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches mappings between AD groups and local roles.", "POST": "Returns an array of AD group mapping objects.", "PRE": "User must be authenticated with Admin privileges.", - "PURPOSE": "Fetches mappings between AD groups and local roles.", "RETURNS": "{Promise}" }, "relations": [], @@ -93618,10 +77344,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Creates or updates an AD group to Role mapping.", "PARAM": "{Object} mappingData - Mapping details (ad_group, role_id).", "POST": "New or updated mapping created in auth.db.", "PRE": "User must be authenticated with Admin privileges.", - "PURPOSE": "Creates or updates an AD group to Role mapping.", "RETURNS": "{Promise}" }, "relations": [], @@ -93670,10 +77396,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Updates an existing user.", "PARAM": "{Object} userData - Updated user data.", "POST": "User record updated in auth.db.", "PRE": "User must be authenticated with Admin privileges.", - "PURPOSE": "Updates an existing user.", "RETURNS": "{Promise}" }, "relations": [], @@ -93722,10 +77448,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Deletes a user.", "PARAM": "{string} userId - Target user ID.", "POST": "User record removed from auth.db.", "PRE": "User must be authenticated with Admin privileges.", - "PURPOSE": "Deletes a user.", "RETURNS": "{Promise}" }, "relations": [], @@ -93774,10 +77500,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Creates a new role.", "PARAM": "{Object} roleData - Role details (name, description, permissions).", "POST": "New role created in auth.db.", "PRE": "User must be authenticated with Admin privileges.", - "PURPOSE": "Creates a new role.", "RETURNS": "{Promise}" }, "relations": [], @@ -93826,8 +77552,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Updates an existing role.", "PARAM": "{Object} roleData - Updated role data.", - "PURPOSE": "Updates an existing role.", "RETURNS": "{Promise}" }, "relations": [], @@ -93873,8 +77599,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Deletes a role.", "PARAM": "{string} roleId - Target role ID.", - "PURPOSE": "Deletes a role.", "RETURNS": "{Promise}" }, "relations": [], @@ -93920,7 +77646,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Fetches all available permissions.", + "BRIEF": "Fetches all available permissions.", "RETURNS": "{Promise}" }, "relations": [], @@ -93960,7 +77686,7 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "PURPOSE": "Fetches current logging configuration.", + "BRIEF": "Fetches current logging configuration.", "RETURNS": "{Promise} - Logging config with level, task_log_level, enable_belief_state." }, "relations": [ @@ -94014,8 +77740,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Updates logging configuration.", "PARAM": "{Object} configData - Logging config (level, task_log_level, enable_belief_state).", - "PURPOSE": "Updates logging configuration.", "RETURNS": "{Promise}" }, "relations": [ @@ -94075,8 +77801,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Shared utility functions extracted from GitManager.svelte." + "BRIEF": "Shared utility functions extracted from GitManager.svelte.", + "COMPLEXITY": 2 }, "relations": [], "schema_warnings": [], @@ -94273,9 +77999,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Frontend API client for file storage management including list, upload, download, and delete operations.", "COMPLEXITY": 3, - "LAYER": "Service", - "PURPOSE": "Frontend API client for file storage management including list, upload, download, and delete operations." + "LAYER": "Service" }, "relations": [ { @@ -94285,92 +78011,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region StorageService [C:3] [TYPE Service] [SEMANTICS storage, service, api, file, upload]\n// @BRIEF Frontend API client for file storage management including list, upload, download, and delete operations.\n// @LAYER Service\n// @RELATION DEPENDS_ON -> [ApiModule]\n\n// #region storageService:Module [TYPE Function]\n// @PURPOSE: Default purpose\n// @RELATION: USES -> App\n/**\n * @purpose Frontend API client for file storage management.\n * @layer Service\n * @relation DEPENDS_ON -> backend.api.storage\n * @SEMANTICS: storage, api, client\n */\n\nconst API_BASE = '/api/storage';\n\n// #region getStorageAuthHeaders:Function [TYPE Function]\n/**\n * @purpose Returns headers with Authorization for storage API calls.\n * @returns {Object} Headers object with Authorization if token exists.\n * @NOTE Unlike api.js getAuthHeaders, this doesn't set Content-Type\n * to allow FormData to set its own multipart boundary.\n */\nfunction getStorageAuthHeaders() {\n const headers = {};\n if (typeof window !== 'undefined') {\n const token = localStorage.getItem('auth_token');\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n }\n return headers;\n}\n// #endregion getStorageAuthHeaders:Function\n\n// #region encodeStoragePath:Function [TYPE Function]\n/**\n * @purpose Encodes a storage-relative path preserving slash separators.\n * @param {string} path - Relative storage path.\n * @returns {string} Encoded path safe for URL segments.\n */\nfunction encodeStoragePath(path) {\n return String(path || '')\n .split('/')\n .filter((part) => part.length > 0)\n .map((part) => encodeURIComponent(part))\n .join('/');\n}\n// #endregion encodeStoragePath:Function\n\n// #region listFiles:Function [TYPE Function]\n/**\n * @purpose Fetches the list of files for a given category and subpath.\n * @param {string} [category] - Optional category filter.\n * @param {string} [path] - Optional subpath filter.\n * @returns {Promise}\n * @PRE category and path should be valid strings if provided.\n * @POST Returns a promise resolving to an array of StoredFile objects.\n */\nexport async function listFiles(category, path) {\n const params = new URLSearchParams();\n if (category) {\n params.append('category', category);\n }\n if (path) {\n params.append('path', path);\n }\n const response = await fetch(`${API_BASE}/files?${params.toString()}`, {\n headers: getStorageAuthHeaders()\n });\n if (!response.ok) {\n throw new Error(`Failed to fetch files: ${response.statusText}`);\n }\n return await response.json();\n}\n// #endregion listFiles:Function\n\n// #region uploadFile:Function [TYPE Function]\n/**\n * @purpose Uploads a file to the storage system.\n * @param {File} file - The file to upload.\n * @param {string} category - Target category.\n * @param {string} [path] - Target subpath.\n * @returns {Promise}\n * @PRE file must be a valid File object; category must be specified.\n * @POST Returns a promise resolving to the metadata of the uploaded file.\n */\nexport async function uploadFile(file, category, path) {\n const formData = new FormData();\n formData.append('file', file);\n formData.append('category', category);\n if (path) {\n formData.append('path', path);\n }\n\n const response = await fetch(`${API_BASE}/upload`, {\n method: 'POST',\n headers: getStorageAuthHeaders(),\n body: formData\n });\n\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({}));\n throw new Error(errorData.detail || `Failed to upload file: ${response.statusText}`);\n }\n return await response.json();\n}\n// #endregion uploadFile:Function\n\n// #region deleteFile:Function [TYPE Function]\n/**\n * @purpose Deletes a file or directory from storage.\n * @param {string} category - File category.\n * @param {string} path - Relative path of the item.\n * @returns {Promise}\n * @PRE category and path must identify an existing file or directory.\n * @POST The specified file or directory is removed from storage.\n */\nexport async function deleteFile(category, path) {\n const response = await fetch(`${API_BASE}/files/${category}/${path}`, {\n method: 'DELETE',\n headers: getStorageAuthHeaders()\n });\n\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({}));\n throw new Error(errorData.detail || `Failed to delete: ${response.statusText}`);\n }\n}\n// #endregion deleteFile:Function\n\n// #region downloadFileUrl:Function [TYPE Function]\n/**\n * @purpose Returns the URL for downloading a file.\n * @param {string} category - File category.\n * @param {string} path - Relative path of the file.\n * @returns {string}\n * @PRE category and path must identify an existing file.\n * @POST Returns a valid API URL for file download.\n * @NOTE Downloads use browser navigation, so auth is handled via cookies\n * or the backend must allow unauthenticated downloads for valid paths.\n */\nexport function downloadFileUrl(category, path) {\n const safeCategory = encodeURIComponent(String(category || ''));\n const safePath = encodeStoragePath(path);\n return `${API_BASE}/download/${safeCategory}/${safePath}`;\n}\n// #endregion downloadFileUrl:Function\n\n// #region downloadFile:Function [TYPE Function]\n/**\n * @purpose Downloads a file using authenticated fetch and saves it in browser.\n * @param {string} category - File category.\n * @param {string} path - Relative path of the file.\n * @param {string} [filename] - Optional preferred filename.\n * @returns {Promise}\n * @PRE category/path identify an existing file and user has READ permission.\n * @POST Browser download is triggered or an Error is thrown.\n */\nexport async function downloadFile(category, path, filename) {\n const response = await fetch(downloadFileUrl(category, path), {\n headers: getStorageAuthHeaders(),\n });\n\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({}));\n throw new Error(errorData.detail || `Failed to download file: ${response.statusText}`);\n }\n\n const blob = await response.blob();\n const objectUrl = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = objectUrl;\n link.download = filename || String(path || '').split('/').pop() || 'download';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n window.URL.revokeObjectURL(objectUrl);\n}\n// #endregion downloadFile:Function\n\nexport default {\n listFiles,\n uploadFile,\n deleteFile,\n downloadFileUrl,\n downloadFile\n};\n\n// #endregion storageService:Module\n// #endregion StorageService\n" @@ -94384,8 +78025,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Frontend API client for file storage management.", "LAYER": "Service", - "PURPOSE": "Frontend API client for file storage management.", "SEMANTICS": [ "storage", "api", @@ -94406,30 +78047,7 @@ "target_ref": "backend.api.storage" } ], - "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region storageService:Module [TYPE Function]\n// @PURPOSE: Default purpose\n// @RELATION: USES -> App\n/**\n * @purpose Frontend API client for file storage management.\n * @layer Service\n * @relation DEPENDS_ON -> backend.api.storage\n * @SEMANTICS: storage, api, client\n */\n\nconst API_BASE = '/api/storage';\n\n// #region getStorageAuthHeaders:Function [TYPE Function]\n/**\n * @purpose Returns headers with Authorization for storage API calls.\n * @returns {Object} Headers object with Authorization if token exists.\n * @NOTE Unlike api.js getAuthHeaders, this doesn't set Content-Type\n * to allow FormData to set its own multipart boundary.\n */\nfunction getStorageAuthHeaders() {\n const headers = {};\n if (typeof window !== 'undefined') {\n const token = localStorage.getItem('auth_token');\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n }\n return headers;\n}\n// #endregion getStorageAuthHeaders:Function\n\n// #region encodeStoragePath:Function [TYPE Function]\n/**\n * @purpose Encodes a storage-relative path preserving slash separators.\n * @param {string} path - Relative storage path.\n * @returns {string} Encoded path safe for URL segments.\n */\nfunction encodeStoragePath(path) {\n return String(path || '')\n .split('/')\n .filter((part) => part.length > 0)\n .map((part) => encodeURIComponent(part))\n .join('/');\n}\n// #endregion encodeStoragePath:Function\n\n// #region listFiles:Function [TYPE Function]\n/**\n * @purpose Fetches the list of files for a given category and subpath.\n * @param {string} [category] - Optional category filter.\n * @param {string} [path] - Optional subpath filter.\n * @returns {Promise}\n * @PRE category and path should be valid strings if provided.\n * @POST Returns a promise resolving to an array of StoredFile objects.\n */\nexport async function listFiles(category, path) {\n const params = new URLSearchParams();\n if (category) {\n params.append('category', category);\n }\n if (path) {\n params.append('path', path);\n }\n const response = await fetch(`${API_BASE}/files?${params.toString()}`, {\n headers: getStorageAuthHeaders()\n });\n if (!response.ok) {\n throw new Error(`Failed to fetch files: ${response.statusText}`);\n }\n return await response.json();\n}\n// #endregion listFiles:Function\n\n// #region uploadFile:Function [TYPE Function]\n/**\n * @purpose Uploads a file to the storage system.\n * @param {File} file - The file to upload.\n * @param {string} category - Target category.\n * @param {string} [path] - Target subpath.\n * @returns {Promise}\n * @PRE file must be a valid File object; category must be specified.\n * @POST Returns a promise resolving to the metadata of the uploaded file.\n */\nexport async function uploadFile(file, category, path) {\n const formData = new FormData();\n formData.append('file', file);\n formData.append('category', category);\n if (path) {\n formData.append('path', path);\n }\n\n const response = await fetch(`${API_BASE}/upload`, {\n method: 'POST',\n headers: getStorageAuthHeaders(),\n body: formData\n });\n\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({}));\n throw new Error(errorData.detail || `Failed to upload file: ${response.statusText}`);\n }\n return await response.json();\n}\n// #endregion uploadFile:Function\n\n// #region deleteFile:Function [TYPE Function]\n/**\n * @purpose Deletes a file or directory from storage.\n * @param {string} category - File category.\n * @param {string} path - Relative path of the item.\n * @returns {Promise}\n * @PRE category and path must identify an existing file or directory.\n * @POST The specified file or directory is removed from storage.\n */\nexport async function deleteFile(category, path) {\n const response = await fetch(`${API_BASE}/files/${category}/${path}`, {\n method: 'DELETE',\n headers: getStorageAuthHeaders()\n });\n\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({}));\n throw new Error(errorData.detail || `Failed to delete: ${response.statusText}`);\n }\n}\n// #endregion deleteFile:Function\n\n// #region downloadFileUrl:Function [TYPE Function]\n/**\n * @purpose Returns the URL for downloading a file.\n * @param {string} category - File category.\n * @param {string} path - Relative path of the file.\n * @returns {string}\n * @PRE category and path must identify an existing file.\n * @POST Returns a valid API URL for file download.\n * @NOTE Downloads use browser navigation, so auth is handled via cookies\n * or the backend must allow unauthenticated downloads for valid paths.\n */\nexport function downloadFileUrl(category, path) {\n const safeCategory = encodeURIComponent(String(category || ''));\n const safePath = encodeStoragePath(path);\n return `${API_BASE}/download/${safeCategory}/${safePath}`;\n}\n// #endregion downloadFileUrl:Function\n\n// #region downloadFile:Function [TYPE Function]\n/**\n * @purpose Downloads a file using authenticated fetch and saves it in browser.\n * @param {string} category - File category.\n * @param {string} path - Relative path of the file.\n * @param {string} [filename] - Optional preferred filename.\n * @returns {Promise}\n * @PRE category/path identify an existing file and user has READ permission.\n * @POST Browser download is triggered or an Error is thrown.\n */\nexport async function downloadFile(category, path, filename) {\n const response = await fetch(downloadFileUrl(category, path), {\n headers: getStorageAuthHeaders(),\n });\n\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({}));\n throw new Error(errorData.detail || `Failed to download file: ${response.statusText}`);\n }\n\n const blob = await response.blob();\n const objectUrl = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = objectUrl;\n link.download = filename || String(path || '').split('/').pop() || 'download';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n window.URL.revokeObjectURL(objectUrl);\n}\n// #endregion downloadFile:Function\n\nexport default {\n listFiles,\n uploadFile,\n deleteFile,\n downloadFileUrl,\n downloadFile\n};\n\n// #endregion storageService:Module\n" @@ -94443,8 +78061,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns headers with Authorization for storage API calls.", "NOTE": "Unlike api.js getAuthHeaders, this doesn't set Content-Type", - "PURPOSE": "Returns headers with Authorization for storage API calls.", "RETURNS": "{Object} Headers object with Authorization if token exists." }, "relations": [], @@ -94490,8 +78108,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Encodes a storage-relative path preserving slash separators.", "PARAM": "{string} path - Relative storage path.", - "PURPOSE": "Encodes a storage-relative path preserving slash separators.", "RETURNS": "{string} Encoded path safe for URL segments." }, "relations": [], @@ -94537,10 +78155,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetches the list of files for a given category and subpath.", "PARAM": "{string} [path] - Optional subpath filter.", "POST": "Returns a promise resolving to an array of StoredFile objects.", "PRE": "category and path should be valid strings if provided.", - "PURPOSE": "Fetches the list of files for a given category and subpath.", "RETURNS": "{Promise}" }, "relations": [], @@ -94589,10 +78207,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Uploads a file to the storage system.", "PARAM": "{string} [path] - Target subpath.", "POST": "Returns a promise resolving to the metadata of the uploaded file.", "PRE": "file must be a valid File object; category must be specified.", - "PURPOSE": "Uploads a file to the storage system.", "RETURNS": "{Promise}" }, "relations": [], @@ -94641,10 +78259,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Deletes a file or directory from storage.", "PARAM": "{string} path - Relative path of the item.", "POST": "The specified file or directory is removed from storage.", "PRE": "category and path must identify an existing file or directory.", - "PURPOSE": "Deletes a file or directory from storage.", "RETURNS": "{Promise}" }, "relations": [], @@ -94693,11 +78311,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Returns the URL for downloading a file.", "NOTE": "Downloads use browser navigation, so auth is handled via cookies", "PARAM": "{string} path - Relative path of the file.", "POST": "Returns a valid API URL for file download.", "PRE": "category and path must identify an existing file.", - "PURPOSE": "Returns the URL for downloading a file.", "RETURNS": "{string}" }, "relations": [], @@ -94752,10 +78370,10 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Downloads a file using authenticated fetch and saves it in browser.", "PARAM": "{string} [filename] - Optional preferred filename.", "POST": "Browser download is triggered or an Error is thrown.", "PRE": "category/path identify an existing file and user has READ permission.", - "PURPOSE": "Downloads a file using authenticated fetch and saves it in browser.", "RETURNS": "{Promise}" }, "relations": [], @@ -94804,9 +78422,9 @@ "tier": "TIER_2", "complexity": 3, "metadata": { + "BRIEF": "Service for Task Management API interactions: listing, fetching details, resuming, resolving, and clearing tasks.", "COMPLEXITY": 3, - "LAYER": "Service", - "PURPOSE": "Service for Task Management API interactions: listing, fetching details, resuming, resolving, and clearing tasks." + "LAYER": "Service" }, "relations": [ { @@ -94816,92 +78434,7 @@ "target_ref": "[ApiModule]" } ], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "LAYER", - "message": "@LAYER is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "LAYER", - "message": "@LAYER is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "RELATION", - "message": "@RELATION is forbidden for contract type 'Service' at C3", - "detail": { - "actual_complexity": 3, - "contract_type": "Service" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region TaskService [C:3] [TYPE Service] [SEMANTICS task, service, api, crud, status]\n// @BRIEF Service for Task Management API interactions: listing, fetching details, resuming, resolving, and clearing tasks.\n// @LAYER Service\n// @RELATION DEPENDS_ON -> [ApiModule]\n\n/**\n * Service for interacting with the Task Management API.\n */\n\nimport { requestApi } from '../lib/api';\n\nconst API_BASE = '/tasks';\n\n// #region getTasks:Function [TYPE Function]\n/* @PURPOSE: Fetch a list of tasks with pagination and optional status filter.\n @PRE: limit and offset are numbers.\n @POST: Returns a promise resolving to a list of tasks.\n*/\n/**\n * Fetch a list of tasks with pagination and optional status filter.\n * @param {number} limit - Maximum number of tasks to return.\n * @param {number} offset - Number of tasks to skip.\n * @param {string|null} status - Filter by task status (optional).\n * @returns {Promise} List of tasks.\n */\nexport async function getTasks(limit = 10, offset = 0, status = null) {\n const params = new URLSearchParams({\n limit: limit.toString(),\n offset: offset.toString()\n });\n if (status) {\n params.append('status', status);\n }\n\n return requestApi(`${API_BASE}?${params.toString()}`);\n}\n// #endregion getTasks:Function\n\n// #region getTask:Function [TYPE Function]\n/* @PURPOSE: Fetch details for a specific task.\n @PRE: taskId must be provided.\n @POST: Returns a promise resolving to task details.\n*/\n/**\n * Fetch details for a specific task.\n * @param {string} taskId - The ID of the task.\n * @returns {Promise} Task details.\n */\nexport async function getTask(taskId) {\n return requestApi(`${API_BASE}/${taskId}`);\n}\n// #endregion getTask:Function\n\n// #region getTaskLogs:Function [TYPE Function]\n/* @PURPOSE: Fetch logs for a specific task.\n @PRE: taskId must be provided.\n @POST: Returns a promise resolving to a list of log entries.\n*/\n/**\n * Fetch logs for a specific task.\n * @param {string} taskId - The ID of the task.\n * @returns {Promise} List of log entries.\n */\nexport async function getTaskLogs(taskId) {\n // Currently, logs are included in the task object, but we might have a separate endpoint later.\n // For now, we fetch the task and return its logs.\n // Or if we implement T017 (GET /api/tasks/{task_id}/logs), we would use that.\n // The current backend implementation in tasks.py does NOT have a separate /logs endpoint yet.\n // T017 is in Phase 3.\n // So for now, we'll fetch the task.\n const task = await getTask(taskId);\n return task.logs || [];\n}\n// #endregion getTaskLogs:Function\n\n// #region resumeTask:Function [TYPE Function]\n/* @PURPOSE: Resume a task that is awaiting input (e.g., passwords).\n @PRE: taskId and passwords must be provided.\n @POST: Returns a promise resolving to the updated task object.\n*/\n/**\n * Resume a task that is awaiting input (e.g., passwords).\n * @param {string} taskId - The ID of the task.\n * @param {Object} passwords - Map of database names to passwords.\n * @returns {Promise} Updated task object.\n */\nexport async function resumeTask(taskId, passwords) {\n return requestApi(`${API_BASE}/${taskId}/resume`, 'POST', { passwords });\n}\n// #endregion resumeTask:Function\n\n// #region resolveTask:Function [TYPE Function]\n/* @PURPOSE: Resolve a task that is awaiting mapping.\n @PRE: taskId and resolutionParams must be provided.\n @POST: Returns a promise resolving to the updated task object.\n*/\n/**\n * Resolve a task that is awaiting mapping.\n * @param {string} taskId - The ID of the task.\n * @param {Object} resolutionParams - Resolution parameters.\n * @returns {Promise} Updated task object.\n */\nexport async function resolveTask(taskId, resolutionParams) {\n return requestApi(`${API_BASE}/${taskId}/resolve`, 'POST', { resolution_params: resolutionParams });\n}\n// #endregion resolveTask:Function\n\n// #region clearTasks:Function [TYPE Function]\n/* @PURPOSE: Clear tasks based on status.\n @PRE: status is a string or null.\n @POST: Returns a promise that resolves when tasks are cleared.\n*/\n/**\n * Clear tasks based on status.\n * @param {string|null} status - Filter by task status (optional).\n */\nexport async function clearTasks(status = null) {\n const params = new URLSearchParams();\n if (status) {\n params.append('status', status);\n }\n\n return requestApi(`${API_BASE}?${params.toString()}`, 'DELETE');\n}\n// #endregion clearTasks:Function\n// #endregion TaskService\n" @@ -94915,9 +78448,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch a list of tasks with pagination and optional status filter.", "POST": "Returns a promise resolving to a list of tasks.", - "PRE": "limit and offset are numbers.", - "PURPOSE": "Fetch a list of tasks with pagination and optional status filter." + "PRE": "limit and offset are numbers." }, "relations": [], "schema_warnings": [], @@ -94949,9 +78482,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch details for a specific task.", "POST": "Returns a promise resolving to task details.", - "PRE": "taskId must be provided.", - "PURPOSE": "Fetch details for a specific task." + "PRE": "taskId must be provided." }, "relations": [], "schema_warnings": [], @@ -94983,9 +78516,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch logs for a specific task.", "POST": "Returns a promise resolving to a list of log entries.", - "PRE": "taskId must be provided.", - "PURPOSE": "Fetch logs for a specific task." + "PRE": "taskId must be provided." }, "relations": [], "schema_warnings": [], @@ -95017,9 +78550,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resume a task that is awaiting input (e.g., passwords).", "POST": "Returns a promise resolving to the updated task object.", - "PRE": "taskId and passwords must be provided.", - "PURPOSE": "Resume a task that is awaiting input (e.g., passwords)." + "PRE": "taskId and passwords must be provided." }, "relations": [], "schema_warnings": [], @@ -95051,9 +78584,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Resolve a task that is awaiting mapping.", "POST": "Returns a promise resolving to the updated task object.", - "PRE": "taskId and resolutionParams must be provided.", - "PURPOSE": "Resolve a task that is awaiting mapping." + "PRE": "taskId and resolutionParams must be provided." }, "relations": [], "schema_warnings": [], @@ -95085,9 +78618,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Clear tasks based on status.", "POST": "Returns a promise that resolves when tasks are cleared.", - "PRE": "status is a string or null.", - "PURPOSE": "Clear tasks based on status." + "PRE": "status is a string or null." }, "relations": [], "schema_warnings": [], @@ -95119,65 +78652,11 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Service for generic Task API communication used by Tools — run tasks and poll status." + "BRIEF": "Service for generic Task API communication used by Tools — run tasks and poll status.", + "COMPLEXITY": 2 }, "relations": [], - "schema_warnings": [ - { - "code": "tag_not_for_contract_type", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "COMPLEXITY", - "message": "@COMPLEXITY is forbidden for contract type 'Service' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Service" - } - }, - { - "code": "tag_not_for_contract_type", - "tag": "PURPOSE", - "message": "@PURPOSE is not allowed for contract type 'Service'", - "detail": { - "actual_type": "Service", - "allowed_types": [ - "Module", - "Function", - "Class", - "Component", - "Block", - "ADR", - "Skill", - "Agent" - ] - } - }, - { - "code": "tag_forbidden_by_complexity", - "tag": "PURPOSE", - "message": "@PURPOSE is forbidden for contract type 'Service' at C2", - "detail": { - "actual_complexity": 2, - "contract_type": "Service" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region ToolsService [C:2] [TYPE Service] [SEMANTICS tool, service, task, api, runner]\n// @BRIEF Service for generic Task API communication used by Tools — run tasks and poll status.\n\n/**\n * Service for generic Task API communication used by Tools.\n */\n\nimport { requestApi } from '../lib/api';\n\nconst API_BASE = '/tasks';\n\n// #region runTask:Function [TYPE Function]\n/* @PURPOSE: Start a new task for a given plugin.\n @PRE: pluginId and params must be provided.\n @POST: Returns a promise resolving to the task instance.\n*/\n/**\n * Start a new task for a given plugin.\n * @param {string} pluginId - The ID of the plugin to run.\n * @param {Object} params - Parameters for the plugin.\n * @returns {Promise} The created task instance.\n */\nexport async function runTask(pluginId, params) {\n return requestApi(API_BASE, 'POST', { plugin_id: pluginId, params });\n}\n// #endregion runTask:Function\n\n// #region getTaskStatus:Function [TYPE Function]\n/* @PURPOSE: Fetch details for a specific task (to poll status or get result).\n @PRE: taskId must be provided.\n @POST: Returns a promise resolving to task details.\n*/\n/**\n * Fetch details for a specific task (to poll status or get result).\n * @param {string} taskId - The ID of the task.\n * @returns {Promise} Task details.\n */\nexport async function getTaskStatus(taskId) {\n return requestApi(`${API_BASE}/${taskId}`);\n}\n// #endregion getTaskStatus:Function\n// #endregion ToolsService\n" @@ -95191,9 +78670,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Start a new task for a given plugin.", "POST": "Returns a promise resolving to the task instance.", - "PRE": "pluginId and params must be provided.", - "PURPOSE": "Start a new task for a given plugin." + "PRE": "pluginId and params must be provided." }, "relations": [], "schema_warnings": [], @@ -95225,9 +78704,9 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Fetch details for a specific task (to poll status or get result).", "POST": "Returns a promise resolving to task details.", - "PRE": "taskId must be provided.", - "PURPOSE": "Fetch details for a specific task (to poll status or get result)." + "PRE": "taskId must be provided." }, "relations": [], "schema_warnings": [], @@ -95323,34 +78802,11 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "LAYER": "Domain", - "PURPOSE": "TypeScript interfaces for Dashboard entities" + "BRIEF": "TypeScript interfaces for Dashboard entities", + "LAYER": "Domain" }, "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 C1", - "detail": { - "actual_complexity": 1, - "contract_type": "Function" - } - } - ], + "schema_warnings": [], "anchor_syntax": "region", "tier_source": "AutoCalculated", "body": "// #region DashboardTypes:Module [TYPE Function]\n/**\n * @PURPOSE: TypeScript interfaces for Dashboard entities\n * @LAYER: Domain\n */\nexport interface DashboardMetadata {\n id: number;\n title: string;\n slug?: string;\n dashboard_slug?: string;\n url_slug?: string;\n url?: string;\n last_modified: string;\n status: string;\n}\n\nexport interface DashboardSelection {\n selected_ids: number[];\n source_env_id: string;\n target_env_id: string;\n replace_db_config?: boolean;\n fix_cross_filters?: boolean;\n}\n\nexport interface DiffObjectRef {\n uuid: string;\n title?: string;\n target_title?: string;\n}\n\nexport interface DiffBucket {\n create: DiffObjectRef[];\n update: DiffObjectRef[];\n delete: DiffObjectRef[];\n}\n\nexport interface DryRunRiskItem {\n code: string;\n severity: \"low\" | \"medium\" | \"high\";\n object_type: string;\n object_uuid: string;\n message: string;\n}\n\nexport interface MigrationDryRunResult {\n generated_at: string;\n selection: DashboardSelection;\n selected_dashboard_titles: string[];\n diff: {\n dashboards: DiffBucket;\n charts: DiffBucket;\n datasets: DiffBucket;\n };\n summary: {\n dashboards: Record<\"create\" | \"update\" | \"delete\", number>;\n charts: Record<\"create\" | \"update\" | \"delete\", number>;\n datasets: Record<\"create\" | \"update\" | \"delete\", number>;\n selected_dashboards: number;\n };\n risk: {\n score: number;\n level: \"low\" | \"medium\" | \"high\";\n items: DryRunRiskItem[];\n };\n}\n// #endregion DashboardTypes:Module\n" @@ -95379,8 +78835,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Unit tests for MaintenanceStore runes-based store." + "BRIEF": "Unit tests for MaintenanceStore runes-based store.", + "COMPLEXITY": 2 }, "relations": [ { @@ -95404,8 +78860,8 @@ "tier": "TIER_1", "complexity": 2, "metadata": { - "COMPLEXITY": 2, - "PURPOSE": "Component tests for MaintenanceEventsTable and DashboardMaintenanceBadge." + "BRIEF": "Component tests for MaintenanceEventsTable and DashboardMaintenanceBadge.", + "COMPLEXITY": 2 }, "relations": [ { @@ -95561,8 +79017,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { - "COMPLEXITY": "1", - "PURPOSE": "Utility script for run" + "BRIEF": "Utility script for run", + "COMPLEXITY": "1" }, "relations": [], "schema_warnings": [ @@ -95590,8 +79046,8 @@ "tier": "TIER_1", "complexity": 1, "metadata": { + "BRIEF": "Thin wrapper — delegates to ./build.sh bundle (.tar.xz output)", "COMPLEXITY": "1", - "PURPOSE": "Thin wrapper — delegates to ./build.sh bundle (.tar.xz output)", "RATIONALE": "Unified into build.sh to avoid confusion; kept for backward compat." }, "relations": [], @@ -95620,8 +79076,8 @@ "tier": "TRIVIAL", "complexity": 1, "metadata": { + "BRIEF": "Utility script for scan_secrets", "COMPLEXITY": "1", - "PURPOSE": "Utility script for scan_secrets", "TIER": "TRIVIAL" }, "relations": [], @@ -95688,6718 +79144,6719 @@ } ], "file_hashes": { - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/lib/introspect.pyi": 12239924839764265507, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py": 10843527833285941674, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/types.py": 1343652083039949282, - "venv/lib/python3.13/site-packages/anyio/abc/_eventloop.py": 2023190981288767991, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix.pyi": 2700568594438441246, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_validate.py": 2133732492454460539, - "frontend/build/_app/immutable/nodes/34.BvudVJiY.js": 938635370536078571, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/RECORD": 8971487317739420905, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_palettes.py": 13495896173068490516, - "venv/lib/python3.13/site-packages/idna/codec.py": 4260241549062101779, - "venv/lib/python3.13/site-packages/pycparser/ply/ygen.py": 5520340773074632724, - "venv/lib/python3.13/site-packages/greenlet/TUserGreenlet.cpp": 16258622236210473101, - "venv/lib/python3.13/site-packages/h11/_state.py": 11398755254809751139, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_ticks.py": 11649965080303468085, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/WHEEL": 18203500019759199992, - "venv/lib/python3.13/site-packages/pandas/tests/test_expressions.py": 16378925536309828288, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py": 5071697837617938064, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/validator_creation.py": 2745563768861102999, - "venv/lib/python3.13/site-packages/pillow.libs/libharfbuzz-0692f733.so.0.61230.0": 23110287346167671, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/__init__.pyi": 17469792319379909312, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/PIL/_imaging.pyi": 17119084207765761921, - "backend/src/models/dataset_review.py": 5814500849969423218, - "venv/lib/python3.13/site-packages/pydantic/_internal/_known_annotated_metadata.py": 9308620143218174987, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/licenses/LICENSE.PSF": 13208428090829817329, - "venv/lib/python3.13/site-packages/tzlocal/unix.py": 995019116408448073, - "venv/lib/python3.13/site-packages/pandas/tests/apply/conftest.py": 13798335354961261346, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_to_xarray.py": 15341013524814290960, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_common.py": 12064185052519470358, - "venv/lib/python3.13/site-packages/pandas/io/stata.py": 14370692318835340323, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py": 6509914623926583629, - "venv/lib/python3.13/site-packages/PIL/ImageMorph.py": 13861961228125789866, - "venv/lib/python3.13/site-packages/pygments/lexers/sgf.py": 6802546617450210439, - "backend/src/plugins/translate/dictionary_entries.py": 11394786590056973146, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_skew_kurt.py": 15225601437354712351, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein.py": 15426828792217499138, - "venv/lib/python3.13/site-packages/keyring/backends/null.py": 12740996416911604870, - "venv/lib/python3.13/site-packages/greenlet/tests/test_leaks.py": 1219835696230215605, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_arithmetic.py": 16829312896275893002, - "frontend/build/_app/immutable/chunks/7p8qW0H9.js": 8406910162058460039, - "frontend/build/_app/env.js": 8815854342083926790, - "backend/src/schemas/translate.py": 15939985987703420591, - "venv/lib/python3.13/site-packages/numpy/fft/_helper.py": 15906444100774706395, - "venv/lib/python3.13/site-packages/git/refs/head.py": 16271128287606894569, - "backend/src/models/dataset_review_pkg/__init__.py": 17789694606496652579, - "backend/src/services/clean_release/demo_data_service.py": 1822246829322620623, - "backend/src/services/maintenance/_chart_manager.py": 11268757631496775895, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufunclike.pyi": 12215374902556647369, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/constants.pyi": 15633065380510755171, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/random.pyi": 9425735458050148191, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein_py.py": 11350239659973489646, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/ma/core.pyi": 4829891173366130328, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_names.py": 10037208029090713121, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_comparison.py": 5348781442514871089, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_update_delete.py": 1317337950621091021, - "venv/lib/python3.13/site-packages/PIL/BdfFontFile.py": 10811640174253687845, - "venv/lib/python3.13/site-packages/pycparser/ply/yacc.py": 4218889705926129841, - "venv/lib/python3.13/site-packages/pygments/lexers/sophia.py": 15971500155124949058, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi": 13016654355866474644, - "backend/src/plugins/translate/preview_constants.py": 12447768695944862994, - "venv/lib/python3.13/site-packages/pygments/lexers/smithy.py": 10789533877863290582, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_expanding.py": 9047466276603454007, - "venv/lib/python3.13/site-packages/pygments/lexers/_vbscript_builtins.py": 9882134558469491349, - "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py": 5995058808539530576, - "venv/lib/python3.13/site-packages/PIL/ImImagePlugin.py": 15452956038794399492, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/dotenv.py": 5872848911499749500, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/npyio.pyi": 14147712281086095231, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/test_numba.py": 8250377774229977284, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_map.py": 1115471561925426082, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/RECORD": 10552906886624188222, - "venv/lib/python3.13/site-packages/numpy/lib/_array_utils_impl.pyi": 11535882608355652318, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_take.py": 3281943380342853080, - "venv/lib/python3.13/site-packages/greenlet/TGreenletGlobals.cpp": 17400526028982558937, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath_accuracy.py": 3904008607472505376, - "venv/lib/python3.13/site-packages/pydantic/_internal/_signature.py": 17075003201648027250, - "venv/lib/python3.13/site-packages/jeepney/tests/test_bus_messages.py": 4323093138307306385, - "venv/lib/python3.13/site-packages/pandas/core/arrays/datetimes.py": 10585034798097337148, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_dst.py": 12243642467695371088, - "venv/lib/python3.13/site-packages/h11/_headers.py": 7592730288271984585, - "venv/lib/python3.13/site-packages/_pytest/tmpdir.py": 10834220332037364219, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arctanh.csv": 8620268345075425735, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/dtype.py": 5553691086633215767, - "backend/src/core/logger/__tests__/test_logger.py": 11665830455325390168, - "venv/lib/python3.13/site-packages/pillow.libs/libavif-01e67780.so.16.3.0": 13947441788826399574, - "venv/lib/python3.13/site-packages/pyasn1/codec/streaming.py": 13202773554072937140, - "venv/lib/python3.13/site-packages/pandas/_libs/interval.pyi": 15698173755300703836, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_dialect.py": 6294522482440261756, - "venv/lib/python3.13/site-packages/ecdsa/eddsa.py": 15966858338456571506, - "venv/lib/python3.13/site-packages/pandas/_libs/join.cpython-313-x86_64-linux-gnu.so": 2947947484481830203, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/subrout.pyf": 4660465266594480405, - "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs.pyi": 9282436354926617898, - "venv/lib/python3.13/site-packages/pandas/io/formats/excel.py": 797619981868084011, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel_editable.py": 14352954849821931255, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7521/client.py": 17305914656270781911, - "venv/lib/python3.13/site-packages/numpy/lib/npyio.py": 6782361985454523908, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/flatiter.py": 3066469329738423021, - "frontend/src/components/llm/ValidationReport.svelte": 11810571826279890996, - "frontend/src/lib/components/dataset-review/SourceIntakePanel.svelte": 13922687579631047714, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_interpolate.py": 7354685880215444946, - "venv/lib/python3.13/site-packages/secretstorage/defines.py": 9590959702075554048, - "venv/lib/python3.13/site-packages/PIL/_imagingcms.pyi": 12476347428820346383, - "venv/lib/python3.13/site-packages/smmap/buf.py": 18231775424238352734, - "venv/lib/python3.13/site-packages/pygments/lexers/vip.py": 11287963054551122004, - "venv/lib/python3.13/site-packages/pip/_internal/cli/parser.py": 1064209424435927674, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/RECORD": 12598309574903741388, - "venv/lib/python3.13/site-packages/pygments/sphinxext.py": 2768161754523156130, - "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs.py": 15657897994221955882, - "venv/lib/python3.13/site-packages/pydantic/types.py": 785880062468926292, - "venv/lib/python3.13/site-packages/starlette/_utils.py": 8384087194580626069, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_repr.py": 7552782621374439569, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/__init__.py": 9106887608906281686, - "venv/lib/python3.13/site-packages/greenlet/TExceptionState.cpp": 17617354576371846109, - "venv/lib/python3.13/site-packages/_pytest/terminalprogress.py": 5490989904517343259, - "frontend/src/routes/settings/git/+page.svelte": 16236142639181206770, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/test_round.py": 7912161077874611432, - "venv/lib/python3.13/site-packages/jose/jwt.py": 3405491994268385178, - "venv/lib/python3.13/site-packages/apscheduler/__init__.py": 8652514118183227412, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/METADATA": 3814104793342833872, - "venv/lib/python3.13/site-packages/numpy/_utils/__init__.py": 7731065084036767848, - "venv/lib/python3.13/site-packages/pillow.libs/libpng16-4a38ea05.so.16.53.0": 13136089038268964667, - "venv/lib/python3.13/site-packages/pydantic/deprecated/config.py": 12280996227531856230, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/__init__.py": 1343779312297539596, - "venv/lib/python3.13/site-packages/pandas/_libs/indexing.pyi": 90995502095752726, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/METADATA": 12295263493152296681, - "backend/git_repos/remote/test-repo.git/objects/d8/3fe0db1279ef07c4c4f3de4156a629373b4057": 7507193819578792576, - "venv/lib/python3.13/site-packages/jsonschema/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/lib/introspect.py": 5706729538356302335, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/RECORD": 5612689057373270213, - "venv/lib/python3.13/site-packages/pydantic/_internal/_core_metadata.py": 5704137311404303574, - "venv/lib/python3.13/site-packages/pandas/io/parsers/c_parser_wrapper.py": 5841064965672872661, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/websockets_sansio_impl.py": 17221368219485351394, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/WHEEL": 16097436423493754389, - "frontend/playwright-report/trace/uiMode.html": 2646979321132705707, - "venv/lib/python3.13/site-packages/sqlalchemy/future/__init__.py": 17688444679736059779, - "venv/lib/python3.13/site-packages/pip/_internal/utils/egg_link.py": 18211947508793805393, - "frontend/src/routes/datasets/__tests__/ColumnsTable.test.js": 15883951776898228284, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/METADATA": 7727489762869155085, - "frontend/build/_app/immutable/chunks/BWQQsteK.js": 15588475815071543641, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py": 16550134594771291234, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/authorization_server.py": 13696038495666024258, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x86_msvc.h": 2465089365642299646, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_indexing.py": 9988098331562906950, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_numeric.py": 5627177940393829333, - "venv/lib/python3.13/site-packages/numpy/ctypeslib/__init__.pyi": 13208953770241664384, - "venv/lib/python3.13/site-packages/numpy/lib/_npyio_impl.py": 2215312866861772848, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_matmul.py": 9323220618335072725, - "venv/lib/python3.13/site-packages/pydantic/deprecated/decorator.py": 8609500261161560793, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_to_julian_date.py": 6868080396693831272, - "venv/lib/python3.13/site-packages/pandas/io/json/_json.py": 1393095374713367445, - "venv/lib/python3.13/site-packages/urllib3/http2/connection.py": 1661620860881397554, - "venv/lib/python3.13/site-packages/numpy/tests/test_matlib.py": 14395481530627870882, - "venv/lib/python3.13/site-packages/pygments/lexers/_postgres_builtins.py": 2383906454995727700, - "frontend/src/lib/components/settings/ApiKeysTab.svelte": 17208249963941978218, - "backend/src/api/routes/__tests__/test_dataset_review_api.py": 8023021851133925740, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/licenses/__init__.py": 2635182244050911910, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/isocintrin/isoCtests.f90": 6208802899442270399, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_transform.py": 18159263102656491974, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/utils.py": 617314300548081590, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/METADATA": 13695483537390128881, - "venv/lib/python3.13/site-packages/pydantic/plugin/_loader.py": 792663962985957671, - "venv/lib/python3.13/site-packages/click/__init__.py": 9261629899056870564, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/METADATA": 9458019064618635438, - "venv/lib/python3.13/site-packages/httpcore/_sync/socks_proxy.py": 4418971149260853240, - "frontend/src/components/llm/DocPreview.svelte": 25645090129568414, - "backend/src/api/routes/dataset_review.py": 3689614039699023362, - "venv/lib/python3.13/site-packages/numpy/version.pyi": 5075382895829889457, - "venv/lib/python3.13/site-packages/starlette/routing.py": 16063812008141874150, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_astype.py": 11386658862732393123, - "venv/lib/python3.13/site-packages/anyio/to_thread.py": 12767326212338028587, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/licenses/LICENSE": 7959949171752474553, - "venv/lib/python3.13/site-packages/requests/api.py": 12339139862411341381, - "venv/lib/python3.13/site-packages/pandas/core/window/rolling.py": 6316477981414191778, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_tolist.py": 8343058000369672317, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_textreader.py": 388955620768371652, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/idnadata.py": 1169745920682458213, - "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/floating/test_arithmetic.py": 15071337112968886738, - "venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py": 10265081145401348863, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/mapped_collection.py": 11377280960650304531, - "venv/bin/pyrsa-priv2pub": 16766314338551408621, - "frontend/src/lib/components/translate/__tests__/test_translation_preview.svelte.js": 15091004230843271151, - "venv/lib/python3.13/site-packages/pandas/core/sample.py": 11913688303879867963, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_setops.py": 8622608042929141013, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_csv.py": 6678500392137188521, - "backend/src/core/__tests__/test_config_manager_compat.py": 656412918792001580, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_selectable_constructors.py": 84919308502240880, - "venv/lib/python3.13/site-packages/PIL/PdfImagePlugin.py": 16082854250442815862, - "backend/src/core/database.py": 9415540929365751667, - "backend/src/plugins/translate/__tests__/test_sql_generator.py": 4676288356986389564, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge.py": 11366935134260232329, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_astype.py": 15384141282611151560, - "frontend/build/_app/immutable/chunks/CrLU7zQO.js": 14265962769345069959, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/tzconversion.cpython-313-x86_64-linux-gnu.so": 15960606468596245469, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/WHEEL": 2823347510103459191, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/zookeeper.py": 4318643109309626098, - "venv/lib/python3.13/site-packages/cryptography/x509/__init__.py": 4066756344049307453, - "backend/src/api/routes/assistant/_schemas.py": 4855661257485426649, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_size.py": 14032390806503440750, - "backend/alembic/versions/8dd0a93af539_drop_deprecated_source_language_column_.py": 3574830605384611294, - "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs_scalars.pyi": 1826323011169529229, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/measure.py": 18327922742808984428, - "venv/lib/python3.13/site-packages/rsa/pkcs1.py": 2576732594642491910, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_nditer.py": 8341339612899904236, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/WHEEL": 14550174241288068152, - "venv/lib/python3.13/site-packages/sqlalchemy/event/attr.py": 5971663429221923939, - "venv/lib/python3.13/site-packages/uvicorn/lifespan/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/dax.py": 10868881057512002309, - "venv/lib/python3.13/site-packages/PIL/_avif.pyi": 18222325750818585549, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/WHEEL": 7414522633964952515, - "venv/lib/python3.13/site-packages/pyasn1/codec/cer/decoder.py": 17559787396729804535, - "venv/lib/python3.13/site-packages/attr/__init__.pyi": 13203080513025719049, - "venv/lib/python3.13/site-packages/yaml/representer.py": 10550136298978225013, - "frontend/src/lib/auth/permissions.js": 12787489292887903923, - "venv/lib/python3.13/site-packages/numpy/f2py/symbolic.py": 16854377502491291093, - "frontend/build/_app/immutable/nodes/35.BdI-3vAH.js": 15152994709151408688, - "backend/src/plugins/llm_analysis/models.py": 3600633137673071517, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/common.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_overlaps.py": 2328652590379935311, - "venv/lib/python3.13/site-packages/PIL/EpsImagePlugin.py": 1824020964179364491, - "backend/src/core/encryption_key.py": 5870186928729062534, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkeyutils-dfe70bd6.so.1.5": 9414227432578104677, - "venv/lib/python3.13/site-packages/websockets/sync/router.py": 10335595955948355382, - "venv/lib/python3.13/site-packages/pydantic_settings/utils.py": 14396350455520958703, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_xs.py": 11073752361562791165, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-tanh.csv": 6674536825156196036, - "venv/lib/python3.13/site-packages/pandas/core/arrays/integer.py": 7775055011080964709, - "venv/lib/python3.13/site-packages/h11/_events.py": 13800479928851716538, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein.pyi": 2700568594438441246, - "venv/lib/python3.13/site-packages/pydantic/v1/tools.py": 1995883197897112278, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_api.py": 6439927798101672423, - "venv/lib/python3.13/site-packages/numpy/_core/numeric.py": 12261531924304979741, - "venv/lib/python3.13/site-packages/pycparser/_build_tables.py": 569728086093219621, - "venv/lib/python3.13/site-packages/pygments/lexers/modula2.py": 6575895980250662093, - "venv/lib/python3.13/site-packages/pygments/lexers/esoteric.py": 16839499623020685146, - "backend/src/models/mapping.py": 13500075972378889022, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_attr_equal.py": 5612259834202470413, - "venv/lib/python3.13/site-packages/numpy/fft/tests/test_pocketfft.py": 18025182347224285050, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro.py": 183817263146423033, - "venv/lib/python3.13/site-packages/dotenv/variables.py": 5438726379749803751, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/RECORD": 6488682447051657004, - "venv/lib/python3.13/site-packages/pygments/lexers/_julia_builtins.py": 8846111188795315103, - "venv/lib/python3.13/site-packages/git/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/METADATA": 1862765380818895200, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/types.py": 16795741817129898714, - "venv/lib/python3.13/site-packages/multipart/multipart.py": 26386459953377432, - "venv/lib/python3.13/site-packages/sqlalchemy/pool/impl.py": 4687705587963980337, - "backend/src/services/reports/type_profiles.py": 8365014439236739390, - "venv/lib/python3.13/site-packages/pandas/_config/display.py": 433650013567734821, - "venv/lib/python3.13/site-packages/gitdb/db/base.py": 3375449584942578385, - "venv/lib/python3.13/site-packages/rapidfuzz/utils.py": 5682627611354455144, - "venv/lib/python3.13/site-packages/gitdb/test/lib.py": 13294941660283059872, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/common_with_division.f": 13517753924061311074, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_constructors.py": 13890224577680389718, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_indexing.py": 14717641281147152159, - "venv/lib/python3.13/site-packages/pandas/io/parsers/base_parser.py": 15148258424429418380, - "venv/lib/python3.13/site-packages/fastapi/encoders.py": 1914192268055730299, - "venv/lib/python3.13/site-packages/pydantic/utils.py": 1533455264689378477, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_isetitem.py": 14895552405828068177, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_almost_equal.py": 9333355453468475330, - "venv/lib/python3.13/site-packages/pandas/_testing/_warnings.py": 5640964566228306285, - "frontend/build/_app/immutable/chunks/BxfreSRb.js": 7524659291169347564, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ma.pyi": 8186102816080813799, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_numerictypes.py": 8836108334624807647, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/authorization_code.py": 4958605540994687737, - "venv/lib/python3.13/site-packages/authlib/oauth2/auth.py": 8455258275234626534, - "venv/lib/python3.13/site-packages/numpy/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/computation/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/eiffel.py": 8964563077187051946, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_duplicated.py": 6659959750254523427, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_first_valid_index.py": 15763400665851423183, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex_table.tpl": 8706980975714184465, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/numerictypes.pyi": 15565573472138344755, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/path_registry.py": 8410829659513707067, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_version.py": 10384171076976071398, - "frontend/playwright.config.js": 1601415616693761429, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py": 5132658725516243311, - "frontend/src/routes/settings/git/__tests__/git_settings_page.ux.test.js": 5334904955024018051, - "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/scipy_sparse.py": 2091608752719976909, - "frontend/build/_app/immutable/entry/app.B3VIvO3J.js": 430434855117608941, - "venv/lib/python3.13/site-packages/fastapi/security/oauth2.py": 1925394177931547776, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/cffi/model.py": 13544803366359102016, - "venv/lib/python3.13/site-packages/passlib/tests/__init__.py": 16543763165305017760, - "venv/lib/python3.13/site-packages/PIL/WmfImagePlugin.py": 15685062825106444247, - "backend/src/api/routes/translate/_dictionary_routes.py": 5480137091791704976, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/RECORD": 10036839994791510159, - "frontend/src/lib/components/layout/sidebarNavigation.js": 2017502929479329787, - "venv/lib/python3.13/site-packages/_pytest/nodes.py": 515939386237558331, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_compare.py": 3079569478684646491, - "frontend/src/components/MissingMappingModal.svelte": 11264881226066623003, - "venv/lib/python3.13/site-packages/passlib/tests/test_hosts.py": 8284535274820610802, - "venv/lib/python3.13/site-packages/pip/_internal/utils/temp_dir.py": 8657533190026387896, - "venv/lib/python3.13/site-packages/pandas/tests/test_register_accessor.py": 16661086720613729974, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_is_full.py": 9577318758326279694, - "venv/lib/python3.13/site-packages/charset_normalizer/models.py": 9917300217816275821, - "venv/lib/python3.13/site-packages/pygments/lexers/_mapping.py": 12987629396101138833, - "frontend/src/lib/components/dataset-review/SemanticLayerReview.svelte": 10805621354490209991, - "frontend/build/_app/immutable/chunks/D2LDFDH5.js": 1513005501777757570, - "backend/git_repos/remote/test-repo.git/objects/79/b070ad8af7bbc12169f7660d2a7a72ec7a889a": 8153595714065675791, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/string.tpl": 15796203549130590784, - "venv/lib/python3.13/site-packages/greenlet/greenlet_refs.hpp": 8525862687669040510, - "venv/lib/python3.13/site-packages/pip/_internal/build_env.py": 3614358934066127900, - "venv/lib/python3.13/site-packages/numpy/_typing/_shape.py": 12667553664122376205, - "venv/lib/python3.13/site-packages/jaraco/classes/meta.py": 15930255620248873425, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_riscv_unix.h": 8607317131295864391, - "venv/lib/python3.13/site-packages/pluggy/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/resource_protector.py": 4823504113176750140, - "venv/lib/python3.13/site-packages/uvicorn/__init__.py": 11517239807926185665, - "backend/src/scripts/create_admin.py": 7540310914822649547, - "venv/lib/python3.13/site-packages/pip/_internal/models/selection_prefs.py": 14700113736620314923, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/filters/__init__.py": 835924536855006596, - "venv/lib/python3.13/site-packages/pip/_internal/commands/show.py": 11839987586497822300, - "venv/lib/python3.13/site-packages/_pytest/subtests.py": 14573790885130724739, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_exceptions.py": 12145393002202744314, - "venv/lib/python3.13/site-packages/pandas/tests/series/__init__.py": 15130871412783076140, - "backend/src/schemas/__init__.py": 8700952869915187087, - "backend/src/services/clean_release/__tests__/test_stages.py": 15353751625742444422, - "backend/tests/test_translate_history.py": 14504549443376034614, - "venv/lib/python3.13/site-packages/pip/_internal/utils/deprecation.py": 7435269308988385470, - "venv/lib/python3.13/site-packages/pip/_internal/commands/hash.py": 11824898770873127699, - "venv/lib/python3.13/site-packages/numpy/lib/_index_tricks_impl.py": 13574106461973044500, - "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/pygments/lexers/zig.py": 470431199354307668, - "venv/lib/python3.13/site-packages/pygments/lexers/hare.py": 8693002231020751711, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/conftest.py": 3691712173202219606, - "venv/lib/python3.13/site-packages/urllib3/util/wait.py": 14629837381061032546, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_constructors.py": 17219764538851313252, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_map.py": 4761668276463940924, - "venv/lib/python3.13/site-packages/uvicorn/main.py": 5843333502356171120, - "frontend/src/lib/components/layout/__tests__/test_breadcrumbs.svelte.js": 1250794495161202602, - "venv/lib/python3.13/site-packages/pandas/_libs/index.pyi": 17679349633640606985, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/passlib/tests/tox_support.py": 9200774792427691602, - "frontend/src/lib/components/translate/BulkCorrectionSidebar.svelte": 10114621552038076221, - "venv/lib/python3.13/site-packages/pip/_internal/utils/packaging.py": 15555781487631855604, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/jwt.py": 9642615960197748105, - "venv/lib/python3.13/site-packages/PIL/GbrImagePlugin.py": 7681313333602257802, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/styled.py": 8726407298858811635, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/putmask.py": 10934101690788549526, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py": 8864112842559211971, - "venv/lib/python3.13/site-packages/pip/_internal/operations/freeze.py": 3469845570614985559, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/licenses/LICENSE": 14316979437290727897, - "venv/lib/python3.13/site-packages/charset_normalizer/md.cpython-313-x86_64-linux-gnu.so": 1835299664481804968, - "venv/lib/python3.13/site-packages/pip/_internal/self_outdated_check.py": 991029278889407558, - "venv/lib/python3.13/site-packages/urllib3/util/proxy.py": 17667887856427739069, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath_complex.py": 11732242536199439023, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_version.pyi": 3636944488233043883, - "backend/src/core/utils/network.py": 8313622593956890768, - "venv/lib/python3.13/site-packages/httpcore/py.typed": 15130871412783076140, - "backend/tests/services/clean_release/test_policy_resolution_service.py": 3471271299977247598, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_api.py": 7131036004750554905, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_matplotlib.py": 12775850858284584296, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh25337/use_data.f90": 14624074967635860696, - "venv/lib/python3.13/site-packages/passlib/tests/test_context.py": 15195609282700801214, - "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/jeepney/io/tests/test_asyncio.py": 2820168745710754136, - "venv/lib/python3.13/site-packages/pip/_internal/commands/inspect.py": 1401259241736437656, - "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/METADATA": 2624107638694809013, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/unix.py": 13808187640638677050, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_symbolic.py": 8093576026032854125, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_array_ops.py": 6709502157317299163, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_apply.py": 12349190935180702377, - "venv/lib/python3.13/site-packages/requests/auth.py": 912521029864094489, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_console.py": 11657469008721907972, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/lambdas.py": 13377298868598623228, - "venv/lib/python3.13/site-packages/pycparser/ply/cpp.py": 1665654017894222868, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/conftest.py": 16571782049241458769, - "venv/bin/normalizer": 10972303485259566838, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/__init__.py": 15130871412783076140, - "frontend/src/components/git/__tests__/git_manager.unfinished_merge.integration.test.js": 4508809242640248036, - "backend/tests/core/migration/test_archive_parser.py": 1909788158234142574, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_na_values.py": 13527837495439739279, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_head_tail.py": 13047338070883375426, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py": 7624316342162916928, - "venv/lib/python3.13/site-packages/_yaml/__init__.py": 3395829783751571350, - "venv/lib/python3.13/site-packages/cryptography/__init__.py": 641702726372647770, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/box.py": 14303526978791498662, - "venv/lib/python3.13/site-packages/referencing/tests/test_referencing_suite.py": 8875120876162738440, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/h11/_util.py": 9362339074207904329, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/refresh_token.py": 17927903035152872556, - "venv/lib/python3.13/site-packages/anyio/_core/_testing.py": 14024940365851109155, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/api.py": 12339139862411341381, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_dict.py": 16252265723192124609, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_transpose.py": 1686867045869336370, - "venv/lib/python3.13/site-packages/PIL/features.py": 3481835375516797487, - "venv/lib/python3.13/site-packages/yaml/_yaml.cpython-313-x86_64-linux-gnu.so": 16990140871649227895, - "venv/lib/python3.13/site-packages/pygments/lexers/asm.py": 13861952972248758785, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_numba.py": 18148155441554555618, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/conftest.py": 9673372914396625461, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_dropna.py": 17272771246760486947, - "venv/lib/python3.13/site-packages/pandas/io/parsers/__init__.py": 11752833703934347122, - "backend/src/core/__tests__/test_native_filters.py": 823253235973274872, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/casting.py": 12226803454582253097, - "frontend/src/lib/utils.js": 5436516952434475239, - "frontend/build/_app/immutable/nodes/19.BtYix_y_.js": 13099146879599461804, - "venv/lib/python3.13/site-packages/pygments/lexers/srcinfo.py": 16466766917840327610, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/char.f90": 12203871998988759364, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/py.typed": 9796674040111366709, - "venv/lib/python3.13/site-packages/numpy/_core/getlimits.py": 7842717073693731093, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rename_axis.py": 13193478481758930128, - "frontend/src/routes/+layout.ts": 8392799000856778740, - "frontend/src/routes/tools/debug/+page.svelte": 8699044541980877686, - "backend/src/api/routes/git/_router.py": 8701683910668868827, - "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/WHEEL": 7454950858448014158, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_character/foo90.f90": 2435648607844815947, - "venv/lib/python3.13/site-packages/pytest/__main__.py": 8747175113746141224, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/reflection.py": 1799734694597531652, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_extension_array_equal.py": 16119106336497630796, - "frontend/build/_app/immutable/chunks/B3miH4jD.js": 11736959945545311440, - "backend/src/plugins/llm_analysis/__tests__/test_screenshot_service.py": 17792688368296989200, - "backend/git_repos/remote/test-repo.git/objects/59/3a37acec7d2bddce10df90ab17bc9ede52e523": 1117161574576783985, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh18335.f90": 1126438609189294255, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/models.py": 15928924478695638423, - "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.cpython-313-x86_64-linux-gnu.so": 16604252871044637047, - "venv/lib/python3.13/site-packages/passlib/registry.py": 5050675058011850564, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_iter.py": 9232021002336641851, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/visitors.py": 5190923415390076080, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/hstore.py": 9700253004947691961, - "venv/lib/python3.13/site-packages/multipart/exceptions.py": 8580522204565816132, - "venv/lib/python3.13/site-packages/pandas/tests/test_errors.py": 10116716310156374885, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/numpyconfig.h": 13339221870252345205, - "venv/lib/python3.13/site-packages/anyio/py.typed": 15130871412783076140, - "backend/src/models/config.py": 7631082065091961320, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/METADATA": 4868544280955034757, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_compare.py": 171535659467902751, - "venv/lib/python3.13/site-packages/pandas/io/formats/_color_data.py": 15614976586613738953, - "frontend/src/lib/components/reports/__tests__/report_type_profiles.test.js": 498330292141991614, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_value_counts.py": 9352540710376306520, - "backend/src/services/reports/__tests__/test_type_profiles.py": 17262223295445285285, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/WHEEL": 9788895026336324100, - "venv/lib/python3.13/site-packages/attr/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/anyio/abc/_subprocesses.py": 4297459042599291531, - "backend/src/core/__init__.py": 8673978627093182792, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/__init__.py": 8811477458865810434, - "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft_umath.cpython-313-x86_64-linux-gnu.so": 16443444849116065961, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_real/foo77.f": 16156304612888138777, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi": 2777456956260371820, - "venv/lib/python3.13/site-packages/_pytest/unittest.py": 10848803633530338204, - "venv/lib/python3.13/site-packages/pandas/util/_tester.py": 1033951890304257539, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/RECORD": 2024211292009381421, - "venv/lib/python3.13/site-packages/rapidfuzz/__pyinstaller/test_rapidfuzz_packaging.py": 5189055608193366093, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_numpy.py": 9663734591667845940, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/base.py": 13269563625127294513, - "venv/lib/python3.13/site-packages/PIL/MspImagePlugin.py": 3034490726971829439, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/operators.py": 5584982192355398255, - "venv/lib/python3.13/site-packages/uvicorn/importer.py": 5449629250971153435, - "venv/lib/python3.13/site-packages/passlib/win32.py": 5311393450489898748, - "venv/lib/python3.13/site-packages/pip/_internal/commands/index.py": 16715578868094112894, - "venv/lib/python3.13/site-packages/numpy/lib/_arrayterator_impl.py": 4037074830103951000, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_writers.py": 103545128256076790, - "venv/lib/python3.13/site-packages/pandas/io/excel/_odfreader.py": 2760916559416783928, - "venv/lib/python3.13/site-packages/pygments/lexers/maxima.py": 11824576541091274641, - "venv/lib/python3.13/site-packages/pygments/lexers/verifpal.py": 9190813166686923928, - "venv/lib/python3.13/site-packages/pygments/lexers/iolang.py": 10997512999728724130, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_indexing.py": 11572911419313573163, - "frontend/src/lib/auth/__tests__/permissions.test.js": 13555349356008297952, - "frontend/src/lib/components/reports/__tests__/report_detail.ux.test.js": 11878832350632571462, - "venv/lib/python3.13/site-packages/jeepney/auth.py": 10565040329507087892, - "venv/lib/python3.13/site-packages/pandas/core/indexes/extension.py": 7193879749426425951, - "backend/src/core/plugin_base.py": 11649432288706102843, - "backend/src/core/task_manager/persistence.py": 17734987286155732710, - "venv/lib/python3.13/site-packages/jose/utils.py": 1926138853970725083, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/converter.py": 9041278869295701566, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_chaining_and_caching.py": 11784574265874608859, - "venv/lib/python3.13/site-packages/pip/_internal/commands/wheel.py": 16397273591245583356, - "venv/lib/python3.13/site-packages/cryptography/x509/ocsp.py": 17973800752927680404, - "frontend/build/_app/immutable/chunks/1jzJINoE.js": 5138497638450462989, - "backend/src/core/migration/dry_run_orchestrator.py": 6268210017505159964, - "backend/tests/services/clean_release/test_report_audit_immutability.py": 4097909280121147581, - "backend/git_repos/remote/test-repo.git/config": 14478893374498894766, - "venv/lib/python3.13/site-packages/websockets/asyncio/server.py": 885415484558949506, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/key_set.py": 8485970749081951741, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_cov_corr.py": 13652339565475304679, - "venv/lib/python3.13/site-packages/pygments/formatters/irc.py": 2133711525226123259, - "backend/src/core/auth/__tests__/test_auth.py": 9487323693897023350, - "backend/src/core/superset_client/_datasets_preview_filters.py": 14154361389981199486, - "frontend/build/_app/immutable/nodes/6.DJ9MrKC-.js": 8967503365556189617, - "venv/lib/python3.13/site-packages/pip/_internal/models/pylock.py": 16697828625021519459, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_hour.py": 13754646634123368797, - "venv/bin/pyrsa-encrypt": 5858278204727417482, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_astype.py": 11995587502880659624, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/rec.pyi": 14615751247243515028, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_array_utils.py": 14682148205379122638, - "venv/lib/python3.13/site-packages/numpy/lib/mixins.pyi": 15597536290223628777, - "venv/lib/python3.13/site-packages/numpy/version.py": 1497063540123613501, - "venv/lib/python3.13/site-packages/numpy/fft/__init__.pyi": 10354990065626209946, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_from_scalar.py": 16520136036631155842, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/generator_pcg64_np121.pkl.gz": 4708588000144933291, - "venv/lib/python3.13/site-packages/pip/_internal/utils/compat.py": 1841193561752758336, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_select.py": 7083040959665006634, - "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/METADATA": 14158024963562115116, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/funcfortranname.f": 9330535808093475892, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_util.py": 6573034224727513309, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/checks.pyx": 13187505236986855177, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_indexing.py": 14552860427542050771, - "venv/lib/python3.13/site-packages/numpy/core/multiarray.py": 18368443598659711836, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/value_attrspec/gh21665.f90": 11945588837236968550, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_astype.py": 4023134352880775277, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_indexing.py": 81180636019259296, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/RECORD": 7320381591791379627, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_diff.py": 7420674239386436885, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_argsort.py": 7320661835159648143, - "venv/lib/python3.13/site-packages/PIL/ImageColor.py": 17058618058554970738, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_serialization.py": 2011519400081029270, - "venv/lib/python3.13/site-packages/yaml/scanner.py": 8554164423030397366, - "venv/lib/python3.13/site-packages/pygments/lexers/email.py": 4355246279485460399, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/requirements.py": 11478648568700804705, - "frontend/build/_app/immutable/nodes/24.lnfcaE4o.js": 4000891976750157851, - "venv/lib/python3.13/site-packages/typing_inspection/introspection.py": 13916695705179237047, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_parser.py": 3540203683732744499, - "venv/lib/python3.13/site-packages/anyio/from_thread.py": 7973678341601453474, - "venv/lib/python3.13/site-packages/apscheduler/events.py": 10748346950729364899, - "frontend/src/components/git/GitWorkspacePanel.svelte": 15810952071932060330, - "venv/lib/python3.13/site-packages/typing_inspection/typing_objects.py": 16856718240972376883, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/color.py": 15062855556511243610, - "backend/src/services/reports/__init__.py": 11818812865847046400, - "backend/src/plugins/translate/preview_review.py": 5584592578627646560, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_concat.py": 10207975532842927134, - "venv/lib/python3.13/site-packages/jeepney/io/__init__.py": 2568357146184259175, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/_cmd.py": 14954780419054588164, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py": 14216912708889351810, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_mixed.py": 3476101699679108025, - "venv/lib/python3.13/site-packages/httpcore/_backends/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/RECORD": 17341460504914308184, - "venv/lib/python3.13/site-packages/uvicorn/middleware/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/webmisc.py": 9530962803076253849, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/default.py": 7906029092844029127, - "backend/src/core/auth/security.py": 8289703096420999159, - "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/__init__.py": 18019562641348687547, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_missing.py": 3991199131191840903, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pyasn1/type/opentype.py": 340146737126677655, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_html.py": 7947998260347730581, - "venv/lib/python3.13/site-packages/fastapi/logger.py": 11590581556317053213, - "venv/lib/python3.13/site-packages/pyasn1/type/error.py": 1479878696626082697, - "venv/lib/python3.13/site-packages/jose/__init__.py": 15575670403380555945, - "venv/lib/python3.13/site-packages/fastapi/_compat/v2.py": 15078491685917047095, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_compression.py": 8577756801858495168, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_accessor.py": 10074496835594855786, - "venv/lib/python3.13/site-packages/websockets/utils.py": 17624459810483092475, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/collections.cpython-313-x86_64-linux-gnu.so": 6157288238855118017, - "venv/lib/python3.13/site-packages/rapidfuzz/process_cpp_impl.cpython-313-x86_64-linux-gnu.so": 11767771662042404251, - "venv/lib/python3.13/site-packages/pygments/lexers/ampl.py": 4594260378653369985, - "frontend/src/components/git/GitOperationsPanel.svelte": 5140779139910068800, - "venv/lib/python3.13/site-packages/numpy/polynomial/chebyshev.py": 1590647503660777156, - "backend/src/api/routes/mappings.py": 7071183920129492341, - "venv/lib/python3.13/site-packages/pygments/formatter.py": 11156733836937309465, - "frontend/build/_app/immutable/nodes/16.yCusNoj_.js": 1406373227455087905, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/_core/src/umath/svml/LICENSE": 9584102918819171104, - "backend/src/services/clean_release/exceptions.py": 14631509303697939633, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/fft.pyi": 14454280827038327842, - "backend/src/api/routes/__init__.py": 8298072528454936676, - "backend/git_repos/remote/test-repo.git/HEAD": 12394318939628232491, - "venv/lib/python3.13/site-packages/rsa/cli.py": 1753949198467694190, - "venv/lib/python3.13/site-packages/passlib/pwd.py": 14727089240749133060, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_shift.py": 8547819448301023303, - "venv/lib/python3.13/site-packages/numpy/_typing/_nested_sequence.py": 7827259347937485408, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_datetimelike.py": 15246580603900811749, - "venv/lib/python3.13/site-packages/git/__init__.py": 15867730798565725003, - "backend/src/core/__tests__/test_superset_preview_pipeline.py": 5793244881571660499, - "backend/src/plugins/llm_analysis/__tests__/test_service.py": 9850768293526486431, - "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/__init__.py": 9820770319106921495, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/__main__.py": 8412594868333244844, - "venv/lib/python3.13/site-packages/fastapi/param_functions.py": 14585101566697773072, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_polyutils.pyi": 3841660741524427413, - "venv/lib/python3.13/site-packages/pygments/lexers/tlb.py": 1169242051301155885, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/__init__.py": 293004106962245584, - "venv/lib/python3.13/site-packages/_pytest/scope.py": 7603155109542903644, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/strings.pyi": 402863478592154500, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dot.py": 16876560325283070437, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_masked.py": 5380551301916549925, - "venv/lib/python3.13/site-packages/pandas/io/json/__init__.py": 12333505155070172626, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/uvicorn/loops/uvloop.py": 5385425357504191161, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_fillna.py": 16297834601116528166, - "frontend/build/_app/immutable/chunks/CHelQZPK.js": 13538277300205681632, - "venv/lib/python3.13/site-packages/pydantic/_internal/_core_utils.py": 13248004771466837645, - "venv/lib/python3.13/site-packages/pydantic_core/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/elm.py": 14683437310498104916, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_character/foo77.f": 4046503346951676582, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_string_array.py": 8260883866404398980, - "backend/src/api/routes/__tests__/test_clean_release_source_policy.py": 15242462571646635922, - "venv/lib/python3.13/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17": 4221600618602131476, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/rethinkdb.py": 16413299263077970925, - "venv/lib/python3.13/site-packages/numpy/_globals.pyi": 12839879732484756979, - "venv/lib/python3.13/site-packages/pandas/core/indexes/frozen.py": 1419685664276640120, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py": 5324490103277723813, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/philox-testset-2.csv": 7063857529719738394, - "venv/lib/python3.13/site-packages/annotated_types/test_cases.py": 5123395674810472016, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/request.py": 10484280068366411541, - "venv/lib/python3.13/site-packages/numpy/_core/function_base.pyi": 8343632640078378312, - "venv/lib/python3.13/site-packages/pandas/tests/config/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_period_index.py": 6634414375581820058, - "venv/lib/python3.13/site-packages/pandas/core/internals/ops.py": 4740509262379451243, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarbuffer.py": 16859789411010045795, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_quarter.py": 11099677280196239755, - "venv/lib/python3.13/site-packages/urllib3/contrib/pyopenssl.py": 11839715589709210412, - "venv/lib/python3.13/site-packages/pygments/lexers/basic.py": 12723021007042054402, - "frontend/static/favicon.png": 16740551781088792605, - "venv/lib/python3.13/site-packages/jeepney/low_level.py": 6546206679858571608, - "frontend/build/_app/immutable/chunks/CyrRIrvE.js": 6233954911328508847, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_parser.py": 8145921552236189367, - "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/RECORD": 11788532857617688351, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/socks.py": 17581293673028078134, - "backend/src/app.py": 9380595892248657452, - "backend/src/api/routes/assistant/_routes.py": 438564212453429233, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.cpython-313-x86_64-linux-gnu.so": 12776951671822017500, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/util.pyx": 649821942746469002, - "frontend/src/routes/datasets/review/[id]/__tests__/dataset_review_workspace.ux.test.js": 4105775024258653726, - "backend/src/services/git/__init__.py": 14011752637167919253, - "backend/src/plugins/__init__.py": 17194112070692432889, - "backend/tests/test_models.py": 3998442321184404421, - "venv/lib/python3.13/site-packages/_pytest/fixtures.py": 1442767529726551116, - "venv/lib/python3.13/site-packages/ecdsa/_compat.py": 13034064768731879065, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE": 17675192170670564526, - "venv/lib/python3.13/site-packages/pandas/_libs/tslib.pyi": 16170606956605100142, - "venv/lib/python3.13/site-packages/httpx/_types.py": 12461152436147308761, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/assertions.py": 5556667947376168765, - "venv/lib/python3.13/site-packages/urllib3/_version.py": 839747992523118887, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler_py.py": 16189204441438239231, - "venv/lib/python3.13/site-packages/pygments/lexers/_scilab_builtins.py": 17453812809700086888, - "backend/src/services/clean_release/__init__.py": 18311663871116449547, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/warnings_and_errors.py": 11172336980866895356, - "venv/lib/python3.13/site-packages/pillow.libs/liblzma-61b1002e.so.5.8.2": 11405063484938458842, - "venv/lib/python3.13/site-packages/websockets/asyncio/compatibility.py": 9716993942839407921, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/_typing.py": 17598638528781632158, - "frontend/src/routes/settings/StorageSettings.svelte": 1953157077500445570, - "backend/src/api/routes/dataset_review_pkg/_dependencies.py": 15939232213193276681, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_parquet.py": 11050150015772440923, - "venv/lib/python3.13/site-packages/pygments/lexers/gdscript.py": 12775803139854052838, - "venv/lib/python3.13/site-packages/sqlalchemy/future/engine.py": 4639404437703898767, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/exc.py": 1448374203226983757, - "venv/lib/python3.13/site-packages/pandas/io/sas/sas_xport.py": 16525568795475918874, - "venv/lib/python3.13/site-packages/pydantic/v1/color.py": 14545509649623975912, - "venv/lib/python3.13/site-packages/numpy/testing/print_coercion_tables.py": 11758491058846790938, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py3-objarr.npy": 17303060773267383537, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/versioncontrol.py": 13742159245132241245, - "venv/lib/python3.13/site-packages/pandas/tests/tools/__init__.py": 15130871412783076140, - "frontend/build/_app/immutable/chunks/C8K-NfB8.js": 522730246953022577, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/PIL/ImageEnhance.py": 3218405223202808764, - "backend/tests/test_constants_audit_fixes.py": 18298690956132739779, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/mypy.py": 823265492261272631, - "venv/lib/python3.13/site-packages/pandas/io/orc.py": 12754290195886557668, - "frontend/build/_app/immutable/chunks/C20922N0.js": 14681700380768364777, - "frontend/tests/maintenance.test.ts": 13103794138601813910, - "venv/lib/python3.13/site-packages/gitdb/pack.py": 7828244200815444166, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/__init__.py": 7316739139609490520, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/cmac.py": 12011944740750051829, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi": 10784666243744187693, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/RECORD": 6349071557579241461, - "venv/lib/python3.13/site-packages/sqlalchemy/event/base.py": 18238453132776154057, - "venv/lib/python3.13/site-packages/pygments/lexers/dotnet.py": 17970884907837213099, - "venv/lib/python3.13/site-packages/pandas/core/ops/common.py": 17314999825118928100, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_missing.py": 1963705411068820866, - "venv/lib/python3.13/site-packages/fastapi/datastructures.py": 727178955746650271, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_frequencies.py": 14039315221824123200, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_comparison.py": 11333735187162513512, - "venv/lib/python3.13/site-packages/pygments/formatters/other.py": 13124903290103898118, - "venv/lib/python3.13/site-packages/pygments/lexers/j.py": 9766594937623918053, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/cache.py": 3177663126928467950, - "venv/lib/python3.13/site-packages/pygments/lexers/bare.py": 18266858932333619451, - "venv/lib/python3.13/site-packages/packaging/_elffile.py": 9546225990833172494, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_ndarray_backed.py": 10097812802469682233, - "venv/lib/python3.13/site-packages/pip/_internal/configuration.py": 2563100675379605810, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arctan.csv": 4581185622290535488, - "venv/lib/python3.13/site-packages/pandas/util/_test_decorators.py": 17930801441803090445, - "backend/tests/test_translate_scheduler_guard.py": 13396608843530344156, - "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/WHEEL": 5179340427739743287, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/licenses/LICENSE": 2345070715845618109, - "venv/lib/python3.13/site-packages/numpy/f2py/_src_pyf.py": 546976622482819095, - "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/bcrypt/_bcrypt.pyi": 15067467792538416274, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_simd_module.py": 7122050193390298178, - "venv/lib/python3.13/site-packages/pandas/io/excel/_odswriter.py": 17220892094904423676, - "venv/lib/python3.13/site-packages/pandas/core/_numba/extensions.py": 4132402557064663751, - "venv/lib/python3.13/site-packages/pandas/core/computation/parsing.py": 3084943521520476999, - "venv/lib/python3.13/site-packages/sqlalchemy/pool/events.py": 13473858896579666058, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/__init__.py": 15487893533770969571, - "venv/lib/python3.13/site-packages/yaml/cyaml.py": 9157893742065554693, - "venv/lib/python3.13/site-packages/pip/_internal/main.py": 13711402795965346761, - "venv/lib/python3.13/site-packages/passlib/handlers/sun_md5_crypt.py": 1949993216707182407, - "venv/lib/python3.13/site-packages/numpy.libs/libscipy_openblas64_-096271d3.so": 14338208504131470036, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/__init__.py": 6327819603201859020, - "frontend/src/lib/ui/Input.svelte": 8632025378593263475, - "venv/lib/python3.13/site-packages/dotenv/py.typed": 9796674040111366709, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/assertion.py": 5287436128235488464, - "frontend/src/routes/reports/llm/[taskId]/report_page.contract.test.js": 4825093389030464765, - "venv/lib/python3.13/site-packages/secretstorage/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/git/repo/fun.py": 9019364012746153312, - "frontend/build/_app/immutable/chunks/Dul6iTE7.js": 10339509389374345579, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/__init__.py": 8880435562116660648, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_cpp_avx2.cpython-313-x86_64-linux-gnu.so": 12574929384355254457, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_crackfortran.py": 10278720705326601943, - "venv/lib/python3.13/site-packages/gitdb/base.py": 7927279446353696534, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/requests.py": 6703055041957748929, - "venv/lib/python3.13/site-packages/starlette/middleware/authentication.py": 15211131264936212938, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_info.py": 15151894356374015812, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_complex/foo77.f": 7353666717928699883, - "venv/lib/python3.13/site-packages/numpy/_core/__init__.pyi": 2783897020308040960, - "venv/lib/python3.13/site-packages/passlib/handlers/fshp.py": 13298827601291507295, - "venv/lib/python3.13/site-packages/pandas/io/excel/_util.py": 6664989864423807444, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/pkg_resources.py": 14271077832999370068, - "venv/lib/python3.13/site-packages/anyio/abc/_testing.py": 16484863782452886547, - "venv/lib/python3.13/site-packages/yaml/dumper.py": 11376022992370902766, - "frontend/src/routes/translate/+page.svelte": 15284819686967093613, - "frontend/build/_app/immutable/nodes/11.AnPCb-Ut.js": 13179973353447891567, - "frontend/tests/maintenance-api.test.ts": 10196278218740408254, - "venv/lib/python3.13/site-packages/more_itertools/more.py": 1631135582441184133, - "backend/src/services/__tests__/test_encryption_manager.py": 5925253324895194576, - "venv/lib/python3.13/site-packages/pandas/tests/internals/test_internals.py": 2049484047553296860, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_append.py": 9644955836191900614, - "venv/lib/python3.13/site-packages/iniconfig/exceptions.py": 16501270224069836264, - "venv/lib/python3.13/site-packages/numpy/_core/multiarray.py": 4484782354376574355, - "venv/lib/python3.13/site-packages/pandas/api/indexers/__init__.py": 17431573013142626187, - "venv/lib/python3.13/site-packages/PIL/ContainerIO.py": 7551929914241379005, - "venv/lib/python3.13/site-packages/pygments/token.py": 6987328478153445584, - "backend/src/services/git/_merge.py": 3056385620903925104, - "venv/lib/python3.13/site-packages/PIL/_util.py": 17116054813914373606, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/npyio.pyi": 15811156298637131744, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_select_dtypes.py": 3530442956913622572, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_mask.py": 9654897363729130542, - "venv/lib/python3.13/site-packages/numpy/_core/arrayprint.pyi": 84606125837677197, - "venv/lib/python3.13/site-packages/pip/_internal/commands/search.py": 8292218231992728142, - "venv/lib/python3.13/site-packages/pandas/_libs/window/aggregations.pyi": 6072607880689125113, - "venv/lib/python3.13/site-packages/numpy/random/_sfc64.cpython-313-x86_64-linux-gnu.so": 17186695607612591922, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_concat.py": 3788461606817482165, - "venv/lib/python3.13/site-packages/git/objects/submodule/__init__.py": 12958523219496107878, - "frontend/e2e/run-e2e.sh": 8106714116467101372, - "frontend/playwright-report/trace/uiMode.Btcz36p_.css": 7361350017361398233, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/claims.py": 11853156183819186599, - "venv/lib/python3.13/site-packages/numpy/_core/_ufunc_config.pyi": 9291444594181042963, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_astype.py": 7497268667246913350, - "venv/lib/python3.13/site-packages/git/index/typ.py": 11661540784850363024, - "venv/lib/python3.13/site-packages/pygments/lexers/automation.py": 8021926838024836904, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/dml.py": 6567627855667533645, - "venv/lib/python3.13/site-packages/pandas/core/indexes/datetimelike.py": 4356700619632833878, - "venv/lib/python3.13/site-packages/passlib/utils/__init__.py": 11704122205941631503, - "venv/lib/python3.13/site-packages/numpy/ma/core.py": 338350463523585845, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/tzlocal/windows_tz.py": 11696765495002954868, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/base.py": 14734745827490220667, - "frontend/src/components/EnvSelector.svelte": 3937920133889630193, - "venv/lib/python3.13/site-packages/anyio/_core/_sockets.py": 10525237827959090532, - "venv/lib/python3.13/site-packages/starlette/responses.py": 14081178833432955042, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/util.py": 387985965709546512, - "venv/lib/python3.13/site-packages/pygments/styles/native.py": 4559566444883341527, - "backend/tests/test_core_scheduler.py": 2305397851769292578, - "venv/lib/python3.13/site-packages/rsa/common.py": 10921682819204792805, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/token_validator.py": 2932866595454490527, - "venv/lib/python3.13/site-packages/greenlet/greenlet_internal.hpp": 13173115501223013762, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_any_index.py": 10800968419286329268, - "venv/lib/python3.13/site-packages/pandas/_version_meson.py": 4875297137037630519, - "venv/lib/python3.13/site-packages/httpcore/_async/connection.py": 2155744160496556069, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_xml.py": 6906547816798138000, - "venv/lib/python3.13/site-packages/smmap/test/test_mman.py": 8977119225749253844, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/fft/__init__.py": 9343449448737026658, - "frontend/playwright-report/trace/codeMirrorModule.DYBRYzYX.css": 14866915564324637173, - "venv/lib/python3.13/site-packages/rsa/__init__.py": 14623742580410014505, - "venv/lib/python3.13/site-packages/pandas/_libs/json.cpython-313-x86_64-linux-gnu.so": 2436285663630821963, - "venv/lib/python3.13/site-packages/pygments/lexers/sas.py": 6128008194712914874, - "frontend/src/lib/stores/__tests__/mocks/stores.js": 14098417748659067309, - "frontend/src/services/__tests__/gitService.test.js": 12845562082447336909, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_wrap.py": 17083394123203662880, - "backend/src/services/git/_url.py": 15729080796864187707, - "backend/git_repos/remote/test-repo.git/objects/e9/1109abe29d5228675fecd6fc38a097147c090d": 15716642455993350072, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f90continuation.f90": 17056591497459381871, - "venv/lib/python3.13/site-packages/cffi/vengine_gen.py": 6582900613549620556, - "venv/lib/python3.13/site-packages/more_itertools/__init__.pyi": 16479506520351014608, - "venv/lib/python3.13/site-packages/h11/_connection.py": 6971907312737339559, - "venv/lib/python3.13/site-packages/referencing/_attrs.py": 14434891919747863272, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_find_replace.py": 262184394614748386, - "venv/lib/python3.13/site-packages/_pytest/recwarn.py": 15312759837838083596, - "venv/lib/python3.13/site-packages/pandas/tests/test_algos.py": 11860014896449369497, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/quoted_character/foo.f": 15318083678609435813, - "venv/lib/python3.13/site-packages/smmap/test/test_tutorial.py": 16309370344201290582, - "venv/lib/python3.13/site-packages/numpy/_core/_asarray.py": 3468915833437229425, - "venv/lib/python3.13/site-packages/pandas/_config/localization.py": 11197430792343731762, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_string.py": 15542851215119662814, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_values.py": 8372572954663628844, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/adapters.py": 2224938661429637508, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/sqlalchemy.py": 811968833735951956, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_categorical_equal.py": 7942323667866280872, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_common_basic.py": 1945891789924713537, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/errors.py": 6538052228921426956, - "venv/bin/Activate.ps1": 1196103427939049710, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cbrt.csv": 8929553891827331780, - "venv/lib/python3.13/site-packages/pytest/py.typed": 15130871412783076140, - "frontend/playwright-report/trace/playwright-logo.svg": 4728037962520658573, - "venv/lib/python3.13/site-packages/pygments/lexers/phix.py": 16775285097768256238, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/__init__.py": 15130871412783076140, - "backend/src/services/clean_release/__tests__/test_preparation_service.py": 4765724405964286078, - "backend/src/plugins/translate/metrics.py": 16289306156708185830, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arcsinh.csv": 13695545125848146013, - "venv/lib/python3.13/site-packages/authlib/jose/__init__.py": 317573635113539563, - "venv/lib/python3.13/site-packages/passlib/tests/test_utils_md4.py": 15270721044910698449, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/PIL/SunImagePlugin.py": 7661622930404688367, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/LICENSE": 12064892310002036996, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pygments/lexers/kuin.py": 2818054539831699366, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/__init__.py": 8093984834068317399, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/errors.py": 2147619440137604907, - "venv/lib/python3.13/site-packages/pandas/core/ops/mask_ops.py": 16152832446926420035, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/negative_bounds/issue_20853.f90": 3911644649277659333, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_subplots.py": 4596089143375088346, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_dtypes.py": 13065857166166716628, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_array_to_datetime.py": 3467480435568672840, - "venv/lib/python3.13/site-packages/PIL/_imagingft.pyi": 1385456134120145584, - "backend/src/services/auth_service.py": 17642785219801916280, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_skew.py": 5276102682005383261, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/RECORD": 18314788057673509075, - "backend/src/services/clean_release/compliance_orchestrator.py": 10585043190405940115, - "venv/lib/python3.13/site-packages/dotenv/version.py": 13508433229287636267, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_unique.py": 3148372351781648868, - "venv/lib/python3.13/site-packages/jose/backends/ecdsa_backend.py": 2684176977865283060, - "venv/lib/python3.13/site-packages/pandas/io/feather_format.py": 13242733585787888812, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/strategies.py": 15673926142454922581, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/base.py": 7110726987481713080, - "venv/lib/python3.13/site-packages/numpy/lib/_shape_base_impl.pyi": 12052895927933479005, - "venv/lib/python3.13/site-packages/pandas/core/indexes/base.py": 496956059910401121, - "frontend/build/_app/immutable/nodes/32.Cmesu1rv.js": 1679171227981656667, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py": 7019253290755243568, - "backend/src/services/git/_base.py": 3671238045679556094, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/apps.py": 10758062668702044519, - "venv/lib/python3.13/site-packages/pygments/styles/lilypond.py": 12486578704132023691, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/resources.py": 11533706401259147051, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_musllinux.py": 2423350951094915747, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libcrypto-2e26a48f.so.3": 3658133521245392852, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/screen.py": 6933591906297023845, - "frontend/playwright-report/trace/uiMode.C2Efnu2P.js": 2717171022864487300, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_argparse.py": 11111699418217357084, - "venv/lib/python3.13/site-packages/httpcore/_exceptions.py": 6716590711697088732, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_amd64_unix.h": 16679226724722970205, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_datetimes.py": 7889573945417063183, - "venv/lib/python3.13/site-packages/attr/_cmp.py": 3297594878548179300, - "venv/lib/python3.13/site-packages/starlette/_exception_handler.py": 9892172656847200124, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/reporter.py": 6510864297510700136, - "venv/lib/python3.13/site-packages/pygments/lexers/yang.py": 7409365668425173823, + "venv/lib/python3.13/site-packages/psycopg2/pool.py": 8855184580138330938, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_case_when.py": 4133174129660834805, + "backend/tests/test_sql_table_extractor.py": 8232282806948246815, + "venv/lib/python3.13/site-packages/click/_textwrap.py": 14586282603215052310, + "venv/lib/python3.13/site-packages/click/core.py": 16793133181718891193, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/INSTALLER": 17282701611721059870, "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/random.pyi": 1808392097712315455, - "frontend/src/routes/dashboards/__tests__/dashboard-profile-override.integration.test.js": 15198772446275187033, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_csv.py": 571991535656576735, - "venv/lib/python3.13/site-packages/PIL/FitsImagePlugin.py": 618556384932056120, - "backend/src/services/__tests__/test_health_service.py": 17832814613637967046, - "venv/lib/python3.13/site-packages/numpy/_array_api_info.pyi": 13283968924732680159, - "venv/lib/python3.13/site-packages/passlib/handlers/pbkdf2.py": 16686685453577026643, - "venv/lib/python3.13/site-packages/pandas/core/tools/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/integration.py": 3085827906490477329, - "venv/lib/python3.13/site-packages/cffi/error.py": 8147505969912539538, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_set_index.py": 10971093361190283675, - "venv/lib/python3.13/site-packages/pip/_internal/cli/cmdoptions.py": 12107733000019393631, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/RECORD": 15865206372525596795, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc64_aix.h": 8706347224105630468, - "venv/lib/python3.13/site-packages/pydantic/v1/schema.py": 10008526732895436361, - "venv/lib/python3.13/site-packages/PIL/__init__.py": 10393984345353752724, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8693/__init__.py": 11065844267208884531, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/ec_key.py": 5961540064444749833, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_endian.h": 2761502363895204652, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/__init__.py": 11850945878149145990, - "venv/lib/python3.13/site-packages/pygments/lexers/c_cpp.py": 1211842877043321095, - "backend/src/models/dataset_review_pkg/_filter_models.py": 13932350898582638473, - "venv/lib/python3.13/site-packages/pygments/lexers/webidl.py": 8097260111959278117, - "venv/lib/python3.13/site-packages/numpy/_core/_ufunc_config.py": 7365943844063702766, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE.BSD": 16833702494864671773, - "venv/lib/python3.13/site-packages/pandas/io/json/_normalize.py": 15938855324762935595, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/__init__.py": 6758781485387665020, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_fillna.py": 7349777469648334282, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/orm.py": 7554417559838785150, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_constructors.pyi": 164538008396001632, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/METADATA": 9041650844081036822, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64-testset-1.csv": 16078879475693341404, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/funcfortranname.pyf": 1361426175133186231, - "venv/lib/python3.13/site-packages/pandas/core/indexers/utils.py": 5861072573716897447, - "venv/lib/python3.13/site-packages/python_multipart/__init__.py": 10290895261363712562, - "frontend/build/_app/immutable/chunks/DSxK3NUv.js": 8639953729041066468, - "venv/lib/python3.13/site-packages/pandas/tests/reductions/test_stat_reductions.py": 11569525436540769152, - "backend/src/models/profile.py": 6081037345174498278, - "venv/lib/python3.13/site-packages/_pytest/stepwise.py": 3527630676691417317, - "venv/lib/python3.13/site-packages/rapidfuzz/_feature_detector_cpp.cpython-313-x86_64-linux-gnu.so": 16337157355618216738, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/json_schema_test_suite.py": 6152158310190822762, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test__exceptions.py": 12099001631178696189, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/__init__.py": 10357835306532281617, - "frontend/src/routes/+page.ts": 11160596731849880920, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/scoping.py": 17216492046645992674, - "venv/lib/python3.13/site-packages/pygments/formatters/html.py": 1918541918263449443, - "venv/lib/python3.13/site-packages/websockets/asyncio/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_between_time.py": 14266333058913745751, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_polynomial.py": 3049262771098624825, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/__init__.py": 16416360448593978041, - "venv/lib/python3.13/site-packages/PIL/_avif.cpython-313-x86_64-linux-gnu.so": 5243449968857258659, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/array_constructors.py": 6727209833819502644, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_reductions.py": 17810094294132819208, - "venv/lib/python3.13/site-packages/sqlalchemy/util/compat.py": 16148553252010089561, - "venv/lib/python3.13/site-packages/pygments/lexers/other.py": 6893672181003034910, - "venv/lib/python3.13/site-packages/pydantic/validate_call_decorator.py": 11130572937843915026, - "venv/lib/python3.13/site-packages/pydantic/plugin/__init__.py": 16803973597469216174, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_legend.py": 13094583566764796297, - "venv/lib/python3.13/site-packages/pandas/io/_util.py": 13608922148814398500, - "venv/lib/python3.13/site-packages/urllib3/response.py": 1987354357306756790, - "frontend/src/routes/datasets/__tests__/inline_edit.test.js": 17712409018171053453, - "backend/src/core/middleware/__init__.py": 13917394130915533209, - "venv/lib/python3.13/site-packages/pygments/lexers/_css_builtins.py": 17478340487186531268, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_apply.py": 8103417303073393969, - "venv/lib/python3.13/site-packages/h11/_receivebuffer.py": 4631433251046338381, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api2.pyx": 15936470837420356071, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_where.py": 14167991754625133668, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_replace.py": 18039668944453454689, - "backend/tests/core/migration/test_dry_run_orchestrator.py": 5158126098685923841, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/stride_tricks.pyi": 5844806555773292985, - "backend/git_repos/remote/test-repo.git/objects/71/47ad0836409b35c1650dddf5fa6329ba61a824": 16601919569600972016, - "venv/lib/python3.13/site-packages/passlib/handlers/argon2.py": 835074952952017434, - "venv/lib/python3.13/site-packages/dateutil/zoneinfo/rebuild.py": 1813298167468704155, - "venv/bin/py.test": 2593802493707545818, - "venv/lib/python3.13/site-packages/starlette/requests.py": 4582424111350387010, - "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/RECORD": 3649834117451110628, - "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/tools/test_to_time.py": 10463741033950978270, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/uts46data.py": 1867240043777383728, - "venv/lib/python3.13/site-packages/pandas/core/interchange/dataframe_protocol.py": 12857147443873820285, - "venv/lib/python3.13/site-packages/gitdb/utils/encoding.py": 1668793658272579497, - "venv/lib/python3.13/site-packages/numpy/ma/README.rst": 13203411621071845216, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/gcp.py": 12328409672947966867, - "venv/lib/python3.13/site-packages/_pytest/config/findpaths.py": 7867603756389940562, - "venv/lib/python3.13/site-packages/numpy/_core/tests/_locales.py": 18178500267053825979, - "venv/lib/python3.13/site-packages/pandas/tests/interchange/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_builtin.py": 74545289993348593, - "backend/tests/core/test_git_service_gitea_pr.py": 6098719224379185148, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_arrow_compat.py": 17818294260710640443, - "venv/lib/python3.13/site-packages/pydantic/_internal/_internal_dataclass.py": 13206778611516171760, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/oauth1_session.py": 1911069558956893789, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/applicator": 6616723520993329538, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/memmap.pyi": 2834143910417841603, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_cpp.cpython-313-x86_64-linux-gnu.so": 14187094676876471848, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_interval.py": 2911379732293827726, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_to_pydatetime.py": 1129954411080617001, - "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/__init__.py": 5896924546560667519, - "venv/lib/python3.13/site-packages/numpy/random/_pcg64.cpython-313-x86_64-linux-gnu.so": 5759445712745875888, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_pickle.py": 3419420815386925630, - "venv/lib/python3.13/site-packages/keyring/__init__.py": 991260689223167957, - "venv/bin/pip3.13": 13861749540792881808, - "venv/lib/python3.13/site-packages/pydantic_settings/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_string.py": 13234624995755549329, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/WHEEL": 13232065379159720345, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/align.py": 6078666505647454830, - "venv/lib/python3.13/site-packages/PIL/PaletteFile.py": 4104323659569809769, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/METADATA": 11557342107649194148, - "venv/lib/python3.13/site-packages/pip/_internal/utils/unpacking.py": 106471890743211548, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/token.py": 4161760290367932793, - "venv/lib/python3.13/site-packages/pandas/core/ops/array_ops.py": 10061020479033421596, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_f2py2e.py": 8571347023940385644, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timestamps.cpython-313-x86_64-linux-gnu.so": 13209491675968970365, - "venv/lib/python3.13/site-packages/pandas/_libs/lib.cpython-313-x86_64-linux-gnu.so": 6452315003728497116, - "frontend/build/_app/immutable/assets/AssistantChatPanel.D4L5jlt0.css": 10724144138366384732, - "venv/lib/python3.13/site-packages/h11/_version.py": 9334144031400715479, - "backend/src/models/dataset_review_pkg/_execution_models.py": 14035769184235191693, - "venv/lib/python3.13/site-packages/jaraco/functools/__init__.py": 15334412919279565528, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/resource_protector.py": 9147671710440653567, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/INSTALLER": 17282701611721059870, - "frontend/src/routes/validation/history/+page.svelte": 3920288174017004134, - "backend/src/services/reports/report_service.py": 17586405613867657190, - "venv/lib/python3.13/site-packages/pip/_internal/commands/download.py": 7533669665002975823, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_level_values.py": 12490886203425393290, - "venv/lib/python3.13/site-packages/authlib/integrations/django_client/__init__.py": 14186136918454802843, - "frontend/src/lib/components/ui/SearchableMultiSelect.svelte": 681804602822957470, - "backend/git_repos/remote/test-repo.git/hooks/applypatch-msg.sample": 12627299623252391515, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/compiler.py": 13924519162400330589, - "venv/lib/python3.13/site-packages/apscheduler/executors/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/extension/date/__init__.py": 16789767433439616593, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/installed.py": 18153165899841229597, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_reduction.py": 2671872764983553906, - "frontend/build/_app/immutable/nodes/3.DC_u72aE.js": 9573850396512596892, - "frontend/eslint.config.js": 14296985543214702398, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/masked_reductions.py": 633644255158859565, - "venv/lib/python3.13/site-packages/fastapi/background.py": 16533963020573865222, - "venv/lib/python3.13/site-packages/pandas/errors/__init__.py": 13444371880185740908, - "venv/lib/python3.13/site-packages/anyio/_core/_resources.py": 8463932838064724564, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/__init__.py": 12793458753561114666, - "venv/lib/python3.13/site-packages/pip/_internal/cli/progress_bars.py": 7584699216537478969, - "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_deprecations.py": 14624516389510242394, - "backend/src/models/__init__.py": 13280325675752905975, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/abc.py": 6227782083136374888, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/dtype.pyi": 12178008080078679769, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/provision.py": 9472538482404392519, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_ccalendar.py": 8819357623337533489, - "venv/lib/python3.13/site-packages/requests/structures.py": 2668010839316715865, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py": 17873236864291624476, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/selectable.py": 14646717349365560549, - "venv/lib/python3.13/site-packages/numpy/lib/npyio.pyi": 3212440968296555560, - "venv/lib/python3.13/site-packages/pandas/tests/extension/date/array.py": 18073740473413382768, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/base.py": 16052592982063844259, - "venv/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd": 1476688171642957054, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/_pytest/config/argparsing.py": 11156052029258891503, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/yaml/emitter.py": 6036657460416912844, - "venv/lib/python3.13/site-packages/dateutil/tz/__init__.py": 9617254832690762236, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/RECORD": 7810411361439269754, - "venv/lib/python3.13/site-packages/pygments/lexers/jsx.py": 13855228003748707341, - "frontend/src/lib/components/reports/__tests__/reports_filter_performance.test.js": 10583581505638859039, - "frontend/build/_app/immutable/nodes/37.qmsMPGgB.js": 3325998617833460603, - "backend/src/core/superset_client/_dashboards_list.py": 10999374002470143873, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/__init__.py": 8924316361489544973, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py": 2042509334195547606, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/WHEEL": 7454950858448014158, - "venv/lib/python3.13/site-packages/numpy/lib/_ufunclike_impl.pyi": 9854069702366900663, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_get_numeric_data.py": 5896318696417090902, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_partial.py": 3151286293440416036, - "frontend/src/components/tasks/LogFilterBar.svelte": 5318774167984892372, - "venv/lib/python3.13/site-packages/numpy/_utils/_pep440.py": 15854257948148516490, - "frontend/src/routes/storage/repos/+page.svelte": 3849368960648953479, - "backend/src/models/api_key.py": 4327024700622965951, - "frontend/src/routes/validation/[id]/+page.svelte": 17573557905368368906, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_month.py": 8485374160446988786, - "venv/lib/python3.13/site-packages/httpcore/_async/socks_proxy.py": 9026788710898138090, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_subclassing.py": 17318983445227658412, - "backend/alembic/versions/a5b6c7d8e9f0_set_null_ondelete_for_task_records_env_fk.py": 17528129825127496932, - "docker/backend.Dockerfile": 4384294014726084339, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/revocation.py": 16178499278312777474, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq_py.py": 16054175754674285311, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/numeric.pyi": 17005748821769179511, - "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft.py": 6142062990691556076, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_base.py": 16710163879060522196, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/METADATA": 15970460108484113417, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/status.py": 2214590120238144582, - "venv/lib/python3.13/site-packages/pydantic/v1/json.py": 16596969681914729251, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_casting_unittests.py": 18157503533859249155, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_quantile.py": 17110581927381599978, - "venv/lib/python3.13/site-packages/pandas/tests/extension/conftest.py": 16886862391161243448, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/dim2.py": 5767600151459095125, - "venv/lib/python3.13/site-packages/anyio/_core/_synchronization.py": 7050001375718876608, - "venv/lib/python3.13/site-packages/fastapi/openapi/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/io/formats/console.py": 10370334487585281127, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_cython.py": 2933400021016349431, - "venv/lib/python3.13/site-packages/pygments/lexers/capnproto.py": 15713281507099411738, - "venv/lib/python3.13/site-packages/pygments/lexers/bqn.py": 11823648528816858738, - "venv/lib/python3.13/site-packages/psycopg2/tz.py": 9966680685796585198, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/RECORD": 11604408378998955169, - "venv/lib/python3.13/site-packages/numpy/lib/_npyio_impl.pyi": 6576645822227068922, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi": 9294219058621261971, - "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/RECORD": 9974324769263969827, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_quoted_character.py": 2316632434571797367, - "venv/lib/python3.13/site-packages/httpcore/_backends/base.py": 5491727479625093183, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_struct_accessor.py": 6567451952835390075, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_mips_unix.h": 17373389962405490482, - "venv/lib/python3.13/site-packages/greenlet/TGreenlet.cpp": 4121171004360760212, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/hook-numpy.py": 5221550291012182443, - "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_salsa.py": 1756536674254931838, - "backend/src/api/routes/translate/_helpers.py": 13265933139767815312, - "venv/lib/python3.13/site-packages/pygments/lexers/asn1.py": 15030988816882821134, - "venv/lib/python3.13/site-packages/pandas/io/parsers/arrow_parser_wrapper.py": 11745253171984606573, - "venv/lib/python3.13/site-packages/numpy/_core/einsumfunc.py": 11393954913234866059, - "venv/lib/python3.13/site-packages/pip/_internal/__init__.py": 7060345458485901709, - "venv/lib/python3.13/site-packages/passlib/apache.py": 2357244937629445006, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/foo_deps.f90": 14350239197565389508, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_categorical.py": 9923236395692943732, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/datasource.pyi": 80441145804744162, - "backend/_convert_defs.py": 208535643309836247, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo_free.f90": 8821492401453445757, - "backend/src/services/llm_provider.py": 18361253887642486050, - "venv/lib/python3.13/site-packages/numpy/_utils/_convertions.pyi": 362674842164060822, - "venv/lib/python3.13/site-packages/pandas/_libs/reshape.cpython-313-x86_64-linux-gnu.so": 10639750501333255943, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_retain_attributes.py": 16210262356844956764, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_to_offset.py": 3929599794655343911, - "venv/lib/python3.13/site-packages/sqlalchemy/event/__init__.py": 16182540084654095394, - "venv/lib/python3.13/site-packages/keyring/compat/__init__.py": 7578020229796085753, - "venv/lib/python3.13/site-packages/pygments/lexers/algebra.py": 9651893228421050246, - "backend/src/core/superset_profile_lookup.py": 5518507735632088337, - "backend/src/api/routes/assistant/_llm_planner_intent.py": 16189718762013093878, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/comparisons.pyi": 9338084426044982038, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timezones.cpython-313-x86_64-linux-gnu.so": 1137453907225619959, - "venv/lib/python3.13/site-packages/numpy/ma/testutils.pyi": 3899348061346041413, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/__main__.py": 111505188798650285, - "venv/lib/python3.13/site-packages/numpy/testing/print_coercion_tables.pyi": 3814281717779245045, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_quarter.py": 6795026338946382805, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_misc.py": 8706265665356094801, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_clipboard.py": 12674078499544938252, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/__init__.py": 14481526616887213120, - "venv/lib/python3.13/site-packages/numpy/f2py/_isocbind.pyi": 5786150108623563787, - "frontend/src/lib/components/layout/__tests__/test_taskDrawer.svelte.js": 15288009749873977442, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/size/foo.f90": 18067977329435720684, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_downcast.py": 10399746645741452200, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/strategy_options.py": 16342048970907383117, - "venv/lib/python3.13/site-packages/numpy/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/cffi/commontypes.py": 11198107299826138465, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_generator_mt19937_regressions.py": 8981142329261965538, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_free.f90": 10939657740734987454, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/provider.py": 16463243654123731993, - "backend/src/api/routes/git/_environment_routes.py": 1034235394475003092, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libk5crypto-b1f99d5c.so.3.1": 10669523137596317954, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mariadbconnector.py": 14865906347579451546, - "backend/src/api/routes/dataset_review_pkg/_routes.py": 11040245149296528009, - "venv/lib/python3.13/site-packages/pydantic_settings/main.py": 17272314000918984790, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/RECORD": 17594742868855466393, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/context.py": 1041624619197012753, - "venv/lib/python3.13/site-packages/pygments/formatters/groff.py": 6480830447984073574, - "venv/lib/python3.13/site-packages/pygments/styles/igor.py": 2291640843781128270, - "backend/src/services/clean_release/candidate_service.py": 8516915994721977806, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_format.py": 1947585389944838076, - "backend/src/services/dataset_review/repositories/session_repository.py": 4058785536575367912, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nbit_base_example.pyi": 8571452382806614924, - "frontend/src/services/git-utils.js": 12982149055119314642, - "venv/lib/python3.13/site-packages/pandas/_libs/pandas_parser.cpython-313-x86_64-linux-gnu.so": 18056339336364727359, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/bazaar.py": 5630511062945201327, - "venv/lib/python3.13/site-packages/pluggy/_manager.py": 18202550145040079612, - "venv/lib/python3.13/site-packages/greenlet/greenlet.h": 16216120538647882082, - "venv/lib/python3.13/site-packages/_pytest/pytester_assertions.py": 1899505062406979663, - "venv/lib/python3.13/site-packages/passlib/crypto/_md4.py": 379335134151814809, - "venv/lib/python3.13/site-packages/pydantic_core/core_schema.py": 8106298745123589494, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/pysqlcipher.py": 11225173272050906977, - "venv/lib/python3.13/site-packages/pygments/lexers/_stata_builtins.py": 18053452765493556047, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_index.py": 10837492069089787028, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/resource_protector.py": 17080006010679257864, - "frontend/build/_app/immutable/chunks/Ck4a7ANl.js": 3561562300210641559, - "backend/git_repos/remote/test-repo.git/objects/38/0395343915d386a8d58774cc6c6677205065e8": 5481382229802988191, - "venv/lib/python3.13/site-packages/pandas/_libs/window/indexers.cpython-313-x86_64-linux-gnu.so": 9380059465932560412, - "venv/lib/python3.13/site-packages/numpy/_globals.py": 8736093011628027941, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_function_base.pyi": 2792940598392356268, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_series.py": 2980850649986213051, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/wheel.py": 828222664427570058, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_header.py": 3564391095263545879, - "venv/lib/python3.13/site-packages/greenlet/tests/test_gc.py": 6383305344377882524, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64dxsm-testset-1.csv": 9129730764673472086, - "venv/lib/python3.13/site-packages/referencing/jsonschema.py": 14596871117484757502, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/hiworld.f90": 6321872653169140461, - "venv/lib/python3.13/site-packages/pandas/core/sparse/api.py": 9094651265692218821, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/result.py": 8306497889916212025, - "venv/lib/python3.13/site-packages/pygments/lexers/bibtex.py": 14652372822443154388, - "frontend/e2e/run-enterprise-clean-e2e.sh": 11626901202531925046, - "venv/lib/python3.13/site-packages/pip/_internal/exceptions.py": 2252826732781519645, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_regression.py": 16293647824734937323, - "backend/src/api/routes/translate/_metrics_routes.py": 13468336445030118059, - "backend/tests/test_storage_config.py": 14773544217703363468, - "venv/lib/python3.13/site-packages/pip/_internal/network/__init__.py": 1586148254475575526, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/entities.py": 8001287806688585081, - "venv/lib/python3.13/site-packages/numpy/lib/_array_utils_impl.py": 14446508217220482719, - "venv/lib/python3.13/site-packages/pandas/tseries/offsets.py": 13750652921710295115, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufunclike.py": 12077553320554633586, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_libsparse.py": 1859997684694949029, - "venv/lib/python3.13/site-packages/pandas/core/reshape/melt.py": 14109947554124551986, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/progress.py": 5951745251426856398, - "venv/lib/python3.13/site-packages/pandas/plotting/_misc.py": 10202078355301731720, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_deprecations.py": 16124509063246256847, - "venv/lib/python3.13/site-packages/pandas/core/internals/construction.py": 893951849732478990, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel_py.py": 9112851333217812996, - "venv/lib/python3.13/site-packages/pip/__main__.py": 574438877257676911, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/unicode_comment.f90": 11326797716215117266, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_shape_base.py": 4117141349022217163, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_dtypes.py": 7550022036887594386, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_construction.py": 13953424340346625390, - "venv/lib/python3.13/site-packages/numpy/lib/_stride_tricks_impl.py": 5260748170237305627, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_2_compat.h": 6512969159139431485, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/WHEEL": 9131187629260560775, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/test_pyinstaller.py": 9430762168079129025, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_resample_api.py": 3278209206670699265, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_fillna.py": 7244491410004453166, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/reduce.py": 14976712507854054776, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/names.py": 705261158040926128, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE": 16499431172938528491, - "frontend/src/lib/components/MaintenanceEventsTable.svelte": 1697386217337210174, - "frontend/src/routes/translate/dictionaries/[id]/+page.svelte": 17719561272401762626, - "backend/src/api/routes/__tests__/test_migration_routes.py": 2319142184353163171, - "venv/lib/python3.13/site-packages/pandas/_testing/_io.py": 14264259716673715185, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/decl_base.py": 8678387511873412922, - "venv/lib/python3.13/site-packages/keyring/completion.py": 1027436016070040568, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arrayterator.py": 1646530870049791291, - "venv/lib/python3.13/site-packages/_pytest/config/exceptions.py": 3199245296954654462, - "venv/lib/python3.13/site-packages/pillow.libs/libjpeg-32d42e18.so.62.4.0": 11717944412021329207, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_sas7bdat.py": 8963983384208121526, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/status_codes.py": 17005213506461710202, - "frontend/src/routes/+page.svelte": 16267809857510759396, - "venv/lib/python3.13/site-packages/_pytest/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/dateutil/tz/tz.py": 5258008267965780817, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/__init__.py": 15340047930888693984, - "venv/lib/python3.13/site-packages/cffi/__init__.py": 13427266446746498548, - "venv/lib/python3.13/site-packages/ecdsa/curves.py": 812969717084691115, - "venv/lib/python3.13/site-packages/pydantic/deprecated/parse.py": 819235411736647763, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/nonce.py": 18219168479887197733, - "venv/lib/python3.13/site-packages/numpy/_typing/_dtype_like.py": 1598511035344858524, - "venv/lib/python3.13/site-packages/itsdangerous/encoding.py": 205863946173486958, - "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/METADATA": 14180973198574731599, - "venv/lib/python3.13/site-packages/pyasn1/codec/der/decoder.py": 11876648884087997745, - "venv/lib/python3.13/site-packages/apscheduler/triggers/calendarinterval.py": 12481650996882675949, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/util.py": 9373891872370603585, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log.csv": 221209423454319618, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_util.py": 16024147572807865219, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/infer.py": 12541904372617915365, - "venv/lib/python3.13/site-packages/yaml/error.py": 5626374410579058436, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/__init__.py": 16434403703599680307, - "venv/lib/python3.13/site-packages/pygments/lexers/_scheme_builtins.py": 5722444920479775453, - "venv/lib/python3.13/site-packages/httpx/_transports/__init__.py": 5931944625631942279, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/fromnumeric.pyi": 8671744104085911610, - "venv/lib/python3.13/site-packages/requests/models.py": 9104898985870652256, - "venv/lib/python3.13/site-packages/pandas/core/internals/blocks.py": 6448406236246476333, - "venv/lib/python3.13/site-packages/passlib/crypto/des.py": 14699826058580193499, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_file_buffer_url.py": 15377043158761455858, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/table.py": 16856253349556498073, - "venv/lib/python3.13/site-packages/numpy/lib/_utils_impl.pyi": 15767546107856827543, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timedeltas.pyi": 3783371827926657291, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_function.py": 644452398244782315, - "venv/lib/python3.13/site-packages/PIL/DcxImagePlugin.py": 11767274218348117481, - "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/array.py": 1919242530821725197, - "venv/lib/python3.13/site-packages/jeepney/fds.py": 16573439672758641560, - "venv/lib/python3.13/site-packages/pygments/lexers/parsers.py": 12372594608244797844, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked_shared.py": 8453174300922339015, - "venv/lib/python3.13/site-packages/pygments/lexers/mojo.py": 8616283481592061285, - "frontend/src/lib/stores/__tests__/test_activity.js": 15599963775430388097, - "frontend/src/routes/tools/mapper/+page.svelte": 11954517841045690204, - "venv/lib/python3.13/site-packages/_pytest/_version.py": 4890545974654141536, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/tornado.py": 6491136785917169991, - "venv/lib/python3.13/site-packages/_pytest/__init__.py": 3769333500910148571, - "frontend/build/_app/immutable/nodes/21.i4crDxrH.js": 12772123636509212690, - "venv/lib/python3.13/site-packages/fastapi/middleware/__init__.py": 5289703478893407762, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_aarch64_gcc.h": 8140470539757491899, - "venv/lib/python3.13/site-packages/pip/_internal/locations/__init__.py": 8147012724727395488, - "venv/lib/python3.13/site-packages/ecdsa/test_eddsa.py": 1785854649532849946, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arrayterator.pyi": 7439348655567232744, - "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/accessors.py": 12743680296510533030, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_npfuncs.py": 13987318550267921389, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi": 1065808244870331598, - "venv/lib/python3.13/site-packages/numpy/polynomial/legendre.py": 1731362089136926666, - "venv/lib/python3.13/site-packages/git/refs/reference.py": 2038789918710608481, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/wrappers.py": 315409799569602977, - "venv/lib/python3.13/site-packages/pandas/compat/_optional.py": 12714208019736797073, - "venv/lib/python3.13/site-packages/git/objects/submodule/root.py": 5322248117564025370, - "frontend/src/components/git/useGitManager.js": 5317184945628692154, - "backend/src/core/task_manager/models.py": 7035565766825575890, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_insert.py": 9195027887301180927, - "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_spec_conformance.py": 16448324304809345527, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_calendar.py": 12313641252472031631, - "backend/src/api/routes/__tests__/test_git_api.py": 222548597993158802, - "backend/src/api/routes/translate/_schedule_routes.py": 18180097500694105300, - "backend/src/core/utils/matching.py": 12567367681677699487, - "backend/src/services/resource_service.py": 4680770771466252195, - "backend/alembic/env.py": 7020161137665650592, - "backend/src/plugins/debug.py": 2035734953696955393, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_transpose.py": 17983160984979323393, - "venv/lib/python3.13/site-packages/numpy/typing/tests/test_isfile.py": 14544060093268573418, - "venv/lib/python3.13/site-packages/pygments/lexers/rego.py": 16022844238903541738, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_dependency_group.py": 10505346210114745037, - "venv/lib/python3.13/site-packages/rpds/rpds.cpython-313-x86_64-linux-gnu.so": 561326734302492859, - "venv/lib/python3.13/site-packages/websockets/datastructures.py": 5180442040351387281, - "venv/lib/python3.13/site-packages/websockets/legacy/protocol.py": 762692033188392424, - "docker/all-in-one.Dockerfile": 10896793266219904099, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_data_list.py": 1131520422778420758, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/background.py": 2105814165112049750, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-exp.csv": 601782991752922510, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_numpyconfig.h": 18150055639397773687, - "venv/lib/python3.13/site-packages/packaging/__init__.py": 5479277484104486860, - "venv/lib/python3.13/site-packages/bcrypt/__init__.py": 11415155211917181362, - "venv/lib/python3.13/site-packages/_pytest/timing.py": 14080119171718125986, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/meson.build.template": 9935732744553086652, - "venv/lib/python3.13/site-packages/python_multipart/multipart.py": 5677735019292537174, - "venv/lib/python3.13/site-packages/numpy/f2py/symbolic.pyi": 14558091964387571257, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/RECORD": 7363618870628306370, - "backend/src/api/routes/git/_repo_operations_routes.py": 5819532622410034169, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_s390_unix.h": 5161826643658505126, - "venv/lib/python3.13/site-packages/pygments/lexers/ada.py": 17032408976634308999, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286.f90": 1249061697041863692, - "frontend/src/lib/stores/__tests__/test_sidebar.js": 113566022614194798, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_reductions.py": 3227705565578016389, - "frontend/src/routes/datasets/__tests__/bulk_actions.test.js": 8445672988319354987, - "backend/src/services/notifications/providers.py": 12897444612423813747, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg2cffi.py": 5997687240967250164, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/__init__.py": 12975130533860125272, - "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/_gen_files.py": 6273314671315377131, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_from_dummies.py": 5670811108950300761, - "venv/lib/python3.13/site-packages/urllib3/connectionpool.py": 7493427857878469165, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mutable.py": 9323088483998280629, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/mean_.py": 3641008929910474457, - "venv/lib/python3.13/site-packages/pandas/core/arrays/masked.py": 13977195666947626206, - "backend/src/core/auth/oauth.py": 9925908783612235042, - "venv/lib/python3.13/site-packages/numpy/random/_philox.cpython-313-x86_64-linux-gnu.so": 9916143171057774705, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/METADATA": 11759004913807981650, - "venv/lib/python3.13/site-packages/PIL/FtexImagePlugin.py": 8196606399875185931, - "venv/lib/python3.13/site-packages/dateutil/rrule.py": 398469817784230512, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_where.py": 3272402211717453881, - "venv/bin/activate": 14735074000123383125, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_three_greenlets.py": 10923534235697247269, - "venv/lib/python3.13/site-packages/rpds/__init__.py": 5862197328247012275, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/base.py": 5924592154431932923, - "venv/lib/python3.13/site-packages/pip/__init__.py": 9449893869469432503, - "venv/lib/python3.13/site-packages/pygments/lexers/_mysql_builtins.py": 16087227298679432006, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_hour.py": 14128508606361694814, - "backend/src/api/routes/plugins.py": 4567336078922104278, - "frontend/build/_app/immutable/nodes/25.DDfuZIEE.js": 7817480037775221276, - "venv/lib/python3.13/site-packages/authlib/oidc/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_value_counts.py": 15633881149834196174, - "venv/lib/python3.13/site-packages/anyio/to_process.py": 16627578499791368365, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log1p.csv": 16333455295913164408, - "venv/lib/python3.13/site-packages/apscheduler/executors/tornado.py": 6635576580306890718, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/tzconversion.pyi": 10947021928755741366, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/windows.py": 16452996247375488034, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/extension/list/test_list.py": 4538625980063375611, - "venv/lib/python3.13/site-packages/fastapi/_compat/shared.py": 5249003014594464718, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_string.py": 11422235699126032386, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/persistence.py": 17908437937265384125, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_explode.py": 18263694040596159591, - "frontend/e2e/tests/smoke.e2e.js": 11130903009452044456, - "venv/lib/python3.13/site-packages/anyio/streams/tls.py": 4191898645554875562, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_dml_constructors.py": 4497038002189188311, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/datonly.f90": 10495925225338237742, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_dlpack.py": 7908102652282922952, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_three_greenlets2.py": 11100501798741918610, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_ufunc.py": 5025605639221470838, - "venv/lib/python3.13/site-packages/jaraco/context/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/util/tool_support.py": 4926732415520779988, - "backend/git_repos/remote/test-repo.git/hooks/pre-rebase.sample": 15693225890270078290, - "venv/lib/python3.13/site-packages/PIL/ImageMath.py": 7395449734007598797, - "venv/lib/python3.13/site-packages/anyio/abc/_tasks.py": 16839170934610571514, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/adapter.py": 5908944827805063108, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_size.py": 12449835577388069407, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/_psycopg_common.py": 4111797647365870137, - "venv/lib/python3.13/site-packages/git/objects/submodule/base.py": 10140490301897269395, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/util.py": 10640907133050862176, - "venv/lib/python3.13/site-packages/numpy/ma/mrecords.py": 687170905107114309, - "venv/lib/python3.13/site-packages/ecdsa/test_keys.py": 17117188373419689467, - "venv/lib/python3.13/site-packages/PIL/_imagingtk.cpython-313-x86_64-linux-gnu.so": 1708198947135304326, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/scripts.py": 8759605303886441976, - "venv/lib/python3.13/site-packages/numpy/random/mtrand.cpython-313-x86_64-linux-gnu.so": 16146459667121787202, - "venv/lib/python3.13/site-packages/websockets/http.py": 9406523480132204760, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log2.csv": 13979868713429167140, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/METADATA": 2053484635654179443, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/utils/logging.py": 9639351759822608724, - "venv/lib/python3.13/site-packages/pygments/lexers/configs.py": 7712797939104760185, - "backend/tests/scripts/test_clean_release_tui.py": 14700450036639944764, - "backend/src/services/clean_release/policy_resolution_service.py": 5075709738950902327, - "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/array.py": 12658302948819867972, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_copy.py": 12902342280706372953, - "venv/lib/python3.13/site-packages/attrs/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/ops_dispatch.pyi": 16176428602589420913, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_index_as_string.py": 13421551616136437100, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_comment.py": 5603075924832933306, - "venv/lib/python3.13/site-packages/fastapi/_compat/model_field.py": 392699021682253569, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/indexable.py": 4131796922597075758, - "venv/lib/python3.13/site-packages/pygments/lexers/yara.py": 17510792615476493957, - "backend/src/plugins/backup.py": 9775992510122456201, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/baked.py": 6911138208603240867, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_3kcompat.h": 5377305123299457337, - "frontend/src/lib/components/reports/__tests__/report_detail.integration.test.js": 4193615240297330385, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libssl-81ffa89e.so.3": 13913673119166658781, - "frontend/src/lib/components/ui/MultiSelect.svelte": 1475503303018683038, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/mt19937-testset-1.csv": 16349400027062875699, - "venv/lib/python3.13/site-packages/urllib3/util/timeout.py": 17922362393077965047, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/models.py": 11521700876708601977, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/twodim_base.pyi": 3773329770170248877, - "venv/lib/python3.13/site-packages/numpy/random/_pickle.py": 7774620933480975313, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_formats.py": 5259100336852479395, - "venv/lib/python3.13/site-packages/authlib/common/urls.py": 13627272625165922482, - "venv/lib/python3.13/site-packages/attr/_config.py": 1864824728504480204, - "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_builtin_md4.py": 16840174243259839994, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_filter.py": 2388681477981649268, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pydantic/config.py": 1450073446492183677, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_encoding.py": 6622474614967398246, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_astype.py": 4178231007649608531, - "frontend/build/_app/immutable/nodes/31.BylL8uTk.js": 7722395710886140688, - "venv/lib/python3.13/site-packages/ecdsa/rfc6979.py": 11564966030899162026, - "venv/lib/python3.13/site-packages/numpy/_core/__init__.py": 14951958843029076911, - "venv/lib/python3.13/site-packages/pydantic/error_wrappers.py": 11273827025986230629, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_gcs.py": 7733247456252965901, - "venv/lib/python3.13/site-packages/greenlet/TPythonState.cpp": 12828594265749606443, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_groupby.py": 12709199432838648700, - "venv/lib/python3.13/site-packages/pygments/console.py": 3540660073442483692, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arccos.csv": 3026156288992132911, - "backend/git_repos/remote/test-repo.git/objects/ed/0432f88f5f7d95b26ecde34345abe741dd9db2": 13426916511127204463, - "venv/lib/python3.13/site-packages/apscheduler/executors/asyncio.py": 2230610508870117058, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/bitwise_ops.pyi": 751490187478960891, - "venv/lib/python3.13/site-packages/greenlet/tests/test_weakref.py": 6780204527427742510, - "venv/lib/python3.13/site-packages/authlib/oauth2/base.py": 12948318231066662045, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_abstract_interface.py": 17625870734108222276, - "venv/lib/python3.13/site-packages/pandas/tests/libs/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/event/api.py": 987321343916500337, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_constructors.py": 6515602441449955627, - "venv/lib/python3.13/site-packages/pandas/core/groupby/generic.py": 4857114071347950833, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_conversion.py": 12184280074522274780, - "frontend/playwright-report/trace/assets/defaultSettingsView-D31xz8zv.js": 1301407320635785789, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/modeline.py": 6194365452131561478, - "frontend/src/components/tools/DebugTool.svelte": 17267560034225794881, - "backend/src/scripts/seed_superset_load_test.py": 892949594919634674, - "venv/lib/python3.13/site-packages/idna/intranges.py": 12536174834761591006, - "venv/lib/python3.13/site-packages/keyring/devpi_client.py": 3445890176686211982, - "venv/lib/python3.13/site-packages/pydantic/experimental/arguments_schema.py": 8644805798814234457, - "backend/src/services/clean_release/preparation_service.py": 10596397721803950912, - "backend/src/plugins/translate/_text_cleaner.py": 13161219043687449729, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_constructors.py": 12628643543371952431, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/LICENSE": 16343563559291870811, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90": 15768643271492041853, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_bcrypt.py": 11146468670439284889, + "venv/lib/python3.13/site-packages/pandas/tests/extension/list/__init__.py": 10072943986583771248, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/collections.py": 16114931075157411913, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/collections.pyx": 17138729833735744777, + "venv/lib/python3.13/site-packages/jeepney/tests/test_wrappers.py": 4813328996575597980, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/__init__.py": 2345997696115514124, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/git.py": 17060377178521307324, + "venv/lib/python3.13/site-packages/pygments/lexers/modeling.py": 15714077241620129689, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh26681.f90": 1515497186927052106, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_value_counts.py": 5534713464063604301, + "venv/lib/python3.13/site-packages/uvicorn/logging.py": 12858188863836778374, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_implementation.py": 12245524932757110911, + "venv/lib/python3.13/site-packages/charset_normalizer/utils.py": 11724147997933584095, "venv/lib/python3.13/site-packages/pygments/lexers/resource.py": 8057351545636349791, - "venv/lib/python3.13/site-packages/attrs/filters.py": 6844006230924162452, - "venv/lib/python3.13/site-packages/ecdsa/test_malformed_sigs.py": 2606295770491528880, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq.pyi": 16372699564794732463, - "venv/lib/python3.13/site-packages/jose/backends/__init__.py": 16581763658239070112, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_observance.py": 18178414966262524534, - "venv/lib/python3.13/site-packages/starlette/status.py": 16192064443996706569, - "backend/src/services/dataset_review/repositories/repository_pkg/_mutations.py": 11718998093543631478, - "venv/lib/python3.13/site-packages/jeepney/tests/test_auth.py": 15125055415702968414, - "backend/src/models/dataset_review_pkg/_finding_models.py": 7257895729340231285, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_data.py": 2397937327057341, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE": 17284252174641192866, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_datetimeindex.py": 14816894350435545024, - "venv/lib/python3.13/site-packages/pydantic/deprecated/class_validators.py": 2200511838255373813, - "venv/lib/python3.13/site-packages/urllib3/util/connection.py": 15511685694589961094, - "frontend/build/_app/immutable/assets/9.tn0RQdqM.css": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/extension/uuid/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_install.py": 7181005402818830655, - "frontend/src/routes/storage/backups/+page.svelte": 3437582895363203695, - "backend/src/plugins/translate/preview_session_serializer.py": 8901687711861433007, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/__main__.py": 487896753130729554, - "venv/lib/python3.13/site-packages/pygments/lexers/textedit.py": 14872291021083255414, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_regression.py": 4611768764484593979, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/sqltypes.py": 2952996080192295188, - "venv/lib/python3.13/site-packages/sqlalchemy/schema.py": 16029542421991709659, - "venv/lib/python3.13/site-packages/pygments/styles/xcode.py": 14124729477757765388, - "backend/src/core/task_manager/task_logger.py": 12820629458199400734, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_factorize.py": 17995673140216929494, - "venv/lib/python3.13/site-packages/jsonschema/_format.py": 8987698648383779883, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_label_or_level_utils.py": 3423644585913150841, - "backend/src/plugins/translate/_lang_detect.py": 2125979777533490081, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/oct_key.py": 11504245602045724, - "venv/lib/python3.13/site-packages/passlib/ext/django/utils.py": 8118896525895185626, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_sort_values.py": 15072305514178699398, - "backend/src/plugins/translate/orchestrator_retry.py": 7628306124703690760, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_clip.py": 8087139801274517318, - "venv/lib/python3.13/site-packages/httpx/_content.py": 1301854837767395687, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/gh_22819.pyf": 14717748358749934995, - "frontend/src/routes/settings/FeaturesSettings.svelte": 14192374301379217586, - "venv/lib/python3.13/site-packages/pytest_asyncio/plugin.py": 13414541723622354359, - "venv/lib/python3.13/site-packages/cffi/setuptools_ext.py": 30796527302561458, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/METADATA": 6502714564886871819, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_equivalence.py": 17843623343419137458, - "venv/lib/python3.13/site-packages/numpy/f2py/f2py2e.pyi": 14181518821845356636, - "venv/lib/python3.13/site-packages/authlib/oauth1/__init__.py": 3692257288065292607, - "merge_kilo.py": 4282227344165325430, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_explode.py": 16195468192763502449, - "venv/lib/python3.13/site-packages/_pytest/legacypath.py": 7512065138259788426, - "venv/lib/python3.13/site-packages/jsonschema/__init__.py": 6925762200139836824, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/filepost.py": 16698380375728063923, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/WHEEL": 7454950858448014158, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/__init__.py": 3619091571279924576, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__multiarray_api.c": 9134176670140958459, - "frontend/src/pages/Dashboard.svelte": 3653104499351855122, - "backend/src/services/clean_release/stages/manifest_consistency.py": 14323717074129560178, - "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/__init__.py": 3521833849634327520, - "venv/lib/python3.13/site-packages/numpy/_typing/_add_docstring.py": 14657346268890680694, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/flatiter.pyi": 6885824496927786205, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/unitofwork.py": 3177255974394221645, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_modules.py": 16835987029123241300, - "venv/lib/python3.13/site-packages/keyring/http.py": 1408024724330078009, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/RECORD": 12733654377842895588, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/validation": 5398883285871046811, - "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js": 2331331717663585059, - "frontend/src/routes/datasets/__tests__/DatasetList.test.js": 10189122239208504978, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/recfunctions.py": 18330899924171767482, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_math.h": 16701045088211015518, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_arrow.py": 10068866425352207113, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_tz_convert.py": 13349243029437881949, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_isna.py": 18394053826166267096, - "venv/lib/python3.13/site-packages/PIL/ImageSequence.py": 16459886231802763032, - "frontend/src/lib/components/health/HealthMatrix.svelte": 13165441444996153191, - "venv/lib/python3.13/site-packages/PIL/_webp.cpython-313-x86_64-linux-gnu.so": 11070012119632935103, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/markers.py": 8297667990263004097, - "venv/lib/python3.13/site-packages/fastapi/middleware/httpsredirect.py": 5775982317459922443, - "venv/lib/python3.13/site-packages/fastapi/dependencies/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/device_code.py": 6712610002227849281, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_backend.py": 1472021608501071055, - "venv/lib/python3.13/site-packages/starlette/middleware/httpsredirect.py": 16837082808103815044, - "venv/lib/python3.13/site-packages/numpy/_core/lib/libnpymath.a": 17555816778997028283, - "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_gen_files.py": 11149423183253618378, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/conversion.pyi": 16976386782787920450, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_array.py": 11271807719833350332, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/LICENSE": 8177430849046795595, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/redis.py": 11313520438600819390, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex_longtable.tpl": 12723621983797415444, - "venv/lib/python3.13/site-packages/greenlet/__init__.py": 3447613556981242475, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py": 2873060848310644552, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arithmetic.pyi": 10265823318697442495, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/integration.py": 12670848015915724967, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/common/gh19161.f90": 7691871466158049079, - "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/RECORD": 12015288851076448205, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_strptime.py": 14328510310436552635, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/session.py": 15060063324909302240, - "venv/lib/python3.13/site-packages/pydantic/_internal/_fields.py": 2692892815545218335, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_index_equal.py": 10617870815989304510, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_object_arr.py": 4725156416161661681, - "venv/lib/python3.13/site-packages/websockets/server.py": 16599051743322571790, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufunc_config.py": 14728417910466146460, - "venv/lib/python3.13/site-packages/fastapi/cli.py": 13972351579061154035, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_npfuncs.py": 6132674295193898715, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_categorical.py": 1329115818264527103, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_timegrouper.py": 276805119790266454, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_reductions.py": 1713831062142840146, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64-testset-2.csv": 5423145402839576695, - "venv/lib/python3.13/site-packages/pydantic/parse.py": 13750341403702794392, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cpu_dispatcher.py": 2063037275809439611, - "venv/lib/python3.13/site-packages/pandas/io/formats/string.py": 14718123345899686696, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/aiomysql.py": 12999962380333482189, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/RECORD": 8956798822782402202, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/json.py": 14755215397454910426, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/__init__.py": 11009955319062089477, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/useless_keywords.py": 11487954623214475915, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multiarray.py": 5928288171180750841, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/memmap.pyi": 15629663272474054909, - "venv/lib/python3.13/site-packages/rapidfuzz/utils_py.py": 12341806772632276946, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_arithmetic.py": 16045758521544316139, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_asof.py": 8656532774394927388, - "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/series/test_subclass.py": 13490541871827928531, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_indexing.py": 5063545640498065297, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/json.py": 4660603129768960095, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_infer_objects.py": 6769980076977692890, - "venv/lib/python3.13/site-packages/PIL/GimpPaletteFile.py": 2040459799887417392, - "venv/lib/python3.13/site-packages/cffi/api.py": 5325821560978502135, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_timestamp.py": 12253372102602993034, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_integrity.py": 12010564145080323987, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/declarative/extensions.py": 217122171232375592, - "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/pandas/core/ops/dispatch.py": 7041711677358147534, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/warnings_and_errors.pyi": 3151453262733619734, - "venv/lib/python3.13/site-packages/pandas/io/formats/printing.py": 3054136648863371285, - "venv/lib/python3.13/site-packages/numpy/lib/_ufunclike_impl.py": 12251264586530536622, - "venv/lib/python3.13/site-packages/PIL/XpmImagePlugin.py": 6644626557482464312, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/pycparser/yacctab.py": 18018314512916353707, - "venv/lib/python3.13/site-packages/pygments/lexers/jsonnet.py": 1314044008440065525, - "venv/lib/python3.13/site-packages/greenlet/PyGreenlet.cpp": 7360124705400993707, - "venv/lib/python3.13/site-packages/pygments/lexers/soong.py": 10273453675034306814, - "venv/bin/pyrsa-keygen": 8222542582170363672, - "frontend/src/lib/stores/sidebar.js": 8409084311045055153, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_xml_dtypes.py": 18293138335799308439, - "backend/src/schemas/health.py": 13764741380188041840, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/licenses/LICENSE": 8438117004702803716, - "venv/lib/python3.13/site-packages/pip/_internal/pyproject.py": 6155748929233245415, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_internal/utils/subprocess.py": 3095012838116670328, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/prompt.py": 9561640601516933380, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/live.py": 8586058300967410643, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_logical/foo77.f": 16250175448122328648, - "venv/lib/python3.13/site-packages/numpy/_core/numerictypes.py": 6205675182996213576, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalar_methods.py": 14881910898871057761, - "venv/lib/python3.13/site-packages/pandas/_libs/ops.pyi": 1192312467209548763, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_monotonic.py": 14648437502004398715, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_day.py": 6371851881186970754, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_astype.py": 7542068949396266883, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/cx_oracle.py": 10093932131797570986, - "venv/lib/python3.13/site-packages/greenlet/tests/test_contextvars.py": 6077482318964702132, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_check_indexer.py": 2929031395357057009, - "venv/lib/python3.13/site-packages/sqlalchemy/exc.py": 6372950288664776625, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_bool.py": 433342705586552936, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/h11_impl.py": 1419719055394402145, - "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/extension_types.py": 1856757457657310231, - "venv/lib/python3.13/site-packages/pygments/styles/staroffice.py": 11694998942433220413, - "venv/lib/python3.13/site-packages/pygments/lexers/pawn.py": 18127303119414402594, - "venv/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py": 1246582552828542841, - "backend/src/schemas/dataset_review.py": 15720223123457526104, - "backend/src/services/notifications/__init__.py": 13930898146447654299, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_both.f90": 13943066317159236257, - "venv/lib/python3.13/site-packages/websockets/asyncio/messages.py": 6848925149930551457, - "backend/src/services/git_service.py": 1930048176535450912, - "backend/git_repos/remote/test-repo.git/hooks/commit-msg.sample": 13435789416588783681, - "backend/git_repos/remote/test-repo.git/objects/a7/49f11fad695dff77faf1708c7320867d0be1df": 4641609158325033031, - "venv/lib/python3.13/site-packages/PIL/ImageStat.py": 18442709639217312689, - "venv/lib/python3.13/site-packages/git/objects/base.py": 11498407361286170399, - "venv/lib/python3.13/site-packages/jose/backends/cryptography_backend.py": 2875270748627611635, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py": 2285778903282667561, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/pager.py": 18072372651585577904, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/conftest.py": 13388202260795998613, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/basereload.py": 14479857245734482609, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_loc.py": 17839380711970027363, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/nimrod.py": 8457135214131458774, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_asof.py": 15792528637923603240, - "venv/lib/python3.13/site-packages/pygments/lexers/shell.py": 3842338968014057744, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/use_modules.f90": 3913612933340746297, - "venv/lib/python3.13/site-packages/pygments/__init__.py": 14493583771211110135, - "backend/src/services/clean_release/repositories/candidate_repository.py": 14784344453820731941, - "frontend/src/routes/datasets/DatasetList.svelte": 2347298483008235943, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/__init__.py": 5027355874704300832, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_dt_accessor.py": 2229616362327032253, - "venv/lib/python3.13/site-packages/pygments/lexers/dsls.py": 11696359794961833087, - "venv/lib/python3.13/site-packages/pygments/styles/murphy.py": 8177992406082781615, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/common.py": 2075178842766962782, - "venv/lib/python3.13/site-packages/numpy/lib/scimath.py": 7616377937400918724, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/RECORD": 9964194961227523130, - "frontend/src/lib/api/translate/jobs.js": 9613844538417291513, - "backend/src/services/clean_release/stages/data_purity.py": 10459527906317168920, - "backend/git_repos/remote/test-repo.git/objects/22/c0ea49cea7e5138fb91b25b1bc0e101ae6e017": 17630871400599334193, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/compat.py": 9758194415584776667, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_twodim_base.py": 17623133613018058380, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_simd.py": 7577408467041941595, - "venv/lib/python3.13/site-packages/pandas/tests/libs/test_lib.py": 6721066015604956469, - "venv/lib/python3.13/site-packages/idna-3.11.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pygments/lexers/praat.py": 54226477748516386, - "venv/lib/python3.13/site-packages/keyring/testing/__init__.py": 15130871412783076140, - "frontend/playwright-report/data/fe71864b4cbf83c1ddaa5774098c6fa987f91ff9.webm": 9945873951473992150, - "venv/lib/python3.13/site-packages/pydantic/_internal/_validate_call.py": 4078236486720616395, - "venv/lib/python3.13/site-packages/jose/exceptions.py": 8562012933958941039, - "venv/lib/python3.13/site-packages/pandas/_version.py": 3480474785419232091, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/profiling.py": 16030397164203895281, - "venv/lib/python3.13/site-packages/sqlalchemy/event/registry.py": 2857989070743633709, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/__init__.py": 5863110456909134678, - "venv/lib/python3.13/site-packages/PIL/_imagingmath.cpython-313-x86_64-linux-gnu.so": 77725273398858074, - "venv/lib/python3.13/site-packages/_pytest/skipping.py": 10561585274103209115, - "venv/lib/python3.13/site-packages/numpy/_core/_string_helpers.py": 17192211156810267818, - "venv/lib/python3.13/site-packages/pandas/core/computation/eval.py": 3176226283265954028, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_emoji_replace.py": 8166203537440976347, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi": 18143251582901996072, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/dml.py": 5340326603935367534, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_ujson.py": 12184194085993665945, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro_py.py": 11991492232381887787, - "venv/lib/python3.13/site-packages/pandas/io/formats/style_render.py": 13586834368514801953, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.py": 17538029557373507617, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/__init__.py": 1798074863773727377, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate_kwarg.py": 10417724544218303733, - "venv/lib/python3.13/site-packages/pandas/core/groupby/categorical.py": 16588862198627920420, - "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_numeric.py": 18037815278545274402, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/watchfilesreload.py": 13062440477475586751, - "venv/lib/python3.13/site-packages/pygments/lexers/_mql_builtins.py": 2376212048709413586, - "frontend/src/lib/stores/activity.js": 14023344642294459631, - "backend/src/api/routes/dashboards/_action_routes.py": 11814954258886577640, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_nth.py": 17151595277666975085, - "backend/src/models/filter_state.py": 6470311179852241297, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_generator_mt19937.py": 7299586490442539723, - "frontend/src/lib/components/translate/TranslationMetricsDashboard.svelte": 8577281635452165836, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_nunique.py": 8450574751331186943, - "venv/lib/python3.13/site-packages/pygments/lexers/lilypond.py": 1088755646568511197, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_combine_first.py": 3100691245280812910, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/ccalendar.pyi": 15789956857032062129, - "venv/lib/python3.13/site-packages/fastapi/middleware/cors.py": 7452860773712601508, - "venv/lib/python3.13/site-packages/pydantic/fields.py": 4142211199816898047, - "venv/lib/python3.13/site-packages/cryptography/exceptions.py": 5173540025160237758, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/revocation.py": 5718403706971163960, - "venv/lib/python3.13/site-packages/pandas/core/window/ewm.py": 12143982379243011357, - "venv/lib/python3.13/site-packages/requests/packages.py": 7733041271118298220, - "venv/lib/python3.13/site-packages/anyio/abc/_resources.py": 8330687082933028623, - "venv/lib/python3.13/site-packages/pip/_internal/operations/install/__init__.py": 10456333337205488584, - "venv/lib/python3.13/site-packages/starlette/middleware/__init__.py": 9524277524025372856, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/token.py": 4747545058753492487, - "venv/lib/python3.13/site-packages/pip/py.typed": 10243553515949422671, - "venv/lib/python3.13/site-packages/numpy/polynomial/_polybase.py": 893743087939984792, - "venv/lib/python3.13/site-packages/gitdb/test/test_util.py": 541144638852210407, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/nattype.pyi": 1830368009811266890, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_constructors.py": 11065058462752831997, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_core_functionalities.py": 10449747865888948579, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_normalize.py": 11373923576259976755, - "venv/lib/python3.13/site-packages/pandas/tests/api/test_api.py": 13385690673368400635, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_subclass.py": 10949229764696473939, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/hybrid.py": 5793056975404534989, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/METADATA": 7214286447912789067, - "venv/lib/python3.13/site-packages/PIL/MicImagePlugin.py": 13540523615822507963, - "backend/src/services/clean_release/repositories/approval_repository.py": 15069637305272665109, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/signals.py": 13677199634497673845, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/halffloat.h": 16913381775994652343, - "venv/lib/python3.13/site-packages/anyio/_core/_exceptions.py": 11969894261631227715, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_django.py": 8455054295577203929, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/METADATA": 3618776395694990076, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_year.py": 1478857009124807836, - "frontend/playwright-report/trace/defaultSettingsView.BDKsFU3c.css": 12935551588108679759, - "backend/src/plugins/llm_analysis/__init__.py": 9254812131558249924, - "venv/lib/python3.13/site-packages/pandas/_libs/properties.cpython-313-x86_64-linux-gnu.so": 7092136701092358552, - "venv/lib/python3.13/site-packages/httpx/_transports/base.py": 6498990531443644896, - "backend/src/plugins/translate/orchestrator_sql.py": 15420456250044832567, - "venv/lib/python3.13/site-packages/jose/backends/_asn1.py": 14123487576864105793, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/request.py": 17642741955458391050, - "backend/src/schemas/dataset_review_pkg/_dtos.py": 13301885458265748263, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/yaml.py": 17801117405950663611, - "venv/lib/python3.13/site-packages/passlib/utils/des.py": 2650106381178222229, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/spinner.py": 5564789578696016201, - "backend/src/plugins/translate/__tests__/test_preview.py": 13085659611728720229, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/columns.py": 8488246354818721406, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE": 3996324383113221529, - "venv/lib/python3.13/site-packages/pygments/lexers/html.py": 17288963642862550116, - "venv/lib/python3.13/site-packages/numpy/_core/numeric.pyi": 17785360553418386488, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/scalars.pyi": 17683675356659300769, - "venv/lib/python3.13/site-packages/pygments/lexers/x10.py": 6167378515780115912, - "venv/lib/python3.13/site-packages/pygments/lexers/haskell.py": 8011341851439354724, - "backend/src/api/routes/__tests__/test_git_status_route.py": 6682904773087475636, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_py_util.py": 12836989066113400538, - "venv/lib/python3.13/site-packages/fastapi/temp_pydantic_v1_params.py": 9436036880518047720, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/_json.py": 6718137926109998531, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/operators.py": 2468046993343796128, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_datetime.py": 11417836378782978454, - "venv/lib/python3.13/site-packages/keyring/cli.py": 10996746519742056101, - "frontend/src/components/TaskHistory.svelte": 17537414183368417623, - "venv/lib/python3.13/site-packages/pandas/core/methods/to_dict.py": 4653628436393663485, - "venv/lib/python3.13/site-packages/pyasn1/type/char.py": 16518487114777185541, - "venv/lib/python3.13/site-packages/pydantic/v1/error_wrappers.py": 5701679786078971939, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_aggregate.py": 15038915958422670700, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_readlines.py": 15928258358116399067, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/recarray_from_file.fits": 15116318600514274152, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/__init__.py": 3969805865048730851, - "backend/src/core/utils/superset_context_extractor/_recovery.py": 4103343657420503831, - "backend/src/core/utils/fileio.py": 8925306729946909050, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rename.py": 4890779493250245903, - "backend/tests/test_api_key_model.py": 18059967072469014911, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_floats.py": 3064615530495290792, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/json.py": 15373167408891671190, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/io.py": 11072022722163954973, - "venv/lib/python3.13/site-packages/pygments/formatters/_mapping.py": 13335227913146542481, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_seed_sequence.py": 7687465232954593311, - "backend/alembic/README": 17625003422504608299, - "venv/lib/python3.13/site-packages/click/parser.py": 13988544851350599869, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_parse_iso8601.py": 9100947620267156161, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_hashing.py": 11119284926039008503, - "venv/lib/python3.13/site-packages/gitdb/test/test_base.py": 16305779366785148795, - "frontend/src/lib/ui/Card.svelte": 3442526978752993023, - "backend/src/plugins/translate/service.py": 11825307511971639412, - "venv/lib/python3.13/site-packages/pandas/api/extensions/__init__.py": 882327406374020760, - "venv/lib/python3.13/site-packages/pygments/lexers/ride.py": 14096748896451437594, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/REQUESTED": 15130871412783076140, - "frontend/src/lib/components/translate/__tests__/test_correction_cell.svelte.js": 2314051239468628554, - "backend/src/api/routes/__tests__/test_datasets.py": 5180776326745169791, - "venv/lib/python3.13/site-packages/jeepney/bindgen.py": 7094585345946943534, - "venv/lib/python3.13/site-packages/jsonschema/protocols.py": 847332300543820834, - "venv/lib/python3.13/site-packages/apscheduler/executors/twisted.py": 2695602672085615762, - "venv/lib/python3.13/site-packages/pygments/lexers/codeql.py": 4254046699692048717, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/reporters.py": 10760889726586439724, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/authorization_server.py": 2491654903543600678, - "backend/src/plugins/translate/service_inline_correction.py": 11066393548140180037, - "venv/lib/python3.13/site-packages/urllib3/contrib/socks.py": 645086578806871685, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/astype_copy.pkl": 4470155972891419163, - "venv/lib/python3.13/site-packages/greenlet/greenlet_cpython_compat.hpp": 8396413256279803400, - "venv/lib/python3.13/site-packages/numpy/_typing/_array_like.py": 2161873439361281488, - "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/series/methods/test_drop_duplicates.py": 5874427993953991216, - "venv/lib/python3.13/site-packages/numpy/_typing/_nbit_base.pyi": 6546751036506752550, - "venv/lib/python3.13/site-packages/PIL/Jpeg2KImagePlugin.py": 16905402423248975204, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/WHEEL": 11630459739183915695, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_laguerre.py": 7475592201750602042, - "venv/lib/python3.13/site-packages/numpy/_typing/_nbit.py": 15498810174380798405, - "venv/lib/python3.13/site-packages/passlib/ext/django/models.py": 12386223748379294996, - "venv/lib/python3.13/site-packages/numpy/_core/lib/pkgconfig/numpy.pc": 14713682399742251335, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_masm.obj": 11967637259540485652, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/METADATA": 15888766579203341778, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/errors.py": 16711622442922413520, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/WHEEL": 13347410390513723930, - "venv/lib/python3.13/site-packages/numpy/polynomial/laguerre.py": 151202984060101867, - "venv/lib/python3.13/site-packages/passlib/handlers/md5_crypt.py": 7669328623914474137, - "venv/lib/python3.13/site-packages/pygments/lexers/xorg.py": 14591144191879110061, - "frontend/src/routes/settings/EnvironmentsTab.svelte": 1326318857426265025, - "frontend/build/_app/immutable/chunks/DsnmJJEf.js": 17416107759626312632, - "venv/lib/python3.13/site-packages/pygments/lexers/vyper.py": 6477559246065994199, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix.py": 4440659352851541547, - "venv/lib/python3.13/site-packages/_pytest/tracemalloc.py": 5530234062530858720, - "venv/lib/python3.13/site-packages/pydantic/_internal/_docs_extraction.py": 5210114991139191634, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_apply_relabeling.py": 3930092097678339743, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi": 1846673463183660140, - "venv/lib/python3.13/site-packages/certifi/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/RECORD": 2963644632913976754, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/take.py": 3170415198452493008, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_sorting.py": 10523740688498427929, - "venv/lib/python3.13/site-packages/sqlalchemy/connectors/aioodbc.py": 2018840826888846321, - "venv/lib/python3.13/site-packages/pygments/styles/trac.py": 13968346768164381833, - "venv/lib/python3.13/site-packages/passlib/tests/sample1b.cfg": 2872366861156549016, - "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/pip/_vendor/pyproject_hooks/_in_process/__init__.py": 9627328185578406121, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_freq_attr.py": 17290447066681837965, - "backend/src/plugins/translate/preview_response_parser.py": 15690759478655959205, - "venv/lib/python3.13/site-packages/numpy/f2py/use_rules.pyi": 18395688193449688360, - "venv/lib/python3.13/site-packages/numpy/lib/_stride_tricks_impl.pyi": 9243829615414967057, - "venv/lib/python3.13/site-packages/urllib3/exceptions.py": 9687187566231423953, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_hermite_e.py": 8912795372542950449, - "venv/lib/python3.13/site-packages/passlib/handlers/cisco.py": 15004707325761459775, - "scripts/gen_semantics.py": 11397714264377363083, - "venv/lib/python3.13/site-packages/attrs/setters.py": 5775359015245600592, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro.pyi": 3145980717589050713, - "venv/lib/python3.13/site-packages/keyring/backends/libsecret.py": 11621088556661567306, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/statreload.py": 5018382301336802445, - "venv/lib/python3.13/site-packages/numpy/lib/_twodim_base_impl.py": 4154852745131464543, - "venv/lib/python3.13/site-packages/pandas/io/clipboard/__init__.py": 3656451154829206939, - "venv/lib/python3.13/site-packages/anyio/_core/_typedattr.py": 17584691045493791349, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_holiday.py": 8541197358003711845, - "examples/maintenance-api-bash.sh": 674396824183793987, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_melt.py": 15663807247682146566, - "venv/lib/python3.13/site-packages/secretstorage/util.py": 1004887530903069622, - "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs_scalars.py": 652332294655046106, - "frontend/src/routes/datasets/MetricsTable.svelte": 6234185654078176376, - "venv/lib/python3.13/site-packages/dotenv/__init__.py": 15464030923609356017, - "venv/lib/python3.13/site-packages/pygments/lexers/pointless.py": 17552020039609007881, - "venv/lib/python3.13/site-packages/passlib/crypto/__init__.py": 16409196868630049365, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/wrapper.py": 14599195010683170123, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/information_schema.py": 8551227132710897346, - "venv/lib/python3.13/site-packages/git/index/fun.py": 18338379518768926372, - "venv/lib/python3.13/site-packages/numpy.libs/libgfortran-040039e1-0352e75f.so.5.0.0": 13946067868274850557, - "backend/src/api/routes/tasks.py": 2917461791850604633, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/generic.py": 17755579497690180620, - "venv/lib/python3.13/site-packages/pluggy/_version.py": 7195758686717994475, - "backend/src/core/plugin_loader.py": 16320603855307510494, - "docker/nginx.ssl.conf": 12350396037548059686, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/constants.pyi": 4415188581374004936, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_dialect.py": 4700488504252803159, - "venv/lib/python3.13/site-packages/pandas/api/typing/__init__.py": 6438268275857060114, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/licenses/LICENSE": 9235234428907927646, - "backend/src/services/clean_release/__tests__/test_audit_service.py": 1679130450221264383, - "frontend/build/_app/immutable/chunks/BddPqa-e.js": 3040470451817822725, - "venv/lib/python3.13/site-packages/pyasn1/codec/ber/encoder.py": 8912119133548489544, - "run.sh": 4808871544409245302, - "venv/lib/python3.13/site-packages/greenlet/platform/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/requests/exceptions.py": 6474239743209354989, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/base_server.py": 9643197259080504542, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/hooks.py": 9888227370911151341, - "venv/lib/python3.13/site-packages/referencing/tests/test_jsonschema.py": 9815500901482570619, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/pymysql.py": 12923876736367229454, - "venv/lib/python3.13/site-packages/pandas/core/computation/align.py": 13027916530558901817, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/licenses/LICENSE": 10253862887434903467, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/__init__.py": 7062045842767697645, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_compound.f90": 15012692484070385863, - "venv/lib/python3.13/site-packages/PIL/_imaging.cpython-313-x86_64-linux-gnu.so": 1425926264271197601, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/RECORD": 9803861100978586236, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/sdist.py": 9490366272695301385, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py": 14995426099932276090, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_orc.py": 1248059610437937895, - "venv/lib/python3.13/site-packages/pygments/lexers/urbi.py": 1611762607688882372, - "backend/src/services/superset_lookup_service.py": 16520439978260397080, - "venv/lib/python3.13/site-packages/websockets/asyncio/connection.py": 17044409627448400723, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/authorization_server.py": 2913800420669417152, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arraysetops.py": 10588903945244480732, - "venv/lib/python3.13/site-packages/iniconfig/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix.py": 4672871351134074735, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90": 6219951399575860362, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timestamps.pyi": 51728851886466199, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_asymmetric.py": 6903778603779934572, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/named_types.py": 6099185243355915896, - "venv/lib/python3.13/site-packages/urllib3/util/request.py": 9432067988603015849, - "venv/lib/python3.13/site-packages/httpcore/_models.py": 2501866419898326733, - "frontend/src/lib/api/translate.js": 18140498250896378509, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata_legacy.py": 9226692984248279094, - "venv/lib/python3.13/site-packages/pandas/core/computation/pytables.py": 16326122536715961388, - "venv/lib/python3.13/site-packages/numpy/_configtool.pyi": 9670892208858157218, - "venv/lib/python3.13/site-packages/rapidfuzz/__pyinstaller/__init__.py": 1229691061011958769, - "venv/lib/python3.13/site-packages/pygments/lexers/ldap.py": 17455983150181177257, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_converters.py": 8869440774594127419, - "venv/lib/python3.13/site-packages/numpy/f2py/_src_pyf.pyi": 8916922961301555974, - "frontend/src/lib/components/translate/TranslationRunProgress.svelte": 18041933754930100165, - "venv/lib/python3.13/site-packages/anyio/_core/_contextmanagers.py": 1258491775823080427, - "frontend/build/_app/immutable/chunks/Ct73Sust.js": 3385889491616825090, - "venv/lib/python3.13/site-packages/pandas/plotting/_core.py": 6766059152026241747, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_shift.py": 14026124784027171225, - "backend/tests/services/clean_release/test_approval_service.py": 8359796700245201345, - "venv/lib/python3.13/site-packages/pandas/io/excel/_xlrd.py": 14430937200583666658, - "venv/lib/python3.13/site-packages/gitdb/utils/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_function_base.py": 16624804022675533740, - "venv/lib/python3.13/site-packages/pandas/compat/pyarrow.py": 13693379998785127538, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/resource_protector.py": 14354891358060085360, - "venv/lib/python3.13/site-packages/apscheduler/executors/pool.py": 10344126569001032241, - "venv/lib/python3.13/site-packages/pandas/_libs/indexing.cpython-313-x86_64-linux-gnu.so": 13188040757764159731, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval_range.py": 9900908262700749861, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_round.py": 9358309072340573675, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_repeat.py": 11360772447747837958, - "venv/lib/python3.13/site-packages/pandas/compat/pickle_compat.py": 11073483984394766474, - "venv/lib/python3.13/site-packages/pandas/tests/extension/uuid/test_uuid.py": 13955678427426850807, - "frontend/e2e/helpers/api.helper.js": 12740720187461301874, - "frontend/build/_app/immutable/chunks/0hvOu5jK.js": 10335091194896019556, - "venv/lib/python3.13/site-packages/pygments/lexers/arrow.py": 6699009974224818979, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/INSTALLER": 17282701611721059870, - "backend/src/services/dataset_review/event_logger.py": 8083530196989488371, - "backend/src/plugins/storage/__init__.py": 5046554941488079204, - "venv/lib/python3.13/site-packages/pygments/lexers/__init__.py": 4627540245914849670, - "venv/lib/python3.13/site-packages/PIL/ImageTk.py": 17063969714816564357, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/util.py": 4815334059917765852, - "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/jws_eddsa.py": 833927568269372333, - "venv/lib/python3.13/site-packages/anyio/streams/text.py": 12507591237176920223, - "venv/lib/python3.13/site-packages/pandas/core/arrays/base.py": 664515424699746697, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/compiler.py": 11662494978292401568, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/modules.pyi": 131293606732000587, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/METADATA": 15876173086384975957, - "venv/lib/python3.13/site-packages/passlib/tests/__main__.py": 16477180140297957650, - "venv/lib/python3.13/site-packages/git/repo/base.py": 13975465345838683533, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libsasl2-883649fd.so.3.0.0": 13306917506408577991, "venv/lib/python3.13/site-packages/pandas/tests/io/test_common.py": 10797243274520625867, - "venv/lib/python3.13/site-packages/pandas/_config/__init__.py": 3577026529387563519, - "venv/lib/python3.13/site-packages/pandas/io/clipboards.py": 5183212433608887727, - "venv/lib/python3.13/site-packages/numpy/lib/stride_tricks.py": 548928042543500365, - "venv/lib/python3.13/site-packages/pygments/lexers/robotframework.py": 11507713622179102496, - "backend/conftest.py": 16521922883434363388, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/dml.py": 17308908394336670576, - "venv/lib/python3.13/site-packages/PIL/py.typed": 15130871412783076140, - "backend/src/api/routes/__tests__/test_dashboards.py": 226265424558878456, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_backend.pyi": 13083543811193933305, - "venv/lib/python3.13/site-packages/gitdb/db/__init__.py": 2615504918450276693, - "frontend/build/_app/immutable/chunks/zkZd1nRa.js": 15711219595002974448, - "venv/lib/python3.13/site-packages/numpy/_core/cversions.py": 9724467539503410469, - "frontend/src/lib/stores/maintenance.svelte.js": 6057490524855148629, - "backend/alembic/versions/a7b1c2d3e4f5_add_provider_id_to_validation_policies.py": 7446022200459040057, - "backend/alembic/versions/ed310b33f02c_multi_language_translation_tables.py": 1424919631205944664, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/scalars.py": 3468820466230647963, - "docker/frontend.entrypoint.sh": 11397342350356400663, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nested_sequence.pyi": 11245460325970663922, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_iteration.py": 2118501258411211851, - "backend/src/plugins/translate/preview.py": 1878554949419203980, - "venv/lib/python3.13/site-packages/pydantic/plugin/_schema_validator.py": 857640644840976862, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_conversion_utils.py": 1567199588622767277, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_indexing.py": 14461606056665485421, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh2848.f90": 5799106109999071412, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/inout.f90": 1521999519583206538, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/mod.pyi": 10591120373577657317, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby_dropna.py": 3620959914439334511, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/WHEEL": 12054782055241301457, - "venv/lib/python3.13/site-packages/pygments/styles/friendly_grayscale.py": 16840106759769837649, - "frontend/src/types/dashboard.ts": 9718666955722367566, - "venv/lib/python3.13/site-packages/itsdangerous/serializer.py": 14271229091461164933, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/win64python2.npy": 11005857803794805939, - "venv/lib/python3.13/site-packages/greenlet/tests/test_tracing.py": 10227316489696807112, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_export_format.py": 17862222951776199694, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/zip-safe": 15240312484046875203, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/mod.py": 2054876501774773382, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/vector.py": 9941185556118343263, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/parameters.py": 247312908510013930, + "venv/lib/python3.13/site-packages/apscheduler/executors/gevent.py": 17122637996105344344, + "venv/lib/python3.13/site-packages/charset_normalizer/md__mypyc.cpython-313-x86_64-linux-gnu.so": 12629680116730190225, + "venv/lib/python3.13/site-packages/gitdb/test/__init__.py": 18393574323937353933, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_masked_matrix.py": 1444179242134203344, + "venv/lib/python3.13/site-packages/pyasn1/type/base.py": 6801504886392649787, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_mips_unix.h": 17373389962405490482, + "venv/lib/python3.13/site-packages/pandas/tests/extension/json/__init__.py": 7877061921210840955, + "venv/lib/python3.13/site-packages/pandas/tests/test_col.py": 14781555956509956371, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/window/rolling.py": 6316477981414191778, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sample.py": 16877779557071324115, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix_py.py": 6653895521961110080, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_ticks.py": 11649965080303468085, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo_fixed.f90": 8079594129222364031, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_formats.py": 5259100336852479395, + "venv/lib/python3.13/site-packages/typing_inspection/introspection.py": 13916695705179237047, + "frontend/src/types/backup.ts": 1741234034896689348, + "frontend/build/_app/immutable/chunks/DcMPZ_fa.js": 6501595943098370468, + "backend/src/api/routes/assistant/_dataset_review_dispatch.py": 10108558091463171824, + "venv/lib/python3.13/site-packages/pandas/core/methods/selectn.py": 13552176539021625776, + "venv/lib/python3.13/site-packages/pandas/core/arrays/base.py": 664515424699746697, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/METADATA": 3814104793342833872, + "frontend/src/lib/components/reports/__tests__/reports_page.integration.test.js": 16463062768004950066, + "frontend/src/routes/datasets/StatsBar.svelte": 7818919570179436566, + "backend/:memory:test_main": 8120796031785944903, + "venv/lib/python3.13/site-packages/numpy/tests/test_numpy_config.py": 3636377988901907424, + "venv/lib/python3.13/site-packages/jsonschema/_legacy_keywords.py": 16481666133229715822, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/integration.py": 12670848015915724967, + "venv/lib/python3.13/site-packages/keyring/compat/py312.py": 17581691618899404491, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/theme.py": 14225878259183479398, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/RECORD": 17545477863793260029, + "venv/lib/python3.13/site-packages/httpx/_urls.py": 4219389176352582046, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_records.py": 18167578114159312327, + "docker/frontend.Dockerfile": 13262735279052210084, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/WHEEL": 16223367184831500348, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_contains.py": 17630310725250553247, + "venv/lib/python3.13/site-packages/rsa/parallel.py": 4968566722541778371, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/fastapi/security/base.py": 15674297568104917749, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_append_common.py": 2377351120083195530, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_add_prefix_suffix.py": 4815518357936092237, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/__init__.py": 9997757256282720103, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/test_na_scalar.py": 13950899907067372014, + "venv/lib/python3.13/site-packages/pandas/tests/strings/conftest.py": 12065119814157197510, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_strings.py": 17398806130402098912, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_mangle_dupes.py": 15613858733226279352, + "venv/lib/python3.13/site-packages/pydantic/_internal/_docs_extraction.py": 5210114991139191634, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_nlargest_nsmallest.py": 11049656379959696695, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/WHEEL": 16784970174376303810, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/__init__.py": 9106887608906281686, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/modules.py": 9023244176010175562, + "venv/lib/python3.13/site-packages/pandas/compat/_optional.py": 12714208019736797073, + "frontend/build/_app/immutable/chunks/aNI39KyB.js": 1756469162576383723, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_timedelta.py": 12822713918114715561, + "venv/lib/python3.13/site-packages/pandas/core/computation/pytables.py": 16326122536715961388, + "venv/lib/python3.13/site-packages/numpy/polynomial/laguerre.pyi": 11310761736182213265, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_indexing.py": 8943385096811168079, + "venv/lib/python3.13/site-packages/pillow.libs/libpng16-4a38ea05.so.16.53.0": 13136089038268964667, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/cymysql.py": 5570881524647789741, + "venv/lib/python3.13/site-packages/pip/_internal/operations/prepare.py": 13514839972066861359, + "backend/src/services/reports/__tests__/test_report_normalizer.py": 5179524010104259469, + "venv/lib/python3.13/site-packages/numpy/random/_common.pyi": 5094115692952609118, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/windows.py": 16452996247375488034, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/WHEEL": 7454950858448014158, + "venv/lib/python3.13/site-packages/numpy/_core/_type_aliases.pyi": 15848834171197104301, + "venv/lib/python3.13/site-packages/tzlocal/__init__.py": 11017072814026497364, + "venv/lib/python3.13/site-packages/passlib/utils/pbkdf2.py": 15802959653228956404, + "venv/lib/python3.13/site-packages/pip/_internal/utils/setuptools_build.py": 13594639612360346306, + "venv/lib/python3.13/site-packages/numpy/lib/recfunctions.py": 3001896031623204147, + "venv/lib/python3.13/site-packages/pandas/_libs/join.pyi": 369262334342439364, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_typst.py": 14619529283550788275, + "backend/src/plugins/translate/__tests__/test_dictionary_prompt_builder.py": 12854863376472707556, + "venv/lib/python3.13/site-packages/pip/_internal/cli/base_command.py": 10660882478126415399, + "venv/lib/python3.13/site-packages/numpy/linalg/_umath_linalg.cpython-313-x86_64-linux-gnu.so": 17652852308919396403, + "backend/git_repos/remote/test-repo.git/objects/c5/b992984fe856bd81206304a881faa3087937cf": 2441623644664166468, + "venv/lib/python3.13/site-packages/click/_compat.py": 14451519072991457993, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_empty.py": 13006241382741353569, + "backend/src/services/reports/__tests__/test_report_service.py": 7145268223824508607, + "venv/lib/python3.13/site-packages/pillow.libs/libXau-154567c4.so.6.0.0": 4340972632724893052, + "venv/lib/python3.13/site-packages/secretstorage/dhcrypto.py": 8860116996905452758, + "venv/lib/python3.13/site-packages/PIL/PSDraw.py": 1927169421822446045, + "frontend/src/lib/components/translate/__tests__/test_translation_preview.svelte.js": 15091004230843271151, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_no_deprecated_api.h": 7896028550808252043, + "venv/lib/python3.13/site-packages/websockets/auth.py": 499195617702591757, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/ops.py": 13451323660386712332, + "backend/tests/core/migration/test_archive_parser.py": 1909788158234142574, + "venv/lib/python3.13/site-packages/apscheduler/triggers/base.py": 1170652622104554892, + "venv/lib/python3.13/site-packages/pandas/core/indexes/frozen.py": 1419685664276640120, + "backend/src/plugins/translate/preview_token_estimator.py": 254295902082954386, + "venv/lib/python3.13/site-packages/pydantic/main.py": 14086938579850319884, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/PIL/MpegImagePlugin.py": 7726254767528154514, + "backend/src/api/routes/__tests__/test_tasks_logs.py": 17724385243163092479, + "backend/src/core/utils/superset_context_extractor/__init__.py": 1074191108198498747, + "backend/src/plugins/translate/preview_prompt_helpers.py": 14303328860208074708, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_common_basic.py": 1945891789924713537, + "venv/lib/python3.13/site-packages/pandas/core/shared_docs.py": 2173578869755325502, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_msvc.h": 17581467060937454503, + "venv/lib/python3.13/site-packages/passlib/utils/binary.py": 13123975436674239306, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_replace.py": 8165088653532047247, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/RECORD": 16740224557818847141, + "venv/lib/python3.13/site-packages/packaging/metadata.py": 9168255069163141470, + "frontend/build/_app/immutable/entry/start.BNyxZqQe.js": 14066366168579688400, + "venv/lib/python3.13/site-packages/numpy/tests/test__all__.py": 10689265249302359388, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/entities.py": 8001287806688585081, + "backend/src/plugins/translate/orchestrator_config.py": 1227864697811313446, "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/__init__.py": 348469143777130970, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_extras.py": 16160090335191788104, - "venv/lib/python3.13/site-packages/pip/_internal/utils/misc.py": 17461379236189029253, - "venv/lib/python3.13/site-packages/jaraco/functools/__init__.pyi": 2872039192528394677, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/shape_base.pyi": 10291383658131961346, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_version.pyi": 18093228021414910594, + "venv/lib/python3.13/site-packages/jose/backends/native.py": 50023158618000658, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py": 17873236864291624476, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/spinner.py": 5564789578696016201, + "venv/lib/python3.13/site-packages/pydantic/v1/version.py": 2758971830527526972, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_utils.py": 4612923732868929770, + "venv/lib/python3.13/site-packages/pandas/_libs/parsers.pyi": 18402185996588014111, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_describe.py": 14493300276133670380, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_algos.py": 5356470832688354593, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/padding.py": 11244071766694094554, + "venv/lib/python3.13/site-packages/ecdsa/test_sha3.py": 12459459298663975730, + "venv/lib/python3.13/site-packages/_pytest/runner.py": 5772610501857496741, + "venv/lib/python3.13/site-packages/pandas/io/spss.py": 864838144958947906, + "venv/lib/python3.13/site-packages/pandas/io/sas/sas7bdat.py": 17851617851457266799, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_ssl_constants.py": 14834514243239777933, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_timedelta_range.py": 15081095442418142820, + "venv/lib/python3.13/site-packages/gitdb/test/lib.py": 13294941660283059872, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_subclass.py": 10949229764696473939, + "venv/lib/python3.13/site-packages/smmap/__init__.py": 4557520096828426601, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_printing.py": 1901396869745313303, + "venv/lib/python3.13/site-packages/numpy/_core/arrayprint.py": 1262543237476191714, + "venv/lib/python3.13/site-packages/pandas/api/__init__.py": 1145864207387918302, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_quantile.py": 4225791949463893856, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/lexers/tlb.py": 1169242051301155885, + "venv/lib/python3.13/site-packages/pygments/lexers/ptx.py": 4855144232064607995, + "frontend/src/routes/migration/mappings/+page.svelte": 4566398049366943407, + "frontend/src/routes/translate/+page.svelte": 15284819686967093613, + "venv/lib/python3.13/site-packages/jeepney/io/tests/conftest.py": 13381752264278264218, + "venv/lib/python3.13/site-packages/passlib/utils/md4.py": 4521366665754877351, + "backend/src/core/task_manager/__tests__/test_task_logger.py": 1651218524520477084, + "backend/src/api/routes/__tests__/test_clean_release_v2_release_api.py": 14275839608126658275, + "venv/lib/python3.13/site-packages/pyasn1/__init__.py": 8089201217593738032, + "venv/lib/python3.13/site-packages/dotenv/variables.py": 5438726379749803751, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/assertions.py": 5556667947376168765, + "backend/src/core/utils/matching.py": 12567367681677699487, + "backend/src/models/dataset_review_pkg/_enums.py": 2243691494729792539, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_converter.py": 7709581879446228856, + "backend/src/services/clean_release/repositories/audit_repository.py": 9617813121624417458, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/base.py": 10514193453447954780, + "venv/lib/python3.13/site-packages/charset_normalizer/md.cpython-313-x86_64-linux-gnu.so": 1835299664481804968, + "backend/src/plugins/translate/service_target_schema.py": 15018144148162493344, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/decl_api.py": 5287018911951723034, + "venv/lib/python3.13/site-packages/pydantic/_internal/_signature.py": 17075003201648027250, + "backend/src/plugins/translate/events.py": 8282921049842647968, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_simd_module.py": 7122050193390298178, + "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_gen_files.py": 11149423183253618378, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/adapters.py": 2224938661429637508, "venv/lib/python3.13/site-packages/pandas/tests/indexes/conftest.py": 17897502508251413988, - "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/arrays/timedeltas/test_reductions.py": 14432782234851468060, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_cpp_avx2.cpython-313-x86_64-linux-gnu.so": 12574929384355254457, + "venv/lib/python3.13/site-packages/pygments/lexers/rust.py": 8605690716125176329, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/structures.py": 2668010839316715865, + "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_enc_cryptography.py": 4383854709657749855, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py": 8864112842559211971, + "venv/lib/python3.13/site-packages/anyio/streams/text.py": 12507591237176920223, + "venv/lib/python3.13/site-packages/pandas/_libs/testing.pyi": 16691791330088523786, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_skew_kurt.py": 15225601437354712351, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libssl-81ffa89e.so.3": 13913673119166658781, + "venv/lib/python3.13/site-packages/pandas/core/reshape/reshape.py": 5387892304726762127, + "venv/lib/python3.13/site-packages/pandas/tests/io/xml/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/__init__.py": 10470644151952252331, + "venv/lib/python3.13/site-packages/pandas/_libs/properties.cpython-313-x86_64-linux-gnu.so": 7092136701092358552, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/METADATA": 3786116428839780263, + "venv/lib/python3.13/site-packages/pygments/lexers/lilypond.py": 1088755646568511197, + "venv/lib/python3.13/site-packages/pygments/lexers/ooc.py": 14540210212631538007, + "venv/bin/pip": 13861749540792881808, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_integer.f90": 8308927438994838783, + "venv/lib/python3.13/site-packages/pandas/core/computation/eval.py": 3176226283265954028, + "venv/lib/python3.13/site-packages/idna-3.11.dist-info/RECORD": 11541505360973709787, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/styles/_mapping.py": 11752660241391232497, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timedeltas.pyi": 3783371827926657291, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi": 1846673463183660140, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_3kcompat.h": 5377305123299457337, + "venv/lib/python3.13/site-packages/numpy/_utils/_pep440.pyi": 6796322258258182775, + "venv/bin/activate.csh": 14513616043256836238, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/validator.py": 14200019408839159476, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_tz_localize.py": 14495969595744172955, + "venv/lib/python3.13/site-packages/pip/_vendor/pkg_resources/__init__.py": 1677532855362260338, + "venv/lib/python3.13/site-packages/pygments/lexers/_mql_builtins.py": 2376212048709413586, + "frontend/e2e/tests/migration.e2e.js": 12564023806718668322, + "backend/src/plugins/translate/__tests__/test_scheduler.py": 11257332466578758156, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufuncs.pyi": 1808147181379894521, + "venv/lib/python3.13/site-packages/git/index/fun.py": 18338379518768926372, + "venv/lib/python3.13/site-packages/attrs/converters.py": 13109003765349201809, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/useless_keywords.py": 11487954623214475915, + "venv/lib/python3.13/site-packages/authlib/oidc/core/__init__.py": 16029653645350087968, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/roles.py": 5448455900674232810, + "venv/lib/python3.13/site-packages/urllib3/contrib/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.pxd": 13413785818999584986, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rename.py": 4890779493250245903, + "venv/lib/python3.13/site-packages/pandas/_libs/reshape.pyi": 88721900806893992, + "venv/lib/python3.13/site-packages/pandas/_libs/ops_dispatch.pyi": 16176428602589420913, + "venv/lib/python3.13/site-packages/sqlalchemy/util/concurrency.py": 1325673503812009695, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html.tpl": 12550218314797699304, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_conversion.py": 9159276697339089788, + "venv/lib/python3.13/site-packages/PIL/_imagingcms.cpython-313-x86_64-linux-gnu.so": 15198265718775753589, + "frontend/src/lib/components/layout/__tests__/test_topNavbar.svelte.js": 11053755879172333925, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/converter.py": 9041278869295701566, + "venv/lib/python3.13/site-packages/ecdsa/ssh.py": 17010933326090778158, + "backend/src/core/utils/__init__.py": 12454773556575864508, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh24008.f": 3872245077994936272, + "venv/lib/python3.13/site-packages/pydantic/_internal/_decorators_v1.py": 16723743964226526155, + "venv/lib/python3.13/site-packages/pyasn1/codec/ber/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/pydantic/mypy.py": 10034028441785588819, + "venv/lib/python3.13/site-packages/numpy/char/__init__.py": 4428218097234308768, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_explode.py": 16195468192763502449, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_repr.py": 11737029058271003097, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_liboffsets.py": 14705822637347212540, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_set.py": 14375107704596905983, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_printing.py": 8859757563354666575, + "venv/lib/python3.13/site-packages/passlib/tests/test_apache.py": 12515001998770565375, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel_legacy.py": 12735901522735836481, + "venv/lib/python3.13/site-packages/pygments/lexers/jsx.py": 13855228003748707341, + "venv/lib/python3.13/site-packages/click/utils.py": 13475604420010022458, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/pymysql.py": 12923876736367229454, + "frontend/build/_app/immutable/nodes/3.DC_u72aE.js": 9573850396512596892, + "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/frame/methods/test_diff.py": 2216748778018882333, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_indexing.py": 4063662953863959087, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libselinux-0922c95c.so.1": 16516617710645376769, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_factorize.py": 861897342553280506, + "venv/lib/python3.13/site-packages/pydantic/json.py": 4109352930301629308, + "venv/lib/python3.13/site-packages/pygments/lexers/diff.py": 5930189593946259160, + "backend/src/core/auth/security.py": 8289703096420999159, + "venv/lib/python3.13/site-packages/pip/_internal/utils/unpacking.py": 106471890743211548, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/value_attrspec/gh21665.f90": 11945588837236968550, + "venv/lib/python3.13/site-packages/ecdsa/test_der.py": 7117444285097824495, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_array_from_pyobj.py": 9596224861290975079, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/lib/npy-pkg-config/mlib.ini": 16151597765994697599, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_arrow_interface.py": 9757086292358759236, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_analytics.py": 8155550493311083506, + "venv/lib/python3.13/site-packages/pygments/lexers/make.py": 5345282370426217663, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-exp.csv": 601782991752922510, + "venv/lib/python3.13/site-packages/pandas/util/_decorators.py": 14780166101442507665, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/METADATA": 3390257212824996989, + "venv/lib/python3.13/site-packages/pygments/lexers/unicon.py": 1155454077052833821, + "frontend/src/lib/api/translate/runs.js": 1220731879179347641, + "backend/src/models/dataset_review_pkg/_profile_models.py": 9621392840420324583, + "backend/src/services/__tests__/test_health_service.py": 17832814613637967046, + "backend/src/services/git/_merge.py": 3056385620903925104, + "venv/lib/python3.13/site-packages/pandas/core/_numba/executor.py": 2205130934861422769, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/errors.py": 4817746830102488448, + "venv/lib/python3.13/site-packages/smmap/util.py": 13276170835044840023, + "frontend/src/routes/datasets/review/useReviewSession.js": 2378011913105385059, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/LICENSE": 8423899413955829149, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/__init__.py": 15340047930888693984, + "venv/lib/python3.13/site-packages/pip/_internal/cli/cmdoptions.py": 12107733000019393631, + "backend/tests/core/test_migration_engine.py": 7419155921858935534, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/_pytest/threadexception.py": 10464996327276961035, + "venv/lib/python3.13/site-packages/passlib/handlers/scrypt.py": 10089372287597257402, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_transform.py": 18159263102656491974, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_nat.py": 18428782698385974380, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_file_buffer_url.py": 15377043158761455858, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/util.py": 1520899420719605380, + "frontend/build/_app/immutable/nodes/16.yCusNoj_.js": 1406373227455087905, + "venv/lib/python3.13/site-packages/pygments/lexers/pointless.py": 17552020039609007881, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_fillna.py": 8802093795040069423, + "backend/git_repos/remote/test-repo.git/hooks/fsmonitor-watchman.sample": 14381968406977928721, + "frontend/build/_app/immutable/chunks/Dn-Kr3zV.js": 11981784044886973393, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/__init__.py": 8880435562116660648, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/conversion.pyi": 16976386782787920450, + "venv/lib/python3.13/site-packages/py.py": 16248211404003181569, + "venv/lib/python3.13/site-packages/pip/_internal/commands/search.py": 8292218231992728142, + "venv/lib/python3.13/site-packages/apscheduler/executors/debug.py": 14072221218785494847, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/__init__.py": 7526309124863950484, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_setops.py": 10550603120090683350, + "venv/lib/python3.13/site-packages/_pytest/subtests.py": 14573790885130724739, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_offsets_properties.py": 2340780879864207500, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_internal/commands/__init__.py": 3795218871212151351, + "venv/lib/python3.13/site-packages/cffi/model.py": 13544803366359102016, + "venv/lib/python3.13/site-packages/multipart/decoders.py": 11346752866822986212, + "venv/lib/python3.13/site-packages/more_itertools/recipes.pyi": 16788810745659802820, + "backend/src/models/dataset_review_pkg/_filter_models.py": 13932350898582638473, + "venv/lib/python3.13/site-packages/pandas/core/sparse/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_io.py": 4199750143323741326, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/PIL/_typing.py": 17407980360703360848, + "venv/lib/python3.13/site-packages/urllib3/_collections.py": 3440910792774742262, + "venv/lib/python3.13/site-packages/pip/_internal/operations/install/editable_legacy.py": 8145740626773638218, + "frontend/playwright-report/data/fe71864b4cbf83c1ddaa5774098c6fa987f91ff9.webm": 9945873951473992150, + "frontend/src/routes/datasets/[id]/+page.svelte": 14911166036063098761, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/METADATA": 14126682758562488244, + "backend/src/services/git/_remote_providers.py": 11131218419284688941, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_transpose.py": 17983160984979323393, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_datetime64.py": 16272266806084058743, + "venv/lib/python3.13/site-packages/git/refs/__init__.py": 16246686106073400519, + "venv/lib/python3.13/site-packages/pygments/lexers/graphql.py": 2307854666015224677, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/random/bit_generator.pyi": 15790738442952696034, + "venv/lib/python3.13/site-packages/keyring/backends/SecretService.py": 17482492072907438453, + "venv/lib/python3.13/site-packages/numpy/lib/_type_check_impl.pyi": 2667658052734929089, + "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/array.py": 13040461386712513615, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/test_indexing.py": 13703573544185051910, + "backend/src/core/__tests__/test_native_filters.py": 823253235973274872, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein.pyi": 12925006572914814268, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_delitem.py": 14336697139511118920, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_level_values.py": 12490886203425393290, + "venv/lib/python3.13/site-packages/pygments/styles/dracula.py": 12379322008538174078, + "backend/tests/test_constants_audit_fixes.py": 18298690956132739779, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_ewm.py": 12153690217678546798, + "frontend/build/_app/immutable/chunks/BWQQsteK.js": 15588475815071543641, + "venv/lib/python3.13/site-packages/pandas/api/extensions/__init__.py": 882327406374020760, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/reserved_words.py": 8022121780993497971, + "venv/lib/python3.13/site-packages/authlib/oidc/discovery/models.py": 6924198551176217533, + "frontend/src/routes/dashboards/+page.svelte": 5715934441651304054, + "frontend/build/_app/immutable/nodes/19.BtYix_y_.js": 13099146879599461804, + "venv/lib/python3.13/site-packages/pydantic/_internal/_mock_val_ser.py": 12265320534388472158, + "venv/lib/python3.13/site-packages/pandas/io/pickle.py": 5418646169167774144, + "backend/src/services/git/_gitea.py": 12631200182530815617, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/METADATA": 14608873187265321271, + "venv/lib/python3.13/site-packages/referencing/__init__.py": 10093824711214801917, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge.py": 11366935134260232329, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_stata.py": 3030675968330529905, + "venv/lib/python3.13/site-packages/pygments/lexers/csound.py": 2175454840368374515, + "backend/src/plugins/search.py": 888817404897740233, + "venv/lib/python3.13/site-packages/pydantic/v1/error_wrappers.py": 5701679786078971939, + "venv/lib/python3.13/site-packages/numpy/_core/getlimits.py": 7842717073693731093, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_defchararray.py": 15135904718007443306, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/apps.py": 10758062668702044519, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/json.py": 14738429697319670035, + "venv/lib/python3.13/site-packages/cryptography/__init__.py": 641702726372647770, + "venv/lib/python3.13/site-packages/httpcore/_exceptions.py": 6716590711697088732, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/table.py": 16856253349556498073, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/pandas/core/flags.py": 4690844374637430013, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_quantile.py": 11966156706220948315, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_array.py": 11271807719833350332, + "venv/lib/python3.13/site-packages/yaml/loader.py": 18284689412149643959, + "venv/lib/python3.13/site-packages/numpy/ma/core.py": 338350463523585845, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/chararray.pyi": 9683985931409244216, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_mixed.py": 3476101699679108025, + "venv/lib/python3.13/site-packages/attr/__init__.pyi": 13203080513025719049, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_repeat.py": 18394463352314692642, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_cumulative.py": 8178093067175155877, + "venv/lib/python3.13/site-packages/numpy/typing/tests/test_isfile.py": 14544060093268573418, + "frontend/src/routes/settings/MigrationMappingsTable.svelte": 4467573699012255407, + "backend/src/core/auth/repository.py": 7314530014494164270, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/licenses/LICENSE.PSF": 13208428090829817329, + "venv/lib/python3.13/site-packages/attr/converters.pyi": 17675091788614033166, + "venv/lib/python3.13/site-packages/starlette/convertors.py": 17839747154274354605, + "venv/lib/python3.13/site-packages/pip/_internal/build_env.py": 3614358934066127900, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh2848.f90": 5799106109999071412, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval_range.py": 9900908262700749861, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_deprecations.py": 16124509063246256847, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_take.py": 3281943380342853080, + "venv/lib/python3.13/site-packages/pygments/lexers/business.py": 10410439210806697214, + "venv/lib/python3.13/site-packages/pygments/lexers/_vim_builtins.py": 6842381248727719900, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_interp_fillna.py": 5530041283991655415, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/LICENSE": 6581019367004699816, + "backend/alembic/versions/9f8e7d6c5b4a_add_is_multimodal_to_llm_providers.py": 11090205342799426943, + "backend/git_repos/remote/test-repo.git/hooks/pre-push.sample": 8029776382195911768, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs.py": 15657897994221955882, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_inf.py": 8659210689723088321, + "venv/lib/python3.13/site-packages/jeepney/io/tests/test_trio.py": 7459901627473962540, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/generator_pcg64_np126.pkl.gz": 9677994062701347206, + "venv/lib/python3.13/site-packages/yaml/reader.py": 9873075843010693205, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_sparc_sun_gcc.h": 2915128971664712180, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/syntax.py": 18070449217682341495, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/METADATA": 3643456577199395707, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_insert.py": 17383986803728810587, + "backend/alembic/versions/f0e9d8c7b6a5_cascade_ondelete_all_env_fks.py": 18274103435952144919, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_arithmetic.py": 16045758521544316139, + "venv/lib/python3.13/site-packages/numpy/tests/test_matlib.py": 14395481530627870882, + "venv/lib/python3.13/site-packages/passlib/ext/django/models.py": 12386223748379294996, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_masked.py": 5380551301916549925, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_quarter.py": 6795026338946382805, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_duplicated.py": 6659959750254523427, + "venv/lib/python3.13/site-packages/jose/backends/cryptography_backend.py": 2875270748627611635, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/profiling.py": 16030397164203895281, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/properties.py": 5799883762127872919, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/WHEEL": 691462085217888236, + "backend/src/api/routes/__tests__/test_clean_release_v2_api.py": 13464989331176891726, + "venv/lib/python3.13/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0": 116215608212382352, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_duplicate_labels.py": 10663105616336167414, + "venv/lib/python3.13/site-packages/websockets/asyncio/messages.py": 6848925149930551457, + "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath.py": 13010939919217862164, + "venv/lib/python3.13/site-packages/pygments/lexers/ada.py": 17032408976634308999, + "frontend/playwright-report/trace/snapshot.v8KI4P3m.js": 7854911091722310751, + "venv/bin/pyrsa-sign": 15564653706771700451, + "venv/lib/python3.13/site-packages/httpcore/_sync/socks_proxy.py": 4418971149260853240, + "venv/lib/python3.13/site-packages/pydantic/_internal/_serializers.py": 12077180322353709930, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_public_dtype_api_table.h": 8933016749764021181, + "venv/lib/python3.13/site-packages/pandas/compat/pyarrow.py": 13693379998785127538, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_insert.py": 15536994417338770457, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/dependency.py": 7300594038182867460, + "venv/lib/python3.13/site-packages/gitdb/__init__.py": 15381521749253695923, + "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/pandas/core/_numba/kernels/var_.py": 12699521091170347311, + "venv/lib/python3.13/site-packages/pandas/core/indexes/accessors.py": 14394872772838047912, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_util.py": 6573034224727513309, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_append.py": 17016125916761365423, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_downcast.py": 10399746645741452200, + "venv/lib/python3.13/site-packages/git/cmd.py": 8854786163152637148, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cosh.csv": 9287774220881887502, + "venv/lib/python3.13/site-packages/PIL/PcxImagePlugin.py": 1691405132377495336, + "venv/lib/python3.13/site-packages/smmap/test/test_mman.py": 8977119225749253844, + "venv/lib/python3.13/site-packages/urllib3/util/ssl_match_hostname.py": 7411350247004265632, + "venv/lib/python3.13/site-packages/numpy/f2py/_isocbind.py": 15031197044862908440, + "venv/lib/python3.13/site-packages/pydantic/_internal/_internal_dataclass.py": 13206778611516171760, + "frontend/src/lib/api/translate/corrections.js": 3619404083693055292, + "frontend/src/lib/components/dataset-review/__tests__/us2_semantic_workspace.ux.test.js": 3550956860258259058, + "frontend/build/_app/immutable/nodes/15.D77w-oKN.js": 12254106526344958795, + "backend/src/api/routes/assistant/_dataset_review.py": 14508672919199309579, + "venv/lib/python3.13/site-packages/pip/_internal/commands/check.py": 6937252393012787214, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_from_scalar.py": 16520136036631155842, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/WHEEL": 5990830714395966792, + "venv/lib/python3.13/site-packages/pygments/styles/nord.py": 8469538903422182155, + "backend/src/core/__tests__/test_throttled_scheduler.py": 10949494963069000037, + "backend/src/services/clean_release/manifest_builder.py": 10633987497931832162, + "backend/src/services/llm_provider.py": 18361253887642486050, + "backend/src/services/dataset_review/clarification_pkg/_helpers.py": 9331845075873070265, + "venv/lib/python3.13/site-packages/pygments/lexers/rita.py": 8105458520706587972, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/resource_protector.py": 3563910821279222695, + "venv/lib/python3.13/site-packages/numpy/polynomial/__init__.py": 15558318749939680074, + "venv/lib/python3.13/site-packages/pyasn1/codec/cer/encoder.py": 3261739474564948330, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/WHEEL": 9100692507274722091, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test__datasource.py": 1747755531265478106, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pygments/lexers/numbair.py": 17382646010399794697, + "venv/lib/python3.13/site-packages/pycparser/ply/lex.py": 3393278208465358140, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/RECORD": 9974324769263969827, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_user_array.py": 8711697474193296376, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_resolution.py": 6076761538303762297, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_cumulative.py": 11752712818547022872, + "venv/lib/python3.13/site-packages/pyasn1/type/char.py": 16518487114777185541, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/refresh_token.py": 17927903035152872556, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_backend.py": 17793139799410518847, + "venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py": 16951268065271931235, + "venv/lib/python3.13/site-packages/pandas/_libs/window/indexers.pyi": 9911899303567570646, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/default_comparator.py": 47118577003622736, + "venv/lib/python3.13/site-packages/PIL/_imagingmorph.pyi": 18222325750818585549, + "venv/lib/python3.13/site-packages/pydantic/v1/annotated_types.py": 12925825196690299531, + "venv/lib/python3.13/site-packages/keyring/backend_complete.zsh": 14339032329370660432, + "venv/lib/python3.13/site-packages/_pytest/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/introspect.py": 5706729538356302335, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_join.py": 17874591841487372992, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/__init__.py": 11009955319062089477, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_snap.py": 4515844385819802784, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_constructors.py": 9478848417896027917, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/__init__.py": 3619091571279924576, + "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/RECORD": 15574202654585730126, + "venv/lib/python3.13/site-packages/packaging/_elffile.py": 9546225990833172494, + "backend/src/api/routes/__tests__/test_dataset_review_api.py": 8023021851133925740, + "backend/src/plugins/translate/dictionary_correction.py": 18051915404774774954, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/rec.pyi": 14615751247243515028, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_api.py": 14120915875574640262, + "backend/tests/services/clean_release/test_candidate_manifest_services.py": 16861589402854148894, + "venv/include/site/python3.13/greenlet/greenlet.h": 16216120538647882082, + "venv/lib/python3.13/site-packages/pandas/api/typing/aliases.py": 11194270368147942988, + "venv/lib/python3.13/site-packages/jose/utils.py": 1926138853970725083, + "frontend/src/routes/datasets/+page.svelte": 4090458050277453670, + "venv/lib/python3.13/site-packages/anyio/streams/buffered.py": 8916188172110578587, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_cpp.cpython-313-x86_64-linux-gnu.so": 14187094676876471848, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_categorical.py": 9615571808720893016, + "frontend/src/routes/translate/history/+page.svelte": 9504117584329454876, + "venv/lib/python3.13/site-packages/psycopg2/__init__.py": 15798412693009721199, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_bar.py": 7791068963246005463, + "venv/lib/python3.13/site-packages/greenlet/tests/leakcheck.py": 10179165748538820557, + "venv/lib/python3.13/site-packages/pygments/lexers/php.py": 17636450950688953288, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/jupyter.py": 4446535289156468239, + "venv/lib/python3.13/site-packages/numpy/f2py/rules.pyi": 1342380029484127983, + "venv/lib/python3.13/site-packages/authlib/oidc/core/userinfo.py": 17201158389976619872, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/authorization_server.py": 2491654903543600678, + "venv/lib/python3.13/site-packages/pygments/styles/staroffice.py": 11694998942433220413, + "venv/lib/python3.13/site-packages/click/_winconsole.py": 8133229457213704188, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/licenses/LICENSE": 10253862887434903467, + "venv/lib/python3.13/site-packages/pygments/lexers/haskell.py": 8011341851439354724, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/astype_copy.pkl": 4470155972891419163, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_abc.py": 10164280045317807365, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_set_index.py": 10971093361190283675, + "venv/lib/python3.13/site-packages/numpy/f2py/f90mod_rules.pyi": 18290764713161282980, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_value_counts.py": 9352540710376306520, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/python3.npy": 4957143805477405905, + "venv/lib/python3.13/site-packages/PIL/WebPImagePlugin.py": 5378349556563611996, + "venv/lib/python3.13/site-packages/numpy/testing/_private/__init__.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/PIL/ImageQt.py": 6607270889359138659, + "venv/lib/python3.13/site-packages/pandas/core/_numba/__init__.py": 15130871412783076140, + "frontend/build/_app/immutable/nodes/13.CWfoAyT-.js": 16342502651271133149, + "frontend/src/lib/stores/__tests__/mocks/stores.js": 14098417748659067309, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/errors.py": 12935154705443176852, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_equals.py": 6429101196875333574, + "backend/src/services/clean_release/__tests__/test_policy_engine.py": 15331910119765064311, + "backend/alembic/versions/2a7b8c9d0e1f_add_target_languages_to_translation_jobs.py": 7201017059554918882, + "backend/src/api/routes/translate/_schedule_routes.py": 18180097500694105300, + "venv/lib/python3.13/site-packages/starlette/middleware/__init__.py": 9524277524025372856, + "frontend/svelte.config.js": 8473636210766821560, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_clipboard.py": 12674078499544938252, + "venv/lib/python3.13/site-packages/pandas/plotting/_core.py": 6766059152026241747, + "venv/lib/python3.13/site-packages/greenlet/tests/test_greenlet.py": 10727595500186011102, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/socks.py": 17581293673028078134, + "venv/lib/python3.13/site-packages/numpy/fft/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/ops/mask_ops.py": 16152832446926420035, + "venv/lib/python3.13/site-packages/jeepney/bus_messages.py": 5871341372541525842, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/setitem.py": 9552868454186447925, + "venv/lib/python3.13/site-packages/keyring/__main__.py": 14602212239605295451, + "venv/lib/python3.13/site-packages/jeepney/auth.py": 10565040329507087892, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize.py": 15511055314565873928, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/METADATA": 10810011740984652381, + "venv/lib/python3.13/site-packages/fastapi/params.py": 14263655860695381481, + "venv/lib/python3.13/site-packages/gitdb/test/test_base.py": 16305779366785148795, + "venv/lib/python3.13/site-packages/greenlet/TGreenletGlobals.cpp": 17400526028982558937, + "venv/lib/python3.13/site-packages/pip/_internal/cli/index_command.py": 15798187258841839292, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/plugin.py": 18006138132596504101, + "venv/lib/python3.13/site-packages/numpy/f2py/diagnose.pyi": 8607205990821121708, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/strptime.cpython-313-x86_64-linux-gnu.so": 12654188486128938170, + "venv/lib/python3.13/site-packages/pip/_internal/utils/wheel.py": 450504439085405418, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/hybrid.py": 5793056975404534989, + "venv/lib/python3.13/site-packages/dateutil/_common.py": 12492546559232079071, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_laguerre.py": 7475592201750602042, + "venv/lib/python3.13/site-packages/pygments/styles/fruity.py": 7925019839136894457, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libldap-2974a1ba.so.2.0.200": 13590569080612602445, + "venv/lib/python3.13/site-packages/numpy/exceptions.py": 10981418339663118022, + "venv/lib/python3.13/site-packages/pydantic/_internal/_forward_ref.py": 10623110912945011703, + "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/client_mixin.py": 17980753662107479779, + "venv/lib/python3.13/site-packages/pygments/lexers/graphviz.py": 15677908982985025500, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/tree.py": 4991806303236874829, + "frontend/build/_app/immutable/nodes/27.DBoSQFdP.js": 3996839526740186087, + "venv/lib/python3.13/site-packages/uvicorn/server.py": 15714008348292243019, + "venv/lib/python3.13/site-packages/passlib/hash.py": 5238710192614935875, + "venv/lib/python3.13/site-packages/passlib/tests/sample1c.cfg": 13088198405762342506, + "frontend/src/routes/translate/dictionaries/+page.svelte": 1038433841421198720, + "frontend/src/routes/+page.ts": 11160596731849880920, + "backend/git_repos/remote/test-repo.git/hooks/sendemail-validate.sample": 8058833260784074657, + "venv/lib/python3.13/site-packages/greenlet/greenlet_cpython_compat.hpp": 8396413256279803400, + "venv/lib/python3.13/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4": 2483101806045986252, + "frontend/src/routes/storage/+page.svelte": 5003283673039328108, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_constructors.py": 2439700578107653984, + "venv/lib/python3.13/site-packages/rpds/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/httpcore/_utils.py": 3255581092836273826, + "backend/alembic/script.py.mako": 7041141123739810216, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatters/_mapping.py": 13335227913146542481, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/licenses/COPYING": 14459782230785388765, + "venv/lib/python3.13/site-packages/numpy/lib/_arrayterator_impl.pyi": 2744889206277418389, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.py": 17538029557373507617, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/METADATA": 2604612822968175379, + "venv/lib/python3.13/site-packages/jeepney/io/tests/utils.py": 10346859893683522113, + "venv/lib/python3.13/site-packages/numpy/lib/_ufunclike_impl.pyi": 9854069702366900663, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_tz_localize.py": 4937713043686953098, + "venv/lib/python3.13/site-packages/PIL/_imagingmorph.cpython-313-x86_64-linux-gnu.so": 11171810899664471137, + "frontend/src/services/git-utils.js": 12982149055119314642, + "venv/lib/python3.13/site-packages/keyring/backends/chainer.py": 12526770797516553385, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/__init__.py": 15130871412783076140, + "backend/src/services/dataset_review/repositories/session_repository.py": 4058785536575367912, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/json_schema_test_suite.py": 6152158310190822762, + "venv/lib/python3.13/site-packages/jaraco/classes/meta.py": 15930255620248873425, + "venv/lib/python3.13/site-packages/numpy/lib/__init__.pyi": 1537495515469182226, + "venv/lib/python3.13/site-packages/httpcore/_models.py": 2501866419898326733, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_npfuncs.py": 8238385897366878558, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/_scimath_impl.pyi": 8879196542984811747, + "backend/src/plugins/translate/orchestrator_cancel.py": 673611364664367049, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_asof.py": 18383318159051131669, + "venv/lib/python3.13/site-packages/httpcore/_backends/auto.py": 10488908050307887802, + "venv/lib/python3.13/site-packages/httpcore/__init__.py": 5897259569277532401, + "venv/lib/python3.13/site-packages/numpy/_core/_simd.cpython-313-x86_64-linux-gnu.so": 12609666221355091416, + "backend/src/core/utils/async_network.py": 840981454868177222, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/licenses/LICENSE": 14316979437290727897, + "venv/lib/python3.13/site-packages/requests/api.py": 12339139862411341381, + "backend/src/core/superset_client/_datasets.py": 9811357803863887067, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/token.py": 11655733747403312358, + "venv/lib/python3.13/site-packages/_pytest/config/argparsing.py": 11156052029258891503, + "venv/bin/pyrsa-encrypt": 5858278204727417482, + "venv/lib/python3.13/site-packages/pytest/__main__.py": 8747175113746141224, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_parameter.py": 15173522343126004527, + "frontend/src/lib/stores/activity.js": 14023344642294459631, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/filewrapper.py": 17786759398959482432, + "venv/lib/python3.13/site-packages/pygments/lexers/tnt.py": 4657130609241407766, + "venv/lib/python3.13/site-packages/pygments/lexers/compiled.py": 8215290039991205531, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/context.py": 1041624619197012753, + "venv/lib/python3.13/site-packages/rsa/pkcs1.py": 2576732594642491910, + "venv/lib/python3.13/site-packages/requests/__version__.py": 6677532709758546816, + "venv/lib/python3.13/site-packages/jeepney/io/__init__.py": 2568357146184259175, + "venv/lib/python3.13/site-packages/numpy/_core/arrayprint.pyi": 84606125837677197, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_np_datetime.py": 18363183516409621205, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_index.py": 4908727359687606870, + "venv/lib/python3.13/site-packages/pygments/style.py": 17393199235575070210, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/__init__.py": 11709551233929312136, + "venv/lib/python3.13/site-packages/numpy/lib/_datasource.py": 18136853038949826147, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_data_list.py": 1131520422778420758, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/flatiter.pyi": 9598576095384661517, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/containers.py": 5969831151685016772, + "backend/src/core/utils/network.py": 8313622593956890768, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/types.py": 356973910046950951, + "venv/lib/python3.13/site-packages/starlette/status.py": 16192064443996706569, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/cx_oracle.py": 10093932131797570986, + "backend/src/api/routes/migration.py": 6030566471113208264, + "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/WHEEL": 7454950858448014158, + "venv/lib/python3.13/site-packages/numpy/core/_internal.py": 14816989375912210674, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/markup.py": 5413800947725916538, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/async_openid.py": 8708980645667847439, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/licenses/COPYING": 15270149301471737292, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_symbol.py": 10792387279408528886, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_function_base.pyi": 10972502518588022706, + "venv/lib/python3.13/site-packages/numpy/_core/defchararray.pyi": 2277933368373498515, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/LICENSE": 12064892310002036996, + "venv/lib/python3.13/site-packages/pygments/lexers/arturo.py": 4565524340706235725, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/__init__.py": 15130871412783076140, + "backend/src/scripts/init_auth_db.py": 1846761799125222512, + "venv/lib/python3.13/site-packages/pygments/lexers/amdgpu.py": 17249439604111838979, + "venv/lib/python3.13/site-packages/passlib/tests/test_context.py": 15195609282700801214, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rank.py": 5817408252050193538, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_api.py": 7131036004750554905, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_drop.py": 11341278355685583133, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/errors.py": 12777931960088171310, + "frontend/src/lib/api/translate/dictionaries.js": 13928848549982189213, + "venv/lib/python3.13/site-packages/passlib/handlers/misc.py": 18255658377109333797, + "venv/lib/python3.13/site-packages/starlette/middleware/trustedhost.py": 8302185291610019926, + "venv/lib/python3.13/site-packages/pandas/core/interchange/dataframe.py": 16525846817331842080, + "frontend/src/lib/components/reports/reportTypeProfiles.js": 10752964062056890725, + "venv/lib/python3.13/site-packages/packaging/_structures.py": 13086687542872305890, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_index_new.py": 796607958391882182, + "venv/lib/python3.13/site-packages/pyasn1/codec/native/encoder.py": 120921270972591880, + "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/fallback.py": 4260636031748548345, + "venv/lib/python3.13/site-packages/urllib3/util/response.py": 6106698559175827207, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_nth.py": 17151595277666975085, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_non_unique.py": 15286893322149413712, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_conversion.pyi": 11580106670226366710, + "venv/lib/python3.13/site-packages/pandas/io/html.py": 2727247063231114153, + "venv/lib/python3.13/site-packages/apscheduler/triggers/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarmath.py": 9762951701352556447, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/RECORD": 9461427699726982537, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_dt_accessor.py": 2229616362327032253, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/certs.py": 13366788049827102313, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_wrap.py": 17083394123203662880, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_envs.py": 5657151394155576509, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/kind/foo.f90": 1367964042730902899, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reindex_like.py": 1407890639206728014, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_label_or_level_utils.py": 3423644585913150841, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/__init__.py": 2833016678144975576, + "venv/lib/python3.13/site-packages/pydantic/_internal/_generate_schema.py": 7343380095251236503, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_openpyxl.py": 9542840527483618681, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_reductions.py": 17810094294132819208, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/code.py": 9700811903057180696, + "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/__init__.py": 3521833849634327520, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_interpolate.py": 7354685880215444946, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/METADATA": 3448868793744358515, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby_dropna.py": 3620959914439334511, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/horizontal_shard.py": 17615732108308858890, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi": 14119032813912827271, + "backend/src/api/routes/assistant/_llm_planner_intent.py": 16189718762013093878, + "backend/src/plugins/translate/__tests__/test_dictionary.py": 4341966549214032934, + "backend/src/plugins/translate/scheduler.py": 13413202759986193820, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/RECORD": 16874983218652404911, + "backend/src/plugins/translate/_run_source.py": 11569137727611732019, + "venv/lib/python3.13/site-packages/pygments/lexers/parasail.py": 7758704230750989282, + "venv/lib/python3.13/site-packages/numpy/lib/mixins.pyi": 15597536290223628777, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/char.pyi": 13143560686049627445, + "venv/lib/python3.13/site-packages/gitdb/const.py": 14122142034887286559, + "venv/lib/python3.13/site-packages/pyasn1/type/namedtype.py": 1859990775875190116, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/signature.py": 3614545297259098566, + "venv/lib/python3.13/site-packages/more_itertools/__init__.pyi": 16479506520351014608, + "venv/lib/python3.13/site-packages/pip/_internal/index/package_finder.py": 12631116673181479779, + "venv/lib/python3.13/site-packages/cryptography/x509/__init__.py": 4066756344049307453, + "venv/lib/python3.13/site-packages/pandas/_libs/hashing.cpython-313-x86_64-linux-gnu.so": 16124435225170610034, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/LICENSE": 11167201188673981085, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_formats.py": 2601044064677727807, + "venv/bin/normalizer": 10972303485259566838, + "backend/src/services/__tests__/test_llm_provider.py": 13082073379648782691, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_einsum.py": 17286384318722237180, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_join.py": 2585969863606902743, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/dictionary.py": 9599439750713575741, + "frontend/e2e/fixtures/auth.fixture.js": 13628564118439575126, + "frontend/src/components/git/GitMergeDialog.svelte": 17029360862035548928, + "venv/lib/python3.13/site-packages/pandas/tests/test_errors.py": 10116716310156374885, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/nonce.py": 18219168479887197733, + "venv/lib/python3.13/site-packages/pip/_internal/models/format_control.py": 12916176880659590456, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py": 18229054440703471493, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/licenses/LICENSE": 3868190977070717994, + "venv/lib/python3.13/site-packages/cryptography/x509/base.py": 9124948989225782039, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/numpy/f2py/capi_maps.pyi": 10638891136586198429, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_errstate.py": 10788459171326750780, + "venv/lib/python3.13/site-packages/pandas/core/accessor.py": 1188716996113179524, + "venv/lib/python3.13/site-packages/rapidfuzz/utils_cpp.cpython-313-x86_64-linux-gnu.so": 16145829319198889672, + "venv/lib/python3.13/site-packages/numpy/strings/__init__.py": 6523674574341354095, + "venv/lib/python3.13/site-packages/pandas/io/formats/printing.py": 3054136648863371285, + "backend/src/services/reports/__init__.py": 11818812865847046400, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/__init__.py": 8632038387100622009, + "venv/lib/python3.13/site-packages/pandas/conftest.py": 747626550806435763, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/conftest.py": 25473177671450048, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_csv.py": 10737444103906389448, + "frontend/src/lib/components/dataset-review/CompiledSQLPreview.svelte": 4866254539173481462, + "venv/lib/python3.13/site-packages/itsdangerous/_json.py": 4872267972688724005, + "backend/src/models/filter_state.py": 6470311179852241297, + "venv/lib/python3.13/site-packages/passlib/tests/sample1b.cfg": 2872366861156549016, + "venv/lib/python3.13/site-packages/rapidfuzz/utils.py": 5682627611354455144, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/assertion_client.py": 4261295109880943573, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_produces_warning.py": 750781117570375777, + "frontend/src/lib/components/reports/__tests__/fixtures/reports.fixtures.js": 10647302793388244094, + "backend/src/core/middleware/trace.py": 13093835356377196397, + "venv/lib/python3.13/site-packages/pandas/io/api.py": 8275376846208437741, + "venv/lib/python3.13/site-packages/numpy/random/_pcg64.cpython-313-x86_64-linux-gnu.so": 5759445712745875888, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/METADATA": 1684451390569121499, + "frontend/src/components/git/useGitManager.js": 5317184945628692154, + "venv/lib/python3.13/site-packages/numpy/_configtool.pyi": 9670892208858157218, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/types.py": 1343652083039949282, + "venv/lib/python3.13/site-packages/pip/_internal/utils/_jaraco_text.py": 9046755357011730699, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_complex/foo77.f": 7353666717928699883, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/totp.py": 11888568940387752607, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_federal.py": 16758212916399857971, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarprint.py": 9482100952562512933, + "venv/lib/python3.13/site-packages/passlib/crypto/des.py": 14699826058580193499, + "venv/lib/python3.13/site-packages/attr/_cmp.py": 3297594878548179300, + "venv/lib/python3.13/site-packages/typing_inspection/typing_objects.pyi": 18193727720492050602, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_tzconversion.py": 7205566353454584259, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_timezones.py": 1962830142478494009, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_at.py": 1029744344133153888, + "venv/lib/python3.13/site-packages/pydantic/__init__.py": 11536052293866174672, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/assertion.py": 5287436128235488464, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix_py.py": 17041764258638228993, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-tanh.csv": 6674536825156196036, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cython.py": 14695721638531081573, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_indexing.py": 14552860427542050771, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/fetch.py": 13937019222549208796, + "venv/lib/python3.13/site-packages/ecdsa/der.py": 9374566189581725372, + "venv/lib/python3.13/site-packages/smmap/test/lib.py": 2924931247676024085, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_reduction.py": 2671872764983553906, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/mapper.py": 16715864918034312591, + "venv/lib/python3.13/site-packages/pandas/core/internals/construction.py": 893951849732478990, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arccos.csv": 3026156288992132911, + "venv/lib/python3.13/site-packages/numpy/_core/_umath_tests.pyi": 4587511199710546030, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/dtypes.py": 9839461501970023861, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_getitem.py": 11882213323878588707, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/requirements.py": 2362917888844255805, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/resource_protector.py": 14354891358060085360, + "venv/lib/python3.13/site-packages/pygments/lexers/basic.py": 12723021007042054402, + "venv/lib/python3.13/site-packages/pygments/lexers/math.py": 1647133236144311250, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7592/__init__.py": 1398617034174236358, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/METADATA": 3618776395694990076, + "venv/lib/python3.13/site-packages/pip/_internal/utils/entrypoints.py": 11268059714209889385, + "venv/lib/python3.13/site-packages/charset_normalizer/constant.py": 3070316197495651997, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286.f90": 1249061697041863692, + "venv/lib/python3.13/site-packages/pandas/core/groupby/base.py": 16888506204910366302, + "venv/lib/python3.13/site-packages/referencing/tests/test_jsonschema.py": 9815500901482570619, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/__init__.py": 11283047029180207588, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_assumed_shape.py": 18361009188431483164, + "venv/lib/python3.13/site-packages/pygments/lexers/kuin.py": 2818054539831699366, + "venv/lib/python3.13/site-packages/anyio/_backends/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/jmespath.py": 7426464251945393925, + "venv/lib/python3.13/site-packages/_pytest/config/exceptions.py": 3199245296954654462, + "venv/lib/python3.13/site-packages/h11/__init__.py": 222801976520197308, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize_cpp.cpython-313-x86_64-linux-gnu.so": 7490281502544276964, + "venv/lib/python3.13/site-packages/numpy/core/overrides.pyi": 1968648615494204783, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_period_range.py": 9598872514187524706, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_convert_dtypes.py": 13612212066710266457, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/requests.py": 14847842002253212098, + "venv/lib/python3.13/site-packages/charset_normalizer/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/compat/numpy/function.py": 18405870240333383757, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libpcre-9513aab5.so.1.2.0": 12298861477332583668, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_read.py": 8825002468745406134, + "venv/lib/python3.13/site-packages/annotated_doc/main.py": 3384049281532298500, + "venv/lib/python3.13/site-packages/pandas/core/arrays/integer.py": 7775055011080964709, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_interval_pyarrow.py": 3849382723890414899, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/core/frame.py": 2630807744775247533, + "venv/lib/python3.13/site-packages/pygments/lexers/esoteric.py": 16839499623020685146, + "venv/lib/python3.13/site-packages/numpy/linalg/__init__.pyi": 18409133021422984774, + "examples/maintenance-api-python.py": 18279360934407602079, + "venv/lib/python3.13/site-packages/jsonschema/tests/typing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/greenlet/TThreadStateCreator.hpp": 9887867766190459665, + "frontend/eslint.config.js": 14296985543214702398, + "backend/src/api/routes/dashboards/_listing_routes.py": 1750634467656242702, + "backend/src/services/__tests__/test_llm_prompt_templates.py": 17912427710321938757, + "backend/src/services/clean_release/audit_service.py": 3614108458934359126, + "venv/lib/python3.13/site-packages/anyio/abc/_sockets.py": 15042495744291042062, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/WHEEL": 16097436423493754389, + "backend/tests/scripts/test_clean_release_cli.py": 13978106497618764226, + "venv/lib/python3.13/site-packages/jsonschema/_format.py": 8987698648383779883, + "venv/lib/python3.13/site-packages/fastapi/_compat/shared.py": 5249003014594464718, + "frontend/src/routes/dashboards/[id]/components/DashboardLinkedResources.svelte": 8279080994517688482, + "backend/tests/test_api_key_model.py": 18059967072469014911, + "venv/lib/python3.13/site-packages/pygments/lexers/installers.py": 5083244110640899732, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/gitdb/db/ref.py": 1176701624460337371, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_slp_switch.py": 16490710972475154509, + "venv/bin/Activate.ps1": 1196103427939049710, + "backend/src/services/clean_release/stages/data_purity.py": 10459527906317168920, + "venv/lib/python3.13/site-packages/sqlalchemy/log.py": 10101221585967121334, + "backend/src/api/routes/__tests__/test_migration_routes.py": 2319142184353163171, + "backend/alembic/versions/aa1b2c3d4e5f_drop_deprecated_translate_columns.py": 15433357059529111004, + "venv/lib/python3.13/site-packages/pygments/lexers/fantom.py": 1986459352773446836, + "venv/lib/python3.13/site-packages/numpy/core/__init__.py": 10397294636564169377, + "venv/lib/python3.13/site-packages/pandas/_testing/compat.py": 10172779814048259850, + "frontend/src/routes/datasets/__tests__/StatsBar.test.js": 14838932138074212145, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/base.py": 17992335652981439676, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/base.py": 6348888156686452825, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/errors.py": 14634768861119075506, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/histograms.pyi": 2281259341486424755, + "venv/lib/python3.13/site-packages/numpy/conftest.py": 8971879716683736515, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/WHEEL": 2823347510103459191, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libgssapi_krb5-497db0c6.so.2.2": 6199424505696679197, + "venv/lib/python3.13/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17": 7615380692384566654, + "venv/lib/python3.13/site-packages/pygments/lexers/_openedge_builtins.py": 4979988747924637739, + "venv/lib/python3.13/site-packages/pygments/lexers/comal.py": 769727871242464458, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/METADATA": 4975169119201255384, + "venv/lib/python3.13/site-packages/fastapi/_compat/v1.py": 9776181748061371513, + "frontend/src/routes/profile/+page.svelte": 17979719303737794427, + "venv/lib/python3.13/site-packages/numpy/lib/_polynomial_impl.pyi": 2042169688753984918, + "backend/src/app.py": 9380595892248657452, + "backend/src/services/git/_status.py": 11400014053359523156, + "venv/lib/python3.13/site-packages/pandas/core/arrays/_ranges.py": 2572903460327860111, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_conversion.py": 12184280074522274780, + "venv/lib/python3.13/site-packages/pydantic/v1/types.py": 10761779263335288559, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_datetime.py": 7862725028865965163, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/test_as_unit.py": 4283520188709399244, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_isin.py": 11330491145602008796, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_function_base.py": 16624804022675533740, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_drop.py": 17940792593116540139, + "venv/lib/python3.13/site-packages/numpy/lib/_version.pyi": 10804755840730584157, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/provision.py": 9472538482404392519, + "venv/lib/python3.13/site-packages/pygments/lexers/_asy_builtins.py": 1665617945818958781, + "venv/lib/python3.13/site-packages/pandas/_libs/window/aggregations.cpython-313-x86_64-linux-gnu.so": 16327106317503267067, + "venv/lib/python3.13/site-packages/pip/_internal/pyproject.py": 6155748929233245415, + "venv/lib/python3.13/site-packages/urllib3/util/proxy.py": 17667887856427739069, + "backend/src/api/routes/dataset_review_pkg/_dependencies.py": 15939232213193276681, + "frontend/src/lib/components/DashboardMaintenanceBadge.svelte": 9085495636438661604, + "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_xml_dtypes.py": 18293138335799308439, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/session.py": 15060063324909302240, + "venv/lib/python3.13/site-packages/yaml/serializer.py": 1783761365703703558, + "venv/lib/python3.13/site-packages/passlib/handlers/sun_md5_crypt.py": 1949993216707182407, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/contains.py": 3098087827310439993, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_loongarch64_linux.h": 6566098590441297326, + "venv/lib/python3.13/site-packages/pandas/_libs/tslib.cpython-313-x86_64-linux-gnu.so": 10742615805788605480, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api2.pyx": 15936470837420356071, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/asyncio.py": 2517623574187179319, + "venv/lib/python3.13/site-packages/numpy/core/fromnumeric.py": 2136433423902202138, + "venv/lib/python3.13/site-packages/pandas/tests/extension/list/array.py": 8065856342131357421, + "venv/lib/python3.13/site-packages/pygments/lexers/tls.py": 3552078393009383412, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/RECORD": 11604408378998955169, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_subclass.py": 16342917051908786497, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_string.py": 9224234539232195189, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/__init__.py": 5895297076117159245, + "venv/lib/python3.13/site-packages/pandas/tseries/api.py": 14785127136180503704, + "venv/lib/python3.13/site-packages/numpy/f2py/f2py2e.py": 738588649412338185, + "venv/lib/python3.13/site-packages/pandas/tests/frame/common.py": 7426635866622531875, + "venv/lib/python3.13/site-packages/jsonschema/protocols.py": 847332300543820834, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/wsproto_impl.py": 3072714633272661847, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/licenses/LICENSE": 16147999986886816451, + "venv/lib/python3.13/site-packages/packaging/utils.py": 3469957615920103670, + "backend/src/api/routes/git/_repo_operations_routes.py": 5819532622410034169, + "venv/lib/python3.13/site-packages/pygments/lexers/ecl.py": 12886695201994337568, + "backend/src/models/assistant.py": 15004657265198809796, + "venv/lib/python3.13/site-packages/jsonschema/_keywords.py": 949562792260528762, + "venv/lib/python3.13/site-packages/numpy/_core/strings.py": 3623885046208831106, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_ratio.py": 940213488194452623, + "venv/lib/python3.13/site-packages/numpy/_core/einsumfunc.pyi": 4729765666018003634, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_parse_dates.py": 5344929031479212951, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_odswriter.py": 5134385709728943904, + "frontend/src/components/DashboardGrid.svelte": 17669234585849525689, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py": 8530403239168529668, + "venv/lib/python3.13/site-packages/pydantic/_internal/_generics.py": 16438159042939059717, + "venv/lib/python3.13/site-packages/websockets/speedups.c": 11800200877763464246, + "venv/lib/python3.13/site-packages/numpy/tests/test_numpy_version.py": 849232015288488204, + "venv/lib/python3.13/site-packages/pandas/tests/window/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oidc/discovery/well_known.py": 8259335680633926377, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/__init__.py": 8807410829260170597, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reindex.py": 8772423071604000084, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py": 16550134594771291234, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_integer/foo90.f90": 3492659529812762861, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64dxsm-testset-1.csv": 9129730764673472086, + "venv/lib/python3.13/site-packages/passlib/handlers/postgres.py": 14162382430051693313, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/modules.pyi": 131293606732000587, + "frontend/src/components/__tests__/task_log_viewer.test.js": 6512653335179659416, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/__init__.py": 15735839022111230173, + "venv/lib/python3.13/site-packages/cffi/lock.py": 13507686939203117974, + "venv/lib/python3.13/site-packages/pandas/core/arrays/period.py": 11560984428402318984, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_series.pyi": 7112486730197067087, + "frontend/src/lib/components/translate/BulkCorrectionSidebar.svelte": 10114621552038076221, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_put.py": 8547660958963625817, + "backend/src/core/utils/fileio.py": 8925306729946909050, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_engines.py": 2790877023773269276, + "frontend/src/routes/translate/[id]/+page.svelte": 1911443262444004956, + "frontend/build/_app/immutable/nodes/20.BboyjuGl.js": 11318425268071802665, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_invalid.py": 2762344062554575805, + "frontend/playwright-report/trace/index.BCnMPevh.js": 8625484717968740943, + "venv/lib/python3.13/site-packages/smmap/test/test_tutorial.py": 16309370344201290582, + "backend/src/api/routes/dashboards/_projection.py": 1559143255780155174, + "venv/lib/python3.13/site-packages/jeepney/__init__.py": 1063800617763464773, + "venv/lib/python3.13/site-packages/passlib/handlers/sha1_crypt.py": 5752556581809938954, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_duplicated.py": 14676058112867601208, + "backend/src/services/clean_release/repositories/__init__.py": 9926779835387630811, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/__init__.py": 16123561007855424016, + "venv/lib/python3.13/site-packages/pygments/filters/__init__.py": 2992007913496948339, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo_free.f90": 8821492401453445757, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/jws.py": 7505219131537941130, + "venv/lib/python3.13/site-packages/numpy/lib/__init__.py": 12211229657513986410, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_csv.py": 6678500392137188521, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/WHEEL": 16097436423493754389, + "frontend/build/_app/immutable/chunks/Dul6iTE7.js": 10339509389374345579, + "venv/lib/python3.13/site-packages/pandas/_libs/sparse.cpython-313-x86_64-linux-gnu.so": 2051484129454294720, + "venv/lib/python3.13/site-packages/dotenv/parser.py": 17651523026132242005, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/RECORD": 7363618870628306370, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/RECORD": 11976403473353722969, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_arrayobject.py": 9578555381494297966, + "venv/lib/python3.13/site-packages/numpy/f2py/func2subr.py": 338595621218646492, + "venv/lib/python3.13/site-packages/passlib/tests/test_utils.py": 10362977406431569031, + "venv/lib/python3.13/site-packages/pygments/lexers/json5.py": 9736695186548899403, + "venv/lib/python3.13/site-packages/numpy/lib/scimath.py": 7616377937400918724, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_comparison.py": 4611207880323503098, + "venv/lib/python3.13/site-packages/pygments/lexers/_lua_builtins.py": 12653747099659257203, + "frontend/build/favicon.svg": 6451919037497541980, + "venv/lib/python3.13/site-packages/pydantic/type_adapter.py": 10162988530225478692, + "venv/lib/python3.13/site-packages/pyasn1/type/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-sin.csv": 1443087417808027268, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_duplicates.py": 9830936017197354309, + "venv/lib/python3.13/site-packages/pandas/core/ops/array_ops.py": 10061020479033421596, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_equivalence.py": 17843623343419137458, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatters/__init__.py": 3247870839323520754, + "docker/frontend.entrypoint.sh": 11397342350356400663, + "venv/lib/python3.13/site-packages/pip/_internal/commands/wheel.py": 16397273591245583356, + "venv/lib/python3.13/site-packages/passlib/handlers/windows.py": 8969739861295277439, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_shift.py": 14681514853406253657, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_jsonschema_test_suite.py": 12733761462141495972, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_numpy.py": 4073641912755651877, + "venv/lib/python3.13/site-packages/numpy/_distributor_init.pyi": 1308368231471324581, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_setops.py": 5208912445718807372, + "venv/lib/python3.13/site-packages/ecdsa/errors.py": 11755424742691057760, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/token_endpoint.py": 6118770923176099889, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/RECORD": 7844752443022514265, + "venv/lib/python3.13/site-packages/cryptography/hazmat/asn1/__init__.py": 4290669519959060720, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/emath.pyi": 3718540478840842664, + "venv/lib/python3.13/site-packages/starlette/authentication.py": 10905269573809129547, + "venv/lib/python3.13/site-packages/numpy/lib/_twodim_base_impl.pyi": 15509415708991012734, + "venv/lib/python3.13/site-packages/pandas/core/col.py": 4221271461723119525, + "venv/lib/python3.13/site-packages/attr/exceptions.py": 11532465891810816417, + "venv/lib/python3.13/site-packages/pandas/io/formats/string.py": 14718123345899686696, + "venv/lib/python3.13/site-packages/pandas/io/excel/_base.py": 1251545894005373734, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/live.py": 8586058300967410643, + "venv/lib/python3.13/site-packages/httpcore/_api.py": 16499985295426060327, + "venv/lib/python3.13/site-packages/_pytest/monkeypatch.py": 2635774457434545573, + "venv/lib/python3.13/site-packages/pydantic/experimental/arguments_schema.py": 8644805798814234457, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_cli.py": 3173259257428855556, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_function.py": 644452398244782315, + "venv/lib/python3.13/site-packages/PIL/JpegPresets.py": 12342262642420923471, + "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/METADATA": 11439969143853665311, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cffi/extending.py": 9859383893070793914, + "venv/lib/python3.13/site-packages/pygments/lexers/_tsql_builtins.py": 829193091321611630, + "venv/lib/python3.13/site-packages/pygments/lexers/yang.py": 7409365668425173823, + "venv/lib/python3.13/site-packages/pyasn1/compat/__init__.py": 5902203086150636670, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_cat_accessor.py": 4304062895283374927, + "venv/lib/python3.13/site-packages/psycopg2/sql.py": 18041240927130590808, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_tz_localize.py": 18409231586451494605, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_concat.py": 3788461606817482165, + "frontend/src/lib/ui/index.ts": 6883965364006817450, + "frontend/src/lib/ui/LanguageSwitcher.svelte": 3899734183369041614, + "venv/lib/python3.13/site-packages/_pytest/__init__.py": 3769333500910148571, + "venv/lib/python3.13/site-packages/pygments/lexers/_scilab_builtins.py": 17453812809700086888, + "backend/src/api/routes/datasets.py": 5124620784591228136, + "venv/lib/python3.13/site-packages/_pytest/pytester.py": 5423287282155948827, + "backend/src/api/routes/__tests__/test_reports_detail_api.py": 7284151749869192310, + "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_astype.py": 8505605634958454768, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_npy_units.py": 8966226962799105383, + "venv/lib/python3.13/site-packages/pandas/tests/tools/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/cli.py": 6382193953727339271, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/__init__.py": 260774374497653876, + "venv/lib/python3.13/site-packages/pygments/styles/_mapping.py": 11752660241391232497, + "venv/lib/python3.13/site-packages/pydantic/functional_serializers.py": 15285359935059345032, + "venv/lib/python3.13/site-packages/pandas/tests/libs/test_lib.py": 6721066015604956469, + "venv/lib/python3.13/site-packages/pydantic/error_wrappers.py": 11273827025986230629, + "frontend/playwright-report/trace/assets/defaultSettingsView-D31xz8zv.js": 1301407320635785789, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/aioodbc.py": 12704729841432715246, + "frontend/build/_app/immutable/nodes/39.x6Tr2rq6.js": 8373901766277015937, + "venv/lib/python3.13/site-packages/numpy/fft/__init__.py": 9343449448737026658, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/checks.pyx": 13187505236986855177, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_backend.py": 1472021608501071055, + "venv/lib/python3.13/site-packages/sqlalchemy/event/legacy.py": 13465911776953636949, + "venv/lib/python3.13/site-packages/_pytest/main.py": 931018496411984909, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_interval.py": 14749388246573356959, + "venv/lib/python3.13/site-packages/uvicorn/py.typed": 15240312484046875203, + "venv/lib/python3.13/site-packages/apscheduler/executors/tornado.py": 6635576580306890718, + "backend/src/api/routes/git/_environment_routes.py": 1034235394475003092, + "venv/lib/python3.13/site-packages/PIL/ImageStat.py": 18442709639217312689, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_hashing.py": 11119284926039008503, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_dtypes.py": 13065857166166716628, + "venv/lib/python3.13/site-packages/dateutil/tz/tz.py": 5258008267965780817, + "backend/src/plugins/translate/__tests__/test_dictionary_crud.py": 17953628511626558088, + "venv/lib/python3.13/site-packages/numpy/_core/umath.py": 6132761780113682667, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_interval_array_equal.py": 15654625365223535344, + "venv/lib/python3.13/site-packages/_pytest/python.py": 1829073958095716309, + "backend/src/api/routes/__tests__/test_datasets.py": 5180776326745169791, + "backend/tests/test_api_key_auth.py": 15854247672009604904, + "run.sh": 4808871544409245302, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/utils.py": 8633356372647820801, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_tolist.py": 8343058000369672317, + "venv/lib/python3.13/site-packages/rapidfuzz/process.py": 3870006735299537016, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/shape_base.pyi": 10291383658131961346, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/introspection.py": 5447179017910128771, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/RECORD": 14375680579341422646, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_any_index.py": 10800968419286329268, + "venv/lib/python3.13/site-packages/pip/_internal/commands/download.py": 7533669665002975823, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_timedelta.py": 7742506012012398830, + "venv/lib/python3.13/site-packages/PIL/_imaging.pyi": 17119084207765761921, + "venv/lib/python3.13/site-packages/attr/_version_info.py": 3850449653182103457, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_cov_corr.py": 8117511855230249212, + "venv/lib/python3.13/site-packages/pygments/lexers/webidl.py": 8097260111959278117, + "backend/src/models/report.py": 9185954411073383239, + "venv/lib/python3.13/site-packages/pandas/tests/internals/test_internals.py": 2049484047553296860, + "venv/lib/python3.13/site-packages/dateutil/relativedelta.py": 5903095963079475484, + "venv/lib/python3.13/site-packages/jeepney/io/blocking.py": 4699555965372200059, + "venv/lib/python3.13/site-packages/numpy/lib/user_array.py": 14003456655595459585, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/concat.py": 14737724508458849795, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/test_numpy.py": 9825804096508014886, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_function.py": 13492077564015386528, + "venv/lib/python3.13/site-packages/pygments/styles/gruvbox.py": 9489017112545247388, + "venv/lib/python3.13/site-packages/pygments/lexers/varnish.py": 3608370156692616959, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/diagnose.py": 17275977405061138181, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/rule.py": 5318344538761246105, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_endian.h": 2761502363895204652, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_win_type.py": 18105114803686556748, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_fsspec.py": 6936167344144998172, + "venv/lib/python3.13/site-packages/greenlet/TPythonState.cpp": 12828594265749606443, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/sphinxext.py": 2403717774564798878, + "venv/lib/python3.13/site-packages/_pytest/mark/__init__.py": 9343015549300275714, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/LICENSE": 16174281248426886206, + "venv/lib/python3.13/site-packages/jsonschema/__main__.py": 18136546137047911521, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/use_modules.f90": 3913612933340746297, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_analytics.py": 4510712334676848202, + "venv/lib/python3.13/site-packages/passlib/handlers/argon2.py": 835074952952017434, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/sophia.py": 15971500155124949058, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_multiarray.py": 3592197154340095431, + "venv/lib/python3.13/site-packages/pyasn1/codec/ber/decoder.py": 12653470212935324322, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64dxsm-testset-2.csv": 16611724551361692999, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/meson.build.template": 9935732744553086652, + "venv/lib/python3.13/site-packages/pandas/io/formats/_color_data.py": 15614976586613738953, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/style.py": 10665998898253460114, + "venv/lib/python3.13/site-packages/git/index/base.py": 641556304637379636, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_copy_deprecation.py": 16045426957636349035, + "venv/lib/python3.13/site-packages/pygments/lexers/qlik.py": 3881663935630350152, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90": 6219951399575860362, + "frontend/e2e/fixtures/global-setup.js": 16032945890934324203, + "backend/src/core/__tests__/test_config_manager_compat.py": 656412918792001580, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286_bc.pyf": 10893958728966010450, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/RECORD": 3617343778671172258, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/nattype.pyi": 1830368009811266890, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_aix.h": 13316272821279308986, + "venv/lib/python3.13/site-packages/pandas/core/arraylike.py": 11439602957100017713, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_args.py": 5821040955806257450, + "venv/lib/python3.13/site-packages/click/shell_completion.py": 5858110451169927373, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/conftest.py": 13388202260795998613, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata_editable.py": 12494407279914732338, + "venv/lib/python3.13/site-packages/numpy/testing/print_coercion_tables.pyi": 3814281717779245045, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string_arrow.py": 10008395772220468318, + "venv/lib/python3.13/site-packages/httpcore/_sync/http2.py": 11167798787131917524, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_str.py": 149688376805129532, + "venv/lib/python3.13/site-packages/pygments/lexers/savi.py": 95400050302239274, + "venv/lib/python3.13/site-packages/PIL/_imagingtk.cpython-313-x86_64-linux-gnu.so": 1708198947135304326, + "venv/lib/python3.13/site-packages/packaging/_musllinux.py": 2568338440457080365, + "venv/lib/python3.13/site-packages/urllib3/util/request.py": 9432067988603015849, + "frontend/build/_app/immutable/chunks/0hvOu5jK.js": 10335091194896019556, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/fields.py": 10090313990429695520, + "venv/lib/python3.13/site-packages/pip/_internal/network/__init__.py": 1586148254475575526, + "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py": 63497920264089252, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/ssh.py": 16262079536832961001, + "backend/src/scripts/clean_release_tui.py": 11100359353752859553, + "venv/lib/python3.13/site-packages/pip/_internal/network/utils.py": 13421242949994555055, + "backend/alembic_test.db": 14995253579408279707, + "frontend/src/lib/components/translate/__tests__/test_bulk_replace_modal.svelte.js": 6802604718120565742, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/async_app.py": 4329794049222609894, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_dependency_group.py": 10505346210114745037, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/__init__.py": 8093984834068317399, + "venv/lib/python3.13/site-packages/authlib/deprecate.py": 3563885283090710443, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py": 2516476609539242190, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/foo.f": 6349567809926050379, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_apply.py": 11248068903302454630, + "venv/lib/python3.13/site-packages/urllib3/__init__.py": 1854778274753799815, + "venv/lib/python3.13/site-packages/pygments/styles/bw.py": 869630132791421268, + "venv/lib/python3.13/site-packages/numpy/rec/__init__.py": 7467092880535460658, + "frontend/playwright-report/trace/playwright-logo.svg": 4728037962520658573, + "backend/src/core/__init__.py": 8673978627093182792, + "backend/src/api/routes/maintenance/_router.py": 1368406181799456173, + "backend/src/models/llm.py": 9128215579699548047, + "venv/lib/python3.13/site-packages/greenlet/TGreenlet.hpp": 6993553444981671786, + "backend/src/services/clean_release/source_isolation.py": 18208654007489616188, + "backend/src/plugins/translate/preview_prompt_builder.py": 2354938052590494405, + "venv/lib/python3.13/site-packages/numpy/random/_generator.cpython-313-x86_64-linux-gnu.so": 15625019745021657670, + "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft.pyi": 1521384724035973688, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_install.py": 7181005402818830655, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/base.py": 13454394827268856575, + "venv/lib/python3.13/site-packages/pygments/lexers/other.py": 6893672181003034910, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufunc_config.py": 14728417910466146460, + "venv/lib/python3.13/site-packages/greenlet/tests/test_cpp.py": 10982107081267457286, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/abstract_interface/foo.f90": 14491312943942432024, + "venv/lib/python3.13/site-packages/jeepney/low_level.py": 6546206679858571608, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_core_functionalities.py": 10449747865888948579, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/traversals.py": 1188980668212022868, + "backend/git_repos/remote/test-repo.git/hooks/prepare-commit-msg.sample": 7530253302780245896, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api1.c": 8494977275215578998, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/WHEEL": 13347410390513723930, + "venv/lib/python3.13/site-packages/numpy/_core/cversions.py": 9724467539503410469, + "venv/lib/python3.13/site-packages/websockets/connection.py": 5168795926684067030, + "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/__init__.py": 17630019785411546070, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py": 8079219938116542284, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarrayobject.h": 7320510589635636690, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_subclass.py": 11096337912872573314, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/__init__.py": 9884041726796476720, + "venv/lib/python3.13/site-packages/git/diff.py": 6691274015605451565, + "venv/lib/python3.13/site-packages/bcrypt/__about__.py": 11196369962175692786, + "venv/lib/python3.13/site-packages/git/index/__init__.py": 7874728461616959441, + "venv/lib/python3.13/site-packages/pygments/styles/igor.py": 2291640843781128270, + "venv/lib/python3.13/site-packages/pygments/lexers/css.py": 517586374264113606, + "venv/lib/python3.13/site-packages/pip/_internal/cache.py": 210214424535803946, + "venv/lib/python3.13/site-packages/pandas/io/clipboard/__init__.py": 3656451154829206939, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_matrix_linalg.py": 2858987911347541177, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers.py": 4940305787631493030, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/_typing.py": 17598638528781632158, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_misc.py": 16393451200513733144, + "backend/tests/scripts/test_clean_release_tui_v2.py": 16893299982170941753, + "venv/lib/python3.13/site-packages/pygments/lexers/webassembly.py": 17811970490091406867, + "venv/lib/python3.13/site-packages/starlette/testclient.py": 16088848330558215194, + "venv/lib/python3.13/site-packages/rapidfuzz/process_py.py": 17563673072076876125, + "backend/alembic/versions/a7b1c2d3e4f5_add_provider_id_to_validation_policies.py": 7446022200459040057, + "venv/lib/python3.13/site-packages/websockets/cli.py": 14049106025886056110, + "backend/src/plugins/translate/orchestrator_run_completion.py": 5945172469962331273, + "venv/lib/python3.13/site-packages/numpy/random/_examples/numba/extending.py": 16515485226251040454, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_series_equal.py": 1223890028205011021, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/__init__.py": 10920760520224795596, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi": 16042272072158438261, + "venv/lib/python3.13/site-packages/pip/_internal/commands/list.py": 13035925292530461722, + "venv/lib/python3.13/site-packages/jaraco/functools/__init__.py": 15334412919279565528, + "frontend/playwright-report/trace/xtermModule.DYP7pi_n.css": 9346562810570076139, + "venv/lib/python3.13/site-packages/pandas/tests/test_algos.py": 11860014896449369497, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatter.py": 16499277113779414101, + "venv/lib/python3.13/site-packages/pydantic/v1/config.py": 12050640083719340958, + "venv/lib/python3.13/site-packages/numpy/_utils/__init__.pyi": 13530522898409268883, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64-testset-2.csv": 5423145402839576695, + "venv/lib/python3.13/site-packages/PIL/FtexImagePlugin.py": 8196606399875185931, + "venv/lib/python3.13/site-packages/httpcore/_backends/trio.py": 8394426709857317737, + "frontend/e2e/run-e2e.sh": 8106714116467101372, + "venv/lib/python3.13/site-packages/pandas/_libs/index.pyi": 17679349633640606985, + "frontend/src/lib/ui/Input.svelte": 8632025378593263475, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_observance.py": 18178414966262524534, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_datetime_index.py": 15448494560143263150, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/sql.py": 13315906751371033170, + "venv/lib/python3.13/site-packages/PIL/ImageCms.py": 5610897002957128546, + "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft_umath.cpython-313-x86_64-linux-gnu.so": 16443444849116065961, + "frontend/src/routes/datasets/ColumnsTable.svelte": 1880884265008014080, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/style.py": 12654125988995362593, + "frontend/build/_app/immutable/nodes/9.C5HoT9pt.js": 3952586507302745635, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/poly1305.py": 10854598965202354516, + "venv/bin/pyrsa-verify": 6762739642629904442, + "venv/lib/python3.13/site-packages/sqlalchemy/future/engine.py": 4639404437703898767, + "venv/lib/python3.13/site-packages/numpy/f2py/cfuncs.py": 10803011906582324302, + "venv/lib/python3.13/site-packages/sqlalchemy/future/__init__.py": 17688444679736059779, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/reporter.py": 6510864297510700136, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_set_axis.py": 4097534573847151853, + "venv/lib/python3.13/site-packages/numpy/testing/_private/extbuild.py": 4984721349618127021, + "venv/lib/python3.13/site-packages/httpx/_main.py": 1812303705973265093, + "venv/lib/python3.13/site-packages/git/objects/submodule/base.py": 10140490301897269395, + "frontend/src/lib/components/translate/__tests__/test_correction_cell.svelte.js": 2314051239468628554, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_unicode.py": 1103608932321322989, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_mask.py": 9654897363729130542, + "backend/tests/test_storage_audit_fixes.py": 6119862973635892572, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_groupby.py": 2738671407653333726, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/__init__.py": 15130871412783076140, + "frontend/e2e/tests/enterprise-clean-setup.e2e.js": 11120112996353549578, + "venv/lib/python3.13/site-packages/attrs/exceptions.py": 2871247302586505373, + "venv/lib/python3.13/site-packages/passlib/win32.py": 5311393450489898748, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py": 353446217435156470, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/cffi/_embedding.h": 9441285871823018603, + "venv/lib/python3.13/site-packages/pygments/lexers/tablegen.py": 2917626373516779857, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/dtype_api.h": 17040779421165903019, + "venv/lib/python3.13/site-packages/greenlet/greenlet.cpp": 3281107194043468270, + "venv/lib/python3.13/site-packages/pluggy/_hooks.py": 6941854999025808196, + "venv/lib/python3.13/site-packages/numpy/_core/umath.pyi": 11775804030935134661, + "venv/lib/python3.13/site-packages/pandas/tests/apply/conftest.py": 13798335354961261346, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arraymethod.py": 14421188237635557797, + "backend/src/models/dashboard.py": 8479838979214366697, + "backend/alembic/versions/b1c2d3e4f5a6_add_source_hash_to_translation_records.py": 4775534557742900399, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_construction.py": 6564829381134214401, + "venv/lib/python3.13/site-packages/httpx/_models.py": 6516278895118988231, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/__init__.py": 15130871412783076140, + "backend/src/api/__init__.py": 5287505122015708040, + "venv/lib/python3.13/site-packages/pygments/lexers/x10.py": 6167378515780115912, + "venv/lib/python3.13/site-packages/urllib3/fields.py": 9503202008440141421, + "backend/git_repos/remote/test-repo.git/HEAD": 12394318939628232491, + "frontend/src/lib/components/StartMaintenanceForm.svelte": 6639622284028606563, "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_inclusive.py": 1389676378885557519, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/METADATA": 14070889071949105584, - "venv/lib/python3.13/site-packages/websockets/version.py": 5853118844880112885, + "backend/src/models/__init__.py": 13280325675752905975, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/endpoint.py": 8519226897299461194, + "venv/lib/python3.13/site-packages/greenlet/greenlet.h": 16216120538647882082, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi": 17458894097215345719, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/offsets.pyi": 13173581775000480811, + "venv/lib/python3.13/site-packages/anyio/abc/_eventloop.py": 2023190981288767991, + "venv/lib/python3.13/site-packages/pydantic_settings/__init__.py": 4374954204580208673, + "venv/lib/python3.13/site-packages/passlib/handlers/mssql.py": 2800599582708170195, + "backend/git_repos/remote/test-repo.git/objects/3e/05ec6ef6504483c4bc7d00f0d0272c38ec661f": 11182016264585388842, + "venv/lib/python3.13/site-packages/pyasn1/codec/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rename.py": 16148017223289654683, + "venv/lib/python3.13/site-packages/pygments/lexers/int_fiction.py": 8806961041808606055, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_timer.py": 8196003526646080498, + "venv/lib/python3.13/site-packages/_pytest/raises.py": 8188402179490363767, + "venv/lib/python3.13/site-packages/numpy/testing/overrides.pyi": 17408923209056015964, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/mod_derived_types.f90": 2556756676983488922, + "backend/src/api/routes/__tests__/test_git_status_route.py": 6682904773087475636, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/orderinglist.py": 10162099108656794338, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/RECORD": 7810411361439269754, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/_utils_impl.pyi": 15767546107856827543, + "venv/lib/python3.13/site-packages/passlib/tests/__main__.py": 16477180140297957650, + "venv/lib/python3.13/site-packages/fastapi/param_functions.py": 14585101566697773072, + "venv/lib/python3.13/site-packages/pip/_internal/cli/command_context.py": 9426036980437931533, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_integrity.py": 12010564145080323987, + "frontend/src/lib/components/assistant/__tests__/assistant_clarification.integration.test.js": 12258270009984504212, + "venv/lib/python3.13/site-packages/numpy/polynomial/legendre.pyi": 2029639875417260268, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/licenses/LICENSE": 7959949171752474553, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_generic.py": 1098361087956787007, + "venv/lib/python3.13/site-packages/pygments/lexers/archetype.py": 8995143180482517233, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_random.py": 4179188367630060654, + "backend/src/scripts/test_dataset_dashboard_relations.py": 11883199369340933897, + "backend/src/services/git/__init__.py": 14011752637167919253, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_longdouble.py": 9337218715436213122, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/fields.cpython-313-x86_64-linux-gnu.so": 16927263232848238698, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_partial.py": 15129217814262096441, + "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/__init__.py": 4761936067832638585, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_timedeltaindex.py": 2359681317403710563, + "venv/lib/python3.13/site-packages/starlette/middleware/errors.py": 1337979724602864440, + "venv/lib/python3.13/site-packages/pandas/_libs/writers.pyi": 10494773026133244183, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/RECORD": 10264342250058307301, + "venv/lib/python3.13/site-packages/numpy/f2py/__init__.pyi": 3566887042414273892, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timezones.cpython-313-x86_64-linux-gnu.so": 1137453907225619959, + "backend/src/plugins/translate/service.py": 11825307511971639412, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_round.py": 8336918400205461173, + "backend/src/core/task_manager/__tests__/test_context.py": 4211690952139950648, + "venv/lib/python3.13/site-packages/pandas/io/json/_json.py": 1393095374713367445, + "backend/src/api/routes/git/__init__.py": 14824479456728364642, + "backend/src/plugins/translate/__tests__/test_target_schema.py": 3945452632405275208, + "backend/src/plugins/translate/preview_executor.py": 7636554040403814604, + "venv/lib/python3.13/site-packages/pip/_internal/operations/check.py": 16650663913976953800, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_formats.py": 1265319125235346745, + "backend/git_repos/remote/test-repo.git/description": 15262637409357137373, + "frontend/src/components/git/DeploymentModal.svelte": 16301125393395343650, + "venv/lib/python3.13/site-packages/numpy/char/__init__.pyi": 12214207343146244743, + "venv/lib/python3.13/site-packages/anyio/_core/_signals.py": 1204322949639513552, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/index.py": 15694995431926521471, + "backend/src/schemas/dataset_review_pkg/_dtos.py": 13301885458265748263, + "venv/lib/python3.13/site-packages/authlib/consts.py": 14226604841596736870, + "venv/lib/python3.13/site-packages/pandas/core/tools/timedeltas.py": 7221393731712061943, + "venv/lib/python3.13/site-packages/rapidfuzz/utils_py.py": 12341806772632276946, + "venv/lib/python3.13/site-packages/pillow.libs/libfreetype-ee1c40c4.so.6.20.4": 12301510769231120312, + "venv/lib/python3.13/site-packages/pandas/tests/series/__init__.py": 15130871412783076140, + "backend/src/core/utils/dataset_mapper.py": 1606029474387636183, + "venv/lib/python3.13/site-packages/gitdb/typ.py": 16374739906244805047, + "venv/lib/python3.13/site-packages/numpy/fft/_helper.py": 15906444100774706395, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_period.py": 7727606662611927293, + "venv/lib/python3.13/site-packages/numpy/_core/function_base.pyi": 8343632640078378312, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_cov_corr.py": 13652339565475304679, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/state.py": 10500170103357297551, + "venv/lib/python3.13/site-packages/pygments/lexers/r.py": 14263133575134645005, + "venv/lib/python3.13/site-packages/attr/exceptions.pyi": 12323493441583681402, + "venv/lib/python3.13/site-packages/dateutil/parser/__init__.py": 11377431154251655738, + "venv/lib/python3.13/site-packages/passlib/tests/sample_config_1s.cfg": 1809713544666311828, + "venv/lib/python3.13/site-packages/gitdb/exc.py": 13975852664048821278, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/uvicorn/lifespan/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/f2py/_src_pyf.pyi": 8916922961301555974, + "venv/lib/python3.13/site-packages/pandas/core/arrays/boolean.py": 8821671562937866269, + "frontend/src/components/tools/MapperTool.svelte": 452311121889230749, + "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_day.py": 6371851881186970754, + "venv/lib/python3.13/site-packages/pip/__init__.py": 9449893869469432503, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/base.py": 7855217087916771270, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/licenses/LICENSE": 6653202620765194772, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ma.py": 15912582628112164509, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_get_numeric_data.py": 5896318696417090902, + "venv/lib/python3.13/site-packages/pygments/lexers/dalvik.py": 5549983892200382076, + "backend/src/services/notifications/__init__.py": 13930898146447654299, + "venv/lib/python3.13/site-packages/numpy/core/_dtype.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation": 4826455560768665215, + "venv/lib/python3.13/site-packages/numpy/lib/_iotools.py": 10522826373041592861, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23598.f90": 1409455010615482779, + "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/fields.py": 8923326131649837922, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE": 4274653168153720331, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_deprecated_kwargs.py": 10379929935087904974, + "venv/lib/python3.13/site-packages/sqlalchemy/util/compat.py": 16148553252010089561, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/__init__.py": 7316739139609490520, + "venv/lib/python3.13/site-packages/pandas/util/_validators.py": 10201915528715968165, + "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs_scalars.py": 652332294655046106, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html_style.tpl": 3352086677417301397, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/licenses/LICENSE": 1126906383149772681, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test__exceptions.py": 12099001631178696189, + "venv/bin/pip3.13": 13861749540792881808, + "backend/src/core/auth/logger.py": 9289916075840905359, + "backend/src/api/routes/__tests__/test_git_api.py": 222548597993158802, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test__iotools.py": 6260912730310453037, + "backend/src/services/clean_release/demo_data_service.py": 1822246829322620623, + "venv/lib/python3.13/site-packages/starlette/requests.py": 4582424111350387010, + "venv/lib/python3.13/site-packages/pip/_internal/index/sources.py": 11609272011565024668, + "backend/src/plugins/translate/service_inline_correction.py": 11066393548140180037, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/hashes.py": 8545380307201732345, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_stride_tricks.py": 1064774375151677743, + "backend/alembic/versions/b0c1d2e3f4a5_cascade_ondelete_translate_fks.py": 1764442834210967136, + "backend/src/core/migration/archive_parser.py": 7392694914943455006, + "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_regression.py": 5652583095949741238, + "venv/lib/python3.13/site-packages/pygments/lexers/ride.py": 14096748896451437594, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/licenses/LICENSE": 12684353321716745791, + "venv/lib/python3.13/site-packages/numpy/core/defchararray.py": 11371045148957547088, + "venv/lib/python3.13/site-packages/cffi/recompiler.py": 17809252277700094304, + "venv/lib/python3.13/site-packages/pydantic/_internal/_git.py": 8760779092674434712, + "venv/lib/python3.13/site-packages/charset_normalizer/__init__.py": 12412600648990392633, + "venv/lib/python3.13/site-packages/PIL/ImagePalette.py": 9227837918026991107, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/strptime.pyi": 5973671421648618563, + "venv/lib/python3.13/site-packages/starlette/middleware/cors.py": 11384893784314197864, + "venv/lib/python3.13/site-packages/pydantic/_internal/_typing_extra.py": 14843908493613991959, + "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs.pyi": 9282436354926617898, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_other.py": 783701524491896337, + "venv/lib/python3.13/site-packages/pandas/compat/__init__.py": 6077099417711209303, + "venv/lib/python3.13/site-packages/PIL/GifImagePlugin.py": 16073125611077200693, + "frontend/e2e/run-enterprise-clean-e2e.sh": 11626901202531925046, + "venv/lib/python3.13/site-packages/pandas/core/arrays/_utils.py": 11574890848475750509, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_iloc.py": 16160558158155038350, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/setup.py": 5482352991573617756, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/database.py": 7111764828004587758, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/missing.py": 14589973874359353799, + "venv/lib/python3.13/site-packages/numpy/ma/mrecords.pyi": 8945514863366384484, + "venv/lib/python3.13/site-packages/pydantic/deprecated/class_validators.py": 2200511838255373813, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/__init__.py": 10834852742917144496, + "frontend/build/_app/immutable/nodes/40.CNZCEv_K.js": 15374574306536825164, + "docker/backend.Dockerfile": 4384294014726084339, + "venv/lib/python3.13/site-packages/pandas/api/typing/__init__.py": 6438268275857060114, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/twodim_base.pyi": 3773329770170248877, + "venv/lib/python3.13/site-packages/pandas/core/util/hashing.py": 13106575357604888913, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/testing.pyi": 16263777835572515739, + "backend/src/plugins/backup.py": 9775992510122456201, + "venv/lib/python3.13/site-packages/websockets/__init__.py": 4916307256304054040, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/six.py": 1161259802604920635, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_attr_equal.py": 5612259834202470413, + "venv/lib/python3.13/site-packages/idna/package_data.py": 6583909243002417298, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/common.py": 16314033415206173235, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py": 1437580234680265326, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/multiprocess.py": 10047012560534876149, + "backend/src/api/routes/mappings.py": 7071183920129492341, + "backend/tests/test_storage_config.py": 14773544217703363468, + "venv/lib/python3.13/site-packages/numpy/testing/__init__.py": 2831275254313750978, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_arithmetic.py": 14858832264660410908, + "venv/lib/python3.13/site-packages/attr/validators.py": 4453080662115911998, + "venv/lib/python3.13/site-packages/pygments/formatters/svg.py": 11686316844190214147, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/subrout.f": 18215492757907465667, + "venv/lib/python3.13/site-packages/httpcore/_async/http11.py": 7565741048880549265, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_modules.py": 16835987029123241300, + "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/accessor.py": 8373575175447947401, + "scripts/build_offline_docker_bundle.sh": 9577721838839060974, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_copy.py": 11335108864615756235, + "venv/lib/python3.13/site-packages/attr/_version_info.pyi": 7141309436445210354, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/wheel.py": 13979536782410081712, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/shared.py": 1162754506656505196, + "venv/lib/python3.13/site-packages/pydantic/v1/networks.py": 13262073155118055511, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_arrow_interface.py": 5231449831607036031, + "venv/lib/python3.13/site-packages/numpy/lib/_scimath_impl.py": 14696841109142419143, + "venv/lib/python3.13/site-packages/starlette/endpoints.py": 3379755567024530053, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/datonly.f90": 10495925225338237742, + "venv/lib/python3.13/site-packages/secretstorage/collection.py": 17903258621904912493, + "venv/lib/python3.13/site-packages/sqlalchemy/event/registry.py": 2857989070743633709, + "venv/lib/python3.13/site-packages/keyring/backends/Windows.py": 4103830951042463184, + "venv/lib/python3.13/site-packages/pydantic/env_settings.py": 18250976255197243083, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/conftest.py": 6137462119729731945, + "venv/lib/python3.13/site-packages/websockets/legacy/client.py": 4032878587330592478, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_repr.py": 13147587049887075335, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_logical_ops.py": 4438104524064299182, + "venv/lib/python3.13/site-packages/numpy.libs/libgfortran-040039e1-0352e75f.so.5.0.0": 13946067868274850557, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api_latest.c": 5472633890472031814, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rename_axis.py": 13193478481758930128, + "venv/lib/python3.13/site-packages/pydantic_core/_pydantic_core.pyi": 16799580742094025110, + "venv/lib/python3.13/site-packages/itsdangerous/__init__.py": 6969210114978365656, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/urllib3/util/url.py": 15992369651965016538, + "venv/lib/python3.13/site-packages/pygments/lexers/grammar_notation.py": 9009644754106884095, + "venv/lib/python3.13/site-packages/packaging/requirements.py": 2896326326372719999, + "backend/src/services/profile_preference_service.py": 58722622434127499, + "backend/src/services/__init__.py": 15123879863527585264, + "venv/lib/python3.13/site-packages/git/compat.py": 16843345645628515492, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/_cmd.py": 14954780419054588164, + "venv/lib/python3.13/site-packages/httpcore/_trace.py": 9576253018891841832, + "venv/lib/python3.13/site-packages/uvicorn/importer.py": 5449629250971153435, + "venv/lib/python3.13/site-packages/dotenv/main.py": 7408889670575271484, + "venv/lib/python3.13/site-packages/numpy/lib/_array_utils_impl.pyi": 11535882608355652318, + "venv/lib/python3.13/site-packages/cffi/cffi_opcode.py": 8411344362428947268, + "venv/lib/python3.13/site-packages/numpy/lib/_polynomial_impl.py": 12771179468704314203, + "venv/lib/python3.13/site-packages/pygments/lexers/dylan.py": 16246299896150112270, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_defmatrix.py": 2982572083770917411, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/schema.py": 8358664670620586363, + "venv/lib/python3.13/site-packages/jsonschema_specifications/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/passlib/crypto/_md4.py": 379335134151814809, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dtypes.py": 4985057130807802395, + "venv/lib/python3.13/site-packages/PIL/ImagePath.py": 18323293175183057101, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_regression.py": 16266600037241221681, + "venv/lib/python3.13/site-packages/httpcore/_backends/anyio.py": 6167729964577005634, + "venv/lib/python3.13/site-packages/pandas/core/arrays/floating.py": 1215586266958421991, + "venv/lib/python3.13/site-packages/git/config.py": 1724894144987553201, + "venv/lib/python3.13/site-packages/idna/compat.py": 9758194415584776667, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/memory.py": 9947113720821563254, + "venv/lib/python3.13/site-packages/_pytest/unittest.py": 10848803633530338204, + "venv/bin/keyring": 1488968652276547659, + "backend/src/core/plugin_loader.py": 16320603855307510494, + "venv/lib/python3.13/site-packages/pyasn1/compat/integer.py": 7365270971777550573, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_types.py": 651959450717569029, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_complex.py": 4290059580478881700, + "venv/lib/python3.13/site-packages/pandas/_libs/arrays.pyi": 12629806207276576877, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/rsa.py": 5392922995791487437, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_astype.py": 7497268667246913350, + "backend/src/models/__tests__/test_models.py": 1386812925656974657, + "venv/lib/python3.13/site-packages/gitdb/util.py": 645937410168583692, + "venv/lib/python3.13/site-packages/pip/_internal/utils/temp_dir.py": 8657533190026387896, + "venv/lib/python3.13/site-packages/PIL/_imagingmath.pyi": 18222325750818585549, + "venv/bin/pygmentize": 2166491742035772877, + "venv/lib/python3.13/site-packages/keyring/http.py": 1408024724330078009, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_monotonic.py": 14648437502004398715, + "venv/lib/python3.13/site-packages/jeepney/io/asyncio.py": 13239992245695516007, + "venv/lib/python3.13/site-packages/jsonschema/tests/fuzz_validate.py": 2328585939822059352, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_zips.py": 5184894018177148648, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/connection.py": 8190661510572400096, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/row.py": 9763935103055608874, + "venv/lib/python3.13/site-packages/pytest/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/styles/zenburn.py": 1031869867933871309, + "venv/lib/python3.13/site-packages/httpx/_client.py": 1063593889704982038, + "venv/lib/python3.13/site-packages/pydantic/annotated_handlers.py": 10186120300163345360, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_methods.py": 12694335778731418517, + "frontend/src/routes/reports/llm/[taskId]/report_page.contract.test.js": 4825093389030464765, + "backend/src/plugins/translate/dictionary_entries.py": 11394786590056973146, + "venv/lib/python3.13/site-packages/pandas/core/tools/numeric.py": 8510988912136285022, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel.py": 7728646523045538484, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cpu_features.py": 955759654189150497, + "venv/lib/python3.13/site-packages/pygments/lexers/wgsl.py": 9718384325049172855, + "venv/lib/python3.13/site-packages/numpy/lib/_version.py": 15294708923334674060, + "backend/tests/test_models.py": 3998442321184404421, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/_libs/pandas_datetime.cpython-313-x86_64-linux-gnu.so": 15874094681262240628, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm32_ios.h": 6751259472945638998, + "venv/lib/python3.13/site-packages/websockets/extensions/__init__.py": 13067201313921664210, + "backend/git_repos/remote/test-repo.git/objects/22/91d2eb86d77accf7401f8952778809cd1aa4d4": 5120428041118096941, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_algs.py": 2479791018067637690, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_character/foo90.f90": 2435648607844815947, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_string_array.py": 8260883866404398980, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_ndarray.py": 6863874753941288585, + "backend/src/services/clean_release/repository.py": 11403333156347178483, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/npyio.pyi": 14147712281086095231, + "venv/lib/python3.13/site-packages/fastapi/utils.py": 15402403831700548944, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_sample.py": 4641567828238191927, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/coercions.py": 5112358449376598662, + "venv/lib/python3.13/site-packages/pandas/core/groupby/categorical.py": 16588862198627920420, + "frontend/build/_app/immutable/chunks/b6ODGUZr.js": 3762567609123440186, + "venv/lib/python3.13/site-packages/dateutil/parser/_parser.py": 9443336890192151397, + "venv/lib/python3.13/site-packages/pandas/io/excel/_odswriter.py": 17220892094904423676, + "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_salsa.py": 1756536674254931838, + "venv/lib/python3.13/site-packages/cryptography/x509/ocsp.py": 17973800752927680404, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_reshape.py": 10576230966727810832, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_pickle.py": 6232650893735715362, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/resources.py": 11533706401259147051, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_complex/foo90.f90": 15981076495193915107, + "venv/lib/python3.13/site-packages/pygments/lexers/special.py": 4972294202790455038, + "venv/lib/python3.13/site-packages/requests/hooks.py": 9888227370911151341, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/elements.py": 11185011314498348980, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/_typing.py": 10524021526716767489, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/WHEEL": 2357997949040430835, + "frontend/src/routes/+error.svelte": 9437886843842311915, + "backend/src/api/routes/git/_deps.py": 8233286973979159721, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_dict.py": 16252265723192124609, + "venv/lib/python3.13/site-packages/numpy/dtypes.pyi": 6713822658171717369, + "frontend/src/services/adminService.js": 6375990585512014277, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_pandas.py": 10894229569442891394, + "backend/src/plugins/translate/_token_budget.py": 1545056585783198863, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/__init__.py": 13749066369790839334, + "venv/lib/python3.13/site-packages/httpx/_decoders.py": 14478643473006178492, + "venv/lib/python3.13/site-packages/_pytest/setuponly.py": 10959102379908419762, + "venv/lib/python3.13/site-packages/PIL/WalImageFile.py": 12442826195371137238, + "venv/lib/python3.13/site-packages/numpy/_typing/_char_codes.py": 14162745886150625150, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mariadbconnector.py": 14865906347579451546, + "venv/lib/python3.13/site-packages/fastapi/exceptions.py": 12665775976182239091, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_version.pyi": 18093228021414910594, + "venv/lib/python3.13/site-packages/numpy/f2py/auxfuncs.py": 2234931733687557433, + "venv/lib/python3.13/site-packages/pandas/tests/test_downstream.py": 5635510753354256507, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_interpolate.py": 6154072863387383113, + "venv/lib/python3.13/site-packages/uvicorn/main.py": 5843333502356171120, + "venv/lib/python3.13/site-packages/pygments/lexers/dsls.py": 11696359794961833087, + "backend/src/core/config_manager.py": 4939178394157798605, + "venv/lib/python3.13/site-packages/pygments/lexers/mips.py": 2078929831513352031, + "venv/lib/python3.13/site-packages/numpy/random/_mt19937.pyi": 15904463104068500379, + "backend/src/plugins/translate/dictionary_import_export.py": 12639118203353044308, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_almost_equal.py": 9333355453468475330, + "venv/lib/python3.13/site-packages/pandas/core/interchange/from_dataframe.py": 8278998381856028462, + "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/METADATA": 2624107638694809013, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE.APACHE": 8359973023624924624, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/base.py": 10200916670889920659, + "venv/lib/python3.13/site-packages/greenlet/greenlet_slp_switch.hpp": 1694714764745718414, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_from_dummies.py": 5670811108950300761, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_datetime.py": 4179112383995346046, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalar_ctors.py": 631744056514965940, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/authorization_server.py": 17967809814827547139, + "venv/lib/python3.13/site-packages/pydantic_core/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_alter_axes.py": 11338712836362534969, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_rolling.py": 11118160360072677569, + "venv/lib/python3.13/site-packages/numpy/f2py/__main__.py": 12567751646090102167, + "venv/lib/python3.13/site-packages/keyring/core.py": 2764269590123131634, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_casting_floatingpoint_errors.py": 4301355720042319835, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh25211.f": 1486878017876900890, + "venv/lib/python3.13/site-packages/pygments/lexers/rego.py": 16022844238903541738, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/dynamic.py": 15220116196072524330, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayscalars.h": 16142050006935459679, + "venv/lib/python3.13/site-packages/pandas/core/strings/accessor.py": 14021462534679430426, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/events.py": 9329355486544822483, + "frontend/build/_app/immutable/chunks/Ct73Sust.js": 3385889491616825090, + "venv/lib/python3.13/site-packages/urllib3/py.typed": 12220177918227495093, + "venv/lib/python3.13/site-packages/pandas/core/methods/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/internals/test_api.py": 11217428888457119601, + "frontend/build/_app/immutable/chunks/gRGygy_f.js": 17282722948808474320, + "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft.py": 6142062990691556076, + "venv/lib/python3.13/site-packages/numpy/_core/records.py": 11414828908088050950, + "venv/lib/python3.13/site-packages/pandas/_testing/asserters.py": 272063856832951430, + "venv/lib/python3.13/site-packages/pycparser/_build_tables.py": 569728086093219621, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/dim2.py": 5767600151459095125, + "venv/lib/python3.13/site-packages/pygments/lexers/boa.py": 14409319610243925864, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_legend.py": 13094583566764796297, + "venv/lib/python3.13/site-packages/pip/_internal/commands/uninstall.py": 11003472265011262515, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/fromnumeric.py": 3792079757208879362, + "venv/lib/python3.13/site-packages/pandas/_libs/hashtable.cpython-313-x86_64-linux-gnu.so": 16963890771704942465, + "venv/lib/python3.13/site-packages/numpy/random/mtrand.pyi": 17144590106028661128, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_apply_relabeling.py": 3930092097678339743, + "frontend/src/routes/datasets/DatasetList.svelte": 2347298483008235943, + "backend/src/api/routes/assistant/_schemas.py": 4855661257485426649, + "venv/lib/python3.13/site-packages/pydantic/json_schema.py": 15678278224696353978, + "venv/lib/python3.13/site-packages/httpcore/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/bcrypt/_bcrypt.pyi": 15067467792538416274, + "venv/lib/python3.13/site-packages/apscheduler/triggers/date.py": 9545774812177853725, + "venv/lib/python3.13/site-packages/numpy/f2py/capi_maps.py": 2490579175967301457, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/quoted_character/foo.f": 15318083678609435813, + "venv/lib/python3.13/site-packages/pandas/_libs/hashing.pyi": 5241441378073929968, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/engine.py": 2652248727360250985, + "venv/lib/python3.13/site-packages/pygments/lexers/zig.py": 470431199354307668, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/index_tricks.pyi": 11463747060334597941, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi": 3533739482029983817, + "venv/lib/python3.13/site-packages/pandas/_libs/_cyutility.cpython-313-x86_64-linux-gnu.so": 3372660143512868174, + "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/jws_eddsa.py": 833927568269372333, + "venv/lib/python3.13/site-packages/pandas/core/reshape/concat.py": 2218848863149192467, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_asfreq.py": 2701081989348180239, + "venv/lib/python3.13/site-packages/pandas/tests/io/xml/conftest.py": 17514079438846557943, + "venv/lib/python3.13/site-packages/greenlet/TBrokenGreenlet.cpp": 10822436772777706192, + "venv/lib/python3.13/site-packages/pygments/lexers/c_like.py": 13004061780700827047, + "venv/lib/python3.13/site-packages/numpy/_globals.py": 8736093011628027941, + "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/httpx/_transports/wsgi.py": 11981127094916412794, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/asyncio.py": 11442130378027628520, + "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/pygments/lexers/idl.py": 11454152060351801696, + "venv/lib/python3.13/site-packages/PIL/EpsImagePlugin.py": 1824020964179364491, + "venv/lib/python3.13/site-packages/pandas/util/version/__init__.py": 3844072588696074141, + "venv/lib/python3.13/site-packages/psycopg2/errorcodes.py": 6711830404954314463, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/attributes.py": 5068814626384132900, + "venv/lib/python3.13/site-packages/pygments/lexers/inferno.py": 9056274496469409594, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_orc.py": 1248059610437937895, + "venv/lib/python3.13/site-packages/pygments/lexers/_scheme_builtins.py": 5722444920479775453, + "venv/lib/python3.13/site-packages/tzlocal/win32.py": 1949985224569608978, + "frontend/src/lib/components/settings/ApiKeysTab.svelte": 17208249963941978218, + "venv/lib/python3.13/site-packages/numpy/_typing/_nbit_base.pyi": 6546751036506752550, + "venv/lib/python3.13/site-packages/anyio/_core/_tempfile.py": 230288423480899091, + "venv/lib/python3.13/site-packages/pip/_internal/commands/cache.py": 1892313355296776523, + "backend/src/core/logger/__tests__/test_logger.py": 11665830455325390168, + "backend/src/services/__tests__/test_rbac_permission_catalog.py": 5190751380981933250, + "frontend/build/_app/immutable/nodes/22.CZgjFTnE.js": 15851348200685649144, + "venv/lib/python3.13/site-packages/pydantic/v1/generics.py": 1150594223414883339, + "venv/lib/python3.13/site-packages/greenlet/slp_platformselect.h": 10428201768098464386, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/operators.f90": 5949265961908386974, + "venv/lib/python3.13/site-packages/fastapi/websockets.py": 9910052969532075719, + "backend/src/services/clean_release/policy_engine.py": 3180817867716931725, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/WHEEL": 7795541085444298627, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_categorical.py": 12897027063618569795, + "venv/lib/python3.13/site-packages/PIL/_util.py": 17116054813914373606, + "venv/lib/python3.13/site-packages/pandas/_config/dates.py": 3863381688916127265, + "backend/src/api/routes/__tests__/test_reports_openapi_conformance.py": 17043883737206361151, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_python_parser_only.py": 12231449578582108346, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/__init__.py": 2791238481813240414, + "frontend/src/lib/stores/__tests__/mocks/navigation.js": 10782992736745205981, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/LICENSE": 16510279186416777136, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arctanh.csv": 8620268345075425735, + "venv/lib/python3.13/site-packages/jose/backends/ecdsa_backend.py": 2684176977865283060, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/index_tricks.py": 10051261976498916957, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_index.py": 10837492069089787028, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/websockets/legacy/handshake.py": 376095144657994920, + "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/extension/array_with_attr/test_array_with_attr.py": 6568496539994758985, + "venv/lib/python3.13/site-packages/pydantic_core/__init__.py": 10563134104783445328, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/processors.pyx": 7085380878820747579, + "venv/lib/python3.13/site-packages/PIL/features.py": 3481835375516797487, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/pygments/__init__.py": 14493583771211110135, + "venv/lib/python3.13/site-packages/click/testing.py": 15973659312284678327, + "venv/lib/python3.13/site-packages/jaraco/classes/properties.py": 6976928770004942858, + "venv/lib/python3.13/site-packages/numpy/core/shape_base.py": 17925759824894973734, + "venv/lib/python3.13/site-packages/anyio/from_thread.py": 7973678341601453474, + "venv/lib/python3.13/site-packages/jose/__init__.py": 15575670403380555945, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/einsumfunc.pyi": 200771351328522379, + "venv/lib/python3.13/site-packages/numpy/_core/overrides.py": 252940520997718714, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/__init__.py": 6489437464172324468, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_iterator.py": 13869355993837330406, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_float.py": 10455718110956856820, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/RECORD": 12598309574903741388, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/provision.py": 8707620698060818654, + "venv/lib/python3.13/site-packages/pydantic/_internal/_repr.py": 1758478941817868344, + "venv/lib/python3.13/site-packages/pycparser/plyparser.py": 5251740466238035035, + "backend/src/schemas/__init__.py": 8700952869915187087, + "backend/src/plugins/translate/_lang_detect.py": 2125979777533490081, + "backend/git_repos/remote/test-repo.git/objects/5d/9eb555c4cac2d3ffdba84c07682b154fe4180d": 10756202165146702691, + "venv/lib/python3.13/site-packages/pip/_internal/models/selection_prefs.py": 14700113736620314923, + "backend/src/api/routes/translate/_helpers.py": 13265933139767815312, + "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/exceptions.py": 11303331612406662162, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_protocols.py": 5019018645804313814, + "frontend/src/components/EnvSelector.svelte": 3937920133889630193, + "venv/lib/python3.13/site-packages/pandas/tests/reductions/test_stat_reductions.py": 11569525436540769152, + "venv/lib/python3.13/site-packages/cffi/vengine_gen.py": 6582900613549620556, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_subplots.py": 4596089143375088346, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/pyinstaller-smoke.py": 13570990531070630950, + "venv/lib/python3.13/site-packages/pandas/_libs/hashtable.pyi": 15034917167424979097, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_normalize.py": 7378656958631172603, + "backend/src/core/middleware/__init__.py": 13917394130915533209, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/functions.py": 16567226076808693246, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_version.pyi": 3636944488233043883, + "venv/lib/python3.13/site-packages/psycopg2/errors.py": 10441360078612452560, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py": 6109201994963211857, + "venv/lib/python3.13/site-packages/numpy/f2py/cfuncs.pyi": 8232620851756907417, + "venv/lib/python3.13/site-packages/pandas/core/reshape/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/__init__.py": 14571251344510763303, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_logical/foo77.f": 16250175448122328648, + "frontend/src/lib/stores/__tests__/test_taskDrawer.js": 13582869875796637016, + "venv/lib/python3.13/site-packages/jeepney/wrappers.py": 15234251727654692435, + "venv/lib/python3.13/site-packages/pandas/core/computation/scope.py": 16859504937881548797, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/httpcore/_async/connection_pool.py": 932468678264370661, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_categorical.py": 10863578845754547294, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_time_grouper.py": 3203729024111501071, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reset_index.py": 5946666595195952693, + "backend/src/core/utils/superset_context_extractor/_parsing.py": 17093712504833649098, + "venv/lib/python3.13/site-packages/_pytest/setupplan.py": 7496801885995567141, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_three_greenlets2.py": 11100501798741918610, + "venv/lib/python3.13/site-packages/numpy/_core/_dtype.py": 7796703383405149774, + "venv/lib/python3.13/site-packages/pandas/io/clipboards.py": 5183212433608887727, + "venv/lib/python3.13/site-packages/passlib/crypto/__init__.py": 16409196868630049365, + "docker/nginx.ssl.conf": 12350396037548059686, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rank.py": 14115215895836854973, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multiarray.py": 5928288171180750841, + "venv/lib/python3.13/site-packages/pip/_internal/utils/appdirs.py": 539688259643447487, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/session.py": 5126234270435358377, + "venv/lib/python3.13/site-packages/git/exc.py": 14278238357119816365, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/uvicorn/_types.py": 3339389597716220585, + "frontend/src/lib/stores/__tests__/test_activity.js": 15599963775430388097, + "backend/git_repos/remote/test-repo.git/objects/00/fcf77cecdf261aef91eda792ab3384a3339922": 1527330822006618217, + "run_clean_tui.sh": 14305120550349644601, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_api.py": 1910541672533352625, + "venv/lib/python3.13/site-packages/passlib/ext/django/__init__.py": 11713862539944289631, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/filter.py": 16846063190466267618, + "venv/lib/python3.13/site-packages/pydantic/v1/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/f2py/_isocbind.pyi": 5786150108623563787, + "frontend/src/components/auth/ProtectedRoute.svelte": 7705373237339863677, + "backend/src/schemas/profile.py": 7950698901810733002, + "venv/lib/python3.13/site-packages/requests/_internal_utils.py": 4091305333167213279, + "frontend/src/lib/auth/permissions.js": 12787489292887903923, + "venv/lib/python3.13/site-packages/keyring/compat/__init__.py": 7578020229796085753, + "venv/lib/python3.13/site-packages/passlib/tests/test_win32.py": 13932956220195912963, + "venv/lib/python3.13/site-packages/authlib/oauth1/errors.py": 1154126353335030046, + "venv/lib/python3.13/site-packages/numpy/random/mtrand.cpython-313-x86_64-linux-gnu.so": 16146459667121787202, + "backend/src/plugins/translate/superset_executor.py": 5480256123348033488, + "venv/lib/python3.13/site-packages/numpy/matrixlib/__init__.py": 18402126171936308228, + "frontend/src/routes/profile/__tests__/profile-preferences.integration.test.js": 6561454515118560091, + "venv/lib/python3.13/site-packages/rapidfuzz/__init__.pyi": 13131938031654453415, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py": 14190849361275154667, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/resultproxy.pyx": 5760108632332714287, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/palette.py": 17383863392192572184, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/core.py": 14576109242055156193, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_formats.py": 3525283725314253763, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/client.py": 18443944554871937480, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/licenses/LICENSE": 5563356551734678258, + "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.pxd": 9126772093305708921, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_chaining_and_caching.py": 15814259766479305290, + "venv/lib/python3.13/site-packages/pygments/lexers/_csound_builtins.py": 14530739818491398298, + "frontend/static/favicon.png": 16740551781088792605, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkrb5-fcafa220.so.3.3": 5620628698712971642, + "frontend/src/lib/api.js": 7712788935523484149, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_linux.h": 15772978805500070727, + "frontend/src/lib/components/layout/TopNavbar.svelte": 16593656019460608311, + "backend/src/core/__tests__/test_superset_preview_pipeline.py": 5793244881571660499, + "venv/lib/python3.13/site-packages/fastapi/routing.py": 466387159689567541, + "venv/lib/python3.13/site-packages/pygments/styles/solarized.py": 11231143047572616298, + "frontend/build/_app/immutable/chunks/Cs7qTEqk.js": 15866070137921022262, + "venv/lib/python3.13/site-packages/pandas/tests/frame/conftest.py": 15090201792072045503, + "backend/src/services/dataset_review/repositories/repository_pkg/_mutations.py": 11718998093543631478, + "venv/lib/python3.13/site-packages/pygments/lexers/gdscript.py": 12775803139854052838, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_quantile.py": 11273403743157110261, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_argsort.py": 7320661835159648143, + "venv/lib/python3.13/site-packages/pandas/io/excel/_calamine.py": 13354427767660487637, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_pivot_multilevel.py": 9830258607305392103, + "frontend/tests/maintenance-api.test.ts": 10196278218740408254, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7636/challenge.py": 6388445104761482746, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arcsinh.csv": 13695545125848146013, + "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_enc_cryptodome.py": 15753279711312689193, + "venv/lib/python3.13/site-packages/pandas/tests/extension/uuid/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_feather.py": 13613400750755530364, + "venv/lib/python3.13/site-packages/ecdsa/_version.py": 17707102226558781833, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/memmap.pyi": 2834143910417841603, + "venv/lib/python3.13/site-packages/pandas/io/sas/__init__.py": 8095743504390517992, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arrayprint.pyi": 2053388407376896377, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_infer_objects.py": 16868563755487479303, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufunclike.py": 12077553320554633586, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/engines.py": 10876954465293959720, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/annotated_types/__init__.py": 7367790549779882749, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/metadata.py": 1362166613223529108, + "venv/lib/python3.13/site-packages/pygments/lexers/jsonnet.py": 1314044008440065525, + "venv/lib/python3.13/site-packages/greenlet/tests/test_greenlet_trash.py": 6191655521667576604, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/METADATA": 10241403930811743893, + "frontend/src/components/git/CommitModal.svelte": 4151596094672629211, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler.pyi": 9003794318682878317, + "venv/lib/python3.13/site-packages/pandas/core/config_init.py": 16537122488227845090, + "venv/lib/python3.13/site-packages/pandas/core/ops/docstrings.py": 3721650738518391256, + "venv/lib/python3.13/site-packages/packaging/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/sqlalchemy.py": 811968833735951956, + "backend/src/services/clean_release/__tests__/test_audit_service.py": 1679130450221264383, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reindex_like.py": 13803156447991282315, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_period.py": 3419297908709788013, + "backend/git_repos/remote/test-repo.git/objects/17/66251d8cb2693136e09ea3def3e776559cb722": 1137762010493457272, + "frontend/build/_app/immutable/chunks/KxePT7Ip.js": 8106111085962356816, + "venv/lib/python3.13/site-packages/numpy/_pytesttester.py": 17737911110576747508, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_hashtable.py": 2620207240930665390, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/array_api_info.pyi": 7887489694871300469, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/RECORD": 12733654377842895588, + "backend/src/services/clean_release/__tests__/test_compliance_orchestrator.py": 4990536554328205752, + "venv/lib/python3.13/site-packages/urllib3/util/wait.py": 14629837381061032546, + "venv/lib/python3.13/site-packages/numpy/random/_philox.pyi": 7503018432880404291, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/__init__.py": 9820770319106921495, + "venv/lib/python3.13/site-packages/anyio/abc/_testing.py": 16484863782452886547, + "venv/lib/python3.13/site-packages/h11/_receivebuffer.py": 4631433251046338381, + "venv/lib/python3.13/site-packages/pip/_internal/cli/parser.py": 1064209424435927674, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_conversion.py": 6205112277291935767, + "frontend/src/components/git/GitReleasePanel.svelte": 14875953299937841077, + "venv/lib/python3.13/site-packages/numpy/testing/_private/extbuild.pyi": 18253950285509265097, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/__init__.py": 15130871412783076140, + "backend/src/plugins/translate/_llm_http.py": 15686826696693103176, + "venv/lib/python3.13/site-packages/jsonschema/tests/typing/test_all_concrete_validators_match_protocol.py": 14824388798676578409, + "venv/lib/python3.13/site-packages/jeepney/fds.py": 16573439672758641560, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/METADATA": 11419135077900073883, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/__init__.py": 12906995259233516197, + "venv/lib/python3.13/site-packages/numpy/lib/_ufunclike_impl.py": 12251264586530536622, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_functions.py": 16376319335326812580, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_clip.py": 11111183698178681331, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_internal/locations/__init__.py": 8147012724727395488, + "venv/lib/python3.13/site-packages/pygments/lexers/go.py": 11118104397271513417, + "venv/lib/python3.13/site-packages/h11/_writers.py": 8585823094975171480, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pygments/lexers/smalltalk.py": 6113431347120223592, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/__init__.py": 15130871412783076140, + "frontend/src/routes/datasets/review/ReviewWorkspaceLeftSidebar.svelte": 9009994851177005358, + "venv/lib/python3.13/site-packages/cffi/commontypes.py": 11198107299826138465, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkrb5support-d0bcff84.so.0.1": 16819924515291719993, + "venv/lib/python3.13/site-packages/_pytest/_py/error.py": 2257336434271433543, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arraysetops.py": 10588903945244480732, + "venv/lib/python3.13/site-packages/numpy/lib/_user_array_impl.py": 13115032674230220791, + "venv/lib/python3.13/site-packages/pandas/core/computation/check.py": 16048939716341154196, + "venv/lib/python3.13/site-packages/pydantic/fields.py": 4142211199816898047, + "frontend/build/_app/immutable/chunks/zkZd1nRa.js": 15711219595002974448, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/__init__.py": 15130871412783076140, + "backend/src/api/routes/assistant/_history.py": 6437021555836617855, + "venv/lib/python3.13/site-packages/pydantic/generics.py": 15019381413806459410, + "backend/src/models/git.py": 9387561498910534118, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_freq_code.py": 13758353172962109140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/tzlocal/windows_tz.py": 11696765495002954868, + "venv/lib/python3.13/site-packages/PIL/Jpeg2KImagePlugin.py": 16905402423248975204, + "venv/lib/python3.13/site-packages/ecdsa/_rwlock.py": 7971972922423146201, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-np0-objarr.npy": 1615546603475261360, + "venv/lib/python3.13/site-packages/pip/_internal/cli/autocompletion.py": 7651919329635563739, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/comparisons.pyi": 4158883009780474220, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x86_msvc.h": 2465089365642299646, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/version.py": 14723293207188512766, + "venv/lib/python3.13/site-packages/click/formatting.py": 6694583529073729642, + "venv/lib/python3.13/site-packages/idna/intranges.py": 12536174834761591006, + "venv/lib/python3.13/site-packages/pandas/tests/construction/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/declarative/extensions.py": 217122171232375592, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/reflection.py": 1799734694597531652, + "venv/lib/python3.13/site-packages/pygments/lexers/_cl_builtins.py": 16540712925368297957, + "venv/lib/python3.13/site-packages/pygments/lexers/solidity.py": 5071425960622305629, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_cpp.cpython-313-x86_64-linux-gnu.so": 10263790384087091349, + "venv/lib/python3.13/site-packages/uvicorn/loops/uvloop.py": 5385425357504191161, + "backend/src/services/llm_prompt_templates.py": 16187535610068299149, + "venv/lib/python3.13/site-packages/pandas/_libs/ops.cpython-313-x86_64-linux-gnu.so": 10490009128553397250, + "venv/lib/python3.13/site-packages/greenlet/tests/test_tracing.py": 10227316489696807112, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/parameters.py": 12219404446503940066, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/exceptions.py": 7518613450390473990, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_indexerrors.py": 4434868847540549873, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_repr.py": 5577699046802107144, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mutable.py": 9323088483998280629, + "venv/lib/python3.13/site-packages/numpy/_core/numerictypes.pyi": 12144531601504755948, + "venv/lib/python3.13/site-packages/numpy/_typing/_nbit.py": 15498810174380798405, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/flow_control.py": 4822804840057360506, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_period.py": 10309599277099605395, + "backend/src/core/auth/config.py": 2961507628300548714, + "backend/src/core/utils/superset_context_extractor/_templates.py": 6790136732701012567, + "backend/src/services/clean_release/__tests__/test_stages.py": 15353751625742444422, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_argparse.py": 11111699418217357084, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_xlrd.py": 9982457234958102003, + "backend/src/plugins/translate/orchestrator_lang_stats.py": 5713612003349083382, + "venv/lib/python3.13/site-packages/yaml/nodes.py": 3463622922914760653, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_unstack.py": 11834917665446437163, + "backend/src/api/routes/profile.py": 11866770263441371105, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/versioncontrol.py": 13742159245132241245, + "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_xml.py": 6906547816798138000, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/METADATA": 14180973198574731599, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_extras.py": 16160090335191788104, + "venv/lib/python3.13/site-packages/anyio/_core/_resources.py": 8463932838064724564, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/WHEEL": 3749476255729626245, + "venv/lib/python3.13/site-packages/pandas/core/roperator.py": 2587829042468916489, + "venv/lib/python3.13/site-packages/pandas/core/arrays/__init__.py": 10460719978124302175, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_common.py": 2223069451949206319, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_get_dummies.py": 16112674981222844375, + "venv/lib/python3.13/site-packages/pandas/io/json/_normalize.py": 15938855324762935595, + "venv/lib/python3.13/site-packages/_pytest/config/findpaths.py": 7867603756389940562, + "venv/lib/python3.13/site-packages/pandas/io/excel/_pyxlsb.py": 10035587889954731645, + "venv/lib/python3.13/site-packages/PIL/ImageText.py": 15322496455608242001, + "venv/lib/python3.13/site-packages/fastapi/_compat/may_v1.py": 9880083742927480960, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/RECORD": 7914594107698271488, + "backend/src/core/task_manager/manager.py": 4491234835514372291, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_overlaps.py": 2328652590379935311, + "backend/src/services/resource_service.py": 4680770771466252195, + "backend/src/services/clean_release/stages/base.py": 344723354852893815, + "venv/lib/python3.13/site-packages/anyio/_core/_exceptions.py": 11969894261631227715, + "venv/lib/python3.13/site-packages/pyasn1/type/namedval.py": 8273171503516887681, + "venv/lib/python3.13/site-packages/greenlet/tests/test_throw.py": 4119265751381210399, + "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/_vendor/requests/exceptions.py": 14982764273485726199, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/manifest.py": 16998683210177680416, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/WHEEL": 8954358347596196608, + "venv/lib/python3.13/site-packages/jaraco/classes/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_m68k_gcc.h": 6580173800099450404, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py": 15294662527620994511, + "venv/lib/python3.13/site-packages/idna/idnadata.py": 200840860629525970, + "venv/lib/python3.13/site-packages/numpy/lib/_shape_base_impl.py": 16539612003028676816, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/testing/print_coercion_tables.py": 11758491058846790938, + "venv/lib/python3.13/site-packages/numpy/lib/_nanfunctions_impl.py": 11621577915097515056, + "venv/lib/python3.13/site-packages/numpy/polynomial/polyutils.pyi": 8195943561787777127, + "venv/lib/python3.13/site-packages/pandas/core/ops/missing.py": 9493665944764255854, + "venv/lib/python3.13/site-packages/pandas/core/indexes/multi.py": 9115751979327393200, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jws_algs.py": 11920621906391796226, + "venv/lib/python3.13/site-packages/pandas/core/indexes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_format.py": 9331389900588353667, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked_shared.py": 8453174300922339015, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/expression.py": 1248029135284283479, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/pycparser/c_generator.py": 14922277346364091122, + "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_datetime.py": 3499461736474530062, + "venv/lib/python3.13/site-packages/gitdb/test/test_util.py": 541144638852210407, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/scoping.py": 18223258186431020473, + "venv/lib/python3.13/site-packages/cryptography/fernet.py": 10137792148038140630, + "venv/lib/python3.13/site-packages/pycparser/ply/ygen.py": 5520340773074632724, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/WHEEL": 11630459739183915695, + "venv/lib/python3.13/site-packages/pygments/styles/onedark.py": 17580335614588531275, + "venv/lib/python3.13/site-packages/numpy/core/numeric.py": 17025007229779320230, + "venv/lib/python3.13/site-packages/passlib/handlers/fshp.py": 13298827601291507295, + "venv/lib/python3.13/site-packages/pygments/lexers/slash.py": 8320676560518108343, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalar_methods.py": 14881910898871057761, + "venv/lib/python3.13/site-packages/pygments/scanner.py": 5640381644804445932, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE": 16499431172938528491, + "venv/lib/python3.13/site-packages/websockets/client.py": 5229500079651465772, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/RECORD": 18294169019244826301, + "frontend/src/routes/settings/EnvironmentsTab.svelte": 1326318857426265025, + "frontend/build/_app/immutable/chunks/BtMNxLZr.js": 5550630982455761657, + "backend/src/core/superset_client/_charts.py": 8811593556038212857, + "venv/lib/python3.13/site-packages/passlib/utils/handlers.py": 10182859005870689026, + "venv/lib/python3.13/site-packages/pandas/io/formats/format.py": 3364941338174434661, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/zip-safe": 15240312484046875203, + "backend/src/services/clean_release/mappers.py": 8684357784135236729, + "backend/tests/services/clean_release/test_approval_service.py": 8359796700245201345, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_unique.py": 16285418015531891530, + "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.pyi": 14150710436003340771, + "venv/lib/python3.13/site-packages/cryptography/x509/extensions.py": 10197248868682803019, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_cpp_exception.py": 11851283355840567373, + "backend/src/services/validation_run_service.py": 5527352359336135164, + "venv/lib/python3.13/site-packages/authlib/integrations/django_client/integration.py": 13610682193839598457, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/WHEEL": 9788895026336324100, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro.pyi": 3145980717589050713, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/connectionpool.py": 10453724680327835821, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/nested_secrets.py": 15691917061715429369, + "backend/src/core/superset_client/_databases.py": 7987972129012382620, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_sas.py": 9446226619493404132, + "venv/lib/python3.13/site-packages/anyio/_core/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/websockets/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ma.pyi": 8186102816080813799, + "venv/lib/python3.13/site-packages/smmap/test/test_buf.py": 6910367739329016619, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/reduce.py": 14976712507854054776, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_extension_array_equal.py": 16119106336497630796, + "backend/src/plugins/translate/preview_session_serializer.py": 8901687711861433007, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/naming.py": 14503932124671438340, + "venv/lib/python3.13/site-packages/PIL/DcxImagePlugin.py": 11767274218348117481, + "venv/lib/python3.13/site-packages/idna-3.11.dist-info/WHEEL": 8600534672961461758, + "frontend/src/lib/api/translate.js": 18140498250896378509, + "venv/lib/python3.13/site-packages/gitdb/db/mem.py": 15823812455996199993, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/WHEEL": 16097436423493754389, + "backend/src/services/clean_release/approval_service.py": 15944489428318420008, + "backend/src/services/dataset_review/__init__.py": 15781509495698823404, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_integer/foo77.f": 12000068001851270396, + "venv/lib/python3.13/site-packages/authlib/oauth1/__init__.py": 3692257288065292607, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_join.py": 17508073052750406350, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_concatenate_chunks.py": 9693420220003544490, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_shares_memory.py": 2911029123657970431, + "venv/lib/python3.13/site-packages/numpy/random/bit_generator.pxd": 14261507718442469988, + "venv/lib/python3.13/site-packages/dateutil/tz/_common.py": 9009072600471223066, + "frontend/build/_app/immutable/chunks/DCG5F3ic.js": 10038366451600899187, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/__init__.py": 4752355175318979033, + "venv/lib/python3.13/site-packages/pandas/tests/util/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/PIL/_avif.cpython-313-x86_64-linux-gnu.so": 5243449968857258659, + "venv/lib/python3.13/site-packages/h11/_headers.py": 7592730288271984585, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_where.py": 14167991754625133668, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_infer_datetimelike.py": 17304541521108700317, + "venv/lib/python3.13/site-packages/authlib/__init__.py": 8957417237987377675, + "venv/lib/python3.13/site-packages/apscheduler/executors/base.py": 1980520974511822101, + "venv/lib/python3.13/site-packages/PIL/ImageSequence.py": 16459886231802763032, + "venv/lib/python3.13/site-packages/PIL/FliImagePlugin.py": 13364963053197422923, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_py.py": 13809503317864539103, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/common/block.f": 10727418304254548946, + "venv/lib/python3.13/site-packages/PIL/Image.py": 13615925856053031482, + "venv/lib/python3.13/site-packages/pycparser/ply/__init__.py": 5040371336745852622, + "venv/lib/python3.13/site-packages/iniconfig/exceptions.py": 16501270224069836264, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/logging.py": 2426447364230673649, + "venv/lib/python3.13/site-packages/urllib3/connectionpool.py": 7493427857878469165, + "venv/lib/python3.13/site-packages/pandas/core/interchange/dataframe_protocol.py": 12857147443873820285, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/__init__.py": 16532856661318424631, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_npfuncs.py": 6132674295193898715, + "venv/lib/python3.13/site-packages/sqlalchemy/event/attr.py": 5971663429221923939, + "venv/lib/python3.13/site-packages/numpy/lib/_nanfunctions_impl.pyi": 12566839271245057531, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/loading.py": 3460142472461437916, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/ext.py": 8361831054662096695, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/dtype.pyi": 465999539608816848, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_constructors.py": 7466113171256856591, + "venv/bin/py.test": 2593802493707545818, + "frontend/src/routes/admin/settings/+page.svelte": 15536865086528222650, + "venv/lib/python3.13/site-packages/jose/backends/base.py": 12795468809472351388, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_arithmetic.py": 17449383588949771785, + "frontend/src/routes/translate/dictionaries/[id]/+page.svelte": 17719561272401762626, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py3-objarr.npy": 17303060773267383537, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate.py": 16723865897349422996, + "venv/lib/python3.13/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz": 17626265752554406355, + "venv/lib/python3.13/site-packages/charset_normalizer/md.py": 2029760700380476138, + "frontend/build/_app/immutable/chunks/BxfreSRb.js": 7524659291169347564, + "backend/git_repos/remote/test-repo.git/info/exclude": 6403833611826357791, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/lower_f2py_fortran.f90": 13315882216322269383, + "venv/lib/python3.13/site-packages/authlib/oidc/core/errors.py": 18154419146257747681, + "venv/lib/python3.13/site-packages/pydantic/v1/__init__.py": 1642038155370734658, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/METADATA": 7727489762869155085, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_join.py": 13115782559805895662, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_nep50_promotions.py": 6318578947214302182, + "venv/lib/python3.13/site-packages/pluggy/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/cffi/_imp_emulation.py": 17246725564704952212, + "venv/lib/python3.13/site-packages/pandas/tests/window/conftest.py": 10673264126684571493, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/METADATA": 6960169108624303030, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/decl_class.py": 6328411894571735935, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_asof.py": 8656532774394927388, + "venv/lib/python3.13/site-packages/_pytest/fixtures.py": 1442767529726551116, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_to_julian_date.py": 6868080396693831272, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_numba.py": 203614377324678234, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/locators.py": 7638945613579396718, + "venv/lib/python3.13/site-packages/pandas/_libs/missing.cpython-313-x86_64-linux-gnu.so": 1990755879067132155, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/__init__.py": 13584649922093198724, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_numba.py": 18148155441554555618, + "venv/lib/python3.13/site-packages/yaml/parser.py": 18021832376874455801, + "venv/lib/python3.13/site-packages/pytest_asyncio/__init__.py": 8162213292669110211, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_network.py": 13159427333040109523, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/philox-testset-1.csv": 2202360898679162333, + "backend/git_repos/remote/test-repo.git/objects/e9/1109abe29d5228675fecd6fc38a097147c090d": 15716642455993350072, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_extint128.py": 11074657869101074458, + "venv/lib/python3.13/site-packages/websockets/asyncio/router.py": 15039562376314233669, + "venv/lib/python3.13/site-packages/fastapi/_compat/v2.py": 15078491685917047095, + "venv/lib/python3.13/site-packages/PIL/_version.py": 3025206805667405876, + "venv/lib/python3.13/site-packages/numpy/_core/numerictypes.py": 6205675182996213576, + "venv/lib/python3.13/site-packages/pip/_internal/utils/glibc.py": 12335359492756627313, + "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/__init__.py": 9083396324667433335, + "models": 14346352665111990852, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_month.py": 14597470286884431085, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_constructors.py": 2786493777737472376, + "venv/lib/python3.13/site-packages/pydantic/warnings.py": 5142352784799639092, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_musllinux.py": 2423350951094915747, + "frontend/playwright-report/data/a19c216148b1612f8e11679d34071559b77021a0.png": 2734494351837969206, + "venv/lib/python3.13/site-packages/starlette/py.typed": 15130871412783076140, + "backend/test_auth.db": 18214842050920965999, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arrayprint.py": 13335063050941743734, + "venv/lib/python3.13/site-packages/ecdsa/util.py": 10543788809724099209, + "frontend/src/routes/dashboards/__tests__/dashboard-profile-override.integration.test.js": 15198772446275187033, + "backend/src/core/encryption_key.py": 5870186928729062534, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi": 16048852379621461316, + "venv/lib/python3.13/site-packages/attr/_cmp.pyi": 14443711863388606665, + "venv/lib/python3.13/site-packages/pydantic/networks.py": 15767095796055034509, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufuncs.py": 12732599294816239111, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_at_time.py": 15352346149584081864, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_ops.py": 16346030307660048773, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_repeat.py": 11360772447747837958, + "venv/lib/python3.13/site-packages/pygments/lexers/_stata_builtins.py": 18053452765493556047, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_conversion.py": 7507083194555424923, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/conftest.py": 2643915042664055969, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_indexing.py": 5063545640498065297, + "venv/lib/python3.13/site-packages/pygments/lexers/eiffel.py": 8964563077187051946, + "venv/lib/python3.13/site-packages/websockets/sync/client.py": 10892557975919033983, + "venv/lib/python3.13/site-packages/pip/_internal/utils/virtualenv.py": 14416705841810221305, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/constant_time.py": 2499026008403328245, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_compat.py": 4677414058216516380, + "venv/lib/python3.13/site-packages/git/repo/base.py": 13975465345838683533, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/formatters/html.py": 1918541918263449443, + "venv/lib/python3.13/site-packages/numpy/_pytesttester.pyi": 5750506937526308405, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/_version.py": 15336513445621042105, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/wheel.py": 828222664427570058, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libk5crypto-b1f99d5c.so.3.1": 10669523137596317954, + "backend/src/plugins/translate/__tests__/test_preview.py": 13085659611728720229, + "venv/lib/python3.13/site-packages/sqlalchemy/util/_concurrency_py3k.py": 7301817934902711510, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi": 8666343427862784832, + "venv/lib/python3.13/site-packages/pygments/lexers/rebol.py": 10460732731157940232, + "venv/lib/python3.13/site-packages/pip/_internal/models/installation_report.py": 14534544543677907640, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/asymmetric_key.py": 14948661854506285135, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_astype.py": 7542068949396266883, + "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/WHEEL": 5179340427739743287, + "backend/src/models/__tests__/test_report_models.py": 18076243829002249148, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_hist_box_by.py": 16197297231683144299, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_libgroupby.py": 9985769511561272200, + "venv/lib/python3.13/site-packages/pandas/io/sas/sasreader.py": 12766780210114366112, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/inference.py": 2786441797589123900, + "venv/lib/python3.13/site-packages/pyasn1/codec/ber/eoo.py": 5126566925877730303, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_pickle.py": 388513670243918273, + "venv/lib/python3.13/site-packages/fastapi/middleware/__init__.py": 5289703478893407762, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE": 17675192170670564526, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_groupby_shift_diff.py": 1210657479716368827, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_extending.py": 10202091354750153497, + "venv/lib/python3.13/site-packages/sqlalchemy/util/preloaded.py": 3719702436309355562, + "venv/lib/python3.13/site-packages/numpy/_typing/_extended_precision.py": 4201820494689784136, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/ccalendar.pyi": 15789956857032062129, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/dml.py": 6519732236745017861, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/stride_tricks.pyi": 8257977532799807847, + "venv/lib/python3.13/site-packages/pygments/formatters/irc.py": 2133711525226123259, + "venv/lib/python3.13/site-packages/pygments/lexers/foxpro.py": 14032656072384708293, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_integer.py": 16102640589300356639, + "venv/lib/python3.13/site-packages/numpy/py.typed": 15130871412783076140, + "frontend/build/_app/immutable/chunks/C2DipQLT.js": 333538434576244034, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py": 5728866271812501558, + "venv/lib/python3.13/site-packages/_pytest/recwarn.py": 15312759837838083596, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_half.py": 3121836756584726126, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/METADATA": 16700674024421191168, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/protocol.py": 932296179250981622, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/WHEEL": 6514509858522675228, + "venv/lib/python3.13/site-packages/pandas/tests/apply/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/test_register_accessor.py": 16661086720613729974, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_comparison.py": 5348781442514871089, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_tooltip.py": 853808724844451770, + "venv/lib/python3.13/site-packages/pandas/_libs/writers.cpython-313-x86_64-linux-gnu.so": 6878855127769203372, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarinherit.py": 15240535501243623986, + "venv/lib/python3.13/site-packages/pygments/lexers/matlab.py": 1880915927722177654, + "venv/lib/python3.13/site-packages/pygments/lexers/sieve.py": 15757825442941567629, + "venv/bin/jsonschema": 16516374846693491442, + "venv/lib/python3.13/site-packages/itsdangerous/signer.py": 3694661094753475840, + "venv/lib/python3.13/site-packages/multipart/multipart.py": 26386459953377432, + "venv/lib/python3.13/site-packages/pygments/styles/paraiso_light.py": 15941591873059208999, + "backend/src/api/routes/storage.py": 17448492494022569347, + "backend/src/services/clean_release/stages/internal_sources_only.py": 15680055221844544848, + "backend/git_repos/remote/test-repo.git/objects/93/9cc583a18267406014c57617ccb557569f6aaf": 5474754694741999746, + "venv/lib/python3.13/site-packages/httpx/_status_codes.py": 1758440600462491839, + "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/test_setops.py": 13440916133402971190, + "venv/lib/python3.13/site-packages/PIL/ContainerIO.py": 7551929914241379005, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_real/foo90.f90": 58572216018544419, + "venv/lib/python3.13/site-packages/pandas/tests/interchange/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/_libs/byteswap.cpython-313-x86_64-linux-gnu.so": 17856848989827220388, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/lexers/jvm.py": 897669925284011089, + "frontend/src/routes/dashboards/[id]/components/DashboardTaskHistory.svelte": 8800115118935646769, + "backend/src/services/dataset_review/orchestrator.py": 8780497744077644822, + "frontend/src/routes/validation/+page.svelte": 9845194549295283559, + "venv/lib/python3.13/site-packages/pandas/core/reshape/api.py": 16364136812252343076, + "venv/lib/python3.13/site-packages/idna/codec.py": 4260241549062101779, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/halffloat.h": 16913381775994652343, + "backend/src/core/task_manager/task_logger.py": 12820629458199400734, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi": 7385072545198817771, + "backend/git_repos/remote/test-repo.git/hooks/pre-commit.sample": 102291230237676317, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_ufunclike.py": 13752381070039804384, + "backend/src/plugins/translate/sql_generator.py": 900251269659959067, + "venv/lib/python3.13/site-packages/requests/packages.py": 7733041271118298220, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/RECORD": 10052481303799123207, + "venv/lib/python3.13/site-packages/ecdsa/ellipticcurve.py": 15624510849346629163, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/scanner.py": 5640381644804445932, + "venv/lib/python3.13/site-packages/pygments/styles/tango.py": 12389250878249075539, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/hook-numpy.pyi": 14233146512272397376, + "venv/lib/python3.13/site-packages/pip/_internal/locations/_sysconfig.py": 4773855595767526182, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/WHEEL": 7127684561765977531, + "venv/lib/python3.13/site-packages/jeepney/tests/test_bus.py": 4260827599660763641, + "venv/lib/python3.13/site-packages/numpy/f2py/cb_rules.py": 11397521081216402594, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_chebyshev.py": 8054411443686791426, + "venv/lib/python3.13/site-packages/pandas/tests/config/test_localization.py": 9524481848419616725, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_indexing.py": 546024765756472196, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/plugin.py": 16042078006552521613, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/schema.py": 5391655516870611151, + "venv/lib/python3.13/site-packages/pyasn1/type/constraint.py": 16776615503418773283, + "venv/lib/python3.13/site-packages/PIL/BufrStubImagePlugin.py": 5520941821175895889, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/structs.py": 4479429145468072604, + "venv/lib/python3.13/site-packages/pygments/lexers/pawn.py": 18127303119414402594, + "venv/lib/python3.13/site-packages/pygments/lexers/_googlesql_builtins.py": 12251289884604745945, + "venv/lib/python3.13/site-packages/pygments/lexers/text.py": 10572727755736597715, + "frontend/src/routes/datasets/review/__tests__/dataset_review_entry.ux.test.js": 5439236328736424365, + "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/RECORD": 3649834117451110628, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/identity.py": 326059526167697655, + "frontend/src/lib/components/health/ScheduleAtAGlance.svelte": 3094566922259479417, + "frontend/src/lib/components/translate/TranslationRunGlobalIndicator.svelte": 16210598715819306972, + "backend/alembic/versions/a5b6c7d8e9f0_set_null_ondelete_for_task_records_env_fk.py": 17528129825127496932, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/__init__.py": 8924316361489544973, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/response.py": 15004896908941411698, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_monotonic.py": 11817523305776951162, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/aws.py": 1364297790170663941, + "backend/tests/services/clean_release/test_compliance_task_integration.py": 682622548217611215, + "venv/lib/python3.13/site-packages/PIL/TgaImagePlugin.py": 9208942494595222259, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_periodindex.py": 13430003945574795792, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_ordered.py": 13827016781743929164, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_indexing.py": 14717641281147152159, + "venv/lib/python3.13/site-packages/numpy/polynomial/__init__.pyi": 8708830448398500675, "venv/lib/python3.13/site-packages/pip/_internal/commands/configuration.py": 1608697090566485893, "venv/lib/python3.13/site-packages/sqlalchemy/util/_py_collections.py": 16825222625411635946, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/retry.py": 17371295199208325375, - "frontend/src/routes/+layout.svelte": 2748734957389681795, - "venv/lib/python3.13/site-packages/pip/_vendor/distro/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/git/objects/commit.py": 12317865358846331802, - "backend/src/core/superset_client/_user_projection.py": 16484323195475306883, - "venv/lib/python3.13/site-packages/PIL/SgiImagePlugin.py": 6916200065790425497, - "backend/src/models/assistant.py": 15004657265198809796, - "backend/src/services/clean_release/report_builder.py": 6953311294119437848, - "backend/src/services/profile_preference_service.py": 58722622434127499, - "backend/src/plugins/translate/__tests__/test_dictionary_crud.py": 17953628511626558088, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/etcd.py": 4078354986605069279, - "venv/lib/python3.13/site-packages/numpy/core/_dtype_ctypes.py": 17055498803745289016, - "backend/git_repos/remote/test-repo.git/objects/3e/05ec6ef6504483c4bc7d00f0d0272c38ec661f": 11182016264585388842, - "backend/src/api/routes/datasets.py": 5124620784591228136, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_inf.py": 8659210689723088321, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi": 4376871621615688626, - "frontend/build/_app/immutable/chunks/aniH9ONl.js": 11297774342683903539, - "backend/src/services/rbac_permission_catalog.py": 8206280020500996966, - "venv/lib/python3.13/site-packages/pandas/core/reshape/reshape.py": 5387892304726762127, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_can_hold_element.py": 5406431247116557833, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/websockets/exceptions.py": 12048063047468402740, - "venv/lib/python3.13/site-packages/anyio/__init__.py": 12752386096259972231, - "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/functions.py": 14107377669163193871, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_set.py": 534498057184394558, - "venv/lib/python3.13/site-packages/pip/_internal/network/cache.py": 10606522397693824641, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_real.py": 5283415082530228716, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_api.py": 13739775047493489785, - "venv/lib/python3.13/site-packages/greenlet/tests/test_throw.py": 4119265751381210399, - "backend/alembic/versions/aa1b2c3d4e5f_drop_deprecated_translate_columns.py": 15433357059529111004, - "venv/lib/python3.13/site-packages/ecdsa/_sha3.py": 10353612776869489378, - "venv/lib/python3.13/site-packages/pydantic/schema.py": 83238111330132033, - "frontend/src/types/backup.ts": 1741234034896689348, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/version.py": 6401479036177132374, - "venv/lib/python3.13/site-packages/numpy/rec/__init__.py": 7467092880535460658, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/common.py": 10996276696597806957, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_unicode.py": 1103608932321322989, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_constructors.py": 3440572832185940666, - "venv/lib/python3.13/site-packages/pygments/lexers/savi.py": 95400050302239274, - "backend/src/services/maintenance/_orchestrators.py": 995360865260101856, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/scanner.py": 5640381644804445932, - "venv/lib/python3.13/site-packages/urllib3/_collections.py": 3440910792774742262, - "venv/lib/python3.13/site-packages/authlib/oidc/registration/claims.py": 4161520263207458028, - "venv/lib/python3.13/site-packages/pydantic/version.py": 3699343596421001359, - "venv/bin/pyrsa-verify": 6762739642629904442, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler.pyi": 9003794318682878317, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/constrain.py": 6513876973118703677, - "frontend/src/routes/tools/storage/+page.svelte": 2651964385884112547, - "venv/lib/python3.13/site-packages/numpy/fft/_pocketfft.pyi": 1521384724035973688, - "venv/lib/python3.13/site-packages/numpy/_core/_internal.py": 13056946834347643109, - "venv/lib/python3.13/site-packages/ecdsa/numbertheory.py": 13538480862642502330, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/rule.py": 5318344538761246105, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE": 13479831069780783137, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_produces_warning.py": 750781117570375777, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/macos.py": 17442393555211213147, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_unique.py": 6234921572794573905, - "venv/lib/python3.13/site-packages/attr/filters.py": 14156141488477438777, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/styles/_mapping.py": 11752660241391232497, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/precision.f90": 5518911932373565642, - "venv/lib/python3.13/site-packages/pydantic/validators.py": 8292819706488319845, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/RECORD": 963865046004908868, - "venv/lib/python3.13/site-packages/websockets/legacy/client.py": 4032878587330592478, - "venv/lib/python3.13/site-packages/pandas/core/window/__init__.py": 15180240812077877933, - "venv/lib/python3.13/site-packages/fastapi/middleware/asyncexitstack.py": 7733356903092860495, - "venv/lib/python3.13/site-packages/pandas/_testing/asserters.py": 272063856832951430, - "venv/lib/python3.13/site-packages/ecdsa/der.py": 9374566189581725372, - "venv/lib/python3.13/site-packages/attr/_cmp.pyi": 14443711863388606665, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/interfaces.py": 4890958419958257958, - "venv/lib/python3.13/site-packages/PIL/Image.py": 13615925856053031482, - "frontend/build/_app/immutable/nodes/40.CNZCEv_K.js": 15374574306536825164, - "backend/src/core/task_manager/manager.py": 4491234835514372291, - "venv/lib/python3.13/site-packages/numpy/_core/overrides.py": 252940520997718714, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/h11/__init__.py": 222801976520197308, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_expanding.py": 12504275097476819918, - "frontend/src/lib/ui/Icon.svelte": 2201964532717139995, - "venv/lib/python3.13/site-packages/referencing/__init__.py": 10093824711214801917, - "venv/lib/python3.13/site-packages/pillow.libs/libbrotlidec-b57ddf63.so.1.2.0": 10032590058372320813, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/jwt_bearer.py": 6973859422068490274, - "backend/git_repos/remote/test-repo.git/objects/99/38d17c3f4199e53e4d4ebc253fe9c840caa505": 8414792171590415839, - "venv/lib/python3.13/site-packages/jsonschema/_keywords.py": 949562792260528762, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_astype.py": 4975959187621745360, - "frontend/src/lib/utils/debounce.js": 16884470786640632815, - "venv/lib/python3.13/site-packages/websockets/asyncio/client.py": 5694225754072131767, - "venv/lib/python3.13/site-packages/websockets/protocol.py": 6401227903827084901, - "frontend/build/_app/immutable/chunks/KxePT7Ip.js": 8106111085962356816, - "venv/lib/python3.13/site-packages/httpx/_status_codes.py": 1758440600462491839, - "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/WHEEL": 2357997949040430835, - "frontend/src/lib/api/translate/datasources.js": 17202165717960970061, - "venv/lib/python3.13/site-packages/pyasn1/type/namedtype.py": 1859990775875190116, - "frontend/src/lib/stores/environmentContext.js": 1762535408632658714, - "backend/tests/test_resource_hubs.py": 3990299394875930767, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/numpy/tests/test_configtool.py": 8208415015478205502, - "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/arrays/boolean/test_indexing.py": 16264430536704066847, - "venv/lib/python3.13/site-packages/pandas/io/spss.py": 864838144958947906, - "venv/lib/python3.13/site-packages/git/objects/__init__.py": 2110615482320355676, - "venv/lib/python3.13/site-packages/pandas/io/api.py": 8275376846208437741, - "venv/lib/python3.13/site-packages/cffi/ffiplatform.py": 6782148110863549472, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi": 17458894097215345719, - "venv/lib/python3.13/site-packages/pydantic/v1/class_validators.py": 6471688474853407718, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/hist.py": 10928173425078493095, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_normalize.py": 3203921571999101793, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_odswriter.py": 5134385709728943904, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/WHEEL": 3749476255729626245, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_value_attrspec.py": 7741590618654448240, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_engines.py": 2790877023773269276, - "venv/lib/python3.13/site-packages/PIL/XVThumbImagePlugin.py": 7472134175570205454, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE": 4274653168153720331, - "venv/lib/python3.13/site-packages/pygments/lexers/ambient.py": 18106929781201758080, - "backend/src/services/__tests__/test_llm_provider.py": 13082073379648782691, - "venv/lib/python3.13/site-packages/charset_normalizer/md.py": 2029760700380476138, - "venv/lib/python3.13/site-packages/pygments/lexers/carbon.py": 6753624244809529841, - "venv/lib/python3.13/site-packages/numpy/_utils/_convertions.py": 12886275429547303345, - "venv/lib/python3.13/site-packages/jeepney/tests/test_bindgen.py": 8637878018232418583, - "venv/lib/python3.13/site-packages/yaml/parser.py": 18021832376874455801, - "venv/lib/python3.13/site-packages/pandas/core/computation/expressions.py": 10684284531040203747, - "venv/lib/python3.13/site-packages/pandas/core/computation/check.py": 16048939716341154196, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_logical.py": 6242457515917145500, - "frontend/src/routes/settings/+page.ts": 3719008513710037840, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arrayobject.py": 13337664596833150958, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_resolution.py": 6076761538303762297, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/__init__.py": 7526309124863950484, - "frontend/src/services/taskService.js": 11368052191249479533, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/candidates.py": 5951912505933673835, - "venv/lib/python3.13/site-packages/pandas/core/reshape/api.py": 16364136812252343076, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_asof.py": 18383318159051131669, - "venv/lib/python3.13/site-packages/numpy/f2py/crackfortran.py": 12796890117561096360, - "venv/lib/python3.13/site-packages/pandas/io/pytables.py": 17482934215513855928, - "frontend/build/_app/immutable/nodes/26.BHpCifr3.js": 16416419328529145595, - "venv/lib/python3.13/site-packages/_pytest/_code/code.py": 5248836309618416369, - "venv/lib/python3.13/site-packages/cryptography/hazmat/asn1/asn1.py": 8801155055979135092, - "venv/lib/python3.13/site-packages/passlib/tests/backports.py": 17098448557554464521, - "venv/lib/python3.13/site-packages/greenlet/greenlet_slp_switch.hpp": 1694714764745718414, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_deprecations.py": 6015734648984591027, - "venv/lib/python3.13/site-packages/pydantic/v1/types.py": 10761779263335288559, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_timedelta_range.py": 15081095442418142820, - "frontend/src/routes/admin/users/+page.svelte": 4464001185352807842, - "venv/lib/python3.13/site-packages/passlib/utils/binary.py": 13123975436674239306, - "frontend/src/services/storageService.js": 14408290095426695791, - "backend/src/api/routes/translate/_run_list_routes.py": 1259398917100338978, - "backend/git_repos/remote/test-repo.git/objects/f7/6ee984d9d47c3cd0b362fdf60a47162bbc202d": 5351983130474596028, - "venv/lib/python3.13/site-packages/PIL/ImageFile.py": 15765130658900167517, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_timedelta.py": 17052461094717926538, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23533.f": 12558972205518833024, - "venv/lib/python3.13/site-packages/websockets/sync/connection.py": 2791040669094103200, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkrb5support-d0bcff84.so.0.1": 16819924515291719993, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_case_when.py": 4133174129660834805, - "frontend/src/lib/api/translate/dictionaries.js": 13928848549982189213, - "frontend/build/_app/immutable/chunks/B0K5kI6n.js": 6208436857520817685, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_latex.py": 2628895559914914693, - "venv/lib/python3.13/site-packages/pandas/io/formats/html.py": 11849941990375030601, - "venv/bin/websockets": 12099863324306500376, - "backend/src/services/dataset_review/semantic_resolver.py": 8447496149691924829, - "venv/lib/python3.13/site-packages/cffi/lock.py": 13507686939203117974, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/crud.py": 805684028038896506, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/WHEEL": 1598805043198466373, - "frontend/build/_app/immutable/nodes/22.CZgjFTnE.js": 15851348200685649144, - "venv/lib/python3.13/site-packages/passlib/tests/test_utils.py": 10362977406431569031, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_function_base.pyi": 10972502518588022706, - "frontend/src/components/Footer.svelte": 17748559656923032, - "venv/lib/python3.13/site-packages/secretstorage/collection.py": 17903258621904912493, - "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/pandas/tests/copy_view/test_functions.py": 16376319335326812580, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/METADATA": 3390257212824996989, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/base.py": 11386927749822539057, - "venv/lib/python3.13/site-packages/pandas/io/excel/_base.py": 1251545894005373734, - "venv/lib/python3.13/site-packages/pyasn1/compat/integer.py": 7365270971777550573, - "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_impl.py": 12056958946481531279, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_client/__init__.py": 9997757256282720103, - "venv/lib/python3.13/site-packages/numpy/_core/strings.pyi": 1981676808027146409, - "venv/lib/python3.13/site-packages/packaging/_musllinux.py": 2568338440457080365, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_tz_localize.py": 13699016868476153393, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/einsumfunc.pyi": 200771351328522379, - "venv/lib/python3.13/site-packages/websockets/extensions/permessage_deflate.py": 12957105912018691390, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_arithmetic.py": 14858832264660410908, - "venv/lib/python3.13/site-packages/jaraco/classes/ancestry.py": 11742194518360056470, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/websockets/auth.py": 499195617702591757, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA.py": 17817123894903120316, - "venv/lib/python3.13/site-packages/fastapi/openapi/docs.py": 16735218221639179927, - "venv/lib/python3.13/site-packages/_pytest/threadexception.py": 10464996327276961035, - "venv/lib/python3.13/site-packages/cffi/_cffi_include.h": 13094899814611950155, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/validator.py": 11486125578281617670, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_json_table_schema_ext_dtype.py": 13021437050542691118, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/android.py": 8607703347015852195, - "venv/lib/python3.13/site-packages/pygments/styles/abap.py": 11543320440974964547, - "venv/lib/python3.13/site-packages/pygments/lexers/mime.py": 7768464764849718825, - "venv/bin/pip": 13861749540792881808, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/token_endpoint.py": 6118770923176099889, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_case_justify.py": 8204537837649550062, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/METADATA": 14608873187265321271, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_to_numpy.py": 14845850776625255794, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/shape.py": 13410030168622484801, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_bin_groupby.py": 14831211659124136806, - "frontend/src/lib/ui/PageHeader.svelte": 3800784212388586861, - "venv/lib/python3.13/site-packages/numpy.libs/libquadmath-96973f99-934c22de.so.0.0.0": 5098713761946118139, - "frontend/playwright-report/trace/codicon.DCmgc-ay.ttf": 15579197054804464248, - "venv/lib/python3.13/site-packages/pandas/tests/test_col.py": 14781555956509956371, - "venv/lib/python3.13/site-packages/urllib3/util/ssltransport.py": 1175688460659745788, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/format": 12697928260201325593, - "frontend/src/routes/admin/roles/+page.svelte": 1343040884276845574, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize.py": 15511055314565873928, - "venv/lib/python3.13/site-packages/more_itertools/recipes.py": 5254043689078173976, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/testing/_private/utils.py": 3646474165295296669, - "venv/lib/python3.13/site-packages/websockets/legacy/handshake.py": 376095144657994920, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py": 6067836157632573182, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/pool/__init__.py": 4337679908168515343, - "venv/lib/python3.13/site-packages/pygments/styles/paraiso_light.py": 15941591873059208999, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/mypy.ini": 4763385838822685881, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/legacy/resolver.py": 2492962412506082234, - "venv/lib/python3.13/site-packages/_pytest/faulthandler.py": 13329320306353718649, - "venv/lib/python3.13/site-packages/pandas/core/computation/ops.py": 18250656489649699560, - "venv/lib/python3.13/site-packages/pandas/_libs/ops_dispatch.cpython-313-x86_64-linux-gnu.so": 5284769758475394095, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_cpu.h": 13799366908726531089, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_api.py": 5813060676255093777, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_cython_aggregations.py": 10818895573637904764, - "backend/src/plugins/translate/preview_executor.py": 7636554040403814604, - "venv/lib/python3.13/site-packages/tzlocal/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/strptime.cpython-313-x86_64-linux-gnu.so": 12654188486128938170, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/subcomponents.py": 10365594934527289233, - "venv/lib/python3.13/site-packages/charset_normalizer/cli/__init__.py": 9702005609966176016, - "backend/src/plugins/translate/__init__.py": 12400577052797809611, - "venv/lib/python3.13/site-packages/httpcore/_api.py": 16499985295426060327, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/dtypes.py": 9839461501970023861, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/models.py": 16636119441941357281, - "venv/lib/python3.13/site-packages/cffi/parse_c_type.h": 9889309594462820068, - "venv/lib/python3.13/site-packages/starlette/datastructures.py": 12097180838087229563, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi": 9405122752084210696, - "venv/lib/python3.13/site-packages/numpy/testing/_private/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatter.py": 16499277113779414101, - "venv/lib/python3.13/site-packages/itsdangerous/__init__.py": 6969210114978365656, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/WHEEL": 8600534672961461758, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log10.csv": 13441294827017400897, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_copy.py": 11335108864615756235, - "venv/lib/python3.13/site-packages/pandas/core/arrays/_utils.py": 11574890848475750509, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_partial_slicing.py": 16219611534574666182, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_take.py": 9847808489301498487, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ufuncs.py": 12732599294816239111, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/provision.py": 7362363963464621570, - "venv/lib/python3.13/site-packages/pydantic/v1/annotated_types.py": 12925825196690299531, - "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/RECORD": 15574202654585730126, - "venv/lib/python3.13/site-packages/_pytest/_py/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_datetime.py": 7862725028865965163, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_like.pyi": 1968570015765106620, - "venv/lib/python3.13/site-packages/_pytest/helpconfig.py": 3033477806668470951, - "venv/lib/python3.13/site-packages/numpy/polynomial/hermite_e.pyi": 13068936038543812082, - "frontend/src/routes/datasets/__tests__/DatasetPreview.test.js": 12281160027416292128, - "backend/src/services/clean_release/approval_service.py": 15944489428318420008, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_categorical.py": 12897027063618569795, - "venv/lib/python3.13/site-packages/pip/_internal/utils/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic/_migration.py": 17982816821930887921, - "venv/lib/python3.13/site-packages/_pytest/mark/expression.py": 1821437025841201912, - "venv/lib/python3.13/site-packages/pydantic/_internal/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/jsonschema_specifications/_core.py": 14812112544772987164, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_format.py": 5231304674283854194, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_arrayobject.py": 9578555381494297966, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/meson.build": 17468163147765825687, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_bar.py": 7791068963246005463, - "venv/lib/python3.13/site-packages/pandas/io/parquet.py": 14415622950469421518, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel_legacy.py": 12735901522735836481, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_extract.py": 14547819021277949280, - "frontend/build/_app/immutable/nodes/38.lN6lyang.js": 10345064950322542935, - "backend/src/scripts/clean_release_cli.py": 5126837099976660772, - "venv/lib/python3.13/site-packages/pandas/core/util/hashing.py": 13106575357604888913, - "venv/lib/python3.13/site-packages/numpy/lib/mixins.py": 7404729635424818497, - "venv/lib/python3.13/site-packages/numpy/_core/_simd.pyi": 13553578040186939249, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html_table.tpl": 17198355067645888735, - "venv/lib/python3.13/site-packages/bcrypt/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/RECORD": 173225030102092319, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/greenlet/greenlet_msvc_compat.hpp": 12504008513945919250, - "backend/src/core/superset_client/_datasets.py": 9811357803863887067, - "venv/lib/python3.13/site-packages/fastapi/middleware/gzip.py": 436886407566263171, - "venv/lib/python3.13/site-packages/pandas/core/arrays/floating.py": 1215586266958421991, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_setitem.py": 10389770446834773837, - "venv/lib/python3.13/site-packages/pygments/lexers/c_like.py": 13004061780700827047, - "venv/lib/python3.13/site-packages/psycopg2/errorcodes.py": 6711830404954314463, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_append.py": 17016125916761365423, - "frontend/src/lib/components/reports/__tests__/fixtures/reports.fixtures.js": 10647302793388244094, - "frontend/build/_app/immutable/nodes/13.CWfoAyT-.js": 16342502651271133149, - "venv/lib/python3.13/site-packages/PIL/TiffImagePlugin.py": 6845043550424565106, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/json.py": 6429651405841289922, - "backend/src/services/clean_release/repositories/publication_repository.py": 11208425895213508165, - "backend/tests/test_maintenance_api.py": 2012388734813578069, - "venv/lib/python3.13/site-packages/requests/adapters.py": 17161109043243436200, - "venv/lib/python3.13/site-packages/pandas/_testing/_hypothesis.py": 12298650110193262367, - "venv/lib/python3.13/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4": 2483101806045986252, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/qt.py": 12828696264909048448, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/unused_registry.py": 10153622516112471812, - "venv/lib/python3.13/site-packages/pydantic/v1/config.py": 12050640083719340958, - "venv/lib/python3.13/site-packages/ecdsa/test_ellipticcurve.py": 11125783981574901613, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/default_comparator.py": 47118577003622736, - "venv/lib/python3.13/site-packages/passlib/__init__.py": 6987142392711441525, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_methods.py": 12694335778731418517, - "frontend/src/lib/components/translate/TranslationPreview.svelte": 3234775946311369733, - "venv/lib/python3.13/site-packages/uvicorn/workers.py": 7213290478118197047, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/errors.py": 14634768861119075506, - "venv/lib/python3.13/site-packages/apscheduler/triggers/combining.py": 1264860868414723829, - "venv/lib/python3.13/site-packages/keyring/backends/fail.py": 5792496235026678021, - "venv/lib/python3.13/site-packages/pygments/formatters/bbcode.py": 8614391937525677922, - "venv/lib/python3.13/site-packages/python_multipart/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_types.py": 651959450717569029, - "backend/src/api/routes/translate/_preview_routes.py": 16234500901707822839, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_join.py": 1697622393195784944, - "venv/lib/python3.13/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2": 13105940093474848953, - "venv/lib/python3.13/site-packages/PIL/ImageFilter.py": 10974179993355630141, - "venv/lib/python3.13/site-packages/_pytest/_io/wcwidth.py": 13515196388826152383, - "venv/lib/python3.13/site-packages/pycparser/__init__.py": 16499940957411260458, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/common.py": 16314033415206173235, - "venv/lib/python3.13/site-packages/_pytest/junitxml.py": 5871715626272366062, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/accumulate.py": 5780225603819849877, - "backend/src/plugins/translate/__tests__/test_inline_correction.py": 3644785257160613130, - "venv/lib/python3.13/site-packages/numpy/testing/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/sas.cpython-313-x86_64-linux-gnu.so": 16309838137741124637, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_repeat.py": 18394463352314692642, - "venv/lib/python3.13/site-packages/pygments/lexers/wgsl.py": 9718384325049172855, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/RECORD": 9461427699726982537, - "venv/lib/python3.13/site-packages/h11/py.typed": 12358286306858197118, - "venv/lib/python3.13/site-packages/pygments/lexers/_cl_builtins.py": 16540712925368297957, - "venv/lib/python3.13/site-packages/keyring/errors.py": 4587094338672775040, - "backend/src/services/git/_remote_providers.py": 11131218419284688941, - "backend/alembic/versions/e5f4d3c2b1a_add_policy_id_to_validation_results.py": 11168047633691803786, - "backend/git_repos/remote/test-repo.git/refs/heads/preprod": 2288780285329550368, - "venv/lib/python3.13/site-packages/numpy/ma/__init__.py": 214772578978182427, - "backend/src/services/clean_release/policy_engine.py": 3180817867716931725, - "venv/lib/python3.13/site-packages/jeepney/io/common.py": 15160647397460834508, - "venv/lib/python3.13/site-packages/git/db.py": 6680123567509774609, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/keywrap.py": 10424037418528425800, - "venv/lib/python3.13/site-packages/pandas/_libs/__init__.py": 17117112389651696580, - "backend/src/services/dataset_review/repositories/__tests__/test_session_repository.py": 13584543719626464409, - "venv/lib/python3.13/site-packages/pandas/_libs/tslib.cpython-313-x86_64-linux-gnu.so": 10742615805788605480, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/provision.py": 2676876852726658063, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_normalize.py": 7378656958631172603, - "venv/lib/python3.13/site-packages/numpy/typing/__init__.pyi": 10058149460938883683, - "venv/lib/python3.13/site-packages/pygments/lexers/webassembly.py": 17811970490091406867, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/licenses/LICENSE": 11986475601091748012, - "venv/lib/python3.13/site-packages/jose/constants.py": 10880650415673457194, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/horizontal_shard.py": 17615732108308858890, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py": 1437580234680265326, - "venv/lib/python3.13/site-packages/PIL/FpxImagePlugin.py": 18245056799205041866, - "venv/lib/python3.13/site-packages/pygments/lexers/smv.py": 8253688483040957894, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_pivot.py": 334735766122314163, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/METADATA": 13633829318759752611, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_datetimelike.py": 10294379314868108649, - "venv/lib/python3.13/site-packages/PIL/PpmImagePlugin.py": 7107324729714470853, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/starlette/__init__.py": 3252794766897205870, - "backend/src/core/superset_client/_databases.py": 7987972129012382620, - "venv/lib/python3.13/site-packages/charset_normalizer/version.py": 9948878594498587774, - "venv/lib/python3.13/site-packages/pandas/core/arrays/_mixins.py": 14293848457775268010, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/METADATA": 6557531107125553027, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/cache.py": 15037055977924167732, - "venv/lib/python3.13/site-packages/pygments/styles/bw.py": 869630132791421268, - "venv/lib/python3.13/site-packages/pandas/tests/io/generate_legacy_storage_files.py": 11015954144633661960, - "venv/lib/python3.13/site-packages/anyio/abc/_sockets.py": 15042495744291042062, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libpq-9b38f5e3.so.5.17": 9680474575710585826, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/__init__.py": 17454177076687312424, - "venv/lib/python3.13/site-packages/numpy/ma/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/jeepney/io/tests/utils.py": 10346859893683522113, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_astype.py": 8633811117672837999, - "venv/lib/python3.13/site-packages/starlette/middleware/wsgi.py": 12506262030845301606, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_indexing.py": 4063662953863959087, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_win32_console.py": 18092547253031555768, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_pyf_src.py": 12351476647369971852, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sample.py": 16877779557071324115, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/__init__.py": 4014740126161973332, - "venv/lib/python3.13/site-packages/numpy/lib/_twodim_base_impl.pyi": 15509415708991012734, - "venv/lib/python3.13/site-packages/pandas/core/indexing.py": 15507869313676722071, - "venv/lib/python3.13/site-packages/pandas/core/generic.py": 10174952306641057447, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_asof.py": 17616601748321325187, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/repr.py": 839417422880281122, - "venv/lib/python3.13/site-packages/uvicorn/loops/auto.py": 13086005977087619545, - "frontend/src/routes/dashboards/health/+page.svelte": 7530813351508809839, - "backend/tests/test_layout_utils.py": 2406415176637802126, - "venv/lib/python3.13/site-packages/dateutil/tz/_common.py": 9009072600471223066, - "frontend/src/lib/components/MaintenanceSettingsPanel.svelte": 11414690032093503841, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/fastapi/templating.py": 10760135144345238340, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_is_monotonic.py": 12899848089975919515, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timedeltas.cpython-313-x86_64-linux-gnu.so": 17089839649971421164, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_all_methods.py": 18227706645906325527, - "venv/lib/python3.13/site-packages/numpy/lib/_version.pyi": 10804755840730584157, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_ipython_compat.py": 12632271159842988561, - "venv/lib/python3.13/site-packages/pygments/lexers/ecl.py": 12886695201994337568, - "venv/lib/python3.13/site-packages/packaging/specifiers.py": 2800449842990194437, - "frontend/src/routes/migration/__tests__/migration_dashboard.ux.test.js": 17118608261683412409, - "venv/lib/python3.13/site-packages/uvicorn/_subprocess.py": 13965754246493254447, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_apply_relabeling.py": 5600949862632014700, - "venv/lib/python3.13/site-packages/pycparser/c_parser.py": 3954138286651284327, - "frontend/build/favicon.svg": 6451919037497541980, - "backend/alembic/versions/c4a3a2f74bfe_add_missing_columns_needs_review_.py": 4320606555167902916, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/conversion.cpython-313-x86_64-linux-gnu.so": 9014806524727977333, - "venv/lib/python3.13/site-packages/pygments/lexers/_sourcemod_builtins.py": 11809503654078535014, - "venv/lib/python3.13/site-packages/pygments/util.py": 4815334059917765852, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/type_check.pyi": 1599910480066368464, - "frontend/playwright-report/trace/assets/urlMatch-BYQrIQwR.js": 8070494174996726626, - "venv/lib/python3.13/site-packages/keyring/backends/SecretService.py": 17482492072907438453, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/char.pyi": 13143560686049627445, - "venv/lib/python3.13/site-packages/pandas/core/reshape/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/greenlet/PyModule.cpp": 3464405102256525511, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarinherit.py": 15240535501243623986, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_isin.py": 8136794647591341784, - "venv/lib/python3.13/site-packages/greenlet/tests/test_greenlet_trash.py": 6191655521667576604, - "venv/lib/python3.13/site-packages/packaging/requirements.py": 2896326326372719999, - "backend/src/services/profile_service.py": 7430451608615934464, - "venv/lib/python3.13/site-packages/httpcore/_ssl.py": 6665087294869504820, - "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension.c": 9318655518998644962, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_dtype.py": 5336980126536664360, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/dependency.py": 7300594038182867460, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/licenses/LICENSE": 12684353321716745791, - "venv/lib/python3.13/site-packages/pygments/lexers/pascal.py": 5992422120590352714, - "venv/lib/python3.13/site-packages/pygments/lexers/teal.py": 10004159499175716139, - "venv/lib/python3.13/site-packages/pygments/lexers/verification.py": 16645885125604874183, - "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension_cpp.cpp": 4590574206187223887, - "venv/lib/python3.13/site-packages/pillow.libs/libXau-154567c4.so.6.0.0": 4340972632724893052, - "frontend/src/routes/datasets/DatasetPreview.svelte": 4250995999947659034, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/traceback.py": 2535227583726271746, - "venv/lib/python3.13/site-packages/pandas/errors/cow.py": 14381282473643980776, - "venv/lib/python3.13/site-packages/pygments/lexers/apdlexer.py": 14222752852221009085, - "frontend/src/routes/datasets/__tests__/StatsBar.test.js": 14838932138074212145, - "frontend/build/_app/immutable/chunks/BtMNxLZr.js": 5550630982455761657, - "venv/lib/python3.13/site-packages/pydantic/deprecated/json.py": 17692639396786690144, - "venv/lib/python3.13/site-packages/rapidfuzz/_utils.py": 14374663810542207121, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_ssl_constants.py": 14834514243239777933, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/WHEEL": 8954358347596196608, - "venv/lib/python3.13/site-packages/pandas/core/reshape/encoding.py": 12702053687535473061, - "venv/lib/python3.13/site-packages/pip/_internal/operations/install/wheel.py": 3531093454660385247, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/ssh.py": 16262079536832961001, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/missing.py": 11241703105777668183, - "venv/lib/python3.13/site-packages/starlette/schemas.py": 697416731579555195, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/discovery.py": 12479996594187326798, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/help.py": 3124654001287175629, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rename.py": 16148017223289654683, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi": 16048852379621461316, - "venv/lib/python3.13/site-packages/pandas/io/__init__.py": 9767690163638898709, - "venv/lib/python3.13/site-packages/numpy/f2py/auxfuncs.pyi": 10077265709692546934, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/METADATA": 7788873460115135563, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pygments/styles/dracula.py": 12379322008538174078, - "venv/lib/python3.13/site-packages/pygments/lexers/berry.py": 4540479522141160472, - "frontend/src/routes/profile/__tests__/fixtures/profile.fixtures.js": 2726190101012864209, - "frontend/e2e/tests/settings.e2e.js": 14741334477359695649, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/lib/__init__.py": 12211229657513986410, - "venv/lib/python3.13/site-packages/numpy/f2py/cfuncs.py": 10803011906582324302, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/assertion_client.py": 4261295109880943573, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm32_gcc.h": 3561524604274567339, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/authlib/oidc/discovery/well_known.py": 8259335680633926377, - "venv/lib/python3.13/site-packages/pydantic/_internal/_discriminated_union.py": 1818179910730401509, - "venv/lib/python3.13/site-packages/numpy/lib/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/arrays/interval.py": 16281221279220043867, - "venv/lib/python3.13/site-packages/httpx/_multipart.py": 2181282475656908730, - "venv/lib/python3.13/site-packages/pandas/core/arrays/numeric.py": 17834058423729918687, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/issue232.py": 6498198296113395367, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_matmul.py": 16169282225324014901, - "venv/lib/python3.13/site-packages/pandas/tests/api/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py": 1331438198531942242, - "venv/lib/python3.13/site-packages/certifi/core.py": 7472627735517449185, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_strings.py": 7379299916213794543, - "frontend/src/lib/api/datasetReview.js": 3023829599261929428, - "venv/lib/python3.13/site-packages/pydantic/deprecated/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/smmap/__init__.py": 4557520096828426601, - "venv/lib/python3.13/site-packages/ecdsa/test_rw_lock.py": 1572802971060634697, - "venv/lib/python3.13/site-packages/pydantic_settings/__init__.py": 4374954204580208673, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_isin.py": 14387850595546682314, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_is_unique.py": 3989602816674881215, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/METADATA": 732041908491732594, - "venv/lib/python3.13/site-packages/pygments/styles/solarized.py": 11231143047572616298, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_iceberg.py": 1726421917529457420, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/vector.py": 9941185556118343263, - "venv/lib/python3.13/site-packages/pygments/lexers/archetype.py": 8995143180482517233, - "backend/tests/core/test_defensive_guards.py": 1048600814279591148, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_cat_accessor.py": 4304062895283374927, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/METADATA": 8985010079096958084, - "backend/src/plugins/translate/dictionary_filter.py": 18047895364995512274, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_mem_policy.py": 13856626567322091253, - "venv/lib/python3.13/site-packages/authlib/oidc/core/__init__.py": 16029653645350087968, - "backend/src/plugins/translate/orchestrator_query.py": 4760681990145471312, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py": 6712732248328458871, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_join.py": 4213933887062089605, - "venv/lib/python3.13/site-packages/pandas/core/ops/docstrings.py": 3721650738518391256, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/METADATA": 11419135077900073883, - "venv/lib/python3.13/site-packages/pygments/styles/lightbulb.py": 12433916113773598760, - "backend/src/core/utils/dataset_mapper.py": 1606029474387636183, - "backend/src/plugins/translate/orchestrator_aggregator.py": 2072358957289443762, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/base.py": 10205051944814316388, - "venv/lib/python3.13/site-packages/fastapi/types.py": 3867821246650502267, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_emoji_codes.py": 13901854719435716195, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sort_index.py": 14187428934500390688, - "venv/lib/python3.13/site-packages/pip/_internal/cli/main.py": 9304034369762028739, - "venv/lib/python3.13/site-packages/pygments/lexers/q.py": 15426466074881683794, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_shares_memory.py": 2911029123657970431, - "venv/lib/python3.13/site-packages/apscheduler/executors/gevent.py": 17122637996105344344, - "backend/src/core/auth/api_key.py": 698045354834612724, - "backend/src/api/routes/__tests__/test_assistant_authz.py": 13343271902390197049, - "backend/src/schemas/settings.py": 7182606947764184429, - "venv/lib/python3.13/site-packages/authlib/consts.py": 14226604841596736870, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/websockets_impl.py": 15673691977157706075, - "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/WHEEL": 8600534672961461758, - "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/expressions.py": 8015786996064244656, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/errors.py": 17581857895562494222, - "venv/lib/python3.13/site-packages/pandas/_libs/sas.pyi": 873957906443703977, - "venv/lib/python3.13/site-packages/pandas/core/arrays/period.py": 11560984428402318984, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/parsing.cpython-313-x86_64-linux-gnu.so": 13104135217735363438, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/url.py": 1558176735588971829, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_parameter.py": 15173522343126004527, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/dtypes.cpython-313-x86_64-linux-gnu.so": 657138415665704488, - "venv/lib/python3.13/site-packages/urllib3/util/url.py": 15992369651965016538, - "backend/src/plugins/git_plugin.py": 2313306594758409833, - "backend/src/plugins/translate/__tests__/test_target_schema.py": 3945452632405275208, - "venv/lib/python3.13/site-packages/pydantic/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/network/session.py": 293771075394156394, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api1.c": 8494977275215578998, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_cpp_exception.py": 11851283355840567373, - "venv/lib/python3.13/site-packages/authlib/jose/errors.py": 15231759002942436632, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_defchararray.py": 15135904718007443306, - "venv/lib/python3.13/site-packages/PIL/PSDraw.py": 1927169421822446045, - "venv/lib/python3.13/site-packages/pyasn1/type/base.py": 6801504886392649787, - "venv/lib/python3.13/site-packages/keyring/backend.py": 14185808762437650951, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/masked_accumulations.py": 11428556645065711062, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_scalar.py": 2434773821902319678, - "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/core.py": 2199607970842512780, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_log_render.py": 18076931145915444473, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/_version.py": 15336513445621042105, - "venv/lib/python3.13/site-packages/_pytest/assertion/util.py": 16957445183087315124, - "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/util/test_assert_series_equal.py": 1223890028205011021, - "venv/lib/python3.13/site-packages/PIL/FontFile.py": 112053841436523305, - "frontend/src/routes/translate/dictionaries/+page.svelte": 1038433841421198720, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_describe.py": 11923715539897559626, - "backend/git_repos/remote/test-repo.git/objects/5d/9eb555c4cac2d3ffdba84c07682b154fe4180d": 10756202165146702691, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_round.py": 1299086932398824299, - "venv/lib/python3.13/site-packages/starlette/middleware/trustedhost.py": 8302185291610019926, - "venv/lib/python3.13/site-packages/attrs/exceptions.py": 2871247302586505373, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_mixins.py": 12351373879926460719, - "venv/lib/python3.13/site-packages/pydantic/v1/fields.py": 3948219773415054006, - "venv/lib/python3.13/site-packages/numpy/f2py/src/fortranobject.h": 5980733638838895780, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ufuncobject.h": 5112456258078662871, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-sinh.csv": 12358602501260667480, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/__main__.py": 6480933938145689964, - "venv/lib/python3.13/site-packages/passlib/handlers/mysql.py": 11165762635383041460, - "venv/lib/python3.13/site-packages/starlette/websockets.py": 13834731343216764204, - "venv/lib/python3.13/site-packages/pandas/testing.py": 18352975429944961593, - "venv/lib/python3.13/site-packages/pandas/core/groupby/ops.py": 2036968385544457016, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_head_tail.py": 1906121476322841736, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_get_numeric_data.py": 11747933921770969706, - "venv/lib/python3.13/site-packages/pandas/io/excel/_xlsxwriter.py": 16873939324418752965, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/reflection.py": 5951113078754792806, - "venv/lib/python3.13/site-packages/uvicorn/__main__.py": 6086938803696646644, - "frontend/src/lib/components/dataset-review/__tests__/validation_findings_panel.ux.test.js": 8994492423600483794, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_argon2.py": 11345706437113628133, - "venv/lib/python3.13/site-packages/certifi/__init__.py": 9045580998764948967, - "frontend/playwright-report/trace/xtermModule.DYP7pi_n.css": 9346562810570076139, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reset_index.py": 14490875921264161445, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/METADATA": 317417773265681256, - "frontend/src/components/tasks/TaskResultPanel.svelte": 7735278333136205649, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/layout.py": 11554376181083053156, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/roles.py": 5448455900674232810, - "backend/src/api/routes/assistant/_dispatch.py": 3122025109125421448, - "backend/src/models/translate.py": 15056358496831895254, - "backend/src/plugins/translate/service_utils.py": 15103456860964805370, - "backend/tests/test_translate_jobs.py": 16585154497956900995, - "venv/lib/python3.13/site-packages/pydantic/decorator.py": 6984214881365537811, - "venv/lib/python3.13/site-packages/_cffi_backend.cpython-313-x86_64-linux-gnu.so": 829323374625147265, - "venv/lib/python3.13/site-packages/numpy/_core/umath.py": 6132761780113682667, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_integer.py": 16102640589300356639, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_odf.py": 15484940480924122966, - "venv/lib/python3.13/site-packages/pygments/lexers/lean.py": 14518351619544450286, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/licenses/LICENSE": 6965457853328313914, - "venv/lib/python3.13/site-packages/pip/_internal/cli/spinners.py": 7664056305019151182, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/mercurial.py": 335201628064585213, - "venv/lib/python3.13/site-packages/pandas/tests/base/common.py": 13335865314907577354, - "venv/lib/python3.13/site-packages/PIL/PcxImagePlugin.py": 1691405132377495336, - "venv/lib/python3.13/site-packages/pygments/styles/autumn.py": 8750937312198920971, - "venv/lib/python3.13/site-packages/pygments/lexers/usd.py": 934820244673741695, - "frontend/e2e/tests/translation.e2e.js": 6244274143080191568, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/sphinxext.py": 2403717774564798878, - "venv/lib/python3.13/site-packages/anyio/_backends/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-tan.csv": 6233924374281534211, - "venv/lib/python3.13/site-packages/numpy/lib/array_utils.pyi": 14646405559193539455, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_boxplot_method.py": 7635131059308651529, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_arithmetic.py": 17043958604607035425, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/METADATA": 1266134223155266488, - "venv/lib/python3.13/site-packages/pygments/lexers/int_fiction.py": 8806961041808606055, - "venv/lib/python3.13/site-packages/pygments/filter.py": 16846063190466267618, - "backend/src/services/clean_release/artifact_catalog_loader.py": 7672031618376179570, - "venv/lib/python3.13/site-packages/pycparser/plyparser.py": 5251740466238035035, - "venv/lib/python3.13/site-packages/greenlet/TGreenlet.hpp": 6993553444981671786, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_ops.py": 16346030307660048773, - "backend/tests/test_api_key_auth.py": 15854247672009604904, - "venv/lib/python3.13/site-packages/starlette/concurrency.py": 9835859079437525910, - "venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py": 6853955946028131785, - "venv/lib/python3.13/site-packages/websockets/legacy/auth.py": 16685128086396181286, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_memmap.py": 8709963808115492688, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/properties.py": 5799883762127872919, - "venv/lib/python3.13/site-packages/pandas/core/window/expanding.py": 14141093310397856286, - "backend/src/plugins/mapper.py": 17959627965235532841, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pydantic/_internal/_model_construction.py": 694471028676746110, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/index_tricks.pyi": 6035507586990711471, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/RECORD": 1689342214025776630, - "venv/lib/python3.13/site-packages/_pytest/terminal.py": 885450969703476729, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_pbkdf2.py": 4977067068389993374, - "backend/src/plugins/translate/orchestrator_runner.py": 1192466559618297192, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/METADATA": 6960169108624303030, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_use.f90": 2657057181044959432, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/content": 16257335642847993866, - "backend/src/dependencies.py": 9767255988896931940, - "frontend/src/lib/stores/__tests__/test_taskDrawer.js": 13582869875796637016, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/pyodbc.py": 11271266527234292020, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/_csound_builtins.py": 14530739818491398298, - "venv/lib/python3.13/site-packages/_pytest/_io/saferepr.py": 8025234471485188730, - "venv/lib/python3.13/site-packages/h11/_readers.py": 832030916375670301, - "venv/lib/python3.13/site-packages/authlib/__init__.py": 8957417237987377675, - "backend/tests/test_auth.py": 6167020718035755646, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_stringdtype.py": 8381476847196129074, - "venv/lib/python3.13/site-packages/numpy/_core/_dtype.py": 7796703383405149774, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/__init__.pyi": 15130871412783076140, - "backend/src/plugins/translate/preview_token_estimator.py": 254295902082954386, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/perl.py": 17014528337020572681, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/mod_derived_types.f90": 2556756676983488922, - "backend/src/models/dataset_review_pkg/_semantic_models.py": 3910791744304398663, - "venv/lib/python3.13/site-packages/gitdb/db/git.py": 13552203494737962026, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/_mapping.py": 17519715342700184302, - "venv/lib/python3.13/site-packages/pluggy/_hooks.py": 6941854999025808196, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/version.py": 14723293207188512766, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/conftest.py": 8406022190801970256, - "venv/lib/python3.13/site-packages/cffi/cffi_opcode.py": 8411344362428947268, - "venv/lib/python3.13/site-packages/pygments/formatters/terminal256.py": 11473927781167132440, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/dml.py": 6519732236745017861, - "backend/src/plugins/translate/__tests__/test_orchestrator.py": 5663680156343544051, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_sorting.py": 8944017570338511677, - "venv/lib/python3.13/site-packages/pydantic/deprecated/tools.py": 16466182352694741629, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/LICENSE": 14599279238716790189, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_multiplier.f": 13432803601367981068, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/json.py": 14738429697319670035, - "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_linalg.py": 2939739913218718132, - "backend/src/api/routes/assistant/_history.py": 6437021555836617855, - "backend/git_repos/remote/test-repo.git/hooks/sendemail-validate.sample": 8058833260784074657, - "venv/lib/python3.13/site-packages/attrs/validators.py": 10346563361083429998, - "venv/lib/python3.13/site-packages/pip/_internal/index/package_finder.py": 12631116673181479779, - "venv/lib/python3.13/site-packages/pygments/lexers/typst.py": 8883289726601667104, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/regexopt.py": 16073437303824961930, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/aws.py": 1364297790170663941, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cpu_features.py": 955759654189150497, - "venv/lib/python3.13/site-packages/click/utils.py": 13475604420010022458, - "venv/lib/python3.13/site-packages/numpy/random/_philox.pyi": 7503018432880404291, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arraymethod.py": 14421188237635557797, - "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/tokens_mixins.py": 9923721909178724437, - "venv/lib/python3.13/site-packages/requests/__init__.py": 2604491098990438229, - "venv/lib/python3.13/site-packages/anyio/streams/file.py": 15232345967545920863, - "venv/lib/python3.13/site-packages/passlib/utils/compat/_ordered_dict.py": 14248790502300368024, - "venv/lib/python3.13/site-packages/pandas/core/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_formats.py": 13500155167624433622, - "venv/lib/python3.13/site-packages/urllib3/util/response.py": 6106698559175827207, - "venv/lib/python3.13/site-packages/starlette/background.py": 10232175205397808417, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_groupby_shift_diff.py": 1210657479716368827, - "venv/lib/python3.13/site-packages/pygments/styles/paraiso_dark.py": 3976779833379189837, - "venv/lib/python3.13/site-packages/pygments/lexers/_php_builtins.py": 2344562378679281201, - "backend/git_repos/remote/test-repo.git/refs/heads/feature/e2e-update": 9577764946931187657, - "venv/lib/python3.13/site-packages/authlib/common/security.py": 2291133227104016684, - "venv/lib/python3.13/site-packages/httpx/_urlparse.py": 8270294590945652412, - "venv/lib/python3.13/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7": 17875236748140157032, - "backend/src/plugins/translate/orchestrator_run_completion.py": 5945172469962331273, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/comparisons.pyi": 4158883009780474220, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/__init__.py": 15971002342788501945, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/licenses/LICENSE": 3868190977070717994, - "frontend/build/_app/immutable/chunks/B02colNV.js": 11184422123417025804, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_datetime.py": 7456744745424297814, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_polyutils.py": 675639791972685455, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/assertion_session.py": 18109848200936213195, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_stata.py": 3030675968330529905, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/METADATA": 10241403930811743893, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_deprecations.py": 8310244516175542839, - "frontend/e2e/e2e-nohealth.mjs": 5921562935931064381, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/RECORD": 17545477863793260029, - "venv/lib/python3.13/site-packages/jaraco/classes/properties.py": 6976928770004942858, - "backend/src/models/dataset_review_pkg/_session_models.py": 16030450529414863096, - "venv/lib/python3.13/site-packages/pandas/core/reshape/concat.py": 2218848863149192467, - "venv/lib/python3.13/site-packages/starlette/testclient.py": 16088848330558215194, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_timer.py": 8196003526646080498, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arrayterator.pyi": 15722265241660279277, - "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/fallback.py": 4260636031748548345, - "venv/lib/python3.13/site-packages/numpy/_core/fromnumeric.pyi": 13945478633722616250, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_interval.py": 2613503970235591726, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_compat.py": 6032546839876195115, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_routines.py": 4860173574365060471, - "venv/lib/python3.13/site-packages/pandas/core/_numba/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_arithmetic.py": 13304014482504911016, - "venv/lib/python3.13/site-packages/pip/_internal/network/lazy_wheel.py": 12936988990566680659, - "venv/lib/python3.13/site-packages/pandas/_libs/hashtable.pyi": 15034917167424979097, - "venv/lib/python3.13/site-packages/greenlet/tests/leakcheck.py": 10179165748538820557, - "venv/lib/python3.13/site-packages/pandas/tests/strings/conftest.py": 12065119814157197510, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/row.py": 9763935103055608874, - "venv/lib/python3.13/site-packages/cryptography/x509/name.py": 15338066443257445241, - "venv/lib/python3.13/site-packages/pygments/lexers/numbair.py": 17382646010399794697, - "frontend/src/services/toolsService.js": 1568142461283466080, - "backend/tests/test_task_manager.py": 1706217361689506763, - "venv/lib/python3.13/site-packages/smmap/test/test_buf.py": 6910367739329016619, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/abstract_interface/foo.f90": 14491312943942432024, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_typst.py": 14619529283550788275, - "venv/lib/python3.13/site-packages/attr/_version_info.py": 3850449653182103457, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/RECORD": 4857922668040624663, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_latex.py": 15077617224435782028, - "venv/lib/python3.13/site-packages/pygments/styles/borland.py": 17570558758932580659, - "venv/lib/python3.13/site-packages/apscheduler/job.py": 1858376671986108667, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/unistring.py": 18037463865539157041, - "frontend/src/routes/datasets/review/[id]/+page.svelte": 3248469759382215571, - "backend/src/api/routes/__tests__/test_profile_api.py": 1724401885939803766, - "backend/src/plugins/translate/__tests__/test_orthogonal_fixes.py": 264408615924319135, - "frontend/src/routes/datasets/review/__tests__/dataset_review_entry.test.js": 7689381541193660594, - "venv/lib/python3.13/site-packages/pyasn1/codec/der/encoder.py": 4790267438222037867, - "venv/lib/python3.13/site-packages/attr/__init__.py": 14436902698244718082, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/licenses/LICENSE": 6808958893921859106, - "venv/lib/python3.13/site-packages/rsa/core.py": 13203947234024924497, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/registry.py": 13306388361671753373, - "backend/git_repos/remote/test-repo.git/objects/cf/d2dcbd55735b8cedf21e04e64ac627c6f9a458": 10982669277486885525, - "venv/lib/python3.13/site-packages/passlib/handlers/misc.py": 18255658377109333797, - "venv/lib/python3.13/site-packages/urllib3/_base_connection.py": 14495079097019980154, - "backend/test_auth.db": 18214842050920965999, - "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/_core/tests/_natype.py": 12013743717306900860, - "venv/lib/python3.13/site-packages/requests/cookies.py": 4997226307650350876, - "venv/lib/python3.13/site-packages/pygments/lexers/tact.py": 1164971357219795420, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_indexing.py": 8943385096811168079, - "venv/lib/python3.13/site-packages/numpy/tests/test_ctypeslib.py": 9592016432737074765, - "venv/lib/python3.13/site-packages/charset_normalizer/__init__.py": 12412600648990392633, - "frontend/src/components/backups/BackupList.svelte": 14417854869668960310, - "venv/lib/python3.13/site-packages/fastapi/websockets.py": 9910052969532075719, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize_cpp.cpython-313-x86_64-linux-gnu.so": 7490281502544276964, - "backend/tests/test_deprecation_audit_fixes.py": 17902995210831708431, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_qcut.py": 8972418112914954758, - "venv/lib/python3.13/site-packages/passlib/utils/decor.py": 21351391767102899, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/wsproto_impl.py": 3072714633272661847, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py": 5728866271812501558, - "frontend/src/lib/stores/__tests__/mocks/navigation.js": 10782992736745205981, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rename_axis.py": 12432900682994622455, - "venv/lib/python3.13/site-packages/numpy/core/_utils.py": 14108063453670701289, - "frontend/src/lib/stores/__tests__/test_datasetReviewSession.js": 12620073136419991103, - "backend/src/plugins/translate/executor.py": 15866803979457728942, - "venv/lib/python3.13/site-packages/pydantic/_internal/_git.py": 8760779092674434712, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/METADATA": 3786116428839780263, - "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/RECORD": 15194367076254806710, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_frame_equal.py": 12459816298158655274, - "venv/lib/python3.13/site-packages/pygments/lexers/boa.py": 14409319610243925864, - "frontend/src/lib/api/__tests__/reports_api.test.js": 11820587361929895100, - "venv/lib/python3.13/site-packages/pygments/lexers/special.py": 4972294202790455038, - "backend/src/plugins/translate/orchestrator_exec.py": 16278134717094910089, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_range.py": 3544406211185340973, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/__init__.py": 5933622200264572885, - "venv/lib/python3.13/site-packages/attr/validators.py": 4453080662115911998, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-objarr.npz": 9481735723557962988, - "venv/lib/python3.13/site-packages/numpy/linalg/_umath_linalg.pyi": 7674087576653964854, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_invalid_arg.py": 610891871484326055, - "venv/lib/python3.13/site-packages/passlib/handlers/ldap_digests.py": 8658529184965699766, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/fields.pyi": 15420142722808118826, - "venv/lib/python3.13/site-packages/pandas/io/excel/_pyxlsb.py": 10035587889954731645, - "venv/lib/python3.13/site-packages/pandas/io/sas/sas7bdat.py": 17851617851457266799, - "venv/lib/python3.13/site-packages/packaging/_manylinux.py": 8268418900652790584, - "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/copy_view/test_interp_fillna.py": 5530041283991655415, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_tooltip.py": 853808724844451770, - "frontend/src/lib/api.js": 7712788935523484149, - "backend/src/schemas/dataset_review_pkg/_composites.py": 1898056130177244572, - "venv/lib/python3.13/site-packages/uvicorn/lifespan/on.py": 2866195356090164296, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_frozen.py": 3484963987053884566, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_pct_change.py": 10313980265441433173, - "venv/lib/python3.13/site-packages/yaml/events.py": 745772917931702910, - "venv/lib/python3.13/site-packages/pygments/lexers/elpi.py": 5736689911777977822, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/extending_distributions.pyx": 15302775787158991386, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/WHEEL": 7795541085444298627, - "venv/lib/python3.13/site-packages/pandas/_libs/missing.pyi": 13543139288840944411, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_chaining_and_caching.py": 15814259766479305290, - "venv/lib/python3.13/site-packages/psycopg2/_range.py": 7184417109068014771, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html_style.tpl": 3352086677417301397, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/METADATA": 15658158392301945427, - "backend/:memory:test_main": 8120796031785944903, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming.py": 3762934316884129514, - "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/okp_key.py": 10312614562914096039, - "venv/lib/python3.13/site-packages/numpy/f2py/f2py2e.py": 738588649412338185, - "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_impl.py": 16610770935842519289, - "venv/lib/python3.13/site-packages/websockets/connection.py": 5168795926684067030, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/sum_.py": 7062070517544958546, - "venv/lib/python3.13/site-packages/pip/_internal/network/xmlrpc.py": 5064964778750366059, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_pick.py": 15760492005471315814, - "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_utils.py": 2329717399120006435, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_categorical.py": 8844412630511751140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/flatiter.pyi": 9598576095384661517, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__multiarray_api.h": 16138871162713175599, - "venv/lib/python3.13/site-packages/numpy/core/__init__.pyi": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_html.py": 7732330576029516854, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_common.f": 5913807803369559749, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_astype.py": 16700461036658228009, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/requests.py": 1102963893193914979, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/licenses/AUTHORS": 2987771679926243782, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_character.py": 850554362222586199, - "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/numpy/_core/tests/examples/limited_api/meson.build": 8784756284679859367, - "venv/lib/python3.13/site-packages/numpy/random/_common.pyi": 5094115692952609118, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_processors.py": 16557117595879208702, - "backend/src/core/task_manager/graph.py": 1566662881946484762, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/pymssql.py": 6650008663791598065, - "venv/lib/python3.13/site-packages/pygments/__main__.py": 13200500591994479045, - "backend/src/services/health_service.py": 14450610712741288051, - "venv/lib/python3.13/site-packages/websockets/legacy/exceptions.py": 16025779645869134942, - "venv/lib/python3.13/site-packages/pyasn1/codec/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_old_base.py": 191359377446257900, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_sample.py": 4641567828238191927, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_equals.py": 6429101196875333574, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi": 16312114056447366970, - "venv/lib/python3.13/site-packages/numpy/lib/_iotools.pyi": 12873243737872788349, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/METADATA": 6596896092754256988, - "venv/lib/python3.13/site-packages/pandas/_libs/index.cpython-313-x86_64-linux-gnu.so": 18409579812171549318, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/INSTALLER": 17282701611721059870, - "backend/src/plugins/translate/__tests__/test_dictionary_correction.py": 17508858180216288123, - "venv/lib/python3.13/site-packages/PIL/ImageChops.py": 16368812693381154921, - "backend/src/plugins/git/llm_extension.py": 9347391649685791102, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_online.py": 11850497659869773510, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_dataframe.py": 14945138617962156057, - "venv/lib/python3.13/site-packages/pyasn1/codec/der/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_join.py": 17874591841487372992, - "venv/lib/python3.13/site-packages/httpcore/_sync/http11.py": 5947339024588907032, - "venv/lib/python3.13/site-packages/cryptography/x509/extensions.py": 10197248868682803019, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_formats.py": 3525283725314253763, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/totp.py": 11888568940387752607, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_msvc.h": 17581467060937454503, - "backend/src/plugins/translate/_batch_sizer.py": 13074277127276828485, - "venv/lib/python3.13/site-packages/uvicorn/middleware/message_logger.py": 14825516604555033580, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_numeric.py": 9417128508433693658, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_join.py": 13115782559805895662, - "venv/lib/python3.13/site-packages/httpcore/_backends/anyio.py": 6167729964577005634, - "venv/lib/python3.13/site-packages/numpy/tests/test_public_api.py": 11741922758622705449, - "backend/src/plugins/translate/events.py": 8282921049842647968, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/ccalendar.cpython-313-x86_64-linux-gnu.so": 11019871270094058038, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/conftest.py": 4124267277224879990, - "venv/lib/python3.13/site-packages/pandas/util/__init__.py": 4070574585004336241, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/resultproxy.pyx": 5760108632332714287, - "venv/lib/python3.13/site-packages/cryptography/x509/certificate_transparency.py": 11337143186866439208, - "venv/lib/python3.13/site-packages/PIL/_deprecate.py": 15076725072094847812, - "venv/lib/python3.13/site-packages/pygments/lexers/amdgpu.py": 17249439604111838979, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_list_accessor.py": 8613662386779664039, - "venv/lib/python3.13/site-packages/pygments/styles/monokai.py": 12381683616720952636, - "backend/src/schemas/auth.py": 12332369795585412464, - "backend/src/services/reports/__tests__/test_report_normalizer.py": 5179524010104259469, - "venv/lib/python3.13/site-packages/pydantic/aliases.py": 14481980467204711659, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_sparse.py": 14343335524508450058, - "frontend/src/routes/dashboards/[id]/components/DashboardTaskHistory.svelte": 8800115118935646769, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_constructors.py": 6440526981746306640, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/__init__.py": 2791238481813240414, - "venv/lib/python3.13/site-packages/git/remote.py": 1694919255653049944, - "venv/lib/python3.13/site-packages/pygments/lexers/procfile.py": 3860651022061090738, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/models.py": 5656065513234782067, - "venv/lib/python3.13/site-packages/numpy/_utils/_inspect.pyi": 17825266810219495672, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_get.py": 10255752806860493777, - "frontend/src/lib/stores/__tests__/sidebar.test.js": 5168138864675110669, - "frontend/playwright-report/data/36557793d7fda8ef412a553a55389600452506f9.png": 8526067803082440263, - "backend/git_repos/remote/test-repo.git/hooks/pre-applypatch.sample": 15598058327720909861, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9207/parameter.py": 2793853093222900337, - "venv/lib/python3.13/site-packages/numpy/core/__init__.py": 10397294636564169377, - "venv/lib/python3.13/site-packages/pandas/io/excel/_calamine.py": 13354427767660487637, - "backend/src/core/ws_log_handler.py": 17175572704051278951, - "venv/lib/python3.13/site-packages/pygments/styles/gruvbox.py": 9489017112545247388, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/__init__.py": 9884041726796476720, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_chebyshev.py": 8054411443686791426, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/endpoints.py": 18334891787808122725, - "venv/lib/python3.13/site-packages/pip/_internal/cli/index_command.py": 15798187258841839292, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/wheel.py": 13979536782410081712, - "venv/lib/python3.13/site-packages/more_itertools/recipes.pyi": 16788810745659802820, - "venv/lib/python3.13/site-packages/pandas/core/internals/managers.py": 13547912653290063698, - "venv/lib/python3.13/site-packages/pandas/compat/__init__.py": 6077099417711209303, - "venv/lib/python3.13/site-packages/idna/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/dns.py": 17149871769553794654, - "venv/lib/python3.13/site-packages/iniconfig/_parse.py": 11418441008427032090, - "venv/lib/python3.13/site-packages/websockets/streams.py": 15786581670248099415, - "venv/lib/python3.13/site-packages/numpy/lib/_format_impl.py": 1809069379864985298, - "frontend/src/routes/datasets/+page.svelte": 4090458050277453670, - "backend/src/services/git/_sync.py": 14233419521256437438, - "frontend/src/lib/stores/__tests__/setupTests.js": 13316015450930652502, - "frontend/src/components/tools/MapperTool.svelte": 452311121889230749, - "venv/lib/python3.13/site-packages/pyasn1/type/tagmap.py": 14075859042659927673, - "venv/lib/python3.13/site-packages/typing_inspection/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/WHEEL": 16784970174376303810, - "venv/lib/python3.13/site-packages/numpy/f2py/auxfuncs.py": 2234931733687557433, - "venv/lib/python3.13/site-packages/pygments/styles/stata_light.py": 16319330015324455277, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jws_algs.py": 11920621906391796226, - "venv/lib/python3.13/site-packages/pygments/lexers/_usd_builtins.py": 8671446144574174964, - "venv/lib/python3.13/site-packages/pygments/styles/rainbow_dash.py": 12236746494379891602, - "venv/lib/python3.13/site-packages/pygments/lexers/comal.py": 769727871242464458, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/array.py": 13840510238256626632, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/region.py": 12579403230062395563, - "venv/lib/python3.13/site-packages/numpy/core/numeric.py": 17025007229779320230, - "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/core/fromnumeric.py": 2136433423902202138, - "venv/lib/python3.13/site-packages/pyasn1/type/useful.py": 10313387611927801339, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_tz_localize.py": 18409231586451494605, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_loc.py": 2127584756555503873, - "venv/lib/python3.13/site-packages/referencing/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arraypad.pyi": 12178766981280242620, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_finalize.py": 12539815426478689538, - "dist/docker/backend.0.1.1.tar.xz": 932529191402352855, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/conftest.py": 2643915042664055969, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_ewm.py": 13789842684407148830, - "backend/src/models/__tests__/test_clean_release.py": 8187870494226758184, - "backend/src/plugins/translate/__tests__/__init__.py": 2490542523242946173, - "venv/lib/python3.13/site-packages/pygments/lexers/nit.py": 18262907536841158657, - "backend/src/plugins/translate/__tests__/test_dictionary_prompt_builder.py": 12854863376472707556, - "venv/lib/python3.13/site-packages/_pytest/raises.py": 8188402179490363767, - "venv/lib/python3.13/site-packages/numpy/_core/_asarray.pyi": 3940937389249665490, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_decimal.py": 3515468590005709183, - "venv/lib/python3.13/site-packages/pydantic/_internal/_decorators_v1.py": 16723743964226526155, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/WHEEL": 8600534672961461758, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_internal/commands/help.py": 4175797322922912326, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/test_indexing.py": 1947969642791009285, - "venv/lib/python3.13/site-packages/pygments/lexers/smalltalk.py": 6113431347120223592, - "venv/lib/python3.13/site-packages/greenlet/_greenlet.cpython-313-x86_64-linux-gnu.so": 6036818030377883416, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_drop_duplicates.py": 2397396876872403048, - "venv/lib/python3.13/site-packages/dotenv/cli.py": 7952654621986067973, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_distutils.pyi": 3595910367556664837, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_missing.py": 6224750552277937853, - "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/fields.py": 8923326131649837922, - "frontend/src/lib/components/translate/TargetSchemaHint.svelte": 4679159885307545370, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/chararray.pyi": 9683985931409244216, - "backend/tests/test_maintenance_service.py": 16353704909990612862, - "venv/lib/python3.13/site-packages/rsa/pkcs1_v2.py": 3533398238491175229, - "dist/docker/backend.0.1.0.tar.xz": 3591917885965226179, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_masked_matrix.py": 1444179242134203344, - "venv/lib/python3.13/site-packages/pandas/tseries/api.py": 14785127136180503704, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/parameters.py": 247312908510013930, - "backend/src/plugins/translate/__tests__/test_executor.py": 17557965511167209685, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/misc.py": 6571241778569465264, - "backend/git_repos/remote/test-repo.git/objects/ae/8d2f5dec5d421b2d6cc1eebaad6d2ef901a90d": 15877648001251681939, - "venv/lib/python3.13/site-packages/numpy/testing/__init__.pyi": 8126257788928282891, - "venv/lib/python3.13/site-packages/pandas/_libs/byteswap.pyi": 6723628093359375823, - "venv/lib/python3.13/site-packages/pygments/scanner.py": 5640381644804445932, - "venv/lib/python3.13/site-packages/numpy/_core/memmap.py": 4093510602708416858, - "venv/lib/python3.13/site-packages/uvicorn/protocols/utils.py": 6147480543268737542, - "venv/lib/python3.13/site-packages/attr/setters.pyi": 6670509359139243236, - "venv/lib/python3.13/site-packages/gitdb/fun.py": 55226330810782184, - "frontend/vite.config.js": 3769019895915732131, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/__init__.py": 8558541715982163200, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_set_value.py": 4166411740676564820, - "venv/lib/python3.13/site-packages/pytest_asyncio/__init__.py": 8162213292669110211, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/LICENSE": 16174281248426886206, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/__init__.py": 15130871412783076140, - "backend/src/core/timezone.py": 8889304905072332926, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cython.py": 14695721638531081573, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/errors.py": 10750605030539582738, - "venv/lib/python3.13/site-packages/click/_utils.py": 16491408631876616271, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/plugin.py": 18006138132596504101, - "venv/lib/python3.13/site-packages/numpy/core/_dtype.pyi": 15130871412783076140, - "venv/lib/python3.13/site-packages/_pytest/config/__init__.py": 12787579251203510616, - "venv/lib/python3.13/site-packages/pip/_internal/cache.py": 210214424535803946, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_c_parser_only.py": 3038797485572319804, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_cumulative.py": 6346947559103505068, - "venv/lib/python3.13/site-packages/pandas/tests/frame/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/wowtoc.py": 17527844575999013592, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/core.py": 14576109242055156193, - "frontend/src/lib/components/reports/ReportCard.svelte": 13714680961668469204, - "backend/src/core/superset_client/_dashboards_write.py": 17812522156399945730, - "backend/src/services/clean_release/compliance_execution_service.py": 3379474749353250488, - "venv/lib/python3.13/site-packages/pygments/lexers/cddl.py": 1303059539145221713, - "venv/lib/python3.13/site-packages/cffi/vengine_cpy.py": 10684192171370688079, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/METADATA": 10707390829735099042, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/requirements.py": 13215932786801020434, - "venv/lib/python3.13/site-packages/pygments/lexers/wren.py": 6259586056260713984, - "venv/lib/python3.13/site-packages/numpy/core/arrayprint.py": 9652368112174245943, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/subrout.f": 18215492757907465667, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_subclass.py": 12453252499544981915, - "venv/lib/python3.13/site-packages/numpy/_core/_dtype.pyi": 17662618580381221543, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_equals.py": 9405821443172167066, - "venv/lib/python3.13/site-packages/pandas/_libs/writers.cpython-313-x86_64-linux-gnu.so": 6878855127769203372, - "venv/lib/python3.13/site-packages/numpy/ma/LICENSE": 6723325434476453127, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_unary.py": 2573825678342936734, - "venv/lib/python3.13/site-packages/pandas/io/formats/__init__.py": 18140261896107421679, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi": 16042272072158438261, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_rolling.py": 11118160360072677569, - "venv/lib/python3.13/site-packages/fastapi/exception_handlers.py": 9907950997607808699, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_infer_dtype.py": 1647214604678171565, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/structs.py": 4479429145468072604, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_halfyear.py": 587199217232946404, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_deprecated_kwargs.py": 10379929935087904974, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/dynamic.py": 15220116196072524330, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_repr.py": 5577699046802107144, - "venv/lib/python3.13/site-packages/PIL/PixarImagePlugin.py": 12061717157676819554, - "venv/lib/python3.13/site-packages/PIL/IcnsImagePlugin.py": 1870235606309784691, - "venv/lib/python3.13/site-packages/pygments/lexers/rita.py": 8105458520706587972, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/numerictypes.pyi": 15443101937711720707, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/utils.h": 3920393832993063886, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/exceptions.py": 7518613450390473990, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_finfo.py": 17174674209412768422, - "frontend/vitest.config.js": 4756170101280085905, - "venv/lib/python3.13/site-packages/git/objects/blob.py": 8972374723153211283, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_windows.py": 13341168721223961872, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/config.py": 10707678943298497676, - "venv/lib/python3.13/site-packages/numpy/lib/recfunctions.pyi": 10487441680587530350, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_with_comments.f": 3980077223827767077, - "venv/lib/python3.13/site-packages/PIL/AvifImagePlugin.py": 1872412416505003364, - "venv/lib/python3.13/site-packages/ecdsa/test_curves.py": 6577762025900435885, - "venv/lib/python3.13/site-packages/numpy/typing/mypy_plugin.py": 1306129775649200113, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/__init__.py": 11709551233929312136, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_delete.py": 5958440386632506587, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reorder_levels.py": 10996225584998355824, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_neighborhood_iterator_imp.h": 10634781863364525895, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py": 3369246520501764730, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_clip.py": 13498704233745189154, - "frontend/build/_app/immutable/nodes/27.DBoSQFdP.js": 3996839526740186087, - "venv/lib/python3.13/site-packages/gitdb/test/test_stream.py": 18159319442241857857, - "venv/lib/python3.13/site-packages/_pytest/_py/error.py": 2257336434271433543, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/index_tricks.py": 10051261976498916957, - "venv/lib/python3.13/site-packages/pygments/lexers/installers.py": 5083244110640899732, - "venv/lib/python3.13/site-packages/numpy/testing/overrides.pyi": 17408923209056015964, - "frontend/src/lib/api/assistant.js": 15470667170083225911, - "frontend/build/_app/immutable/chunks/Cr-9eaXZ.js": 55845366387923127, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/cells.py": 8299309127027168194, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timezones.pyi": 17528421279543420867, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_delete.py": 3485374671877063217, - "venv/lib/python3.13/site-packages/requests/_internal_utils.py": 4091305333167213279, - "venv/lib/python3.13/site-packages/numpy/lib/_utils_impl.py": 13012775703413938576, - "venv/lib/python3.13/site-packages/pandas/core/tools/timedeltas.py": 7221393731712061943, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/events.py": 15099787454570172797, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py": 8530403239168529668, - "venv/lib/python3.13/site-packages/pydantic/_internal/_config.py": 12760390602912369447, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_sort_values.py": 834951665649981397, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/passlib/crypto/digest.py": 15890463288512025688, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/licenses/LICENSE": 1424673738228762254, - "venv/lib/python3.13/site-packages/pygments/lexers/felix.py": 2334148799642808111, - "venv/lib/python3.13/site-packages/pygments/styles/tango.py": 12389250878249075539, - "venv/lib/python3.13/site-packages/pyasn1/codec/cer/encoder.py": 3261739474564948330, - "venv/lib/python3.13/site-packages/numpy/linalg/lapack_lite.cpython-313-x86_64-linux-gnu.so": 11074560904305737689, - "venv/lib/python3.13/site-packages/pip/_internal/commands/freeze.py": 8644678595442275485, - "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/accessor.py": 8373575175447947401, - "venv/lib/python3.13/site-packages/pandas/core/arrays/string_arrow.py": 16997970607998635570, - "venv/lib/python3.13/site-packages/pandas/core/computation/engines.py": 1889823242704769952, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/core.py": 2300277198409164253, - "venv/lib/python3.13/site-packages/jeepney/tests/test_bus.py": 4260827599660763641, - "venv/lib/python3.13/site-packages/pygments/lexers/css.py": 517586374264113606, - "venv/lib/python3.13/site-packages/httpx/__version__.py": 9473642134297828811, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/__init__.py": 4781700006554860887, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_describe.py": 362374422228593281, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_setitem.py": 14920902525192671548, - "frontend/src/components/llm/ProviderConfig.svelte": 10989619989953706954, - "frontend/build/_app/immutable/nodes/15.D77w-oKN.js": 12254106526344958795, - "venv/lib/python3.13/site-packages/numpy/f2py/__version__.pyi": 9759534743796867731, - "venv/lib/python3.13/site-packages/pygments/lexers/templates.py": 16267123844830647955, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py": 6152202474302791232, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/traversals.py": 1188980668212022868, - "venv/lib/python3.13/site-packages/numpy/f2py/rules.py": 9322914583460630877, - "venv/lib/python3.13/site-packages/rapidfuzz/process.py": 3870006735299537016, - "venv/lib/python3.13/site-packages/fastapi/requests.py": 14587947416691824903, - "venv/lib/python3.13/site-packages/_pytest/logging.py": 10972553724755511468, - "frontend/src/components/auth/ProtectedRoute.svelte": 7705373237339863677, - "venv/lib/python3.13/site-packages/jsonschema_specifications/__init__.py": 5732822354953774657, - "venv/lib/python3.13/site-packages/authlib/jose/drafts/__init__.py": 4770885427721822507, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_cross.py": 17742712348672218852, - "venv/lib/python3.13/site-packages/yaml/loader.py": 18284689412149643959, - "frontend/src/lib/components/dataset-review/ValidationFindingsPanel.svelte": 2403276296409515448, - "venv/lib/python3.13/site-packages/httpx/_transports/mock.py": 13564349939188292363, - "venv/lib/python3.13/site-packages/pygments/styles/algol_nu.py": 6229131016121450375, - "venv/lib/python3.13/site-packages/passlib/handlers/digests.py": 18158237109145814857, - "venv/lib/python3.13/site-packages/httpx/__init__.py": 6383055693166097719, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/collections.pyx": 17138729833735744777, - "venv/lib/python3.13/site-packages/pygments/lexers/gcodelexer.py": 13712494327007684318, - "venv/lib/python3.13/site-packages/greenlet/greenlet.cpp": 3281107194043468270, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/jsonschema_specifications/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test__datasource.py": 1747755531265478106, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_assign.py": 2647902466315482406, - "venv/lib/python3.13/site-packages/uvicorn/logging.py": 12858188863836778374, - "backend/:memory:test_tasks": 9776368437354383244, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_indexing.py": 3841182456456779012, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/queue.py": 7820997545569991670, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/greenlet/TThreadStateCreator.hpp": 9887867766190459665, - "venv/lib/python3.13/site-packages/pygments/styles/fruity.py": 7925019839136894457, - "backend/src/api/routes/validation/__tests__/test_validation_api.py": 9582367280498409855, - "venv/lib/python3.13/site-packages/numpy/lib/stride_tricks.pyi": 5879290708972838025, - "frontend/playwright-report/data/d3248d538f098a40b756ead1ee1a92a7d61e7c7a.zip": 661058595618012246, - "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/__init__.py": 15991623390785635773, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/types.py": 12298292195929126306, - "frontend/src/routes/datasets/review/ReviewWorkspaceLeftSidebar.svelte": 9009994851177005358, - "venv/lib/python3.13/site-packages/pygments/styles/default.py": 13992125975366109635, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/generator_pcg64_np126.pkl.gz": 9677994062701347206, - "venv/lib/python3.13/site-packages/starlette/types.py": 6372850128669191435, - "venv/lib/python3.13/site-packages/keyring/backends/chainer.py": 12526770797516553385, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/__init__.py": 5895297076117159245, - "venv/lib/python3.13/site-packages/jeepney/io/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/indexes/interval.py": 17965911911189276907, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_ops.py": 14420421526781215500, - "venv/lib/python3.13/site-packages/pandas/tests/extension/json/test_json.py": 12422315190455428620, - "venv/lib/python3.13/site-packages/pandas/tests/internals/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby_subclass.py": 5540948578269213810, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_time_series.py": 5205199092955498507, - "venv/lib/python3.13/site-packages/pygments/lexers/rebol.py": 10460732731157940232, - "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension.cpython-313-x86_64-linux-gnu.so": 1211491156495529145, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_extint128.py": 11074657869101074458, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_value_counts.py": 13270420637302622174, - "venv/lib/python3.13/site-packages/yaml/composer.py": 13619070314468518566, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data": 11957232619107868023, - "frontend/src/routes/migration/mappings/+page.svelte": 4566398049366943407, - "venv/lib/python3.13/site-packages/pydantic/warnings.py": 5142352784799639092, - "venv/lib/python3.13/site-packages/psycopg2/errors.py": 10441360078612452560, - "venv/lib/python3.13/site-packages/pyasn1/__init__.py": 8089201217593738032, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_polynomial.py": 777287409151500309, - "venv/lib/python3.13/site-packages/passlib/handlers/django.py": 66638338316838351, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel.pyi": 16372699564794732463, - "venv/lib/python3.13/site-packages/numpy/f2py/__init__.pyi": 3566887042414273892, - "venv/lib/python3.13/site-packages/anyio/_core/_fileio.py": 4507100568401692983, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/__init__.py": 237070345717942041, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/ddl.py": 5006132143435653867, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_complex/foo90.f90": 15981076495193915107, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/mapper.py": 16715864918034312591, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_formats.py": 18080627205081311773, - "backend/src/plugins/translate/orchestrator_cancel.py": 673611364664367049, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pct_change.py": 18056235438452125034, - "venv/lib/python3.13/site-packages/PIL/ImageCms.py": 5610897002957128546, - "backend/alembic/versions/f0e9d8c7b6a5_cascade_ondelete_all_env_fks.py": 18274103435952144919, - "venv/lib/python3.13/site-packages/pygments/styles/vim.py": 2621036947954523349, - "venv/lib/python3.13/site-packages/pandas/io/parsers/python_parser.py": 7297059565749331767, - "backend/src/api/routes/maintenance/_routes.py": 10925523070180866414, - "venv/lib/python3.13/site-packages/pandas/core/flags.py": 4690844374637430013, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/resolver.py": 9931394693284776391, - "venv/lib/python3.13/site-packages/_pytest/_io/terminalwriter.py": 16852767249156780980, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_sh_gcc.h": 3574353221233465215, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/processors.py": 4817637175145012571, - "venv/lib/python3.13/site-packages/pip/_internal/commands/install.py": 17631777189475433503, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_unary.py": 8046543893978198672, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/binding.py": 17078280153372356796, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_markdown.py": 9964642152916165317, - "frontend/src/lib/components/translate/__tests__/test_bulk_replace_modal.svelte.js": 6802604718120565742, - "backend/src/services/dataset_review/orchestrator.py": 8780497744077644822, - "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/crackfortran/operators.f90": 5949265961908386974, - "venv/lib/python3.13/site-packages/pandas/tests/libs/test_join.py": 5982692266872978444, - "venv/lib/python3.13/site-packages/pandas/io/iceberg.py": 13137128885014736233, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_cumulative.py": 16283954014170928273, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_apply.py": 7511915990531229598, - "venv/lib/python3.13/site-packages/PIL/CurImagePlugin.py": 17697303205012181529, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi": 14119032813912827271, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/twisted.py": 16059862619165885730, - "venv/lib/python3.13/site-packages/jeepney/io/tests/test_trio.py": 7459901627473962540, - "venv/lib/python3.13/site-packages/numpy/ma/extras.pyi": 15292036493781556342, - "venv/lib/python3.13/site-packages/numpy/testing/_private/__init__.pyi": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/indexes/period.py": 1181348384346239378, - "venv/lib/python3.13/site-packages/greenlet/tests/test_extension_interface.py": 11693583111513457974, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/transforms.py": 3773159138960141434, - "venv/lib/python3.13/site-packages/cffi/cparser.py": 5246372077864988755, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/models/target_python.py": 422323125651848065, - "venv/lib/python3.13/site-packages/six.py": 948867418687428421, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_nlargest.py": 1423106021399469694, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.pyx": 11739218099400096619, - "venv/lib/python3.13/site-packages/pygments/styles/perldoc.py": 4857683935715743356, - "venv/lib/python3.13/site-packages/rapidfuzz/_common_py.py": 15410157970973169427, - "frontend/src/components/DynamicForm.svelte": 12658559315809907844, - "frontend/build/_app/immutable/chunks/DCG5F3ic.js": 10038366451600899187, - "frontend/src/components/DashboardGrid.svelte": 17669234585849525689, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_construction.py": 10619501873883861745, - "venv/lib/python3.13/site-packages/pandas/core/window/online.py": 13551140636252302201, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_api.py": 10514120091521589282, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/licenses/LICENSE": 8364608327598414179, - "venv/lib/python3.13/site-packages/websockets/__init__.py": 4916307256304054040, - "venv/lib/python3.13/site-packages/psycopg2/extras.py": 7510107741729866600, - "venv/lib/python3.13/site-packages/numpy/random/__init__.pxd": 7355772669172093814, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py": 15294662527620994511, - "venv/lib/python3.13/site-packages/pandas/core/strings/__init__.py": 13025387151657797130, - "venv/lib/python3.13/site-packages/pandas/core/indexes/category.py": 18192569199634406001, - "venv/lib/python3.13/site-packages/pygments/lexers/rdf.py": 14488319292387226505, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py": 9623344347519683527, - "venv/lib/python3.13/site-packages/_pytest/assertion/rewrite.py": 2425990712758915831, - "venv/lib/python3.13/site-packages/packaging/utils.py": 3469957615920103670, - "venv/bin/pyrsa-decrypt": 10929163076272054227, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_warnings.py": 13071210233876253749, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_ratio.py": 940213488194452623, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_copy_deprecation.py": 16045426957636349035, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/connection.py": 8190661510572400096, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dtypes.py": 4985057130807802395, - "venv/lib/python3.13/site-packages/pillow.libs/libfreetype-ee1c40c4.so.6.20.4": 12301510769231120312, - "venv/lib/python3.13/site-packages/pandas/core/interchange/dataframe.py": 16525846817331842080, - "venv/lib/python3.13/site-packages/numpy/_core/defchararray.pyi": 2277933368373498515, - "venv/lib/python3.13/site-packages/pandas/arrays/__init__.py": 10005095663840461954, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/freefem.py": 9851243865301700231, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/__init__.py": 14571251344510763303, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/types.py": 13384984564922916167, - "frontend/src/routes/settings/LlmSettings.svelte": 2951029184700558947, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/asymmetric_key.py": 14948661854506285135, - "venv/lib/python3.13/site-packages/pygments/lexers/_lasso_builtins.py": 4006621424665751347, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/requests.py": 14847842002253212098, - "venv/lib/python3.13/site-packages/authlib/oauth1/client.py": 7314311571224771, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_formats.py": 12299393760307251036, - "frontend/src/lib/components/reports/__tests__/reports_list.ux.test.js": 16252194679528846126, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_inspect.py": 10573558345297891848, - "venv/lib/python3.13/site-packages/numpy/matrixlib/__init__.pyi": 1942236362568669510, - "venv/lib/python3.13/site-packages/numpy/f2py/__version__.py": 8588600299261398598, - "venv/lib/python3.13/site-packages/pygments/styles/stata_dark.py": 324072437809944751, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_store.py": 1500300322083708794, - "venv/lib/python3.13/site-packages/numpy/typing/tests/test_runtime.py": 12534621594420844770, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_hashtable.py": 2620207240930665390, - "venv/lib/python3.13/site-packages/pandas/tests/reductions/test_reductions.py": 11624188672428941494, - "venv/lib/python3.13/site-packages/charset_normalizer/cd.py": 8687667152597941021, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_compat.py": 4677414058216516380, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/securetransport.py": 12104888897121018676, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/registration.py": 14639972512303032712, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/np_datetime.pyi": 2884703536776830012, - "frontend/src/lib/components/reports/__tests__/reports_page.integration.test.js": 16463062768004950066, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/package_data.py": 3078502124870585867, - "venv/lib/python3.13/site-packages/pygments/formatters/pangomarkup.py": 17135620955205945255, - "venv/lib/python3.13/site-packages/pygments/styles/vs.py": 4188729978573652106, - "frontend/e2e/tests/enterprise-clean-setup.e2e.js": 11120112996353549578, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/METADATA": 18410956221497090898, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_printing.py": 8859757563354666575, - "backend/src/models/auth.py": 775632703462705888, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-np0-objarr.npy": 1615546603475261360, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_timedeltas.py": 1175883320586860493, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_numba.py": 1548992314517942530, - "venv/lib/python3.13/site-packages/pycparser/ply/lex.py": 3393278208465358140, - "venv/lib/python3.13/site-packages/requests/hooks.py": 9888227370911151341, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_windows_renderer.py": 1076842273781909680, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/period.cpython-313-x86_64-linux-gnu.so": 14468234464367691795, - "venv/lib/python3.13/site-packages/jose/backends/native.py": 50023158618000658, - "venv/lib/python3.13/site-packages/anyio/lowlevel.py": 11919467357746648592, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_setitem.py": 15731267129055947469, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/asyncio.py": 2517623574187179319, - "venv/lib/python3.13/site-packages/yaml/serializer.py": 1783761365703703558, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_readers.py": 2136472634307645842, - "venv/lib/python3.13/site-packages/fastapi/staticfiles.py": 4094330072433302614, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/__init__.py": 1856412417337875350, - "venv/lib/python3.13/site-packages/greenlet/greenlet_compiler_compat.hpp": 465436185632243991, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/matrix.pyi": 15667024840812783911, - "venv/lib/python3.13/site-packages/pandas/_libs/reshape.pyi": 88721900806893992, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_duplicates.py": 9830936017197354309, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_contains.py": 5273759677032634868, - "venv/lib/python3.13/site-packages/git/exc.py": 14278238357119816365, - "backend/src/core/migration/archive_parser.py": 7392694914943455006, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_msvc.h": 14580207065003376324, - "venv/lib/python3.13/site-packages/numpy/random/_pickle.pyi": 16081120364372391381, - "venv/lib/python3.13/site-packages/pluggy/_warnings.py": 2664977718908223842, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_regression.py": 6742646011852052645, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arrayprint.pyi": 2053388407376896377, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_nep50_promotions.py": 6318578947214302182, - "venv/lib/python3.13/site-packages/secretstorage/exceptions.py": 16701299261122689924, - "backend/src/plugins/translate/orchestrator_validation.py": 17464651621865127561, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/astype.py": 9925183787411796679, - "venv/lib/python3.13/site-packages/pygments/lexers/hexdump.py": 10665271113239513484, - "frontend/e2e/tests/live-project-check.e2e.js": 2548440031836033830, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/fetch.py": 13937019222549208796, - "venv/lib/python3.13/site-packages/requests/utils.py": 17045260098091371478, - "frontend/svelte.config.js": 8473636210766821560, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_transform.py": 6759417099641034692, - "venv/lib/python3.13/site-packages/pandas/_typing.py": 17795648994662434211, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_aix.h": 13316272821279308986, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_delitem.py": 14336697139511118920, - "venv/lib/python3.13/site-packages/annotated_types/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oidc/core/userinfo.py": 17201158389976619872, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/legacy/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/gitdb/db/mem.py": 15823812455996199993, - "venv/lib/python3.13/site-packages/pygments/styles/material.py": 14325514369696961874, - "backend/src/core/migration/risk_assessor.py": 1061977005072298440, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/resource_protector.py": 11539718751174980004, - "venv/lib/python3.13/site-packages/numpy/random/_mt19937.pyi": 15904463104068500379, - "frontend/build/_app/immutable/nodes/2.ygKEcgXs.js": 4758071082823820713, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/sync_app.py": 14788764260762890368, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_get.py": 6509102681661636928, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/licenses/LICENSE": 5669644120528099197, - "venv/lib/python3.13/site-packages/attr/_funcs.py": 5302917072419624193, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/offsets.pyi": 13173581775000480811, - "venv/lib/python3.13/site-packages/authlib/oauth2/__init__.py": 13682931764896414722, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_indexers.py": 6773751569163287047, - "venv/lib/python3.13/site-packages/pip/_internal/commands/check.py": 6937252393012787214, - "venv/lib/python3.13/site-packages/ecdsa/ecdsa.py": 9770689913380927623, - "venv/lib/python3.13/site-packages/_pytest/freeze_support.py": 494952714451267295, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_drop_duplicates.py": 12601598844977346213, - "backend/tests/test_translate_scheduler_execution.py": 16687335504320865378, - "venv/lib/python3.13/site-packages/pydantic/v1/networks.py": 13262073155118055511, - "venv/lib/python3.13/site-packages/uvicorn/py.typed": 15240312484046875203, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/test_nat.py": 7400568652984772972, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ndarray_misc.pyi": 16219573290116396099, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi": 8666343427862784832, - "venv/lib/python3.13/site-packages/smmap/test/test_util.py": 5634593621291240094, - "venv/lib/python3.13/site-packages/keyring/backends/macOS/__init__.py": 1010937986753403630, - "venv/lib/python3.13/site-packages/websockets/__main__.py": 11948055520555854616, - "venv/lib/python3.13/site-packages/pygments/lexers/solidity.py": 5071425960622305629, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_pytesttester.py": 17737911110576747508, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/METADATA": 16700674024421191168, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_reindex.py": 15680924058960901067, - "venv/lib/python3.13/site-packages/sqlalchemy/util/__init__.py": 15821192733097665649, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/RECORD": 16740224557818847141, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/framework_integration.py": 3935346152156572025, - "venv/lib/python3.13/site-packages/pandas/core/strings/object_array.py": 17631047188839635539, - "venv/lib/python3.13/site-packages/pandas/_libs/sparse.cpython-313-x86_64-linux-gnu.so": 2051484129454294720, - "venv/lib/python3.13/site-packages/pandas/core/util/numba_.py": 3535857372998653863, - "frontend/playwright-report/index.html": 16542149899775356791, - "venv/lib/python3.13/site-packages/numpy/_core/einsumfunc.pyi": 4729765666018003634, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/RECORD": 7914594107698271488, - "venv/lib/python3.13/site-packages/fastapi/security/base.py": 15674297568104917749, - "venv/lib/python3.13/site-packages/numpy/lib/array_utils.py": 18135114588643176359, - "venv/lib/python3.13/site-packages/numpy/f2py/capi_maps.py": 2490579175967301457, - "venv/lib/python3.13/site-packages/pydantic/json_schema.py": 15678278224696353978, - "venv/lib/python3.13/site-packages/pandas/tests/test_nanops.py": 8709105600366913011, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_raises.py": 9678418010293693275, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_pivot_multilevel.py": 9830258607305392103, - "venv/lib/python3.13/site-packages/PIL/_binary.py": 14039167720582222043, - "venv/lib/python3.13/site-packages/numpy/f2py/cb_rules.pyi": 12275242654430570028, - "venv/lib/python3.13/site-packages/anyio/abc/__init__.py": 11428476337116642278, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_between.py": 337429135216881486, - "venv/lib/python3.13/site-packages/websockets/sync/utils.py": 15135020989207191168, - "venv/lib/python3.13/site-packages/numpy/polynomial/hermite.pyi": 3573629536236108391, - "venv/lib/python3.13/site-packages/numpy/testing/_private/utils.pyi": 17639497083041129225, - "venv/lib/python3.13/site-packages/attr/filters.pyi": 13942974755090135724, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_size.py": 16658280641516916790, - "venv/lib/python3.13/site-packages/authlib/oauth2/client.py": 7237359250450222680, - "venv/lib/python3.13/site-packages/sqlalchemy/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pytest/__init__.py": 6137272437722350673, - "venv/lib/python3.13/site-packages/pygments/lexers/ooc.py": 14540210212631538007, - "frontend/src/lib/stores/__tests__/mocks/environment.js": 16653269108049932073, - "venv/lib/python3.13/site-packages/attr/converters.py": 5179615793507170642, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/flow_control.py": 4822804840057360506, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_datetime.py": 1678885152993000592, - "venv/lib/python3.13/site-packages/pandas/core/tools/times.py": 6560679305255812809, - "venv/bin/pytest": 2593802493707545818, - "venv/lib/python3.13/site-packages/pyasn1/codec/native/decoder.py": 15336592439379775543, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarraytypes.h": 6765088137325865789, - "venv/lib/python3.13/site-packages/rapidfuzz/process_py.py": 17563673072076876125, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_series.py": 16418555817529711079, - "venv/lib/python3.13/site-packages/pandas/core/roperator.py": 2587829042468916489, - "venv/lib/python3.13/site-packages/jeepney/tests/test_fds.py": 6257376331171761928, - "venv/lib/python3.13/site-packages/pandas/core/ops/missing.py": 9493665944764255854, - "venv/lib/python3.13/site-packages/numpy/f2py/func2subr.pyi": 16573082220135508510, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23598Warn.f90": 7589258200398878529, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_count.py": 16947194157984708529, - "venv/lib/python3.13/site-packages/pip/_vendor/pkg_resources/__init__.py": 1677532855362260338, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_misc.pyi": 7544619194032232861, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/__init__.py": 1923528231486706442, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_api_info.py": 16491629653122827368, - "venv/lib/python3.13/site-packages/PIL/JpegPresets.py": 12342262642420923471, - "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/RECORD": 1164466882742493155, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/RECORD": 12555714734722889695, - "venv/lib/python3.13/site-packages/numpy/core/_internal.py": 14816989375912210674, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/philox-testset-1.csv": 2202360898679162333, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_duplicate_labels.py": 10663105616336167414, - "venv/lib/python3.13/site-packages/rapidfuzz/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/websockets/speedups.cpython-313-x86_64-linux-gnu.so": 10941658763526595989, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py": 9888795404090331319, - "venv/lib/python3.13/site-packages/authlib/common/errors.py": 16082974228565515177, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_pad.pyi": 14755435694146003896, - "venv/lib/python3.13/site-packages/click/core.py": 16793133181718891193, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/RECORD": 10052481303799123207, - "venv/lib/python3.13/site-packages/numpy/tests/test_reloading.py": 17532116685329953400, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/WHEEL": 12146818530001975731, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_iterrows.py": 3791886201566670087, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi": 13061638961405460334, - "venv/lib/python3.13/site-packages/numpy/polynomial/hermite_e.py": 3654583356259850174, - "venv/lib/python3.13/site-packages/authlib/common/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/styles/__init__.py": 9482393721453335937, - "venv/lib/python3.13/site-packages/anyio/_core/_asyncio_selector_thread.py": 1760597191437520000, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/METADATA": 6656194161182818439, - "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_algorithms.py": 15219408648894515493, - "venv/lib/python3.13/site-packages/apscheduler/executors/debug.py": 14072221218785494847, - "venv/lib/python3.13/site-packages/pandas/util/version/__init__.py": 3844072588696074141, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/enumerated.py": 16623643153933348755, - "venv/lib/python3.13/site-packages/pip/_internal/utils/glibc.py": 12335359492756627313, - "venv/lib/python3.13/site-packages/attr/exceptions.py": 11532465891810816417, - "venv/lib/python3.13/site-packages/httpcore/_sync/connection_pool.py": 8159971229245441880, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/__init__.py": 10920760520224795596, - "venv/lib/python3.13/site-packages/numpy/f2py/f90mod_rules.pyi": 18290764713161282980, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_duplicated.py": 14676058112867601208, - "venv/lib/python3.13/site-packages/numpy/ctypeslib/__init__.py": 2401931196871484449, - "venv/lib/python3.13/site-packages/PIL/WalImageFile.py": 12442826195371137238, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sort_values.py": 12064896795288302730, - "venv/lib/python3.13/site-packages/cryptography/x509/verification.py": 1079694784860492682, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_algs.py": 2479791018067637690, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_index_tricks.py": 4676293127859087991, - "venv/lib/python3.13/site-packages/urllib3/util/ssl_match_hostname.py": 7411350247004265632, - "venv/lib/python3.13/site-packages/pygments/formatters/terminal.py": 14380579279194052030, - "frontend/build/_app/immutable/nodes/7.uApaBQtS.js": 122651088329333182, - "backend/git_repos/remote/test-repo.git/objects/5a/82ef700fef88b69cd480e4025283809496ee20": 7003383965314354150, - "venv/lib/python3.13/site-packages/pandas/tests/frame/conftest.py": 15090201792072045503, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/httpcore/_async/connection_pool.py": 932468678264370661, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_macos.py": 7028037591427052891, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_inference.py": 16402427186697071465, - "venv/lib/python3.13/site-packages/pip/_internal/commands/list.py": 13035925292530461722, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_period.py": 12593777226419608212, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_sparse_accessor.py": 6774374030220202353, - "venv/lib/python3.13/site-packages/_pytest/deprecated.py": 5452408732344157294, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_public_dtype_api_table.h": 8933016749764021181, - "venv/lib/python3.13/site-packages/pandas/core/algorithms.py": 487939626203097713, - "venv/lib/python3.13/site-packages/pip/_internal/operations/prepare.py": 13514839972066861359, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/cast.py": 342228968652072052, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/clsregistry.py": 1589692649837935355, - "venv/lib/python3.13/site-packages/attr/_next_gen.py": 16353246941851015420, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/urllib3/py.typed": 12220177918227495093, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/LICENSE": 11167201188673981085, - "frontend/src/lib/i18n/index.ts": 4285366775990653535, - "frontend/build/_app/immutable/nodes/20.BboyjuGl.js": 11318425268071802665, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_smoke.py": 7476432112986643847, - "venv/lib/python3.13/site-packages/pycparser/c_generator.py": 14922277346364091122, - "venv/lib/python3.13/site-packages/charset_normalizer/md__mypyc.cpython-313-x86_64-linux-gnu.so": 12629680116730190225, - "frontend/build/_app/immutable/chunks/Cs7qTEqk.js": 15866070137921022262, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_set_name.py": 9094608008538024609, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_file_handling.py": 732772718210067599, - "backend/git_repos/remote/test-repo.git/hooks/pre-merge-commit.sample": 10013699873067956556, - "venv/lib/python3.13/site-packages/passlib/utils/pbkdf2.py": 15802959653228956404, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/licenses/COPYING": 14459782230785388765, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/_cryptography_key.py": 388489172928969873, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_sas.py": 9446226619493404132, - "frontend/src/routes/validation/+page.svelte": 9845194549295283559, - "backend/src/plugins/translate/preview_prompt_helpers.py": 14303328860208074708, - "venv/lib/python3.13/site-packages/authlib/oidc/core/claims.py": 2035724920423374302, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ndarray.pyi": 14369009813591437391, - "venv/lib/python3.13/site-packages/passlib/ifc.py": 14479133654556657428, - "venv/bin/numpy-config": 17104619511899110252, - "venv/lib/python3.13/site-packages/keyring/backends/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f77comments.f": 4801926170672147659, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_distutils.py": 1948707545068786, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_errstate.py": 10788459171326750780, - "venv/lib/python3.13/site-packages/numpy/_expired_attrs_2_0.pyi": 1424133074692438241, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_searchsorted.py": 11208047646304753715, - "venv/lib/python3.13/site-packages/fastapi/_compat/v1.py": 9776181748061371513, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/testing.pyi": 9317922890783549326, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/rec/__init__.pyi": 1782063765067823837, - "venv/lib/python3.13/site-packages/PIL/GdImageFile.py": 16875784236394545058, - "frontend/src/lib/components/reports/ReportsList.svelte": 15460090587871611258, - "frontend/src/lib/components/translate/BulkReplaceModal.svelte": 9447617465987205060, - "venv/lib/python3.13/site-packages/PIL/JpegImagePlugin.py": 10621639599916796689, - "backend/git_repos/remote/test-repo.git/objects/48/c3fde4d5fff5bf98e9bcaa5f328b199aa18292": 6121250272621110311, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_printing.py": 1901396869745313303, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_zips.py": 5184894018177148648, - "venv/lib/python3.13/site-packages/pandas/core/interchange/from_dataframe.py": 8278998381856028462, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/processors.pyx": 7085380878820747579, - "venv/lib/python3.13/site-packages/git/refs/log.py": 5175801243332619268, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_conversion.py": 7507083194555424923, - "venv/lib/python3.13/site-packages/h11/_abnf.py": 10456996134895429201, - "venv/lib/python3.13/site-packages/pip/_internal/locations/_distutils.py": 13559457590971821771, - "venv/lib/python3.13/site-packages/numpy/_core/_internal.pyi": 6840742333427164920, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/ma/LICENSE": 6723325434476453127, - "venv/lib/python3.13/site-packages/pygments/lexers/dylan.py": 16246299896150112270, - "venv/lib/python3.13/site-packages/pygments/lexers/pddl.py": 9256112535059995841, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_tz_localize.py": 14495969595744172955, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reindex_like.py": 13803156447991282315, - "venv/lib/python3.13/site-packages/pip/_internal/operations/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/sorting.py": 689057022713741051, - "venv/lib/python3.13/site-packages/pyasn1/codec/ber/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/pandas/core/sparse/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/dictionary.py": 9599439750713575741, - "venv/lib/python3.13/site-packages/pygments/lexers/futhark.py": 10102535873433759899, - "venv/lib/python3.13/site-packages/pygments/lexers/thingsdb.py": 6073447481627395832, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/METADATA": 3643456577199395707, - "backend/src/api/routes/maintenance/_router.py": 1368406181799456173, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/nested_sequence.pyi": 10985533017688918283, - "venv/lib/python3.13/site-packages/yaml/nodes.py": 3463622922914760653, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ctypeslib.pyi": 8623725566434725526, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_limited_api.py": 15788485008764560845, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/jwe.py": 10478268710546063196, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/cacert.pem": 15624463015628939254, - "venv/lib/python3.13/site-packages/numpy/random/c_distributions.pxd": 16574161095720077595, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_timeseries_window.py": 1973365560758236222, - "venv/lib/python3.13/site-packages/pygments/styles/sas.py": 12363791134941577382, - "frontend/e2e/fixtures/global-setup.js": 16032945890934324203, - "frontend/src/components/tasks/LogEntryRow.svelte": 3694709927263161265, - "backend/src/api/routes/__tests__/conftest.py": 3768471623650776808, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/accesstype.f90": 877982462186396830, - "venv/lib/python3.13/site-packages/iniconfig/__init__.py": 12623265899068631092, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_is_homogeneous_dtype.py": 15378147393056707851, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_converter.py": 7709581879446228856, - "venv/lib/python3.13/site-packages/numpy/testing/__init__.py": 2831275254313750978, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/__init__.pyi": 16164841755339571545, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_get_set.py": 14375107704596905983, - "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/ma/tests/test_core.py": 12712110303898046818, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/create.py": 16693261531832306870, - "venv/lib/python3.13/site-packages/pygments/lexers/floscript.py": 944042220740663491, - "venv/lib/python3.13/site-packages/_pytest/_io/__init__.py": 1510478951261938348, - "venv/bin/uvicorn": 3776670267111625708, - "frontend/src/routes/dashboards/health/__tests__/health_page.integration.test.js": 11653729504599199718, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/nditer.py": 10038360623032425884, - "venv/lib/python3.13/site-packages/referencing/typing.py": 8296636464219681747, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90": 15768643271492041853, - "venv/lib/python3.13/site-packages/passlib/ext/__init__.py": 15240312484046875203, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/setup.py": 5482352991573617756, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_formats.py": 2601044064677727807, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_kwargs.py": 10173906126211473463, - "frontend/build/_app/immutable/chunks/DA0oX2nF.js": 4762485859359244720, - "backend/src/core/auth/repository.py": 7314530014494164270, - "venv/lib/python3.13/site-packages/pandas/core/arrays/timedeltas.py": 7318851108932357510, - "backend/src/plugins/translate/_llm_parse.py": 3278211416813203155, - "backend/tests/test_storage_audit_fixes.py": 6119862973635892572, - "venv/lib/python3.13/site-packages/psycopg2/extensions.py": 14197445323992851566, - "frontend/build/_app/immutable/chunks/DkSc7bnI.js": 16633882293462436801, - "venv/lib/python3.13/site-packages/pandas/tests/extension/list/__init__.py": 10072943986583771248, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/getlimits.pyi": 93747984191461691, - "venv/lib/python3.13/site-packages/pip/_internal/commands/completion.py": 4435231315212798769, - "venv/lib/python3.13/site-packages/websockets/http11.py": 11022534176398053082, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/parsing.pyi": 11967691665766452312, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE.APACHE": 8359973023624924624, - "venv/lib/python3.13/site-packages/rapidfuzz/utils.pyi": 7400725037332728015, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_numeric.py": 9383693732009547935, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh22648.pyf": 15094859289098837494, - "venv/lib/python3.13/site-packages/pandas/core/groupby/grouper.py": 18110568057754450953, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_longdouble.py": 9337218715436213122, - "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/test_decimal.py": 17811784255174057561, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_interval_array_equal.py": 15654625365223535344, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_indexing.py": 5910217172351020811, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_select.py": 17823338162428379468, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_interval.py": 8549680643865283913, - "venv/lib/python3.13/site-packages/numpy/polynomial/_polybase.pyi": 15864712173815045309, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/util.py": 5252158959761945519, - "frontend/src/lib/components/layout/TopNavbar.svelte": 16593656019460608311, - "venv/lib/python3.13/site-packages/greenlet/tests/test_stack_saved.py": 7767924647054186572, - "venv/lib/python3.13/site-packages/rapidfuzz/utils_cpp.cpython-313-x86_64-linux-gnu.so": 16145829319198889672, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufuncs.pyi": 1808147181379894521, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_protocols.py": 5019018645804313814, - "venv/lib/python3.13/site-packages/pandas/core/arrays/__init__.py": 10460719978124302175, - "venv/lib/python3.13/site-packages/passlib/handlers/windows.py": 8969739861295277439, - "venv/lib/python3.13/site-packages/pygments/lexers/tls.py": 3552078393009383412, - "venv/lib/python3.13/site-packages/pygments/lexers/textfmts.py": 17438453283146671997, - "frontend/build/_app/immutable/chunks/ZvPSSfIA.js": 7807067580962053496, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_interpolate.py": 6154072863387383113, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_index.py": 4908727359687606870, - "frontend/src/lib/toasts.js": 199299975383904134, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-expm1.csv": 8710594949902856122, - "venv/lib/python3.13/site-packages/pandas/tests/window/conftest.py": 10673264126684571493, - "backend/src/scripts/delete_running_tasks.py": 7776896567014157554, - "backend/src/plugins/translate/orchestrator_sql_rows.py": 13473935462270832541, - "venv/lib/python3.13/site-packages/referencing/tests/__init__.py": 15130871412783076140, - "backend/tests/conftest.py": 5565151856098492311, - "venv/lib/python3.13/site-packages/numpy/polynomial/legendre.pyi": 2029639875417260268, - "venv/lib/python3.13/site-packages/PIL/MpoImagePlugin.py": 644327650732339301, - "backend/alembic_test.db": 14995253579408279707, - "backend/test.db": 15130871412783076140, - "backend/git_repos/remote/test-repo.git/objects/4f/4e0958b3a42eff67a2b8cfd084d05c43e54716": 6040513978194442637, - "venv/lib/python3.13/site-packages/jeepney/bus.py": 5163075760432139100, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.pxd": 13413785818999584986, - "venv/lib/python3.13/site-packages/pygments/lexers/jslt.py": 11805394130669644345, - "backend/src/plugins/translate/dictionary_correction.py": 18051915404774774954, - "backend/tests/services/clean_release/test_publication_service.py": 17277940125978730159, - "venv/lib/python3.13/site-packages/numpy/lib/_histograms_impl.py": 13446184230476677032, - "venv/lib/python3.13/site-packages/numpy/_core/_methods.py": 16805668769357938792, - "venv/lib/python3.13/site-packages/pandas/core/interchange/utils.py": 11401792151107207834, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_apply.py": 11248068903302454630, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_crosstab.py": 6631711416347033281, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/test_as_unit.py": 4283520188709399244, - "venv/lib/python3.13/site-packages/psycopg2/pool.py": 8855184580138330938, - "venv/lib/python3.13/site-packages/requests/certs.py": 16052880877156864882, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/setitem.py": 9552868454186447925, - "frontend/src/components/storage/FileList.svelte": 11661146151896000393, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/_stan_builtins.py": 1961875544235948177, - "venv/lib/python3.13/site-packages/cryptography/x509/base.py": 9124948989225782039, - "venv/lib/python3.13/site-packages/_pytest/capture.py": 17850967053989495422, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_asfreq.py": 6162659555626011770, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_repeat.py": 16971624301893342868, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_api.py": 13319208721442328400, - "venv/lib/python3.13/site-packages/rapidfuzz/process_cpp.py": 16797760903996739079, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/console.py": 3540660073442483692, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_hermite.py": 3628609433179387988, - "backend/src/core/task_manager/lifecycle.py": 1696300129247014205, - "venv/lib/python3.13/site-packages/passlib/tests/test_ext_django.py": 3210697476292094384, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/test_interval.py": 18040371224712437126, - "venv/lib/python3.13/site-packages/fastapi/security/utils.py": 2616633862993539558, - "frontend/src/routes/settings/MigrationSettings.svelte": 7727089689198444946, - "frontend/build/_app/immutable/chunks/Bz99hFgy.js": 2788010001753617987, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/licenses/LICENSE": 3509878235770224233, - "backend/src/api/routes/assistant/_dataset_review.py": 14508672919199309579, - "venv/lib/python3.13/site-packages/pydantic/generics.py": 15019381413806459410, - "backend/src/services/clean_release/publication_service.py": 1882863137548904782, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_cat.py": 15988884721768567895, - "backend/src/plugins/translate/preview_prompt_builder.py": 2354938052590494405, - "venv/lib/python3.13/site-packages/pip/_internal/req/__init__.py": 12266077985828139928, - "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/__init__.py": 4761936067832638585, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/test_numpy.py": 9825804096508014886, - "frontend/src/routes/settings/notifications/+page.svelte": 14504217413720856827, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_randomstate_regression.py": 17425202198134409689, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq.py": 13853220736499979380, - "venv/lib/python3.13/site-packages/jose/jws.py": 11592462993417182096, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_symbol.py": 10792387279408528886, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_counting.py": 5628494712451120258, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_timezones.py": 8042029178538467146, - "venv/lib/python3.13/site-packages/pyasn1/type/tag.py": 13912273274509186651, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/padding.py": 7470483648602195268, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py": 18325640697829098192, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_fillna.py": 9297637486401098611, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/elements.py": 11185011314498348980, - "venv/lib/python3.13/site-packages/ecdsa/test_sha3.py": 12459459298663975730, - "venv/lib/python3.13/site-packages/pandas/conftest.py": 747626550806435763, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/bulk_persistence.py": 2307818727114646866, - "venv/lib/python3.13/site-packages/pip/_vendor/__init__.py": 11734104142988812647, - "venv/lib/python3.13/site-packages/pandas/tests/io/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/git/index/__init__.py": 7874728461616959441, - "venv/lib/python3.13/site-packages/pygments/lexers/console.py": 18266795648198475028, - "frontend/src/lib/components/translate/TranslationRunGlobalIndicator.svelte": 16210598715819306972, - "frontend/build/_app/immutable/nodes/14.DQdp2XM0.js": 13691839198161634025, - "backend/src/api/routes/storage.py": 17448492494022569347, - "venv/lib/python3.13/site-packages/numpy/_core/printoptions.pyi": 16758392990920041462, - "venv/lib/python3.13/site-packages/pyasn1/debug.py": 6305633719847955310, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/numerictypes.py": 5719374287454872555, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286_bc.pyf": 10893958728966010450, - "venv/lib/python3.13/site-packages/itsdangerous/exc.py": 11181421963755661477, - "venv/lib/python3.13/site-packages/numpy/lib/_arraypad_impl.py": 6348811074249398741, - "venv/lib/python3.13/site-packages/referencing/retrieval.py": 11921179805977833120, - "venv/lib/python3.13/site-packages/numpy/random/_mt19937.cpython-313-x86_64-linux-gnu.so": 85866616759631810, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_fileno.py": 15541504502174047167, - "venv/lib/python3.13/site-packages/pandas/core/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/util/_decorators.py": 14780166101442507665, - "venv/lib/python3.13/site-packages/numpy/_typing/_char_codes.py": 14162745886150625150, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/database.py": 7111764828004587758, - "venv/lib/python3.13/site-packages/pydantic/_internal/_utils.py": 10936299012115637790, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_monotonic.py": 11817523305776951162, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_period_range.py": 9598872514187524706, - "venv/lib/python3.13/site-packages/keyring/compat/properties.py": 1562771115138037410, - "venv/lib/python3.13/site-packages/numpy/random/_examples/numba/extending.py": 16515485226251040454, - "venv/lib/python3.13/site-packages/numpy/strings/__init__.py": 6523674574341354095, - "venv/lib/python3.13/site-packages/anyio/abc/_streams.py": 8089057973257658396, - "venv/lib/python3.13/site-packages/numpy/core/_dtype.py": 2806449741844148191, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi": 13850254283540522444, - "venv/lib/python3.13/site-packages/pandas/api/types/__init__.py": 3995030354191071797, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_arithmetic.py": 4858019700859362660, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_set_axis.py": 4097534573847151853, - "venv/lib/python3.13/site-packages/anyio/functools.py": 4300781896135050327, - "venv/lib/python3.13/site-packages/pydantic/tools.py": 8931184638883701008, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_arithmetic.py": 17427754419626622853, - "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_timedelta.py": 364160935264757405, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_exceptions.py": 15290185665769490169, - "venv/lib/python3.13/site-packages/pandas/io/formats/format.py": 3364941338174434661, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/writeonly.py": 14213960431308620600, - "venv/lib/python3.13/site-packages/apscheduler/util.py": 11440701924954413440, - "venv/lib/python3.13/site-packages/pygments/lexers/asc.py": 10744437946030875496, - "venv/lib/python3.13/site-packages/pygments/lexers/varnish.py": 3608370156692616959, - "venv/lib/python3.13/site-packages/py.py": 16248211404003181569, - "merge_spec.py": 5285945727297582371, - "venv/lib/python3.13/site-packages/itsdangerous/url_safe.py": 13454753900702274266, - "venv/lib/python3.13/site-packages/pip/_internal/utils/appdirs.py": 539688259643447487, - "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/test_array_with_attr.py": 6568496539994758985, - "frontend/src/routes/reports/llm/[taskId]/+page.svelte": 14881196548900101939, - "frontend/src/components/TaskLogViewer.svelte": 11262767195652916566, - "venv/lib/python3.13/site-packages/rsa/prime.py": 10820898885044917095, - "backend/src/api/routes/dashboards/_router.py": 8641007051243802224, - "backend/tests/services/clean_release/test_compliance_task_integration.py": 682622548217611215, - "backend/git_repos/remote/test-repo.git/objects/ee/59553241ef084b83d3351ba4c33caf2ed9a840": 11587106407031972706, - "scripts/scan_secrets.sh": 599173385111063848, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/core": 10616484054735611337, - "venv/lib/python3.13/site-packages/PIL/WebPImagePlugin.py": 5378349556563611996, - "venv/lib/python3.13/site-packages/pygments/formatters/rtf.py": 5850574956253747036, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/_pytest/main.py": 931018496411984909, - "venv/lib/python3.13/site-packages/numpy/lib/_type_check_impl.py": 15989335816452913951, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_autocorr.py": 1092316868398391792, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/extending.pyx": 756189645898997788, - "venv/lib/python3.13/site-packages/pygments/lexers/testing.py": 17148598391210353576, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_libgroupby.py": 9985769511561272200, - "venv/lib/python3.13/site-packages/gitdb/stream.py": 3035738824550231197, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_constructors.py": 979131987837682435, - "venv/lib/python3.13/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0": 116215608212382352, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_overrides.py": 92685611709898742, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_parsing.py": 2228959015420278458, - "venv/lib/python3.13/site-packages/git/config.py": 1724894144987553201, - "venv/lib/python3.13/site-packages/numpy/random/_sfc64.pyi": 3536657185495782642, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/introspection.py": 14645217065508644154, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/sql.py": 13315906751371033170, - "venv/lib/python3.13/site-packages/fastapi/testclient.py": 2606236077497278662, - "venv/lib/python3.13/site-packages/numpy/_typing/__init__.py": 18242238390157333247, - "frontend/src/components/Toast.svelte": 4155277822937119359, - "backend/src/services/dataset_review/orchestrator_pkg/_commands.py": 15474996500928063708, - "venv/lib/python3.13/site-packages/pip/_internal/utils/hashes.py": 17310331665429541812, - "venv/lib/python3.13/site-packages/pydantic/_internal/_typing_extra.py": 14843908493613991959, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_cumulative.py": 11752712818547022872, - "venv/lib/python3.13/site-packages/pip/_vendor/distro/__init__.py": 11414161642984633362, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/bitwise_ops.py": 14350609278188982939, - "venv/lib/python3.13/site-packages/pygments/styles/__init__.py": 18383248976818885498, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust.abi3.so": 2537152913308578487, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x32_unix.h": 9165722966153119887, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_promote.py": 16601872688404846307, - "venv/lib/python3.13/site-packages/PIL/_typing.py": 17407980360703360848, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/descriptor_props.py": 7044852927393650707, - "venv/lib/python3.13/site-packages/pygments/lexers/_lilypond_builtins.py": 1766946089314631488, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_truncate.py": 6478126371906156409, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_join.py": 17508073052750406350, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/nested_schemas.py": 4114645644496880787, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_count.py": 9186538441380080087, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize_py.py": 6518425342376455821, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_map.py": 10769974470610467636, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_openssl.py": 10446441599800965961, - "venv/lib/python3.13/site-packages/pip/_internal/distributions/base.py": 16714704323747942110, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/containers.py": 5969831151685016772, - "venv/lib/python3.13/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0": 7322566017497612912, - "venv/lib/python3.13/site-packages/annotated_doc/main.py": 3384049281532298500, - "venv/lib/python3.13/site-packages/pydantic/env_settings.py": 18250976255197243083, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/compat.py": 17520043776344667309, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_shape_manipulation.py": 12598431412396627042, - "venv/lib/python3.13/site-packages/numpy/typing/__init__.py": 3608665862759745048, - "venv/lib/python3.13/site-packages/numpy/random/_pcg64.pyi": 14785496840737986355, - "venv/lib/python3.13/site-packages/numpy/polynomial/hermite.py": 6617116180936986481, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_fillna.py": 4610666845291315333, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/exc.py": 3242780937124999391, - "venv/lib/python3.13/site-packages/PIL/report.py": 9428754440615681790, - "venv/lib/python3.13/site-packages/pandas/core/groupby/base.py": 16888506204910366302, - "venv/lib/python3.13/site-packages/PIL/PcfFontFile.py": 8867692961463798279, - "venv/lib/python3.13/site-packages/dateutil/_common.py": 12492546559232079071, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_old_ma.py": 18116460138221458026, - "venv/lib/python3.13/site-packages/pygments/lexers/tcl.py": 10343667975436015855, - "venv/lib/python3.13/site-packages/pandas/io/parsers/readers.py": 7899068668225389287, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_constructors.py": 1697610790604400105, - "venv/lib/python3.13/site-packages/PIL/TarIO.py": 13651401276968618561, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/automap.py": 4672057253309608464, - "venv/lib/python3.13/site-packages/websockets/legacy/http.py": 16266924390281399720, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_read_errors.py": 4559483361564472117, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_repr.py": 13147587049887075335, - "frontend/playwright-report/trace/index.BCnMPevh.js": 8625484717968740943, - "frontend/src/routes/dashboards/[id]/components/DashboardLinkedResources.svelte": 8279080994517688482, - "frontend/src/routes/git/+page.svelte": 14169430923974356254, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/licenses/AUTHORS": 3558407083075395848, - "venv/lib/python3.13/site-packages/numpy/_core/shape_base.py": 3996519099530770308, - "venv/lib/python3.13/site-packages/more_itertools/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/_vim_builtins.py": 6842381248727719900, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel.py": 17112989332785349705, - "venv/lib/python3.13/site-packages/passlib/handlers/sha2_crypt.py": 8171587560325812664, - "backend/src/core/mapping_service.py": 17981290763325170519, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_numeric_only.py": 13610631681447961840, - "venv/lib/python3.13/site-packages/passlib/tests/test_pwd.py": 10089138951415591061, - "venv/lib/python3.13/site-packages/ecdsa/test_ecdh.py": 3338834550392548171, - "venv/lib/python3.13/site-packages/pandas/compat/_constants.py": 3909166275649444824, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/quantile.py": 17341029201525362074, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_timedelta.py": 12822713918114715561, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_float.py": 10455718110956856820, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_period.py": 6255181868181182780, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/METADATA": 1684451390569121499, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/console.py": 10217327186846649646, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html.tpl": 12550218314797699304, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/base.py": 3250660921154829815, - "frontend/src/components/PasswordPrompt.svelte": 13739802421315835398, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/hybrid.py": 14287665090144592501, - "backend/src/api/routes/assistant/_dataset_review_dispatch.py": 10108558091463171824, - "backend/src/api/routes/git/_merge_routes.py": 2019590524299108754, - "backend/src/services/maintenance/__init__.py": 3167476255502727608, - "backend/src/plugins/translate/_run_service.py": 1705461175389858266, - "venv/lib/python3.13/site-packages/cffi/_shimmed_dist_utils.py": 4824806157907607487, - "venv/lib/python3.13/site-packages/greenlet/TStackState.cpp": 16720079760074325527, - "dist/docker/frontend.0.1.0.tar.xz": 16011357094675100098, - "venv/lib/python3.13/site-packages/gitdb/__init__.py": 15381521749253695923, - "venv/lib/python3.13/site-packages/pip/_internal/cli/main_parser.py": 7942770969280622910, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_scalar_compat.py": 10068989979144965125, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_xs.py": 1897144171324167738, - "venv/lib/python3.13/site-packages/pip/_internal/index/sources.py": 11609272011565024668, - "venv/lib/python3.13/site-packages/numpy/lib/_arraypad_impl.pyi": 2186875333484796630, - "venv/lib/python3.13/site-packages/pandas/_libs/_cyutility.cpython-313-x86_64-linux-gnu.so": 3372660143512868174, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_datetimes.py": 8863748366184419339, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/RECORD": 8201759541483070364, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/authorization_server.py": 17967809814827547139, - "venv/lib/python3.13/site-packages/numpy/core/shape_base.py": 17925759824894973734, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_constructors.py": 7466113171256856591, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_rank.py": 5817408252050193538, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/LICENSE": 6774760218010069963, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/cursor.py": 8074527784886981710, - "venv/lib/python3.13/site-packages/jsonschema/validators.py": 3832874295500213309, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_loongarch64_linux.h": 6566098590441297326, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_numba.py": 1668304729617150075, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/array_constructors.pyi": 4993066609272697419, - "venv/lib/python3.13/site-packages/fastapi/params.py": 14263655860695381481, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_combine_first.py": 11425059090050867171, - "frontend/build/_app/immutable/assets/0.C35F__rI.css": 18367119336440743976, - "venv/lib/python3.13/site-packages/pandas/util/_validators.py": 10201915528715968165, - "venv/lib/python3.13/site-packages/greenlet/tests/test_version.py": 6317733744899804292, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_combine.py": 4446011286411407708, - "venv/lib/python3.13/site-packages/httpcore/_backends/mock.py": 6849131425727092784, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_highlight.py": 7573043358244876807, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/introspection.py": 5447179017910128771, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_polybase.pyi": 3404315099794022355, - "venv/lib/python3.13/site-packages/pandas/core/arrays/datetimelike.py": 394614958716301173, - "venv/lib/python3.13/site-packages/typing_extensions.py": 8402965285733247527, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_add_prefix_suffix.py": 8367793476246001244, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_orm_types.py": 5508682532707462217, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/pyodbc.py": 8175468565413744516, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7592/__init__.py": 1398617034174236358, - "venv/lib/python3.13/site-packages/jeepney/io/trio.py": 11859775321483330469, - "venv/lib/python3.13/site-packages/pydantic/_internal/_repr.py": 1758478941817868344, - "venv/lib/python3.13/site-packages/pygments/lexers/math.py": 1647133236144311250, - "frontend/playwright-report/trace/manifest.webmanifest": 565917384317025203, - "venv/lib/python3.13/site-packages/greenlet/TThreadState.hpp": 15599148954148720463, - "venv/lib/python3.13/site-packages/pandas/core/ops/__init__.py": 4049432353810047365, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/coercions.py": 5112358449376598662, - "venv/lib/python3.13/site-packages/pandas/tests/extension/json/array.py": 7437107031079833232, - "venv/lib/python3.13/site-packages/starlette/authentication.py": 10905269573809129547, - "venv/lib/python3.13/site-packages/numpy/lib/recfunctions.py": 3001896031623204147, - "venv/lib/python3.13/site-packages/pygments/lexers/func.py": 12257919753150082714, - "venv/lib/python3.13/site-packages/_pytest/config/compat.py": 13175516717549204627, - "venv/lib/python3.13/site-packages/websockets/speedups.c": 11800200877763464246, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_string.py": 9224234539232195189, - "venv/lib/python3.13/site-packages/pydantic/v1/_hypothesis_plugin.py": 6383299780629629080, - "venv/lib/python3.13/site-packages/sqlalchemy/util/preloaded.py": 3719702436309355562, - "venv/lib/python3.13/site-packages/_pytest/stash.py": 14430252294763173610, - "venv/lib/python3.13/site-packages/_pytest/pastebin.py": 13946273207624603063, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_assignability.pyi": 1718610984396277997, - "venv/lib/python3.13/site-packages/passlib/tests/utils.py": 15403198680231294263, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/index.py": 2763962019423787504, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_droplevel.py": 2071197388394658690, - "venv/lib/python3.13/site-packages/numpy/testing/overrides.py": 11819432487830192978, - "backend/src/api/routes/migration.py": 6030566471113208264, - "backend/src/models/__tests__/test_report_models.py": 18076243829002249148, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/base.py": 10200916670889920659, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py": 18069619555394133945, - "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/arrays/categorical/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/websockets/sync/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_strings.py": 17398806130402098912, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/jupyter.py": 4446535289156468239, - "venv/lib/python3.13/site-packages/PIL/ImageOps.py": 3884310863548175682, - "venv/lib/python3.13/site-packages/gitdb/const.py": 14122142034887286559, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_compat.py": 11481259393140789881, - "venv/lib/python3.13/site-packages/pygments/lexers/scdoc.py": 8481749542463754279, - "venv/lib/python3.13/site-packages/PIL/PsdImagePlugin.py": 4347581352716313298, - "backend/src/plugins/translate/scheduler.py": 13413202759986193820, - "backend/tests/test_smoke_app.py": 7819901244710945164, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatters/__init__.py": 3247870839323520754, - "backend/git_repos/remote/test-repo.git/objects/a1/3525f5f44e26d8fbec3226bd488d14793575a2": 3742572048019652365, - "venv/lib/python3.13/site-packages/click/types.py": 6491651131669287534, - "venv/lib/python3.13/site-packages/rapidfuzz/process.pyi": 6959881293311340830, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_unix.h": 9608771997528633681, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py": 6109201994963211857, - "venv/lib/python3.13/site-packages/authlib/oauth1/errors.py": 1154126353335030046, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/pyproject.py": 12684373765476932108, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/warnings_and_errors.pyi": 9019577563960071498, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_masm.asm": 16630507336149184509, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/modules.pyi": 14176187662591164602, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_utils.py": 4612923732868929770, - "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/array.py": 3517673819082574078, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_indexing.py": 16623126293364224089, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_logical_ops.py": 4438104524064299182, - "venv/lib/python3.13/site-packages/numpy/_core/shape_base.pyi": 10225243791643474943, - "venv/lib/python3.13/site-packages/numpy/_typing/_scalars.py": 17701938912160369190, - "venv/lib/python3.13/site-packages/pandas/_testing/__init__.py": 10127496080404419481, - "venv/lib/python3.13/site-packages/pyasn1/type/namedval.py": 8273171503516887681, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/token.py": 11655733747403312358, - "venv/lib/python3.13/site-packages/passlib/handlers/des_crypt.py": 15304795681178011265, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/functions.py": 16567226076808693246, - "venv/lib/python3.13/site-packages/multipart/__init__.py": 6496114190873890851, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_fields.py": 16222559851336781264, - "venv/lib/python3.13/site-packages/urllib3/connection.py": 12761371748350595804, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_real/foo90.f90": 58572216018544419, - "venv/lib/python3.13/site-packages/pygments/styles/rrt.py": 9490973359165080360, - "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/__init__.py": 63497920264089252, - "venv/lib/python3.13/site-packages/pandas/api/executors/__init__.py": 16954693181142010028, - "venv/lib/python3.13/site-packages/requests/help.py": 1885413874621672882, - "venv/lib/python3.13/site-packages/pygments/lexers/ruby.py": 6898093948224302592, - "frontend/src/lib/components/layout/Breadcrumbs.svelte": 10874106485242690185, - "backend/src/core/logger.py": 12787152815342378434, - "venv/lib/python3.13/site-packages/pydantic/_internal/_decorators.py": 9928398334052202841, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_casting_floatingpoint_errors.py": 4301355720042319835, - "venv/lib/python3.13/site-packages/_pytest/runner.py": 5772610501857496741, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/col.py": 4221271461723119525, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh17797.f90": 17319074662077763768, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_get_value.py": 389530025760539462, - "venv/lib/python3.13/site-packages/pydantic/experimental/missing_sentinel.py": 1637241331832367709, - "venv/lib/python3.13/site-packages/gitdb/db/ref.py": 1176701624460337371, - "backend/src/api/routes/profile.py": 11866770263441371105, - "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/__init__.py": 14268033439436797364, - "venv/lib/python3.13/site-packages/click/_compat.py": 14451519072991457993, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/linalg.pyi": 7217817172953767893, - "venv/lib/python3.13/site-packages/numpy/_core/fromnumeric.py": 9409852116555866847, - "venv/lib/python3.13/site-packages/pip/_vendor/distro/distro.py": 12494639376332486204, - "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_update.py": 12293424926920594944, - "venv/lib/python3.13/site-packages/_pytest/hookspec.py": 387790426108810884, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/engine.py": 2652248727360250985, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/pygments/lexers/_tsql_builtins.py": 829193091321611630, - "frontend/src/routes/settings/automation/+page.svelte": 17397435134589275932, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssl_.py": 644667973700652263, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/licenses/LICENSE": 16147999986886816451, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/licenses/LICENSE.rst": 5960743202700406649, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/testing.pyi": 16263777835572515739, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_mod.f90": 5765181406654284736, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_indexing.py": 9862204223281834360, - "frontend/src/lib/components/DashboardMaintenanceBadge.svelte": 9085495636438661604, - "venv/lib/python3.13/site-packages/attr/_typing_compat.pyi": 2823472697859409877, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/sync_openid.py": 5670082466989878756, - "venv/lib/python3.13/site-packages/pygments/styles/_mapping.py": 11752660241391232497, - "backend/src/plugins/search.py": 888817404897740233, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_partial_slicing.py": 15567512240469921599, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_drop.py": 15751236355035730554, - "backend/src/plugins/translate/service_datasource.py": 10240814407336170041, - "venv/lib/python3.13/site-packages/click/_textwrap.py": 14586282603215052310, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/asyncmy.py": 11808138763443525443, - "venv/lib/python3.13/site-packages/charset_normalizer/utils.py": 11724147997933584095, - "backend/git_repos/remote/test-repo.git/objects/c5/b992984fe856bd81206304a881faa3087937cf": 2441623644664166468, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_setops.py": 13440916133402971190, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_parse_dates.py": 5344929031479212951, - "venv/lib/python3.13/site-packages/fastapi/concurrency.py": 17937688838625807004, - "venv/lib/python3.13/site-packages/secretstorage/dhcrypto.py": 8860116996905452758, - "venv/lib/python3.13/site-packages/numpy/ma/testutils.py": 9355402483340137461, - "venv/lib/python3.13/site-packages/numpy/lib/_scimath_impl.py": 14696841109142419143, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/einsumfunc.py": 9944042006439149561, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multithreading.py": 12547048606098186681, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/__init__.py": 5118993772178969104, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_sparc_sun_gcc.h": 2915128971664712180, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_reindex.py": 15794750188594767026, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/constructors.py": 7587476800569414769, - "venv/lib/python3.13/site-packages/PIL/DdsImagePlugin.py": 10646832373516499548, - "venv/lib/python3.13/site-packages/numpy/char/__init__.pyi": 12214207343146244743, - "venv/lib/python3.13/site-packages/_pytest/_io/pprint.py": 11202117031437223527, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_resampler_grouper.py": 8388490036390951341, - "venv/lib/python3.13/site-packages/authlib/jose/util.py": 14843923624043422219, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/diagnose.py": 17275977405061138181, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/utils.py": 2959395751217827103, - "venv/lib/python3.13/site-packages/sqlalchemy/connectors/__init__.py": 17194870661869873083, - "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/__init__.py": 12911374670789466961, - "venv/lib/python3.13/site-packages/pycparser/ast_transforms.py": 9032453625977464506, - "frontend/src/lib/components/layout/__tests__/test_topNavbar.svelte.js": 11053755879172333925, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/shared.py": 1162754506656505196, - "frontend/src/routes/maintenance/+page.svelte": 13247950766849520966, - "frontend/src/routes/dashboards/[id]/+page.svelte": 12833231703682809118, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_operators.py": 12686786829906210592, - "venv/lib/python3.13/site-packages/pandas/core/indexes/range.py": 3838277376774246164, - "backend/src/plugins/translate/superset_executor.py": 5480256123348033488, - "backend/src/plugins/translate/_llm_http.py": 15686826696693103176, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_partial_indexing.py": 4132091154215910029, - "venv/lib/python3.13/site-packages/pandas/core/apply.py": 17080038932032802984, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_quantile.py": 11273403743157110261, - "venv/lib/python3.13/site-packages/keyring/backends/Windows.py": 4103830951042463184, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/licenses/LICENSE": 17020744174398828059, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_repr.py": 16609300578827398344, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/bar.py": 12859947592168238832, - "venv/lib/python3.13/site-packages/pandas/tests/libs/test_libalgos.py": 13934861984871432400, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_partial.py": 15129217814262096441, - "frontend/playwright-report/trace/assets/codeMirrorModule-Ds_H_9Yq.js": 1369559823166915102, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_pickle.py": 4216445955812104014, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_period.py": 3419297908709788013, - "frontend/playwright-report/data/cc5452f8d8c308a176676866ee06628a569362aa.zip": 18382826147717299104, - "venv/lib/python3.13/site-packages/numpy/fft/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/jsonschema_specifications/tests/test_jsonschema_specifications.py": 12693210357718751894, - "venv/lib/python3.13/site-packages/pandas/core/internals/__init__.py": 1377108808392195313, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_stack_unstack.py": 3737891757817696405, - "frontend/src/lib/stores/__tests__/assistantChat.test.js": 11822882112255142537, - "venv/lib/python3.13/site-packages/pygments/lexers/clean.py": 17772169928835025327, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate_nonkeyword_arguments.py": 11676809974120007408, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arrayprint.py": 13335063050941743734, - "backend/src/api/routes/git/_repo_lifecycle_routes.py": 6605622512801609889, - "venv/lib/python3.13/site-packages/passlib/tests/sample_config_1s.cfg": 1809713544666311828, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_format.py": 16150524965028369071, - "backend/tests/test_logger.py": 11506419828617508917, - "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/__init__.py": 17630019785411546070, - "venv/lib/python3.13/site-packages/ecdsa/ssh.py": 17010933326090778158, - "venv/lib/python3.13/site-packages/httpx/_decoders.py": 14478643473006178492, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/terminal_theme.py": 13727399800263579809, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/lib/format.py": 14971167445246135440, - "venv/lib/python3.13/site-packages/pandas/core/arrays/_arrow_string_mixins.py": 16862663427780315543, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_map.py": 32086858815359344, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_byteswap.py": 5090287710338893350, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_unary.py": 7128845965976836334, - "venv/lib/python3.13/site-packages/pygments/lexers/_qlik_builtins.py": 1728058904137960444, - "frontend/src/lib/stores.js": 8062876368729352764, - "frontend/src/lib/components/translate/ScheduleConfig.svelte": 9548866160759602637, - "venv/lib/python3.13/site-packages/pandas/core/missing.py": 13332302791063948992, - "venv/lib/python3.13/site-packages/fastapi/security/__init__.py": 1345944646061334046, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/contains.py": 3098087827310439993, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame.py": 16757570551941104401, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_fillna.py": 13675584998644907265, - "venv/lib/python3.13/site-packages/dateutil/tz/_factories.py": 7538654189286887518, - "backend/src/plugins/translate/__tests__/test_dictionary_import.py": 828852818135096215, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_cell_widths.py": 5724379364993806351, - "venv/lib/python3.13/site-packages/numpy/lib/user_array.pyi": 1968484998382771986, - "venv/lib/python3.13/site-packages/pandas/tests/libs/test_hashtable.py": 7762405492052106717, - "venv/lib/python3.13/site-packages/PIL/ExifTags.py": 6869879826623916830, - "backend/src/__init__.py": 11250920420388310655, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi": 3893434234020223151, - "backend/git_repos/remote/test-repo.git/objects/17/66251d8cb2693136e09ea3def3e776559cb722": 1137762010493457272, - "backend/src/plugins/translate/dictionary.py": 2903767700173238799, - "venv/lib/python3.13/site-packages/httpx/_auth.py": 1283189552342958900, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_timedeltas.py": 4118671843063545221, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_pop.py": 5700439923973346681, - "venv/lib/python3.13/site-packages/pandas/tests/util/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cos.csv": 12896264205153363031, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_masm.asm": 15349921092257597740, - "venv/lib/python3.13/site-packages/pygments/lexers/idl.py": 11454152060351801696, - "frontend/build/_app/immutable/chunks/rzyp_Wbp.js": 10559672264716197308, - "venv/lib/python3.13/site-packages/pandas/core/groupby/__init__.py": 3015263524218708013, - "venv/lib/python3.13/site-packages/pygments/lexers/_openedge_builtins.py": 4979988747924637739, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/wait.py": 6196757964348666082, - "backend/src/models/dataset_review_pkg/_mapping_models.py": 8898456326244890685, - "venv/lib/python3.13/site-packages/pip/_internal/operations/install/editable_legacy.py": 8145740626773638218, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/__init__.py": 2246704695838251846, - "venv/lib/python3.13/site-packages/pydantic_settings/version.py": 17263591404988984480, - "venv/lib/python3.13/site-packages/numpy/lib/_histograms_impl.pyi": 6534825471013879522, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/fixed_string.f90": 8654788371538544793, - "venv/lib/python3.13/site-packages/numpy/_core/function_base.py": 5676611841071163854, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_interval_pyarrow.py": 3849382723890414899, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/METADATA": 13776251749114562660, - "venv/lib/python3.13/site-packages/pip/_internal/cli/status_codes.py": 9143625681947330756, - "venv/lib/python3.13/site-packages/numpy/_typing/_extended_precision.py": 4201820494689784136, - "venv/lib/python3.13/site-packages/cffi/recompiler.py": 17809252277700094304, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/endpoint.py": 13389763148720370546, - "venv/lib/python3.13/site-packages/uvicorn/protocols/__init__.py": 15130871412783076140, - "backend/src/schemas/validation.py": 11881058653924000699, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/cli.py": 6382193953727339271, - "backend/src/services/clean_release/repositories/manifest_repository.py": 12395698948312301073, - "venv/lib/python3.13/site-packages/pandas/_libs/parsers.cpython-313-x86_64-linux-gnu.so": 14134106903573638108, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA_py.py": 2494967094400350388, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_array.f90": 9711940829820746513, - "venv/lib/python3.13/site-packages/numpy/_core/_string_helpers.pyi": 12043292763005874815, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_common.py": 3559416690270529904, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_timezones.py": 1962830142478494009, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_iterator.py": 13869355993837330406, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/conftest.py": 12368472226536104037, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/secrets.py": 17816662030600756342, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_integer.f90": 8308927438994838783, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_base_indexer.py": 3129123098288498633, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/PIL/FliImagePlugin.py": 13364963053197422923, - "venv/lib/python3.13/site-packages/git/compat.py": 16843345645628515492, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mysqldb.py": 2138006249556140141, - "backend/git_repos/remote/test-repo.git/objects/c2/491dfd8c841bacd5f491510f6334aa4a626f00": 6297303620364618482, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_style.py": 10405592363651914796, - "venv/lib/python3.13/site-packages/numpy/_core/_type_aliases.pyi": 15848834171197104301, - "venv/lib/python3.13/site-packages/urllib3/http2/__init__.py": 62108352209996836, - "venv/lib/python3.13/site-packages/pygments/lexers/data.py": 9365024327689738663, - "backend/src/services/__tests__/test_resource_service.py": 13275183651826747527, - "backend/tests/test_task_persistence.py": 1764267414712263025, - "venv/lib/python3.13/site-packages/pandas/_libs/algos.pyi": 22405377601029952, - "venv/lib/python3.13/site-packages/pandas/core/nanops.py": 18291534943985310005, - "venv/lib/python3.13/site-packages/websockets/uri.py": 264376168984862773, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_numpy.py": 4073641912755651877, - "venv/lib/python3.13/site-packages/pandas/io/json/_table_schema.py": 3103776773020058805, - "venv/lib/python3.13/site-packages/git/repo/__init__.py": 6173604284490891047, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/LICENSE": 6581019367004699816, - "venv/lib/python3.13/site-packages/pycparser/ply/ctokens.py": 1599952198962458730, - "venv/lib/python3.13/site-packages/httpcore/_backends/trio.py": 8394426709857317737, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_cumulative.py": 8178093067175155877, - "venv/lib/python3.13/site-packages/numpy/lib/_arraysetops_impl.pyi": 3111521453255595221, - "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/METADATA": 15225661995655327539, - "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/__init__.py": 9083396324667433335, - "venv/lib/python3.13/site-packages/pygments/formatters/latex.py": 7514533384468139434, - "venv/bin/jsonschema": 16516374846693491442, - "frontend/src/routes/reports/+page.svelte": 17831076184881844976, - "frontend/src/components/git/GitManager.svelte": 2759220622954168718, - "venv/lib/python3.13/site-packages/pyasn1/codec/ber/decoder.py": 12653470212935324322, - "backend/src/plugins/translate/preview_resolve_provider.py": 7349483761713339246, - "venv/lib/python3.13/site-packages/anyio/streams/memory.py": 11762722143503428823, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_at_time.py": 15352346149584081864, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_cut.py": 7800833253841657380, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/tags.py": 254599446317461188, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-sin.csv": 1443087417808027268, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/base.py": 3628510830969664111, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_setops.py": 10550603120090683350, - "venv/lib/python3.13/site-packages/_pytest/warnings.py": 8633394774569709013, - "venv/lib/python3.13/site-packages/pip/_internal/cli/base_command.py": 10660882478126415399, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/METADATA": 2810323639884879396, - "venv/lib/python3.13/site-packages/pandas/core/config_init.py": 16537122488227845090, - "venv/lib/python3.13/site-packages/pygments/lexers/teraterm.py": 16132676290138105984, - "frontend/src/routes/settings/__tests__/settings_page.integration.test.js": 4898515600493251972, - "venv/lib/python3.13/site-packages/fastapi/_compat/may_v1.py": 9880083742927480960, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_searchsorted.py": 12074107109575676897, - "backend/src/plugins/llm_analysis/scheduler.py": 14673660738877638091, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/RECORD": 13494296690334916257, - "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/licenses/LICENSE": 3868190977070717994, - "venv/lib/python3.13/site-packages/pip/_internal/utils/filesystem.py": 7716285033598020316, - "venv/lib/python3.13/site-packages/numpy/_core/lib/npy-pkg-config/npymath.ini": 1071371630695963467, - "venv/lib/python3.13/site-packages/yaml/resolver.py": 6669674521776449098, - "backend/git_repos/remote/test-repo.git/objects/4e/227f4d8289ea657ae813b1460f979ae4b676b3": 5659284628452785331, - "venv/lib/python3.13/site-packages/psycopg2/_ipaddress.py": 12332672835751787869, - "backend/src/scripts/seed_permissions.py": 17005340106913955508, - "frontend/src/routes/profile/+page.svelte": 17979719303737794427, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/WHEEL": 13232065379159720345, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/__init__.py": 371829636800613137, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/RECORD": 16874983218652404911, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_half.py": 3121836756584726126, - "venv/lib/python3.13/site-packages/fastapi/middleware/wsgi.py": 3706578020491442104, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/connection.py": 5582413226288987808, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_convert_dtypes.py": 13612212066710266457, - "backend/src/core/auth/jwt.py": 15575717945774687118, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7592/endpoint.py": 18260428408051728802, - "venv/lib/python3.13/site-packages/_pytest/_code/source.py": 9488112979192923739, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/structures.py": 2668010839316715865, - "venv/lib/python3.13/site-packages/numpy/polynomial/polyutils.pyi": 8195943561787777127, - "backend/src/api/routes/__tests__/test_clean_release_api.py": 11565478953155085157, - "backend/src/services/clean_release/__tests__/test_report_builder.py": 14655761033823243898, - "venv/lib/python3.13/site-packages/click/decorators.py": 2920877667855377423, - "venv/lib/python3.13/site-packages/pyasn1/codec/native/encoder.py": 120921270972591880, - "venv/lib/python3.13/site-packages/pip/_internal/utils/filetypes.py": 4415340223268174913, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/tests/test_numpy_version.py": 849232015288488204, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test__iotools.py": 6260912730310453037, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test__version.py": 9037916251087760255, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/syntax.py": 18070449217682341495, - "venv/lib/python3.13/site-packages/numpy/_core/arrayprint.py": 1262543237476191714, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_periodindex.py": 13430003945574795792, - "venv/lib/python3.13/site-packages/pip/_internal/utils/retry.py": 15244280495983216204, - "venv/lib/python3.13/site-packages/httpcore/_async/http11.py": 7565741048880549265, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_s3.py": 17425535047477778484, - "venv/lib/python3.13/site-packages/pygments/lexers/arturo.py": 4565524340706235725, - "venv/lib/python3.13/site-packages/pygments/lexers/graphql.py": 2307854666015224677, - "frontend/build/_app/immutable/chunks/b6ODGUZr.js": 3762567609123440186, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/oauth1_client.py": 3129955464287331242, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/rec.pyi": 9140655366667421698, - "venv/lib/python3.13/site-packages/keyring/backend_complete.zsh": 14339032329370660432, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/response.py": 15004896908941411698, - "venv/lib/python3.13/site-packages/pip/_internal/models/candidate.py": 3099785363867247334, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64dxsm-testset-2.csv": 16611724551361692999, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/schema.py": 8358664670620586363, - "venv/lib/python3.13/site-packages/git/objects/util.py": 691018806932355307, - "frontend/src/routes/settings/__tests__/settings_page.ux.test.js": 12159582682619630694, - "backend/:memory:test_auth": 1309242367339970214, - "backend/git_repos/remote/test-repo.git/info/exclude": 6403833611826357791, - "venv/lib/python3.13/site-packages/PIL/GribStubImagePlugin.py": 14954946414134984896, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_box_unbox.py": 7579587620530953711, - "venv/lib/python3.13/site-packages/apscheduler/triggers/date.py": 9545774812177853725, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/comparisons.py": 7327629888601690759, - "frontend/playwright-report/trace/sw.bundle.js": 10879347794748701702, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_datetime.py": 4179112383995346046, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_value_counts.py": 5534713464063604301, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/multiarray.py": 3224049574922696945, - "venv/lib/python3.13/site-packages/pygments/lexers/_lua_builtins.py": 12653747099659257203, - "venv/lib/python3.13/site-packages/pandas/core/common.py": 14578909424716153057, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_astype.py": 6578539240745332772, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_frame.py": 9378623452601244234, - "venv/lib/python3.13/site-packages/pandas/tests/construction/__init__.py": 15130871412783076140, - "frontend/src/lib/components/layout/__tests__/sidebarNavigation.test.js": 8459006438402290167, - "backend/src/services/clean_release/manifest_builder.py": 10633987497931832162, - "backend/src/services/clean_release/stages/base.py": 344723354852893815, - "venv/lib/python3.13/site-packages/authlib/oidc/registration/__init__.py": 9448552677419908109, - "venv/lib/python3.13/site-packages/pip/__pip-runner__.py": 1138979712722199296, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_color.py": 3700828402084646308, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_constructors.py": 9767900500541600486, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/__init__.py": 15735839022111230173, - "venv/lib/python3.13/site-packages/_pytest/cacheprovider.py": 5114545353355728201, - "frontend/build/index.html": 9441612921158753253, - "frontend/src/lib/components/reports/ReportDetailPanel.svelte": 16014663571033060148, - "venv/lib/python3.13/site-packages/pygments/lexers/ptx.py": 4855144232064607995, - "backend/src/core/scheduler.py": 3824665790179894336, - "venv/lib/python3.13/site-packages/pip/_internal/req/constructors.py": 17485271035479378662, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_character.py": 17168707712220699738, - "venv/lib/python3.13/site-packages/pandas/core/arrays/boolean.py": 8821671562937866269, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufunc_config.pyi": 11754104063443791746, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/keyring/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/implicit.py": 7379110378465568776, - "venv/lib/python3.13/site-packages/cryptography/hazmat/__init__.py": 6534110674636458866, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_unique.py": 16285418015531891530, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_compression.py": 8061288329598682752, - "frontend/src/lib/components/layout/Sidebar.svelte": 8588237337148619706, - "venv/lib/python3.13/site-packages/secretstorage/item.py": 15486045386471912693, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/utils.py": 9959199071030996679, - "venv/lib/python3.13/site-packages/websockets/frames.py": 4901850477414613953, - "venv/lib/python3.13/site-packages/pip/_internal/commands/cache.py": 1892313355296776523, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_util.py": 13997184496924925110, - "frontend/src/lib/ui/Button.svelte": 921807193049478213, - "venv/lib/python3.13/site-packages/numpy/typing/tests/test_typing.py": 10311989961588249147, - "venv/lib/python3.13/site-packages/greenlet/tests/test_greenlet.py": 10727595500186011102, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/func2subr.py": 338595621218646492, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/requirements.py": 2362917888844255805, - "venv/lib/python3.13/site-packages/websockets/imports.py": 1995356703044158461, - "venv/lib/python3.13/site-packages/websockets/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_dists.py": 16746363359320577809, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/tree.py": 4991806303236874829, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/simple.py": 11050636051019777317, - "venv/lib/python3.13/site-packages/numpy/polynomial/laguerre.pyi": 11310761736182213265, - "venv/lib/python3.13/site-packages/pandas/tests/resample/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_astype.py": 15768655715952923925, - "frontend/public/vite.svg": 13568221685541582385, - "venv/lib/python3.13/site-packages/pandas/core/indexes/api.py": 13750417165301467381, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/filewrapper.py": 17786759398959482432, - "backend/src/core/task_manager/context.py": 17543992255093146942, - "venv/lib/python3.13/site-packages/pandas/_libs/json.pyi": 10989301892466547548, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/WHEEL": 7454950858448014158, - "venv/lib/python3.13/site-packages/starlette/applications.py": 13591448461234020757, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/subversion.py": 7423946096970870727, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arrayprint.py": 5912583751693302370, - "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/unrolled.py": 12651425412640834530, - "venv/lib/python3.13/site-packages/pandas/_config/dates.py": 3863381688916127265, - "venv/lib/python3.13/site-packages/numpy/linalg/_linalg.py": 9654828595008925976, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_diff.py": 2216748778018882333, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dropna.py": 3168969662216766293, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/specifiers.py": 12284901056355482991, - "venv/lib/python3.13/site-packages/numpy/random/_generator.pyi": 17167649524261942483, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_reindex.py": 12459492712890114705, - "venv/lib/python3.13/site-packages/dateutil/parser/isoparser.py": 18015430204844361067, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_stmts.f90": 6123192245816905092, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz.pyi": 7410507092040239447, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/jws.py": 7505219131537941130, - "venv/lib/python3.13/site-packages/numpy/core/function_base.py": 12696640832638144604, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_constructors.py": 2786493777737472376, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_getitem.py": 8414677531950073373, - "backend/src/core/utils/__init__.py": 12454773556575864508, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_setops.py": 14246225281428284850, - "backend/src/plugins/maintenance_banner.py": 13535851937983395493, - "venv/lib/python3.13/site-packages/smmap/test/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_sequence.py": 3721630758772772345, - "venv/lib/python3.13/site-packages/pygments/lexers/typoscript.py": 6706632522710582762, - "venv/lib/python3.13/site-packages/cffi/pkgconfig.py": 16057517851163939571, - "venv/lib/python3.13/site-packages/cryptography/hazmat/asn1/__init__.py": 4290669519959060720, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/RECORD": 11976403473353722969, - "venv/lib/python3.13/site-packages/python_multipart/exceptions.py": 5971058243218049183, - "venv/lib/python3.13/site-packages/numpy/random/__init__.py": 11732100564412485633, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_federal.py": 16758212916399857971, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_union_categoricals.py": 6843679254735807, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_ints.py": 5616705208267050659, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/_orm_constructors.py": 4276726508722638048, - "venv/lib/python3.13/site-packages/itsdangerous/signer.py": 3694661094753475840, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/parameters.py": 5104015814292812973, - "backend/src/services/validation_service.py": 4040391162969506763, - "venv/lib/python3.13/site-packages/pip/_internal/commands/__init__.py": 3795218871212151351, - "backend/src/core/__tests__/test_superset_profile_lookup.py": 2078836378584435447, - "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py": 63497920264089252, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/min_max_.py": 13457611930368041821, - "backend/src/plugins/translate/__tests__/test_dictionary_filter.py": 2426844436521732941, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reindex.py": 8772423071604000084, - "backend/git_repos/remote/test-repo.git/objects/00/fcf77cecdf261aef91eda792ab3384a3339922": 1527330822006618217, - "venv/lib/python3.13/site-packages/cryptography/fernet.py": 10137792148038140630, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_meson.pyi": 2101854548535776875, - "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/sqlalchemy/engine/characteristics.py": 2916810597149066609, - "venv/lib/python3.13/site-packages/sqlalchemy/types.py": 15819795572817819102, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arrayprint.pyi": 2424868797160722318, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_timestamp_method.py": 11393911418463808195, - "venv/lib/python3.13/site-packages/pandas/core/computation/expr.py": 13085709365673019494, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_libfrequencies.py": 16302676625743291594, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_numpy.py": 222383250675686477, - "venv/lib/python3.13/site-packages/pydantic/deprecated/copy_internals.py": 1245428320513062166, - "venv/lib/python3.13/site-packages/passlib/exc.py": 15559705487889657091, - "venv/lib/python3.13/site-packages/numpy/_core/lib/npy-pkg-config/mlib.ini": 16151597765994697599, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/type_api.py": 10299750173867399533, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cosh.csv": 9287774220881887502, - "venv/bin/dotenv": 953953349803507198, - "venv/lib/python3.13/site-packages/greenlet/greenlet_thread_support.hpp": 7773996382104849037, - "venv/lib/python3.13/site-packages/idna/package_data.py": 6583909243002417298, - "venv/lib/python3.13/site-packages/pandas/api/typing/aliases.py": 11194270368147942988, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/WHEEL": 2357997949040430835, - "backend/src/plugins/translate/__tests__/test_dictionary_utils.py": 12007616543185225081, - "venv/lib/python3.13/site-packages/jsonschema/tests/fuzz_validate.py": 2328585939822059352, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7636/__init__.py": 913610541217778747, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_assumed_shape.py": 18361009188431483164, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_recfunctions.py": 16014503284544747867, - "venv/lib/python3.13/site-packages/pandas/core/series.py": 11618272682977710696, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_join.py": 2585969863606902743, - "venv/lib/python3.13/site-packages/pygments/modeline.py": 6194365452131561478, - "venv/lib/python3.13/site-packages/fastapi/openapi/models.py": 1680354178147364813, - "venv/bin/fastapi": 12400009726251862770, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/__init__.py": 71159121705871510, - "venv/lib/python3.13/site-packages/numpy/linalg/__init__.py": 15647756307608142577, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/cymysql.py": 5570881524647789741, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_logical/foo90.f90": 12508663906609241323, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/serializer.py": 8708767945343850816, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/fields.cpython-313-x86_64-linux-gnu.so": 16927263232848238698, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_na_indexing.py": 8712547126522523899, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_complex.py": 4290059580478881700, - "venv/lib/python3.13/site-packages/pandas/tests/test_multilevel.py": 10500316376521962061, - "frontend/src/lib/auth/store.ts": 14669655798912377598, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py": 3960540415600165213, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/__init__.py": 10470644151952252331, - "backend/src/core/migration/__init__.py": 13075189211840127611, - "venv/lib/python3.13/site-packages/passlib/tests/test_utils_pbkdf2.py": 17016810698578473773, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_infer_objects.py": 16868563755487479303, - "venv/lib/python3.13/site-packages/sqlalchemy/connectors/pyodbc.py": 4146960201984489604, - "frontend/build/favicon.png": 16740551781088792605, - "backend/src/plugins/translate/__tests__/test_scheduler.py": 11257332466578758156, - "venv/lib/python3.13/site-packages/pandas/core/reshape/pivot.py": 4736553530021653868, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/pretty.py": 2448541115957861214, - "venv/lib/python3.13/site-packages/jose/backends/rsa_backend.py": 13507186353881931758, - "venv/lib/python3.13/site-packages/pygments/styles/emacs.py": 4540417536507245024, - "venv/lib/python3.13/site-packages/pydantic/_internal/_dataclasses.py": 15256193972947054890, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/signals.py": 10390443713463805090, - "frontend/src/app.css": 3020720639702954139, - "venv/lib/python3.13/site-packages/pyasn1/type/univ.py": 7163437624197683039, - "backend/src/api/routes/validation.py": 13836068409484617547, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_time_grouper.py": 3203729024111501071, - "venv/lib/python3.13/site-packages/httpcore/_async/http_proxy.py": 13364803556177997526, - "backend/src/models/clean_release.py": 6080208142954589647, - "frontend/src/lib/components/translate/CorrectionCell.svelte": 14340498120654577399, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_clearing_run_switches.py": 3020294789560975101, - "venv/lib/python3.13/site-packages/pygments/lexers/objective.py": 10966124906622044512, - "venv/lib/python3.13/site-packages/numpy/__init__.pyi": 15820654525292895396, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/timeseries.py": 17641722582848932332, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/test_transform.py": 5674175311567817854, - "venv/lib/python3.13/site-packages/pandas/_libs/arrays.pyi": 12629806207276576877, - "venv/lib/python3.13/site-packages/httpcore/_async/http2.py": 16350817785499681224, - "frontend/src/lib/api/maintenance.js": 17611932083877701146, - "frontend/src/routes/settings/+page.svelte": 10122073858307249759, - "venv/lib/python3.13/site-packages/apscheduler/triggers/base.py": 1170652622104554892, - "frontend/build/_app/immutable/nodes/9.C5HoT9pt.js": 3952586507302745635, - "backend/src/scripts/test_dataset_dashboard_relations.py": 11883199369340933897, - "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pandas/_libs/internals.pyi": 11662356720550765508, - "venv/lib/python3.13/site-packages/numpy/core/overrides.pyi": 1968648615494204783, - "venv/lib/python3.13/site-packages/starlette/middleware/errors.py": 1337979724602864440, - "venv/lib/python3.13/site-packages/sqlalchemy/util/_collections.py": 7772437080414835462, - "frontend/src/routes/datasets/review/ReviewWorkspaceHeader.svelte": 15302107925819930527, - "venv/lib/python3.13/site-packages/passlib/handlers/scram.py": 12281469744083867450, - "frontend/src/routes/dashboards/[id]/components/DashboardHeader.svelte": 5572977872383619871, - "venv/lib/python3.13/site-packages/fastapi/applications.py": 4975013401500183420, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_ewm.py": 12153690217678546798, - "venv/lib/python3.13/site-packages/pygments/styles/inkpot.py": 10516710471319090846, - "backend/src/models/maintenance.py": 2088418229495130810, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/METADATA": 14126682758562488244, - "venv/lib/python3.13/site-packages/smmap/test/lib.py": 2924931247676024085, - "venv/lib/python3.13/site-packages/httpx/_transports/wsgi.py": 11981127094916412794, - "venv/lib/python3.13/site-packages/_pytest/reports.py": 13930709338396699351, - "venv/lib/python3.13/site-packages/pydantic/_internal/_mock_val_ser.py": 12265320534388472158, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_loop.py": 6502725909989655118, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/libdivide.h": 5314232500579481313, - "venv/lib/python3.13/site-packages/cffi/_embedding.h": 9441285871823018603, - "venv/lib/python3.13/site-packages/pip/_vendor/distro/__main__.py": 2688850704829116818, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arrayterator.py": 3076316311545674897, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/pytestplugin.py": 1591034895268415944, - "venv/lib/python3.13/site-packages/pygments/lexers/minecraft.py": 10133579583270214110, - "venv/lib/python3.13/site-packages/pandas/core/util/__init__.py": 15130871412783076140, - "frontend/build/_app/immutable/chunks/DsxtPyvP.js": 3746126985395053120, - "backend/src/models/report.py": 9185954411073383239, - "backend/src/models/dataset_review_pkg/_profile_models.py": 9621392840420324583, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/exclusions.py": 15852672500377116297, - "backend/src/plugins/storage/plugin.py": 17070362975404691950, - "backend/src/plugins/translate/_token_budget.py": 1545056585783198863, - "backend/tests/test_api_key_routes.py": 8620555141760963281, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/models.py": 9513172366009392193, - "venv/lib/python3.13/site-packages/attr/setters.py": 12467854389745942025, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_random.py": 4179188367630060654, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string.py": 3834067244989779682, - "venv/lib/python3.13/site-packages/PIL/ImageText.py": 15322496455608242001, - "frontend/src/assets/svelte.svg": 13872699371039797074, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/RECORD": 7844752443022514265, - "venv/lib/python3.13/site-packages/pandas/_libs/window/indexers.pyi": 9911899303567570646, - "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/INSTALLER": 17282701611721059870, - "frontend/src/routes/dashboards/[id]/components/DashboardGitManager.svelte": 14665567599893731601, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_other.py": 783701524491896337, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_query_eval.py": 17613800806748649144, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_pytables_missing.py": 12154582133989896069, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_insert.py": 6970975909565157982, - "venv/lib/python3.13/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17": 7615380692384566654, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_chunksize.py": 7107619871245389835, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/incfile.f90": 4348588746493647387, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/errors.py": 4817746830102488448, - "venv/lib/python3.13/site-packages/pygments/styles/colorful.py": 15708848112363953394, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_shape_base.py": 8837845103338426570, - "backend/src/core/task_manager/__init__.py": 15991802770215124472, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/poly1305.py": 10854598965202354516, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/util.py": 4890614159013873000, - "venv/lib/python3.13/site-packages/numpy/ma/__init__.pyi": 1855615156913010107, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_regression.py": 12593643817685777170, - "backend/test_app.db": 2486636812009447051, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/decl_api.py": 5287018911951723034, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_nat.py": 18428782698385974380, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_isocalendar.py": 5704842983090753914, - "venv/lib/python3.13/site-packages/cryptography/x509/general_name.py": 4481582226129488535, - "venv/lib/python3.13/site-packages/starlette/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/_isocbind.py": 15031197044862908440, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby.py": 16180421154734310873, - "venv/lib/python3.13/site-packages/pandas/io/sas/__init__.py": 8095743504390517992, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_join.py": 1131792466825856990, - "backend/src/api/routes/git/_deps.py": 8233286973979159721, - "venv/lib/python3.13/site-packages/websockets/legacy/framing.py": 12759022769700230409, - "venv/lib/python3.13/site-packages/_pytest/_code/__init__.py": 6211607282116942091, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/markers.py": 5247208668583898949, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/pydantic/functional_serializers.py": 15285359935059345032, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/datasource.pyi": 16752667877866430577, - "backend/tests/test_translate_corrections.py": 1228642484417924184, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_re.py": 1296579393600719224, - "venv/lib/python3.13/site-packages/pydantic/dataclasses.py": 12384956801113860889, - "venv/lib/python3.13/site-packages/passlib/tests/test_utils_handlers.py": 556092537518149789, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/uvicorn/loops/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/code.py": 9700811903057180696, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/padding.py": 11244071766694094554, - "venv/lib/python3.13/site-packages/requests/status_codes.py": 17005213506461710202, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/generate_umath_validation_data.cpp": 10880681943327843928, - "venv/lib/python3.13/site-packages/referencing/_core.py": 14744795336121513230, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/result.py": 12262298207886620908, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/tools.py": 6437315459200419827, - "venv/lib/python3.13/site-packages/pandas/tests/apply/common.py": 1113935558495455492, - "venv/lib/python3.13/site-packages/rapidfuzz/__init__.pyi": 13131938031654453415, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7636/challenge.py": 6388445104761482746, - "venv/lib/python3.13/site-packages/PIL/ImageTransform.py": 7825940907094338808, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/segment.py": 2555584120510872966, - "venv/bin/pyrsa-sign": 15564653706771700451, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata.py": 2021612995853910808, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/__init__.py": 13841777369501476946, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/WHEEL": 7145482834744213753, - "frontend/src/components/__tests__/task_log_viewer.test.js": 6512653335179659416, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/processors.cpython-313-x86_64-linux-gnu.so": 18139875206371157315, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi": 11733449165276720901, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/authorization_server.py": 4427151727224472650, - "frontend/build/_app/immutable/nodes/18.X9qqmMrM.js": 10317790872480568902, - "backend/git_repos/remote/test-repo.git/description": 15262637409357137373, - "frontend/src/lib/stores/health.js": 1061942219531952418, - "venv/lib/python3.13/site-packages/pandas/core/arrays/categorical.py": 15993211255162930859, - "frontend/src/components/git/CommitHistory.svelte": 61942790722897211, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/well_known.py": 7183795183137931709, - "venv/lib/python3.13/site-packages/smmap/mman.py": 9091562788592406032, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/factory.py": 3042005457138956499, - "venv/lib/python3.13/site-packages/pip/_internal/commands/uninstall.py": 11003472265011262515, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_types.py": 7175518113263603341, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_groupby.py": 2738671407653333726, - "venv/lib/python3.13/site-packages/pip/_internal/models/direct_url.py": 4619204214785230341, - "venv/lib/python3.13/site-packages/idna/uts46data.py": 5698404064763638591, - "venv/lib/python3.13/site-packages/referencing/tests/test_core.py": 8280983300775878144, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_combine.py": 16193618152415684421, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_update.py": 9098258267671647783, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/WHEEL": 15858869568085970864, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_elements_constructors.py": 9279447066034364952, - "frontend/playwright-report/data/dcf41bdb395adaf70707a711375fd3b464dd384f.webm": 3819814233647777883, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/signature.py": 3614545297259098566, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_concatenate_chunks.py": 9693420220003544490, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/mt19937-testset-2.csv": 14641856424618845798, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/pubprivmod.f90": 8680230823849248800, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/WHEEL": 5990830714395966792, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/serialize.py": 11139432164346742421, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_manylinux.py": 12272275001961360101, - "venv/lib/python3.13/site-packages/sqlalchemy/util/_has_cy.py": 11979732417254560424, - "venv/lib/python3.13/site-packages/_pytest/assertion/__init__.py": 16392348866405910618, - "venv/lib/python3.13/site-packages/tzlocal/__init__.py": 11017072814026497364, - "venv/lib/python3.13/site-packages/pandas/core/shared_docs.py": 2173578869755325502, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_openpyxl.py": 9542840527483618681, - "backend/src/services/__tests__/test_llm_plugin_persistence.py": 16769242892960874042, - "backend/git_repos/remote/test-repo.git/hooks/fsmonitor-watchman.sample": 14381968406977928721, - "venv/lib/python3.13/site-packages/pip/_internal/wheel_builder.py": 3893922370396791826, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_utils.py": 15197339054699289627, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_http_headers.py": 13187746870209705951, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py": 14307204206312829238, - "venv/lib/python3.13/site-packages/pip/_internal/models/installation_report.py": 14534544543677907640, - "venv/lib/python3.13/site-packages/anyio/to_interpreter.py": 8369454842687342401, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_spss.py": 4865360315909532603, - "venv/lib/python3.13/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2": 5320647379976541240, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/text.py": 6096215585499446070, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_string.py": 10141066226714805009, - "venv/lib/python3.13/site-packages/pydantic/datetime_parse.py": 196119761382305574, - "frontend/src/lib/api/translate/corrections.js": 3619404083693055292, - "frontend/e2e/tests/git.e2e.js": 5892730242199126550, - "backend/src/services/sql_table_extractor.py": 2522819274015363166, - "backend/src/plugins/migration.py": 16213446701284149979, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_extending.py": 10202091354750153497, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/memory.py": 9947113720821563254, - "backend/src/api/routes/assistant/_admin_routes.py": 3380446401429936332, - "frontend/src/lib/components/health/PolicyForm.svelte": 16556369076015031814, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_rank.py": 5398520257852104723, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh17859.f": 13562390882286135024, - "backend/src/api/routes/admin.py": 235004514833998579, - "venv/lib/python3.13/site-packages/ecdsa/test_pyecdsa.py": 14542286382742044648, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/__init__.py": 14571251344510763303, - "backend/src/core/task_manager/__tests__/test_task_logger.py": 1651218524520477084, - "venv/lib/python3.13/site-packages/rpds/__init__.pyi": 12037474523494903587, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/__init__.py": 2833016678144975576, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA.pyi": 2700568594438441246, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/highlighter.py": 10615901258492570740, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/expression.py": 15511250785671695359, - "frontend/src/lib/components/assistant/__tests__/assistant_confirmation.integration.test.js": 12582020574293031526, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286.pyf": 14358606965464506398, - "venv/lib/python3.13/site-packages/pip/_internal/models/format_control.py": 12916176880659590456, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_period.py": 9715843209581883915, - "venv/lib/python3.13/site-packages/pyasn1/compat/__init__.py": 5902203086150636670, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh25211.pyf": 10179237442840865225, - "venv/lib/python3.13/site-packages/passlib/utils/handlers.py": 10182859005870689026, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_analytics.py": 4510712334676848202, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/plugin_base.py": 2880434680251108786, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_rowcount.py": 6682800584070485197, - "venv/lib/python3.13/site-packages/PIL/_imagingft.cpython-313-x86_64-linux-gnu.so": 11054435406031360190, - "backend/src/services/clean_release/repositories/artifact_repository.py": 9040122866024534865, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x86_unix.h": 13709837360414450184, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/index_tricks.pyi": 11463747060334597941, - "docker/frontend.Dockerfile": 13262735279052210084, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_nonunique_indexes.py": 15468078561381939405, - "venv/lib/python3.13/site-packages/starlette/formparsers.py": 9019779181100355515, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_args_and_kwargs.py": 3381939712123764154, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/base_key.py": 10402800587070352851, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py": 10057637461647348368, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/certs.py": 13366788049827102313, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/fields.py": 10090313990429695520, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/fromnumeric.py": 3792079757208879362, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_regression.py": 5652583095949741238, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_arrow_interface.py": 5231449831607036031, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_shift.py": 9952689832827833247, - "venv/lib/python3.13/site-packages/referencing/tests/test_exceptions.py": 10846225989746274213, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_datetimelike.py": 5317270578347271174, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/twodim_base.pyi": 10156504423258357540, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/array_api_info.pyi": 7887489694871300469, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_values.py": 430620320423334461, - "venv/lib/python3.13/site-packages/pygments/lexers/json5.py": 9736695186548899403, - "venv/lib/python3.13/site-packages/_pytest/compat.py": 10046464101087327473, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_setops.py": 9991233160569430204, - "venv/lib/python3.13/site-packages/click/termui.py": 7022374827798605437, - "venv/lib/python3.13/site-packages/websockets/sync/client.py": 10892557975919033983, - "venv/lib/python3.13/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0": 17866578820357536656, - "venv/lib/python3.13/site-packages/numpy/lib/_iotools.py": 10522826373041592861, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_interface.py": 13648006002292914247, - "venv/lib/python3.13/site-packages/pandas/tests/test_sorting.py": 10751098438703044961, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_common.py": 2265736743367879051, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_mem_overlap.py": 4202716587079637350, - "venv/lib/python3.13/site-packages/jeepney/tests/test_low_level.py": 3579024079580951234, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkrb5-fcafa220.so.3.3": 5620628698712971642, - "venv/lib/python3.13/site-packages/jaraco/classes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/fastapi/dependencies/models.py": 8626894872248212015, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_function_base.py": 15241999259666702619, - "venv/lib/python3.13/site-packages/numpy/f2py/__init__.py": 7470157159992827389, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/METADATA": 13428590545328703138, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_ddl.py": 3690189094298044728, - "venv/lib/python3.13/site-packages/pygments/lexers/blueprint.py": 6370363226580199085, - "venv/lib/python3.13/site-packages/numpy/f2py/cfuncs.pyi": 8232620851756907417, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_indexing.py": 16291207621268530224, - "venv/lib/python3.13/site-packages/pygments/lexer.py": 3658450949169647228, - "backend/git_repos/remote/test-repo.git/hooks/pre-commit.sample": 102291230237676317, - "venv/lib/python3.13/site-packages/greenlet/TBrokenGreenlet.cpp": 10822436772777706192, - "venv/lib/python3.13/site-packages/dotenv/__main__.py": 16883579879172186355, - "venv/lib/python3.13/site-packages/websockets/speedups.pyi": 10322382420215791091, - "venv/lib/python3.13/site-packages/numpy/tests/test_lazyloading.py": 17465787495701737655, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval_tree.py": 15789443159423302291, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_sql.py": 3901697517087276687, - "venv/lib/python3.13/site-packages/pandas/core/indexes/multi.py": 9115751979327393200, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_constructors.py": 16197656939536784142, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_common.py": 9097104320321411408, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/build_tracker.py": 9389444024234384408, - "venv/lib/python3.13/site-packages/requests/compat.py": 5836590172733661320, - "venv/lib/python3.13/site-packages/pip/_internal/utils/_jaraco_text.py": 9046755357011730699, - "venv/lib/python3.13/site-packages/PIL/ImtImagePlugin.py": 17599267755504817169, - "venv/lib/python3.13/site-packages/passlib/handlers/__init__.py": 3424087230285514388, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_sort_index.py": 13517883160584591966, - "venv/lib/python3.13/site-packages/_pytest/python.py": 1829073958095716309, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/scalars.pyi": 3130685119595923378, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_describe.py": 14493300276133670380, - "venv/lib/python3.13/site-packages/numpy/lib/_user_array_impl.py": 13115032674230220791, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh27697.f90": 4990763135487995517, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/authenticate_client.py": 16886645731942472285, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_fillna.py": 8802093795040069423, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_integer/foo90.f90": 3492659529812762861, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/test_indexing.py": 2274965639578580723, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_week.py": 5756727157937218128, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_item.py": 17619314877770917080, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/licenses/LICENSE": 13322127602069971876, - "frontend/build/_app/immutable/nodes/29.56ajaPq7.js": 13881277175518745666, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_cov_corr.py": 8117511855230249212, - "venv/lib/python3.13/site-packages/pandas/tests/internals/test_api.py": 11217428888457119601, - "backend/src/services/git/_branch.py": 4560456889410483402, - "venv/lib/python3.13/site-packages/fastapi/security/http.py": 8465565118555441408, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/metadata.py": 7204343250279221076, - "venv/lib/python3.13/site-packages/starlette/exceptions.py": 15978811612997200737, - "venv/lib/python3.13/site-packages/_pytest/debugging.py": 16135285365306979060, - "venv/lib/python3.13/site-packages/numpy/lib/_index_tricks_impl.pyi": 5892973170789971535, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_indexing.py": 7181087459615188551, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/py.typed": 9796674040111366709, - "venv/lib/python3.13/site-packages/jeepney/io/tests/test_blocking.py": 6312017389529916004, - "venv/lib/python3.13/site-packages/pandas/tests/extension/json/__init__.py": 7877061921210840955, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_date_range.py": 16128552513324017349, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/assignOnlyModule.f90": 15967199601254912096, - "venv/lib/python3.13/site-packages/pygments/lexers/forth.py": 17623561228839319663, - "backend/src/core/utils/superset_context_extractor/_templates.py": 6790136732701012567, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/warnings.py": 2552021607611112605, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_style.py": 6849613206971398029, - "venv/lib/python3.13/site-packages/numpy/f2py/capi_maps.pyi": 10638891136586198429, - "venv/lib/python3.13/site-packages/keyring/backends/kwallet.py": 3071915635647280308, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/METADATA": 6438256145634479451, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_combine_concat.py": 3201068805128232483, - "venv/lib/python3.13/site-packages/urllib3/http2/probe.py": 4069929463671970243, - "frontend/src/routes/datasets/review/review-workspace-helpers.js": 8577563379877694502, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/printing.py": 8681519649669408795, - "venv/lib/python3.13/site-packages/jaraco/classes/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/jeepney/wrappers.py": 15234251727654692435, - "venv/lib/python3.13/site-packages/numpy/testing/_private/extbuild.pyi": 18253950285509265097, - "venv/lib/python3.13/site-packages/numpy/tests/test_scripts.py": 5790352482583964348, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/licenses/LICENSE": 1126906383149772681, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_sorted.py": 1899608688401238388, - "venv/lib/python3.13/site-packages/referencing/tests/test_retrieval.py": 10782087416909177703, - "venv/lib/python3.13/site-packages/starlette/middleware/gzip.py": 4321371046149637632, - "venv/lib/python3.13/site-packages/pandas/tests/base/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pycparser/_c_ast.cfg": 2649342580905806389, - "frontend/build/_app/immutable/chunks/CuzmfnQu.js": 4320326097426684598, - "venv/lib/python3.13/site-packages/sqlalchemy/util/_concurrency_py3k.py": 7301817934902711510, - "venv/lib/python3.13/site-packages/pydantic/v1/errors.py": 11245135449608452720, - "venv/lib/python3.13/site-packages/numpy/lib/_polynomial_impl.pyi": 2042169688753984918, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/numeric.py": 14451517189908259173, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_m68k_gcc.h": 6580173800099450404, - "venv/lib/python3.13/site-packages/PIL/__main__.py": 827665918723937817, - "frontend/src/components/git/CommitModal.svelte": 4151596094672629211, - "venv/lib/python3.13/site-packages/PIL/GifImagePlugin.py": 16073125611077200693, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_delitem.py": 16538190861492829338, - "venv/lib/python3.13/site-packages/numpy/f2py/diagnose.pyi": 8607205990821121708, - "venv/lib/python3.13/site-packages/passlib/apps.py": 4633269405597895766, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_easter.py": 3397863170068576196, - "venv/lib/python3.13/site-packages/PIL/ImageGrab.py": 11114379915762058868, - "venv/lib/python3.13/site-packages/pandas/_libs/ops.cpython-313-x86_64-linux-gnu.so": 10490009128553397250, - "backend/src/core/superset_client/__init__.py": 13995635011522535664, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_insert.py": 11635164392966270621, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_pipe.py": 8255917221095334212, - "venv/lib/python3.13/site-packages/ecdsa/test_der.py": 7117444285097824495, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/meson.build": 9642189398934130247, - "venv/lib/python3.13/site-packages/cffi/_imp_emulation.py": 17246725564704952212, - "venv/lib/python3.13/site-packages/numpy/_core/_umath_tests.cpython-313-x86_64-linux-gnu.so": 3478629877770507853, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_abc.py": 10164280045317807365, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/groupby.py": 14661033005768429774, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_arrow_compat.py": 12986187285988432338, - "venv/lib/python3.13/site-packages/PIL/SpiderImagePlugin.py": 12234762087257163606, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/state.py": 10500170103357297551, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_timezones.py": 15157687716502574038, - "venv/lib/python3.13/site-packages/dateutil/utils.py": 7067026915090881998, - "venv/lib/python3.13/site-packages/pip/_internal/utils/entrypoints.py": 11268059714209889385, - "venv/lib/python3.13/site-packages/pyasn1/codec/cer/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/sqlalchemy/log.py": 10101221585967121334, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/modes.py": 6832635056228445650, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/__init__.py": 14522970260621605208, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/strings.pyi": 15361498560917514616, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_api.py": 1910541672533352625, - "venv/lib/python3.13/site-packages/pygments/lexers/bdd.py": 5389493859905397060, - "venv/lib/python3.13/site-packages/pydantic/v1/main.py": 213087273729911492, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/color_triplet.py": 17264298271771184, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_cte.py": 9274103293201050794, - "frontend/src/lib/Counter.svelte": 4002153662176313030, - "backend/git_repos/remote/test-repo.git/hooks/post-update.sample": 4288868784459664203, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_network.py": 13159427333040109523, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_series.py": 10922287546912569276, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ma.pyi": 6467636381637286867, - "venv/lib/python3.13/site-packages/jsonschema/cli.py": 9813914882090789748, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/licenses/LICENSE": 11199044866758471950, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/endpoint.py": 8519226897299461194, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/protocol.py": 932296179250981622, - "venv/lib/python3.13/site-packages/numpy/matrixlib/defmatrix.pyi": 17903213294220335051, - "venv/lib/python3.13/site-packages/pandas/io/sas/sasreader.py": 12766780210114366112, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/evaluator.py": 6348022789899831255, - "venv/lib/python3.13/site-packages/pygments/lexers/igor.py": 6506221273085723501, - "venv/lib/python3.13/site-packages/pygments/lexers/apl.py": 16767474673619335683, - "frontend/src/lib/stores/translationRun.js": 10005138082029605368, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/RECORD": 18294169019244826301, - "frontend/src/routes/datasets/StatsBar.svelte": 7818919570179436566, - "venv/lib/python3.13/site-packages/pydantic/functional_validators.py": 5835339743072048940, - "backend/src/api/routes/clean_release_v2.py": 12814311709297749713, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_subclass.py": 11096337912872573314, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_slp_switch.py": 16490710972475154509, - "venv/lib/python3.13/site-packages/_pytest/mark/__init__.py": 9343015549300275714, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_os.h": 7883047506449405400, - "venv/lib/python3.13/site-packages/pandas/_libs/missing.cpython-313-x86_64-linux-gnu.so": 1990755879067132155, - "venv/lib/python3.13/site-packages/pandas/core/computation/api.py": 17919983681396223380, - "venv/lib/python3.13/site-packages/pandas/tests/construction/test_extract_array.py": 3100523370314150013, - "venv/lib/python3.13/site-packages/pycparser/_ast_gen.py": 5464347629908906775, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_arithmetic.py": 976970179757115407, - "venv/lib/python3.13/site-packages/pygments/lexers/ul4.py": 9580182474451220952, - "backend/git_repos/remote/test-repo.git/hooks/pre-receive.sample": 6118492409684431911, - "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pydantic/v1/mypy.py": 17076910404409672245, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/async_openid.py": 8708980645667847439, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_ordered.py": 13827016781743929164, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/resource_protector.py": 3563910821279222695, - "venv/lib/python3.13/site-packages/passlib/tests/test_context_deprecated.py": 7876919198015151018, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pipe.py": 7400355977900310233, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_arithmetic.py": 17449383588949771785, - "venv/lib/python3.13/site-packages/numpy/core/_dtype_ctypes.pyi": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_antijoin.py": 14435396877404907826, - "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/__init__.py": 8705044848308260480, - "venv/lib/python3.13/site-packages/pandas/tests/frame/common.py": 7426635866622531875, - "venv/lib/python3.13/site-packages/pandas/io/common.py": 12088195203620154171, - "venv/lib/python3.13/site-packages/packaging/_parser.py": 13394093358675095309, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_inference.py": 5741637509343419942, - "venv/lib/python3.13/site-packages/pygments/lexers/nix.py": 15050086330545600356, - "venv/bin/pip3": 13861749540792881808, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/stride_tricks.pyi": 8257977532799807847, - "backend/src/scripts/clean_release_tui.py": 11100359353752859553, - "venv/lib/python3.13/site-packages/sqlalchemy/inspection.py": 8563914460959280101, - "venv/lib/python3.13/site-packages/numpy/f2py/crackfortran.pyi": 9206355685192026844, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/hashes.py": 8545380307201732345, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/publicmod.f90": 2174121054736811903, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/base.py": 5294446834530589760, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_numba.py": 6409810497251251179, - "venv/lib/python3.13/site-packages/pydantic/__init__.py": 11536052293866174672, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_xlsxwriter.py": 8445547874832015203, - "venv/lib/python3.13/site-packages/yaml/constructor.py": 8731384179016992045, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_indexing.py": 4334578480714520407, - "frontend/src/components/git/BranchSelector.svelte": 12975425183125935169, - "venv/pyvenv.cfg": 2513607356761047446, - "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/RECORD": 11111103193315065053, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/__main__.py": 11917862648584782420, - "venv/lib/python3.13/site-packages/numpy/lib/_scimath_impl.pyi": 8879196542984811747, - "venv/lib/python3.13/site-packages/httpx/_api.py": 6697370469329778523, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_reductions.py": 8258332365408303156, - "backend/src/api/routes/dashboards/__init__.py": 15214026957520044598, - "venv/lib/python3.13/site-packages/numpy/__init__.py": 2331213407497901634, - "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_scrypt.py": 17378030264314664250, - "venv/lib/python3.13/site-packages/urllib3/util/__init__.py": 2848870790459558599, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/__init__.py": 15130871412783076140, - "backend/src/api/routes/maintenance/_schemas.py": 9854015056764058803, - "venv/lib/python3.13/site-packages/numpy/_expired_attrs_2_0.py": 8786558894094307341, - "backend/src/services/validation_run_service.py": 5527352359336135164, - "venv/lib/python3.13/site-packages/authlib/oidc/core/models.py": 1370998944213578392, - "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/applicator": 6870991911243684132, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_tz_localize.py": 4937713043686953098, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_pickle.py": 388513670243918273, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/resultproxy.cpython-313-x86_64-linux-gnu.so": 6011605826065363427, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_put.py": 8547660958963625817, - "venv/lib/python3.13/site-packages/pygments/lexers/rnc.py": 9747352274729854620, - "venv/lib/python3.13/site-packages/packaging/pylock.py": 15346942039643310253, - "venv/lib/python3.13/site-packages/anyio/_core/_signals.py": 1204322949639513552, - "backend/src/services/dataset_review/clarification_pkg/_helpers.py": 9331845075873070265, - "venv/lib/python3.13/site-packages/PIL/XbmImagePlugin.py": 12256750478268246137, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_astype.py": 4854809596041987380, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_dtypes.py": 6831042272921908068, - "venv/lib/python3.13/site-packages/jeepney/tests/secrets_introspect.xml": 10717038359151125278, - "venv/lib/python3.13/site-packages/numpy/conftest.py": 8971879716683736515, - "backend/tests/test_logging_audit_fixes.py": 14806902244422319839, - "backend/git_repos/remote/test-repo.git/objects/93/9cc583a18267406014c57617ccb557569f6aaf": 5474754694741999746, - "frontend/playwright-report/data/a19c216148b1612f8e11679d34071559b77021a0.png": 2734494351837969206, - "frontend/src/routes/tools/backups/+page.svelte": 6796050751535238723, - "frontend/src/components/git/ConflictResolver.svelte": 2318922269446496715, - "backend/src/api/routes/maintenance/__init__.py": 8921716690761316245, - "venv/lib/python3.13/site-packages/passlib/handlers/mssql.py": 2800599582708170195, - "venv/lib/python3.13/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.2.0": 2635192149914499986, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_nlargest.py": 14518132768753249360, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/array_like.py": 2778905818573625118, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/aioodbc.py": 12704729841432715246, - "backend/src/services/mapping_service.py": 9713400496587758211, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_append_common.py": 2377351120083195530, - "venv/lib/python3.13/site-packages/gitdb/test/test_pack.py": 7518388297247535189, - "venv/lib/python3.13/site-packages/jeepney/io/threading.py": 525625939662612746, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_drop.py": 17940792593116540139, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_keys.py": 10813898277355150779, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/conftest.py": 25473177671450048, - "venv/lib/python3.13/site-packages/PIL/TgaImagePlugin.py": 9208942494595222259, - "venv/lib/python3.13/site-packages/starlette/convertors.py": 17839747154274354605, - "venv/lib/python3.13/site-packages/charset_normalizer/cli/__main__.py": 2148876100501691980, - "backend/src/plugins/translate/_run_source.py": 11569137727611732019, - "venv/lib/python3.13/site-packages/pygments/lexers/gsql.py": 15294109558028161389, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_regression.py": 9375525053479844400, - "venv/lib/python3.13/site-packages/numpy/f2py/use_rules.py": 17277594393032382485, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh15035.f": 13126319439858352711, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/nested_secrets.py": 15691917061715429369, - "venv/lib/python3.13/site-packages/pandas/core/groupby/indexing.py": 18009437216172136227, - "venv/lib/python3.13/site-packages/pandas/core/arrays/_ranges.py": 2572903460327860111, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/hook-numpy.pyi": 14233146512272397376, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_constructors.py": 2439700578107653984, - "venv/lib/python3.13/site-packages/jsonschema/__main__.py": 18136546137047911521, - "venv/lib/python3.13/site-packages/PIL/_version.py": 3025206805667405876, - "venv/lib/python3.13/site-packages/fastapi/exceptions.py": 12665775976182239091, - "venv/lib/python3.13/site-packages/numpy/_distributor_init.pyi": 1308368231471324581, - "venv/lib/python3.13/site-packages/anyio/streams/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/multiarray.pyi": 6368268452184570195, - "venv/lib/python3.13/site-packages/pandas/_libs/testing.pyi": 16691791330088523786, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_loadtxt.py": 17562784940619942447, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_numpy_compat.py": 9112925138440787555, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler.py": 1341849861184131135, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/util/typing.py": 17638587764345605306, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_freq_code.py": 13758353172962109140, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/declarative/__init__.py": 2436195108273216959, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/types.py": 356973910046950951, - "venv/lib/python3.13/site-packages/PIL/_imagingmath.pyi": 18222325750818585549, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/__init__.py": 8807410829260170597, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js": 10530710876604536879, - "venv/lib/python3.13/site-packages/pygments/lexers/snobol.py": 414946539602526513, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/__init__.py": 3577295959173028042, - "venv/lib/python3.13/site-packages/cryptography/utils.py": 18088508841978595788, - "venv/lib/python3.13/site-packages/packaging/version.py": 13470993734108007779, - "venv/include/site/python3.13/greenlet/greenlet.h": 16216120538647882082, - "frontend/playwright-report/trace/snapshot.v8KI4P3m.js": 7854911091722310751, - "venv/lib/python3.13/site-packages/pygments/lexers/functional.py": 15896849233007178031, - "venv/lib/python3.13/site-packages/pandas/api/interchange/__init__.py": 181911269762882069, - "venv/lib/python3.13/site-packages/pandas/core/tools/numeric.py": 8510988912136285022, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_convert_dtypes.py": 5005259275646154894, - "venv/lib/python3.13/site-packages/numpy/_core/multiarray.pyi": 3494871767602648807, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/lower_f2py_fortran.f90": 13315882216322269383, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_ndarray.py": 6863874753941288585, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/_typing.py": 17589387690638097975, - "frontend/src/components/Navbar.svelte": 6128753323363185057, - "frontend/build/_app/immutable/chunks/CC_MCBkD.js": 11709343780956289454, - "venv/lib/python3.13/site-packages/numpy/_typing/_ufunc.py": 16859854811012717088, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_getlimits.py": 118041882543413669, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/provision.py": 17812733620485633975, - "venv/lib/python3.13/site-packages/PIL/GimpGradientFile.py": 9777026720028891154, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_windows.py": 9171347078900057357, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_item_selection.py": 1027989019709029615, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/modules.py": 9023244176010175562, - "venv/lib/python3.13/site-packages/pygments/lexers/kusto.py": 16285533608924436308, - "venv/bin/pygmentize": 2166491742035772877, - "frontend/src/lib/stores/assistantChat.js": 13807808925025688939, - "frontend/src/services/gitService.js": 7044825476968825357, - "frontend/src/lib/components/reports/reportTypeProfiles.js": 10752964062056890725, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/fromnumeric.pyi": 6708743411405679061, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arccosh.csv": 5882025767947638305, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py": 5946672289916692272, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py": 5400174351499383072, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/jwk.py": 6458001384702613165, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize.pyi": 6616985736007157309, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_formats.py": 9738552308554950419, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_period.py": 10309599277099605395, - "venv/lib/python3.13/site-packages/passlib/tests/test_totp.py": 9150389741890748343, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py": 15644105878811738516, - "venv/lib/python3.13/site-packages/pandas/io/sas/sas_constants.py": 14492427939536692313, - "venv/lib/python3.13/site-packages/urllib3/util/util.py": 12490259045660543460, - "venv/lib/python3.13/site-packages/uvicorn/loops/asyncio.py": 16496916527760969173, - "venv/lib/python3.13/site-packages/authlib/deprecate.py": 3563885283090710443, - "backend/src/api/routes/__tests__/test_clean_release_v2_release_api.py": 14275839608126658275, - "venv/lib/python3.13/site-packages/numpy/ctypeslib/_ctypeslib.pyi": 10360538024015064036, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/live_render.py": 14619617939683800204, - "venv/lib/python3.13/site-packages/pandas/core/groupby/groupby.py": 5536922766239875007, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/core": 6622984507059115517, - "venv/lib/python3.13/site-packages/websockets/asyncio/router.py": 15039562376314233669, - "venv/lib/python3.13/site-packages/numpy/_core/_rational_tests.cpython-313-x86_64-linux-gnu.so": 13475521165331256711, - "venv/lib/python3.13/site-packages/pydantic/_internal/_schema_generation_shared.py": 23345689300073549, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/RECORD": 3205266407680661753, - "venv/lib/python3.13/site-packages/pandas/core/interchange/buffer.py": 12961802206383700922, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_win_type.py": 18105114803686556748, - "venv/lib/python3.13/site-packages/pandas/tests/generic/test_generic.py": 1297407268239966429, - "venv/lib/python3.13/site-packages/numpy/lib/_version.py": 15294708923334674060, - "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/RECORD": 3283324710045856319, - "venv/bin/activate.csh": 14513616043256836238, - "backend/src/api/routes/assistant/__init__.py": 14959302162073618175, - "venv/lib/python3.13/site-packages/numpy/_configtool.py": 2946953194004101078, - "venv/lib/python3.13/site-packages/pip/_internal/models/__init__.py": 13482731985065116750, - "backend/src/api/routes/environments.py": 1329328901500854319, - "venv/lib/python3.13/site-packages/numpy/random/bit_generator.pxd": 14261507718442469988, - "venv/lib/python3.13/site-packages/fastapi/__init__.py": 11054203163075417954, - "venv/lib/python3.13/site-packages/ecdsa/test_jacobi.py": 1249543655136186433, - "venv/lib/python3.13/site-packages/httpx/_client.py": 1063593889704982038, - "venv/lib/python3.13/site-packages/authlib/oidc/discovery/__init__.py": 308178910015974550, - "venv/lib/python3.13/site-packages/sqlalchemy/util/concurrency.py": 1325673503812009695, - "venv/lib/python3.13/site-packages/sqlalchemy/events.py": 9329355486544822483, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/base.py": 13444129650880426353, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_equals.py": 9903250467264848187, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/LICENSE": 6989336036499641077, - "backend/src/api/routes/git_schemas.py": 9243114525622127446, - "backend/src/services/notifications/__tests__/test_notification_service.py": 5767450314963603475, - "backend/src/services/clean_release/repositories/compliance_repository.py": 7402628017251283691, - "frontend/build/_app/immutable/chunks/aNI39KyB.js": 1756469162576383723, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/env.py": 1254612137164491329, - "venv/lib/python3.13/site-packages/pygments/lexers/php.py": 17636450950688953288, - "backend/src/api/routes/dashboards/_projection.py": 1559143255780155174, - "venv/lib/python3.13/site-packages/authlib/oidc/discovery/models.py": 6924198551176217533, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi": 7801211423226951223, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_take.py": 14969455660160053080, - "frontend/src/lib/components/dataset-review/LaunchConfirmationPanel.svelte": 14399834101283315718, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/shape_base.pyi": 5046405609030418900, - "backend/src/models/storage.py": 14886607138033931307, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/__init__.py": 1197579313959289096, - "venv/lib/python3.13/site-packages/pygments/lexers/modeling.py": 15714077241620129689, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/licenses/LICENSE": 6653202620765194772, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_null_file.py": 6885565068723353414, - "venv/lib/python3.13/site-packages/numpy/fft/tests/test_helper.py": 5362180645056413158, - "venv/lib/python3.13/site-packages/pandas/_libs/lib.pyi": 3049004444338566197, - "venv/lib/python3.13/site-packages/PIL/PngImagePlugin.py": 5076219228736706283, - "frontend/src/lib/ui/Select.svelte": 11354509509920497811, - "venv/lib/python3.13/site-packages/dateutil/tzwin.py": 5149446703746204349, - "backend/src/services/__init__.py": 15123879863527585264, - "backend/src/services/clean_release/repository.py": 11403333156347178483, - "venv/lib/python3.13/site-packages/git/types.py": 13960696584646279283, - "backend/src/plugins/translate/_batch_insert.py": 12482635271028646257, - "backend/tests/test_datasets.py": 10782968094631273511, - "backend/src/core/superset_client/_dashboards_filters.py": 8706676245520282810, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_clip.py": 11111183698178681331, - "venv/lib/python3.13/site-packages/_pytest/pytester.py": 5423287282155948827, - "backend/src/plugins/translate/service_target_schema.py": 15018144148162493344, - "venv/lib/python3.13/site-packages/attrs/converters.py": 13109003765349201809, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/INSTALLER": 17282701611721059870, - "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/httpx/_utils.py": 4836536051177895209, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/progress_bar.py": 15595912766961891283, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/filesize.py": 13234856188049714485, - "venv/lib/python3.13/site-packages/pygments/lexers/factor.py": 15788613154609197002, - "venv/lib/python3.13/site-packages/more_itertools/__init__.py": 9858612105173082060, - "venv/lib/python3.13/site-packages/_pytest/setuponly.py": 10959102379908419762, - "venv/lib/python3.13/site-packages/numpy/linalg/__init__.pyi": 18409133021422984774, - "venv/lib/python3.13/site-packages/numpy/_core/_umath_tests.pyi": 4587511199710546030, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_unsupported.py": 9115440166074553860, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_day.py": 2200008998040663785, - "venv/lib/python3.13/site-packages/pygments/lexers/actionscript.py": 8829560731160428621, - "frontend/src/lib/components/layout/TaskDrawer.svelte": 11803999908168836613, - "backend/tests/services/dataset_review/test_superset_matrix.py": 5114797134613078913, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/apply.py": 3906017176873949738, - "docker/backend.entrypoint.sh": 1034669340368151691, - "venv/lib/python3.13/site-packages/fastapi/dependencies/utils.py": 7687214523082385505, - "frontend/build/_app/immutable/nodes/8.BFOpA89K.js": 13153301632221690235, - "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/INSTALLER": 17282701611721059870, - "backend/src/api/routes/dashboards/_listing_routes.py": 1750634467656242702, - "venv/lib/python3.13/site-packages/numpy/tests/test_warnings.py": 3154249157134620649, - "venv/lib/python3.13/site-packages/pygments/styles/friendly.py": 13799024964803741891, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_pydatetime.py": 16228315407662560992, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_generic.py": 1098361087956787007, - "backend/git_repos/remote/test-repo.git/objects/d5/0298a42699f39e4601c0aa23eab07bcb0703c7": 1966124163198751340, - "venv/lib/python3.13/site-packages/fastapi/__main__.py": 10755252341326986079, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/RECORD": 3288669175908898843, - "frontend/src/lib/stores/__tests__/taskDrawer.test.js": 12307450726550947042, - "frontend/build/_app/immutable/chunks/0SSHfn-s.js": 1512028033550082311, - "venv/lib/python3.13/site-packages/secretstorage/__init__.py": 4535964275649588672, - "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/tests/indexes/string/test_astype.py": 10171766562093740708, - "venv/lib/python3.13/site-packages/pygments/styles/algol.py": 3040373291664740876, - "backend/tests/test_translate_executor_filter.py": 11717560360659156703, - "venv/lib/python3.13/site-packages/pydantic/json.py": 4109352930301629308, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/RECORD": 4487477737768669516, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_liboffsets.py": 14705822637347212540, - "backend/src/api/routes/git/_config_routes.py": 6093940098740660772, - "venv/lib/python3.13/site-packages/pandas/io/excel/_openpyxl.py": 6676451564208867775, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_tz_convert.py": 17957207974799052653, - "venv/lib/python3.13/site-packages/rapidfuzz/__init__.py": 12462153783886855740, - "venv/lib/python3.13/site-packages/uvicorn/supervisors/multiprocess.py": 10047012560534876149, - "frontend/build/_app/immutable/chunks/Dn-Kr3zV.js": 11981784044886973393, - "venv/lib/python3.13/site-packages/numpy/dtypes.pyi": 6713822658171717369, - "venv/lib/python3.13/site-packages/jsonschema/exceptions.py": 15651767069704734674, - "venv/lib/python3.13/site-packages/uvicorn/middleware/asgi2.py": 5355343704425405009, - "venv/lib/python3.13/site-packages/pygments/lexers/make.py": 5345282370426217663, - "venv/lib/python3.13/site-packages/git/index/util.py": 5022401275553420722, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py": 9559295461619813890, - "venv/lib/python3.13/site-packages/numpy/f2py/common_rules.py": 7352635707860427145, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/nattype.cpython-313-x86_64-linux-gnu.so": 2311012065007769341, - "venv/lib/python3.13/site-packages/jeepney/__init__.py": 1063800617763464773, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/METADATA": 3044554568188160018, - "venv/lib/python3.13/site-packages/pygments/lexers/theorem.py": 15666523910367201285, - "venv/lib/python3.13/site-packages/starlette/middleware/exceptions.py": 10408538054406276433, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix_py.py": 6653895521961110080, - "venv/lib/python3.13/site-packages/authlib/integrations/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_integer/foo77.f": 12000068001851270396, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_iloc.py": 7586049606891014270, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/identity.py": 326059526167697655, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_is_monotonic.py": 12769599198035357753, - "venv/lib/python3.13/site-packages/ecdsa/test_numbertheory.py": 2117130219401053225, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/base.py": 16891437410462671317, - "venv/lib/python3.13/site-packages/pygments/lexers/tal.py": 447505725492547461, - "backend/src/core/auth/logger.py": 9289916075840905359, - "backend/src/plugins/git/__init__.py": 2144831474780401625, - "venv/lib/python3.13/site-packages/PIL/PdfParser.py": 13710342183037972042, - "venv/lib/python3.13/site-packages/pandas/tests/window/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/heuristics.py": 1422768761337195135, - "venv/lib/python3.13/site-packages/rsa/parallel.py": 4968566722541778371, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_macosx.h": 3653129798702716366, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/nditer.pyi": 2351219156711800159, - "venv/lib/python3.13/site-packages/pandas/tseries/__init__.py": 2648641118117738895, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/styles/manni.py": 11853576691280294949, - "venv/lib/python3.13/site-packages/numpy/exceptions.py": 10981418339663118022, - "venv/lib/python3.13/site-packages/pandas/core/_numba/executor.py": 2205130934861422769, - "venv/lib/python3.13/site-packages/numpy/random/_examples/numba/extending_distributions.py": 209769687436320665, - "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/api.py": 13134394673408254097, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_common.h": 14732581790650403546, - "venv/lib/python3.13/site-packages/pandas/tests/test_aggregation.py": 16863055892192070549, - "venv/lib/python3.13/site-packages/pydantic_core/__init__.py": 10563134104783445328, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_formats.py": 17821648708413143557, - "venv/lib/python3.13/site-packages/pydantic/_internal/_forward_ref.py": 10623110912945011703, - "frontend/build/_app/immutable/entry/start.BNyxZqQe.js": 14066366168579688400, - "venv/lib/python3.13/site-packages/pandas/tests/io/conftest.py": 5864037534050136837, - "venv/lib/python3.13/site-packages/httpcore/_synchronization.py": 10997080307461682786, - "venv/lib/python3.13/site-packages/pip/_internal/models/index.py": 2839270935469791607, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arraysetops.pyi": 1782641795267171928, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_arithmetics.py": 16527169124402715210, - "venv/lib/python3.13/site-packages/_pytest/_py/path.py": 8464061867075119556, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_missing.py": 7034102519042351965, - "venv/lib/python3.13/site-packages/psycopg2/sql.py": 18041240927130590808, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_docs.py": 17898499890274685198, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_f2cmap.py": 5863341586534531594, - "venv/lib/python3.13/site-packages/referencing/exceptions.py": 2535322334430110414, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/__init__.py": 16123561007855424016, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/events.py": 7576713358952064464, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/query.py": 3867868366067025348, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/reshaping.py": 18085648077811502689, - "venv/lib/python3.13/site-packages/httpcore/_trace.py": 9576253018891841832, - "venv/lib/python3.13/site-packages/websockets/extensions/base.py": 2457233337788783873, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/base.py": 6348888156686452825, - "venv/lib/python3.13/site-packages/passlib/handlers/bcrypt.py": 8125664010268654055, - "venv/lib/python3.13/site-packages/dateutil/easter.py": 14631233890122048084, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py": 7852235015155694076, - "venv/lib/python3.13/site-packages/urllib3/util/ssl_.py": 11720964010284185952, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_two_greenlets.py": 11156275429806391390, - "venv/lib/python3.13/site-packages/PIL/IptcImagePlugin.py": 14329453455296600824, - "frontend/build/_app/immutable/nodes/30.DnYtytFL.js": 2391068517706387105, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/__init__.py": 12849371269359608058, - "backend/src/core/superset_client/_datasets_preview.py": 12644037069207561202, - "venv/lib/python3.13/site-packages/websockets/client.py": 5229500079651465772, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/WHEEL": 8600534672961461758, - "backend/src/api/routes/clean_release.py": 1984604735131504761, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/methods.py": 8059372834301557565, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string_arrow.py": 10008395772220468318, - "venv/lib/python3.13/site-packages/pandas/core/indexes/accessors.py": 14394872772838047912, - "venv/lib/python3.13/site-packages/sqlalchemy/connectors/asyncio.py": 4200928269459447593, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/WHEEL": 5838667082726674838, - "venv/lib/python3.13/site-packages/pygments/lexers/matlab.py": 1880915927722177654, - "backend/alembic/versions/9f8e7d6c5b4a_add_is_multimodal_to_llm_providers.py": 11090205342799426943, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_datetime_index.py": 15448494560143263150, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libgssapi_krb5-497db0c6.so.2.2": 6199424505696679197, - "venv/lib/python3.13/site-packages/itsdangerous/timed.py": 12571102606719555007, - "backend/src/services/__tests__/test_rbac_permission_catalog.py": 5190751380981933250, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/mod.py": 2054876501774773382, - "venv/lib/python3.13/site-packages/pandas/tests/resample/test_base.py": 15292769510056833117, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_dtypes_basic.py": 10917162988625838981, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/linalg.pyi": 269481015135399748, - "venv/lib/python3.13/site-packages/dateutil/parser/_parser.py": 9443336890192151397, - "backend/src/services/maintenance/_dashboard_scanner.py": 1401108008906511280, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_structures.py": 16375837477294135345, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/emath.pyi": 3718540478840842664, - "venv/lib/python3.13/site-packages/numpy/core/umath.py": 4476812261188108155, - "backend/src/api/routes/__tests__/test_clean_release_v2_api.py": 13464989331176891726, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/api.py": 9829629144629841277, - "backend/src/plugins/translate/preview_llm_client.py": 14412557858942627249, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py": 2609365889369107154, - "venv/lib/python3.13/site-packages/pydantic_core/_pydantic_core.pyi": 16799580742094025110, - "venv/lib/python3.13/site-packages/pydantic/_internal/_validators.py": 2939255306814626438, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/hmac.py": 18132740541139891824, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_pandas.py": 10894229569442891394, - "venv/lib/python3.13/site-packages/httpcore/_backends/auto.py": 10488908050307887802, - "venv/lib/python3.13/site-packages/jaraco/context/__init__.py": 10975097417056278427, - "frontend/build/_app/immutable/nodes/23.y3ghKhH-.js": 13434006313990484006, - "venv/lib/python3.13/site-packages/git/objects/tag.py": 7954808535585493300, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ma.py": 15912582628112164509, - "venv/lib/python3.13/site-packages/passlib/context.py": 10362592407593745107, - "venv/lib/python3.13/site-packages/authlib/common/encoding.py": 52296066492753953, - "frontend/build/_app/immutable/chunks/DV17vNYu.js": 5906252992532056558, - "backend/tests/test_security_audit_fixes.py": 10329229098676202553, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_meson.py": 5735043585893007971, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multiprocessing.py": 5522490547285108448, - "backend/tests/test_smoke_plugins.py": 10704454611361370435, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/__version__.py": 14138134075118474134, - "venv/lib/python3.13/site-packages/numpy/lib/_shape_base_impl.py": 16539612003028676816, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/chararray.pyi": 17340224970247832290, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/distributions.h": 17162252287980242413, - "venv/lib/python3.13/site-packages/pandas/tests/util/conftest.py": 11143177766735481660, - "backend/src/api/routes/assistant/_llm_planner.py": 444517242115816139, - "venv/lib/python3.13/site-packages/git/objects/submodule/util.py": 8621897576747443758, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_implementation.py": 12245524932757110911, - "venv/lib/python3.13/site-packages/_pytest/outcomes.py": 12782895027812738142, - "venv/lib/python3.13/site-packages/pygments/lexers/fantom.py": 1986459352773446836, - "venv/lib/python3.13/site-packages/iniconfig/_version.py": 8497474654470220170, - "backend/src/api/routes/dashboards/_helpers.py": 16683849709430404975, - "backend/tests/test_sql_table_extractor.py": 8232282806948246815, - "venv/lib/python3.13/site-packages/websockets/legacy/__init__.py": 12332512329533591682, - "venv/lib/python3.13/site-packages/typing_inspection/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/__init__.py": 793698514004377486, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein.py": 17993169044119596860, - "venv/lib/python3.13/site-packages/pip/_internal/cli/req_command.py": 2887890799766730546, - "venv/lib/python3.13/site-packages/PIL/ImageFont.py": 15621336334706847865, - "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/WHEEL": 5076688779572520166, - "venv/lib/python3.13/site-packages/pandas/core/reshape/merge.py": 300205528811693975, - "venv/lib/python3.13/site-packages/greenlet/TThreadStateDestroy.cpp": 13749797532421836328, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/licenses/LICENSE": 3868190977070717994, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/METADATA": 5045041742469375466, - "venv/lib/python3.13/site-packages/numpy/f2py/setup.cfg": 17974180080760231128, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_intervalindex.py": 5053113227747333759, - "venv/lib/python3.13/site-packages/PIL/_imagingcms.cpython-313-x86_64-linux-gnu.so": 15198265718775753589, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/__init__.py": 6654484356035994666, - "venv/lib/python3.13/site-packages/pydantic/_internal/_serializers.py": 12077180322353709930, - "venv/lib/python3.13/site-packages/PIL/PcdImagePlugin.py": 922809545463280224, - "venv/lib/python3.13/site-packages/pygments/lexers/r.py": 14263133575134645005, - "backend/src/core/cot_logger.py": 12977179701814261121, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_semicolon_split.py": 8153770165829451525, - "backend/src/services/clean_release/repositories/report_repository.py": 17952038790457725175, - "venv/lib/python3.13/site-packages/pydantic/networks.py": 15767095796055034509, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_einsum.py": 17286384318722237180, - "venv/lib/python3.13/site-packages/numpy/typing/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_multiarray.py": 3592197154340095431, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/WHEEL": 7127684561765977531, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_block_docstring.py": 18146459246837890489, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/greenlet/tests/test_generator.py": 14156412320760444199, - "frontend/build/_app/immutable/nodes/10.D79erIQG.js": 35496247013741914, - "backend/src/plugins/translate/orchestrator_planner.py": 1630348739588568408, - "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/apps.py": 4219758952914498116, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_astype.py": 1961831758405941258, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/__init__.py": 4752355175318979033, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/test_indexing.py": 13703573544185051910, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh25211.f": 1486878017876900890, - "venv/lib/python3.13/site-packages/numpy/_core/memmap.pyi": 14124415711399771715, - "venv/lib/python3.13/site-packages/httpx/_models.py": 6516278895118988231, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm32_ios.h": 6751259472945638998, - "venv/lib/python3.13/site-packages/pandas/core/interchange/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_internal/locations/_sysconfig.py": 4773855595767526182, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py": 13763154154862871596, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/oracledb.py": 7158791242292470472, - "backend/src/plugins/translate/plugin.py": 9225230324052126034, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_indexing.py": 546024765756472196, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate.py": 16723865897349422996, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/__init__.py": 96341051676048910, - "venv/lib/python3.13/site-packages/pygments/lexers/jvm.py": 897669925284011089, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/conftest.py": 17514079438846557943, - "venv/lib/python3.13/site-packages/numpy/lib/_nanfunctions_impl.py": 11621577915097515056, - "venv/lib/python3.13/site-packages/numpy/polynomial/__init__.py": 15558318749939680074, - "venv/lib/python3.13/site-packages/httpcore/_utils.py": 3255581092836273826, - "backend/src/api/routes/translate/_job_routes.py": 15469484615259714480, - "backend/src/plugins/translate/__tests__/test_lang_detect.py": 2328877106785068272, - "venv/lib/python3.13/site-packages/cffi/_cffi_errors.h": 1479575326813300292, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/pip/_internal/models/scheme.py": 4101322315594430874, - "venv/lib/python3.13/site-packages/pip/_internal/cli/command_context.py": 9426036980437931533, - "venv/lib/python3.13/site-packages/numpy/ma/extras.py": 7559838309481824664, - "venv/lib/python3.13/site-packages/numpy/_utils/_inspect.py": 7029935879540617057, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/strptime.pyi": 5973671421648618563, - "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/base.py": 15872835330892203433, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_mask.py": 5451866071307236899, - "venv/lib/python3.13/site-packages/pandas/_config/config.py": 1494288055210911451, - "venv/lib/python3.13/site-packages/urllib3/util/retry.py": 17988032431204662756, - "backend/src/plugins/translate/dictionary_validation.py": 16674754716565921261, - "backend/tests/core/test_migration_engine.py": 7419155921858935534, - "venv/lib/python3.13/site-packages/git/cmd.py": 8854786163152637148, - "venv/lib/python3.13/site-packages/numpy/__config__.pyi": 1422114139050700402, - "venv/lib/python3.13/site-packages/passlib/hosts.py": 11171402820797380938, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_pickle.py": 2910383574326146698, - "venv/lib/python3.13/site-packages/pygments/lexers/promql.py": 8929925488296216854, - "venv/lib/python3.13/site-packages/pygments/lexers/oberon.py": 15220143799603451830, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/packaging/_tokenizer.py": 7442392076059866359, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_user_array.py": 8711697474193296376, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/dtypes.pyi": 15114028503984522176, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/providers.py": 7267821734584612032, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_timestamp.py": 10308799534491190078, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/annotation.py": 15855576199737688124, - "venv/lib/python3.13/site-packages/websockets/cli.py": 14049106025886056110, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/RECORD": 6187512110158566509, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/block_docstring/foo.f": 2489756567993745076, - "venv/lib/python3.13/site-packages/numpy/_core/_dtype_ctypes.pyi": 14543653817631274394, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/concat.py": 14737724508458849795, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_replace.py": 8784361132920473760, - "frontend/src/lib/api/translate/runs.js": 1220731879179347641, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_join.py": 11910166566689889389, - "venv/lib/python3.13/site-packages/httpx/_urls.py": 4219389176352582046, - "venv/lib/python3.13/site-packages/gitdb/typ.py": 16374739906244805047, - "venv/lib/python3.13/site-packages/fastapi/openapi/constants.py": 1111838716953068285, - "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/exceptions.py": 11303331612406662162, - "venv/lib/python3.13/site-packages/pandas/core/internals/concat.py": 12151675567885981464, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/starlette/templating.py": 9242638124487797988, - "backend/src/plugins/translate/_llm_call.py": 13441764941895838344, - "venv/lib/python3.13/site-packages/passlib/tests/test_apache.py": 12515001998770565375, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_size.py": 8527839563560550806, - "backend/alembic/versions/b1c2d3e4f5a6_add_source_hash_to_translation_records.py": 4775534557742900399, - "venv/lib/python3.13/site-packages/typing_inspection/typing_objects.pyi": 18193727720492050602, - "venv/lib/python3.13/site-packages/jaraco/functools/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/writers.pyi": 10494773026133244183, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_cli.py": 3173259257428855556, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/style.py": 15214295655795348821, - "venv/lib/python3.13/site-packages/pydantic/root_model.py": 20625057828723317, - "venv/lib/python3.13/site-packages/numpy/_array_api_info.py": 9709101823494959741, - "venv/lib/python3.13/site-packages/pandas/core/strings/accessor.py": 14021462534679430426, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_period.py": 15671388508498441412, - "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion": 2607512361823362698, - "venv/lib/python3.13/site-packages/numpy/lib/_format_impl.pyi": 15745512451486888537, - "venv/lib/python3.13/site-packages/git/refs/tag.py": 9979537867501757110, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_function.py": 14142346897145169685, - "frontend/src/lib/components/dataset-review/ExecutionMappingReview.svelte": 6341989866442424314, - "backend/src/plugins/translate/service_bulk_replace.py": 5355744069308185607, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/literal.py": 5641382379370828704, - "backend/tests/services/clean_release/test_demo_mode_isolation.py": 1970652424726919519, - "venv/lib/python3.13/site-packages/pandas/util/_doctools.py": 3766479022075611396, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libselinux-0922c95c.so.1": 16516617710645376769, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_alter_axes.py": 11338712836362534969, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_infer_datetimelike.py": 17304541521108700317, - "venv/lib/python3.13/site-packages/numpy/_core/_dtype_ctypes.py": 5564496700647900501, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/RECORD": 17985800801793506250, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_real.f90": 9097998998863007705, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/keyring/core.py": 2764269590123131634, - "backend/src/api/routes/__tests__/test_clean_release_legacy_compat.py": 18129267641758340444, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/hooks.py": 8580161128344266243, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_indexing.py": 6539365174681852769, - "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/boxplot.py": 7090586111222952862, - "backend/src/services/clean_release/facade.py": 11231787492455424065, - "venv/lib/python3.13/site-packages/numpy/core/numerictypes.py": 5776941405348611027, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_feather.py": 13613400750755530364, - "venv/lib/python3.13/site-packages/PIL/ImageDraw2.py": 13610162107593278891, - "frontend/src/lib/stores/__tests__/mocks/env_public.js": 2540122820969872185, - "backend/src/services/clean_release/manifest_service.py": 10873340336255220063, - "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/RECORD": 1556051687830913019, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_freq_attr.py": 1720704043778272895, - "venv/lib/python3.13/site-packages/numpy/f2py/cb_rules.py": 11397521081216402594, - "venv/lib/python3.13/site-packages/pygments/filters/__init__.py": 2992007913496948339, - "frontend/src/routes/settings/MigrationMappingsTable.svelte": 4467573699012255407, - "venv/lib/python3.13/site-packages/pandas/_libs/parsers.pyi": 18402185996588014111, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/collections.py": 16114931075157411913, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23879.f90": 13174951794239860144, - "venv/lib/python3.13/site-packages/pygments/lexers/slash.py": 8320676560518108343, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_swaplevel.py": 3584770792383216626, - "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/METADATA": 16498441272591167134, - "venv/lib/python3.13/site-packages/idna-3.11.dist-info/METADATA": 14036738037171597049, - "venv/lib/python3.13/site-packages/numpy/dtypes.py": 14128421398870718692, - "backend/src/api/auth.py": 6636844886257776670, - "venv/lib/python3.13/site-packages/gitdb/db/loose.py": 17467413653016810702, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/timeout.py": 1807228452024740476, - "venv/lib/python3.13/site-packages/pygments/lexers/stata.py": 7249891970174867363, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/__init__.py": 15130871412783076140, - "frontend/src/routes/translate/[id]/+page.svelte": 1911443262444004956, - "frontend/build/_app/immutable/nodes/0.CWnMmjSc.js": 10108377383693638092, - "venv/lib/python3.13/site-packages/authlib/integrations/django_client/integration.py": 13610682193839598457, - "venv/lib/python3.13/site-packages/dateutil/tz/win.py": 8427821225251397364, - "backend/src/core/auth/config.py": 2961507628300548714, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/authorization_server.py": 6858244712625056421, - "venv/lib/python3.13/site-packages/authlib/integrations/base_client/async_app.py": 4329794049222609894, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/__init__.py": 13331622784664204066, - "venv/lib/python3.13/site-packages/pygments/lexers/qlik.py": 3881663935630350152, - "venv/lib/python3.13/site-packages/pygments/lexers/javascript.py": 16869490851285457857, - "frontend/src/components/llm/__tests__/provider_config.integration.test.js": 12605115626277870995, - "backend/src/services/clean_release/enums.py": 7365670144442292671, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/RECORD": 2688648742701423549, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/auto.py": 12818217385551437286, - "venv/lib/python3.13/site-packages/pygments/lexers/pony.py": 2720635393743617141, - "backend/src/api/routes/git/_helpers.py": 3960455954241740267, - "frontend/src/components/git/GitReleasePanel.svelte": 14875953299937841077, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/validation": 13992741783834278677, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/interface.py": 3134071530627935964, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/validator.py": 14200019408839159476, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo.f": 5690596225005490325, - "venv/lib/python3.13/site-packages/pandas/core/tools/datetimes.py": 13313374952742129866, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/METADATA": 3179724236887811680, - "frontend/src/components/StartupEnvironmentWizard.svelte": 8046284364754906166, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/python.py": 17886036670342116501, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/compat.py": 5871636909854554063, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_non_unique.py": 15286893322149413712, - "venv/lib/python3.13/site-packages/uvicorn/lifespan/off.py": 16254524872582859561, - "venv/lib/python3.13/site-packages/pydantic/_internal/_namespace_utils.py": 5237766366340181382, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_envs.py": 5657151394155576509, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/WHEEL": 6514509858522675228, - "venv/lib/python3.13/site-packages/dateutil/zoneinfo/__init__.py": 10261654903106416888, - "venv/lib/python3.13/site-packages/pygments/plugin.py": 18006138132596504101, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/mongodb.py": 5310116401542377882, - "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/arrays/arrow/__init__.py": 18036348770966744795, - "venv/lib/python3.13/site-packages/click/formatting.py": 6694583529073729642, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_complex.py": 12963449957363121481, - "venv/lib/python3.13/site-packages/packaging/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/jeepney/io/asyncio.py": 13239992245695516007, - "venv/lib/python3.13/site-packages/jsonschema/tests/typing/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cffi/parse.py": 2427019397934437210, - "frontend/build/_app/immutable/nodes/12.DDTJ85nU.js": 2496436780075636781, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/orderinglist.py": 10162099108656794338, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/dotenv/parser.py": 17651523026132242005, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_replace.py": 15992095120302643273, - "venv/lib/python3.13/site-packages/numpy/lib/user_array.py": 14003456655595459585, - "venv/lib/python3.13/site-packages/httpcore/_sync/http_proxy.py": 14037211594707072958, - "venv/lib/python3.13/site-packages/httpcore/__init__.py": 5897259569277532401, - "backend/src/core/superset_client/_base.py": 10958088163566963237, - "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_enc_cryptodome.py": 15753279711312689193, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/hi77.f": 10617763407280454334, - "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/reserved_words.py": 8022121780993497971, - "venv/lib/python3.13/site-packages/pip/_internal/models/search_scope.py": 9282393652860589543, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/METADATA": 14543822270526146783, - "venv/lib/python3.13/site-packages/pygments/lexers/mosel.py": 1877592344012288438, - "frontend/build/_app/immutable/chunks/sEGDVeoa.js": 9540107777971680079, - "backend/src/api/routes/translate/__init__.py": 6357999798616465776, - "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/test_from_records.py": 12217508428903265797, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_packbits.py": 7592956764084658562, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_array.py": 16867692337986161626, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/default_styles.py": 4469204219504675080, - "venv/lib/python3.13/site-packages/PIL/ImagePalette.py": 9227837918026991107, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/ansi.py": 948249091929588017, - "frontend/playwright-report/trace/index.html": 6654608714409350530, - "frontend/postcss.config.js": 5714274776976071678, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_show_versions.py": 10577134135855180356, - "venv/lib/python3.13/site-packages/pydantic/v1/typing.py": 13467331592583800299, - "venv/lib/python3.13/site-packages/PIL/ImagePath.py": 18323293175183057101, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_array_from_pyobj.py": 9596224861290975079, - "venv/lib/python3.13/site-packages/pygments/lexers/compiled.py": 8215290039991205531, - "venv/lib/python3.13/site-packages/pygments/lexers/python.py": 8995519134978505744, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/toml.py": 2225382735669153136, - "venv/lib/python3.13/site-packages/pydantic/color.py": 1007422551673129827, - "venv/lib/python3.13/site-packages/pygments/styles/arduino.py": 4578385147314541233, - "frontend/src/routes/datasets/[id]/+page.svelte": 14911166036063098761, - "venv/lib/python3.13/site-packages/pygments/lexers/chapel.py": 7619603166448145621, - "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/__init__.py": 15130871412783076140, - "frontend/build/_app/immutable/chunks/DDT5MMTm.js": 14618179099689778175, - "venv/lib/python3.13/site-packages/pandas/io/formats/csvs.py": 17223598248259691292, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_ufunclike.py": 13752381070039804384, - "venv/lib/python3.13/site-packages/numpy/char/__init__.py": 4428218097234308768, - "venv/lib/python3.13/site-packages/numpy/ctypeslib/_ctypeslib.py": 12636954896699095212, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_period.py": 7727606662611927293, - "venv/lib/python3.13/site-packages/git/refs/__init__.py": 16246686106073400519, - "venv/lib/python3.13/site-packages/pygments/lexers/ml.py": 7510453371068494792, - "frontend/build/_app/immutable/chunks/2dOUpm6k.js": 11811637653151731489, - "venv/lib/python3.13/site-packages/numpy/matlib.pyi": 8017902013455539981, - "venv/lib/python3.13/site-packages/anyio/_core/_tasks.py": 14104828341875599130, - "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/__init__.py": 4390908730288159455, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/pg8000.py": 6580512354643849828, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_add_prefix_suffix.py": 4815518357936092237, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/period.pyi": 13110894861187422750, - "frontend/src/lib/components/dataset-review/__tests__/us2_semantic_workspace.ux.test.js": 3550956860258259058, - "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/METADATA": 8128818962678047497, - "venv/lib/python3.13/site-packages/fastapi/responses.py": 6092572095549573593, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_nanfunctions.py": 2356468092336024365, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarmath.py": 9762951701352556447, - "venv/lib/python3.13/site-packages/pandas/core/api.py": 3390809109543982410, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/METADATA": 3474626408138844944, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/WHEEL": 16784970174376303810, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/scoping.py": 18223258186431020473, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/response.py": 353446217435156470, - "venv/lib/python3.13/site-packages/numpy/linalg/_umath_linalg.cpython-313-x86_64-linux-gnu.so": 17652852308919396403, - "venv/lib/python3.13/site-packages/numpy/doc/ufuncs.py": 11706048944901534664, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_direct.py": 12680113511641199070, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_numba.py": 203614377324678234, - "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/__init__.py": 4870269250323682576, - "venv/lib/python3.13/site-packages/git/util.py": 7424113599506269603, - "venv/lib/python3.13/site-packages/urllib3/contrib/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_str_accessor.py": 4066094997616994612, - "venv/lib/python3.13/site-packages/pygments/lexers/maple.py": 7402467573829618534, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_arrow_interface.py": 9757086292358759236, - "venv/lib/python3.13/site-packages/pandas/core/indexers/objects.py": 409599993084996593, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_getitem.py": 11882213323878588707, - "venv/lib/python3.13/site-packages/ecdsa/ecdh.py": 12596317261561755793, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/palette.py": 17383863392192572184, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix.pyi": 2700568594438441246, - "venv/lib/python3.13/site-packages/anyio/_core/_streams.py": 6436461519284884601, - "venv/lib/python3.13/site-packages/pygments/lexers/agile.py": 5686162551416231457, - "venv/lib/python3.13/site-packages/packaging/tags.py": 1999137344425005827, - "frontend/src/lib/components/health/ScheduleAtAGlance.svelte": 3094566922259479417, - "venv/lib/python3.13/site-packages/attr/exceptions.pyi": 12323493441583681402, - "venv/lib/python3.13/site-packages/pip/_internal/utils/compatibility_tags.py": 15862649917149158291, - "venv/lib/python3.13/site-packages/_pytest/_argcomplete.py": 3586514420674089892, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__ufunc_api.h": 4516275133897904047, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/RECORD": 16558021503346615951, - "venv/lib/python3.13/site-packages/dateutil/parser/__init__.py": 11377431154251655738, - "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/multiarray.pyi": 17232959648651278910, - "venv/lib/python3.13/site-packages/pygments/formatters/img.py": 18230180171537565208, - "venv/lib/python3.13/site-packages/pygments/style.py": 17393199235575070210, - "frontend/src/components/git/GitInitPanel.svelte": 3002620133377315800, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_insert.py": 17383986803728810587, - "venv/lib/python3.13/site-packages/dotenv/ipython.py": 15904966766060247908, - "venv/lib/python3.13/site-packages/numpy/polynomial/polyutils.py": 12355826783958402233, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/missing.py": 14589973874359353799, - "backend/src/core/task_manager/cleanup.py": 8316318318890394605, - "backend/src/api/routes/__tests__/test_reports_detail_api.py": 7284151749869192310, - "venv/lib/python3.13/site-packages/sqlalchemy/__init__.py": 9751988289698484530, - "venv/lib/python3.13/site-packages/httpcore/_sync/__init__.py": 7676937747094511752, - "backend/src/services/clean_release/__tests__/test_manifest_builder.py": 9320699981861675127, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_py.py": 6428078990080243608, - "venv/lib/python3.13/site-packages/numpy/f2py/__main__.py": 12567751646090102167, - "frontend/src/lib/components/dataset-review/__tests__/source_intake_panel.ux.test.js": 13445861056598482363, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_factorize.py": 861897342553280506, - "venv/lib/python3.13/site-packages/httpcore/_async/interfaces.py": 18250473733460571816, - "backend/src/plugins/translate/__tests__/test_text_cleaner.py": 8349602354072854086, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_is_monotonic.py": 4626065848596214108, - "venv/lib/python3.13/site-packages/click/shell_completion.py": 5858110451169927373, - "backend/src/api/routes/settings.py": 15653340367960122341, - "venv/lib/python3.13/site-packages/pip/_internal/network/auth.py": 6159841209618753296, - "backend/src/plugins/translate/__tests__/test_clickhouse_insert_integration.py": 2367759303622417201, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/parameters.py": 12219404446503940066, - "venv/lib/python3.13/site-packages/numpy/matrixlib/defmatrix.py": 4940170059946018356, - "venv/lib/python3.13/site-packages/pygments/formatters/__init__.py": 8009871891954370829, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE": 14230156892574098522, - "venv/lib/python3.13/site-packages/keyring/util/platform_.py": 16978095707950463638, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/base.py": 13454394827268856575, - "venv/lib/python3.13/site-packages/pandas/tests/config/test_config.py": 4630144191929135452, - "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/ext.py": 15699809032725838985, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_jsonschema_test_suite.py": 12733761462141495972, - "venv/lib/python3.13/site-packages/pydantic_settings/exceptions.py": 18300876747412267999, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_api.py": 16743710460729009914, - "venv/lib/python3.13/site-packages/numpy/core/einsumfunc.py": 3484247123731380377, - "venv/lib/python3.13/site-packages/charset_normalizer/api.py": 9172704759115759638, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh25337/data.f90": 13833561828029901615, - "venv/lib/python3.13/site-packages/yaml/tokens.py": 2279161238859232338, - "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/__init__.py": 15130871412783076140, - "backend/src/services/git/_gitea.py": 12631200182530815617, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_dict_of_blocks.py": 11646835537993064324, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/test_na_scalar.py": 13950899907067372014, - "backend/src/api/routes/dashboards/_detail_routes.py": 12522696473630508473, - "venv/lib/python3.13/site-packages/greenlet/greenlet_exceptions.hpp": 8819301638282185623, - "venv/lib/python3.13/site-packages/pip/_internal/utils/virtualenv.py": 14416705841810221305, - "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/licenses/LICENSE": 12688029424398428498, - "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/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation": 4826455560768665215, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py": 2516476609539242190, - "venv/lib/python3.13/site-packages/pydantic/experimental/pipeline.py": 9493054841465227788, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_compression.py": 3167245427092658522, - "venv/lib/python3.13/site-packages/starlette/middleware/sessions.py": 11719848399661632707, - "venv/lib/python3.13/site-packages/pandas/tests/config/test_localization.py": 9524481848419616725, - "venv/lib/python3.13/site-packages/pygments/lexers/go.py": 11118104397271513417, - "backend/src/services/clean_release/source_isolation.py": 18208654007489616188, - "backend/git_repos/remote/test-repo.git/hooks/pre-push.sample": 8029776382195911768, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/kind/foo.f90": 1367964042730902899, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_coercion.py": 3551994404797560483, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_concat.py": 16549010224568175202, - "frontend/src/lib/components/reports/__tests__/report_card.ux.test.js": 14899927226278257748, - "venv/lib/python3.13/site-packages/numpy/_core/records.py": 11414828908088050950, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_deprecations.py": 16367195310156359251, - "venv/lib/python3.13/site-packages/certifi/__main__.py": 13417658012431779061, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/typst.tpl": 5055419073126793137, - "venv/lib/python3.13/site-packages/pandas/core/groupby/numba_.py": 15997665748332235683, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_quoting.py": 1147992698412929658, - "venv/lib/python3.13/site-packages/pygments/lexers/macaulay2.py": 8022891778577314212, - "venv/lib/python3.13/site-packages/cryptography/hazmat/_oid.py": 755042927629281577, - "frontend/build/_app/immutable/chunks/CjoRN64c.js": 16472953773693067178, - "venv/lib/python3.13/site-packages/pandas/tests/generic/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py": 2375452080667815941, - "venv/lib/python3.13/site-packages/pygments/lexers/markup.py": 10311057264960923433, - "venv/lib/python3.13/site-packages/pygments/lexers/diff.py": 5930189593946259160, - "venv/lib/python3.13/site-packages/pandas/_testing/compat.py": 10172779814048259850, - "venv/lib/python3.13/site-packages/keyring/testing/util.py": 11195868112805409554, - "venv/lib/python3.13/site-packages/pydantic/errors.py": 3506829204186508192, - "build.sh": 7054451887134163485, - "venv/lib/python3.13/site-packages/numpy/lib/_type_check_impl.pyi": 2667658052734929089, - "venv/lib/python3.13/site-packages/pygments/lexers/dalvik.py": 5549983892200382076, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/request.py": 10492090878715126550, - "venv/lib/python3.13/site-packages/keyring/testing/backend.py": 14295829193445781542, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/loading.py": 3460142472461437916, - "frontend/src/lib/components/assistant/AssistantClarificationCard.svelte": 6722890639215637790, - "venv/lib/python3.13/site-packages/numpy/_core/strings.py": 3623885046208831106, - "venv/lib/python3.13/site-packages/packaging/licenses/_spdx.py": 16440031845441362300, - "backend/src/api/routes/__tests__/test_reports_api.py": 8830242634438523357, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/module_data_docstring.f90": 18245403117623015312, - "venv/lib/python3.13/site-packages/numpy/lib/_user_array_impl.pyi": 7171810177801103765, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_setops.py": 5208912445718807372, - "venv/lib/python3.13/site-packages/rpds/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/_pytest/setupplan.py": 7496801885995567141, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/licenses/_spdx.py": 17182188548503720124, - "venv/lib/python3.13/site-packages/pandas/compat/numpy/function.py": 18405870240333383757, - "venv/lib/python3.13/site-packages/pandas/io/excel/__init__.py": 6662687963241471393, - "venv/lib/python3.13/site-packages/_pytest/python_api.py": 12953851690889336092, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/groupby.py": 12749730954888633240, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/token.py": 6987328478153445584, - "venv/lib/python3.13/site-packages/pygments/styles/zenburn.py": 1031869867933871309, - "venv/lib/python3.13/site-packages/ecdsa/_rwlock.py": 7971972922423146201, - "frontend/src/lib/components/translate/TranslationRunResult.svelte": 3992997916593732645, - "venv/lib/python3.13/site-packages/pandas/core/methods/selectn.py": 13552176539021625776, - "venv/lib/python3.13/site-packages/numpy/f2py/common_rules.pyi": 2104100025130695295, - "backend/src/models/dashboard.py": 8479838979214366697, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libcom_err-2abe824b.so.2.1": 12870528025628871295, - "venv/lib/python3.13/site-packages/pip/_internal/utils/datetime.py": 6816292030061301011, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_array.py": 12514884344165043136, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_reshape.py": 5572426834735088916, - "backend/src/core/__tests__/test_throttled_scheduler.py": 10949494963069000037, - "venv/lib/python3.13/site-packages/pip/_internal/utils/direct_url_helpers.py": 6075890513530296650, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_shift.py": 14681514853406253657, - "backend/src/scripts/__init__.py": 5400372851656282343, - "venv/lib/python3.13/site-packages/numpy/linalg/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_dtypes.py": 2313400030798822026, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/base.py": 14908084548919567658, - "venv/lib/python3.13/site-packages/httpcore/_async/__init__.py": 491192949420297153, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/foo.f": 6349567809926050379, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_format.py": 9331389900588353667, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/sync.py": 6189260178302531376, - "venv/lib/python3.13/site-packages/jsonschema/tests/_suite.py": 6307666366417438489, - "venv/lib/python3.13/site-packages/pandas/core/indexes/timedeltas.py": 13653393430363556843, - "venv/lib/python3.13/site-packages/charset_normalizer/legacy.py": 1706599349563920562, - "backend/src/schemas/profile.py": 7950698901810733002, - "venv/lib/python3.13/site-packages/pandas/io/formats/css.py": 11288129826285529457, - "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/RECORD": 14375680579341422646, - "backend/tests/test_dashboards_api.py": 2278794209397518464, - "venv/lib/python3.13/site-packages/pandas/tests/apply/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/RECORD": 11904769847385571600, - "venv/lib/python3.13/site-packages/websockets/asyncio/async_timeout.py": 7267209982032642028, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_alpha_unix.h": 2759424570606117942, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/events.py": 10224214051422678828, - "venv/lib/python3.13/site-packages/pydantic/v1/dataclasses.py": 7833468513057242440, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_reductions.py": 3575617237516305456, - "venv/lib/python3.13/site-packages/pygments/regexopt.py": 16073437303824961930, - "venv/lib/python3.13/site-packages/jeepney/io/tests/test_threading.py": 6656552495241857519, - "venv/lib/python3.13/site-packages/pandas/core/computation/common.py": 5369352684655954608, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_offsets.py": 4499538899492148499, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_logical.py": 6818185860296232476, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/provision.py": 13156893203444936309, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/ranges.py": 14549386056660231279, - "venv/lib/python3.13/site-packages/pygments/lexers/rust.py": 8605690716125176329, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/dtype.py": 9342837412280377086, - "venv/lib/python3.13/site-packages/pip/_internal/models/link.py": 7172346414535657925, - "venv/lib/python3.13/site-packages/numpy/f2py/diagnose.py": 503331864022631297, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/jose/backends/base.py": 12795468809472351388, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel.py": 7728646523045538484, - "venv/lib/python3.13/site-packages/apscheduler/executors/base.py": 1980520974511822101, - "venv/lib/python3.13/site-packages/itsdangerous/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/construction.py": 10646956189518908985, - "venv/lib/python3.13/site-packages/pip/_internal/utils/_log.py": 13011536737418204268, - "venv/lib/python3.13/site-packages/pandas/core/computation/scope.py": 16859504937881548797, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_iat.py": 3570464615146398178, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_unicode_ddl.py": 2569618488804767890, - "venv/lib/python3.13/site-packages/pygments/lexers/d.py": 18120801227801223376, - "backend/git_repos/remote/test-repo.git/refs/heads/dev": 8596267258668462395, - "venv/lib/python3.13/site-packages/PIL/ImageQt.py": 6607270889359138659, - "frontend/build/_app/immutable/chunks/gRGygy_f.js": 17282722948808474320, - "venv/lib/python3.13/site-packages/pygments/styles/nord.py": 8469538903422182155, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_nlargest_nsmallest.py": 11049656379959696695, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/RECORD": 12575893084587070195, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_reduction.py": 1049551473665255648, - "venv/lib/python3.13/site-packages/jsonschema/_utils.py": 14237077105384631097, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_kind.py": 18178830861475480607, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/manifest.py": 16998683210177680416, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/schema.py": 5391655516870611151, - "venv/lib/python3.13/site-packages/click/_termui_impl.py": 3296085065310341855, - "venv/lib/python3.13/site-packages/pip/_internal/index/collector.py": 7454652626329467900, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_scrypt.py": 8106466515670064013, - "venv/lib/python3.13/site-packages/pygments/lexers/_googlesql_builtins.py": 12251289884604745945, - "backend/src/api/routes/llm.py": 7404985960617844546, - "backend/src/models/git.py": 9387561498910534118, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/bootstrap.py": 3865947239497500815, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/connection.py": 15405047955974108860, - "venv/lib/python3.13/site-packages/attrs/__init__.py": 9502968706258875910, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_read.py": 8825002468745406134, - "backend/src/services/clean_release/dto.py": 11031410734734770552, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_groupby.py": 15721254196883995634, - "venv/lib/python3.13/site-packages/numpy/_utils/__init__.pyi": 13530522898409268883, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/WHEEL": 9788895026336324100, - "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/cmdline.py": 15628499088643246809, - "venv/lib/python3.13/site-packages/packaging/licenses/__init__.py": 15879493360260891293, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_setops.py": 16240008859650640717, - "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_digest.py": 7988469818593853943, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_datetime64.py": 16272266806084058743, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/LICENSE": 16510279186416777136, - "venv/lib/python3.13/site-packages/pandas/core/computation/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_dtype.py": 12210524152630532747, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_defmatrix.py": 2982572083770917411, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/models.py": 3567900447243180991, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/packages.py": 11689856177725665974, - "venv/lib/python3.13/site-packages/numpy/_core/umath.pyi": 11775804030935134661, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mariadb.py": 3109042476851791996, - "venv/lib/python3.13/site-packages/git/refs/remote.py": 4391983355222612205, - "backend/tests/services/clean_release/test_compliance_execution_service.py": 5924200441771414883, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/cache_key.py": 11118819065204404106, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/decl_class.py": 6328411894571735935, - "venv/lib/python3.13/site-packages/pandas/_libs/internals.cpython-313-x86_64-linux-gnu.so": 2008633361686956377, - "venv/lib/python3.13/site-packages/pandas/io/html.py": 2727247063231114153, - "backend/git_repos/remote/test-repo.git/hooks/prepare-commit-msg.sample": 7530253302780245896, - "venv/lib/python3.13/site-packages/pandas/_libs/testing.cpython-313-x86_64-linux-gnu.so": 16758333404587340103, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/azure.py": 13529763490186254462, - "venv/lib/python3.13/site-packages/pandas/tests/io/test_html.py": 12040484325988635032, - "venv/lib/python3.13/site-packages/pydantic/_internal/_schema_gather.py": 3634138701088855517, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/__init__.py": 6532094538918910232, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/mixed/foo_fixed.f90": 8079594129222364031, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/errors.py": 12777931960088171310, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_hist_box_by.py": 16197297231683144299, - "venv/lib/python3.13/site-packages/passlib/handlers/sha1_crypt.py": 5752556581809938954, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_functions.py": 2255133375699086300, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_map.py": 6556132946198785761, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL": 18203500019759199992, - "frontend/src/components/git/DeploymentModal.svelte": 16301125393395343650, - "venv/lib/python3.13/site-packages/starlette/endpoints.py": 3379755567024530053, - "venv/lib/python3.13/site-packages/pandas/_libs/window/__init__.py": 15130871412783076140, - "frontend/src/components/TaskList.svelte": 3024343043730631288, - "frontend/build/_app/immutable/nodes/33.Aj1tQ4W1.js": 1594581007913482648, - "backend/src/plugins/translate/__tests__/test_token_budget.py": 9612693566837223655, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_factorize.py": 5585211699185937865, - "backend/src/api/routes/__tests__/test_assistant_api.py": 4079781811717182404, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalar_ctors.py": 631744056514965940, - "venv/lib/python3.13/site-packages/starlette/config.py": 16509394679506300256, - "venv/lib/python3.13/site-packages/pandas/_libs/properties.pyi": 9268470215750269699, - "venv/lib/python3.13/site-packages/pandas/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_ops.py": 3875181889032080505, - "venv/lib/python3.13/site-packages/pip/_internal/commands/debug.py": 13528633965821062950, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/_typing.py": 10524021526716767489, - "frontend/src/routes/settings/settings-utils.js": 1940619437304867415, - "venv/lib/python3.13/site-packages/rsa/key.py": 4783269051050521475, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/RECORD": 5169907629260560698, - "backend/src/plugins/translate/_utils.py": 10016440264788256359, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_scalar_compat.py": 10534925655070162459, - "venv/lib/python3.13/site-packages/pandas/tests/extension/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/parameters.py": 1647490964392525933, - "venv/lib/python3.13/site-packages/_pytest/doctest.py": 6126919596776592278, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/rsa.py": 5392922995791487437, - "backend/tests/test_translate_scheduler.py": 14274816721941617887, - "venv/lib/python3.13/site-packages/psycopg2/__init__.py": 15798412693009721199, - "venv/lib/python3.13/site-packages/greenlet/slp_platformselect.h": 10428201768098464386, - "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/oauth2_session.py": 7076806577412682835, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/const_vs_enum.py": 12873459583943748931, - "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/__init__.py": 10834852742917144496, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/logging.py": 2426447364230673649, - "venv/lib/python3.13/site-packages/_pytest/monkeypatch.py": 2635774457434545573, - "venv/lib/python3.13/site-packages/pydantic/v1/version.py": 2758971830527526972, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/replace.py": 1708865864686705833, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/METADATA": 10220680536734745103, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_no_deprecated_api.h": 7896028550808252043, - "venv/lib/python3.13/site-packages/ecdsa/keys.py": 10281170640484982154, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_util.py": 16908393806993809474, - "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/tests/io/test_fsspec.py": 6936167344144998172, - "venv/lib/python3.13/site-packages/pyasn1/type/constraint.py": 16776615503418773283, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_function.py": 7048185308307653546, - "venv/lib/python3.13/site-packages/dateutil/relativedelta.py": 5903095963079475484, - "venv/lib/python3.13/site-packages/pip/_internal/resolution/base.py": 10514193453447954780, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_chained_assignment_deprecation.py": 7694137945143129474, - "frontend/src/lib/components/StartMaintenanceForm.svelte": 6639622284028606563, - "frontend/src/lib/api/translate/schedules.js": 8616345664085016472, - "frontend/src/routes/login/+page.svelte": 18430869485200259448, - "frontend/src/components/backups/BackupManager.svelte": 15237659305406789107, - "frontend/build/_app/immutable/nodes/36.B_fEKtct.js": 18068657546781069466, - "frontend/build/_app/immutable/nodes/5.Qu948XkR.js": 7156066372883630056, - "frontend/src/routes/translate/history/+page.svelte": 9504117584329454876, - "backend/src/plugins/llm_analysis/plugin.py": 17113713561460406867, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/assertsql.py": 4633484475514351889, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_utils.pyi": 12312677132342982866, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_pickle.py": 16196792378104396231, - "frontend/src/components/storage/FileUpload.svelte": 14805293086068620697, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_csv.py": 10737444103906389448, - "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/RECORD": 8104089156015954779, - "venv/lib/python3.13/site-packages/PIL/IcoImagePlugin.py": 14483964191652228364, - "venv/lib/python3.13/site-packages/pygments/lexers/cplint.py": 13990118342267278047, - "backend/src/core/utils/async_network.py": 840981454868177222, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/attributes.py": 5068814626384132900, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/ecdsa/test_ecdsa.py": 17595025859105321562, - "venv/lib/python3.13/site-packages/dotenv/main.py": 7408889670575271484, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi": 9835891299056543360, - "venv/lib/python3.13/site-packages/gitdb/util.py": 645937410168583692, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_multiindex.py": 13723677252432338937, - "venv/lib/python3.13/site-packages/pyasn1/type/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/__init__.py": 13584649922093198724, - "venv/lib/python3.13/site-packages/numpy/_core/defchararray.py": 15550230459945996915, - "venv/lib/python3.13/site-packages/pygments/lexers/text.py": 10572727755736597715, - "venv/lib/python3.13/site-packages/pygments/styles/onedark.py": 17580335614588531275, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_halfyear.py": 9376272342364384767, - "frontend/src/lib/stores/taskDrawer.js": 6659505033581293370, - "backend/src/core/utils/superset_context_extractor/_pii.py": 16897386128094460655, - "venv/lib/python3.13/site-packages/jsonschema/tests/typing/test_all_concrete_validators_match_protocol.py": 14824388798676578409, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/einsumfunc.pyi": 8902765738896588686, - "venv/lib/python3.13/site-packages/numpy/polynomial/polynomial.py": 7658234162211356265, - "venv/lib/python3.13/site-packages/keyring/compat/py312.py": 17581691618899404491, - "venv/bin/keyring": 1488968652276547659, - "frontend/playwright-report/data/ac7f153484f7d6b15b773641e328a5ad9204f736.webm": 17964728097298408466, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_2_complexcompat.h": 5001035774408914877, - "backend/src/core/utils/superset_context_extractor/__init__.py": 1074191108198498747, - "backend/src/services/clean_release/repositories/policy_repository.py": 10990781278715170404, - "frontend/build/_app/immutable/chunks/DNOraAy0.js": 868732761380476466, - "venv/lib/python3.13/site-packages/greenlet/tests/test_cpp.py": 10982107081267457286, - "venv/lib/python3.13/site-packages/greenlet/TMainGreenlet.cpp": 9489520001674089404, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_isin.py": 11330491145602008796, - "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/gitdb/test/__init__.py": 18393574323937353933, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/style.py": 10665998898253460114, - "venv/lib/python3.13/site-packages/pydantic/_internal/_import_utils.py": 4029157986210295967, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py": 8539232219382152238, - "venv/lib/python3.13/site-packages/numpy/_utils/_pep440.pyi": 6796322258258182775, - "venv/lib/python3.13/site-packages/pandas/util/_print_versions.py": 15326663505771588740, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_equals.py": 11041884432990762650, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_npfuncs.py": 8238385897366878558, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_constructors.py": 9478848417896027917, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arraypad.py": 4907193085512342162, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_results.py": 18145930285449734975, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi": 7385072545198817771, - "venv/lib/python3.13/site-packages/pygments/formatters/svg.py": 11686316844190214147, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_py.py": 13809503317864539103, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/METADATA": 9586902338916246692, - "venv/lib/python3.13/site-packages/numpy/random/_examples/cffi/extending.py": 9859383893070793914, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/__init__.py": 11157967642611612522, - "venv/lib/python3.13/site-packages/pygments/lexers/erlang.py": 11757064262773184741, - "backend/src/services/dataset_review/orchestrator_pkg/_helpers.py": 3718757635506173013, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/__init__.py": 15130871412783076140, - "frontend/src/components/TaskRunner.svelte": 18014857434320509117, - "backend/ss_tools_backend.egg-info/PKG-INFO": 15134841326777953914, - "venv/lib/python3.13/site-packages/passlib/ext/django/__init__.py": 11713862539944289631, - "frontend/src/lib/api/translate/target-schema.js": 10665479411127476571, - "scripts/generate_financial_arrears_data.py": 15989529185799374517, - "venv/lib/python3.13/site-packages/pluggy/__init__.py": 8269188363563356631, - "venv/lib/python3.13/site-packages/authlib/jose/jwk.py": 13560749074922587626, - "venv/lib/python3.13/site-packages/rapidfuzz/fuzz.py": 1094797446508902066, - "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/pyinstaller-smoke.py": 13570990531070630950, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arcsin.csv": 1665171675551692225, - "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/RECORD": 10264342250058307301, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_slice.py": 9936085512921529417, - "venv/lib/python3.13/site-packages/rsa/util.py": 13423880475585138638, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_arithmetic.py": 13320788210970132239, - "venv/lib/python3.13/site-packages/PIL/_tkinter_finder.py": 14045496501810535432, - "venv/lib/python3.13/site-packages/pygments/lexers/spice.py": 1376126320935115350, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_repeat.py": 9155935990114743583, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/json.py": 15085143436056608404, - "frontend/src/app.html": 10207534912546549080, - "backend/src/plugins/translate/__tests__/test_dictionary.py": 4341966549214032934, - "dist/docker/frontend.0.1.1.tar.xz": 14558310887004056908, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_replace.py": 8165088653532047247, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/common.py": 11384497819737275399, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pop.py": 14885271225856187795, - "venv/lib/python3.13/site-packages/pandas/api/__init__.py": 1145864207387918302, - "backend/src/core/config_manager.py": 4939178394157798605, - "venv/lib/python3.13/site-packages/click/globals.py": 18353671282454331523, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_reflection.py": 10520778598547003532, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/style.py": 12654125988995362593, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py": 12264234876933578367, - "venv/lib/python3.13/site-packages/idna-3.11.dist-info/WHEEL": 8600534672961461758, - "venv/lib/python3.13/site-packages/numpy/random/_common.cpython-313-x86_64-linux-gnu.so": 12834724130890991478, - "venv/lib/python3.13/site-packages/passlib/tests/test_apps.py": 10454136535890937237, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_join.py": 1364886077926604427, - "venv/lib/python3.13/site-packages/pycparser/c_ast.py": 5942107079119742, - "frontend/src/lib/components/assistant/__tests__/assistant_clarification.integration.test.js": 12258270009984504212, - "venv/lib/python3.13/site-packages/fastapi/_compat/__init__.py": 12380131786677943349, - "venv/lib/python3.13/site-packages/PIL/Hdf5StubImagePlugin.py": 15654153796225833950, - "frontend/build/_app/immutable/chunks/D0ftnVnT.js": 17464841514774947275, - "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/attr/validators.pyi": 15579625896285277321, - "venv/lib/python3.13/site-packages/pyasn1/error.py": 11036037300994516747, - "venv/lib/python3.13/site-packages/requests/sessions.py": 6936640856092320928, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/claims.py": 14794441479740527265, - "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/WHEEL": 17410883677306885019, - "venv/lib/python3.13/site-packages/websockets/extensions/__init__.py": 13067201313921664210, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/themes.py": 6451091097727599550, - "venv/lib/python3.13/site-packages/attr/_version_info.pyi": 7141309436445210354, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/argon2.py": 15389474901714096890, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/__init__.py": 2345997696115514124, - "backend/src/core/migration_engine.py": 3310429374293524108, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/instrumentation.py": 13198832283145198959, - "backend/src/core/utils/superset_context_extractor/_parsing.py": 17093712504833649098, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayobject.h": 4345432890284821918, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_resolution.py": 9651416588266430520, - "venv/lib/python3.13/site-packages/uvicorn/server.py": 15714008348292243019, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_indexing.py": 6039808271042864401, - "venv/lib/python3.13/site-packages/PIL/_webp.pyi": 18222325750818585549, - "venv/lib/python3.13/site-packages/numpy/lib/_arraysetops_impl.py": 5583478355093966990, - "frontend/src/lib/components/layout/__tests__/test_sidebar.svelte.js": 1424894894434906249, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_classes.py": 1440926036579216168, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/__init__.py": 15130871412783076140, - "frontend/e2e/tests/login.e2e.js": 16303843677272482041, - "venv/lib/python3.13/site-packages/PIL/MpegImagePlugin.py": 7726254767528154514, - "venv/lib/python3.13/site-packages/numpy/lib/_function_base_impl.pyi": 2628035888703031029, - "backend/alembic/script.py.mako": 7041141123739810216, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_filters.py": 17271344092069736999, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/authorization_server.py": 724388765673082720, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_asfreq.py": 2701081989348180239, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_block_internals.py": 17935662848672401507, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/pickleable.py": 7712040860601343075, - "venv/lib/python3.13/site-packages/h11/_writers.py": 8585823094975171480, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh24662.f90": 4241310200087270990, - "venv/lib/python3.13/site-packages/numpy/random/mtrand.pyi": 17144590106028661128, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_index_col.py": 17604191644943383567, - "venv/lib/python3.13/site-packages/pygments/lexers/qvt.py": 1895735583818227972, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_info.py": 10615285239043745712, - "backend/src/api/routes/git/_gitea_routes.py": 14644218433873522624, - "venv/lib/python3.13/site-packages/pip/_internal/operations/check.py": 16650663913976953800, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/constant_time.py": 2499026008403328245, - "venv/lib/python3.13/site-packages/pluggy/_tracing.py": 7276210024011809655, - "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/METADATA": 11439969143853665311, - "venv/lib/python3.13/site-packages/uvicorn/config.py": 17317823506849880916, - "run_clean_tui.sh": 14305120550349644601, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/__init__.py": 3673322722277252961, - "venv/lib/python3.13/site-packages/pandas/core/internals/api.py": 14632030170441237968, - "frontend/src/routes/datasets/review/useReviewSession.js": 2378011913105385059, - "venv/lib/python3.13/site-packages/git/index/base.py": 641556304637379636, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/WHEEL": 16223367184831500348, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/dtype_api.h": 17040779421165903019, - "venv/lib/python3.13/site-packages/pygments/lexers/parasail.py": 7758704230750989282, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/provision.py": 8707620698060818654, - "venv/lib/python3.13/site-packages/pygments/lexers/web.py": 11104721221615804497, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_common.py": 2223069451949206319, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_np_datetime.py": 18363183516409621205, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/errors.py": 12935154705443176852, - "venv/lib/python3.13/site-packages/jose/jwe.py": 3325660353225624025, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_where.py": 16584772339591698754, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_at.py": 1029744344133153888, - "frontend/build/_app/immutable/nodes/28.MJ5rlU4U.js": 14941281040668339074, - "backend/src/schemas/__tests__/test_settings_and_health_schemas.py": 10518526918751273612, - "backend/src/services/clean_release/audit_service.py": 3614108458934359126, - "backend/src/services/llm_prompt_templates.py": 16187535610068299149, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/WHEEL": 18203500019759199992, - "backend/src/plugins/translate/dictionary_crud.py": 17858252266960667195, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/client_auth.py": 3301527187487914220, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/metrics_cpp.cpython-313-x86_64-linux-gnu.so": 10263790384087091349, - "venv/lib/python3.13/site-packages/pydantic/class_validators.py": 4643597082531287188, - "backend/tests/services/clean_release/test_candidate_manifest_services.py": 16861589402854148894, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/privatemod.f90": 8999550841368314739, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_misc.py": 16393451200513733144, - "venv/lib/python3.13/site-packages/more_itertools/more.pyi": 4844596605492825806, - "venv/lib/python3.13/site-packages/numpy/lib/_nanfunctions_impl.pyi": 12566839271245057531, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_index_new.py": 796607958391882182, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_timezones.py": 4771674179164304731, - "venv/lib/python3.13/site-packages/git/objects/fun.py": 15014209679156260865, - "venv/lib/python3.13/site-packages/dateutil/__init__.py": 17666544837260663800, - "venv/lib/python3.13/site-packages/numpy/_core/overrides.pyi": 13121243505132110607, - "venv/lib/python3.13/site-packages/apscheduler/triggers/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_xport.py": 14080914637071212225, - "venv/lib/python3.13/site-packages/fastapi/security/api_key.py": 6965937678104291169, - "venv/lib/python3.13/site-packages/pandas/tests/reductions/__init__.py": 16150188643076000414, - "venv/lib/python3.13/site-packages/PIL/PalmImagePlugin.py": 13008868719182630239, - "venv/lib/python3.13/site-packages/numpy/random/_common.pxd": 3402284125943848851, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_invalid.py": 2762344062554575805, - "venv/lib/python3.13/site-packages/ecdsa/__init__.py": 6237633580090653788, - "venv/lib/python3.13/site-packages/anyio/_backends/_trio.py": 4764555436057754985, - "venv/lib/python3.13/site-packages/PIL/BlpImagePlugin.py": 7209218638257731375, - "backend/git_repos/remote/test-repo.git/refs/heads/master": 12485529318667335076, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_polynomial.pyi": 9134949577567498894, - "venv/lib/python3.13/site-packages/pycparser/c_lexer.py": 10964496587169353564, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_interaction.py": 12216477658994324787, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_isoc.py": 4923640657296076239, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein.pyi": 12925006572914814268, - "venv/lib/python3.13/site-packages/pandas/plotting/__init__.py": 13230487326686617492, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py": 16386268386376675175, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi": 11455144434558323236, - "venv/lib/python3.13/site-packages/numpy/_core/_methods.pyi": 9155045948490225716, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling.py": 18221459425751198218, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_split_partition.py": 2715491071550545667, - "venv/lib/python3.13/site-packages/pytest_asyncio/py.typed": 15130871412783076140, - "backend/src/scripts/init_auth_db.py": 1846761799125222512, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_numeric.py": 17391095502314929042, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_concat.py": 4472503149811617440, - "venv/lib/python3.13/site-packages/pygments/lexers/graphics.py": 13783143864729682444, - "backend/src/api/routes/translate/_router.py": 4164547666727936398, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS": 17022185907188244883, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_round_trip.py": 14684057343786032776, - "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex.tpl": 8820045022551446255, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_offsets_properties.py": 2340780879864207500, - "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/response.py": 9594165377270752433, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/shape.pyi": 2188930129299348535, - "venv/lib/python3.13/site-packages/pygments/lexers/devicetree.py": 9820277168995231927, - "backend/src/api/__init__.py": 5287505122015708040, - "venv/lib/python3.13/site-packages/PIL/_imagingtk.pyi": 18222325750818585549, - "backend/src/services/clean_release/stages/no_external_endpoints.py": 11899278509901673808, - "backend/src/services/clean_release/repositories/audit_repository.py": 9617813121624417458, - "venv/lib/python3.13/site-packages/greenlet/greenlet_allocator.hpp": 11041111583319491309, - "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/RECORD": 3617343778671172258, - "venv/lib/python3.13/site-packages/numpy/lib/_function_base_impl.py": 14034239842770171660, - "venv/lib/python3.13/site-packages/pydantic/experimental/__init__.py": 492399139963056461, - "venv/lib/python3.13/site-packages/attr/converters.pyi": 17675091788614033166, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_constructors.py": 9815164146739254076, - "venv/lib/python3.13/site-packages/idna/__init__.py": 6489437464172324468, - "venv/lib/python3.13/site-packages/ecdsa/ellipticcurve.py": 15624510849346629163, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi": 3254633032236269842, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_records.py": 6252761812228230408, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_logical_ops.py": 16166386974005224415, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/strings/__init__.py": 5060190599837877599, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_mangle_dupes.py": 15613858733226279352, - "venv/lib/python3.13/site-packages/pandas/io/formats/style.py": 13235403689320479165, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/interfaces.py": 5371646629319169153, - "venv/lib/python3.13/site-packages/multipart/decoders.py": 11346752866822986212, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval.py": 1228451182688768814, - "frontend/src/routes/+error.svelte": 9437886843842311915, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/plugin.py": 16042078006552521613, - "backend/src/api/routes/admin_api_keys.py": 11414236449923083206, - "backend/src/api/routes/reports.py": 5647380957044157360, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7521/__init__.py": 635200170992032966, - "frontend/src/lib/components/dataset-review/__tests__/us3_execution_batch.ux.test.js": 13416996904332574966, - "venv/lib/python3.13/site-packages/pluggy/_result.py": 16790448391766505769, - "venv/lib/python3.13/site-packages/pandas/core/arraylike.py": 11439602957100017713, - "venv/lib/python3.13/site-packages/pygments/lexers/_sql_builtins.py": 5906655440517434734, - "backend/src/models/dataset_review_pkg/_enums.py": 2243691494729792539, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein_py.py": 1933257612725836484, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_series.py": 17126297747681689408, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_types.py": 4083297168618981717, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_upcast.py": 6496794053681247105, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/scope.py": 4096190764836489091, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/ext.py": 8361831054662096695, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/strategies.py": 14007486769065345085, - "backend/tests/core/test_mapping_service.py": 6888870177029085220, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/licenses/COPYING": 15270149301471737292, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/supercollider.py": 15306357945850389082, - "venv/lib/python3.13/site-packages/pip/_vendor/typing_extensions.py": 10158933506062403688, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/six.py": 1161259802604920635, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/asyncio.py": 11442130378027628520, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/shape.pyi": 17197248408326188931, - "venv/lib/python3.13/site-packages/pandas/_libs/sparse.pyi": 12526865400413362140, - "venv/lib/python3.13/site-packages/pandas/core/indexes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/formatters/_mapping.py": 13335227913146542481, - "venv/lib/python3.13/site-packages/pandas/core/array_algos/datetimelike_accumulations.py": 14719894187829729175, - "venv/lib/python3.13/site-packages/numpy/matlib.py": 112839038090033740, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_ufunc.py": 669019702416198889, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_hist_method.py": 2109257663592928, - "venv/lib/python3.13/site-packages/pygments/lexers/roboconf.py": 1335271183806115470, - "venv/lib/python3.13/site-packages/pygments/lexers/ezhil.py": 10294520768762308887, - "venv/lib/python3.13/site-packages/passlib/handlers/scrypt.py": 10089372287597257402, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_custom_dtypes.py": 12322100282959605055, - "venv/lib/python3.13/site-packages/jose/jwk.py": 2781217726458801910, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers.py": 4940305787631493030, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/getitem.py": 556339939822508169, - "backend/src/services/reports/normalizer.py": 11408466232944555336, - "backend/src/plugins/translate/dictionary_import_export.py": 12639118203353044308, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_period.py": 6047041810867211174, - "backend/src/services/maintenance/_banner_renderer.py": 17250656767428031478, - "backend/src/core/superset_client/_dashboards_crud.py": 8511586546743986158, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_formats.py": 13752366280743004410, - "venv/lib/python3.13/site-packages/pygments/lexers/_asy_builtins.py": 1665617945818958781, - "venv/lib/python3.13/site-packages/_pytest/pathlib.py": 9719734558816066453, - "venv/lib/python3.13/site-packages/gitdb/test/test_example.py": 3039934065817753241, - "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/licenses/LICENSE": 4123064337800029995, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/char.pyi": 1639810799219814643, - "venv/lib/python3.13/site-packages/numpy/f2py/_backends/__init__.py": 4265012785873472600, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arithmetic.py": 3209727509456212551, - "frontend/src/lib/components/assistant/__tests__/assistant_first_message.integration.test.js": 16494645867501045726, - "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE.APACHE": 11041304845352917971, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_strings.py": 7168544888340296373, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/WHEEL": 5160964596297665692, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/controller.py": 5450931608244830335, - "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/WHEEL": 9100692507274722091, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/index.py": 15694995431926521471, - "venv/lib/python3.13/site-packages/greenlet/tests/fail_initialstub_already_started.py": 5562030563802006923, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/ecdsa/util.py": 10543788809724099209, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_dict_compat.py": 18196543090455290455, - "venv/lib/python3.13/site-packages/pandas/_testing/contexts.py": 11714205921752896137, - "venv/lib/python3.13/site-packages/PIL/_imagingmorph.pyi": 18222325750818585549, - "venv/lib/python3.13/site-packages/greenlet/tests/test_generator_nested.py": 12822240347707346718, - "venv/lib/python3.13/site-packages/numpy/_core/numerictypes.pyi": 12144531601504755948, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/_writer.py": 15053365792216907149, - "venv/lib/python3.13/site-packages/pygments/lexers/gleam.py": 5161116162065925222, - "frontend/src/lib/ui/HelpTooltip.svelte": 15082693035830243831, - "venv/lib/python3.13/site-packages/pygments/lexers/tnt.py": 4657130609241407766, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/test_interval_new.py": 3893421355544517336, - "frontend/src/lib/api/reports.js": 2328857814720054000, - "venv/lib/python3.13/site-packages/pydantic/v1/parse.py": 5875950480538559709, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_indexerrors.py": 4434868847540549873, - "backend/src/api/routes/translate/_correction_routes.py": 12437040676784563126, - "venv/lib/python3.13/site-packages/click/testing.py": 15973659312284678327, - "backend/alembic/versions/543d43d752b8_migrate_old_dictionary_entries_and_.py": 10988663686444687907, - "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_xlrd.py": 9982457234958102003, - "venv/lib/python3.13/site-packages/numpy/random/tests/test_randomstate.py": 11205714006000849926, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py": 14946223589457772924, - "venv/lib/python3.13/site-packages/certifi/cacert.pem": 14727832973577663826, - "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/testing/tests/test_utils.py": 5291132432383518704, - "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/METADATA": 5628172948035858892, - "frontend/build/_app/immutable/chunks/C2DipQLT.js": 333538434576244034, - "venv/lib/python3.13/site-packages/pandas/tests/api/test_types.py": 8889829773923216769, - "backend/src/plugins/translate/prompt_builder.py": 9619706108488955349, - "backend/src/services/clean_release/stages/__init__.py": 11595548160903612178, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/blocking.py": 3483388533957772681, - "venv/lib/python3.13/site-packages/pydantic/main.py": 14086938579850319884, - "venv/lib/python3.13/site-packages/numpy/lib/_datasource.py": 18136853038949826147, - "venv/lib/python3.13/site-packages/pydantic/v1/decorator.py": 6124748023704700724, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_type_check.py": 3935091606923106753, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic/type_adapter.py": 10162988530225478692, - "models": 14346352665111990852, - "frontend/e2e/fixtures/auth.fixture.js": 13628564118439575126, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/__init__.py": 15130871412783076140, - "frontend/build/_app/immutable/nodes/39.x6Tr2rq6.js": 8373901766277015937, - "venv/lib/python3.13/site-packages/pandas/io/xml.py": 326466573926392764, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reindex_like.py": 1407890639206728014, - "venv/lib/python3.13/site-packages/rsa/randnum.py": 13958355153634534526, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_categorical.py": 18254320571347851153, - "venv/lib/python3.13/site-packages/pip/_internal/models/wheel.py": 10473287225032326206, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_validate.py": 12789481642730855139, - "venv/lib/python3.13/site-packages/yaml/reader.py": 9873075843010693205, - "venv/lib/python3.13/site-packages/attr/_make.py": 2348458829123990579, - "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/var_.py": 12699521091170347311, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_api.py": 14120915875574640262, - "venv/lib/python3.13/site-packages/pygments/lexers/fortran.py": 6859638690245583968, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9207/__init__.py": 8434616194114282088, - "venv/lib/python3.13/site-packages/sqlalchemy/util/deprecations.py": 7020540470348910770, - "venv/lib/python3.13/site-packages/tzlocal/utils.py": 7893867974548929154, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_subclass.py": 16342917051908786497, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/window/numba_.py": 1444123360986509769, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/scalar_string.f90": 15018631706178918578, - "venv/lib/python3.13/site-packages/numpy/fft/_helper.pyi": 9546918341939102632, - "venv/lib/python3.13/site-packages/pygments/lexers/inferno.py": 9056274496469409594, - "frontend/src/routes/dashboards/+page.svelte": 5715934441651304054, - "venv/lib/python3.13/site-packages/numpy/_core/_type_aliases.py": 1644743742545329282, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_indexing.py": 1926721846569184112, - "venv/lib/python3.13/site-packages/numpy/matrixlib/__init__.py": 18402126171936308228, - "venv/lib/python3.13/site-packages/pydantic_settings/sources/utils.py": 8633356372647820801, - "backend/src/api/routes/translate/_run_routes.py": 6617818713940695689, - "backend/git_repos/remote/test-repo.git/hooks/push-to-checkout.sample": 4825338927654285910, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_coercion.py": 3339075591248270762, - "frontend/src/routes/storage/+page.svelte": 5003283673039328108, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_grouping.py": 5994909693214299971, - "backend/src/models/llm.py": 9128215579699548047, - "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/backend.py": 9072112660082423691, - "venv/lib/python3.13/site-packages/fastapi/security/open_id_connect_url.py": 3502444317759870079, - "venv/lib/python3.13/site-packages/rapidfuzz/_feature_detector.py": 15458248567257759500, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_internals.py": 10472508540875131797, - "venv/lib/python3.13/site-packages/pandas/core/reshape/tile.py": 17137524194129840833, - "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_timedeltaindex.py": 2359681317403710563, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/misc/extended_precision.pyi": 6541258584648209609, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufunclike.pyi": 14623308681600207918, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_formats.py": 1265319125235346745, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_reductions.py": 2816859231048302619, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_categorical.py": 9615571808720893016, - "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/WHEEL": 16097436423493754389, - "frontend/src/lib/components/dataset-review/CompiledSQLPreview.svelte": 4866254539173481462, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/filter.py": 16846063190466267618, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_function.py": 13492077564015386528, - "frontend/src/components/RepositoryDashboardGrid.svelte": 14921738329941705036, - "venv/lib/python3.13/site-packages/_pytest/warning_types.py": 10695097290648045427, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_overlaps.py": 8287716909793575347, - "backend/src/core/superset_client/_layout_utils.py": 15652481146450199710, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/histograms.pyi": 2281259341486424755, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufunc_config.pyi": 2005481648919369399, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_quantile.py": 4225791949463893856, - "venv/lib/python3.13/site-packages/numpy/core/_multiarray_umath.py": 10973016138581934035, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/test_astype.py": 563689238486630866, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_excel.py": 5467043641314706635, - "backend/src/models/task.py": 1786589344409008831, - "venv/lib/python3.13/site-packages/anyio/pytest_plugin.py": 4165280709813718099, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__ufunc_api.c": 11535375410441493281, - "venv/lib/python3.13/site-packages/numpy/linalg/_linalg.pyi": 9629457630163613604, - "venv/lib/python3.13/site-packages/numpy/random/lib/libnpyrandom.a": 1802449692091040396, - "venv/lib/python3.13/site-packages/numpy/_typing/_ufunc.pyi": 6286629088867436848, - "venv/lib/python3.13/site-packages/numpy/_core/_exceptions.py": 5570375156851166818, - "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_des.py": 7198931807116651263, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_equals.py": 18261810467289276844, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/python3.npy": 4957143805477405905, - "venv/lib/python3.13/site-packages/sqlalchemy/util/topological.py": 11586868018611359415, - "frontend/src/lib/components/assistant/__tests__/assistant_chat.integration.test.js": 13047006106880121194, - "backend/tests/test_log_persistence.py": 11073909507089982937, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/control.py": 2034518223411945438, - "venv/lib/python3.13/site-packages/ecdsa/errors.py": 11755424742691057760, - "venv/lib/python3.13/site-packages/fastapi/routing.py": 466387159689567541, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/exceptions.py": 14982764273485726199, - "venv/lib/python3.13/site-packages/numpy/lib/format.pyi": 11752225430594536662, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/AB.inc": 10441778083831997423, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/util.py": 6088868370298560146, - "venv/lib/python3.13/site-packages/passlib/handlers/roundup.py": 3844280972451753019, - "venv/lib/python3.13/site-packages/ecdsa/_version.py": 17707102226558781833, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_replace.py": 4953527309376861139, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_tz_convert.py": 77283525137564255, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_empty.py": 6845813091876023610, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pydantic/alias_generators.py": 5991580234179623842, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_stride_tricks.py": 1064774375151677743, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/engines.py": 10876954465293959720, - "venv/lib/python3.13/site-packages/websockets/sync/server.py": 7966978001578584901, - "venv/lib/python3.13/site-packages/rsa/py.typed": 11041940105507257053, - "venv/lib/python3.13/site-packages/pydantic/_internal/_generics.py": 16438159042939059717, - "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/licenses/LICENSE": 5563356551734678258, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/client_credentials.py": 256154392957334831, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/__init__.py": 11121941644106061453, - "venv/lib/python3.13/site-packages/urllib3/poolmanager.py": 15431313180245757657, - "venv/lib/python3.13/site-packages/jeepney/tests/test_wrappers.py": 4813328996575597980, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_indexing.py": 17106010337164216722, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_numpy_array_equal.py": 2089426719574307767, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/jmespath.py": 7426464251945393925, - "venv/lib/python3.13/site-packages/websockets/legacy/server.py": 5390090919193784186, - "frontend/src/routes/admin/settings/llm/+page.svelte": 3079157958329647867, - "backend/src/services/notifications/service.py": 7032100258837946310, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nditer.pyi": 33523064068376750, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_fiscal.py": 14652343698825214870, - "venv/lib/python3.13/site-packages/anyio/_core/__init__.py": 15130871412783076140, - "backend/src/api/routes/git/_repo_routes.py": 7367823490321383813, - "venv/lib/python3.13/site-packages/keyring/backends/macOS/api.py": 4502902558534812719, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_extension.py": 4831602527247293866, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/connectionpool.py": 10453724680327835821, - "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/passlib/hash.py": 5238710192614935875, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_empty.py": 13006241382741353569, - "venv/lib/python3.13/site-packages/psycopg2/_json.py": 9729420372294281405, - "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/METADATA": 12747626683405487434, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_value_counts.py": 12340872812120847127, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_astype.py": 8505605634958454768, - "venv/lib/python3.13/site-packages/pandas/tests/computation/test_eval.py": 2921337784087808487, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_constructors.py": 12118296571694122743, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_index.py": 1551768441102117466, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/util.cpython-313-x86_64-linux-gnu.so": 12473903676666680134, - "venv/lib/python3.13/site-packages/PIL/ImageShow.py": 11437096951764124817, - "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/licenses/COPYING": 14459782230785388765, - "frontend/build/_app/immutable/chunks/DSCvrbNj.js": 7995659532253982919, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libpcre-9513aab5.so.1.2.0": 12298861477332583668, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/auth.py": 912521029864094489, - "venv/lib/python3.13/site-packages/numpy/random/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/core/resample.py": 13814298871925341617, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/pg_catalog.py": 15726448028057859831, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/base.py": 7855217087916771270, - "frontend/src/routes/profile/__tests__/profile-preferences.integration.test.js": 6561454515118560091, - "frontend/build/_app/immutable/chunks/BAEbOLv3.js": 18043792224008034479, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_dtypes.py": 481191723198819568, - "venv/lib/python3.13/site-packages/urllib3/fields.py": 9503202008440141421, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/RECORD": 6518517239543344179, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi": 10548370574281981402, - "venv/lib/python3.13/site-packages/anyio/_core/_tempfile.py": 230288423480899091, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py": 14571251344510763303, - "venv/lib/python3.13/site-packages/jsonschema/_legacy_keywords.py": 16481666133229715822, - "venv/lib/python3.13/site-packages/annotated_doc/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/array.py": 13040461386712513615, - "venv/lib/python3.13/site-packages/charset_normalizer/__main__.py": 8887772289570078278, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_masm.obj": 2884737706935637437, - "backend/src/core/utils/superset_context_extractor/_base.py": 2165790563924045511, - "backend/src/api/routes/__tests__/test_tasks_logs.py": 17724385243163092479, - "venv/lib/python3.13/site-packages/idna/compat.py": 9758194415584776667, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f77fixedform.f95": 10898637805043867370, - "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/zip-safe": 15240312484046875203, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_matrix_linalg.py": 2858987911347541177, - "venv/lib/python3.13/site-packages/numpy/__init__.pxd": 13527602429695748857, - "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-exp2.csv": 10950201682596097452, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_tzconversion.py": 7205566353454584259, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_unstack.py": 11834917665446437163, - "venv/lib/python3.13/site-packages/pandas/io/pickle.py": 5418646169167774144, - "venv/lib/python3.13/site-packages/idna/idnadata.py": 200840860629525970, - "venv/lib/python3.13/site-packages/pygments/styles/lovelace.py": 15082819162722685616, - "venv/lib/python3.13/site-packages/gitdb/db/pack.py": 13460574575424209609, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_freq_attr.py": 7685756734926749093, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/__init__.py": 11526998905763262175, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_timedelta.py": 7742506012012398830, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/__init__.py": 15130871412783076140, - "backend/src/api/routes/git/__init__.py": 14824479456728364642, - "venv/lib/python3.13/site-packages/numpy/lib/_polynomial_impl.py": 12771179468704314203, - "backend/src/services/profile_utils.py": 3954310438409803447, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/licenses/LICENSE": 14524289631770661180, - "backend/alembic/versions/2a7b8c9d0e1f_add_target_languages_to_translation_jobs.py": 7201017059554918882, - "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_quantile.py": 11966156706220948315, - "backend/src/services/reports/__tests__/test_report_service.py": 7145268223824508607, - "venv/lib/python3.13/site-packages/httpcore/_sync/connection.py": 1539337414493486168, - "venv/lib/python3.13/site-packages/fastapi/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/integrations/django_client/apps.py": 14151733532064278336, - "venv/lib/python3.13/site-packages/pandas/core/window/common.py": 17956497339875932377, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_cisco.py": 1786475632318043669, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/liblber-1c9097e2.so.2.0.200": 2651879839738900594, - "backend/src/api/routes/dashboards/_schemas.py": 10686942001147126057, - "venv/lib/python3.13/site-packages/keyring/credentials.py": 14515496037842724455, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi": 16934250836612138541, - "backend/src/core/utils/superset_context_extractor/_filters.py": 281666313889333545, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_conversion.py": 9159276697339089788, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rank.py": 14115215895836854973, - "venv/lib/python3.13/site-packages/pandas/tests/extension/base/ops.py": 13451323660386712332, - "venv/lib/python3.13/site-packages/pygments/lexers/unicon.py": 1155454077052833821, - "frontend/build/_app/immutable/nodes/1.BHRH2YId.js": 6292738163244332451, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_validators.py": 14178329676643700151, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_histograms.py": 47631283818191049, - "venv/lib/python3.13/site-packages/anyio/streams/buffered.py": 8916188172110578587, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/__init__.py": 11283047029180207588, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py": 7707707044867513457, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_get_dummies.py": 16112674981222844375, - "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/resample/conftest.py": 1643522609234951699, - "venv/lib/python3.13/site-packages/jeepney/io/tests/conftest.py": 13381752264278264218, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_elffile.py": 5728213398707817049, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_frame.py": 4303613319747945709, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_eng_formatting.py": 14768815444701392013, - "venv/lib/python3.13/site-packages/click/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/implicit.py": 5400555157488808948, - "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.pxd": 9126772093305708921, - "venv/lib/python3.13/site-packages/pandas/tests/test_take.py": 17628004130770326677, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/mock.py": 14010776046610111182, - "venv/lib/python3.13/site-packages/httpcore/_sync/interfaces.py": 1532245423878428608, - "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/METADATA": 2604612822968175379, - "venv/lib/python3.13/site-packages/authlib/oidc/core/util.py": 5364455058429522633, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/auto.py": 15947958974558543657, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_timedelta64.py": 16821719402662529276, - "venv/lib/python3.13/site-packages/starlette/middleware/cors.py": 11384893784314197864, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_print.py": 598821365691498702, - "frontend/src/routes/admin/settings/+page.svelte": 15536865086528222650, - "venv/lib/python3.13/site-packages/numpy/random/__init__.pyi": 13833571330152615376, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_reshape.py": 10576230966727810832, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_npy_units.py": 8966226962799105383, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_utils.pyi": 3708905060001289515, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_indexing_slow.py": 12558235638488427077, - "frontend/build/_app/immutable/chunks/BEgtrFG1.js": 8322179021947182552, - "backend/src/core/auth/__init__.py": 16435384828055133073, - "venv/lib/python3.13/site-packages/pandas/_libs/hashing.cpython-313-x86_64-linux-gnu.so": 16124435225170610034, - "docker/nginx.conf": 14595959129793115016, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py": 1359143503575245224, - "venv/lib/python3.13/site-packages/urllib3/__init__.py": 1854778274753799815, - "backend/src/services/clean_release/repositories/__init__.py": 9926779835387630811, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_scalar_compat.py": 1306236983392218709, - "backend/src/api/routes/assistant/_command_parser.py": 2745692387994130159, - "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/METADATA": 4954909612926293404, - "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/WHEEL": 14929202952940710322, - "venv/lib/python3.13/site-packages/httpx/_transports/default.py": 8391302827983907910, - "venv/lib/python3.13/site-packages/_pytest/assertion/truncate.py": 14000392306994773741, - "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/WHEEL": 2357997949040430835, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/wrapper.py": 4633931060151989960, - "venv/lib/python3.13/site-packages/pygments/lexers/grammar_notation.py": 9009644754106884095, - "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/starlette/middleware/base.py": 16850428285382256618, - "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_enc_cryptography.py": 4383854709657749855, - "venv/lib/python3.13/site-packages/numpy/lib/scimath.pyi": 18165025261847276375, - "venv/lib/python3.13/site-packages/bcrypt/_bcrypt.abi3.so": 8691731321358529264, - "venv/lib/python3.13/site-packages/keyring/backend_complete.bash": 16589214602970214174, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_csky_gcc.h": 12929785267195988209, - "venv/lib/python3.13/site-packages/referencing/_attrs.pyi": 10030665705880994025, - "venv/lib/python3.13/site-packages/rsa/pem.py": 3118524021576082054, - "venv/lib/python3.13/site-packages/bcrypt/__about__.py": 11196369962175692786, - "venv/lib/python3.13/site-packages/pandas/tests/test_optional_dependency.py": 7930709646653025355, - "venv/lib/python3.13/site-packages/pandas/tests/window/moments/conftest.py": 6137462119729731945, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_asfreq.py": 12721047184483392773, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_frame.py": 2169381747938271444, - "venv/lib/python3.13/site-packages/pandas/tests/series/test_iteration.py": 15247340610412364508, - "venv/lib/python3.13/site-packages/pandas/util/_exceptions.py": 14426860079366867683, - "venv/lib/python3.13/site-packages/fastapi/openapi/utils.py": 9058442333718187759, - "venv/lib/python3.13/site-packages/pip/_internal/cli/__init__.py": 11914508471759255927, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/histograms.pyi": 9255620158831643201, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE": 14610443802372107702, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarrayobject.h": 7320510589635636690, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arithmetic.pyi": 467927803068643024, - "venv/lib/python3.13/site-packages/passlib/handlers/postgres.py": 14162382430051693313, - "venv/lib/python3.13/site-packages/pydantic/v1/datetime_parse.py": 10467114625921924095, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_as_unit.py": 8492383355919959393, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_lexsort.py": 10394832796613968484, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_truncate.py": 9623613657871046837, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_analytics.py": 8155550493311083506, - "venv/lib/python3.13/site-packages/sqlalchemy/sql/naming.py": 14503932124671438340, - "venv/lib/python3.13/site-packages/passlib/tests/sample1.cfg": 9597283806285213340, - "venv/lib/python3.13/site-packages/git/refs/symbolic.py": 14996822770181935589, - "venv/lib/python3.13/site-packages/pygments/lexers/openscad.py": 13045825115225232396, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/__init__.py": 8632038387100622009, - "scripts/build_offline_docker_bundle.sh": 9577721838839060974, - "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/METADATA": 4975169119201255384, - "frontend/playwright-report/trace/snapshot.html": 11716473056415565262, - "backend/src/core/async_superset_client.py": 5842980152216372100, - "backend/src/core/middleware/trace.py": 13093835356377196397, - "backend/src/plugins/translate/orchestrator_config.py": 1227864697811313446, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh26920/two_mods_with_one_public_routine.f90": 7957683453180939605, - "backend/alembic/versions/b0c1d2e3f4a5_cascade_ondelete_translate_fks.py": 1764442834210967136, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/__init__.py": 15130871412783076140, - "frontend/src/routes/settings/SystemSettings.svelte": 17084926955388049976, - "venv/lib/python3.13/site-packages/pip/_internal/locations/base.py": 7966628150470073365, - "backend/git_repos/remote/test-repo.git/refs/heads/feature/test": 7714224145564125988, - "venv/lib/python3.13/site-packages/numpy/tests/test_numpy_config.py": 3636377988901907424, - "frontend/build/_app/immutable/nodes/17.Dl6K4370.js": 14461856651958270415, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/__init__.py": 16532856661318424631, - "venv/lib/python3.13/site-packages/annotated_types/__init__.py": 7367790549779882749, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_conversion.pyi": 11580106670226366710, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/instrumentation.py": 14882045449667214075, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/RECORD": 9502524172853437600, - "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_toml_compat.py": 10196543528439925412, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_callback.py": 1689177048527329209, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/models.py": 17356033861792227817, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_copy.py": 3114918520437707410, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_append.py": 13152738905565588661, - "venv/lib/python3.13/site-packages/pygments/lexers/meson.py": 14659991367778746658, - "backend/src/services/clean_release/__tests__/test_policy_engine.py": 15331910119765064311, - "venv/lib/python3.13/site-packages/jeepney/io/blocking.py": 4699555965372200059, - "venv/lib/python3.13/site-packages/pydantic/mypy.py": 10034028441785588819, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_comparison.py": 4611207880323503098, - "venv/lib/python3.13/site-packages/greenlet/PyGreenlet.hpp": 6366432579621298231, - "venv/lib/python3.13/site-packages/pip/_vendor/truststore/__init__.py": 1948986914452928735, - "venv/lib/python3.13/site-packages/pygments/styles/gh_dark.py": 7717523746712391809, - "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_errors.py": 3301889847545579393, - "venv/lib/python3.13/site-packages/passlib/tests/test_win32.py": 13932956220195912963, - "frontend/src/pages/Settings.svelte": 12818597464628135154, - "venv/lib/python3.13/site-packages/pip/_internal/utils/wheel.py": 450504439085405418, - "venv/lib/python3.13/site-packages/websockets/typing.py": 13268801935274185287, - "venv/lib/python3.13/site-packages/uvicorn/middleware/wsgi.py": 9179913252056394958, - "venv/lib/python3.13/site-packages/packaging/metadata.py": 9168255069163141470, - "venv/lib/python3.13/site-packages/pandas/tests/io/xml/test_to_xml.py": 8477770807916990981, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/relationships.py": 8401569216905291119, - "venv/lib/python3.13/site-packages/PIL/BufrStubImagePlugin.py": 5520941821175895889, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/__init__.py": 16146480198665866916, - "backend/git_repos/remote/test-repo.git/hooks/update.sample": 8204581436750313444, - "venv/lib/python3.13/site-packages/cffi/backend_ctypes.py": 2042566833861899211, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/_pytesttester.pyi": 5750506937526308405, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/models.py": 17870758731501836303, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/rsa_key.py": 7092106298733667895, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/__init__.py": 2397613800206300456, - "venv/lib/python3.13/site-packages/pandas/tseries/holiday.py": 1134358927599488799, - "venv/lib/python3.13/site-packages/numpy/_distributor_init.py": 1101690714183863290, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_to_timestamp.py": 17572983799929378095, - "venv/lib/python3.13/site-packages/cryptography/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data": 9599129816090399315, - "venv/lib/python3.13/site-packages/urllib3/_request_methods.py": 13671055114247516883, - "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/LICENSE": 8423899413955829149, - "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/util.py": 18279366777506483176, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_usecols_basic.py": 16382444980424010514, - "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pygments/lexers/monte.py": 15158829991357994573, - "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_legendre.py": 18266595775500927868, - "venv/lib/python3.13/site-packages/numpy/ma/mrecords.pyi": 8945514863366384484, - "venv/lib/python3.13/site-packages/click/exceptions.py": 9734955259447933725, - "venv/lib/python3.13/site-packages/numpy/tests/test__all__.py": 10689265249302359388, - "venv/lib/python3.13/site-packages/numpy/core/overrides.py": 11228841530565061867, - "venv/lib/python3.13/site-packages/pandas/tests/extension/list/array.py": 8065856342131357421, - "venv/lib/python3.13/site-packages/pydantic/v1/validators.py": 1060954771151908883, - "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/RECORD": 16342326945648353387, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/LICENSE": 2032205056284080825, - "venv/lib/python3.13/site-packages/pycparser/ply/__init__.py": 5040371336745852622, - "venv/lib/python3.13/site-packages/numpy/ma/tests/test_mrecords.py": 15952147778503828707, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/__init__.py": 697601512486720554, - "venv/lib/python3.13/site-packages/python_multipart/decoders.py": 14252672585219598429, - "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_bcrypt.py": 11146468670439284889, - "venv/lib/python3.13/site-packages/pygments/lexers/tablegen.py": 2917626373516779857, - "frontend/src/lib/stores/datasetReviewSession.js": 3915919349382526215, - "venv/lib/python3.13/site-packages/pandas/core/arrays/numpy_.py": 16641729409992576358, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_index.py": 12015738970771703312, - "frontend/src/routes/datasets/__tests__/split_view.test.js": 6143972529940917004, - "venv/lib/python3.13/site-packages/apscheduler/triggers/interval.py": 3964550092873794670, - "venv/lib/python3.13/site-packages/rsa/transform.py": 12261738253972114335, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/proxy.py": 13008557041076030198, - "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_backend.py": 17793139799410518847, - "venv/lib/python3.13/site-packages/numpy/f2py/f90mod_rules.py": 2953876934840155920, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_interval.py": 14749388246573356959, - "venv/lib/python3.13/site-packages/pygments/lexers/haxe.py": 1915270891525929751, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_dict.py": 808180749933361743, - "venv/lib/python3.13/site-packages/numpy/linalg/lapack_lite.pyi": 14069586330277925998, - "frontend/src/services/adminService.js": 6375990585512014277, - "frontend/build/_app/immutable/chunks/DWg3slHj.js": 16432655720744147297, - "backend/src/services/clean_release/__tests__/test_source_isolation.py": 17714198919084455758, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_extension.py": 17245018204352082978, - "backend/tests/scripts/test_clean_release_tui_v2.py": 16893299982170941753, - "venv/lib/python3.13/site-packages/numpy/f2py/rules.pyi": 1342380029484127983, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_comparisons.py": 2764694394636775220, - "backend/git_repos/remote/test-repo.git/refs/heads/main": 7667767390913789840, - "venv/lib/python3.13/site-packages/keyring/util/__init__.py": 9635016046220094473, - "backend/src/core/utils/superset_compilation_adapter.py": 4974836712746468095, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_astype.py": 15275720655739710249, - "venv/lib/python3.13/site-packages/pip/_vendor/certifi/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/fastapi/_compat/main.py": 13016492818231995760, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/codec.py": 14814999235499530522, - "backend/tests/scripts/test_clean_release_cli.py": 13978106497618764226, - "backend/git_repos/remote/test-repo.git/objects/aa/ea042a37c6f7bd010d91db93951328da7f01cc": 11936716919619613939, - "venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py": 16951268065271931235, - "venv/lib/python3.13/site-packages/pandas/tests/frame/test_cumulative.py": 15644124412739892167, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/version.py": 5000350193835202949, - "venv/lib/python3.13/site-packages/pip/_internal/network/utils.py": 13421242949994555055, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix_py.py": 17041764258638228993, - "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/__init__.py": 12290228927283601067, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/utils.py": 3710235316419562274, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_sort.py": 11941630642630249576, - "frontend/src/routes/profile/__tests__/profile-settings-state.integration.test.js": 3674649277514557450, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_tokenizer.py": 7994281991455916540, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_setops.py": 15365064654930699428, - "venv/lib/python3.13/site-packages/numpy/lib/__init__.pyi": 1537495515469182226, - "venv/lib/python3.13/site-packages/numpy/f2py/src/fortranobject.c": 2519219289444051739, - "venv/lib/python3.13/site-packages/pandas/core/arrays/string_.py": 14865733321317939478, - "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_regression.py": 16266600037241221681, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py": 18229054440703471493, - "venv/lib/python3.13/site-packages/apscheduler/jobstores/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/strings/__init__.pyi": 6213864891045042045, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_insert.py": 15536994417338770457, - "venv/lib/python3.13/site-packages/numpy/_core/_exceptions.pyi": 3661113433078225952, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_row.py": 918740441973901148, - "venv/lib/python3.13/site-packages/pygments/lexers/mips.py": 2078929831513352031, - "venv/lib/python3.13/site-packages/pygments/lexers/csound.py": 2175454840368374515, - "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/itsdangerous/_json.py": 4872267972688724005, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/__init__.py": 6489437464172324468, - "venv/lib/python3.13/site-packages/pandas/_libs/groupby.pyi": 6154952803757623626, - "venv/lib/python3.13/site-packages/numpy/random/bit_generator.pyi": 15790738442952696034, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_setitem.py": 2059440410065814114, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufuncs.pyi": 14995898537484305307, - "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_find_common_type.py": 9581516171321396333, - "venv/lib/python3.13/site-packages/pydantic/annotated_handlers.py": 10186120300163345360, - "venv/lib/python3.13/site-packages/pandas/core/frame.py": 2630807744775247533, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_repr.py": 11737029058271003097, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_arithmetic.py": 11620920548943067949, - "venv/lib/python3.13/site-packages/git/objects/tree.py": 10239027037919781330, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming_py.py": 16133454512601432815, - "venv/lib/python3.13/site-packages/pip/_internal/cli/autocompletion.py": 7651919329635563739, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh24008.f": 3872245077994936272, - "venv/lib/python3.13/site-packages/dateutil/_version.py": 8279235793001245767, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_constructors.py": 11786151805350138436, - "venv/lib/python3.13/site-packages/idna/core.py": 7725813731640753267, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_datetime.py": 13781712980921881470, - "venv/lib/python3.13/site-packages/rsa/asn1.py": 3861968161559322784, - "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming.pyi": 4432290176776357346, - "venv/lib/python3.13/site-packages/tzlocal/win32.py": 1949985224569608978, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_linux.h": 15772978805500070727, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_stack.py": 5316826578695144945, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/limited_api_latest.c": 5472633890472031814, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_encs.py": 9703572751543253904, - "venv/lib/python3.13/site-packages/pandas/api/internals.py": 5188134630996087511, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/state_changes.py": 11425629729736599320, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/locators.py": 7638945613579396718, - "venv/lib/python3.13/site-packages/numpy/__config__.py": 15794735729525094396, - "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_getitem.py": 18202683049446557047, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/associationproxy.py": 7421910137064160936, - "venv/lib/python3.13/site-packages/pip/_internal/commands/lock.py": 14782882714168174465, - "venv/lib/python3.13/site-packages/uvicorn/protocols/http/httptools_impl.py": 10367325397209016951, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/dtype.pyi": 465999539608816848, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/gevent.py": 4811840397266785551, - "examples/maintenance-api-python.py": 18279360934407602079, - "frontend/static/favicon.svg": 6451919037497541980, - "frontend/playwright-report/trace/index.CzXZzn5A.css": 10367596602957476705, - "frontend/playwright-report/data/b13be72bc9111c369dd61bcb4b41565873341170.zip": 9286336518597330572, - "frontend/src/lib/api/translate/__tests__/test-target-schema.test.js": 2329724860725977662, - "frontend/src/lib/components/translate/TermCorrectionPopup.svelte": 5276611147503580165, - "frontend/src/routes/datasets/review/+page.svelte": 12909115647298935839, - "frontend/src/routes/settings/LoggingSettings.svelte": 1737218883899664063, - "frontend/tailwind.config.js": 13139381085024634801, - "venv/lib/python3.13/site-packages/pandas/tests/window/test_pairwise.py": 2673370322448160842, - "frontend/src/routes/datasets/ColumnsTable.svelte": 1880884265008014080, - "venv/lib/python3.13/site-packages/pygments/unistring.py": 18037463865539157041, - "venv/lib/python3.13/site-packages/packaging/markers.py": 11602308203217831543, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64-testset-1.csv": 5708101386018266998, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/expression.py": 1248029135284283479, - "venv/lib/python3.13/site-packages/numpy/_core/_multiarray_umath.cpython-313-x86_64-linux-gnu.so": 2888939866336522308, - "venv/lib/python3.13/site-packages/pygments/lexers/foxpro.py": 14032656072384708293, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/sqlalchemy/event/legacy.py": 13465911776953636949, - "frontend/src/lib/components/assistant/AssistantChatPanel.svelte": 4130047433623185888, - "frontend/tests/maintenance-store.test.ts": 7211673236234440419, - "backend/src/core/superset_client/_charts.py": 8811593556038212857, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayscalars.h": 16142050006935459679, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarprint.py": 9482100952562512933, - "backend/git_repos/remote/test-repo.git/objects/6a/f2b28e314c04fb4e03476c12d6491213591512": 4526311953587849385, - "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/claims.py": 12645788445743898136, - "venv/lib/python3.13/site-packages/_pytest/mark/structures.py": 12237146603608917650, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/auth.py": 13542332344403032059, - "venv/lib/python3.13/site-packages/passlib/utils/compat/__init__.py": 17369882236606423129, - "venv/lib/python3.13/site-packages/pandas/io/formats/xml.py": 12235904458551067063, - "venv/lib/python3.13/site-packages/pandas/tests/test_downstream.py": 5635510753354256507, - "frontend/src/routes/datasets/review/__tests__/dataset_review_entry.ux.test.js": 5439236328736424365, - "frontend/src/components/git/GitMergeDialog.svelte": 17029360862035548928, - "venv/lib/python3.13/site-packages/jeepney/tests/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/vectorized.pyi": 15498895254516573071, - "backend/src/core/config_models.py": 2535711893860826646, - "backend/src/plugins/llm_analysis/service.py": 11342659046054748840, - "backend/src/plugins/translate/orchestrator.py": 2899451611486868631, - "venv/lib/python3.13/site-packages/pandas/tests/computation/test_compat.py": 11655000938111420543, - "backend/src/plugins/translate/sql_generator.py": 900251269659959067, - "venv/lib/python3.13/site-packages/httpx/_transports/asgi.py": 12335675489870745729, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/type_check.pyi": 9177256991985898824, - "venv/lib/python3.13/site-packages/idna-3.11.dist-info/RECORD": 11541505360973709787, - "venv/lib/python3.13/site-packages/pandas/_libs/byteswap.cpython-313-x86_64-linux-gnu.so": 17856848989827220388, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/util.py": 3591114320020964752, - "venv/lib/python3.13/site-packages/sqlalchemy/util/queue.py": 1289234691048379395, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/__init__.py": 13331622784664204066, - "backend/src/api/routes/__tests__/test_reports_openapi_conformance.py": 17043883737206361151, - "frontend/src/routes/datasets/review/ReviewWorkspaceRightRail.svelte": 13437011381072252917, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/emoji.py": 9166774203918731896, - "backend/git_repos/remote/test-repo.git/objects/6f/85e20ce3ef98cf07a2f102498b71b9462552c5": 3012017807908986452, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/content": 12465123883296161860, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_month.py": 14597470286884431085, - "backend/src/plugins/translate/_batch_proc.py": 5830558923416766212, - "venv/lib/python3.13/site-packages/pygments/lexers/sql.py": 15566262873151658034, - "backend/alembic.ini": 8897071018956157084, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_args.py": 5821040955806257450, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_month.py": 1613806538807726074, - "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc64_linux.h": 4071314837793906998, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi": 1626154870044880426, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_non_compound.f90": 8048650253889213460, - "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/licenses/LICENSE": 5757922580822401219, - "venv/lib/python3.13/site-packages/pandas/_libs/hashing.pyi": 5241441378073929968, - "venv/lib/python3.13/site-packages/PIL/ImageWin.py": 13635870584232081323, - "frontend/src/components/tasks/TaskLogPanel.svelte": 4685456099513280294, - "venv/lib/python3.13/site-packages/httpx/py.typed": 15130871412783076140, - "backend/src/services/clean_release/stages/internal_sources_only.py": 15680055221844544848, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_setops.py": 15196593522537569500, - "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/_arrow_utils.py": 17808805047762566525, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/url.py": 9692934100602135106, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pygments/lexers/business.py": 10410439210806697214, - "backend/src/services/security_badge_service.py": 6269749758059921511, - "backend/src/plugins/llm_analysis/__tests__/test_client_headers.py": 5527172390260032966, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg.py": 8023549900603235601, - "backend/git_repos/remote/test-repo.git/objects/52/ec4a78c629329b8b572ec9d5205271c111baac": 18054296544295201561, - "venv/lib/python3.13/site-packages/pygments/lexers/prql.py": 1159462562014166646, - "venv/lib/python3.13/site-packages/pip/_internal/utils/urls.py": 8698341051522816167, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_drop.py": 11341278355685583133, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_align.py": 6050248183327934780, - "venv/lib/python3.13/site-packages/numpy/_core/printoptions.py": 3897105663572772838, - "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/util.py": 2866856507760047219, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_concat.py": 1351478313334379336, - "backend/src/services/dataset_review/__init__.py": 15781509495698823404, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/base.py": 17992335652981439676, - "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/WHEEL": 691462085217888236, - "venv/lib/python3.13/site-packages/pip/_internal/vcs/git.py": 17060377178521307324, - "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/WHEEL": 16097436423493754389, - "venv/lib/python3.13/site-packages/pygments/lexers/prolog.py": 599539463980699865, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py": 17106903014205241774, - "venv/lib/python3.13/site-packages/pydantic/v1/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/polynomial/_polytypes.pyi": 7528777458251688517, - "venv/lib/python3.13/site-packages/cffi/verifier.py": 8473599757770867754, - "venv/lib/python3.13/site-packages/numpy/lib/tests/test_io.py": 4199750143323741326, - "venv/lib/python3.13/site-packages/pandas/io/sql.py": 12592024569011796790, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/session.py": 5126234270435358377, - "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/INSTALLER": 17282701611721059870, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_read_fwf.py": 13684564756628524738, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_reset_index.py": 5946666595195952693, - "venv/lib/python3.13/site-packages/click/_winconsole.py": 8133229457213704188, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_formats.py": 2743326139283991615, - "venv/lib/python3.13/site-packages/pydantic/v1/env_settings.py": 6194387033830177219, - "venv/lib/python3.13/site-packages/passlib/tests/sample1c.cfg": 13088198405762342506, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/common.py": 9354442374897565498, - "venv/lib/python3.13/site-packages/pygments/lexers/crystal.py": 3579547906957125755, - "backend/src/plugins/translate/preview_session_ops.py": 14499196532448992687, - "venv/lib/python3.13/site-packages/pandas/tests/base/test_misc.py": 9190561773853901527, - "frontend/src/lib/stores/__tests__/mocks/state.js": 3616783395254238777, - "venv/lib/python3.13/site-packages/numpy/core/defchararray.py": 11371045148957547088, - "venv/lib/python3.13/site-packages/pip/_vendor/idna/intranges.py": 12536174834761591006, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/aead.py": 8740476942925346444, - "backend/src/services/git/_status.py": 11400014053359523156, - "venv/lib/python3.13/site-packages/pandas/tests/apply/test_str.py": 149688376805129532, - "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/RECORD": 9678861487447993169, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23598.f90": 1409455010615482779, - "venv/lib/python3.13/site-packages/sqlalchemy/testing/util.py": 955993052529739164, - "venv/lib/python3.13/site-packages/PIL/McIdasImagePlugin.py": 14137545069906812251, - "frontend/src/lib/ui/LanguageSwitcher.svelte": 3899734183369041614, - "venv/lib/python3.13/site-packages/pygments/lexers/lisp.py": 11872331622183590758, - "venv/lib/python3.13/site-packages/pandas/core/accessor.py": 1188716996113179524, - "venv/lib/python3.13/site-packages/pycparser/lextab.py": 16045770806700381661, - "backend/src/services/dataset_review/clarification_engine.py": 13640221555439415988, - "venv/lib/python3.13/site-packages/pip/_vendor/tomli/__init__.py": 12906995259233516197, - "venv/lib/python3.13/site-packages/pandas/core/base.py": 10262717073058743378, - "backend/test_pat_api.py": 4206656943734821967, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_align.py": 10284128457194204574, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_tools.py": 13994164937603424236, - "venv/lib/python3.13/site-packages/attrs/__init__.pyi": 14353885498883901855, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_ufunc.py": 3326502989311831856, - "backend/src/services/clean_release/__tests__/test_compliance_orchestrator.py": 4990536554328205752, - "venv/lib/python3.13/site-packages/numpy/_core/getlimits.pyi": 15746478550640231553, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/__init__.py": 14571251344510763303, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_category.py": 3944898528119364040, - "venv/lib/python3.13/site-packages/pandas/io/formats/info.py": 215303194287834907, - "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata_editable.py": 12494407279914732338, - "venv/lib/python3.13/site-packages/numpy/lib/_arrayterator_impl.pyi": 2744889206277418389, - "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py": 14190849361275154667, - "venv/lib/python3.13/site-packages/requests/__version__.py": 6677532709758546816, - "venv/lib/python3.13/site-packages/greenlet/PyGreenletUnswitchable.cpp": 3160733517193315684, - "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE.BSD": 3858254215169937333, - "venv/lib/python3.13/site-packages/pandas/core/window/doc.py": 4204367435727844696, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_coercion.py": 7261787308019145312, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_set_value.py": 17480833128128893268, - "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated": 11193150813314469394, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_pickle.py": 6232650893735715362, - "venv/lib/python3.13/site-packages/numpy/_core/_simd.cpython-313-x86_64-linux-gnu.so": 12609666221355091416, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_categorical.py": 10863578845754547294, - "frontend/src/lib/api/validation.js": 10650815174196870103, - "venv/lib/python3.13/site-packages/greenlet/CObjects.cpp": 3454797518210223926, - "venv/lib/python3.13/site-packages/passlib/utils/md4.py": 4521366665754877351, - "venv/lib/python3.13/site-packages/passlib/tests/test_registry.py": 15377817946543064293, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_formats.py": 10263085276270778330, - "venv/lib/python3.13/site-packages/sqlalchemy/orm/util.py": 2176177435997659667, - "venv/lib/python3.13/site-packages/PIL/BmpImagePlugin.py": 16682567630621529903, - "venv/lib/python3.13/site-packages/fastapi/middleware/trustedhost.py": 4285622102799027823, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath.py": 13010939919217862164, - "venv/lib/python3.13/site-packages/PIL/_imagingmorph.cpython-313-x86_64-linux-gnu.so": 11171810899664471137, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_constructors.py": 5627819885594450614, - "venv/lib/python3.13/site-packages/numpy/_core/records.pyi": 14194354215405544730, - "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_object.py": 9215781825358309147, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_kurt.py": 2898715045429898166, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_file.py": 5180401483285462901, - "venv/lib/python3.13/site-packages/pip/_vendor/distlib/metadata.py": 1362166613223529108, - "venv/lib/python3.13/site-packages/pip/_internal/index/__init__.py": 14829074315307489628, - "venv/lib/python3.13/site-packages/jsonschema/tests/test_utils.py": 8668650648802195016, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/random.py": 12722750410117529986, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/__init__.py": 15130871412783076140, - "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/METADATA": 7214286447912789067, "venv/lib/python3.13/site-packages/pygments/lexers/_cocoa_builtins.py": 15468347167912293394, - "venv/lib/python3.13/site-packages/keyring/__main__.py": 14602212239605295451, - "venv/lib/python3.13/site-packages/passlib/totp.py": 14590474309565233318, - "venv/lib/python3.13/site-packages/pygments/lexers/fift.py": 7537570342576781911, - "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_multi.py": 4612816468258071810, - "venv/lib/python3.13/site-packages/PIL/ImageMode.py": 2361901066832921091, - "venv/lib/python3.13/site-packages/pygments/lexers/ncl.py": 14838368780033177943, - "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/METADATA": 3448868793744358515, - "venv/lib/python3.13/site-packages/sqlalchemy/engine/util.py": 1520899420719605380, - "venv/lib/python3.13/site-packages/pygments/lexers/sieve.py": 15757825442941567629, - "backend/src/core/task_manager/__tests__/test_context.py": 4211690952139950648, - "backend/src/core/task_manager/event_bus.py": 15798578020529126889, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_construction.py": 6564829381134214401, - "backend/src/api/routes/assistant/_resolvers.py": 6365921685100086434, - "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py": 8079219938116542284, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_searchsorted.py": 11161416745923343741, - "venv/lib/python3.13/site-packages/urllib3/filepost.py": 3814725067598042920, - "venv/lib/python3.13/site-packages/pygments/lexers/graphviz.py": 15677908982985025500, - "venv/lib/python3.13/site-packages/greenlet/tests/__init__.py": 1181423074160870921, - "frontend/build/_app/immutable/chunks/DgoIDw4h.js": 10605176285482573925, - "venv/lib/python3.13/site-packages/passlib/handlers/oracle.py": 12959175637015399815, - "venv/lib/python3.13/site-packages/packaging/_structures.py": 13086687542872305890, - "frontend/build/_app/immutable/chunks/C9EOgT5J.js": 5509721048432890523, - "venv/lib/python3.13/site-packages/apscheduler/schedulers/__init__.py": 16211693040174992594, - "venv/lib/python3.13/site-packages/pandas/tests/strings/test_get_dummies.py": 14871264482622327003, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_parse_dates.py": 7597935994945336408, - "venv/lib/python3.13/site-packages/numpy/testing/_private/extbuild.py": 4984721349618127021, - "venv/lib/python3.13/site-packages/numpy/lib/_datasource.pyi": 5894423389796456573, - "venv/lib/python3.13/site-packages/pygments/lexers/hdl.py": 6772823608124143123, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/theme.py": 14225878259183479398, - "venv/lib/python3.13/site-packages/PIL/QoiImagePlugin.py": 17663704273100331654, - "venv/lib/python3.13/site-packages/charset_normalizer/constant.py": 3070316197495651997, - "venv/lib/python3.13/site-packages/pygments/lexers/_ada_builtins.py": 16331776886501464264, - "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_missing.py": 2976310411820303374, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-objarr.npy": 9694707264403109829, - "frontend/src/routes/migration/+page.svelte": 8832866232148007450, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssltransport.py": 8148652555908329980, - "venv/lib/python3.13/site-packages/pygments/lexers/_luau_builtins.py": 13690910306072616818, - "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libldap-2974a1ba.so.2.0.200": 13590569080612602445, - "venv/lib/python3.13/site-packages/gitdb/exc.py": 13975852664048821278, - "backend/src/services/__tests__/test_llm_prompt_templates.py": 17912427710321938757, - "venv/lib/python3.13/site-packages/pygments/lexers/julia.py": 13516407944275342328, - "backend/src/services/clean_release/mappers.py": 8684357784135236729, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_multi_thread.py": 5660352470978621226, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py": 16768579082462294745, - "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_datetime.py": 3499461736474530062, - "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/METADATA": 15987199384245264478, - "venv/lib/python3.13/site-packages/numpy/_core/tests/test_records.py": 18167578114159312327, - "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/test_common.py": 8987965560487646705, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi": 3533739482029983817, - "venv/lib/python3.13/site-packages/pygments/lexers/trafficscript.py": 776604244051744646, - "venv/lib/python3.13/site-packages/cryptography/x509/oid.py": 13909847799728532602, - "venv/lib/python3.13/site-packages/websockets/sync/messages.py": 15699091325918681038, - "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/client_mixin.py": 17980753662107479779, - "venv/lib/python3.13/site-packages/attr/_compat.py": 4016698632899969390, - "venv/lib/python3.13/site-packages/jeepney/bus_messages.py": 5871341372541525842, - "venv/lib/python3.13/site-packages/numpy/exceptions.pyi": 13942486291715303235, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_series.pyi": 7112486730197067087, - "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/oauth2_client.py": 6742098857947604729, - "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexer.py": 14400766876373764268, - "venv/lib/python3.13/site-packages/pandas/core/methods/describe.py": 17006836623161521092, - "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/appengine.py": 16194997685865850655, - "venv/lib/python3.13/site-packages/pydantic/typing.py": 6661252174518316760, - "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.pyi": 14150710436003340771, - "venv/lib/python3.13/site-packages/pandas/tests/extension/test_common.py": 9446944526144164255, - "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/__init__.py": 260774374497653876, - "venv/lib/python3.13/site-packages/pyasn1/codec/native/__init__.py": 15728752901274520502, - "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_year.py": 17441853503700184299, - "venv/lib/python3.13/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz": 17626265752554406355, - "venv/lib/python3.13/site-packages/numpy/core/records.py": 12604652690721760437, - "venv/lib/python3.13/site-packages/annotated_doc/__init__.py": 6834198874252778425, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_algos.py": 5356470832688354593, - "venv/lib/python3.13/site-packages/authlib/oidc/core/errors.py": 18154419146257747681, - "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/bitgen.h": 12421210767114721499, - "venv/bin/httpx": 6651007446865716794, - "venv/lib/python3.13/site-packages/pygments/styles/pastie.py": 15784474766258831882, - "venv/lib/python3.13/site-packages/uvicorn/_compat.py": 2593000889619875759, - "frontend/build/_app/immutable/chunks/_Pf3rQig.js": 13183249556030654823, - "venv/lib/python3.13/site-packages/pandas/tseries/frequencies.py": 2262381949755250516, - "venv/lib/python3.13/site-packages/pip/_internal/req/req_uninstall.py": 3515239440812977025, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_contains.py": 17630310725250553247, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/WHEEL": 7314207500206292683, - "venv/lib/python3.13/site-packages/pydantic_core/_pydantic_core.cpython-313-x86_64-linux-gnu.so": 13917011878259810696, - "venv/lib/python3.13/site-packages/passlib/handlers/phpass.py": 16489430001449160264, - "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/base.py": 13634605726041717070, - "venv/bin/activate.fish": 5275961582873298085, - "venv/lib/python3.13/site-packages/httpcore/_backends/sync.py": 576247220834179928, - "frontend/e2e/tests/migration.e2e.js": 12564023806718668322, - "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py3-objarr.npz": 12369168483236619421, - "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_reductions.py": 14432782234851468060, - "venv/lib/python3.13/site-packages/httpx/_exceptions.py": 18399489130669465891, - "venv/lib/python3.13/site-packages/pandas/core/interchange/column.py": 9498044216416177656, - "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/__init__.py": 11808051681178127650, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh26681.f90": 1515497186927052106, - "venv/lib/python3.13/site-packages/PIL/ImageDraw.py": 12919304671639673744, - "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/licenses/LICENSE": 1641332741515411734, - "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/AUTHORS": 10073225185964928425, - "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/REQUESTED": 15130871412783076140, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_polynomial.pyi": 4266795948450921502, - "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/tests/indexes/datetimes/methods/test_snap.py": 4515844385819802784, - "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/licenses/LICENSE": 4672913476475760762, - "venv/lib/python3.13/site-packages/fastapi/utils.py": 15402403831700548944, - "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_iloc.py": 16160558158155038350, - "frontend/src/lib/ui/index.ts": 6883965364006817450, - "venv/lib/python3.13/site-packages/pydantic/v1/__init__.py": 1642038155370734658, - "frontend/build/_app/immutable/chunks/CTzDW2Lk.js": 14040680713815065540, - "venv/lib/python3.13/site-packages/pip/_internal/network/download.py": 5256731341219268693, - "backend/src/api/routes/health.py": 4494840518139445701, - "venv/lib/python3.13/site-packages/pip/_internal/utils/setuptools_build.py": 13594639612360346306, - "venv/lib/python3.13/site-packages/smmap/util.py": 13276170835044840023, - "venv/lib/python3.13/site-packages/pygments/styles/coffee.py": 17584414468786822371, - "venv/lib/python3.13/site-packages/passlib/tests/test_ext_django_source.py": 15577951591316518967, - "backend/src/plugins/translate/orchestrator_lang_stats.py": 5713612003349083382, - "venv/lib/python3.13/site-packages/pyasn1/codec/ber/eoo.py": 5126566925877730303, - "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/setup.py": 17086801293303202021, - "venv/lib/python3.13/site-packages/charset_normalizer/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/markup.py": 5413800947725916538, - "venv/lib/python3.13/site-packages/websockets/headers.py": 13587146967490088657, - "venv/lib/python3.13/site-packages/pydantic/v1/utils.py": 902648247561165429, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64-testset-2.csv": 4052796393463357888, - "backend/git_repos/remote/test-repo.git/objects/8c/4ea7958b7a7e140d27e1e7d8d1f9912fdf5992": 5862166356451798197, - "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/METADATA": 3188324716322823755, - "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/__init__.py": 13749066369790839334, - "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_take.py": 1216902953519121176, - "venv/lib/python3.13/site-packages/numpy/polynomial/polynomial.pyi": 9935587108964614958, - "venv/lib/python3.13/site-packages/yaml/__init__.py": 11044333164208875121, - "venv/lib/python3.13/site-packages/uvicorn/middleware/proxy_headers.py": 13206297306768491360, - "venv/lib/python3.13/site-packages/pygments/lexers/scripting.py": 4167168074165473790, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/_internal_utils.py": 4091305333167213279, - "venv/lib/python3.13/site-packages/numpy/_typing/_nbit_base.py": 7446626038222262489, + "frontend/src/lib/stores/__tests__/taskDrawer.test.js": 12307450726550947042, "venv/lib/python3.13/site-packages/pandas/tests/test_flags.py": 411845322592830527, - "venv/lib/python3.13/site-packages/PIL/TiffTags.py": 8688883943071546469, - "venv/lib/python3.13/site-packages/uvicorn/_types.py": 3339389597716220585, - "frontend/build/_app/immutable/chunks/BVk3Uk_6.js": 15316567731933897520, - "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/RECORD": 7266315886702289726, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_constructors.py": 17392287676196409733, - "venv/lib/python3.13/site-packages/numpy/polynomial/chebyshev.pyi": 5269136485429780038, - "venv/lib/python3.13/site-packages/jsonschema/benchmarks/useless_applicator_schemas.py": 8395157526634674143, - "venv/lib/python3.13/site-packages/httpx/_config.py": 8800538050293498928, - "venv/lib/python3.13/site-packages/pip/_vendor/requests/cookies.py": 4997226307650350876, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/file_proxy.py": 17695135735211897444, - "venv/lib/python3.13/site-packages/pydantic/_internal/_generate_schema.py": 7343380095251236503, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_setops.py": 17350958906336246626, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_css.py": 17765129030290410902, - "venv/lib/python3.13/site-packages/pandas/_libs/join.pyi": 369262334342439364, - "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_json_table_schema.py": 14454690938977069049, - "venv/lib/python3.13/site-packages/pygments/lexers/graph.py": 10445044822847205061, - "venv/lib/python3.13/site-packages/psycopg2/_psycopg.cpython-313-x86_64-linux-gnu.so": 13471342289207537479, - "venv/lib/python3.13/site-packages/pygments/lexers/whiley.py": 218468511185731869, - "backend/src/models/__tests__/test_models.py": 1386812925656974657, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/token_validator.py": 13917237710752731397, - "venv/lib/python3.13/site-packages/numpy/core/getlimits.py": 14257687540182552408, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_doc.py": 7865575374100528149, - "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_python_parser_only.py": 12231449578582108346, - "venv/lib/python3.13/site-packages/greenlet/platform/setup_switch_x64_masm.cmd": 8473866644286785815, - "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64_np126.pkl.gz": 1630203486813146863, - "venv/lib/python3.13/site-packages/httpx/_main.py": 1812303705973265093, - "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/client.py": 18443944554871937480, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_round.py": 8336918400205461173, - "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/METADATA": 10810011740984652381, - "venv/lib/python3.13/site-packages/jsonschema/_types.py": 9250091433305395923, - "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/test_from_dict.py": 4937173601709369119, - "venv/lib/python3.13/site-packages/pandas/core/ops/invalid.py": 10186546927135277579, + "venv/lib/python3.13/site-packages/numpy/_core/numeric.pyi": 17785360553418386488, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_fillna.py": 7349777469648334282, + "venv/lib/python3.13/site-packages/itsdangerous/exc.py": 11181421963755661477, + "venv/lib/python3.13/site-packages/pandas/core/sorting.py": 689057022713741051, + "venv/lib/python3.13/site-packages/pandas/tests/extension/list/test_list.py": 4538625980063375611, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/cache_key.py": 11118819065204404106, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/METADATA": 15658158392301945427, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cos.csv": 12896264205153363031, + "venv/lib/python3.13/site-packages/sqlalchemy/util/_collections.py": 7772437080414835462, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/constrain.py": 6513876973118703677, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/unused_registry.py": 10153622516112471812, + "venv/lib/python3.13/site-packages/anyio/to_process.py": 16627578499791368365, + "venv/lib/python3.13/site-packages/_pytest/skipping.py": 10561585274103209115, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arcsin.csv": 1665171675551692225, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/scoping.py": 17216492046645992674, + "venv/lib/python3.13/site-packages/pygments/lexers/rdf.py": 14488319292387226505, + "frontend/src/lib/ui/Select.svelte": 11354509509920497811, + "frontend/build/_app/immutable/nodes/7.uApaBQtS.js": 122651088329333182, + "frontend/playwright-report/trace/snapshot.html": 11716473056415565262, + "venv/lib/python3.13/site-packages/pycparser/_ast_gen.py": 5464347629908906775, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_parquet.py": 11050150015772440923, + "venv/lib/python3.13/site-packages/numpy/_distributor_init.py": 1101690714183863290, + "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/functions.py": 14107377669163193871, + "venv/lib/python3.13/site-packages/annotated_doc/__init__.py": 6834198874252778425, + "venv/lib/python3.13/site-packages/pygments/lexers/felix.py": 2334148799642808111, + "backend/src/core/utils/superset_context_extractor/_pii.py": 16897386128094460655, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/precision.f90": 5518911932373565642, + "venv/lib/python3.13/site-packages/httpcore/_synchronization.py": 10997080307461682786, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/util.py": 18279366777506483176, + "venv/lib/python3.13/site-packages/h11/_events.py": 13800479928851716538, + "venv/lib/python3.13/site-packages/numpy/random/c_distributions.pxd": 16574161095720077595, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_hist_method.py": 2109257663592928, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/RECORD": 6187512110158566509, + "venv/lib/python3.13/site-packages/pandas/tseries/holiday.py": 1134358927599488799, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_equals.py": 9405821443172167066, "venv/lib/python3.13/site-packages/anyio/streams/stapled.py": 9733127303038397237, - "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_resolution.py": 18198858926948468112, - "venv/lib/python3.13/site-packages/httpcore/_sync/http2.py": 11167798787131917524, - "venv/lib/python3.13/site-packages/pydantic/v1/generics.py": 1150594223414883339, - "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/__init__.py": 15130871412783076140, - "frontend/build/_app/immutable/nodes/4.euBhzXnG.js": 8827989315454731607, - "backend/git_repos/remote/test-repo.git/objects/22/91d2eb86d77accf7401f8952778809cd1aa4d4": 5120428041118096941, - "backend/src/models/dataset_review_pkg/_clarification_models.py": 13264800784251426725, - "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/bitwise_ops.pyi": 15598239133239520456, - "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_pickle.py": 8705060420848529055, - "venv/lib/python3.13/site-packages/pandas/core/indexers/__init__.py": 1756397319068017890, - "venv/lib/python3.13/site-packages/pandas/compat/numpy/__init__.py": 1037113402100731082, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/string.f": 17328443345813567449, - "venv/lib/python3.13/site-packages/numpy/polynomial/__init__.pyi": 8708830448398500675, - "venv/lib/python3.13/site-packages/cryptography/__about__.py": 10471312538528457144, - "venv/bin/f2py": 11006035631504708368, - "venv/lib/python3.13/site-packages/passlib/tests/_test_bad_register.py": 5446848310854472376, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/panel.py": 17832701246248000383, - "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/RECORD": 1051307407005554409, - "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reindex.py": 16348619731902304844, - "frontend/build/_app/immutable/chunks/DcMPZ_fa.js": 6501595943098370468, - "venv/lib/python3.13/site-packages/pip/_vendor/packaging/py.typed": 15130871412783076140, - "venv/lib/python3.13/site-packages/pandas/tests/util/test_rewrite_warning.py": 4895919872954538758, - "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_round.py": 14996007456708990295, - "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_style.py": 14810883299259169406, + "venv/lib/python3.13/site-packages/numpy/ma/extras.py": 7559838309481824664, + "frontend/build/_app/immutable/chunks/Bz99hFgy.js": 2788010001753617987, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data": 11957232619107868023, + "frontend/src/routes/datasets/review/__tests__/dataset_review_entry.test.js": 7689381541193660594, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py": 10057637461647348368, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dot.py": 16876560325283070437, + "venv/lib/python3.13/site-packages/passlib/tests/test_apps.py": 10454136535890937237, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_row.py": 918740441973901148, + "venv/lib/python3.13/site-packages/numpy/_typing/_ufunc.pyi": 6286629088867436848, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_infer_dtype.py": 1647214604678171565, + "venv/lib/python3.13/site-packages/pandas/core/reshape/encoding.py": 12702053687535473061, + "venv/lib/python3.13/site-packages/pandas/_config/__init__.py": 3577026529387563519, + "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/__init__.py": 4870269250323682576, + "venv/lib/python3.13/site-packages/attrs/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_function.py": 14142346897145169685, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_numpy.py": 9663734591667845940, + "venv/lib/python3.13/site-packages/fastapi/openapi/utils.py": 9058442333718187759, + "venv/lib/python3.13/site-packages/pandas/_libs/properties.pyi": 9268470215750269699, + "venv/lib/python3.13/site-packages/pip/_internal/utils/egg_link.py": 18211947508793805393, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/result.py": 12262298207886620908, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/expression.py": 15511250785671695359, + "venv/lib/python3.13/site-packages/referencing/tests/test_referencing_suite.py": 8875120876162738440, + "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_builtin_md4.py": 16840174243259839994, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/state_changes.py": 11425629729736599320, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arithmetic.pyi": 467927803068643024, + "venv/lib/python3.13/site-packages/git/index/typ.py": 11661540784850363024, + "venv/lib/python3.13/site-packages/pygments/lexers/_lasso_builtins.py": 4006621424665751347, + "venv/lib/python3.13/site-packages/jsonschema/__init__.py": 6925762200139836824, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_astype.py": 4854809596041987380, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/generic.py": 17755579497690180620, + "venv/lib/python3.13/site-packages/jose/backends/rsa_backend.py": 13507186353881931758, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_insert.py": 9195027887301180927, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/WHEEL": 7145482834744213753, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_shape_manipulation.py": 12598431412396627042, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh25211.pyf": 10179237442840865225, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_getlimits.py": 118041882543413669, + "venv/bin/pytest": 2593802493707545818, + "frontend/src/lib/components/dataset-review/LaunchConfirmationPanel.svelte": 14399834101283315718, + "frontend/src/lib/components/ui/SearchableMultiSelect.svelte": 681804602822957470, + "frontend/src/routes/datasets/__tests__/DatasetList.test.js": 10189122239208504978, + "frontend/build/_app/immutable/chunks/BddPqa-e.js": 3040470451817822725, + "backend/src/core/scheduler.py": 3824665790179894336, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/lambdas.py": 13377298868598623228, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/provision.py": 17812733620485633975, + "backend/src/plugins/llm_analysis/models.py": 3600633137673071517, + "backend/tests/test_layout_utils.py": 2406415176637802126, + "backend/tests/services/clean_release/test_report_audit_immutability.py": 4097909280121147581, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_asymmetric.py": 6903778603779934572, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_null_file.py": 6885565068723353414, + "venv/lib/python3.13/site-packages/pandas/core/api.py": 3390809109543982410, + "venv/lib/python3.13/site-packages/PIL/ImageGrab.py": 11114379915762058868, + "venv/lib/python3.13/site-packages/pygments/lexers/snobol.py": 414946539602526513, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_string.py": 11422235699126032386, + "frontend/src/routes/datasets/review/ReviewWorkspaceRightRail.svelte": 13437011381072252917, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi": 9835891299056543360, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/color.py": 15062855556511243610, + "venv/lib/python3.13/site-packages/pandas/core/tools/times.py": 6560679305255812809, + "venv/lib/python3.13/site-packages/pandas/_libs/algos.pyi": 22405377601029952, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_dtypes.py": 2313400030798822026, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_exceptions.py": 12145393002202744314, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/assertsql.py": 4633484475514351889, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/watchfilesreload.py": 13062440477475586751, + "backend/src/core/superset_client/_layout_utils.py": 15652481146450199710, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/discovery.py": 12479996594187326798, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_dst.py": 12243642467695371088, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/base.py": 16052592982063844259, + "backend/git_repos/remote/test-repo.git/hooks/pre-rebase.sample": 15693225890270078290, + "venv/lib/python3.13/site-packages/numpy/core/overrides.py": 11228841530565061867, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/associationproxy.py": 7421910137064160936, + "venv/lib/python3.13/site-packages/jose/constants.py": 10880650415673457194, + "venv/lib/python3.13/site-packages/pygments/lexers/gcodelexer.py": 13712494327007684318, + "frontend/build/_app/immutable/chunks/0SSHfn-s.js": 1512028033550082311, + "backend/tests/test_log_persistence.py": 11073909507089982937, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_use.f90": 2657057181044959432, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/ma/LICENSE": 6723325434476453127, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_freq_attr.py": 1720704043778272895, + "backend/src/plugins/translate/preview_review.py": 5584592578627646560, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_retain_attributes.py": 16210262356844956764, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_tz_localize.py": 13699016868476153393, + "venv/lib/python3.13/site-packages/pydantic/v1/parse.py": 5875950480538559709, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/warnings_and_errors.pyi": 3151453262733619734, + "venv/bin/activate": 14735074000123383125, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/pysqlcipher.py": 11225173272050906977, + "venv/lib/python3.13/site-packages/click/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_generator_mt19937_regressions.py": 8981142329261965538, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/LICENSE": 6989336036499641077, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_constructors.py": 1697610790604400105, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_parser.py": 3540203683732744499, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/REQUESTED": 15130871412783076140, "venv/lib/python3.13/site-packages/_pytest/unraisableexception.py": 4597178803320514675, - "frontend/src/components/MappingTable.svelte": 17937756426921453860, - "venv/lib/python3.13/site-packages/git/diff.py": 6691274015605451565, - "venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py": 7271614043537119143, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/plugin_base.py": 2880434680251108786, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_expanding.py": 9047466276603454007, + "backend/logs/app.log.1": 1282701464293071456, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/gh_22819.pyf": 14717748358749934995, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming_py.py": 16133454512601432815, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_windows.py": 13341168721223961872, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_math.h": 16701045088211015518, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py": 7852235015155694076, + "venv/lib/python3.13/site-packages/pandas/__init__.py": 793698514004377486, + "backend/src/api/routes/translate/_run_routes.py": 6617818713940695689, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_interaction.py": 12216477658994324787, + "venv/lib/python3.13/site-packages/cffi/parse_c_type.h": 9889309594462820068, "venv/lib/python3.13/site-packages/pandas/core/indexes/datetimes.py": 14331984919364185787, - "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/common/block.f": 10727418304254548946, - "venv/lib/python3.13/site-packages/pandas/core/dtypes/inference.py": 2786441797589123900, - "venv/lib/python3.13/site-packages/pip/_vendor/rich/_spinners.py": 15873416546130487469 + "backend/src/services/clean_release/candidate_service.py": 8516915994721977806, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_records.py": 6252761812228230408, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/__init__.py": 3673322722277252961, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_indexing_slow.py": 12558235638488427077, + "venv/lib/python3.13/site-packages/pydantic_settings/version.py": 17263591404988984480, + "backend/src/plugins/git/llm_extension.py": 9347391649685791102, + "venv/lib/python3.13/site-packages/pip/_internal/models/__init__.py": 13482731985065116750, + "venv/lib/python3.13/site-packages/_pytest/_code/code.py": 5248836309618416369, + "venv/lib/python3.13/site-packages/pip/_internal/utils/misc.py": 17461379236189029253, + "venv/lib/python3.13/site-packages/uvicorn/_compat.py": 2593000889619875759, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_ddl.py": 3690189094298044728, + "venv/lib/python3.13/site-packages/numpy/_typing/_shape.py": 12667553664122376205, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/sync.py": 6189260178302531376, + "backend/src/plugins/translate/dictionary_filter.py": 18047895364995512274, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_union_categoricals.py": 6843679254735807, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_day.py": 2200008998040663785, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_insert.py": 11635164392966270621, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libkeyutils-dfe70bd6.so.1.5": 9414227432578104677, + "venv/lib/python3.13/site-packages/_pytest/_py/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_timedeltas.py": 4118671843063545221, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_arithmetic.py": 11620920548943067949, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/signals.py": 10390443713463805090, + "venv/lib/python3.13/site-packages/pandas/_libs/window/indexers.cpython-313-x86_64-linux-gnu.so": 9380059465932560412, + "venv/lib/python3.13/site-packages/iniconfig/_parse.py": 11418441008427032090, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/METADATA": 15970460108484113417, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_antijoin.py": 14435396877404907826, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_astype.py": 16700461036658228009, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/interfaces.py": 4890958419958257958, + "backend/git_repos/remote/test-repo.git/refs/heads/master": 12485529318667335076, + "venv/lib/python3.13/site-packages/pandas/tests/config/__init__.py": 15130871412783076140, + "backend/src/models/api_key.py": 4327024700622965951, + "frontend/src/lib/components/MaintenanceSettingsPanel.svelte": 11414690032093503841, + "venv/lib/python3.13/site-packages/pandas/errors/cow.py": 14381282473643980776, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/errors.py": 6538052228921426956, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc64_linux.h": 4071314837793906998, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7515/models.py": 17356033861792227817, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/timeout.py": 1807228452024740476, + "venv/lib/python3.13/site-packages/_pytest/stepwise.py": 3527630676691417317, + "venv/lib/python3.13/site-packages/numpy/_typing/__init__.py": 18242238390157333247, + "venv/lib/python3.13/site-packages/numpy/f2py/common_rules.pyi": 2104100025130695295, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling.py": 18221459425751198218, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_unsupported.py": 9115440166074553860, + "venv/lib/python3.13/site-packages/websockets/headers.py": 13587146967490088657, + "venv/lib/python3.13/site-packages/pygments/lexers/gleam.py": 5161116162065925222, + "venv/lib/python3.13/site-packages/pygments/lexers/elpi.py": 5736689911777977822, + "frontend/build/_app/env.js": 8815854342083926790, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_character.py": 850554362222586199, + "venv/lib/python3.13/site-packages/bcrypt/_bcrypt.abi3.so": 8691731321358529264, + "venv/lib/python3.13/site-packages/numpy/lib/_arraysetops_impl.py": 5583478355093966990, + "venv/lib/python3.13/site-packages/bcrypt/__init__.py": 11415155211917181362, + "venv/lib/python3.13/site-packages/pandas/core/generic.py": 10174952306641057447, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_insert.py": 6970975909565157982, + "venv/lib/python3.13/site-packages/referencing/tests/test_retrieval.py": 10782087416909177703, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_polynomial.py": 777287409151500309, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/test_transform.py": 5674175311567817854, + "frontend/src/lib/stores/__tests__/mocks/env_public.js": 2540122820969872185, + "venv/lib/python3.13/site-packages/numpy/__init__.pxd": 13527602429695748857, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_tz_convert.py": 17957207974799052653, + "frontend/build/_app/immutable/chunks/1jzJINoE.js": 5138497638450462989, + "backend/src/services/clean_release/report_builder.py": 6953311294119437848, + "venv/lib/python3.13/site-packages/pandas/core/strings/object_array.py": 17631047188839635539, + "venv/lib/python3.13/site-packages/pycparser/ast_transforms.py": 9032453625977464506, + "backend/alembic/versions/ed310b33f02c_multi_language_translation_tables.py": 1424919631205944664, + "venv/lib/python3.13/site-packages/numpy/ma/__init__.py": 214772578978182427, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_os.h": 7883047506449405400, + "venv/lib/python3.13/site-packages/pyasn1/codec/cer/decoder.py": 17559787396729804535, + "venv/lib/python3.13/site-packages/anyio/_backends/_asyncio.py": 10265081145401348863, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_constructors.py": 11786151805350138436, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/METADATA": 3044554568188160018, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_api.py": 6439927798101672423, + "frontend/src/lib/components/layout/Sidebar.svelte": 8588237337148619706, + "venv/lib/python3.13/site-packages/websockets/sync/messages.py": 15699091325918681038, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/common.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py": 1246582552828542841, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/common.py": 11384497819737275399, + "venv/lib/python3.13/site-packages/PIL/PngImagePlugin.py": 5076219228736706283, + "venv/lib/python3.13/site-packages/authlib/oidc/discovery/__init__.py": 308178910015974550, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/markers.py": 5247208668583898949, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_stack_unstack.py": 3737891757817696405, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_deprecations.py": 6015734648984591027, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/json.py": 15373167408891671190, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_numpy_array_equal.py": 2089426719574307767, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/base.py": 16891437410462671317, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_partial_slicing.py": 15567512240469921599, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/token_validator.py": 2932866595454490527, + "venv/lib/python3.13/site-packages/uvicorn/loops/auto.py": 13086005977087619545, + "backend/git_repos/remote/test-repo.git/objects/a7/49f11fad695dff77faf1708c7320867d0be1df": 4641609158325033031, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/candidates.py": 5951912505933673835, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/websockets/speedups.cpython-313-x86_64-linux-gnu.so": 10941658763526595989, + "venv/lib/python3.13/site-packages/pydantic/deprecated/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/accessors.py": 12743680296510533030, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath_accuracy.py": 3904008607472505376, + "venv/lib/python3.13/site-packages/numpy/lib/_format_impl.pyi": 15745512451486888537, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/pg_catalog.py": 15726448028057859831, + "venv/lib/python3.13/site-packages/cryptography/__about__.py": 10471312538528457144, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_assignability.pyi": 1718610984396277997, + "venv/lib/python3.13/site-packages/passlib/utils/compat/_ordered_dict.py": 14248790502300368024, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/fastapi/datastructures.py": 727178955746650271, + "venv/lib/python3.13/site-packages/pip/_vendor/distro/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_normalize.py": 3203921571999101793, + "venv/lib/python3.13/site-packages/pandas/core/computation/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/typing_inspection-0.4.2.dist-info/RECORD": 8971487317739420905, + "venv/lib/python3.13/site-packages/greenlet/TMainGreenlet.cpp": 9489520001674089404, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/__init__.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_get.py": 6509102681661636928, + "venv/lib/python3.13/site-packages/smmap/test/test_util.py": 5634593621291240094, + "venv/lib/python3.13/site-packages/keyring/backends/libsecret.py": 11621088556661567306, + "venv/lib/python3.13/site-packages/numpy/_utils/_convertions.pyi": 362674842164060822, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/RECORD": 4487477737768669516, + "venv/lib/python3.13/site-packages/pip/_vendor/distro/__init__.py": 11414161642984633362, + "venv/lib/python3.13/site-packages/pandas/core/computation/engines.py": 1889823242704769952, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/errors.py": 2147619440137604907, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_count.py": 9186538441380080087, + "venv/lib/python3.13/site-packages/pydantic/_internal/_validators.py": 2939255306814626438, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_setitem.py": 14920902525192671548, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_sas7bdat.py": 8963983384208121526, + "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/METADATA": 8128818962678047497, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/__init__.py": 8558541715982163200, + "venv/lib/python3.13/site-packages/authlib/jose/__init__.py": 317573635113539563, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/parameters.py": 5104015814292812973, + "venv/lib/python3.13/site-packages/numpy/ma/testutils.py": 9355402483340137461, + "venv/lib/python3.13/site-packages/more_itertools/__init__.py": 9858612105173082060, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_utils.py": 8668650648802195016, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py": 9623344347519683527, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/numerictypes.pyi": 15565573472138344755, + "venv/lib/python3.13/site-packages/gitdb/utils/encoding.py": 1668793658272579497, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_legendre.py": 18266595775500927868, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_custom_dtypes.py": 12322100282959605055, + "venv/lib/python3.13/site-packages/numpy/matlib.pyi": 8017902013455539981, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/np_datetime.pyi": 2884703536776830012, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_datetimelike.py": 15246580603900811749, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_finalize.py": 12539815426478689538, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/providers.py": 7267821734584612032, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_json_table_schema_ext_dtype.py": 13021437050542691118, + "venv/lib/python3.13/site-packages/pandas/_typing.py": 17795648994662434211, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/period.cpython-313-x86_64-linux-gnu.so": 14468234464367691795, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_week.py": 5756727157937218128, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7592/endpoint.py": 18260428408051728802, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/generate_umath_validation_data.cpp": 10880681943327843928, + "venv/lib/python3.13/site-packages/sqlalchemy/connectors/pyodbc.py": 4146960201984489604, + "venv/lib/python3.13/site-packages/cffi/cparser.py": 5246372077864988755, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/rapidfuzz/process_cpp.py": 16797760903996739079, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_string.py": 10141066226714805009, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_replace.py": 15992095120302643273, + "venv/lib/python3.13/site-packages/pip/_internal/network/download.py": 5256731341219268693, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/__init__.py": 14481526616887213120, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_sparse_accessor.py": 6774374030220202353, + "venv/lib/python3.13/site-packages/numpy/core/einsumfunc.py": 3484247123731380377, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_is_monotonic.py": 4626065848596214108, + "venv/lib/python3.13/site-packages/yaml/cyaml.py": 9157893742065554693, + "venv/lib/python3.13/site-packages/_pytest/doctest.py": 6126919596776592278, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_constructors.py": 12628643543371952431, + "venv/lib/python3.13/site-packages/git/objects/fun.py": 15014209679156260865, + "venv/lib/python3.13/site-packages/pygments/lexers/templates.py": 16267123844830647955, + "venv/lib/python3.13/site-packages/_pytest/legacypath.py": 7512065138259788426, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_coercion.py": 3551994404797560483, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE": 13479831069780783137, + "frontend/src/lib/components/layout/Breadcrumbs.svelte": 10874106485242690185, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_warnings.py": 13071210233876253749, + "venv/lib/python3.13/site-packages/numpy/polynomial/hermite_e.py": 3654583356259850174, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/period.pyi": 13110894861187422750, + "venv/lib/python3.13/site-packages/httpcore/_backends/base.py": 5491727479625093183, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/url.py": 1558176735588971829, + "venv/lib/python3.13/site-packages/PIL/_binary.py": 14039167720582222043, + "venv/lib/python3.13/site-packages/pygments/styles/colorful.py": 15708848112363953394, + "venv/lib/python3.13/site-packages/pygments/lexers/python.py": 8995519134978505744, + "venv/lib/python3.13/site-packages/pygments/lexers/ml.py": 7510453371068494792, + "venv/lib/python3.13/site-packages/pandas/io/excel/__init__.py": 6662687963241471393, + "venv/lib/python3.13/site-packages/PIL/GimpPaletteFile.py": 2040459799887417392, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/abc.py": 6227782083136374888, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/padding.py": 7470483648602195268, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/transform/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/yaml/events.py": 745772917931702910, + "venv/lib/python3.13/site-packages/git/repo/__init__.py": 6173604284490891047, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz.pyi": 7410507092040239447, + "venv/lib/python3.13/site-packages/pluggy/_version.py": 7195758686717994475, + "venv/lib/python3.13/site-packages/gitdb/db/base.py": 3375449584942578385, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/endpoint.py": 13389763148720370546, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/limited_api/meson.build": 8784756284679859367, + "venv/lib/python3.13/site-packages/pandas/core/window/doc.py": 4204367435727844696, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_asof.py": 17616601748321325187, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/RECORD": 8956798822782402202, + "venv/lib/python3.13/site-packages/pygments/styles/monokai.py": 12381683616720952636, + "backend/src/plugins/llm_analysis/service.py": 11342659046054748840, + "venv/lib/python3.13/site-packages/fastapi/responses.py": 6092572095549573593, + "venv/lib/python3.13/site-packages/iniconfig/_version.py": 8497474654470220170, + "venv/lib/python3.13/site-packages/typing_inspection/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/jeepney/io/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/jsonschema/cli.py": 9813914882090789748, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/masked_reductions.py": 633644255158859565, + "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_digest.py": 7988469818593853943, + "venv/lib/python3.13/site-packages/numpy/ma/__init__.pyi": 1855615156913010107, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_timedelta.py": 17052461094717926538, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_datetime.py": 13781712980921881470, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/conftest.py": 12368472226536104037, + "venv/lib/python3.13/site-packages/numpy/lib/_npyio_impl.py": 2215312866861772848, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_extract.py": 14547819021277949280, + "venv/lib/python3.13/site-packages/urllib3/connection.py": 12761371748350595804, + "venv/lib/python3.13/site-packages/pygments/lexers/perl.py": 17014528337020572681, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL": 18203500019759199992, + "frontend/src/routes/datasets/__tests__/bulk_actions.test.js": 8445672988319354987, + "frontend/src/routes/datasets/review/review-workspace-helpers.js": 8577563379877694502, + "frontend/src/routes/settings/git/+page.svelte": 16236142639181206770, + "frontend/src/services/gitService.js": 7044825476968825357, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/auth.py": 13542332344403032059, + "venv/lib/python3.13/site-packages/pygments/lexers/clean.py": 17772169928835025327, + "backend/src/scripts/__init__.py": 5400372851656282343, + "venv/lib/python3.13/site-packages/pandas/tests/config/test_config.py": 4630144191929135452, + "venv/lib/python3.13/site-packages/fastapi/types.py": 3867821246650502267, + "backend/src/schemas/health.py": 13764741380188041840, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_copy.py": 3114918520437707410, + "venv/lib/python3.13/site-packages/greenlet/TExceptionState.cpp": 17617354576371846109, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro.py": 183817263146423033, + "venv/lib/python3.13/site-packages/numpy/core/_multiarray_umath.py": 10973016138581934035, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/flatiter.py": 3066469329738423021, + "venv/lib/python3.13/site-packages/numpy/_core/memmap.pyi": 14124415711399771715, + "venv/lib/python3.13/site-packages/_pytest/junitxml.py": 5871715626272366062, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_series_apply.py": 12349190935180702377, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0": 7322566017497612912, + "venv/lib/python3.13/site-packages/pygments/lexers/trafficscript.py": 776604244051744646, + "venv/lib/python3.13/site-packages/psycopg2/_psycopg.cpython-313-x86_64-linux-gnu.so": 13471342289207537479, + "backend/src/core/superset_client/_dashboards_write.py": 17812522156399945730, + "backend/src/plugins/translate/orchestrator_exec.py": 16278134717094910089, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/char.f90": 12203871998988759364, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/token.py": 6987328478153445584, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/core/multiarray.py": 18368443598659711836, + "venv/lib/python3.13/site-packages/pandas/_config/localization.py": 11197430792343731762, + "venv/lib/python3.13/site-packages/numpy/ctypeslib/__init__.pyi": 13208953770241664384, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/INSTALLER": 17282701611721059870, + "frontend/src/lib/components/reports/__tests__/report_type_profiles.test.js": 498330292141991614, + "frontend/src/lib/components/health/HealthMatrix.svelte": 13165441444996153191, + "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/METADATA": 14543822270526146783, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_timezones.py": 15157687716502574038, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/mercurial.py": 335201628064585213, + "venv/lib/python3.13/site-packages/greenlet/tests/test_gc.py": 6383305344377882524, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/filepost.py": 16698380375728063923, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_sort.py": 11941630642630249576, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py": 6067836157632573182, + "venv/lib/python3.13/site-packages/numpy/lib/_histograms_impl.pyi": 6534825471013879522, + "venv/lib/python3.13/site-packages/rsa/pkcs1_v2.py": 3533398238491175229, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_year.py": 17441853503700184299, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/INSTALLER": 17282701611721059870, + "frontend/build/_app/immutable/chunks/CTzDW2Lk.js": 14040680713815065540, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_structures.py": 16375837477294135345, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/RECORD": 1556051687830913019, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/nattype.cpython-313-x86_64-linux-gnu.so": 2311012065007769341, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_inspect.py": 10573558345297891848, + "venv/lib/python3.13/site-packages/attr/filters.pyi": 13942974755090135724, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_sparse.py": 14343335524508450058, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/declarative/__init__.py": 2436195108273216959, + "backend/src/schemas/dataset_review.py": 15720223123457526104, + "backend/src/core/auth/__tests__/test_auth.py": 9487323693897023350, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_gcs.py": 7733247456252965901, + "backend/src/core/async_superset_client.py": 5842980152216372100, + "backend/src/services/profile_service.py": 7430451608615934464, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_docs.py": 17898499890274685198, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/oauth2_client.py": 6742098857947604729, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/RECORD": 12575893084587070195, + "venv/lib/python3.13/site-packages/pydantic/typing.py": 6661252174518316760, + "venv/lib/python3.13/site-packages/annotated_types/test_cases.py": 5123395674810472016, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/tzconversion.pyi": 10947021928755741366, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_setitem.py": 15731267129055947469, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_constructors.py": 6440526981746306640, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/RECORD": 16558021503346615951, + "venv/lib/python3.13/site-packages/pygments/lexers/d.py": 18120801227801223376, + "frontend/public/vite.svg": 13568221685541582385, + "frontend/tailwind.config.js": 13139381085024634801, + "venv/lib/python3.13/site-packages/jsonschema_specifications/tests/test_jsonschema_specifications.py": 12693210357718751894, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/__main__.py": 11917862648584782420, + "venv/lib/python3.13/site-packages/numpy/lib/_stride_tricks_impl.py": 5260748170237305627, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/json.py": 14755215397454910426, + "frontend/src/lib/components/layout/__tests__/test_sidebar.svelte.js": 1424894894434906249, + "venv/lib/python3.13/site-packages/pandas/io/excel/_xlsxwriter.py": 16873939324418752965, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/build_tracker.py": 9389444024234384408, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/putmask.py": 10934101690788549526, + "venv/lib/python3.13/site-packages/apscheduler/events.py": 10748346950729364899, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-expm1.csv": 8710594949902856122, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/test_round.py": 7912161077874611432, + "frontend/src/services/taskService.js": 11368052191249479533, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi": 2777456956260371820, + "frontend/build/_app/immutable/chunks/7p8qW0H9.js": 8406910162058460039, + "frontend/src/components/git/GitInitPanel.svelte": 3002620133377315800, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py": 14995426099932276090, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_concat.py": 10207975532842927134, + "venv/lib/python3.13/site-packages/numpy/testing/tests/test_utils.py": 5291132432383518704, + "venv/lib/python3.13/site-packages/pygments/lexers/bqn.py": 11823648528816858738, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/__init__.py": 11121941644106061453, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg2cffi.py": 5997687240967250164, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_apply.py": 8103417303073393969, + "frontend/src/components/backups/BackupList.svelte": 14417854869668960310, + "venv/lib/python3.13/site-packages/cryptography/hazmat/asn1/asn1.py": 8801155055979135092, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_polynomial.pyi": 4266795948450921502, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/core.py": 2199607970842512780, + "venv/lib/python3.13/site-packages/pandas/_testing/_io.py": 14264259716673715185, + "venv/lib/python3.13/site-packages/pygments/lexers/iolang.py": 10997512999728724130, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated": 11193150813314469394, + "venv/lib/python3.13/site-packages/numpy/f2py/__version__.pyi": 9759534743796867731, + "venv/lib/python3.13/site-packages/PIL/ImageTransform.py": 7825940907094338808, + "backend/src/api/routes/__init__.py": 8298072528454936676, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/mt19937-testset-2.csv": 14641856424618845798, + "venv/lib/python3.13/site-packages/pip/_internal/self_outdated_check.py": 991029278889407558, + "venv/lib/python3.13/site-packages/pandas/tests/strings/__init__.py": 5060190599837877599, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/licenses/AUTHORS": 2987771679926243782, + "backend/src/plugins/translate/service_datasource.py": 10240814407336170041, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_reindex.py": 12459492712890114705, + "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/okp_key.py": 10312614562914096039, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/common_with_division.f": 13517753924061311074, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/astype.py": 9925183787411796679, + "venv/lib/python3.13/site-packages/pluggy/_tracing.py": 7276210024011809655, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_cython_aggregations.py": 10818895573637904764, + "venv/lib/python3.13/site-packages/cffi/verifier.py": 8473599757770867754, + "venv/lib/python3.13/site-packages/pandas/_libs/index.cpython-313-x86_64-linux-gnu.so": 18409579812171549318, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_types.py": 7175518113263603341, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi": 11455144434558323236, + "venv/lib/python3.13/site-packages/pandas/core/groupby/generic.py": 4857114071347950833, + "backend/src/plugins/git_plugin.py": 2313306594758409833, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_args_and_kwargs.py": 3381939712123764154, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_loc.py": 2127584756555503873, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/base_server.py": 9643197259080504542, + "venv/lib/python3.13/site-packages/_pytest/capture.py": 17850967053989495422, + "frontend/build/_app/immutable/nodes/38.lN6lyang.js": 10345064950322542935, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_update_delete.py": 1317337950621091021, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_to_offset.py": 3929599794655343911, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh22648.pyf": 15094859289098837494, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/control.py": 2034518223411945438, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/npyio.pyi": 15811156298637131744, + "venv/lib/python3.13/site-packages/pandas/core/internals/managers.py": 13547912653290063698, + "venv/lib/python3.13/site-packages/pandas/tests/test_expressions.py": 16378925536309828288, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_parsing.py": 2228959015420278458, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/__init__.py": 15130871412783076140, + "backend/src/core/superset_client/_datasets_preview.py": 12644037069207561202, + "venv/lib/python3.13/site-packages/pandas/util/_tester.py": 1033951890304257539, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_map.py": 6556132946198785761, + "backend/src/models/dataset_review_pkg/_semantic_models.py": 3910791744304398663, + "frontend/src/lib/utils/debounce.js": 16884470786640632815, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/assignOnlyModule.f90": 15967199601254912096, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/websockets_impl.py": 15673691977157706075, + "backend/tests/test_translate_corrections.py": 1228642484417924184, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/RECORD": 5169907629260560698, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/qt.py": 12828696264909048448, + "venv/lib/python3.13/site-packages/numpy/strings/__init__.pyi": 6213864891045042045, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/events.py": 10224214051422678828, + "venv/lib/python3.13/site-packages/pandas/plotting/__init__.py": 13230487326686617492, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_arithmetic.py": 15071337112968886738, + "backend/src/core/plugin_base.py": 11649432288706102843, + "venv/lib/python3.13/site-packages/cryptography/exceptions.py": 5173540025160237758, + "frontend/src/lib/stores/sidebar.js": 8409084311045055153, + "backend/src/api/routes/__tests__/test_assistant_authz.py": 13343271902390197049, + "backend/git_repos/remote/test-repo.git/refs/heads/feature/test": 7714224145564125988, + "venv/lib/python3.13/site-packages/pip/_internal/models/candidate.py": 3099785363867247334, + "venv/lib/python3.13/site-packages/keyring/compat/properties.py": 1562771115138037410, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_mem_policy.py": 13856626567322091253, + "venv/lib/python3.13/site-packages/PIL/ImtImagePlugin.py": 17599267755504817169, + "venv/lib/python3.13/site-packages/jsonschema_specifications/__init__.py": 5732822354953774657, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE.BSD": 16833702494864671773, + "venv/lib/python3.13/site-packages/git/refs/reference.py": 2038789918710608481, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_direct.py": 12680113511641199070, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_recfunctions.py": 16014503284544747867, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/RECORD": 1051307407005554409, + "venv/lib/python3.13/site-packages/sqlalchemy/util/__init__.py": 15821192733097665649, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/__init__.py": 16146480198665866916, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py": 14571251344510763303, + "venv/lib/python3.13/site-packages/fastapi/logger.py": 11590581556317053213, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.cpython-313-x86_64-linux-gnu.so": 12776951671822017500, + "venv/lib/python3.13/site-packages/pip/_internal/commands/show.py": 11839987586497822300, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reset_index.py": 14490875921264161445, + "venv/lib/python3.13/site-packages/attr/_config.py": 1864824728504480204, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/io.py": 11072022722163954973, + "frontend/build/_app/immutable/nodes/23.y3ghKhH-.js": 13434006313990484006, + "venv/lib/python3.13/site-packages/pygments/lexers/textfmts.py": 17438453283146671997, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/sum_.py": 7062070517544958546, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_polybase.pyi": 3404315099794022355, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_arithmetic.py": 16829312896275893002, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/starlette/applications.py": 13591448461234020757, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/events.py": 15099787454570172797, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/util.py": 4890614159013873000, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/registry.py": 13306388361671753373, + "venv/lib/python3.13/site-packages/ecdsa/test_malformed_sigs.py": 2606295770491528880, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_datetimelike.py": 5317270578347271174, + "venv/lib/python3.13/site-packages/pygments/token.py": 6987328478153445584, + "backend/src/core/superset_client/_dashboards_crud.py": 8511586546743986158, + "frontend/src/routes/settings/settings-utils.js": 1940619437304867415, + "backend/git_repos/remote/test-repo.git/objects/59/3a37acec7d2bddce10df90ab17bc9ede52e523": 1117161574576783985, + "venv/lib/python3.13/site-packages/referencing/exceptions.py": 2535322334430110414, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame.py": 16757570551941104401, + "venv/lib/python3.13/site-packages/pandas/core/arrays/_arrow_string_mixins.py": 16862663427780315543, + "frontend/build/_app/immutable/entry/app.B3VIvO3J.js": 430434855117608941, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/LICENSE": 14599279238716790189, + "venv/lib/python3.13/site-packages/_pytest/hookspec.py": 387790426108810884, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/wheel_editable.py": 14352954849821931255, + "venv/lib/python3.13/site-packages/pip/_internal/req/__init__.py": 12266077985828139928, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/scalars.pyi": 17683675356659300769, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/mypy.ini": 4763385838822685881, + "venv/lib/python3.13/site-packages/pandas/core/tools/datetimes.py": 13313374952742129866, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/provision.py": 13156893203444936309, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_getitem.py": 18202683049446557047, + "venv/lib/python3.13/site-packages/pygments/formatters/_mapping.py": 13335227913146542481, + "frontend/build/_app/immutable/nodes/33.Aj1tQ4W1.js": 1594581007913482648, + "venv/lib/python3.13/site-packages/pip/_internal/models/direct_url.py": 4619204214785230341, + "venv/lib/python3.13/site-packages/PIL/ExifTags.py": 6869879826623916830, + "venv/lib/python3.13/site-packages/pandas/core/apply.py": 17080038932032802984, + "venv/lib/python3.13/site-packages/pandas/tests/resample/conftest.py": 1643522609234951699, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_drop.py": 15751236355035730554, + "venv/lib/python3.13/site-packages/jsonschema/tests/_suite.py": 6307666366417438489, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/binding.py": 17078280153372356796, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/traceback.py": 2535227583726271746, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_year.py": 1478857009124807836, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_complex.py": 12963449957363121481, + "venv/lib/python3.13/site-packages/requests/__init__.py": 2604491098990438229, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libsasl2-883649fd.so.3.0.0": 13306917506408577991, + "venv/lib/python3.13/site-packages/numpy/tests/test_public_api.py": 11741922758622705449, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/html_table.tpl": 17198355067645888735, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_decimal.py": 3515468590005709183, + "venv/lib/python3.13/site-packages/pygments/lexers/devicetree.py": 9820277168995231927, + "venv/lib/python3.13/site-packages/greenlet/_greenlet.cpython-313-x86_64-linux-gnu.so": 6036818030377883416, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/flatiter.pyi": 6885824496927786205, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_interval.py": 2911379732293827726, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh24662.f90": 4241310200087270990, + "venv/lib/python3.13/site-packages/pygments/lexers/pddl.py": 9256112535059995841, + "venv/lib/python3.13/site-packages/numpy/_core/_exceptions.py": 5570375156851166818, + "venv/lib/python3.13/site-packages/itsdangerous/url_safe.py": 13454753900702274266, + "venv/lib/python3.13/site-packages/pygments/lexers/whiley.py": 218468511185731869, + "frontend/src/lib/components/translate/TranslationMetricsDashboard.svelte": 8577281635452165836, + "venv/lib/python3.13/site-packages/anyio/to_interpreter.py": 8369454842687342401, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/util.py": 387985965709546512, + "venv/lib/python3.13/site-packages/fastapi/middleware/trustedhost.py": 4285622102799027823, + "venv/lib/python3.13/site-packages/pydantic_core/core_schema.py": 8106298745123589494, + "backend/src/api/routes/dashboards/_action_routes.py": 11814954258886577640, + "frontend/playwright-report/trace/uiMode.C2Efnu2P.js": 2717171022864487300, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_odf.py": 15484940480924122966, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/win64python2.npy": 11005857803794805939, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/basereload.py": 14479857245734482609, + "venv/lib/python3.13/site-packages/pip/_internal/network/session.py": 293771075394156394, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/pager.py": 18072372651585577904, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timestamps.cpython-313-x86_64-linux-gnu.so": 13209491675968970365, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py": 2042509334195547606, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/distributions.h": 17162252287980242413, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_first_valid_index.py": 15763400665851423183, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/more_itertools/more.pyi": 4844596605492825806, + "venv/lib/python3.13/site-packages/numpy/_core/_exceptions.pyi": 3661113433078225952, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_get_dummies.py": 14871264482622327003, + "venv/lib/python3.13/site-packages/pygments/formatters/img.py": 18230180171537565208, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_shift.py": 9952689832827833247, + "frontend/src/lib/components/MaintenanceEventsTable.svelte": 1697386217337210174, + "backend/tests/services/dataset_review/test_superset_matrix.py": 5114797134613078913, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_generic.py": 1297407268239966429, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein_py.py": 11350239659973489646, + "backend/src/services/reports/report_service.py": 17586405613867657190, + "backend/src/core/task_manager/__init__.py": 15991802770215124472, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_meson.pyi": 2101854548535776875, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/etcd.py": 4078354986605069279, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_between_time.py": 14266333058913745751, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/models.py": 3567900447243180991, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/requirements.py": 11478648568700804705, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/METADATA": 732041908491732594, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/box.py": 14303526978791498662, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/_serialization.py": 2011519400081029270, + "venv/lib/python3.13/site-packages/greenlet/tests/test_generator_nested.py": 12822240347707346718, + "venv/lib/python3.13/site-packages/dotenv/__init__.py": 15464030923609356017, + "backend/src/api/routes/assistant/_routes.py": 438564212453429233, + "backend/src/services/notifications/__tests__/test_notification_service.py": 5767450314963603475, + "venv/lib/python3.13/site-packages/numpy/random/_pcg64.pyi": 14785496840737986355, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_manylinux.py": 12272275001961360101, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_take.py": 14969455660160053080, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_color.py": 3700828402084646308, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/RECORD": 17594742868855466393, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_dml_constructors.py": 4497038002189188311, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mariadb.py": 3109042476851791996, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_masm.obj": 11967637259540485652, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/shape.py": 13410030168622484801, + "venv/lib/python3.13/site-packages/pygments/lexers/fortran.py": 6859638690245583968, + "frontend/build/_app/immutable/chunks/CuzmfnQu.js": 4320326097426684598, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_unary.py": 2573825678342936734, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/_re.py": 1296579393600719224, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arraypad.py": 4907193085512342162, + "venv/lib/python3.13/site-packages/pydantic/deprecated/copy_internals.py": 1245428320513062166, + "backend/git_repos/remote/test-repo.git/objects/71/47ad0836409b35c1650dddf5fa6329ba61a824": 16601919569600972016, + "venv/lib/python3.13/site-packages/numpy/matrixlib/defmatrix.py": 4940170059946018356, + "frontend/src/routes/reports/+page.svelte": 17831076184881844976, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_to_numpy.py": 14845850776625255794, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_astype.py": 8633811117672837999, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/RECORD": 12555714734722889695, + "venv/lib/python3.13/site-packages/idna/core.py": 7725813731640753267, + "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension.cpython-313-x86_64-linux-gnu.so": 1211491156495529145, + "venv/lib/python3.13/site-packages/keyring/errors.py": 4587094338672775040, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/__init__.py": 6327819603201859020, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_three_greenlets.py": 10923534235697247269, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/random/_philox.cpython-313-x86_64-linux-gnu.so": 9916143171057774705, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_common.py": 2265736743367879051, + "venv/lib/python3.13/site-packages/pip/__main__.py": 574438877257676911, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/__init__.py": 2246704695838251846, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_missing.py": 3991199131191840903, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ufuncobject.h": 5112456258078662871, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/decl_base.py": 8678387511873412922, + "frontend/src/lib/api/translate/__tests__/test-target-schema.test.js": 2329724860725977662, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/tornado.py": 6491136785917169991, + "venv/lib/python3.13/site-packages/pandas/tseries/__init__.py": 2648641118117738895, + "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/WHEEL": 8600534672961461758, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_setops.py": 16240008859650640717, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/well_known.py": 7183795183137931709, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_array.py": 16867692337986161626, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/jwe.py": 10478268710546063196, + "venv/lib/python3.13/site-packages/pandas/_libs/ops_dispatch.cpython-313-x86_64-linux-gnu.so": 5284769758475394095, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_fillna.py": 9297637486401098611, + "venv/lib/python3.13/site-packages/pandas/core/groupby/groupby.py": 5536922766239875007, + "venv/lib/python3.13/site-packages/cryptography/hazmat/__init__.py": 6534110674636458866, + "venv/lib/python3.13/site-packages/pillow.libs/libharfbuzz-0692f733.so.0.61230.0": 23110287346167671, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_nditer.py": 8341339612899904236, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/array_constructors.py": 6727209833819502644, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS": 17022185907188244883, + "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension.c": 9318655518998644962, + "venv/lib/python3.13/site-packages/sqlalchemy/__init__.py": 9751988289698484530, + "venv/lib/python3.13/site-packages/PIL/IcoImagePlugin.py": 14483964191652228364, + "venv/lib/python3.13/site-packages/anyio/_core/_tasks.py": 14104828341875599130, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi": 13850254283540522444, + "venv/lib/python3.13/site-packages/pygments/lexers/lisp.py": 11872331622183590758, + "venv/lib/python3.13/site-packages/pygments/formatter.py": 11156733836937309465, + "venv/lib/python3.13/site-packages/pandas/core/strings/__init__.py": 13025387151657797130, + "venv/lib/python3.13/site-packages/anyio/abc/__init__.py": 11428476337116642278, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_astype.py": 6578539240745332772, + "venv/lib/python3.13/site-packages/ecdsa/test_keys.py": 17117188373419689467, + "venv/lib/python3.13/site-packages/python_multipart/__init__.py": 10290895261363712562, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/__init__.py": 2397613800206300456, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_unary.py": 7128845965976836334, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-cbrt.csv": 8929553891827331780, + "venv/lib/python3.13/site-packages/PIL/AvifImagePlugin.py": 1872412416505003364, + "venv/lib/python3.13/site-packages/pygments/plugin.py": 18006138132596504101, + "venv/lib/python3.13/site-packages/pydantic/v1/decorator.py": 6124748023704700724, + "venv/lib/python3.13/site-packages/numpy/core/umath.py": 4476812261188108155, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi": 1065808244870331598, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_timedeltas.py": 1175883320586860493, + "venv/lib/python3.13/site-packages/numpy/_core/einsumfunc.py": 11393954913234866059, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/type_check.pyi": 1599910480066368464, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/AUTHORS": 10073225185964928425, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_combine_first.py": 3100691245280812910, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_common.py": 9097104320321411408, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_nlargest.py": 14518132768753249360, + "venv/lib/python3.13/site-packages/git/index/util.py": 5022401275553420722, + "frontend/e2e/helpers/api.helper.js": 12740720187461301874, + "backend/src/models/dataset_review_pkg/__init__.py": 17789694606496652579, + "venv/lib/python3.13/site-packages/pandas/core/indexes/interval.py": 17965911911189276907, + "backend/tests/test_task_persistence.py": 1764267414712263025, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/generator_pcg64_np121.pkl.gz": 4708588000144933291, + "frontend/src/services/storageService.js": 14408290095426695791, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_index_col.py": 17604191644943383567, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_series.py": 16418555817529711079, + "frontend/src/components/llm/ProviderConfig.svelte": 10989619989953706954, + "venv/lib/python3.13/site-packages/git/objects/__init__.py": 2110615482320355676, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_sql.py": 3901697517087276687, + "backend/src/api/routes/__tests__/test_profile_api.py": 1724401885939803766, + "backend/git_repos/remote/test-repo.git/objects/ae/8d2f5dec5d421b2d6cc1eebaad6d2ef901a90d": 15877648001251681939, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_value_counts.py": 13270420637302622174, + "backend/test_app.db": 2486636812009447051, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/commands/debug.py": 13528633965821062950, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_api.py": 13319208721442328400, + "venv/lib/python3.13/site-packages/pandas/core/interchange/utils.py": 11401792151107207834, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/charset_normalizer-3.4.4.dist-info/RECORD": 11788532857617688351, + "frontend/build/_app/immutable/nodes/37.qmsMPGgB.js": 3325998617833460603, + "venv/lib/python3.13/site-packages/rapidfuzz/__pyinstaller/test_rapidfuzz_packaging.py": 5189055608193366093, + "backend/src/api/routes/assistant/_resolvers.py": 6365921685100086434, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py": 16768579082462294745, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/methods.py": 8059372834301557565, + "venv/lib/python3.13/site-packages/attrs/setters.py": 5775359015245600592, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_2_compat.h": 6512969159139431485, + "venv/lib/python3.13/site-packages/pandas/_libs/algos.cpython-313-x86_64-linux-gnu.so": 15706331654215762588, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/dtypes.pyi": 15114028503984522176, + "frontend/src/components/MissingMappingModal.svelte": 11264881226066623003, + "backend/src/services/dataset_review/clarification_engine.py": 13640221555439415988, + "venv/lib/python3.13/site-packages/pandas/_testing/contexts.py": 11714205921752896137, + "venv/lib/python3.13/site-packages/requests/help.py": 1885413874621672882, + "venv/lib/python3.13/site-packages/pip/_internal/locations/base.py": 7966628150470073365, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/METADATA": 1266134223155266488, + "venv/pyvenv.cfg": 2513607356761047446, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_initialstub_already_started.py": 5562030563802006923, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata.py": 2021612995853910808, + "frontend/src/lib/components/translate/TargetSchemaHint.svelte": 4679159885307545370, + "backend/src/services/auth_service.py": 17642785219801916280, + "backend/git_repos/remote/test-repo.git/refs/heads/main": 7667767390913789840, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/automap.py": 4672057253309608464, + "backend/git_repos/remote/test-repo.git/objects/79/b070ad8af7bbc12169f7660d2a7a72ec7a889a": 8153595714065675791, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_frame.py": 2169381747938271444, + "venv/lib/python3.13/site-packages/pandas/io/formats/__init__.py": 18140261896107421679, + "frontend/src/lib/stores/taskDrawer.js": 6659505033581293370, + "venv/lib/python3.13/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.2.0": 2635192149914499986, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/util.cpython-313-x86_64-linux-gnu.so": 12473903676666680134, + "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/mixed/foo.f": 5690596225005490325, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_ufunc.py": 5025605639221470838, + "venv/lib/python3.13/site-packages/gitdb/db/__init__.py": 2615504918450276693, + "venv/lib/python3.13/site-packages/numpy/random/__init__.py": 11732100564412485633, + "venv/lib/python3.13/site-packages/httpx/_multipart.py": 2181282475656908730, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/index_tricks.pyi": 6035507586990711471, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/response.py": 9594165377270752433, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_uninstall.py": 3515239440812977025, + "frontend/src/components/TaskRunner.svelte": 18014857434320509117, + "venv/lib/python3.13/site-packages/websockets/legacy/protocol.py": 762692033188392424, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/resource_protector.py": 4823504113176750140, + "venv/lib/python3.13/site-packages/packaging/specifiers.py": 2800449842990194437, + "venv/lib/python3.13/site-packages/jeepney/io/tests/test_asyncio.py": 2820168745710754136, + "frontend/build/_app/immutable/assets/0.C35F__rI.css": 18367119336440743976, + "venv/lib/python3.13/site-packages/pandas/_libs/parsers.cpython-313-x86_64-linux-gnu.so": 14134106903573638108, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_packbits.py": 7592956764084658562, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/util.py": 10640907133050862176, + "venv/lib/python3.13/site-packages/authlib/oauth2/auth.py": 8455258275234626534, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler_py.py": 16189204441438239231, + "venv/lib/python3.13/site-packages/attr/filters.py": 14156141488477438777, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libcrypto-2e26a48f.so.3": 3658133521245392852, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_halfyear.py": 587199217232946404, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/dml.py": 5340326603935367534, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/framework_integration.py": 3935346152156572025, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_searchsorted.py": 11208047646304753715, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_truncate.py": 9623613657871046837, + "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_numeric.py": 18037815278545274402, + "venv/lib/python3.13/site-packages/pygments/lexers/praat.py": 54226477748516386, + "venv/lib/python3.13/site-packages/anyio/_core/_synchronization.py": 7050001375718876608, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/websockets/asyncio/client.py": 5694225754072131767, + "venv/lib/python3.13/site-packages/pydantic/root_model.py": 20625057828723317, + "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_impl.py": 12056958946481531279, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/METADATA": 7788873460115135563, + "frontend/src/lib/components/layout/__tests__/test_breadcrumbs.svelte.js": 1250794495161202602, + "backend/src/api/routes/__tests__/test_clean_release_legacy_compat.py": 18129267641758340444, + "venv/lib/python3.13/site-packages/itsdangerous/encoding.py": 205863946173486958, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_log_render.py": 18076931145915444473, + "venv/lib/python3.13/site-packages/pygments/lexers/_postgres_builtins.py": 2383906454995727700, + "venv/lib/python3.13/site-packages/pip/_internal/models/index.py": 2839270935469791607, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-exp2.csv": 10950201682596097452, + "backend/src/api/routes/dashboards/_helpers.py": 16683849709430404975, + "backend/src/api/routes/reports.py": 5647380957044157360, + "venv/lib/python3.13/site-packages/pandas/_libs/tslib.pyi": 16170606956605100142, + "venv/lib/python3.13/site-packages/ecdsa/curves.py": 812969717084691115, + "venv/lib/python3.13/site-packages/charset_normalizer/cli/__init__.py": 9702005609966176016, + "frontend/src/components/RepositoryDashboardGrid.svelte": 14921738329941705036, + "backend/src/plugins/llm_analysis/__init__.py": 9254812131558249924, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/licenses/LICENSE": 6808958893921859106, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/testing.pyi": 9317922890783549326, + "venv/lib/python3.13/site-packages/numpy/lib/scimath.pyi": 18165025261847276375, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/mock.py": 14010776046610111182, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/unistring.py": 18037463865539157041, + "venv/lib/python3.13/site-packages/pandas/core/sample.py": 11913688303879867963, + "venv/lib/python3.13/site-packages/click/__init__.py": 9261629899056870564, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/RECORD": 8201759541483070364, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/mysqldb.py": 2138006249556140141, + "venv/lib/python3.13/site-packages/pandas/api/indexers/__init__.py": 17431573013142626187, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel.py": 17112989332785349705, + "venv/lib/python3.13/site-packages/pygments/lexers/graphics.py": 13783143864729682444, + "venv/lib/python3.13/site-packages/jsonschema/_utils.py": 14237077105384631097, + "backend/src/core/utils/superset_context_extractor/_recovery.py": 4103343657420503831, + "venv/lib/python3.13/site-packages/greenlet/greenlet_thread_support.hpp": 7773996382104849037, + "venv/lib/python3.13/site-packages/pygments/styles/pastie.py": 15784474766258831882, + "venv/lib/python3.13/site-packages/numpy/polynomial/_polytypes.pyi": 7528777458251688517, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_object.py": 9215781825358309147, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/licenses/LICENSE": 17020744174398828059, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex_table.tpl": 8706980975714184465, + "venv/lib/python3.13/site-packages/tzlocal/utils.py": 7893867974548929154, + "venv/lib/python3.13/site-packages/pandas/core/internals/concat.py": 12151675567885981464, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/factory.py": 3042005457138956499, + "venv/lib/python3.13/site-packages/pip/_internal/operations/install/__init__.py": 10456333337205488584, + "venv/lib/python3.13/site-packages/pyasn1/type/opentype.py": 340146737126677655, + "venv/lib/python3.13/site-packages/ecdsa/test_curves.py": 6577762025900435885, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_datetimeindex.py": 14816894350435545024, + "venv/lib/python3.13/site-packages/_pytest/_version.py": 4890545974654141536, + "venv/lib/python3.13/site-packages/pip/_internal/network/cache.py": 10606522397693824641, + "venv/lib/python3.13/site-packages/pygments/styles/manni.py": 11853576691280294949, + "frontend/src/routes/settings/FeaturesSettings.svelte": 14192374301379217586, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_dtypes.py": 6831042272921908068, + "backend/git_repos/remote/test-repo.git/hooks/applypatch-msg.sample": 12627299623252391515, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py": 18069619555394133945, + "backend/git_repos/remote/test-repo.git/objects/d5/0298a42699f39e4601c0aa23eab07bcb0703c7": 1966124163198751340, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/METADATA": 3474626408138844944, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23879.f90": 13174951794239860144, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/min_max_.py": 13457611930368041821, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/accesstype.f90": 877982462186396830, + "venv/lib/python3.13/site-packages/pandas/core/sparse/api.py": 9094651265692218821, + "venv/lib/python3.13/site-packages/sqlalchemy/util/topological.py": 11586868018611359415, + "venv/lib/python3.13/site-packages/greenlet/PyModule.cpp": 3464405102256525511, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_parser.py": 8145921552236189367, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_missing.py": 1963705411068820866, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_categorical.py": 18254320571347851153, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/array_constructors.pyi": 4993066609272697419, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-objarr.npz": 9481735723557962988, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7521/client.py": 17305914656270781911, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/importlib/_dists.py": 16746363359320577809, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/provider.py": 16463243654123731993, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_boxplot_method.py": 7635131059308651529, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/test_indexing.py": 2274965639578580723, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_factorize.py": 17995673140216929494, + "venv/lib/python3.13/site-packages/pip/_internal/utils/deprecation.py": 7435269308988385470, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_unary.py": 8046543893978198672, + "venv/lib/python3.13/site-packages/pip/_internal/commands/install.py": 17631777189475433503, + "venv/lib/python3.13/site-packages/attr/_make.py": 2348458829123990579, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi": 10548370574281981402, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/LICENSE": 16343563559291870811, + "venv/lib/python3.13/site-packages/pydantic/v1/_hypothesis_plugin.py": 6383299780629629080, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/einsumfunc.py": 9944042006439149561, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/util.py": 6088868370298560146, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_scalar_compat.py": 10068989979144965125, + "venv/lib/python3.13/site-packages/pip/_internal/index/__init__.py": 14829074315307489628, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_excel.py": 5467043641314706635, + "venv/lib/python3.13/site-packages/pandas/tests/io/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/yaml/constructor.py": 8731384179016992045, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/WHEEL": 8600534672961461758, + "venv/lib/python3.13/site-packages/pygments/styles/vim.py": 2621036947954523349, + "venv/lib/python3.13/site-packages/rapidfuzz/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexer.py": 3658450949169647228, + "backend/src/models/dataset_review_pkg/_finding_models.py": 7257895729340231285, + "backend/src/plugins/translate/executor.py": 15866803979457728942, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_repeat.py": 16971624301893342868, + "backend/git_repos/remote/test-repo.git/refs/heads/dev": 8596267258668462395, + "frontend/src/lib/ui/Icon.svelte": 2201964532717139995, + "venv/lib/python3.13/site-packages/pydantic/v1/main.py": 213087273729911492, + "venv/lib/python3.13/site-packages/pydantic/functional_validators.py": 5835339743072048940, + "venv/lib/python3.13/site-packages/pip/_internal/cli/req_command.py": 2887890799766730546, + "backend/src/scripts/seed_permissions.py": 17005340106913955508, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/licenses/__init__.py": 2635182244050911910, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/conftest.py": 3691712173202219606, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_reductions.py": 3575617237516305456, + "venv/lib/python3.13/site-packages/click/termui.py": 7022374827798605437, + "venv/lib/python3.13/site-packages/fastapi/__init__.py": 11054203163075417954, + "venv/lib/python3.13/site-packages/pydantic/experimental/__init__.py": 492399139963056461, + "venv/lib/python3.13/site-packages/jaraco/functools/py.typed": 15130871412783076140, + "frontend/src/routes/dashboards/[id]/components/DashboardHeader.svelte": 5572977872383619871, + "venv/lib/python3.13/site-packages/pydantic/_internal/_decorators.py": 9928398334052202841, + "backend/src/schemas/auth.py": 12332369795585412464, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_style.py": 14810883299259169406, + "venv/lib/python3.13/site-packages/greenlet/PyGreenlet.cpp": 7360124705400993707, + "venv/lib/python3.13/site-packages/numpy/_core/_multiarray_tests.cpython-313-x86_64-linux-gnu.so": 442168371609469538, + "venv/lib/python3.13/site-packages/yaml/dumper.py": 11376022992370902766, + "frontend/src/lib/components/reports/__tests__/report_detail.ux.test.js": 11878832350632571462, + "frontend/src/routes/datasets/DatasetPreview.svelte": 4250995999947659034, + "frontend/src/routes/settings/LoggingSettings.svelte": 1737218883899664063, + "venv/lib/python3.13/site-packages/_pytest/scope.py": 7603155109542903644, + "venv/lib/python3.13/site-packages/pydantic/_internal/_utils.py": 10936299012115637790, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_indexing.py": 17106010337164216722, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/descriptor_props.py": 7044852927393650707, + "venv/lib/python3.13/site-packages/dateutil/parser/isoparser.py": 18015430204844361067, + "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_impl.py": 16610770935842519289, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/WHEEL": 7314207500206292683, + "venv/lib/python3.13/site-packages/pygments/lexers/ampl.py": 4594260378653369985, + "frontend/build/_app/immutable/chunks/_Pf3rQig.js": 13183249556030654823, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_loc.py": 17839380711970027363, + "backend/src/api/routes/admin_api_keys.py": 11414236449923083206, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_openssl.py": 10446441599800965961, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/base.py": 11386927749822539057, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.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/reveal/arraysetops.pyi": 1782641795267171928, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/__init__.py": 17454177076687312424, + "venv/lib/python3.13/site-packages/numpy/_core/_ufunc_config.py": 7365943844063702766, + "venv/lib/python3.13/site-packages/pydantic/plugin/__init__.py": 16803973597469216174, + "venv/lib/python3.13/site-packages/pandas/_libs/json.pyi": 10989301892466547548, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_size.py": 16658280641516916790, + "venv/lib/python3.13/site-packages/git/objects/submodule/util.py": 8621897576747443758, + "backend/test_pat_api.py": 4206656943734821967, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg.py": 8023549900603235601, + "backend/src/plugins/llm_analysis/plugin.py": 17113713561460406867, + "backend/src/plugins/translate/orchestrator.py": 2899451611486868631, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_select.py": 7083040959665006634, + "venv/lib/python3.13/site-packages/pip/_internal/models/pylock.py": 16697828625021519459, + "backend/src/api/routes/dashboards/_detail_routes.py": 12522696473630508473, + "frontend/build/_app/immutable/chunks/DV17vNYu.js": 5906252992532056558, + "venv/lib/python3.13/site-packages/_pytest/tracemalloc.py": 5530234062530858720, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/__init__.py": 13841777369501476946, + "venv/lib/python3.13/site-packages/_pytest/_io/saferepr.py": 8025234471485188730, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/validation": 13992741783834278677, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/live_render.py": 14619617939683800204, + "venv/lib/python3.13/site-packages/rsa/common.py": 10921682819204792805, + "venv/lib/python3.13/site-packages/pandas/io/formats/excel.py": 797619981868084011, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/__init__.py": 15487893533770969571, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/WHEEL": 15858869568085970864, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_sort_values.py": 834951665649981397, + "backend/src/plugins/translate/metrics.py": 16289306156708185830, + "venv/lib/python3.13/site-packages/ecdsa/test_pyecdsa.py": 14542286382742044648, + "backend/src/api/routes/translate/_preview_routes.py": 16234500901707822839, + "venv/lib/python3.13/site-packages/fastapi/dependencies/models.py": 8626894872248212015, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_concat.py": 16549010224568175202, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py": 14216912708889351810, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_limited_api.py": 15788485008764560845, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_cpu_dispatcher.py": 2063037275809439611, + "backend/tests/test_core_scheduler.py": 2305397851769292578, + "venv/lib/python3.13/site-packages/pygments/lexers/meson.py": 14659991367778746658, + "venv/lib/python3.13/site-packages/keyring/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/_dtype_ctypes.pyi": 14543653817631274394, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/util.pyx": 649821942746469002, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py": 5324490103277723813, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_isoc.py": 4923640657296076239, + "venv/lib/python3.13/site-packages/numpy/polynomial/_polybase.pyi": 15864712173815045309, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py": 14307204206312829238, + "venv/lib/python3.13/site-packages/rpds/__init__.pyi": 12037474523494903587, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_old_ma.py": 18116460138221458026, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/ndarray_misc.py": 8706265665356094801, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_missing.py": 2976310411820303374, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__multiarray_api.h": 16138871162713175599, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/conftest.py": 16571782049241458769, + "venv/lib/python3.13/site-packages/uvicorn/loops/__init__.py": 15130871412783076140, + "backend/src/models/clean_release.py": 6080208142954589647, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/__init__.py": 1856412417337875350, + "venv/lib/python3.13/site-packages/cffi/error.py": 8147505969912539538, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_base.py": 16710163879060522196, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string.py": 3834067244989779682, + "venv/lib/python3.13/site-packages/pyasn1/codec/streaming.py": 13202773554072937140, + "backend/src/api/routes/git/_gitea_routes.py": 14644218433873522624, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_deprecations.py": 8310244516175542839, + "venv/lib/python3.13/site-packages/pygments/styles/trac.py": 13968346768164381833, + "venv/lib/python3.13/site-packages/_pytest/tmpdir.py": 10834220332037364219, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_distutils.pyi": 3595910367556664837, + "frontend/build/_app/immutable/nodes/11.AnPCb-Ut.js": 13179973353447891567, + "backend/src/services/maintenance/__init__.py": 3167476255502727608, + "backend/src/scripts/clean_release_cli.py": 5126837099976660772, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/funcfortranname.f": 9330535808093475892, + "venv/lib/python3.13/site-packages/httpcore/_async/interfaces.py": 18250473733460571816, + "backend/src/plugins/translate/dictionary_validation.py": 16674754716565921261, + "venv/lib/python3.13/site-packages/pyasn1/type/error.py": 1479878696626082697, + "backend/git_repos/remote/test-repo.git/objects/22/c0ea49cea7e5138fb91b25b1bc0e101ae6e017": 17630871400599334193, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz.py": 1094797446508902066, + "frontend/src/lib/stores/health.js": 1061942219531952418, + "venv/lib/python3.13/site-packages/pygments/lexers/automation.py": 8021926838024836904, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/interfaces.py": 5371646629319169153, + "venv/lib/python3.13/site-packages/click/exceptions.py": 9734955259447933725, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_values.py": 8372572954663628844, + "merge_spec.py": 5285945727297582371, + "venv/lib/python3.13/site-packages/idna/uts46data.py": 5698404064763638591, + "venv/lib/python3.13/site-packages/rapidfuzz/_feature_detector.py": 15458248567257759500, + "venv/lib/python3.13/site-packages/git/refs/log.py": 5175801243332619268, + "venv/lib/python3.13/site-packages/numpy/rec/__init__.pyi": 1782063765067823837, + "venv/lib/python3.13/site-packages/requests/cookies.py": 4997226307650350876, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/h11_impl.py": 1419719055394402145, + "frontend/playwright-report/data/cc5452f8d8c308a176676866ee06628a569362aa.zip": 18382826147717299104, + "backend/src/schemas/translate.py": 15939985987703420591, + "venv/lib/python3.13/site-packages/websockets/http.py": 9406523480132204760, + "venv/lib/python3.13/site-packages/rsa/prime.py": 10820898885044917095, + "backend/tests/core/test_git_service_gitea_pr.py": 6098719224379185148, + "venv/lib/python3.13/site-packages/sqlalchemy/util/deprecations.py": 7020540470348910770, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/baked.py": 6911138208603240867, + "venv/lib/python3.13/site-packages/fastapi/middleware/httpsredirect.py": 5775982317459922443, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py": 7707707044867513457, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_timezones.py": 4771674179164304731, + "venv/lib/python3.13/site-packages/uvicorn/middleware/asgi2.py": 5355343704425405009, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE.BSD": 3858254215169937333, + "venv/lib/python3.13/site-packages/pydantic/deprecated/parse.py": 819235411736647763, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_apply.py": 7511915990531229598, + "venv/lib/python3.13/site-packages/h11/_abnf.py": 10456996134895429201, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_django.py": 8455054295577203929, + "venv/lib/python3.13/site-packages/PIL/XpmImagePlugin.py": 6644626557482464312, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_randomstate.py": 11205714006000849926, + "venv/lib/python3.13/site-packages/numpy/_utils/_inspect.pyi": 17825266810219495672, + "venv/lib/python3.13/site-packages/passlib/handlers/md5_crypt.py": 7669328623914474137, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/wrapper.py": 4633931060151989960, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/mapped_collection.py": 11377280960650304531, + "frontend/playwright-report/trace/index.CzXZzn5A.css": 10367596602957476705, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/orm.py": 7554417559838785150, + "venv/lib/python3.13/site-packages/PIL/ImageFont.py": 15621336334706847865, + "frontend/build/_app/immutable/chunks/CyrRIrvE.js": 6233954911328508847, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pop.py": 14885271225856187795, + "frontend/build/_app/immutable/chunks/ZvPSSfIA.js": 7807067580962053496, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/models.py": 17870758731501836303, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/index/test_intervalindex.py": 5053113227747333759, + "venv/lib/python3.13/site-packages/fastapi/_compat/main.py": 13016492818231995760, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/oracledb.py": 7158791242292470472, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/information_schema.py": 8551227132710897346, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/default_styles.py": 4469204219504675080, + "backend/tests/core/test_mapping_service.py": 6888870177029085220, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_constructors.py": 11065058462752831997, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_as_unit.py": 8492383355919959393, + "venv/lib/python3.13/site-packages/PIL/PalmImagePlugin.py": 13008868719182630239, + "venv/lib/python3.13/site-packages/pydantic_settings/exceptions.py": 18300876747412267999, + "venv/lib/python3.13/site-packages/pip/_internal/req/constructors.py": 17485271035479378662, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_numpy.py": 222383250675686477, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_partial_indexing.py": 4132091154215910029, + "frontend/src/components/git/GitOperationsPanel.svelte": 5140779139910068800, + "venv/lib/python3.13/site-packages/numpy/lib/_user_array_impl.pyi": 7171810177801103765, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/shape.pyi": 2188930129299348535, + "frontend/src/lib/components/translate/BulkReplaceModal.svelte": 9447617465987205060, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/dml.py": 17308908394336670576, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/METADATA": 14070889071949105584, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/WHEEL": 9131187629260560775, + "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ctypeslib.pyi": 8623725566434725526, + "backend/src/services/git/_branch.py": 4560456889410483402, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_isetitem.py": 14895552405828068177, + "venv/lib/python3.13/site-packages/numpy/lib/_utils_impl.py": 13012775703413938576, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/status_codes.py": 17005213506461710202, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/test_numeric.py": 17391095502314929042, + "venv/lib/python3.13/site-packages/_pytest/warning_types.py": 10695097290648045427, + "venv/lib/python3.13/site-packages/pydantic/_internal/_validate_call.py": 4078236486720616395, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/common.py": 2075178842766962782, + "venv/bin/httpx": 6651007446865716794, + "venv/lib/python3.13/site-packages/_pytest/terminalprogress.py": 5490989904517343259, + "venv/lib/python3.13/site-packages/numpy/lib/_arrayterator_impl.py": 4037074830103951000, + "venv/lib/python3.13/site-packages/pyasn1/codec/cer/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/typing_inspection/typing_objects.py": 16856718240972376883, + "venv/lib/python3.13/site-packages/pandas/tests/libs/test_join.py": 5982692266872978444, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/methods/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_select_dtypes.py": 3530442956913622572, + "venv/lib/python3.13/site-packages/apscheduler/triggers/combining.py": 1264860868414723829, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/numeric/test_numeric.py": 9383693732009547935, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_xs.py": 11073752361562791165, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/characteristics.py": 2916810597149066609, + "venv/lib/python3.13/site-packages/git/refs/head.py": 16271128287606894569, + "backend/src/plugins/translate/__tests__/test_text_cleaner.py": 8349602354072854086, + "venv/lib/python3.13/site-packages/pygments/formatters/groff.py": 6480830447984073574, + "venv/lib/python3.13/site-packages/anyio/abc/_streams.py": 8089057973257658396, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/adapter.py": 5908944827805063108, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/ansi.py": 948249091929588017, + "venv/lib/python3.13/site-packages/six.py": 948867418687428421, + "venv/lib/python3.13/site-packages/pygments/lexers/chapel.py": 7619603166448145621, + "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_spec_conformance.py": 16448324304809345527, + "backend/src/services/clean_release/dto.py": 11031410734734770552, + "venv/lib/python3.13/site-packages/pygments/lexers/factor.py": 15788613154609197002, + "venv/lib/python3.13/site-packages/pandas/core/internals/__init__.py": 1377108808392195313, + "venv/lib/python3.13/site-packages/pillow.libs/libjpeg-32d42e18.so.62.4.0": 11717944412021329207, + "venv/lib/python3.13/site-packages/pip/_internal/locations/_distutils.py": 13559457590971821771, + "venv/lib/python3.13/site-packages/pip/_internal/wheel_builder.py": 3893922370396791826, + "venv/lib/python3.13/site-packages/pydantic_settings/py.typed": 15130871412783076140, + "backend/tests/test_dashboards_api.py": 2278794209397518464, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufuncs.pyi": 14995898537484305307, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_npfuncs.py": 13987318550267921389, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_find_replace.py": 262184394614748386, + "backend/src/models/profile.py": 6081037345174498278, + "venv/lib/python3.13/site-packages/referencing/typing.py": 8296636464219681747, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_subclass.py": 13490541871827928531, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/fromnumeric.pyi": 6708743411405679061, + "venv/lib/python3.13/site-packages/pygments/lexers/_sourcemod_builtins.py": 11809503654078535014, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/PIL/TarIO.py": 13651401276968618561, + "backend/src/services/git/_base.py": 3671238045679556094, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_shift.py": 8547819448301023303, + "venv/lib/python3.13/site-packages/numpy/lib/stride_tricks.pyi": 5879290708972838025, + "venv/lib/python3.13/site-packages/gitdb/stream.py": 3035738824550231197, + "frontend/build/_app/immutable/nodes/31.BylL8uTk.js": 7722395710886140688, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/__init__.py": 15130871412783076140, + "backend/src/plugins/translate/_run_service.py": 1705461175389858266, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/RECORD": 15865206372525596795, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/sdist.py": 9490366272695301385, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/warnings_and_errors.pyi": 9019577563960071498, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_offsets.py": 4499538899492148499, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/RECORD": 17341460504914308184, + "venv/lib/python3.13/site-packages/jeepney/bindgen.py": 7094585345946943534, + "backend/git_repos/remote/test-repo.git/objects/cf/d2dcbd55735b8cedf21e04e64ac627c6f9a458": 10982669277486885525, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby_subclass.py": 5540948578269213810, + "venv/lib/python3.13/site-packages/gitdb/utils/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/utils/urls.py": 8698341051522816167, + "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/backend.py": 9072112660082423691, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_formats.py": 12299393760307251036, + "frontend/playwright-report/trace/uiMode.Btcz36p_.css": 7361350017361398233, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_iterrows.py": 3791886201566670087, + "venv/lib/python3.13/site-packages/PIL/FitsImagePlugin.py": 618556384932056120, + "venv/lib/python3.13/site-packages/PIL/GimpGradientFile.py": 9777026720028891154, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/inout.f90": 1521999519583206538, + "venv/lib/python3.13/site-packages/numpy/random/_common.pxd": 3402284125943848851, + "venv/lib/python3.13/site-packages/_pytest/freeze_support.py": 494952714451267295, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data": 9599129816090399315, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/scripts.py": 8759605303886441976, + "backend/src/plugins/translate/preview_response_parser.py": 15690759478655959205, + "venv/lib/python3.13/site-packages/numpy/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/websockets/legacy/auth.py": 16685128086396181286, + "frontend/src/lib/ui/Button.svelte": 921807193049478213, + "frontend/build/_app/immutable/nodes/1.BHRH2YId.js": 6292738163244332451, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/comparisons.py": 7327629888601690759, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_dlpack.py": 7908102652282922952, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_ipython_compat.py": 12632271159842988561, + "venv/lib/python3.13/site-packages/dateutil/tz/__init__.py": 9617254832690762236, + "venv/lib/python3.13/site-packages/pygments/styles/xcode.py": 14124729477757765388, + "venv/lib/python3.13/site-packages/pygments/lexers/urbi.py": 1611762607688882372, + "venv/lib/python3.13/site-packages/starlette/formparsers.py": 9019779181100355515, + "frontend/src/routes/validation/history/+page.svelte": 3920288174017004134, + "frontend/src/routes/admin/settings/llm/+page.svelte": 3079157958329647867, + "venv/lib/python3.13/site-packages/pygments/lexers/_stan_builtins.py": 1961875544235948177, + "venv/lib/python3.13/site-packages/fastapi/_compat/model_field.py": 392699021682253569, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_memmap.py": 8709963808115492688, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_twodim_base.py": 17623133613018058380, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_windows_renderer.py": 1076842273781909680, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/tests/__init__.py": 13331622784664204066, + "venv/lib/python3.13/site-packages/numpy/_core/_methods.pyi": 9155045948490225716, + "venv/lib/python3.13/site-packages/numpy/tests/test_warnings.py": 3154249157134620649, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/serialize.py": 11139432164346742421, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_map.py": 32086858815359344, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_head_tail.py": 1906121476322841736, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_py_util.py": 12836989066113400538, + "venv/lib/python3.13/site-packages/pip/_internal/utils/logging.py": 9639351759822608724, + "venv/lib/python3.13/site-packages/PIL/ImageWin.py": 13635870584232081323, + "venv/lib/python3.13/site-packages/urllib3/util/util.py": 12490259045660543460, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_drop_duplicates.py": 12601598844977346213, + "venv/lib/python3.13/site-packages/pygments/filter.py": 16846063190466267618, + "frontend/src/lib/components/layout/sidebarNavigation.js": 2017502929479329787, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc64_aix.h": 8706347224105630468, + "venv/lib/python3.13/site-packages/keyring/util/__init__.py": 9635016046220094473, + "venv/lib/python3.13/site-packages/passlib/tests/tox_support.py": 9200774792427691602, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_groupby.py": 15721254196883995634, + "venv/lib/python3.13/site-packages/click/decorators.py": 2920877667855377423, + "venv/lib/python3.13/site-packages/websockets/asyncio/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/METADATA": 15888766579203341778, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/__init__.py": 8811477458865810434, + "venv/lib/python3.13/site-packages/numpy/linalg/_umath_linalg.pyi": 7674087576653964854, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_isin.py": 14387850595546682314, + "venv/lib/python3.13/site-packages/pandas/tests/libs/test_hashtable.py": 7762405492052106717, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_categorical.py": 8844412630511751140, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_quarter.py": 11099677280196239755, + "venv/lib/python3.13/site-packages/anyio/_core/_fileio.py": 4507100568401692983, + "venv/lib/python3.13/site-packages/passlib/tests/test_registry.py": 15377817946543064293, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py": 2285778903282667561, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_holiday.py": 8541197358003711845, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py": 16386268386376675175, + "venv/lib/python3.13/site-packages/pydantic/version.py": 3699343596421001359, + "venv/lib/python3.13/site-packages/pyasn1/codec/der/decoder.py": 11876648884087997745, + "venv/lib/python3.13/site-packages/rapidfuzz/_common_py.py": 15410157970973169427, + "venv/lib/python3.13/site-packages/numpy/lib/_arraypad_impl.pyi": 2186875333484796630, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_diff.py": 7420674239386436885, + "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_des.py": 7198931807116651263, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_get_numeric_data.py": 11747933921770969706, + "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/fail/arrayprint.pyi": 2424868797160722318, + "venv/lib/python3.13/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7": 17875236748140157032, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_read_errors.py": 4559483361564472117, + "venv/lib/python3.13/site-packages/pandas/io/formats/html.py": 11849941990375030601, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_unicode_ddl.py": 2569618488804767890, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/zookeeper.py": 4318643109309626098, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_isna.py": 18394053826166267096, + "venv/lib/python3.13/site-packages/pycparser/c_lexer.py": 10964496587169353564, + "venv/lib/python3.13/site-packages/pygments/formatters/pangomarkup.py": 17135620955205945255, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix.py": 4672871351134074735, + "venv/bin/uvicorn": 3776670267111625708, + "frontend/src/routes/maintenance/+page.svelte": 13247950766849520966, + "frontend/src/routes/+layout.svelte": 2748734957389681795, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/asyncmy.py": 11808138763443525443, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/JaroWinkler.py": 1341849861184131135, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/RECORD": 8104089156015954779, + "venv/lib/python3.13/site-packages/pygments/styles/coffee.py": 17584414468786822371, + "frontend/src/assets/svelte.svg": 13872699371039797074, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/_psycopg_common.py": 4111797647365870137, + "venv/lib/python3.13/site-packages/charset_normalizer/cli/__main__.py": 2148876100501691980, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/bitwise_ops.py": 14350609278188982939, + "venv/lib/python3.13/site-packages/pandas/io/formats/csvs.py": 17223598248259691292, + "venv/lib/python3.13/site-packages/pygments/lexers/elm.py": 14683437310498104916, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_store.py": 1500300322083708794, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/types.py": 15819795572817819102, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_abstract_interface.py": 17625870734108222276, + "venv/lib/python3.13/site-packages/numpy/tests/test_configtool.py": 8208415015478205502, + "venv/lib/python3.13/site-packages/pygments/lexers/j.py": 9766594937623918053, + "venv/bin/dotenv": 953953349803507198, + "backend/src/core/timezone.py": 8889304905072332926, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/redis.py": 11313520438600819390, + "venv/lib/python3.13/site-packages/pydantic/_internal/_dataclasses.py": 15256193972947054890, + "backend/src/api/routes/git_schemas.py": 9243114525622127446, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_resolution.py": 9651416588266430520, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_cte.py": 9274103293201050794, + "venv/lib/python3.13/site-packages/numpy/linalg/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/git/refs/tag.py": 9979537867501757110, + "backend/src/api/routes/translate/__init__.py": 6357999798616465776, + "backend/tests/test_translate_jobs.py": 16585154497956900995, + "backend/alembic/README": 17625003422504608299, + "backend/git_repos/remote/test-repo.git/objects/48/c3fde4d5fff5bf98e9bcaa5f328b199aa18292": 6121250272621110311, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_export_format.py": 17862222951776199694, + "venv/lib/python3.13/site-packages/numpy/_typing/_array_like.py": 2161873439361281488, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py": 14946223589457772924, + "venv/lib/python3.13/site-packages/cffi/_shimmed_dist_utils.py": 4824806157907607487, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/__init__.py": 1343779312297539596, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi": 4376871621615688626, + "venv/lib/python3.13/site-packages/numpy/f2py/use_rules.py": 17277594393032382485, + "venv/lib/python3.13/site-packages/numpy/_core/_dtype_ctypes.py": 5564496700647900501, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_astype.py": 15768655715952923925, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_sh_gcc.h": 3574353221233465215, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/block_docstring/foo.f": 2489756567993745076, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_keys.py": 10813898277355150779, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_html.py": 12040484325988635032, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arctan.csv": 4581185622290535488, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/__init__.py": 15130871412783076140, + "frontend/src/pages/Dashboard.svelte": 3653104499351855122, + "venv/lib/python3.13/site-packages/pygments/lexers/functional.py": 15896849233007178031, + "frontend/src/routes/storage/backups/+page.svelte": 3437582895363203695, + "venv/lib/python3.13/site-packages/idna/py.typed": 15130871412783076140, + "backend/_convert_defs.py": 208535643309836247, + "venv/lib/python3.13/site-packages/websockets/sync/server.py": 7966978001578584901, + "venv/lib/python3.13/site-packages/_pytest/config/__init__.py": 12787579251203510616, + "venv/lib/python3.13/site-packages/greenlet/tests/test_generator.py": 14156412320760444199, + "venv/lib/python3.13/site-packages/click/types.py": 6491651131669287534, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/prompt.py": 9561640601516933380, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli/py.typed": 9796674040111366709, + "venv/lib/python3.13/site-packages/numpy/fft/_helper.pyi": 9546918341939102632, + "venv/lib/python3.13/site-packages/attr/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_dialect.py": 6294522482440261756, + "venv/lib/python3.13/site-packages/greenlet/tests/__init__.py": 1181423074160870921, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/android.py": 8607703347015852195, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/meson.build": 9642189398934130247, + "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/ext.py": 15699809032725838985, + "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/REQUESTED": 15130871412783076140, + "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/indexes/categorical/test_constructors.py": 12118296571694122743, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_julian_date.py": 850085757774959003, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/RECORD": 2963644632913976754, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_reduction.py": 1049551473665255648, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/linalg.pyi": 269481015135399748, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE": 3996324383113221529, + "venv/lib/python3.13/site-packages/pycparser/ply/yacc.py": 4218889705926129841, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/utils.py": 2959395751217827103, + "frontend/src/routes/migration/+page.svelte": 8832866232148007450, + "frontend/src/components/llm/DocPreview.svelte": 25645090129568414, + "frontend/postcss.config.js": 5714274776976071678, + "backend/src/schemas/dataset_review_pkg/_composites.py": 1898056130177244572, + "venv/lib/python3.13/site-packages/numpy/tests/test_ctypeslib.py": 9592016432737074765, + "backend/src/services/dataset_review/semantic_resolver.py": 8447496149691924829, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/key_set.py": 8485970749081951741, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/background.py": 2105814165112049750, + "venv/lib/python3.13/site-packages/gitdb/fun.py": 55226330810782184, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_dtype.py": 12210524152630532747, + "venv/lib/python3.13/site-packages/pygments/lexers/igor.py": 6506221273085723501, + "venv/lib/python3.13/site-packages/anyio/_core/_contextmanagers.py": 1258491775823080427, + "venv/lib/python3.13/site-packages/numpy/_core/lib/pkgconfig/numpy.pc": 14713682399742251335, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_indexing.py": 9862204223281834360, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/request.py": 17642741955458391050, + "venv/lib/python3.13/site-packages/charset_normalizer/legacy.py": 1706599349563920562, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_period.py": 6047041810867211174, + "backend/src/plugins/translate/__tests__/test_inline_correction.py": 3644785257160613130, + "venv/lib/python3.13/site-packages/pygments/styles/material.py": 14325514369696961874, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize_py.py": 6518425342376455821, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_categorical.py": 9923236395692943732, + "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/extension/base/getitem.py": 556339939822508169, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/core": 6622984507059115517, + "frontend/src/lib/components/reports/__tests__/report_card.ux.test.js": 14899927226278257748, + "frontend/src/routes/settings/notifications/+page.svelte": 14504217413720856827, + "venv/lib/python3.13/site-packages/httpcore/_ssl.py": 6665087294869504820, + "venv/lib/python3.13/site-packages/pyasn1/codec/ber/encoder.py": 8912119133548489544, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_f2py2e.py": 8571347023940385644, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_quoting.py": 1147992698412929658, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py": 7624316342162916928, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_shape_base.py": 8837845103338426570, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/take.py": 3170415198452493008, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_base_indexer.py": 3129123098288498633, + "venv/lib/python3.13/site-packages/click/_termui_impl.py": 3296085065310341855, + "venv/lib/python3.13/site-packages/numpy/random/lib/libnpyrandom.a": 1802449692091040396, + "venv/lib/python3.13/site-packages/tzlocal/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_join.py": 11910166566689889389, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/pytestplugin.py": 1591034895268415944, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/strategy_options.py": 16342048970907383117, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/oauth1_session.py": 1911069558956893789, + "venv/lib/python3.13/site-packages/pygments/lexers/textedit.py": 14872291021083255414, + "venv/lib/python3.13/site-packages/pygments/lexers/phix.py": 16775285097768256238, + "frontend/build/_app/immutable/chunks/DNOraAy0.js": 868732761380476466, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_switch_two_greenlets.py": 11156275429806391390, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_cross.py": 17742712348672218852, + "backend/git_repos/remote/test-repo.git/objects/38/0395343915d386a8d58774cc6c6677205065e8": 5481382229802988191, + "venv/lib/python3.13/site-packages/pygments/styles/algol_nu.py": 6229131016121450375, + "frontend/src/types/dashboard.ts": 9718666955722367566, + "venv/lib/python3.13/site-packages/authlib/common/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/git/remote.py": 1694919255653049944, + "venv/lib/python3.13/site-packages/pydantic/_internal/_config.py": 12760390602912369447, + "venv/lib/python3.13/site-packages/pip/_internal/commands/freeze.py": 8644678595442275485, + "venv/lib/python3.13/site-packages/jsonschema/validators.py": 3832874295500213309, + "venv/lib/python3.13/site-packages/numpy/ma/mrecords.py": 687170905107114309, + "venv/lib/python3.13/site-packages/passlib/tests/test_utils_md4.py": 15270721044910698449, + "venv/lib/python3.13/site-packages/pip/py.typed": 10243553515949422671, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/processors.py": 4817637175145012571, + "backend/src/services/git_service.py": 1930048176535450912, + "venv/lib/python3.13/site-packages/pandas/_libs/lib.pyi": 3049004444338566197, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_api.py": 16743710460729009914, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/oauth1_client.py": 3129955464287331242, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/__init__.py": 5027355874704300832, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_logical/foo90.f90": 12508663906609241323, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/pg8000.py": 6580512354643849828, + "venv/lib/python3.13/site-packages/urllib3/util/__init__.py": 2848870790459558599, + "venv/lib/python3.13/site-packages/urllib3/_base_connection.py": 14495079097019980154, + "venv/lib/python3.13/site-packages/python_multipart/multipart.py": 5677735019292537174, + "venv/lib/python3.13/site-packages/cffi/ffiplatform.py": 6782148110863549472, + "venv/lib/python3.13/site-packages/bcrypt-4.0.1.dist-info/METADATA": 2810323639884879396, + "venv/lib/python3.13/site-packages/greenlet/tests/test_stack_saved.py": 7767924647054186572, + "venv/lib/python3.13/site-packages/numpy/lib/_histograms_impl.py": 13446184230476677032, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_readlines.py": 15928258358116399067, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__ufunc_api.h": 4516275133897904047, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py": 12264234876933578367, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/__init__.py": 1948986914452928735, + "backend/src/services/reports/type_profiles.py": 8365014439236739390, + "venv/lib/python3.13/site-packages/pygments/lexers/asc.py": 10744437946030875496, + "venv/lib/python3.13/site-packages/starlette/_exception_handler.py": 9892172656847200124, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_interval.py": 8549680643865283913, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64-testset-1.csv": 5708101386018266998, + "backend/src/models/dataset_review.py": 5814500849969423218, + "venv/lib/python3.13/site-packages/_pytest/_io/__init__.py": 1510478951261938348, + "venv/lib/python3.13/site-packages/numpy/polynomial/polynomial.py": 7658234162211356265, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi": 1626154870044880426, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/segment.py": 2555584120510872966, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_iter.py": 9232021002336641851, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_free.f90": 10939657740734987454, + "venv/lib/python3.13/site-packages/pandas/core/indexes/datetimelike.py": 4356700619632833878, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_list_accessor.py": 8613662386779664039, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/RECORD": 18314788057673509075, + "venv/lib/python3.13/site-packages/_pytest/_io/terminalwriter.py": 16852767249156780980, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_elffile.py": 5728213398707817049, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/fixed_string.f90": 8654788371538544793, + "venv/lib/python3.13/site-packages/sqlalchemy/util/typing.py": 17638587764345605306, + "backend/src/core/auth/__init__.py": 16435384828055133073, + "venv/lib/python3.13/site-packages/cffi/vengine_cpy.py": 10684192171370688079, + "venv/lib/python3.13/site-packages/pandas/io/feather_format.py": 13242733585787888812, + "venv/lib/python3.13/site-packages/_yaml/__init__.py": 3395829783751571350, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_symbolic.py": 8093576026032854125, + "venv/lib/python3.13/site-packages/ecdsa/test_eddsa.py": 1785854649532849946, + "venv/lib/python3.13/site-packages/greenlet/tests/test_leaks.py": 1219835696230215605, + "venv/lib/python3.13/site-packages/click-8.3.1.dist-info/METADATA": 3188324716322823755, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/greenlet/greenlet_internal.hpp": 13173115501223013762, + "venv/lib/python3.13/site-packages/greenlet/tests/test_contextvars.py": 6077482318964702132, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_pick.py": 15760492005471315814, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/crud.py": 805684028038896506, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/strategies.py": 15673926142454922581, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/emoji.py": 9166774203918731896, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/scope.py": 4096190764836489091, + "venv/lib/python3.13/site-packages/pydantic/_internal/_discriminated_union.py": 1818179910730401509, + "venv/lib/python3.13/site-packages/numpy/core/records.py": 12604652690721760437, + "frontend/src/components/storage/FileList.svelte": 11661146151896000393, + "venv/lib/python3.13/site-packages/starlette/__init__.py": 3252794766897205870, + "venv/lib/python3.13/site-packages/websockets/__main__.py": 11948055520555854616, + "venv/lib/python3.13/site-packages/fastapi/security/oauth2.py": 1925394177931547776, + "venv/lib/python3.13/site-packages/pandas/tests/resample/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_utils.pyi": 12312677132342982866, + "venv/lib/python3.13/site-packages/pandas/_libs/missing.pyi": 13543139288840944411, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_replace.py": 8784361132920473760, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_nlargest.py": 1423106021399469694, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_subclassing.py": 17318983445227658412, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/region.py": 12579403230062395563, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/base.py": 7110726987481713080, + "venv/lib/python3.13/site-packages/pygments/lexers/sas.py": 6128008194712914874, + "frontend/build/_app/immutable/chunks/BAEbOLv3.js": 18043792224008034479, + "venv/lib/python3.13/site-packages/numpy/lib/_type_check_impl.py": 15989335816452913951, + "venv/lib/python3.13/site-packages/rapidfuzz/fuzz_py.py": 6428078990080243608, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/METADATA": 13633829318759752611, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/METADATA": 13695483537390128881, + "venv/lib/python3.13/site-packages/numpy/lib/_shape_base_impl.pyi": 12052895927933479005, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/shape.pyi": 17197248408326188931, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_time_series.py": 5205199092955498507, + "venv/lib/python3.13/site-packages/fastapi/dependencies/utils.py": 7687214523082385505, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/resource_protector.py": 17080006010679257864, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/issue232.py": 6498198296113395367, + "venv/lib/python3.13/site-packages/websockets/asyncio/connection.py": 17044409627448400723, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_indexing.py": 3841182456456779012, + "venv/lib/python3.13/site-packages/python_dotenv-1.2.1.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/connection.py": 15405047955974108860, + "venv/lib/python3.13/site-packages/pandas/tests/libs/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_validate_kwargs.py": 10173906126211473463, + "venv/lib/python3.13/site-packages/urllib3/contrib/pyopenssl.py": 11839715589709210412, + "venv/lib/python3.13/site-packages/pygments/lexers/_vbscript_builtins.py": 9882134558469491349, + "backend/src/services/security_badge_service.py": 6269749758059921511, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64-testset-2.csv": 4052796393463357888, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/__init__.pyi": 16164841755339571545, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_fillna.py": 7244491410004453166, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_header.py": 3564391095263545879, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_constructors.py": 979131987837682435, + "venv/lib/python3.13/site-packages/jose/jwe.py": 3325660353225624025, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_map.py": 4761668276463940924, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/compat.py": 5871636909854554063, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/nditer.pyi": 2351219156711800159, + "venv/lib/python3.13/site-packages/packaging/version.py": 13470993734108007779, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_exceptions.py": 15290185665769490169, + "frontend/build/_app/immutable/nodes/35.BdI-3vAH.js": 15152994709151408688, + "venv/lib/python3.13/site-packages/pip/_internal/__init__.py": 7060345458485901709, + "venv/lib/python3.13/site-packages/pygments/lexers/procfile.py": 3860651022061090738, + "backend/git_repos/remote/test-repo.git/hooks/pre-applypatch.sample": 15598058327720909861, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/REQUESTED": 15130871412783076140, + "frontend/src/lib/components/reports/__tests__/reports_filter_performance.test.js": 10583581505638859039, + "venv/lib/python3.13/site-packages/gitdb/base.py": 7927279446353696534, + "venv/lib/python3.13/site-packages/greenlet/PyGreenletUnswitchable.cpp": 3160733517193315684, + "venv/lib/python3.13/site-packages/numpy/_pyinstaller/hook-numpy.py": 5221550291012182443, + "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/numpy/f2py/tests/test_return_logical.py": 6242457515917145500, + "backend/src/services/validation_service.py": 4040391162969506763, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_hour.py": 14128508606361694814, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/__init__.py": 71159121705871510, + "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/__init__.py": 14268033439436797364, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_like.pyi": 1968570015765106620, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_na_indexing.py": 8712547126522523899, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/multiarray.py": 3224049574922696945, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/conftest.py": 4124267277224879990, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_period.py": 9715843209581883915, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_block_docstring.py": 18146459246837890489, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq.py": 13853220736499979380, + "venv/lib/python3.13/site-packages/rsa/transform.py": 12261738253972114335, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/__init__.py": 7062045842767697645, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_series.py": 17126297747681689408, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_compound.f90": 15012692484070385863, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/tzconversion.cpython-313-x86_64-linux-gnu.so": 15960606468596245469, + "backend/src/plugins/translate/prompt_builder.py": 9619706108488955349, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_head_tail.py": 13047338070883375426, + "venv/lib/python3.13/site-packages/pip/_internal/utils/direct_url_helpers.py": 6075890513530296650, + "backend/src/services/notifications/providers.py": 12897444612423813747, + "venv/lib/python3.13/site-packages/numpy/typing/__init__.pyi": 10058149460938883683, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_seed_sequence.py": 7687465232954593311, + "venv/lib/python3.13/site-packages/numpy/lib/_function_base_impl.pyi": 2628035888703031029, + "backend/tests/test_logger.py": 11506419828617508917, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_constructors.pyi": 164538008396001632, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/zip-safe": 15240312484046875203, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_util.py": 16024147572807865219, + "venv/lib/python3.13/site-packages/httpcore/_sync/connection_pool.py": 8159971229245441880, + "venv/lib/python3.13/site-packages/pandas/core/arrays/categorical.py": 15993211255162930859, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_constructors.py": 3440572832185940666, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/h11/_state.py": 11398755254809751139, + "venv/lib/python3.13/site-packages/pandas/util/_exceptions.py": 14426860079366867683, + "venv/lib/python3.13/site-packages/pygments/util.py": 4815334059917765852, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/INSTALLER": 17282701611721059870, + "backend/tests/test_logging_audit_fixes.py": 14806902244422319839, + "venv/lib/python3.13/site-packages/rsa/util.py": 13423880475585138638, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_cisco.py": 1786475632318043669, + "venv/lib/python3.13/site-packages/numpy/random/_pickle.pyi": 16081120364372391381, + "venv/lib/python3.13/site-packages/pandas/core/ops/common.py": 17314999825118928100, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_astype.py": 1961831758405941258, + "venv/lib/python3.13/site-packages/pandas/_libs/__init__.py": 17117112389651696580, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_ops.py": 3875181889032080505, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_block_internals.py": 17935662848672401507, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_string.py": 13234624995755549329, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pydantic/class_validators.py": 4643597082531287188, + "venv/lib/python3.13/site-packages/pygments/lexers/_mapping.py": 12987629396101138833, + "frontend/build/_app/immutable/nodes/29.56ajaPq7.js": 13881277175518745666, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_case_justify.py": 8204537837649550062, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/RECORD": 9502524172853437600, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_floats.py": 3064615530495290792, + "frontend/src/lib/stores/__tests__/setupTests.js": 13316015450930652502, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/bar.py": 12859947592168238832, + "backend/git_repos/remote/test-repo.git/refs/heads/feature/e2e-update": 9577764946931187657, + "venv/lib/python3.13/site-packages/cryptography/utils.py": 18088508841978595788, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_constructors.py": 9767900500541600486, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/__init__.py": 6654484356035994666, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py": 6509914623926583629, + "frontend/build/_app/immutable/chunks/BEgtrFG1.js": 8322179021947182552, + "venv/lib/python3.13/site-packages/PIL/MicImagePlugin.py": 13540523615822507963, + "venv/lib/python3.13/site-packages/pygments/lexers/_julia_builtins.py": 8846111188795315103, + "venv/lib/python3.13/site-packages/fastapi/middleware/asyncexitstack.py": 7733356903092860495, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x86_unix.h": 13709837360414450184, + "venv/lib/python3.13/site-packages/pydantic/decorator.py": 6984214881365537811, + "venv/lib/python3.13/site-packages/attr/validators.pyi": 15579625896285277321, + "backend/src/api/routes/plugins.py": 4567336078922104278, + "backend/src/services/maintenance/_orchestrators.py": 995360865260101856, + "venv/lib/python3.13/site-packages/numpy/_core/getlimits.pyi": 15746478550640231553, + "venv/lib/python3.13/site-packages/pandas/tests/extension/uuid/test_uuid.py": 13955678427426850807, + "venv/lib/python3.13/site-packages/passlib/tests/test_crypto_scrypt.py": 17378030264314664250, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_custom_business_month.py": 1613806538807726074, + "venv/lib/python3.13/site-packages/PIL/BdfFontFile.py": 10811640174253687845, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/zip-safe": 15240312484046875203, + "venv/lib/python3.13/site-packages/pandas/core/computation/expressions.py": 10684284531040203747, + "venv/lib/python3.13/site-packages/pygments/styles/gh_dark.py": 7717523746712391809, + "backend/src/api/routes/__tests__/test_reports_api.py": 8830242634438523357, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/RECORD": 13494296690334916257, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_setitem.py": 10389770446834773837, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/pyodbc.py": 8175468565413744516, + "venv/lib/python3.13/site-packages/pygments/lexers/nit.py": 18262907536841158657, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/auto.py": 12818217385551437286, + "frontend/src/lib/components/translate/TranslationPreview.svelte": 3234775946311369733, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/licenses/LICENSE": 8364608327598414179, + "venv/lib/python3.13/site-packages/pygments/lexers/ncl.py": 14838368780033177943, + "frontend/src/routes/git/+page.svelte": 14169430923974356254, + "venv/lib/python3.13/site-packages/websockets/streams.py": 15786581670248099415, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_elements_constructors.py": 9279447066034364952, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_month.py": 8485374160446988786, + "frontend/src/components/llm/__tests__/provider_config.integration.test.js": 12605115626277870995, + "venv/lib/python3.13/site-packages/pydantic/v1/typing.py": 13467331592583800299, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/licenses/LICENSE": 14524289631770661180, + "venv/lib/python3.13/site-packages/pandas/core/window/online.py": 13551140636252302201, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_style.py": 10405592363651914796, + "venv/lib/python3.13/site-packages/pyasn1/type/univ.py": 7163437624197683039, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/METADATA": 6557531107125553027, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_empty.py": 6845813091876023610, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/INSTALLER": 17282701611721059870, + "backend/git_repos/remote/test-repo.git/objects/ee/59553241ef084b83d3351ba4c33caf2ed9a840": 11587106407031972706, + "venv/lib/python3.13/site-packages/numpy/_core/_simd.pyi": 13553578040186939249, + "backend/src/services/clean_release/artifact_catalog_loader.py": 7672031618376179570, + "venv/lib/python3.13/site-packages/pygments/lexers/julia.py": 13516407944275342328, + "venv/lib/python3.13/site-packages/_pytest/logging.py": 10972553724755511468, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_filters.py": 17271344092069736999, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_unique.py": 6234921572794573905, + "venv/lib/python3.13/site-packages/sqlalchemy/event/api.py": 987321343916500337, + "venv/lib/python3.13/site-packages/yaml/scanner.py": 8554164423030397366, + "venv/lib/python3.13/site-packages/urllib3/_request_methods.py": 13671055114247516883, + "frontend/src/lib/stores/__tests__/assistantChat.test.js": 11822882112255142537, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/LICENSE": 2032205056284080825, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/histograms.pyi": 9255620158831643201, + "frontend/src/components/tasks/TaskLogPanel.svelte": 4685456099513280294, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/text.py": 6096215585499446070, + "venv/lib/python3.13/site-packages/numpy/testing/_private/utils.pyi": 17639497083041129225, + "venv/lib/python3.13/site-packages/pygments/lexers/bdd.py": 5389493859905397060, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-tan.csv": 6233924374281534211, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/METADATA": 1862765380818895200, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/models.py": 15928924478695638423, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/compat.py": 9758194415584776667, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py": 15644105878811738516, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/common/urls.py": 13627272625165922482, + "venv/lib/python3.13/site-packages/numpy/random/bit_generator.cpython-313-x86_64-linux-gnu.so": 2574035311375507054, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/signals.py": 13677199634497673845, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein.pyi": 2700568594438441246, + "venv/lib/python3.13/site-packages/bcrypt/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/evaluator.py": 6348022789899831255, + "venv/lib/python3.13/site-packages/pandas/core/base.py": 10262717073058743378, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion": 2607512361823362698, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/specifiers.py": 12284901056355482991, + "venv/lib/python3.13/site-packages/numpy/_core/_type_aliases.py": 1644743742545329282, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_argon2.py": 11345706437113628133, + "venv/lib/python3.13/site-packages/authlib/jose/util.py": 14843923624043422219, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/query.py": 3867868366067025348, + "venv/lib/python3.13/site-packages/pandas/core/arrays/_mixins.py": 14293848457775268010, + "venv/lib/python3.13/site-packages/PIL/_deprecate.py": 15076725072094847812, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/__init__.py": 15130871412783076140, + "backend/src/schemas/__tests__/test_settings_and_health_schemas.py": 10518526918751273612, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_online.py": 11850497659869773510, + "venv/lib/python3.13/site-packages/requests/auth.py": 912521029864094489, + "venv/lib/python3.13/site-packages/idna/__init__.py": 6489437464172324468, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_scrypt.py": 8106466515670064013, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_usecols_basic.py": 16382444980424010514, + "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/array.py": 3517673819082574078, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_results.py": 18145930285449734975, + "venv/lib/python3.13/site-packages/rsa/core.py": 13203947234024924497, + "venv/bin/pyrsa-decrypt": 10929163076272054227, + "frontend/src/lib/components/reports/ReportCard.svelte": 13714680961668469204, + "venv/lib/python3.13/site-packages/pandas/core/computation/api.py": 17919983681396223380, + "venv/lib/python3.13/site-packages/uvicorn/__main__.py": 6086938803696646644, + "frontend/src/routes/dashboards/[id]/components/DashboardGitManager.svelte": 14665567599893731601, + "frontend/src/routes/settings/SystemSettings.svelte": 17084926955388049976, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/METADATA": 10220680536734745103, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/licenses/LICENSE": 4672913476475760762, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/misc/extended_precision.pyi": 6541258584648209609, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_to_latex.py": 2628895559914914693, + "venv/lib/python3.13/site-packages/PIL/report.py": 9428754440615681790, + "venv/lib/python3.13/site-packages/passlib/handlers/scram.py": 12281469744083867450, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/extension_types.py": 1856757457657310231, + "venv/lib/python3.13/site-packages/jeepney/io/tests/test_blocking.py": 6312017389529916004, + "venv/lib/python3.13/site-packages/pandas/tests/frame/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_dict_compat.py": 18196543090455290455, + "venv/lib/python3.13/site-packages/pygments/lexers/objective.py": 10966124906622044512, + "venv/lib/python3.13/site-packages/requests/utils.py": 17045260098091371478, + "backend/alembic/versions/c4a3a2f74bfe_add_missing_columns_needs_review_.py": 4320606555167902916, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/numpyconfig.h": 13339221870252345205, + "venv/lib/python3.13/site-packages/numpy/matrixlib/__init__.pyi": 1942236362568669510, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_histograms.py": 47631283818191049, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi": 13061638961405460334, + "venv/lib/python3.13/site-packages/numpy/polynomial/chebyshev.pyi": 5269136485429780038, + "venv/lib/python3.13/site-packages/numpy/version.py": 1497063540123613501, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/compiler.py": 13924519162400330589, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_multi_thread.py": 5660352470978621226, + "venv/lib/python3.13/site-packages/PIL/PsdImagePlugin.py": 4347581352716313298, + "venv/lib/python3.13/site-packages/pygments/lexers/srcinfo.py": 16466766917840327610, + "frontend/src/routes/datasets/__tests__/split_view.test.js": 6143972529940917004, + "backend/src/plugins/translate/__tests__/test_dictionary_correction.py": 17508858180216288123, + "venv/lib/python3.13/site-packages/pandas/compat/numpy/__init__.py": 1037113402100731082, + "venv/lib/python3.13/site-packages/keyring/backends/kwallet.py": 3071915635647280308, + "venv/lib/python3.13/site-packages/httpx/_urlparse.py": 8270294590945652412, + "venv/lib/python3.13/site-packages/cryptography/x509/general_name.py": 4481582226129488535, + "venv/lib/python3.13/site-packages/numpy/_array_api_info.pyi": 13283968924732680159, + "venv/lib/python3.13/site-packages/pygments/lexers/wren.py": 6259586056260713984, + "venv/bin/numpy-config": 17104619511899110252, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_polyutils.py": 675639791972685455, + "venv/lib/python3.13/site-packages/pydantic/_internal/_schema_generation_shared.py": 23345689300073549, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_data.py": 2397937327057341, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/wrapper.py": 14599195010683170123, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/reflection.py": 5951113078754792806, + "venv/lib/python3.13/site-packages/numpy.libs/libquadmath-96973f99-934c22de.so.0.0.0": 5098713761946118139, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/conftest.py": 8406022190801970256, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/LICENSE": 6774760218010069963, + "venv/lib/python3.13/site-packages/more_itertools/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/PIL/ImageMorph.py": 13861961228125789866, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/fromnumeric.pyi": 8671744104085911610, + "venv/lib/python3.13/site-packages/numpy/polynomial/legendre.py": 1731362089136926666, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/string.f": 17328443345813567449, + "backend/src/models/mapping.py": 13500075972378889022, + "backend/src/services/clean_release/__tests__/test_preparation_service.py": 4765724405964286078, + "venv/lib/python3.13/site-packages/secretstorage/util.py": 1004887530903069622, + "venv/lib/python3.13/site-packages/starlette/config.py": 16509394679506300256, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/METADATA": 4868544280955034757, + "venv/lib/python3.13/site-packages/ecdsa/test_ecdsa.py": 17595025859105321562, + "venv/lib/python3.13/site-packages/pandas/tests/test_optional_dependency.py": 7930709646653025355, + "venv/lib/python3.13/site-packages/PIL/MspImagePlugin.py": 3034490726971829439, + "venv/lib/python3.13/site-packages/pycparser/ply/ctokens.py": 1599952198962458730, + "venv/lib/python3.13/site-packages/_pytest/_code/source.py": 9488112979192923739, + "venv/lib/python3.13/site-packages/packaging/licenses/__init__.py": 15879493360260891293, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_formats.py": 2743326139283991615, + "venv/lib/python3.13/site-packages/pygments/lexers/func.py": 12257919753150082714, + "venv/lib/python3.13/site-packages/PIL/PdfParser.py": 13710342183037972042, + "frontend/build/_app/immutable/nodes/28.MJ5rlU4U.js": 14941281040668339074, + "venv/lib/python3.13/site-packages/more_itertools/recipes.py": 5254043689078173976, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/_json.py": 6718137926109998531, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_iat.py": 3570464615146398178, + "venv/lib/python3.13/site-packages/_pytest/stash.py": 14430252294763173610, + "venv/lib/python3.13/site-packages/pip/_internal/main.py": 13711402795965346761, + "backend/src/api/routes/__tests__/test_dashboards.py": 226265424558878456, + "backend/src/services/clean_release/compliance_execution_service.py": 3379474749353250488, + "venv/lib/python3.13/site-packages/keyring/backends/macOS/api.py": 4502902558534812719, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/models.py": 9513172366009392193, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/ecdsa/test_jacobi.py": 1249543655136186433, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_halfyear.py": 9376272342364384767, + "venv/lib/python3.13/site-packages/PIL/WmfImagePlugin.py": 15685062825106444247, + "venv/lib/python3.13/site-packages/jaraco/context/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/cryptography/x509/oid.py": 13909847799728532602, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_cython.py": 2933400021016349431, + "venv/lib/python3.13/site-packages/anyio/abc/_subprocesses.py": 4297459042599291531, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_cell_widths.py": 5724379364993806351, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_iteration.py": 15247340610412364508, + "venv/lib/python3.13/site-packages/PIL/GribStubImagePlugin.py": 14954946414134984896, + "venv/lib/python3.13/site-packages/yaml/error.py": 5626374410579058436, + "backend/src/models/dataset_review_pkg/_clarification_models.py": 13264800784251426725, + "venv/lib/python3.13/site-packages/passlib/apps.py": 4633269405597895766, + "backend/src/plugins/translate/dictionary_crud.py": 17858252266960667195, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_join.py": 1131792466825856990, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_masm.asm": 15349921092257597740, + "venv/lib/python3.13/site-packages/referencing/_core.py": 14744795336121513230, + "venv/lib/python3.13/site-packages/anyio/_core/_asyncio_selector_thread.py": 1760597191437520000, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log1p.csv": 16333455295913164408, + "frontend/build/_app/immutable/nodes/32.Cmesu1rv.js": 1679171227981656667, + "frontend/src/lib/stores.js": 8062876368729352764, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/mongodb.py": 5310116401542377882, + "venv/lib/python3.13/site-packages/pandas/io/parsers/python_parser.py": 7297059565749331767, + "venv/lib/python3.13/site-packages/pandas/core/internals/api.py": 14632030170441237968, + "venv/lib/python3.13/site-packages/certifi/__init__.py": 9045580998764948967, + "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/test_decimal.py": 17811784255174057561, + "venv/lib/python3.13/site-packages/dateutil/tz/_factories.py": 7538654189286887518, + "venv/lib/python3.13/site-packages/pygments/lexers/sql.py": 15566262873151658034, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/progress.py": 5951745251426856398, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/WHEEL": 1598805043198466373, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_format.py": 16150524965028369071, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/jwt.py": 9642615960197748105, + "venv/lib/python3.13/site-packages/anyio/abc/_tasks.py": 16839170934610571514, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/websockets/sync/router.py": 10335595955948355382, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/color_triplet.py": 17264298271771184, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/retry.py": 17371295199208325375, + "venv/lib/python3.13/site-packages/numpy/linalg/lapack_lite.cpython-313-x86_64-linux-gnu.so": 11074560904305737689, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_ndarray_backed.py": 10097812802469682233, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_arithmetics.py": 16527169124402715210, + "venv/lib/python3.13/site-packages/anyio/_backends/_trio.py": 4764555436057754985, + "venv/lib/python3.13/site-packages/jeepney/bus.py": 5163075760432139100, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/__init__.py": 15971002342788501945, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/WHEEL": 14550174241288068152, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming.pyi": 4432290176776357346, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh17797.f90": 17319074662077763768, + "venv/lib/python3.13/site-packages/pandas/core/arrays/string_.py": 14865733321317939478, + "venv/lib/python3.13/site-packages/pandas/tests/util/conftest.py": 11143177766735481660, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/METADATA": 15225661995655327539, + "venv/lib/python3.13/site-packages/anyio-4.12.0.dist-info/RECORD": 10036839994791510159, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/RECORD": 5612689057373270213, + "venv/lib/python3.13/site-packages/_pytest/debugging.py": 16135285365306979060, + "venv/lib/python3.13/site-packages/pydantic/v1/utils.py": 902648247561165429, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/aiomysql.py": 12999962380333482189, + "venv/lib/python3.13/site-packages/greenlet/tests/_test_extension_cpp.cpp": 4590574206187223887, + "venv/lib/python3.13/site-packages/PIL/ImageMode.py": 2361901066832921091, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/WHEEL": 14929202952940710322, + "venv/lib/python3.13/site-packages/referencing/jsonschema.py": 14596871117484757502, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_chained_assignment_deprecation.py": 7694137945143129474, + "venv/lib/python3.13/site-packages/greenlet/TStackState.cpp": 16720079760074325527, + "venv/lib/python3.13/site-packages/keyring/backend.py": 14185808762437650951, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/highlighter.py": 10615901258492570740, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/queue.py": 7820997545569991670, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/status.py": 2214590120238144582, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_pickle.py": 2910383574326146698, + "venv/lib/python3.13/site-packages/PIL/ImImagePlugin.py": 15452956038794399492, + "venv/lib/python3.13/site-packages/PIL/IcnsImagePlugin.py": 1870235606309784691, + "venv/lib/python3.13/site-packages/uvicorn/workers.py": 7213290478118197047, + "venv/lib/python3.13/site-packages/pygments/styles/algol.py": 3040373291664740876, + "venv/lib/python3.13/site-packages/pygments/styles/paraiso_dark.py": 3976779833379189837, + "frontend/build/_app/immutable/chunks/Ck4a7ANl.js": 3561562300210641559, + "backend/src/plugins/translate/__tests__/test_dictionary_utils.py": 12007616543185225081, + "venv/lib/python3.13/site-packages/fastapi/_compat/__init__.py": 12380131786677943349, + "venv/lib/python3.13/site-packages/urllib3/exceptions.py": 9687187566231423953, + "venv/lib/python3.13/site-packages/pandas/core/indexes/timedeltas.py": 13653393430363556843, + "frontend/src/routes/settings/LlmSettings.svelte": 2951029184700558947, + "frontend/build/_app/immutable/chunks/aniH9ONl.js": 11297774342683903539, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_item.py": 17619314877770917080, + "venv/lib/python3.13/site-packages/numpy/lib/_arraypad_impl.py": 6348811074249398741, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_indexing.py": 9988098331562906950, + "venv/lib/python3.13/site-packages/passlib/handlers/roundup.py": 3844280972451753019, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_chaining_and_caching.py": 11784574265874608859, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/strategies.py": 14007486769065345085, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_overrides.py": 92685611709898742, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_emoji_replace.py": 8166203537440976347, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_nanfunctions.py": 2356468092336024365, + "venv/lib/python3.13/site-packages/pandas/core/arrays/datetimelike.py": 394614958716301173, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_backend.pyi": 13083543811193933305, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_arithmetic.py": 17043958604607035425, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_emoji_codes.py": 13901854719435716195, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/tools.py": 6437315459200419827, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/holiday/test_calendar.py": 12313641252472031631, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/typst.tpl": 5055419073126793137, + "venv/lib/python3.13/site-packages/attrs/__init__.py": 9502968706258875910, + "venv/lib/python3.13/site-packages/iniconfig/py.typed": 15130871412783076140, + "frontend/src/components/tasks/TaskResultPanel.svelte": 7735278333136205649, + "venv/lib/python3.13/site-packages/pygments/lexers/ezhil.py": 10294520768762308887, + "venv/lib/python3.13/site-packages/fastapi/middleware/gzip.py": 436886407566263171, + "backend/alembic/versions/8dd0a93af539_drop_deprecated_source_language_column_.py": 3574830605384611294, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/missing.py": 11241703105777668183, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_typing.py": 17589387690638097975, + "venv/lib/python3.13/site-packages/pip/_internal/utils/filesystem.py": 7716285033598020316, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_factorize.py": 5585211699185937865, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Levenshtein.py": 15426828792217499138, + "venv/lib/python3.13/site-packages/pandas/core/ops/dispatch.py": 7041711677358147534, + "backend/src/plugins/translate/service_utils.py": 15103456860964805370, + "venv/lib/python3.13/site-packages/starlette/middleware/gzip.py": 4321371046149637632, + "venv/lib/python3.13/site-packages/_pytest/reports.py": 13930709338396699351, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_util.py": 16908393806993809474, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/macos.py": 17442393555211213147, + "venv/lib/python3.13/site-packages/pygments/lexers/openscad.py": 13045825115225232396, + "backend/src/plugins/translate/__init__.py": 12400577052797809611, + "venv/lib/python3.13/site-packages/jeepney/io/common.py": 15160647397460834508, + "venv/lib/python3.13/site-packages/numpy/random/_sfc64.pyi": 3536657185495782642, + "venv/lib/python3.13/site-packages/passlib/tests/test_pwd.py": 10089138951415591061, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_macos.py": 7028037591427052891, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_non_compound.f90": 8048650253889213460, + "venv/lib/python3.13/site-packages/pandas/core/indexes/api.py": 13750417165301467381, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_round.py": 1299086932398824299, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/exc.py": 1448374203226983757, + "backend/src/api/routes/git/_repo_routes.py": 7367823490321383813, + "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/_builtin.py": 74545289993348593, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER": 17282701611721059870, + "backend/git_repos/remote/test-repo.git/objects/5a/82ef700fef88b69cd480e4025283809496ee20": 7003383965314354150, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/validator_creation.py": 2745563768861102999, + "venv/lib/python3.13/site-packages/requests/certs.py": 16052880877156864882, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/cmac.py": 12011944740750051829, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/RECORD": 3205266407680661753, + "venv/lib/python3.13/site-packages/fastapi/staticfiles.py": 4094330072433302614, + "venv/lib/python3.13/site-packages/apscheduler/util.py": 11440701924954413440, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/claims.py": 14794441479740527265, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/authorization_server.py": 2913800420669417152, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/METADATA": 11759004913807981650, + "venv/lib/python3.13/site-packages/pydantic/v1/mypy.py": 17076910404409672245, + "venv/lib/python3.13/site-packages/numpy/lib/introspect.pyi": 12239924839764265507, + "venv/lib/python3.13/site-packages/numpy/_typing/_scalars.py": 17701938912160369190, + "venv/lib/python3.13/site-packages/numpy/f2py/setup.cfg": 17974180080760231128, + "venv/lib/python3.13/site-packages/numpy/exceptions.pyi": 13942486291715303235, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_resample_api.py": 3278209206670699265, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/METADATA": 11557342107649194148, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_skew.py": 5276102682005383261, + "venv/lib/python3.13/site-packages/websockets/sync/utils.py": 15135020989207191168, + "venv/lib/python3.13/site-packages/jeepney/tests/test_fds.py": 6257376331171761928, + "venv/lib/python3.13/site-packages/numpy/f2py/symbolic.pyi": 14558091964387571257, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_eng_formatting.py": 14768815444701392013, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/yaml.py": 17801117405950663611, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/__init__.py": 5118993772178969104, + "venv/lib/python3.13/site-packages/PIL/BlpImagePlugin.py": 7209218638257731375, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/cast.py": 342228968652072052, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/__init__.py": 12290228927283601067, + "frontend/build/_app/immutable/chunks/rzyp_Wbp.js": 10559672264716197308, + "backend/src/api/routes/git/_config_routes.py": 6093940098740660772, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_sort_values.py": 15072305514178699398, + "backend/src/services/reports/__tests__/test_type_profiles.py": 17262223295445285285, + "backend/tests/test_task_manager.py": 1706217361689506763, + "venv/lib/python3.13/site-packages/numpy/f2py/src/fortranobject.c": 2519219289444051739, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_ufunc.py": 3326502989311831856, + "venv/lib/python3.13/site-packages/pygments/lexers/tact.py": 1164971357219795420, + "venv/lib/python3.13/site-packages/starlette/middleware/wsgi.py": 12506262030845301606, + "venv/lib/python3.13/site-packages/rapidfuzz/process_cpp_impl.cpython-313-x86_64-linux-gnu.so": 11767771662042404251, + "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/METADATA": 14158024963562115116, + "venv/lib/python3.13/site-packages/_pytest/_io/pprint.py": 11202117031437223527, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_array_utils.py": 14682148205379122638, + "venv/lib/python3.13/site-packages/greenlet/greenlet_msvc_compat.hpp": 12504008513945919250, + "venv/lib/python3.13/site-packages/websockets/utils.py": 17624459810483092475, + "venv/lib/python3.13/site-packages/numpy/f2py/common_rules.py": 7352635707860427145, + "backend/alembic.ini": 8897071018956157084, + "venv/lib/python3.13/site-packages/pygments/styles/__init__.py": 18383248976818885498, + "venv/lib/python3.13/site-packages/greenlet/TGreenlet.cpp": 4121171004360760212, + "venv/lib/python3.13/site-packages/charset_normalizer/api.py": 9172704759115759638, + "venv/lib/python3.13/site-packages/pandas/_config/display.py": 433650013567734821, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/aead.py": 8740476942925346444, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py": 6712732248328458871, + "venv/lib/python3.13/site-packages/pygments/lexers/vyper.py": 6477559246065994199, + "venv/lib/python3.13/site-packages/passlib/tests/test_handlers_pbkdf2.py": 4977067068389993374, + "backend/src/api/routes/assistant/_llm_planner.py": 444517242115816139, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/random.py": 12722750410117529986, + "frontend/src/lib/api/validation.js": 10650815174196870103, + "backend/src/api/routes/__tests__/test_assistant_api.py": 4079781811717182404, + "backend/src/services/dataset_review/orchestrator_pkg/_helpers.py": 3718757635506173013, + "venv/lib/python3.13/site-packages/rsa/cli.py": 1753949198467694190, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/test_cumulative.py": 6346947559103505068, + "venv/lib/python3.13/site-packages/pandas/io/sql.py": 12592024569011796790, + "venv/lib/python3.13/site-packages/pygments/lexers/_php_builtins.py": 2344562378679281201, + "venv/lib/python3.13/site-packages/numpy/_expired_attrs_2_0.pyi": 1424133074692438241, + "venv/lib/python3.13/site-packages/anyio/__init__.py": 12752386096259972231, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh25337/data.f90": 13833561828029901615, + "venv/lib/python3.13/site-packages/authlib/jose/jwk.py": 13560749074922587626, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/boxplot.py": 7090586111222952862, + "venv/lib/python3.13/site-packages/pip/_internal/utils/hashes.py": 17310331665429541812, + "venv/lib/python3.13/site-packages/pandas/api/types/__init__.py": 3995030354191071797, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_numba.py": 1548992314517942530, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_errors.py": 3301889847545579393, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_arrow_compat.py": 17818294260710640443, + "venv/lib/python3.13/site-packages/dateutil/utils.py": 7067026915090881998, + "venv/lib/python3.13/site-packages/numpy/ma/LICENSE": 6723325434476453127, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_datetimelike.py": 10294379314868108649, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_fillna.py": 4610666845291315333, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_pct_change.py": 10313980265441433173, + "venv/lib/python3.13/site-packages/numpy/_core/__init__.pyi": 2783897020308040960, + "venv/lib/python3.13/site-packages/pygments/lexers/typoscript.py": 6706632522710582762, + "venv/lib/python3.13/site-packages/pygments/lexers/email.py": 4355246279485460399, + "frontend/static/favicon.svg": 6451919037497541980, + "backend/src/core/task_manager/cleanup.py": 8316318318890394605, + "venv/lib/python3.13/site-packages/pandas/core/util/numba_.py": 3535857372998653863, + "backend/src/api/routes/dashboards/_router.py": 8641007051243802224, + "venv/lib/python3.13/site-packages/referencing-0.37.0.dist-info/licenses/COPYING": 14459782230785388765, + "venv/lib/python3.13/site-packages/pandas/_testing/__init__.py": 10127496080404419481, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/models.py": 11521700876708601977, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_numerictypes.py": 8836108334624807647, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_print.py": 598821365691498702, + "venv/lib/python3.13/site-packages/psycopg2/extras.py": 7510107741729866600, + "venv/lib/python3.13/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0": 17866578820357536656, + "venv/lib/python3.13/site-packages/itsdangerous/serializer.py": 14271229091461164933, + "venv/lib/python3.13/site-packages/pydantic/validate_call_decorator.py": 11130572937843915026, + "venv/lib/python3.13/site-packages/numpy/typing/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/ops/invalid.py": 10186546927135277579, + "venv/lib/python3.13/site-packages/pandas/core/groupby/__init__.py": 3015263524218708013, + "venv/lib/python3.13/site-packages/authlib/oidc/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_rewrite_warning.py": 4895919872954538758, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_str_accessor.py": 4066094997616994612, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel_py.py": 9112851333217812996, + "venv/lib/python3.13/site-packages/authlib/jose/rfc8037/__init__.py": 8705044848308260480, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_xlsxwriter.py": 8445547874832015203, + "venv/lib/python3.13/site-packages/numpy/lib/user_array.pyi": 1968484998382771986, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/processors.cpython-313-x86_64-linux-gnu.so": 18139875206371157315, + "venv/lib/python3.13/site-packages/pygments/lexers/dotnet.py": 17970884907837213099, + "venv/lib/python3.13/site-packages/pycparser/c_parser.py": 3954138286651284327, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/dtype.py": 9342837412280377086, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/WHEEL": 7454950858448014158, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_numeric.py": 5627177940393829333, + "frontend/src/lib/components/reports/__tests__/reports_list.ux.test.js": 16252194679528846126, + "backend/src/api/routes/translate/_job_routes.py": 15469484615259714480, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/multiarray.pyi": 17232959648651278910, + "venv/lib/python3.13/site-packages/rsa/asn1.py": 3861968161559322784, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/const_vs_enum.py": 12873459583943748931, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/installed.py": 18153165899841229597, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_arrayobject.py": 13337664596833150958, + "venv/lib/python3.13/site-packages/numpy/_expired_attrs_2_0.py": 8786558894094307341, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/request.py": 10484280068366411541, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_stmts.f90": 6123192245816905092, + "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/tests/frame/indexing/test_set_value.py": 17480833128128893268, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_is_full.py": 9577318758326279694, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_markdown.py": 9964642152916165317, + "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/connection.py": 5582413226288987808, + "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/fft.pyi": 14454280827038327842, + "venv/lib/python3.13/site-packages/numpy/linalg/lapack_lite.pyi": 14069586330277925998, + "venv/lib/python3.13/site-packages/pip/_internal/models/link.py": 7172346414535657925, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/assumed_shape/foo_mod.f90": 5765181406654284736, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_fiscal.py": 14652343698825214870, + "venv/lib/python3.13/site-packages/numpy/dtypes.py": 14128421398870718692, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_period.py": 6255181868181182780, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_cumulative.py": 16283954014170928273, + "venv/lib/python3.13/site-packages/passlib/tests/_test_bad_register.py": 5446848310854472376, + "venv/lib/python3.13/site-packages/_pytest/compat.py": 10046464101087327473, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_searchsorted.py": 12074107109575676897, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oidc/core/util.py": 5364455058429522633, + "venv/lib/python3.13/site-packages/pandas/io/common.py": 12088195203620154171, + "venv/lib/python3.13/site-packages/websockets/speedups.pyi": 10322382420215791091, + "venv/lib/python3.13/site-packages/pip/_internal/cli/main_parser.py": 7942770969280622910, + "venv/lib/python3.13/site-packages/PIL/IptcImagePlugin.py": 14329453455296600824, + "venv/lib/python3.13/site-packages/idna-3.11.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/layout.py": 11554376181083053156, + "venv/lib/python3.13/site-packages/pygments/lexers/lean.py": 14518351619544450286, + "venv/lib/python3.13/site-packages/greenlet/platform/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/fift.py": 7537570342576781911, + "venv/lib/python3.13/site-packages/pygments/lexers/freefem.py": 9851243865301700231, + "venv/lib/python3.13/site-packages/pip/_vendor/msgpack/__init__.py": 5896924546560667519, + "venv/lib/python3.13/site-packages/pygments/lexers/mime.py": 7768464764849718825, + "backend/src/plugins/translate/orchestrator_planner.py": 1630348739588568408, + "venv/lib/python3.13/site-packages/pip/_vendor/typing_extensions.py": 10158933506062403688, + "venv/lib/python3.13/site-packages/pygments/lexers/web.py": 11104721221615804497, + "backend/src/dependencies.py": 9767255988896931940, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/authorization_server.py": 4427151727224472650, + "frontend/build/_app/immutable/chunks/DDT5MMTm.js": 14618179099689778175, + "venv/lib/python3.13/site-packages/pygments/lexers/_luau_builtins.py": 13690910306072616818, + "venv/lib/python3.13/site-packages/pandas/core/window/expanding.py": 14141093310397856286, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_index.py": 1551768441102117466, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_converters.py": 8869440774594127419, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_neighborhood_iterator_imp.h": 10634781863364525895, + "venv/lib/python3.13/site-packages/pandas/io/parsers/readers.py": 7899068668225389287, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_setops.py": 9991233160569430204, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py": 6152202474302791232, + "frontend/src/lib/ui/Card.svelte": 3442526978752993023, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_size.py": 14032390806503440750, + "venv/lib/python3.13/site-packages/pygments/lexers/teraterm.py": 16132676290138105984, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/callback/gh18335.f90": 1126438609189294255, + "backend/src/api/routes/translate/_run_list_routes.py": 1259398917100338978, + "backend/src/plugins/mapper.py": 17959627965235532841, + "backend/src/plugins/translate/dictionary.py": 2903767700173238799, + "venv/lib/python3.13/site-packages/_pytest/deprecated.py": 5452408732344157294, + "venv/lib/python3.13/site-packages/pygments/formatters/latex.py": 7514533384468139434, + "backend/tests/scripts/test_clean_release_tui.py": 14700450036639944764, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_clip.py": 8087139801274517318, + "venv/lib/python3.13/site-packages/numpy/f2py/_src_pyf.py": 546976622482819095, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_autocorr.py": 1092316868398391792, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_size.py": 12449835577388069407, + "venv/lib/python3.13/site-packages/sqlalchemy/exc.py": 6372950288664776625, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/json.py": 4660603129768960095, + "backend/src/plugins/translate/_llm_parse.py": 3278211416813203155, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/constants.pyi": 4415188581374004936, + "venv/lib/python3.13/site-packages/pip/_internal/commands/inspect.py": 1401259241736437656, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/METADATA": 5045041742469375466, + "venv/lib/python3.13/site-packages/uvicorn/middleware/wsgi.py": 9179913252056394958, + "backend/src/core/utils/superset_context_extractor/_filters.py": 281666313889333545, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/useless_applicator_schemas.py": 8395157526634674143, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_categorical.py": 1329115818264527103, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_dataframe.py": 14945138617962156057, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_qcut.py": 8972418112914954758, + "venv/lib/python3.13/site-packages/pygments/lexers/c_cpp.py": 1211842877043321095, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_frequencies.py": 14039315221824123200, + "venv/lib/python3.13/site-packages/httpcore/_async/connection.py": 2155744160496556069, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/auto.py": 15947958974558543657, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_pytables_missing.py": 12154582133989896069, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/__version__.py": 14138134075118474134, + "venv/lib/python3.13/site-packages/pip/_internal/commands/help.py": 4175797322922912326, + "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/scipy_sparse.py": 2091608752719976909, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/usecols/test_strings.py": 7379299916213794543, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_common.py": 9446944526144164255, + "venv/lib/python3.13/site-packages/numpy/_core/_multiarray_umath.cpython-313-x86_64-linux-gnu.so": 2888939866336522308, + "frontend/src/lib/components/layout/__tests__/sidebarNavigation.test.js": 8459006438402290167, + "venv/lib/python3.13/site-packages/smmap/buf.py": 18231775424238352734, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/filters/__init__.py": 835924536855006596, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_get.py": 10255752806860493777, + "venv/lib/python3.13/site-packages/gitdb/db/loose.py": 17467413653016810702, + "venv/lib/python3.13/site-packages/websockets/http11.py": 11022534176398053082, + "venv/lib/python3.13/site-packages/pydantic/_internal/_namespace_utils.py": 5237766366340181382, + "backend/src/core/cot_logger.py": 12977179701814261121, + "venv/lib/python3.13/site-packages/sqlalchemy/connectors/__init__.py": 17194870661869873083, + "venv/lib/python3.13/site-packages/httpcore/_backends/sync.py": 576247220834179928, + "backend/src/plugins/translate/_llm_call.py": 13441764941895838344, + "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_timedelta.py": 364160935264757405, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/__init__.py": 1923528231486706442, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_s390_unix.h": 5161826643658505126, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/masked/test_arrow_compat.py": 12986187285988432338, + "venv/lib/python3.13/site-packages/pandas/io/parsers/base_parser.py": 15148258424429418380, + "venv/lib/python3.13/site-packages/pandas/io/parquet.py": 14415622950469421518, + "venv/lib/python3.13/site-packages/numpy/_core/_asarray.py": 3468915833437229425, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/__init__.py": 13331622784664204066, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_dropna.py": 3168969662216766293, + "venv/lib/python3.13/site-packages/jose/backends/__init__.py": 16581763658239070112, + "venv/lib/python3.13/site-packages/attr/_typing_compat.pyi": 2823472697859409877, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/nditer.py": 10038360623032425884, + "venv/lib/python3.13/site-packages/fastapi/security/__init__.py": 1345944646061334046, + "venv/lib/python3.13/site-packages/referencing/retrieval.py": 11921179805977833120, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_api.py": 5813060676255093777, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/string/test_astype.py": 10171766562093740708, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_formats.py": 13500155167624433622, + "venv/lib/python3.13/site-packages/uvicorn/middleware/proxy_headers.py": 13206297306768491360, + "venv/lib/python3.13/site-packages/pygments/lexers/carbon.py": 6753624244809529841, + "frontend/build/_app/immutable/chunks/DA0oX2nF.js": 4762485859359244720, + "backend/src/models/config.py": 7631082065091961320, + "backend/src/plugins/translate/service_bulk_replace.py": 5355744069308185607, + "venv/lib/python3.13/site-packages/numpy/lib/_iotools.pyi": 12873243737872788349, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py": 1331438198531942242, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/WHEEL": 8600534672961461758, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayobject.h": 4345432890284821918, + "frontend/src/lib/components/translate/TranslationRunProgress.svelte": 18041933754930100165, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/incfile.f90": 4348588746493647387, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/__init__.py": 4014740126161973332, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufunc_config.pyi": 2005481648919369399, + "venv/lib/python3.13/site-packages/pydantic/deprecated/config.py": 12280996227531856230, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_compare.py": 3079569478684646491, + "frontend/playwright-report/data/dcf41bdb395adaf70707a711375fd3b464dd384f.webm": 3819814233647777883, + "backend/src/plugins/translate/orchestrator_aggregator.py": 2072358957289443762, + "venv/lib/python3.13/site-packages/authlib/jose/drafts/__init__.py": 4770885427721822507, + "venv/lib/python3.13/site-packages/pip/_internal/operations/freeze.py": 3469845570614985559, + "venv/lib/python3.13/site-packages/pandas/core/algorithms.py": 487939626203097713, + "backend/git_repos/remote/test-repo.git/objects/6f/85e20ce3ef98cf07a2f102498b71b9462552c5": 3012017807908986452, + "frontend/src/lib/components/dataset-review/__tests__/source_intake_panel.ux.test.js": 13445861056598482363, + "backend/src/models/dataset_review_pkg/_session_models.py": 16030450529414863096, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arrayprint.py": 5912583751693302370, + "venv/lib/python3.13/site-packages/pip/_internal/models/scheme.py": 4101322315594430874, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/chararray.pyi": 17340224970247832290, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/__init__.py": 293004106962245584, + "venv/lib/python3.13/site-packages/numpy/_core/shape_base.py": 3996519099530770308, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7523/jwt_bearer.py": 6973859422068490274, + "venv/lib/python3.13/site-packages/passlib/utils/decor.py": 21351391767102899, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_repeat.py": 9155935990114743583, + "venv/lib/python3.13/site-packages/python_multipart/decoders.py": 14252672585219598429, + "venv/lib/python3.13/site-packages/pygments/lexers/mosel.py": 1877592344012288438, + "frontend/build/_app/immutable/nodes/30.DnYtytFL.js": 2391068517706387105, + "backend/git_repos/remote/test-repo.git/objects/f7/6ee984d9d47c3cd0b362fdf60a47162bbc202d": 5351983130474596028, + "backend/src/plugins/storage/plugin.py": 17070362975404691950, + "venv/lib/python3.13/site-packages/attr/__init__.py": 14436902698244718082, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/azure.py": 13529763490186254462, + "venv/lib/python3.13/site-packages/numpy/_core/_string_helpers.pyi": 12043292763005874815, + "backend/src/services/profile_utils.py": 3954310438409803447, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/__init__.py": 11850945878149145990, + "venv/lib/python3.13/site-packages/_pytest/mark/structures.py": 12237146603608917650, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_distutils.py": 1948707545068786, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/groupby.py": 12749730954888633240, + "frontend/src/lib/api/translate/target-schema.js": 10665479411127476571, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/__init__.py": 1197579313959289096, + "venv/lib/python3.13/site-packages/pygments/lexers/oberon.py": 15220143799603451830, + "venv/lib/python3.13/site-packages/websockets/legacy/__init__.py": 12332512329533591682, + "venv/lib/python3.13/site-packages/attrs/validators.py": 10346563361083429998, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/dotenv.py": 5872848911499749500, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_tools.py": 13994164937603424236, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_na_values.py": 13527837495439739279, + "venv/lib/python3.13/site-packages/pluggy/_manager.py": 18202550145040079612, + "venv/lib/python3.13/site-packages/httpx/_content.py": 1301854837767395687, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/__main__.py": 8412594868333244844, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_combine_first.py": 11425059090050867171, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nbit_base_example.pyi": 8571452382806614924, + "venv/lib/python3.13/site-packages/PIL/SpiderImagePlugin.py": 12234762087257163606, + "frontend/build/_app/immutable/chunks/CjoRN64c.js": 16472953773693067178, + "frontend/build/_app/immutable/chunks/Cr-9eaXZ.js": 55845366387923127, + "venv/lib/python3.13/site-packages/pandas/core/indexes/range.py": 3838277376774246164, + "frontend/src/components/git/GitManager.svelte": 2759220622954168718, + "venv/lib/python3.13/site-packages/greenlet/CObjects.cpp": 3454797518210223926, + "venv/lib/python3.13/site-packages/pygments/lexers/forth.py": 17623561228839319663, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f77comments.f": 4801926170672147659, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_casting_unittests.py": 18157503533859249155, + "venv/lib/python3.13/site-packages/starlette/staticfiles.py": 11256974306202558529, + "venv/lib/python3.13/site-packages/starlette/templating.py": 9242638124487797988, + "venv/lib/python3.13/site-packages/websockets/sync/connection.py": 2791040669094103200, + "venv/lib/python3.13/site-packages/pandas/core/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/array.py": 12658302948819867972, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_add_prefix_suffix.py": 8367793476246001244, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/indexable.py": 4131796922597075758, + "venv/lib/python3.13/site-packages/pygments/lexers/dns.py": 17149871769553794654, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_dtypes.py": 7550022036887594386, + "venv/lib/python3.13/site-packages/greenlet/tests/test_extension_interface.py": 11693583111513457974, + "venv/lib/python3.13/site-packages/pygments/lexers/webmisc.py": 9530962803076253849, + "frontend/src/lib/stores/assistantChat.js": 13807808925025688939, + "venv/lib/python3.13/site-packages/pygments/lexers/console.py": 18266795648198475028, + "frontend/build/_app/immutable/nodes/0.CWnMmjSc.js": 10108377383693638092, + "venv/lib/python3.13/site-packages/pydantic/aliases.py": 14481980467204711659, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/ecdsa/rfc6979.py": 11564966030899162026, + "venv/lib/python3.13/site-packages/pip/_internal/utils/packaging.py": 15555781487631855604, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_operators.py": 12686786829906210592, + "venv/lib/python3.13/site-packages/greenlet/__init__.py": 3447613556981242475, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_iteration.py": 2118501258411211851, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/pickleable.py": 7712040860601343075, + "venv/lib/python3.13/site-packages/numpy/_core/_methods.py": 16805668769357938792, + "venv/lib/python3.13/site-packages/pandas/core/tools/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_regression.py": 6742646011852052645, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_reindex.py": 15680924058960901067, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/twodim_base.pyi": 10156504423258357540, + "venv/lib/python3.13/site-packages/numpy/core/_dtype.py": 2806449741844148191, + "venv/lib/python3.13/site-packages/passlib/__init__.py": 6987142392711441525, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_constructors.py": 17392287676196409733, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_timestamp_method.py": 11393911418463808195, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/test_interval_new.py": 3893421355544517336, + "venv/lib/python3.13/site-packages/ecdsa/numbertheory.py": 13538480862642502330, + "venv/lib/python3.13/site-packages/referencing/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/styles/lilypond.py": 12486578704132023691, + "venv/lib/python3.13/site-packages/sqlalchemy/event/__init__.py": 16182540084654095394, + "venv/lib/python3.13/site-packages/referencing/tests/test_core.py": 8280983300775878144, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_mrecords.py": 15952147778503828707, + "venv/lib/python3.13/site-packages/pygments/styles/murphy.py": 8177992406082781615, + "venv/lib/python3.13/site-packages/pandas/core/arrays/string_arrow.py": 16997970607998635570, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_orm_types.py": 5508682532707462217, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_values.py": 430620320423334461, + "venv/lib/python3.13/site-packages/six-1.17.0.dist-info/METADATA": 6502714564886871819, + "venv/lib/python3.13/site-packages/numpy/_typing/_nested_sequence.py": 7827259347937485408, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/passlib/handlers/des_crypt.py": 15304795681178011265, + "venv/lib/python3.13/site-packages/rsa/py.typed": 11041940105507257053, + "venv/lib/python3.13/site-packages/numpy/tests/test_scripts.py": 5790352482583964348, + "venv/lib/python3.13/site-packages/pydantic_settings/main.py": 17272314000918984790, + "venv/lib/python3.13/site-packages/pandas/tests/computation/test_compat.py": 11655000938111420543, + "venv/lib/python3.13/site-packages/pandas/io/formats/style.py": 13235403689320479165, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/relationships.py": 8401569216905291119, + "frontend/src/routes/+layout.ts": 8392799000856778740, + "venv/lib/python3.13/site-packages/pip/_internal/commands/hash.py": 11824898770873127699, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/__init__.py": 1798074863773727377, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/toml.py": 2225382735669153136, + "venv/lib/python3.13/site-packages/passlib/utils/compat/__init__.py": 17369882236606423129, + "venv/lib/python3.13/site-packages/_cffi_backend.cpython-313-x86_64-linux-gnu.so": 829323374625147265, + "venv/lib/python3.13/site-packages/pyasn1/type/tagmap.py": 14075859042659927673, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_common.h": 14732581790650403546, + "frontend/src/lib/components/dataset-review/__tests__/us3_execution_batch.ux.test.js": 13416996904332574966, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_html.py": 7732330576029516854, + "frontend/src/components/DynamicForm.svelte": 12658559315809907844, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/METADATA": 12295263493152296681, + "backend/git_repos/remote/test-repo.git/hooks/commit-msg.sample": 13435789416588783681, + "venv/lib/python3.13/site-packages/jeepney/tests/secrets_introspect.xml": 10717038359151125278, + "venv/lib/python3.13/site-packages/pandas/compat/pickle_compat.py": 11073483984394766474, + "frontend/src/lib/ui/HelpTooltip.svelte": 15082693035830243831, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timestamps.pyi": 51728851886466199, + "frontend/build/_app/immutable/nodes/18.X9qqmMrM.js": 10317790872480568902, + "backend/src/services/clean_release/repositories/approval_repository.py": 15069637305272665109, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/METADATA": 15987199384245264478, + "venv/lib/python3.13/site-packages/numpy/f2py/f2py2e.pyi": 14181518821845356636, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/heuristics.py": 1422768761337195135, + "venv/lib/python3.13/site-packages/smmap-5.0.2.dist-info/LICENSE": 8177430849046795595, + "venv/lib/python3.13/site-packages/secretstorage/py.typed": 15130871412783076140, + "backend/src/services/clean_release/__tests__/test_report_builder.py": 14655761033823243898, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/METADATA": 12747626683405487434, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_unix.h": 9608771997528633681, + "venv/lib/python3.13/site-packages/numpy/random/_pickle.py": 7774620933480975313, + "venv/lib/python3.13/site-packages/numpy/_core/records.pyi": 14194354215405544730, + "venv/lib/python3.13/site-packages/pygments/styles/stata_light.py": 16319330015324455277, + "venv/lib/python3.13/site-packages/pygments/lexers/hare.py": 8693002231020751711, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/_meson.py": 5735043585893007971, + "venv/lib/python3.13/site-packages/pydantic/v1/json.py": 16596969681914729251, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_doc.py": 7865575374100528149, + "venv/lib/python3.13/site-packages/attr/setters.py": 12467854389745942025, + "venv/lib/python3.13/site-packages/pygments/lexers/minecraft.py": 10133579583270214110, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_equals.py": 9903250467264848187, + "venv/lib/python3.13/site-packages/pydantic/types.py": 785880062468926292, + "venv/lib/python3.13/site-packages/pygments/lexers/arrow.py": 6699009974224818979, + "venv/lib/python3.13/site-packages/pydantic/_internal/_known_annotated_metadata.py": 9308620143218174987, + "venv/lib/python3.13/site-packages/numpy/_core/strings.pyi": 1981676808027146409, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/period/test_reductions.py": 8258332365408303156, + "frontend/src/lib/api/assistant.js": 15470667170083225911, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_fillna.py": 16297834601116528166, + "frontend/build/_app/immutable/nodes/14.DQdp2XM0.js": 13691839198161634025, + "backend/src/api/routes/git/_repo_lifecycle_routes.py": 6605622512801609889, + "frontend/e2e/tests/live-project-check.e2e.js": 2548440031836033830, + "venv/lib/python3.13/site-packages/pydantic/v1/env_settings.py": 6194387033830177219, + "venv/lib/python3.13/site-packages/fastapi/exception_handlers.py": 9907950997607808699, + "venv/lib/python3.13/site-packages/pip/_internal/utils/_log.py": 13011536737418204268, + "venv/lib/python3.13/site-packages/pandas/core/reshape/melt.py": 14109947554124551986, + "venv/lib/python3.13/site-packages/attr/_next_gen.py": 16353246941851015420, + "venv/lib/python3.13/site-packages/numpy/_core/tests/_locales.py": 18178500267053825979, + "venv/lib/python3.13/site-packages/pygments/lexers/roboconf.py": 1335271183806115470, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_easter.py": 3397863170068576196, + "venv/lib/python3.13/site-packages/pygments/lexers/verification.py": 16645885125604874183, + "venv/lib/python3.13/site-packages/pandas/tests/io/generate_legacy_storage_files.py": 11015954144633661960, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_types.py": 4083297168618981717, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/warnings.py": 2552021607611112605, + "venv/lib/python3.13/site-packages/PIL/_imaging.cpython-313-x86_64-linux-gnu.so": 1425926264271197601, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/meson.build": 17468163147765825687, + "venv/lib/python3.13/site-packages/pygments/lexers/cplint.py": 13990118342267278047, + "venv/lib/python3.13/site-packages/urllib3-2.6.2.dist-info/RECORD": 15194367076254806710, + "venv/lib/python3.13/site-packages/httpx/_api.py": 6697370469329778523, + "venv/lib/python3.13/site-packages/numpy/random/_sfc64.cpython-313-x86_64-linux-gnu.so": 17186695607612591922, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_setops.py": 8622608042929141013, + "venv/lib/python3.13/site-packages/numpy/f2py/auxfuncs.pyi": 10077265709692546934, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_convert_dtypes.py": 5005259275646154894, + "venv/lib/python3.13/site-packages/pyasn1/codec/native/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/cacert.pem": 15624463015628939254, + "venv/lib/python3.13/site-packages/git/__init__.py": 15867730798565725003, + "backend/src/schemas/settings.py": 7182606947764184429, + "backend/git_repos/remote/test-repo.git/hooks/update.sample": 8204581436750313444, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/filesize.py": 13234856188049714485, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/recfunctions.py": 18330899924171767482, + "venv/lib/python3.13/site-packages/git/db.py": 6680123567509774609, + "venv/lib/python3.13/site-packages/pip/_internal/models/target_python.py": 422323125651848065, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_compare.py": 171535659467902751, + "venv/lib/python3.13/site-packages/httpcore/_backends/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/authenticate_client.py": 16886645731942472285, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/comparisons.pyi": 9338084426044982038, + "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/RECORD": 7266315886702289726, + "frontend/src/lib/api/reports.js": 2328857814720054000, + "venv/lib/python3.13/site-packages/pygments/__main__.py": 13200500591994479045, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/parsing.pyi": 11967691665766452312, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/exc.py": 3242780937124999391, + "venv/lib/python3.13/site-packages/apscheduler/triggers/interval.py": 3964550092873794670, + "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_linalg.py": 2939739913218718132, + "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/tokens_mixins.py": 9923721909178724437, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/publicmod.f90": 2174121054736811903, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_compat.py": 11481259393140789881, + "venv/lib/python3.13/site-packages/websockets/sync/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_internal/commands/index.py": 16715578868094112894, + "venv/lib/python3.13/site-packages/pygments/lexers/_lilypond_builtins.py": 1766946089314631488, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/WHEEL": 5160964596297665692, + "frontend/src/lib/stores/__tests__/test_datasetReviewSession.js": 12620073136419991103, + "backend/tests/test_maintenance_service.py": 16353704909990612862, + "venv/lib/python3.13/site-packages/click/globals.py": 18353671282454331523, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_contains.py": 5273759677032634868, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_crackfortran.py": 10278720705326601943, + "venv/lib/python3.13/site-packages/pandas/io/stata.py": 14370692318835340323, + "backend/tests/services/clean_release/test_policy_resolution_service.py": 3471271299977247598, + "venv/lib/python3.13/site-packages/numpy/lib/mixins.py": 7404729635424818497, + "venv/lib/python3.13/site-packages/sqlalchemy/util/tool_support.py": 4926732415520779988, + "frontend/src/routes/settings/__tests__/settings_page.integration.test.js": 4898515600493251972, + "venv/lib/python3.13/site-packages/numpy/_core/_umath_tests.cpython-313-x86_64-linux-gnu.so": 3478629877770507853, + "venv/lib/python3.13/site-packages/greenlet/tests/fail_clearing_run_switches.py": 3020294789560975101, + "venv/lib/python3.13/site-packages/pygments/lexers/testing.py": 17148598391210353576, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_validators.py": 14178329676643700151, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_deprecations.py": 16367195310156359251, + "venv/lib/python3.13/site-packages/pycparser/c_ast.py": 5942107079119742, + "frontend/src/lib/components/dataset-review/SemanticLayerReview.svelte": 10805621354490209991, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_setops.py": 17350958906336246626, + "backend/src/plugins/translate/orchestrator_sql.py": 15420456250044832567, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/implicit.py": 5400555157488808948, + "venv/lib/python3.13/site-packages/pillow.libs/libbrotlidec-b57ddf63.so.1.2.0": 10032590058372320813, + "venv/lib/python3.13/site-packages/pygments/styles/friendly_grayscale.py": 16840106759769837649, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_s3.py": 17425535047477778484, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust.abi3.so": 2537152913308578487, + "venv/lib/python3.13/site-packages/jsonschema-4.25.1.dist-info/METADATA": 4954909612926293404, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_constructors.py": 9815164146739254076, + "venv/lib/python3.13/site-packages/pandas/io/excel/_util.py": 6664989864423807444, + "venv/lib/python3.13/site-packages/pygments/styles/borland.py": 17570558758932580659, + "venv/lib/python3.13/site-packages/websockets/extensions/permessage_deflate.py": 12957105912018691390, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_skiprows.py": 8764515842253490735, + "venv/lib/python3.13/site-packages/authlib/common/security.py": 2291133227104016684, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py3-objarr.npz": 12369168483236619421, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_string.py": 15542851215119662814, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/instrumentation.py": 13198832283145198959, + "venv/lib/python3.13/site-packages/pip/_vendor/certifi/core.py": 2300277198409164253, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/literal.py": 5641382379370828704, + "venv/lib/python3.13/site-packages/numpy/_utils/_pep440.py": 15854257948148516490, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_coercion.py": 3339075591248270762, + "venv/lib/python3.13/site-packages/fastapi/temp_pydantic_v1_params.py": 9436036880518047720, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/intranges.py": 12536174834761591006, + "venv/lib/python3.13/site-packages/python_multipart/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/apscheduler/jobstores/rethinkdb.py": 16413299263077970925, + "venv/lib/python3.13/site-packages/PIL/GbrImagePlugin.py": 7681313333602257802, + "venv/lib/python3.13/site-packages/pydantic/v1/color.py": 14545509649623975912, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/dtype.py": 5553691086633215767, + "venv/lib/python3.13/site-packages/pygments/formatters/other.py": 13124903290103898118, + "venv/lib/python3.13/site-packages/pygments/lexers/actionscript.py": 8829560731160428621, + "frontend/src/lib/components/dataset-review/ExecutionMappingReview.svelte": 6341989866442424314, + "venv/lib/python3.13/site-packages/numpy/__config__.py": 15794735729525094396, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/RECORD": 6518517239543344179, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_chunksize.py": 7107619871245389835, + "venv/lib/python3.13/site-packages/pygments/lexers/futhark.py": 10102535873433759899, + "venv/lib/python3.13/site-packages/pygments/lexers/crystal.py": 3579547906957125755, + "venv/lib/python3.13/site-packages/sqlalchemy/py.typed": 15130871412783076140, + "venv/bin/pyrsa-keygen": 8222542582170363672, + "venv/lib/python3.13/site-packages/cffi/__init__.py": 13427266446746498548, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ndarray_misc.pyi": 16219573290116396099, + "venv/lib/python3.13/site-packages/pandas/_libs/window/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_categorical_equal.py": 7942323667866280872, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate_nonkeyword_arguments.py": 11676809974120007408, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/wrappers.py": 315409799569602977, + "venv/lib/python3.13/site-packages/pygments/lexers/pascal.py": 5992422120590352714, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_construct_object_arr.py": 4725156416161661681, + "venv/lib/python3.13/site-packages/pygments/lexers/algebra.py": 9651893228421050246, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/bulk_persistence.py": 2307818727114646866, + "venv/lib/python3.13/site-packages/apscheduler/triggers/cron/expressions.py": 8015786996064244656, + "frontend/src/components/tools/DebugTool.svelte": 17267560034225794881, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/mypy.py": 823265492261272631, + "venv/lib/python3.13/site-packages/numpy/_core/multiarray.pyi": 3494871767602648807, + "venv/lib/python3.13/site-packages/pip/_internal/models/search_scope.py": 9282393652860589543, + "venv/lib/python3.13/site-packages/pydantic/_internal/_core_utils.py": 13248004771466837645, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_to_frame.py": 4303613319747945709, + "venv/lib/python3.13/site-packages/numpy/testing/__init__.pyi": 8126257788928282891, + "venv/lib/python3.13/site-packages/numpy/_core/_asarray.pyi": 3940937389249665490, + "venv/lib/python3.13/site-packages/passlib/ifc.py": 14479133654556657428, + "backend/src/services/superset_lookup_service.py": 16520439978260397080, + "venv/lib/python3.13/site-packages/pandas/plotting/_misc.py": 10202078355301731720, + "backend/src/plugins/translate/orchestrator_retry.py": 7628306124703690760, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pluggy/_warnings.py": 2664977718908223842, + "venv/lib/python3.13/site-packages/_pytest/helpconfig.py": 3033477806668470951, + "backend/src/core/auth/oauth.py": 9925908783612235042, + "venv/lib/python3.13/site-packages/pandas/tests/internals/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/apscheduler/triggers/calendarinterval.py": 12481650996882675949, + "venv/lib/python3.13/site-packages/httpcore/_sync/interfaces.py": 1532245423878428608, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/datasource.pyi": 16752667877866430577, + "venv/lib/python3.13/site-packages/fastapi/requests.py": 14587947416691824903, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/numerictypes.py": 5719374287454872555, + "venv/lib/python3.13/site-packages/cryptography/hazmat/backends/__init__.py": 18019562641348687547, + "venv/lib/python3.13/site-packages/passlib/handlers/digests.py": 18158237109145814857, + "venv/lib/python3.13/site-packages/attrs/filters.py": 6844006230924162452, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py": 18325640697829098192, + "venv/lib/python3.13/site-packages/pygments/lexers/q.py": 15426466074881683794, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libcom_err-2abe824b.so.2.1": 12870528025628871295, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/applicator": 6870991911243684132, + "venv/lib/python3.13/site-packages/pygments/styles/autumn.py": 8750937312198920971, + "venv/lib/python3.13/site-packages/pydantic/_internal/_import_utils.py": 4029157986210295967, + "venv/lib/python3.13/site-packages/pygments/lexers/vip.py": 11287963054551122004, + "venv/lib/python3.13/site-packages/rpds/rpds.cpython-313-x86_64-linux-gnu.so": 561326734302492859, + "venv/lib/python3.13/site-packages/pydantic/deprecated/json.py": 17692639396786690144, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval.py": 1228451182688768814, + "backend/src/api/routes/dataset_review_pkg/_routes.py": 11040245149296528009, + "venv/lib/python3.13/site-packages/websockets/typing.py": 13268801935274185287, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multithreading.py": 12547048606098186681, + "venv/lib/python3.13/site-packages/gitdb/test/test_example.py": 3039934065817753241, + "venv/lib/python3.13/site-packages/pandas/core/indexes/category.py": 18192569199634406001, + "venv/lib/python3.13/site-packages/pandas/io/orc.py": 12754290195886557668, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/format": 12697928260201325593, + "venv/lib/python3.13/site-packages/requests/models.py": 9104898985870652256, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/referencing/_attrs.pyi": 10030665705880994025, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/serializer.py": 8708767945343850816, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_partial.py": 3151286293440416036, + "venv/lib/python3.13/site-packages/numpy/_core/multiarray.py": 4484782354376574355, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/constants.pyi": 15633065380510755171, + "venv/lib/python3.13/site-packages/ecdsa/eddsa.py": 15966858338456571506, + "venv/lib/python3.13/site-packages/pandas/util/_test_decorators.py": 17930801441803090445, + "venv/lib/python3.13/site-packages/pandas/_libs/lib.cpython-313-x86_64-linux-gnu.so": 6452315003728497116, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_searchsorted.py": 11161416745923343741, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_split_partition.py": 2715491071550545667, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/multiarray.pyi": 6368268452184570195, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py": 9888795404090331319, + "venv/lib/python3.13/site-packages/PIL/_imagingft.pyi": 1385456134120145584, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/endpoints.py": 18334891787808122725, + "venv/lib/python3.13/site-packages/pandas/arrays/__init__.py": 10005095663840461954, + "venv/lib/python3.13/site-packages/git/objects/base.py": 11498407361286170399, + "venv/lib/python3.13/site-packages/PIL/_webp.pyi": 18222325750818585549, + "frontend/src/components/llm/ValidationReport.svelte": 11810571826279890996, + "venv/lib/python3.13/site-packages/h11/py.typed": 12358286306858197118, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_interface.py": 13648006002292914247, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_real.py": 5283415082530228716, + "frontend/src/routes/datasets/__tests__/ColumnsTable.test.js": 15883951776898228284, + "venv/lib/python3.13/site-packages/pandas/api/interchange/__init__.py": 181911269762882069, + "frontend/build/_app/immutable/chunks/CC_MCBkD.js": 11709343780956289454, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/claims.py": 11853156183819186599, + "frontend/src/lib/components/health/PolicyForm.svelte": 16556369076015031814, + "venv/lib/python3.13/site-packages/numpy/lib/array_utils.py": 18135114588643176359, + "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py": 2375452080667815941, + "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/tests/groupby/transform/test_numba.py": 8250377774229977284, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ndarray.pyi": 14369009813591437391, + "venv/lib/python3.13/site-packages/numpy/_core/memmap.py": 4093510602708416858, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_indexing.py": 16291207621268530224, + "venv/lib/python3.13/site-packages/ecdsa/test_numbertheory.py": 2117130219401053225, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_reindex.py": 15794750188594767026, + "venv/lib/python3.13/site-packages/passlib/utils/des.py": 2650106381178222229, + "frontend/build/_app/immutable/nodes/17.Dl6K4370.js": 14461856651958270415, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/api.py": 9829629144629841277, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_constructors.py": 16197656939536784142, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_replace.py": 4953527309376861139, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_timeseries_window.py": 1973365560758236222, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_readers.py": 2136472634307645842, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_repr.py": 7552782621374439569, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufunclike.pyi": 12215374902556647369, + "venv/lib/python3.13/site-packages/pandas/core/computation/align.py": 13027916530558901817, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/quantile.py": 17341029201525362074, + "venv/lib/python3.13/site-packages/cffi/backend_ctypes.py": 2042566833861899211, + "venv/lib/python3.13/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2": 13105940093474848953, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__multiarray_api.c": 9134176670140958459, + "venv/lib/python3.13/site-packages/keyring/backends/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/typing_inspection/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py": 5995058808539530576, + "venv/lib/python3.13/site-packages/numpy/f2py/src/fortranobject.h": 5980733638838895780, + "venv/lib/python3.13/site-packages/passlib/handlers/oracle.py": 12959175637015399815, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_frame_equal.py": 12459816298158655274, + "venv/lib/python3.13/site-packages/apscheduler/executors/pool.py": 10344126569001032241, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/__init__.py": 5933622200264572885, + "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/pyasn1/type/useful.py": 10313387611927801339, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/revocation.py": 16178499278312777474, + "venv/lib/python3.13/site-packages/pandas/core/methods/to_dict.py": 4653628436393663485, + "venv/lib/python3.13/site-packages/numpy/f2py/f90mod_rules.py": 2953876934840155920, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_indexing.py": 4334578480714520407, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_datetimes.py": 7889573945417063183, + "venv/lib/python3.13/site-packages/pygments-2.19.2.dist-info/RECORD": 2688648742701423549, + "venv/lib/python3.13/site-packages/_pytest/_code/__init__.py": 6211607282116942091, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7516/models.py": 5656065513234782067, + "venv/lib/python3.13/site-packages/numpy/_typing/_nbit_base.py": 7446626038222262489, + "venv/lib/python3.13/site-packages/numpy/_utils/__init__.py": 7731065084036767848, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/gh25337/use_data.f90": 14624074967635860696, + "venv/lib/python3.13/site-packages/PIL/ImageFilter.py": 10974179993355630141, + "venv/lib/python3.13/site-packages/uvicorn/loops/asyncio.py": 16496916527760969173, + "frontend/src/lib/stores/translationRun.js": 10005138082029605368, + "frontend/src/lib/components/ui/MultiSelect.svelte": 1475503303018683038, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/char.pyi": 1639810799219814643, + "frontend/src/routes/datasets/review/[id]/__tests__/dataset_review_workspace.ux.test.js": 4105775024258653726, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_parse_dates.py": 7597935994945336408, + "backend/src/services/mapping_service.py": 9713400496587758211, + "venv/lib/python3.13/site-packages/passlib/tests/test_ext_django_source.py": 15577951591316518967, + "venv/lib/python3.13/site-packages/numpy/ma/README.rst": 13203411621071845216, + "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/array_algos/transforms.py": 3773159138960141434, + "backend/src/core/utils/superset_compilation_adapter.py": 4974836712746468095, + "backend/tests/test_api_key_routes.py": 8620555141760963281, + "venv/lib/python3.13/site-packages/PIL/_imagingcms.pyi": 12476347428820346383, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/licenses/_spdx.py": 17182188548503720124, + "venv/lib/python3.13/site-packages/pydantic_settings/utils.py": 14396350455520958703, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_read_fwf.py": 13684564756628524738, + "venv/lib/python3.13/site-packages/_pytest/pytester_assertions.py": 1899505062406979663, + "venv/lib/python3.13/site-packages/numpy/f2py/diagnose.py": 503331864022631297, + "venv/lib/python3.13/site-packages/pandas/_version.py": 3480474785419232091, + "venv/lib/python3.13/site-packages/charset_normalizer/version.py": 9948878594498587774, + "venv/lib/python3.13/site-packages/pygments/lexers/supercollider.py": 15306357945850389082, + "venv/lib/python3.13/site-packages/pygments/lexers/_usd_builtins.py": 8671446144574174964, + "venv/lib/python3.13/site-packages/secretstorage/item.py": 15486045386471912693, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/__init__.py": 11157967642611612522, + "venv/lib/python3.13/site-packages/pandas/_libs/testing.cpython-313-x86_64-linux-gnu.so": 16758333404587340103, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/METADATA": 6438256145634479451, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/authorization_server.py": 724388765673082720, + "venv/lib/python3.13/site-packages/numpy/f2py/crackfortran.pyi": 9206355685192026844, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_dict.py": 808180749933361743, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_comment.py": 5603075924832933306, + "venv/lib/python3.13/site-packages/pip/_internal/operations/build/metadata_legacy.py": 9226692984248279094, + "venv/lib/python3.13/site-packages/sqlalchemy/pool/events.py": 13473858896579666058, + "backend/src/core/migration/__init__.py": 13075189211840127611, + "backend/src/core/superset_client/__init__.py": 13995635011522535664, + "venv/lib/python3.13/site-packages/fastapi/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_period.py": 15671388508498441412, + "venv/lib/python3.13/site-packages/websockets/imports.py": 1995356703044158461, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_polynomial.py": 3049262771098624825, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/licenses/LICENSE": 9235234428907927646, + "venv/lib/python3.13/site-packages/pip/_internal/models/wheel.py": 10473287225032326206, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq_py.py": 16054175754674285311, + "venv/lib/python3.13/site-packages/pygments/lexers/ldap.py": 17455983150181177257, + "venv/lib/python3.13/site-packages/numpy/lib/recfunctions.pyi": 10487441680587530350, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_quoted_character.py": 2316632434571797367, + "backend/src/services/maintenance/_dashboard_scanner.py": 1401108008906511280, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py": 5946672289916692272, + "venv/lib/python3.13/site-packages/pandas/_libs/groupby.cpython-313-x86_64-linux-gnu.so": 14931394220112658268, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7591/errors.py": 17581857895562494222, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_indexing.py": 7181087459615188551, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Jaro_py.py": 11991492232381887787, + "venv/lib/python3.13/site-packages/authlib/jose/drafts/_jwe_algorithms.py": 15219408648894515493, + "venv/lib/python3.13/site-packages/numpy/_core/_internal.py": 13056946834347643109, + "frontend/build/_app/immutable/chunks/C20922N0.js": 14681700380768364777, + "venv/lib/python3.13/site-packages/pygments/lexers/hexdump.py": 10665271113239513484, + "backend/src/scripts/seed_superset_load_test.py": 892949594919634674, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/caches/__init__.py": 11808051681178127650, + "backend/src/core/database.py": 9415540929365751667, + "backend/tests/test_translate_scheduler.py": 14274816721941617887, + "venv/lib/python3.13/site-packages/jaraco/functools/__init__.pyi": 2872039192528394677, + "venv/lib/python3.13/site-packages/numpy/doc/ufuncs.py": 11706048944901534664, + "backend/git_repos/remote/test-repo.git/objects/8c/4ea7958b7a7e140d27e1e7d8d1f9912fdf5992": 5862166356451798197, + "venv/lib/python3.13/site-packages/pandas/core/reshape/merge.py": 300205528811693975, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/__init__.py": 18036348770966744795, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/introspection.py": 14645217065508644154, + "venv/lib/python3.13/site-packages/starlette/middleware/sessions.py": 11719848399661632707, + "venv/lib/python3.13/site-packages/python_multipart-0.0.21.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/ma/core.pyi": 4829891173366130328, + "venv/lib/python3.13/site-packages/numpy/lib/_array_utils_impl.py": 14446508217220482719, + "venv/lib/python3.13/site-packages/pandas/core/construction.py": 10646956189518908985, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_api.py": 13739775047493489785, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_set_name.py": 9094608008538024609, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_accessor.py": 10074496835594855786, + "venv/lib/python3.13/site-packages/rapidfuzz/__init__.py": 12462153783886855740, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/writeonly.py": 14213960431308620600, + "frontend/playwright-report/index.html": 16542149899775356791, + "venv/lib/python3.13/site-packages/jsonschema_specifications/_core.py": 14812112544772987164, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_rolling_functions.py": 2255133375699086300, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/legacy/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/polynomial/hermite.py": 6617116180936986481, + "venv/lib/python3.13/site-packages/numpy/_utils/_inspect.py": 7029935879540617057, + "frontend/src/routes/settings/+page.ts": 3719008513710037840, + "venv/lib/python3.13/site-packages/pandas/core/nanops.py": 18291534943985310005, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_filter.py": 2388681477981649268, + "venv/lib/python3.13/site-packages/fastapi/cli.py": 13972351579061154035, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_datetime.py": 7456744745424297814, + "venv/lib/python3.13/site-packages/rapidfuzz/process.pyi": 6959881293311340830, + "venv/lib/python3.13/site-packages/psycopg2/_json.py": 9729420372294281405, + "venv/lib/python3.13/site-packages/PIL/JpegImagePlugin.py": 10621639599916796689, + "frontend/src/lib/components/assistant/__tests__/assistant_chat.integration.test.js": 13047006106880121194, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_set.py": 534498057184394558, + "venv/lib/python3.13/site-packages/pandas/core/indexers/utils.py": 5861072573716897447, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_timestamp.py": 12253372102602993034, + "backend/src/plugins/llm_analysis/scheduler.py": 14673660738877638091, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py": 2609365889369107154, + "venv/lib/python3.13/site-packages/pandas/_libs/interval.pyi": 15698173755300703836, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_file_handling.py": 732772718210067599, + "venv/lib/python3.13/site-packages/fastapi/background.py": 16533963020573865222, + "venv/lib/python3.13/site-packages/git/objects/tree.py": 10239027037919781330, + "venv/lib/python3.13/site-packages/certifi/core.py": 7472627735517449185, + "venv/lib/python3.13/site-packages/pandas/tests/computation/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/uvicorn/_subprocess.py": 13965754246493254447, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/__init__.py": 5863110456909134678, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/common/gh19161.f90": 7691871466158049079, + "venv/lib/python3.13/site-packages/numpy/_core/fromnumeric.py": 9409852116555866847, + "venv/lib/python3.13/site-packages/pandas/io/json/__init__.py": 12333505155070172626, + "venv/lib/python3.13/site-packages/pygments/lexers/mojo.py": 8616283481592061285, + "frontend/src/lib/components/assistant/AssistantClarificationCard.svelte": 6722890639215637790, + "backend/src/plugins/translate/_batch_proc.py": 5830558923416766212, + "backend/src/plugins/translate/preview_constants.py": 12447768695944862994, + "venv/lib/python3.13/site-packages/psycopg2/_ipaddress.py": 12332672835751787869, + "backend/src/plugins/translate/__tests__/test_executor.py": 17557965511167209685, + "venv/lib/python3.13/site-packages/pygments/lexers/parsers.py": 12372594608244797844, + "venv/lib/python3.13/site-packages/keyring/backend_complete.bash": 16589214602970214174, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_kind.py": 18178830861475480607, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/licenses/LICENSE": 13322127602069971876, + "venv/lib/python3.13/site-packages/pip/_internal/cli/main.py": 9304034369762028739, + "backend/tests/services/clean_release/test_demo_mode_isolation.py": 1970652424726919519, + "venv/lib/python3.13/site-packages/pandas/tests/base/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_core.py": 12712110303898046818, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_dtypes.py": 481191723198819568, + "venv/lib/python3.13/site-packages/pygments/lexers/maxima.py": 11824576541091274641, + "backend/src/plugins/storage/__init__.py": 5046554941488079204, + "venv/lib/python3.13/site-packages/PIL/BmpImagePlugin.py": 16682567630621529903, + "frontend/src/lib/components/reports/ReportDetailPanel.svelte": 16014663571033060148, + "backend/src/plugins/translate/__tests__/test_orthogonal_fixes.py": 264408615924319135, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/hiworld.f90": 6321872653169140461, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/util.py": 9373891872370603585, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein.py": 17993169044119596860, + "venv/lib/python3.13/site-packages/fastapi/encoders.py": 1914192268055730299, + "venv/lib/python3.13/site-packages/pydantic/dataclasses.py": 12384956801113860889, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_arrayterator.py": 1646530870049791291, + "frontend/src/routes/dashboards/health/__tests__/health_page.integration.test.js": 11653729504599199718, + "venv/lib/python3.13/site-packages/certifi/cacert.pem": 14727832973577663826, + "venv/lib/python3.13/site-packages/pandas/tests/generic/__init__.py": 15130871412783076140, + "frontend/src/lib/api/maintenance.js": 17611932083877701146, + "venv/lib/python3.13/site-packages/pip/_internal/cli/__init__.py": 11914508471759255927, + "venv/lib/python3.13/site-packages/authlib/integrations/httpx_client/utils.py": 617314300548081590, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_fileno.py": 15541504502174047167, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_regression.py": 9375525053479844400, + "venv/lib/python3.13/site-packages/python_multipart/exceptions.py": 5971058243218049183, + "venv/lib/python3.13/site-packages/pluggy/_callers.py": 1042673447718196223, + "venv/lib/python3.13/site-packages/passlib/utils/__init__.py": 11704122205941631503, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_byteswap.py": 5090287710338893350, + "venv/lib/python3.13/site-packages/pygments/lexers/configs.py": 7712797939104760185, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh27697.f90": 4990763135487995517, + "venv/lib/python3.13/site-packages/passlib/handlers/__init__.py": 3424087230285514388, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/_mapping.py": 17519715342700184302, + "venv/lib/python3.13/site-packages/pandas/io/formats/xml.py": 12235904458551067063, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_ccalendar.py": 8819357623337533489, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/create.py": 16693261531832306870, + "frontend/src/lib/components/dataset-review/SourceIntakePanel.svelte": 13922687579631047714, + "venv/lib/python3.13/site-packages/_pytest/assertion/truncate.py": 14000392306994773741, + "backend/src/services/clean_release/__init__.py": 18311663871116449547, + "venv/lib/python3.13/site-packages/httpx/_utils.py": 4836536051177895209, + "venv/lib/python3.13/site-packages/numpy/matrixlib/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/httpx-0.28.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/sqlalchemy/schema.py": 16029542421991709659, + "frontend/src/routes/datasets/MetricsTable.svelte": 6234185654078176376, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_apply_relabeling.py": 5600949862632014700, + "venv/lib/python3.13/site-packages/httpcore/_async/__init__.py": 491192949420297153, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_callback.py": 1689177048527329209, + "venv/lib/python3.13/site-packages/jsonschema/_typing.py": 13152346021901861822, + "venv/lib/python3.13/site-packages/pandas/core/arrays/numeric.py": 17834058423729918687, + "frontend/src/routes/settings/MigrationSettings.svelte": 7727089689198444946, + "venv/lib/python3.13/site-packages/h11/_version.py": 9334144031400715479, + "venv/lib/python3.13/site-packages/numpy/lib/tests/data/py2-objarr.npy": 9694707264403109829, + "venv/lib/python3.13/site-packages/pygments/lexers/_qlik_builtins.py": 1728058904137960444, + "backend/src/services/clean_release/repositories/publication_repository.py": 11208425895213508165, + "venv/lib/python3.13/site-packages/pandas/io/formats/console.py": 10370334487585281127, + "venv/lib/python3.13/site-packages/numpy/_core/printoptions.pyi": 16758392990920041462, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_sorting.py": 10523740688498427929, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/errors.py": 10750605030539582738, + "venv/lib/python3.13/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2": 5320647379976541240, + "venv/lib/python3.13/site-packages/pandas/_libs/sas.cpython-313-x86_64-linux-gnu.so": 16309838137741124637, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/utils.py": 3710235316419562274, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_rowcount.py": 6682800584070485197, + "venv/lib/python3.13/site-packages/passlib/handlers/cisco.py": 15004707325761459775, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_spinners.py": 15873416546130487469, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/env.py": 1254612137164491329, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_sorted.py": 1899608688401238388, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/datetimelike_accumulations.py": 14719894187829729175, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_round.py": 14996007456708990295, + "venv/lib/python3.13/site-packages/pydantic/config.py": 1450073446492183677, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_validate.py": 12789481642730855139, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_take.py": 1216902953519121176, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_array_to_datetime.py": 3467480435568672840, + "venv/lib/python3.13/site-packages/git/repo/fun.py": 9019364012746153312, + "frontend/src/routes/datasets/__tests__/DatasetPreview.test.js": 12281160027416292128, + "venv/lib/python3.13/site-packages/pandas/io/formats/css.py": 11288129826285529457, + "venv/lib/python3.13/site-packages/psycopg2/_range.py": 7184417109068014771, + "venv/lib/python3.13/site-packages/certifi/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log.csv": 221209423454319618, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm32_gcc.h": 3561524604274567339, + "venv/lib/python3.13/site-packages/pandas/util/_print_versions.py": 15326663505771588740, + "venv/lib/python3.13/site-packages/requests/sessions.py": 6936640856092320928, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/__init__.py": 15130871412783076140, + "frontend/src/routes/datasets/review/[id]/+page.svelte": 3248469759382215571, + "backend/src/core/auth/api_key.py": 698045354834612724, + "backend/src/services/sql_table_extractor.py": 2522819274015363166, + "venv/lib/python3.13/site-packages/keyring/backends/macOS/__init__.py": 1010937986753403630, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA_py.py": 2494967094400350388, + "backend/src/plugins/translate/_batch_insert.py": 12482635271028646257, + "venv/lib/python3.13/site-packages/pyasn1/type/tag.py": 13912273274509186651, + "venv/lib/python3.13/site-packages/pygments/styles/abap.py": 11543320440974964547, + "backend/src/models/__tests__/test_clean_release.py": 8187870494226758184, + "venv/lib/python3.13/site-packages/pydantic/v1/dataclasses.py": 7833468513057242440, + "frontend/src/routes/datasets/review/ReviewWorkspaceHeader.svelte": 15302107925819930527, + "venv/lib/python3.13/site-packages/attr/setters.pyi": 6670509359139243236, + "venv/lib/python3.13/site-packages/itsdangerous/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pydantic/v1/schema.py": 10008526732895436361, + "venv/lib/python3.13/site-packages/pygments/lexers/prql.py": 1159462562014166646, + "frontend/src/app.html": 10207534912546549080, + "backend/src/api/routes/clean_release_v2.py": 12814311709297749713, + "backend/src/api/routes/maintenance/_schemas.py": 9854015056764058803, + "backend/src/api/routes/translate/_correction_routes.py": 12437040676784563126, + "venv/lib/python3.13/site-packages/numpy/_core/_dtype.pyi": 17662618580381221543, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_value_attrspec.py": 7741590618654448240, + "venv/lib/python3.13/site-packages/jsonschema/tests/test_format.py": 1947585389944838076, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log10.csv": 13441294827017400897, + "venv/lib/python3.13/site-packages/pytest-9.0.2.dist-info/licenses/LICENSE": 1424673738228762254, + "venv/lib/python3.13/site-packages/fastapi/openapi/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/websockets/legacy/framing.py": 12759022769700230409, + "venv/lib/python3.13/site-packages/anyio/streams/file.py": 15232345967545920863, + "venv/lib/python3.13/site-packages/pip/_internal/utils/subprocess.py": 3095012838116670328, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/controller.py": 5450931608244830335, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_value_counts.py": 12340872812120847127, + "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/test_from_records.py": 12217508428903265797, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_find_common_type.py": 9581516171321396333, + "venv/lib/python3.13/site-packages/dotenv/cli.py": 7952654621986067973, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_indexing.py": 1926721846569184112, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_console.py": 11657469008721907972, + "venv/lib/python3.13/site-packages/pandas/io/sas/sas_constants.py": 14492427939536692313, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_html.py": 7947998260347730581, + "venv/lib/python3.13/site-packages/attr/_funcs.py": 5302917072419624193, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py": 3369246520501764730, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/hmac.py": 18132740541139891824, + "venv/lib/python3.13/site-packages/charset_normalizer/cd.py": 8687667152597941021, + "frontend/src/lib/components/assistant/__tests__/assistant_first_message.integration.test.js": 16494645867501045726, + "frontend/build/_app/immutable/chunks/C9EOgT5J.js": 5509721048432890523, + "frontend/src/lib/components/dataset-review/__tests__/validation_findings_panel.ux.test.js": 8994492423600483794, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_freq_attr.py": 17290447066681837965, + "backend/tests/test_translate_executor_filter.py": 11717560360659156703, + "frontend/build/_app/immutable/chunks/DsxtPyvP.js": 3746126985395053120, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/__init__.py": 15130871412783076140, + "venv/bin/pyrsa-priv2pub": 16766314338551408621, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/persistence.py": 17908437937265384125, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_validate.py": 2133732492454460539, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_join.py": 1697622393195784944, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi": 16312114056447366970, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_old_base.py": 191359377446257900, + "venv/lib/python3.13/site-packages/pygments/styles/sas.py": 12363791134941577382, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/licenses/LICENSE": 1641332741515411734, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/einsumfunc.pyi": 8902765738896588686, + "venv/lib/python3.13/site-packages/authlib/integrations/sqla_oauth2/__init__.py": 12911374670789466961, + "venv/lib/python3.13/site-packages/more_itertools-10.8.0.dist-info/WHEEL": 8600534672961461758, + "venv/lib/python3.13/site-packages/apscheduler/executors/twisted.py": 2695602672085615762, + "venv/lib/python3.13/site-packages/pandas/tests/extension/decimal/array.py": 1919242530821725197, + "venv/lib/python3.13/site-packages/PIL/PixarImagePlugin.py": 12061717157676819554, + "venv/lib/python3.13/site-packages/git/util.py": 7424113599506269603, + "venv/lib/python3.13/site-packages/passlib-1.7.4.dist-info/zip-safe": 15240312484046875203, + "venv/lib/python3.13/site-packages/PIL/Hdf5StubImagePlugin.py": 15654153796225833950, + "venv/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd": 1476688171642957054, + "frontend/src/components/git/BranchSelector.svelte": 12975425183125935169, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_isocalendar.py": 5704842983090753914, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_numba.py": 6409810497251251179, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/WHEEL": 12054782055241301457, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_item_selection.py": 1027989019709029615, + "venv/lib/python3.13/site-packages/pygments/lexers/ruby.py": 6898093948224302592, + "venv/lib/python3.13/site-packages/PIL/TiffTags.py": 8688883943071546469, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_arithmetic.py": 4858019700859362660, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_raises.py": 9678418010293693275, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_http_headers.py": 13187746870209705951, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_arithmetic.py": 976970179757115407, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/names.py": 705261158040926128, + "venv/lib/python3.13/site-packages/pygments/lexers/_css_builtins.py": 17478340487186531268, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA.pyi": 2700568594438441246, + "venv/lib/python3.13/site-packages/pyasn1/error.py": 11036037300994516747, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/assertion_session.py": 18109848200936213195, + "venv/lib/python3.13/site-packages/cryptography/x509/certificate_transparency.py": 11337143186866439208, + "venv/lib/python3.13/site-packages/cffi/_cffi_include.h": 13094899814611950155, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/core": 10616484054735611337, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_character/foo77.f": 4046503346951676582, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/json.py": 6429651405841289922, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7519/claims.py": 12645788445743898136, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_array.py": 12514884344165043136, + "frontend/src/lib/components/translate/__tests__/TargetSchemaHint.test.js": 2331331717663585059, + "venv/lib/python3.13/site-packages/keyring/backends/null.py": 12740996416911604870, + "frontend/build/_app/immutable/chunks/B0K5kI6n.js": 6208436857520817685, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_asfreq.py": 6162659555626011770, + "backend/git_repos/remote/test-repo.git/objects/99/38d17c3f4199e53e4d4ebc253fe9c840caa505": 8414792171590415839, + "venv/lib/python3.13/site-packages/PIL/_imagingtk.pyi": 18222325750818585549, + "backend/src/plugins/maintenance_banner.py": 13535851937983395493, + "frontend/build/_app/immutable/assets/AssistantChatPanel.D4L5jlt0.css": 10724144138366384732, + "venv/lib/python3.13/site-packages/anyio/to_thread.py": 12767326212338028587, + "venv/lib/python3.13/site-packages/pip/_internal/utils/retry.py": 15244280495983216204, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_join.py": 4213933887062089605, + "venv/lib/python3.13/site-packages/numpy/_core/overrides.pyi": 13121243505132110607, + "venv/lib/python3.13/site-packages/pandas/core/window/numba_.py": 1444123360986509769, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/path_registry.py": 8410829659513707067, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/spice.py": 1376126320935115350, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh17859.f": 13562390882286135024, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_ufunc.py": 669019702416198889, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/themes.py": 6451091097727599550, + "frontend/build/_app/immutable/chunks/DWg3slHj.js": 16432655720744147297, + "backend/src/core/task_manager/persistence.py": 17734987286155732710, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/util.py": 3591114320020964752, + "venv/lib/python3.13/site-packages/pyasn1/codec/native/decoder.py": 15336592439379775543, + "venv/lib/python3.13/site-packages/pydantic/utils.py": 1533455264689378477, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/nested_sequence.pyi": 10985533017688918283, + "venv/lib/python3.13/site-packages/pandas/core/arrays/interval.py": 16281221279220043867, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_construction.py": 10619501873883861745, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/test_constructors.py": 17219764538851313252, + "venv/lib/python3.13/site-packages/pygments/lexers/_mysql_builtins.py": 16087227298679432006, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/random.pyi": 9425735458050148191, + "backend/src/core/task_manager/context.py": 17543992255093146942, + "venv/lib/python3.13/site-packages/starlette/websockets.py": 13834731343216764204, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_combine.py": 16193618152415684421, + "venv/lib/python3.13/site-packages/pandas/io/parsers/c_parser_wrapper.py": 5841064965672872661, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/util.py": 5252158959761945519, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/result.py": 8306497889916212025, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/sync_openid.py": 5670082466989878756, + "venv/lib/python3.13/site-packages/pygments/styles/vs.py": 4188729978573652106, + "backend/src/api/routes/maintenance/_routes.py": 10925523070180866414, + "venv/lib/python3.13/site-packages/pygments/lexers/nix.py": 15050086330545600356, + "venv/lib/python3.13/site-packages/anyio/functools.py": 4300781896135050327, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_pipe.py": 8255917221095334212, + "venv/lib/python3.13/site-packages/keyring/testing/backend.py": 14295829193445781542, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8693/__init__.py": 11065844267208884531, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_multi.py": 4612816468258071810, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_transpose.py": 1686867045869336370, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/lib_version.py": 10384171076976071398, + "frontend/src/lib/api/translate/jobs.js": 9613844538417291513, + "frontend/src/lib/Counter.svelte": 4002153662176313030, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_strings.py": 7168544888340296373, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/RECORD": 963865046004908868, + "venv/lib/python3.13/site-packages/pydantic/v1/class_validators.py": 6471688474853407718, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-log2.csv": 13979868713429167140, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/mt19937-testset-1.csv": 16349400027062875699, + "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/frame/test_nonunique_indexes.py": 15468078561381939405, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_repr.py": 16609300578827398344, + "venv/lib/python3.13/site-packages/pandas/tests/construction/test_extract_array.py": 3100523370314150013, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/WHEEL": 7414522633964952515, + "venv/lib/python3.13/site-packages/pandas/tests/api/test_api.py": 13385690673368400635, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_combine_concat.py": 3201068805128232483, + "venv/lib/python3.13/site-packages/urllib3/util/connection.py": 15511685694589961094, + "backend/src/models/dataset_review_pkg/_execution_models.py": 14035769184235191693, + "backend/src/services/clean_release/preparation_service.py": 10596397721803950912, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_aarch64_gcc.h": 8140470539757491899, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_tz_convert.py": 13349243029437881949, + "venv/lib/python3.13/site-packages/rpds/__init__.py": 5862197328247012275, + "venv/lib/python3.13/site-packages/pandas/tests/test_nanops.py": 8709105600366913011, + "venv/lib/python3.13/site-packages/greenlet/PyGreenlet.hpp": 6366432579621298231, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_resolution.py": 18198858926948468112, + "venv/lib/python3.13/site-packages/click/_utils.py": 16491408631876616271, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py": 5132658725516243311, + "venv/lib/python3.13/site-packages/pandas/testing.py": 18352975429944961593, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_formats.py": 10263085276270778330, + "venv/lib/python3.13/site-packages/numpy/_core/tests/examples/cython/setup.py": 17086801293303202021, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/liblber-1c9097e2.so.2.0.200": 2651879839738900594, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x32_unix.h": 9165722966153119887, + "venv/lib/python3.13/site-packages/git/types.py": 13960696584646279283, + "venv/lib/python3.13/site-packages/numpy/polynomial/chebyshev.py": 1590647503660777156, + "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/pandas/util/__init__.py": 4070574585004336241, + "venv/lib/python3.13/site-packages/pygments/lexers/javascript.py": 16869490851285457857, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/scalars.pyi": 3130685119595923378, + "venv/lib/python3.13/site-packages/pygments/lexers/rnc.py": 9747352274729854620, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_generator_mt19937.py": 7299586490442539723, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pydantic/_internal/_core_metadata.py": 5704137311404303574, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/METADATA": 10707390829735099042, + "venv/lib/python3.13/site-packages/passlib/registry.py": 5050675058011850564, + "venv/lib/python3.13/site-packages/_pytest/timing.py": 14080119171718125986, + "venv/lib/python3.13/site-packages/apscheduler/__init__.py": 8652514118183227412, + "venv/lib/python3.13/site-packages/dateutil/zoneinfo/__init__.py": 10261654903106416888, + "venv/lib/python3.13/site-packages/psycopg2/tz.py": 9966680685796585198, + "venv/lib/python3.13/site-packages/passlib/handlers/phpass.py": 16489430001449160264, + "venv/lib/python3.13/site-packages/pandas/core/arrays/sparse/__init__.py": 6758781485387665020, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_sorting.py": 8944017570338511677, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/py.typed": 9796674040111366709, + "venv/lib/python3.13/site-packages/fastapi/dependencies/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexer.py": 14400766876373764268, + "venv/lib/python3.13/site-packages/numpy/lib/format.pyi": 11752225430594536662, + "venv/lib/python3.13/site-packages/httpx/_config.py": 8800538050293498928, + "venv/lib/python3.13/site-packages/_pytest/outcomes.py": 12782895027812738142, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/stride_tricks.pyi": 5844806555773292985, + "venv/lib/python3.13/site-packages/passlib/tests/test_ext_django.py": 3210697476292094384, + "venv/lib/python3.13/site-packages/pandas/tseries/frequencies.py": 2262381949755250516, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_iceberg.py": 1726421917529457420, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/uvicorn/protocols/utils.py": 6147480543268737542, + "frontend/src/pages/Settings.svelte": 12818597464628135154, + "frontend/build/_app/immutable/chunks/2dOUpm6k.js": 11811637653151731489, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/lib/_arraysetops_impl.pyi": 3111521453255595221, + "venv/lib/python3.13/site-packages/gitdb/pack.py": 7828244200815444166, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_loop.py": 6502725909989655118, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_indexing.py": 14461606056665485421, + "frontend/src/routes/settings/StorageSettings.svelte": 1953157077500445570, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/__init__.py": 237070345717942041, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_riscv_unix.h": 8607317131295864391, + "venv/lib/python3.13/site-packages/pip/_internal/commands/completion.py": 4435231315212798769, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/WHEEL": 18203500019759199992, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimelike_/test_is_monotonic.py": 12769599198035357753, + "venv/lib/python3.13/site-packages/authlib/oidc/registration/__init__.py": 9448552677419908109, + "frontend/src/routes/profile/__tests__/profile-settings-state.integration.test.js": 3674649277514557450, + "venv/lib/python3.13/site-packages/pygments/lexers/kusto.py": 16285533608924436308, + "venv/lib/python3.13/site-packages/pandas/core/indexers/__init__.py": 1756397319068017890, + "frontend/e2e/tests/smoke.e2e.js": 11130903009452044456, + "frontend/build/_app/immutable/chunks/sEGDVeoa.js": 9540107777971680079, + "venv/lib/python3.13/site-packages/pandas/tests/extension/json/array.py": 7437107031079833232, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/__init__.py": 16434403703599680307, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_resampler_grouper.py": 8388490036390951341, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/device_code.py": 6712610002227849281, + "venv/lib/python3.13/site-packages/numpy/_core/lib/libnpymath.a": 17555816778997028283, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7521/__init__.py": 635200170992032966, + "venv/lib/python3.13/site-packages/numpy/f2py/cb_rules.pyi": 12275242654430570028, + "venv/lib/python3.13/site-packages/pandas/_libs/ops.pyi": 1192312467209548763, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_formats.py": 17821648708413143557, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_indexers.py": 6773751569163287047, + "venv/lib/python3.13/site-packages/PIL/ImageEnhance.py": 3218405223202808764, + "frontend/src/routes/profile/__tests__/fixtures/profile.fixtures.js": 2726190101012864209, + "venv/lib/python3.13/site-packages/h11/_connection.py": 6971907312737339559, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_compression.py": 3167245427092658522, + "frontend/build/favicon.png": 16740551781088792605, + "backend/src/services/git/_url.py": 15729080796864187707, + "backend/src/core/task_manager/lifecycle.py": 1696300129247014205, + "venv/lib/python3.13/site-packages/numpy/fft/tests/test_helper.py": 5362180645056413158, + "backend/tests/test_translate_scheduler_guard.py": 13396608843530344156, + "venv/lib/python3.13/site-packages/urllib3/response.py": 1987354357306756790, + "venv/lib/python3.13/site-packages/jsonschema/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi": 13016654355866474644, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_index_tricks.py": 4676293127859087991, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/plugin/bootstrap.py": 3865947239497500815, + "frontend/src/lib/components/layout/TaskDrawer.svelte": 11803999908168836613, + "backend/src/scripts/delete_running_tasks.py": 7776896567014157554, + "backend/src/api/routes/environments.py": 1329328901500854319, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/test_ints.py": 5616705208267050659, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_extension.py": 4831602527247293866, + "backend/git_repos/remote/test-repo.git/objects/d8/3fe0db1279ef07c4c4f3de4156a629373b4057": 7507193819578792576, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/subcomponents.py": 10365594934527289233, + "venv/lib/python3.13/site-packages/PIL/ImageShow.py": 11437096951764124817, + "venv/lib/python3.13/site-packages/pandas/core/reshape/tile.py": 17137524194129840833, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py": 5071697837617938064, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_json_table_schema.py": 14454690938977069049, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pct_change.py": 18056235438452125034, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_arithmetic.py": 13304014482504911016, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/ec_key.py": 5961540064444749833, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh15035.f": 13126319439858352711, + "venv/lib/python3.13/site-packages/passlib/tests/test_totp.py": 9150389741890748343, + "venv/lib/python3.13/site-packages/pygments/lexers/apl.py": 16767474673619335683, + "backend/src/services/health_service.py": 14450610712741288051, + "venv/lib/python3.13/site-packages/pandas/_libs/arrays.cpython-313-x86_64-linux-gnu.so": 8634234308863090562, + "venv/lib/python3.13/site-packages/pygments/lexers/prolog.py": 599539463980699865, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arraypad.pyi": 12178766981280242620, + "frontend/src/routes/datasets/review/+page.svelte": 12909115647298935839, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/base.py": 5924592154431932923, + "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/numpy/_pyinstaller/tests/test_pyinstaller.py": 9430762168079129025, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_groupby.py": 12709199432838648700, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_matmul.py": 9323220618335072725, + "venv/lib/python3.13/site-packages/dateutil/_version.py": 8279235793001245767, + "venv/lib/python3.13/site-packages/pygments/lexers/blueprint.py": 6370363226580199085, + "backend/src/services/dataset_review/orchestrator_pkg/_commands.py": 15474996500928063708, + "backend/alembic/versions/e5f4d3c2b1a_add_policy_id_to_validation_results.py": 11168047633691803786, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_function.py": 7048185308307653546, + "venv/lib/python3.13/site-packages/websockets/legacy/http.py": 16266924390281399720, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_timedelta64.py": 16821719402662529276, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_arrow.py": 10068866425352207113, + "backend/src/services/reports/normalizer.py": 11408466232944555336, + "venv/lib/python3.13/site-packages/fastapi/concurrency.py": 17937688838625807004, + "backend/src/services/clean_release/repositories/policy_repository.py": 10990781278715170404, + "venv/lib/python3.13/site-packages/numpy/polynomial/laguerre.py": 151202984060101867, + "venv/lib/python3.13/site-packages/packaging/licenses/_spdx.py": 16440031845441362300, + "backend/src/plugins/llm_analysis/__tests__/test_service.py": 9850768293526486431, + "venv/lib/python3.13/site-packages/passlib/handlers/ldap_digests.py": 8658529184965699766, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/codec.py": 14814999235499530522, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/METADATA": 3179724236887811680, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/METADATA": 6656194161182818439, + "venv/lib/python3.13/site-packages/_pytest/nodes.py": 515939386237558331, + "venv/lib/python3.13/site-packages/packaging-26.0.dist-info/licenses/LICENSE.APACHE": 11041304845352917971, + "venv/lib/python3.13/site-packages/greenlet/TThreadState.hpp": 15599148954148720463, + "venv/lib/python3.13/site-packages/starlette/concurrency.py": 9835859079437525910, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/vectorized.pyi": 15498895254516573071, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/lib_utils.pyi": 3708905060001289515, + "venv/lib/python3.13/site-packages/pandas/_testing/_hypothesis.py": 12298650110193262367, + "venv/lib/python3.13/site-packages/keyring-25.7.0.dist-info/licenses/LICENSE": 3868190977070717994, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_partial_slicing.py": 16219611534574666182, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/string.tpl": 15796203549130590784, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/common.py": 10996276696597806957, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/selectable.py": 14646717349365560549, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/json.py": 15085143436056608404, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/masked_accumulations.py": 11428556645065711062, + "venv/lib/python3.13/site-packages/PIL/ImageDraw.py": 12919304671639673744, + "venv/lib/python3.13/site-packages/yaml/resolver.py": 6669674521776449098, + "venv/lib/python3.13/site-packages/multipart/exceptions.py": 8580522204565816132, + "venv/lib/python3.13/site-packages/git/objects/util.py": 691018806932355307, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/missing.py": 13332302791063948992, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/gsql.py": 15294109558028161389, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/unitofwork.py": 3177255974394221645, + "venv/lib/python3.13/site-packages/numpy/_core/shape_base.pyi": 10225243791643474943, + "venv/lib/python3.13/site-packages/pygments/lexers/verifpal.py": 9190813166686923928, + "venv/lib/python3.13/site-packages/pygments/lexers/tcl.py": 10343667975436015855, + "frontend/build/_app/immutable/chunks/B3miH4jD.js": 11736959945545311440, + "backend/src/api/routes/translate/_metrics_routes.py": 13468336445030118059, + "venv/lib/python3.13/site-packages/pandas/_libs/groupby.pyi": 6154952803757623626, + "backend/src/services/__tests__/test_encryption_manager.py": 5925253324895194576, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/requirements.py": 13215932786801020434, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/config.py": 10707678943298497676, + "venv/lib/python3.13/site-packages/jeepney-0.9.0.dist-info/licenses/LICENSE": 11986475601091748012, + "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/_gen_files.py": 6273314671315377131, + "backend/src/plugins/translate/orchestrator_validation.py": 17464651621865127561, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/RECORD": 1164466882742493155, + "venv/lib/python3.13/site-packages/anyio/_core/_streams.py": 6436461519284884601, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/auth.py": 912521029864094489, + "backend/:memory:test_auth": 1309242367339970214, + "venv/lib/python3.13/site-packages/pandas/tests/base/common.py": 13335865314907577354, + "frontend/playwright-report/trace/index.html": 6654608714409350530, + "venv/lib/python3.13/site-packages/numpy/lib/_twodim_base_impl.py": 4154852745131464543, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_hermite.py": 3628609433179387988, + "backend/src/api/routes/tasks.py": 2917461791850604633, + "venv/lib/python3.13/site-packages/git/objects/submodule/__init__.py": 12958523219496107878, + "venv/lib/python3.13/site-packages/dotenv/__main__.py": 16883579879172186355, + "venv/lib/python3.13/site-packages/pydantic/v1/validators.py": 1060954771151908883, + "backend/git_repos/remote/test-repo.git/objects/6a/f2b28e314c04fb4e03476c12d6491213591512": 4526311953587849385, + "venv/lib/python3.13/site-packages/pandas/_libs/indexing.cpython-313-x86_64-linux-gnu.so": 13188040757764159731, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_box_unbox.py": 7579587620530953711, + "frontend/build/_app/immutable/chunks/D2LDFDH5.js": 1513005501777757570, + "venv/lib/python3.13/site-packages/pygments/lexers/codeql.py": 4254046699692048717, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/INSTALLER": 17282701611721059870, + "backend/conftest.py": 16521922883434363388, + "frontend/playwright-report/trace/codicon.DCmgc-ay.ttf": 15579197054804464248, + "venv/lib/python3.13/site-packages/referencing/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/warnings_and_errors.py": 11172336980866895356, + "venv/lib/python3.13/site-packages/numpy/_core/_rational_tests.cpython-313-x86_64-linux-gnu.so": 13475521165331256711, + "venv/lib/python3.13/site-packages/pygments/lexers/qvt.py": 1895735583818227972, + "venv/lib/python3.13/site-packages/pydantic/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_comparisons.py": 2764694394636775220, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/RECORD": 9678861487447993169, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_subclass.py": 12453252499544981915, + "venv/lib/python3.13/site-packages/numpy/lib/format.py": 14971167445246135440, + "backend/src/core/task_manager/models.py": 7035565766825575890, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_take.py": 9847808489301498487, + "venv/lib/python3.13/site-packages/typing_extensions-4.15.0.dist-info/METADATA": 317417773265681256, + "venv/lib/python3.13/site-packages/dateutil/tzwin.py": 5149446703746204349, + "venv/lib/python3.13/site-packages/httpcore/_backends/mock.py": 6849131425727092784, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/util.py": 955993052529739164, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/resource_protector.py": 9147671710440653567, + "venv/lib/python3.13/site-packages/numpy/fft/tests/test_pocketfft.py": 18025182347224285050, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_slice.py": 9936085512921529417, + "venv/lib/python3.13/site-packages/numpy/testing/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/polynomial/hermite_e.pyi": 13068936038543812082, + "venv/lib/python3.13/site-packages/pygments/lexers/hdl.py": 6772823608124143123, + "venv/lib/python3.13/site-packages/pydantic/v1/fields.py": 3948219773415054006, + "venv/lib/python3.13/site-packages/numpy/lib/npyio.pyi": 3212440968296555560, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_real.f90": 9097998998863007705, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_date_range.py": 16128552513324017349, + "venv/lib/python3.13/site-packages/pygments/lexers/floscript.py": 944042220740663491, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/pretty.py": 2448541115957861214, + "frontend/src/components/tasks/LogEntryRow.svelte": 3694709927263161265, + "backend/git_repos/remote/test-repo.git/config": 14478893374498894766, + "frontend/playwright-report/data/ac7f153484f7d6b15b773641e328a5ad9204f736.webm": 17964728097298408466, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/screen.py": 6933591906297023845, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/bitwise_ops.pyi": 751490187478960891, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py": 17106903014205241774, + "venv/lib/python3.13/site-packages/numpy/linalg/tests/test_deprecations.py": 14624516389510242394, + "venv/lib/python3.13/site-packages/pandas/_libs/sparse.pyi": 12526865400413362140, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_show_versions.py": 10577134135855180356, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/frequencies/test_inference.py": 5741637509343419942, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/modules/module_data_docstring.f90": 18245403117623015312, + "venv/lib/python3.13/site-packages/uvicorn/lifespan/on.py": 2866195356090164296, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/WHEEL": 9788895026336324100, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_rank.py": 5398520257852104723, + "venv/lib/python3.13/site-packages/pygments/modeline.py": 6194365452131561478, + "venv/lib/python3.13/site-packages/psycopg2_binary.libs/libpq-9b38f5e3.so.5.17": 9680474575710585826, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/events.py": 7576713358952064464, + "backend/src/services/maintenance/_banner_renderer.py": 17250656767428031478, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/test_style.py": 6849613206971398029, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_msvc.h": 14580207065003376324, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_dtype.py": 5336980126536664360, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_deprecate_kwarg.py": 10417724544218303733, + "venv/lib/python3.13/site-packages/pygments/formatters/terminal.py": 14380579279194052030, + "venv/lib/python3.13/site-packages/python_dateutil-2.9.0.post0.dist-info/INSTALLER": 17282701611721059870, + "backend/src/services/clean_release/repositories/compliance_repository.py": 7402628017251283691, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_simd.py": 7577408467041941595, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_libfrequencies.py": 16302676625743291594, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_upcast.py": 6496794053681247105, + "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/apps.py": 4219758952914498116, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/terminal_theme.py": 13727399800263579809, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/LCSseq.pyi": 16372699564794732463, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/style.py": 15214295655795348821, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_constructors.py": 5627819885594450614, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_astype.py": 15384141282611151560, + "venv/lib/python3.13/site-packages/pydantic/validators.py": 8292819706488319845, + "venv/lib/python3.13/site-packages/pydantic/v1/errors.py": 11245135449608452720, + "venv/lib/python3.13/site-packages/numpy/lib/_stride_tricks_impl.pyi": 9243829615414967057, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_dialect.py": 4700488504252803159, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_period.py": 12593777226419608212, + "venv/lib/python3.13/site-packages/starlette/types.py": 6372850128669191435, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/hooks.py": 9888227370911151341, + "venv/lib/python3.13/site-packages/keyring/util/platform_.py": 16978095707950463638, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/__init__.py": 12849371269359608058, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_alpha_unix.h": 2759424570606117942, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/argon2.py": 15389474901714096890, + "venv/lib/python3.13/site-packages/_pytest/assertion/util.py": 16957445183087315124, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_fields.py": 16222559851336781264, + "venv/lib/python3.13/site-packages/httpx/_transports/asgi.py": 12335675489870745729, + "venv/lib/python3.13/site-packages/jaraco_context-6.0.2.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pandas/api/executors/__init__.py": 16954693181142010028, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex.tpl": 8820045022551446255, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_astype.py": 4975959187621745360, + "venv/lib/python3.13/site-packages/PIL/ImageOps.py": 3884310863548175682, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/securetransport.py": 12104888897121018676, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/subrout.pyf": 4660465266594480405, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/misc.py": 6571241778569465264, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/console.py": 3540660073442483692, + "venv/lib/python3.13/site-packages/pandas/io/excel/_odfreader.py": 2760916559416783928, + "venv/lib/python3.13/site-packages/pandas-3.0.1.dist-info/INSTALLER": 17282701611721059870, + "frontend/src/lib/ui/PageHeader.svelte": 3800784212388586861, + "venv/lib/python3.13/site-packages/numpy/polynomial/polyutils.py": 12355826783958402233, + "frontend/src/routes/+page.svelte": 16267809857510759396, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi": 18143251582901996072, + "venv/lib/python3.13/site-packages/authlib/integrations/django_client/__init__.py": 14186136918454802843, + "venv/lib/python3.13/site-packages/numpy/testing/_private/utils.py": 3646474165295296669, + "venv/lib/python3.13/site-packages/numpy/f2py/func2subr.pyi": 16573082220135508510, + "venv/lib/python3.13/site-packages/passlib/exc.py": 15559705487889657091, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_pop.py": 5700439923973346681, + "venv/lib/python3.13/site-packages/numpy/_core/function_base.py": 5676611841071163854, + "frontend/src/components/TaskHistory.svelte": 17537414183368417623, + "frontend/build/_app/immutable/nodes/2.ygKEcgXs.js": 4758071082823820713, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/licenses/LICENSE": 6965457853328313914, + "venv/lib/python3.13/site-packages/authlib/oauth2/client.py": 7237359250450222680, + "venv/lib/python3.13/site-packages/anyio/_core/_subprocesses.py": 7271614043537119143, + "venv/lib/python3.13/site-packages/jeepney/io/tests/test_threading.py": 6656552495241857519, + "venv/lib/python3.13/site-packages/pydantic/_internal/_schema_gather.py": 3634138701088855517, + "venv/lib/python3.13/site-packages/pandas/tests/computation/test_eval.py": 2921337784087808487, + "venv/lib/python3.13/site-packages/pandas/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/asn1.py": 15030988816882821134, + "venv/lib/python3.13/site-packages/pygments/lexers/soong.py": 10273453675034306814, + "frontend/src/lib/stores/__tests__/mocks/state.js": 3616783395254238777, + "venv/lib/python3.13/site-packages/authlib/jose/errors.py": 15231759002942436632, + "venv/lib/python3.13/site-packages/pygments/console.py": 3540660073442483692, + "frontend/src/lib/components/dataset-review/ValidationFindingsPanel.svelte": 2403276296409515448, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py": 1359143503575245224, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_ops.py": 14420421526781215500, + "frontend/src/components/git/ConflictResolver.svelte": 2318922269446496715, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/accumulate.py": 5780225603819849877, + "venv/lib/python3.13/site-packages/idna-3.11.dist-info/METADATA": 14036738037171597049, + "backend/src/core/superset_client/_dashboards_filters.py": 8706676245520282810, + "venv/lib/python3.13/site-packages/pytest_asyncio/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/arrays/arrow/_arrow_utils.py": 17808805047762566525, + "venv/lib/python3.13/site-packages/pandas/core/resample.py": 13814298871925341617, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_melt.py": 15663807247682146566, + "venv/lib/python3.13/site-packages/charset_normalizer/models.py": 9917300217816275821, + "venv/lib/python3.13/site-packages/pandas/core/methods/describe.py": 17006836623161521092, + "backend/src/api/routes/assistant/_admin_routes.py": 3380446401429936332, + "backend/alembic/env.py": 7020161137665650592, + "venv/lib/python3.13/site-packages/numpy/lib/_datasource.pyi": 5894423389796456573, + "venv/lib/python3.13/site-packages/keyring/devpi_client.py": 3445890176686211982, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/__init__.py": 11526998905763262175, + "venv/lib/python3.13/site-packages/pygments/lexers/macaulay2.py": 8022891778577314212, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/PIL/ImageColor.py": 17058618058554970738, + "venv/lib/python3.13/site-packages/jeepney/tests/test_bus_messages.py": 4323093138307306385, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_indexing.py": 6039808271042864401, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_reflection.py": 10520778598547003532, + "frontend/src/components/Footer.svelte": 17748559656923032, + "backend/alembic/versions/543d43d752b8_migrate_old_dictionary_entries_and_.py": 10988663686444687907, + "venv/lib/python3.13/site-packages/attr/_compat.py": 4016698632899969390, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/util.py": 4815334059917765852, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_loadtxt.py": 17562784940619942447, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/uvicorn/protocols/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/tal.py": 447505725492547461, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/passlib/handlers/bcrypt.py": 8125664010268654055, + "venv/lib/python3.13/site-packages/PIL/XVThumbImagePlugin.py": 7472134175570205454, + "venv/lib/python3.13/site-packages/authlib/integrations/base_client/sync_app.py": 14788764260762890368, + "frontend/build/_app/immutable/chunks/DSxK3NUv.js": 8639953729041066468, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_delete.py": 3485374671877063217, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/matrix.pyi": 15667024840812783911, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_libsparse.py": 1859997684694949029, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_describe.py": 11923715539897559626, + "venv/lib/python3.13/site-packages/numpy/linalg/_linalg.pyi": 9629457630163613604, + "dist/docker/frontend.0.1.1.tar.xz": 14558310887004056908, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py": 2873060848310644552, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_pipe.py": 7400355977900310233, + "venv/lib/python3.13/site-packages/httpx/_exceptions.py": 18399489130669465891, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_function_base.py": 15241999259666702619, + "venv/lib/python3.13/site-packages/pandas/io/iceberg.py": 13137128885014736233, + "venv/lib/python3.13/site-packages/pandas/core/common.py": 14578909424716153057, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_rename_axis.py": 12432900682994622455, + "venv/lib/python3.13/site-packages/PIL/PaletteFile.py": 4104323659569809769, + "venv/lib/python3.13/site-packages/packaging/__init__.py": 5479277484104486860, + "venv/lib/python3.13/site-packages/httpx/_types.py": 12461152436147308761, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/url.py": 9692934100602135106, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/lexers/python.py": 17886036670342116501, + "venv/lib/python3.13/site-packages/numpy/_core/fromnumeric.pyi": 13945478633722616250, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/authorization_code.py": 4958605540994687737, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_truncate.py": 6478126371906156409, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_smoke.py": 7476432112986643847, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_is_homogeneous_dtype.py": 15378147393056707851, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_coercion.py": 7261787308019145312, + "venv/lib/python3.13/site-packages/pandas/_testing/_warnings.py": 5640964566228306285, + "venv/lib/python3.13/site-packages/pygments/regexopt.py": 16073437303824961930, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/WHEEL": 13232065379159720345, + "venv/lib/python3.13/site-packages/jeepney/tests/test_auth.py": 15125055415702968414, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/cells.py": 8299309127027168194, + "venv/lib/python3.13/site-packages/pandas/tests/io/sas/test_xport.py": 14080914637071212225, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/types.py": 13384984564922916167, + "venv/lib/python3.13/site-packages/pygments/lexers/theorem.py": 15666523910367201285, + "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/crackfortran/data_multiplier.f": 13432803601367981068, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_shape_base.py": 4117141349022217163, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_setops.py": 15365064654930699428, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_to_timestamp.py": 17572983799929378095, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_pickle.py": 3419420815386925630, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_constructors.py": 6515602441449955627, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/licenses/LICENSE": 3868190977070717994, + "venv/lib/python3.13/site-packages/passlib/handlers/sha2_crypt.py": 8171587560325812664, + "venv/lib/python3.13/site-packages/pandas/tests/apply/common.py": 1113935558495455492, + "venv/lib/python3.13/site-packages/pip/_internal/req/req_file.py": 5180401483285462901, + "venv/lib/python3.13/site-packages/pandas/core/interchange/column.py": 9498044216416177656, + "venv/lib/python3.13/site-packages/numpy/f2py/rules.py": 9322914583460630877, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_index.py": 12015738970771703312, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/collections.cpython-313-x86_64-linux-gnu.so": 6157288238855118017, + "venv/lib/python3.13/site-packages/PIL/McIdasImagePlugin.py": 14137545069906812251, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/file_proxy.py": 17695135735211897444, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/arrayterator.pyi": 7439348655567232744, + "venv/lib/python3.13/site-packages/pandas/tests/api/test_types.py": 8889829773923216769, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/__init__.pyi": 17469792319379909312, + "venv/lib/python3.13/site-packages/PIL/CurImagePlugin.py": 17697303205012181529, + "venv/lib/python3.13/site-packages/PIL/GdImageFile.py": 16875784236394545058, + "frontend/src/routes/tools/backups/+page.svelte": 6796050751535238723, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/aggregate/test_aggregate.py": 15038915958422670700, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/resource_protector.py": 11539718751174980004, + "venv/lib/python3.13/site-packages/numpy/random/tests/test_randomstate_regression.py": 17425202198134409689, + "venv/lib/python3.13/site-packages/numpy/_core/_ufunc_config.pyi": 9291444594181042963, + "frontend/build/_app/immutable/nodes/10.D79erIQG.js": 35496247013741914, + "backend/src/api/routes/git/_router.py": 8701683910668868827, + "venv/lib/python3.13/site-packages/ecdsa/test_ellipticcurve.py": 11125783981574901613, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/clsregistry.py": 1589692649837935355, + "backend/src/plugins/translate/__tests__/test_orchestrator.py": 5663680156343544051, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/proxy.py": 13008557041076030198, + "venv/lib/python3.13/site-packages/pandas/core/util/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/PIL/XbmImagePlugin.py": 12256750478268246137, + "venv/lib/python3.13/site-packages/starlette/responses.py": 14081178833432955042, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/shape_base.pyi": 5046405609030418900, + "frontend/playwright.config.js": 1601415616693761429, + "venv/lib/python3.13/site-packages/passlib/handlers/mysql.py": 11165762635383041460, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/_tokenizer.py": 7994281991455916540, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/visitors.py": 5190923415390076080, + "frontend/src/routes/tools/storage/+page.svelte": 2651964385884112547, + "venv/lib/python3.13/site-packages/anyio/lowlevel.py": 11919467357746648592, + "frontend/build/_app/immutable/nodes/24.lnfcaE4o.js": 4000891976750157851, + "venv/lib/python3.13/site-packages/numpy/f2py/__init__.py": 7470157159992827389, + "venv/lib/python3.13/site-packages/yaml/composer.py": 13619070314468518566, + "backend/src/services/clean_release/repositories/artifact_repository.py": 9040122866024534865, + "backend/src/services/clean_release/manifest_service.py": 10873340336255220063, + "venv/lib/python3.13/site-packages/secretstorage/exceptions.py": 16701299261122689924, + "backend/src/plugins/translate/_text_cleaner.py": 13161219043687449729, + "venv/lib/python3.13/site-packages/pygments/formatters/terminal256.py": 11473927781167132440, + "venv/lib/python3.13/site-packages/pip/_vendor/distro/__main__.py": 2688850704829116818, + "frontend/build/_app/immutable/nodes/12.DDTJ85nU.js": 2496436780075636781, + "venv/lib/python3.13/site-packages/pycparser/yacctab.py": 18018314512916353707, + "venv/lib/python3.13/site-packages/pyasn1-0.6.2.dist-info/licenses/LICENSE.rst": 5960743202700406649, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/styles/__init__.py": 9482393721453335937, + "venv/lib/python3.13/site-packages/pycparser-2.23.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/apscheduler/executors/asyncio.py": 2230610508870117058, + "venv/lib/python3.13/site-packages/rapidfuzz/_utils.py": 14374663810542207121, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/METADATA": 16498441272591167134, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/apply.py": 3906017176873949738, + "backend/src/services/clean_release/facade.py": 11231787492455424065, + "frontend/src/lib/api/__tests__/reports_api.test.js": 11820587361929895100, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth1/cache.py": 15037055977924167732, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/oauth2_session.py": 7076806577412682835, + "venv/lib/python3.13/site-packages/PIL/PcfFontFile.py": 8867692961463798279, + "venv/lib/python3.13/site-packages/pydantic/plugin/_loader.py": 792663962985957671, + "backend/git_repos/remote/test-repo.git/hooks/push-to-checkout.sample": 4825338927654285910, + "backend/git_repos/remote/test-repo.git/objects/aa/ea042a37c6f7bd010d91db93951328da7f01cc": 11936716919619613939, + "venv/lib/python3.13/site-packages/charset_normalizer/__main__.py": 8887772289570078278, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_csv.py": 571991535656576735, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_bool.py": 433342705586552936, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nditer.pyi": 33523064068376750, + "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/scalar/timestamp/test_timezones.py": 8042029178538467146, + "venv/lib/python3.13/site-packages/apscheduler-3.11.2.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/apscheduler/job.py": 1858376671986108667, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix.py": 4440659352851541547, + "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/test_multilevel.py": 10500316376521962061, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arrayterator.pyi": 15722265241660279277, + "frontend/playwright-report/trace/sw.bundle.js": 10879347794748701702, + "frontend/src/routes/dashboards/[id]/+page.svelte": 12833231703682809118, + "backend/:memory:test_tasks": 9776368437354383244, + "venv/lib/python3.13/site-packages/fastapi/security/http.py": 8465565118555441408, + "venv/lib/python3.13/site-packages/greenlet/tests/test_version.py": 6317733744899804292, + "venv/lib/python3.13/site-packages/pydantic/datetime_parse.py": 196119761382305574, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi": 16934250836612138541, + "venv/lib/python3.13/site-packages/pandas/tests/test_take.py": 17628004130770326677, + "venv/lib/python3.13/site-packages/numpy/version.pyi": 5075382895829889457, + "venv/lib/python3.13/site-packages/pip/_internal/cli/progress_bars.py": 7584699216537478969, + "venv/lib/python3.13/site-packages/pip/_internal/network/xmlrpc.py": 5064964778750366059, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_indexing.py": 81180636019259296, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reindex.py": 16348619731902304844, + "venv/lib/python3.13/site-packages/pandas/tests/extension/conftest.py": 16886862391161243448, + "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/metadata/pkg_resources.py": 14271077832999370068, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/pymssql.py": 6650008663791598065, + "backend/src/api/routes/settings.py": 15653340367960122341, + "backend/src/services/clean_release/policy_resolution_service.py": 5075709738950902327, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/timeseries.py": 17641722582848932332, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f90continuation.f90": 17056591497459381871, + "venv/lib/python3.13/site-packages/keyring/credentials.py": 14515496037842724455, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_reorder_levels.py": 10996225584998355824, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_combine.py": 4446011286411407708, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/test_indexing.py": 1947969642791009285, + "venv/lib/python3.13/site-packages/pygments/lexers/thingsdb.py": 6073447481627395832, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/METADATA": 8985010079096958084, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/printing.py": 8681519649669408795, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/licenses/LICENSE": 12688029424398428498, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/base.py": 14908084548919567658, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mssql/provision.py": 2676876852726658063, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/bitwise_ops.pyi": 15598239133239520456, + "venv/lib/python3.13/site-packages/pycparser/ply/cpp.py": 1665654017894222868, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_common.f": 5913807803369559749, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/bazaar.py": 5630511062945201327, + "venv/lib/python3.13/site-packages/pip/_internal/utils/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/__init__.py": 96341051676048910, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/RECORD": 1689342214025776630, + "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/api/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/datetimes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/starlette-0.50.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/reductions/__init__.py": 16150188643076000414, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-sinh.csv": 12358602501260667480, + "venv/lib/python3.13/site-packages/pip/_internal/operations/install/wheel.py": 3531093454660385247, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_bin_groupby.py": 14831211659124136806, + "venv/lib/python3.13/site-packages/urllib3/http2/__init__.py": 62108352209996836, + "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pygments/formatters/rtf.py": 5850574956253747036, + "venv/lib/python3.13/site-packages/numpy/_globals.pyi": 12839879732484756979, + "venv/lib/python3.13/site-packages/cffi/pkgconfig.py": 16057517851163939571, + "venv/lib/python3.13/site-packages/ecdsa/_sha3.py": 10353612776869489378, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/__init__.py": 12793458753561114666, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi": 7801211423226951223, + "frontend/playwright-report/trace/codeMirrorModule.DYBRYzYX.css": 14866915564324637173, + "frontend/playwright-report/trace/assets/codeMirrorModule-Ds_H_9Yq.js": 1369559823166915102, + "venv/lib/python3.13/site-packages/packaging/tags.py": 1999137344425005827, + "backend/src/services/clean_release/stages/no_external_endpoints.py": 11899278509901673808, + "venv/lib/python3.13/site-packages/authlib/oidc/core/claims.py": 2035724920423374302, + "venv/lib/python3.13/site-packages/gitdb/test/test_stream.py": 18159319442241857857, + "venv/lib/python3.13/site-packages/numpy/core/getlimits.py": 14257687540182552408, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_frame_transform.py": 6759417099641034692, + "venv/lib/python3.13/site-packages/pandas/tests/test_aggregation.py": 16863055892192070549, + "venv/lib/python3.13/site-packages/_pytest/assertion/__init__.py": 16392348866405910618, + "venv/lib/python3.13/site-packages/urllib3/util/retry.py": 17988032431204662756, + "frontend/playwright-report/trace/uiMode.html": 2646979321132705707, + "backend/src/api/routes/dashboards/__init__.py": 15214026957520044598, + "backend/src/plugins/translate/orchestrator_sql_rows.py": 13473935462270832541, + "venv/lib/python3.13/site-packages/pandas/core/groupby/ops.py": 2036968385544457016, + "venv/lib/python3.13/site-packages/websockets/legacy/exceptions.py": 16025779645869134942, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/enumerated.py": 16623643153933348755, + "venv/lib/python3.13/site-packages/pygments/formatters/bbcode.py": 8614391937525677922, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/scalar_string.f90": 15018631706178918578, + "venv/lib/python3.13/site-packages/pygments/styles/native.py": 4559566444883341527, + "backend/src/services/clean_release/stages/manifest_consistency.py": 14323717074129560178, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_describe.py": 362374422228593281, + "venv/lib/python3.13/site-packages/PIL/ImageFile.py": 15765130658900167517, + "venv/lib/python3.13/site-packages/pygments/lexers/sgf.py": 6802546617450210439, + "venv/lib/python3.13/site-packages/pygments/lexers/cddl.py": 1303059539145221713, + "venv/lib/python3.13/site-packages/pandas/io/__init__.py": 9767690163638898709, + "venv/lib/python3.13/site-packages/requests/exceptions.py": 6474239743209354989, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/annotation.py": 15855576199737688124, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/named_types.py": 6099185243355915896, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_conversion_utils.py": 1567199588622767277, + "frontend/src/routes/settings/automation/+page.svelte": 17397435134589275932, + "frontend/src/components/backups/BackupManager.svelte": 15237659305406789107, + "backend/src/plugins/translate/__tests__/test_dictionary_filter.py": 2426844436521732941, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_unique.py": 3148372351781648868, + "frontend/src/lib/stores/__tests__/sidebar.test.js": 5168138864675110669, + "venv/lib/python3.13/site-packages/httpcore/_async/socks_proxy.py": 9026788710898138090, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/base.py": 14734745827490220667, + "backend/src/api/auth.py": 6636844886257776670, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py": 10843527833285941674, + "venv/lib/python3.13/site-packages/fastapi/middleware/cors.py": 7452860773712601508, + "venv/lib/python3.13/site-packages/jaraco/classes/ancestry.py": 11742194518360056470, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/resolver.py": 9931394693284776391, + "venv/lib/python3.13/site-packages/pandas/core/window/ewm.py": 12143982379243011357, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/RECORD": 3283324710045856319, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ndarray_misc.pyi": 7544619194032232861, + "backend/src/plugins/translate/_utils.py": 10016440264788256359, + "venv/lib/python3.13/site-packages/passlib/tests/test_context_deprecated.py": 7876919198015151018, + "venv/lib/python3.13/site-packages/httpcore-1.0.9.dist-info/WHEEL": 2357997949040430835, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/index.py": 2763962019423787504, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/modeline.py": 6194365452131561478, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_where.py": 3272402211717453881, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/licenses/numpy/_core/src/common/pythoncapi-compat/COPYING": 3474104874623144155, + "backend/git_repos/remote/test-repo.git/hooks/post-update.sample": 4288868784459664203, + "venv/lib/python3.13/site-packages/httpcore/_sync/__init__.py": 7676937747094511752, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/RECORD": 9964194961227523130, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_replace.py": 18039668944453454689, + "backend/src/core/task_manager/graph.py": 1566662881946484762, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth1/authorization_server.py": 6858244712625056421, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/jwk.py": 6458001384702613165, + "venv/lib/python3.13/site-packages/_pytest/_io/wcwidth.py": 13515196388826152383, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_check_indexer.py": 2929031395357057009, + "venv/lib/python3.13/site-packages/pygments/lexers/berry.py": 4540479522141160472, + "frontend/build/_app/immutable/chunks/BVk3Uk_6.js": 15316567731933897520, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/itsdangerous/timed.py": 12571102606719555007, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/methods/test_to_pydatetime.py": 1129954411080617001, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_quantile.py": 17110581927381599978, + "venv/lib/python3.13/site-packages/packaging/_parser.py": 13394093358675095309, + "frontend/src/lib/auth/__tests__/permissions.test.js": 13555349356008297952, + "venv/lib/python3.13/site-packages/ecdsa/__init__.py": 6237633580090653788, + "venv/lib/python3.13/site-packages/PIL/ImageDraw2.py": 13610162107593278891, + "backend/src/core/superset_client/_dashboards_list.py": 10999374002470143873, + "venv/lib/python3.13/site-packages/greenlet/TThreadStateDestroy.cpp": 13749797532421836328, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_nunique.py": 8450574751331186943, + "venv/lib/python3.13/site-packages/numpy/core/_dtype_ctypes.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_sequence.py": 3721630758772772345, + "frontend/e2e/tests/translation.e2e.js": 6244274143080191568, + "backend/src/api/routes/git/_helpers.py": 3960455954241740267, + "venv/lib/python3.13/site-packages/typing_extensions.py": 8402965285733247527, + "venv/lib/python3.13/site-packages/cryptography/x509/verification.py": 1079694784860492682, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/httpcore/_async/http2.py": 16350817785499681224, + "venv/lib/python3.13/site-packages/websockets/server.py": 16599051743322571790, + "venv/lib/python3.13/site-packages/jsonschema/exceptions.py": 15651767069704734674, + "venv/lib/python3.13/site-packages/cffi/api.py": 5325821560978502135, + "backend/src/plugins/translate/__tests__/test_lang_detect.py": 2328877106785068272, + "venv/lib/python3.13/site-packages/pydantic_settings-2.13.0.dist-info/RECORD": 2024211292009381421, + "venv/lib/python3.13/site-packages/passlib/tests/sample1.cfg": 9597283806285213340, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/test_inference.py": 16402427186697071465, + "venv/lib/python3.13/site-packages/dateutil/rrule.py": 398469817784230512, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_grouping.py": 5994909693214299971, + "venv/lib/python3.13/site-packages/git/objects/commit.py": 12317865358846331802, + "frontend/build/_app/immutable/chunks/CrLU7zQO.js": 14265962769345069959, + "venv/lib/python3.13/site-packages/pydantic/plugin/_schema_validator.py": 857640644840976862, + "venv/lib/python3.13/site-packages/pip/_internal/resolution/legacy/resolver.py": 2492962412506082234, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/version.py": 6401479036177132374, + "frontend/src/routes/tools/mapper/+page.svelte": 11954517841045690204, + "venv/lib/python3.13/site-packages/fastapi/applications.py": 4975013401500183420, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_return_character.py": 17168707712220699738, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_get_value.py": 389530025760539462, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/types.py": 12298292195929126306, + "frontend/build/_app/immutable/nodes/36.B_fEKtct.js": 18068657546781069466, + "frontend/src/lib/stores/datasetReviewSession.js": 3915919349382526215, + "venv/lib/python3.13/site-packages/pip/_internal/vcs/subversion.py": 7423946096970870727, + "venv/lib/python3.13/site-packages/httpx/_auth.py": 1283189552342958900, + "venv/lib/python3.13/site-packages/pandas/core/computation/parsing.py": 3084943521520476999, + "venv/lib/python3.13/site-packages/pydantic/_internal/_model_construction.py": 694471028676746110, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_cat.py": 15988884721768567895, + "frontend/build/_app/immutable/chunks/CHelQZPK.js": 13538277300205681632, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_logical.py": 6818185860296232476, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py": 8539232219382152238, + "venv/lib/python3.13/site-packages/numpy/typing/tests/test_runtime.py": 12534621594420844770, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/compat.py": 17520043776344667309, + "venv/lib/python3.13/site-packages/pandas/core/arrays/datetimes.py": 10585034798097337148, + "venv/lib/python3.13/site-packages/PIL/FontFile.py": 112053841436523305, + "venv/lib/python3.13/site-packages/packaging/_manylinux.py": 8268418900652790584, + "venv/lib/python3.13/site-packages/requests/structures.py": 2668010839316715865, + "venv/lib/python3.13/site-packages/pip/_vendor/distro/distro.py": 12494639376332486204, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/RECORD": 10552906886624188222, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_all_methods.py": 18227706645906325527, + "venv/lib/python3.13/site-packages/PIL/ImageChops.py": 16368812693381154921, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_css.py": 17765129030290410902, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/size/foo.f90": 18067977329435720684, + "venv/lib/python3.13/site-packages/pandas/core/window/__init__.py": 15180240812077877933, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE": 14610443802372107702, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/polynomial_polyutils.pyi": 3841660741524427413, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_array.f90": 9711940829820746513, + "venv/lib/python3.13/site-packages/numpy/f2py/_backends/__init__.py": 4265012785873472600, + "venv/lib/python3.13/site-packages/PIL/MpoImagePlugin.py": 644327650732339301, + "venv/lib/python3.13/site-packages/httpcore/_sync/connection.py": 1539337414493486168, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/ranges.py": 14549386056660231279, + "venv/lib/python3.13/site-packages/numpy/tests/test_reloading.py": 17532116685329953400, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_count.py": 16947194157984708529, + "venv/lib/python3.13/site-packages/pygments/lexers/teal.py": 10004159499175716139, + "frontend/build/_app/immutable/nodes/4.euBhzXnG.js": 8827989315454731607, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_names.py": 10037208029090713121, + "venv/lib/python3.13/site-packages/sqlalchemy/event/base.py": 18238453132776154057, + "backend/src/services/clean_release/repositories/report_repository.py": 17952038790457725175, + "backend/src/plugins/translate/preview_llm_client.py": 14412557858942627249, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_is_monotonic.py": 12899848089975919515, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_processors.py": 16557117595879208702, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/measure.py": 18327922742808984428, + "venv/lib/python3.13/site-packages/anyio/pytest_plugin.py": 4165280709813718099, + "venv/bin/activate.fish": 5275961582873298085, + "backend/tests/test_auth.py": 6167020718035755646, + "backend/src/api/routes/assistant/_command_parser.py": 2745692387994130159, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/_py_util.py": 13997184496924925110, + "venv/lib/python3.13/site-packages/tzlocal/unix.py": 995019116408448073, + "backend/src/api/routes/dashboards/_schemas.py": 10686942001147126057, + "venv/lib/python3.13/site-packages/gitdb/db/pack.py": 13460574575424209609, + "venv/lib/python3.13/site-packages/pip/_internal/index/collector.py": 7454652626329467900, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/implicit.py": 7379110378465568776, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_ewm.py": 13789842684407148830, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_explode.py": 18263694040596159591, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_2_complexcompat.h": 5001035774408914877, + "venv/lib/python3.13/site-packages/pygments/lexers/bibtex.py": 14652372822443154388, + "venv/lib/python3.13/site-packages/dateutil/easter.py": 14631233890122048084, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/help.py": 3124654001287175629, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/test_datetimes.py": 8863748366184419339, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/METADATA": 13776251749114562660, + "venv/lib/python3.13/site-packages/pydantic/_internal/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/groupby.py": 14661033005768429774, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/repr.py": 839417422880281122, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_normalize.py": 11373923576259976755, + "venv/lib/python3.13/site-packages/numpy/random/_examples/numba/extending_distributions.py": 209769687436320665, + "venv/lib/python3.13/site-packages/pygments/lexers/markup.py": 10311057264960923433, + "backend/src/api/routes/__tests__/conftest.py": 3768471623650776808, + "backend/src/api/routes/translate/_dictionary_routes.py": 5480137091791704976, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_to_xarray.py": 15341013524814290960, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/array.py": 13840510238256626632, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Indel.pyi": 16372699564794732463, + "venv/lib/python3.13/site-packages/pandas/tests/interchange/test_utils.py": 2329717399120006435, + "backend/src/services/__tests__/test_llm_plugin_persistence.py": 16769242892960874042, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/METADATA": 6596896092754256988, + "venv/lib/python3.13/site-packages/pip/_internal/metadata/base.py": 13444129650880426353, + "frontend/src/components/git/__tests__/git_manager.unfinished_merge.integration.test.js": 4508809242640248036, + "venv/lib/python3.13/site-packages/dotenv/version.py": 13508433229287636267, + "venv/lib/python3.13/site-packages/starlette/exceptions.py": 15978811612997200737, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_pickle.py": 16196792378104396231, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_query_eval.py": 17613800806748649144, + "venv/lib/python3.13/site-packages/numpy/random/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_format.py": 5231304674283854194, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/types.py": 16795741817129898714, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/METADATA": 9458019064618635438, + "backend/src/api/routes/maintenance/__init__.py": 8921716690761316245, + "backend/src/models/auth.py": 775632703462705888, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/pcg64-testset-1.csv": 16078879475693341404, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/RECORD": 4857922668040624663, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/progress_bar.py": 15595912766961891283, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/revocation.py": 5718403706971163960, + "venv/lib/python3.13/site-packages/numpy/_typing/_dtype_like.py": 1598511035344858524, + "venv/lib/python3.13/site-packages/pygments/lexers/scripting.py": 4167168074165473790, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/licenses/LICENSE": 17284252174641192866, + "venv/lib/python3.13/site-packages/authlib/oauth2/base.py": 12948318231066662045, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/__init__.py": 371829636800613137, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/__main__.py": 111505188798650285, + "venv/lib/python3.13/site-packages/git/refs/remote.py": 4391983355222612205, + "frontend/src/routes/reports/llm/[taskId]/+page.svelte": 14881196548900101939, + "venv/lib/python3.13/site-packages/urllib3/poolmanager.py": 15431313180245757657, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/test_formats.py": 18080627205081311773, + "venv/lib/python3.13/site-packages/pandas/tests/io/test_spss.py": 4865360315909532603, + "build.sh": 7054451887134163485, + "venv/lib/python3.13/site-packages/PIL/py.typed": 15130871412783076140, + "backend/src/plugins/translate/orchestrator_query.py": 4760681990145471312, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_align.py": 10284128457194204574, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/ranges/test_range.py": 3544406211185340973, + "venv/lib/python3.13/site-packages/secretstorage-3.5.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pycparser/__init__.py": 16499940957411260458, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/_selectable_constructors.py": 84919308502240880, + "venv/lib/python3.13/site-packages/pandas/tests/plotting/frame/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sort_values.py": 12064896795288302730, + "venv/lib/python3.13/site-packages/numpy/core/_dtype_ctypes.py": 17055498803745289016, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/WHEEL": 13232065379159720345, + "venv/lib/python3.13/site-packages/numpy/matrixlib/defmatrix.pyi": 17903213294220335051, + "frontend/vitest.config.js": 4756170101280085905, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/foo_deps.f90": 14350239197565389508, + "venv/lib/python3.13/site-packages/passlib/hosts.py": 11171402820797380938, + "venv/lib/python3.13/site-packages/pandas/api/internals.py": 5188134630996087511, + "venv/lib/python3.13/site-packages/pillow-12.1.1.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_indexing.py": 16264430536704066847, + "backend/src/models/translate.py": 15056358496831895254, + "venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/content": 12465123883296161860, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/type_check.pyi": 9177256991985898824, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_classes.py": 1440926036579216168, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/_numpyconfig.h": 18150055639397773687, + "venv/lib/python3.13/site-packages/_pytest/terminal.py": 885450969703476729, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/fields.pyi": 15420142722808118826, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/dtypes.cpython-313-x86_64-linux-gnu.so": 657138415665704488, + "venv/lib/python3.13/site-packages/urllib3/http2/probe.py": 4069929463671970243, + "venv/lib/python3.13/site-packages/jose/backends/_asn1.py": 14123487576864105793, + "frontend/src/lib/toasts.js": 199299975383904134, + "frontend/src/routes/admin/roles/+page.svelte": 1343040884276845574, + "backend/src/__init__.py": 11250920420388310655, + "backend/tests/test_security_audit_fixes.py": 10329229098676202553, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Hamming.py": 3762934316884129514, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_utils.py": 15197339054699289627, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/OSA.py": 17817123894903120316, + "venv/lib/python3.13/site-packages/pandas/_libs/join.cpython-313-x86_64-linux-gnu.so": 2947947484481830203, + "venv/lib/python3.13/site-packages/attr/converters.py": 5179615793507170642, + "venv/lib/python3.13/site-packages/uvicorn/middleware/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/categorical/test_missing.py": 6224750552277937853, + "frontend/src/lib/components/translate/TermCorrectionPopup.svelte": 5276611147503580165, + "backend/tests/test_resource_hubs.py": 3990299394875930767, + "venv/lib/python3.13/site-packages/jose/exceptions.py": 8562012933958941039, + "venv/lib/python3.13/site-packages/passlib/tests/__init__.py": 16543763165305017760, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_category.py": 3944898528119364040, + "venv/lib/python3.13/site-packages/pandas/core/computation/common.py": 5369352684655954608, + "venv/lib/python3.13/site-packages/urllib3/util/ssltransport.py": 1175688460659745788, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_cut.py": 7800833253841657380, + "frontend/src/lib/components/layout/__tests__/test_taskDrawer.svelte.js": 15288009749873977442, + "venv/lib/python3.13/site-packages/ecdsa/test_rw_lock.py": 1572802971060634697, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_assign.py": 2647902466315482406, + "venv/lib/python3.13/site-packages/pip/_internal/exceptions.py": 2252826732781519645, + "venv/lib/python3.13/site-packages/pygments/lexers/wowtoc.py": 17527844575999013592, + "venv/lib/python3.13/site-packages/numpy/typing/tests/test_typing.py": 10311989961588249147, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/datasource.pyi": 80441145804744162, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_pickle.py": 8705060420848529055, + "venv/lib/python3.13/site-packages/pydantic/parse.py": 13750341403702794392, + "venv/lib/python3.13/site-packages/pip/_vendor/resolvelib/reporters.py": 10760889726586439724, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby.py": 16180421154734310873, + "venv/lib/python3.13/site-packages/pygments/lexers/nimrod.py": 8457135214131458774, + "venv/lib/python3.13/site-packages/sqlalchemy/connectors/aioodbc.py": 2018840826888846321, + "venv/lib/python3.13/site-packages/jose/jwk.py": 2781217726458801910, + "venv/lib/python3.13/site-packages/greenlet/greenlet_refs.hpp": 8525862687669040510, + "frontend/src/lib/auth/store.ts": 14669655798912377598, + "venv/lib/python3.13/site-packages/pygments/styles/lovelace.py": 15082819162722685616, + "venv/lib/python3.13/site-packages/git/objects/submodule/root.py": 5322248117564025370, + "venv/lib/python3.13/site-packages/sqlalchemy/inspection.py": 8563914460959280101, + "backend/src/services/__tests__/test_resource_service.py": 13275183651826747527, + "backend/src/services/clean_release/__tests__/test_source_isolation.py": 17714198919084455758, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_join.py": 1364886077926604427, + "docker/all-in-one.Dockerfile": 10896793266219904099, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_parse_iso8601.py": 9100947620267156161, + "venv/lib/python3.13/site-packages/iniconfig/__init__.py": 12623265899068631092, + "venv/lib/python3.13/site-packages/referencing/tests/test_exceptions.py": 10846225989746274213, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_regression.py": 16293647824734937323, + "venv/lib/python3.13/site-packages/_pytest/config/compat.py": 13175516717549204627, + "venv/lib/python3.13/site-packages/numpy/_core/_internal.pyi": 6840742333427164920, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_delete.py": 5958440386632506587, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_is_unique.py": 3989602816674881215, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_regression.py": 4611768764484593979, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/__main__.py": 487896753130729554, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/modes.py": 6832635056228445650, + "venv/lib/python3.13/site-packages/numpy/polynomial/_polybase.py": 893743087939984792, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_textreader.py": 388955620768371652, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/type_api.py": 10299750173867399533, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_c_parser_only.py": 3038797485572319804, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/RECORD": 16342326945648353387, + "venv/lib/python3.13/site-packages/numpy/matlib.py": 112839038090033740, + "venv/lib/python3.13/site-packages/pygments/styles/emacs.py": 4540417536507245024, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/validator.py": 11486125578281617670, + "venv/lib/python3.13/site-packages/pandas/_libs/sas.pyi": 873957906443703977, + "venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_set_value.py": 4166411740676564820, + "venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/cache.py": 3177663126928467950, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_where.py": 16584772339591698754, + "venv/lib/python3.13/site-packages/authlib/integrations/requests_client/__init__.py": 16416360448593978041, + "venv/lib/python3.13/site-packages/fastapi/openapi/models.py": 1680354178147364813, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/npy_cpu.h": 13799366908726531089, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/__init__.py": 14522970260621605208, + "venv/lib/python3.13/site-packages/pygments/sphinxext.py": 2768161754523156130, + "venv/lib/python3.13/site-packages/pip-25.1.1.dist-info/REQUESTED": 15130871412783076140, + "backend/src/core/auth/jwt.py": 15575717945774687118, + "backend/tests/services/clean_release/test_publication_service.py": 17277940125978730159, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi": 3893434234020223151, + "frontend/src/lib/i18n/index.ts": 4285366775990653535, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/umath-validation-set-arccosh.csv": 5882025767947638305, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/console.py": 10217327186846649646, + "venv/lib/python3.13/site-packages/keyring/testing/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_isin.py": 8136794647591341784, + "scripts/scan_secrets.sh": 599173385111063848, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sort_index.py": 14187428934500390688, + "venv/lib/python3.13/site-packages/numpy/_core/printoptions.py": 3897105663572772838, + "venv/lib/python3.13/site-packages/pandas/core/interchange/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/core/array_algos/replace.py": 1708865864686705833, + "venv/lib/python3.13/site-packages/pygments/lexers/modula2.py": 6575895980250662093, + "backend/src/services/clean_release/exceptions.py": 14631509303697939633, + "venv/lib/python3.13/site-packages/rapidfuzz/utils.pyi": 7400725037332728015, + "venv/lib/python3.13/site-packages/passlib/ext/__init__.py": 15240312484046875203, + "venv/lib/python3.13/site-packages/more_itertools/more.py": 1631135582441184133, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_copy.py": 12902342280706372953, + "venv/lib/python3.13/site-packages/pygments/formatters/__init__.py": 8009871891954370829, + "venv/lib/python3.13/site-packages/packaging/_tokenizer.py": 7442392076059866359, + "frontend/src/routes/settings/+page.svelte": 10122073858307249759, + "backend/src/plugins/translate/__tests__/test_sql_generator.py": 4676288356986389564, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_numba.py": 1668304729617150075, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_mem_overlap.py": 4202716587079637350, + "venv/lib/python3.13/site-packages/websockets/exceptions.py": 12048063047468402740, + "venv/lib/python3.13/site-packages/pandas/tests/extension/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/PIL/PdfImagePlugin.py": 16082854250442815862, + "venv/lib/python3.13/site-packages/pygments/lexers/__init__.py": 4627540245914849670, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/base.py": 3250660921154829815, + "backend/git_repos/remote/test-repo.git/objects/4f/4e0958b3a42eff67a2b8cfd084d05c43e54716": 6040513978194442637, + "venv/lib/python3.13/site-packages/pandas/io/json/_table_schema.py": 3103776773020058805, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi": 3254633032236269842, + "venv/lib/python3.13/site-packages/pandas/core/groupby/indexing.py": 18009437216172136227, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_round_trip.py": 14684057343786032776, + "frontend/build/_app/immutable/assets/9.tn0RQdqM.css": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/merge/test_merge_index_as_string.py": 292438690259156869, + "venv/lib/python3.13/site-packages/pandas/core/computation/expr.py": 13085709365673019494, + "venv/lib/python3.13/site-packages/cffi/setuptools_ext.py": 30796527302561458, + "venv/lib/python3.13/site-packages/pygments/lexers/yara.py": 17510792615476493957, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/bitgen.h": 12421210767114721499, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_series.py": 10922287546912569276, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7009/parameters.py": 1647490964392525933, + "frontend/src/routes/migration/__tests__/migration_dashboard.ux.test.js": 17118608261683412409, + "frontend/src/lib/components/assistant/__tests__/assistant_confirmation.integration.test.js": 12582020574293031526, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/strings.pyi": 15361498560917514616, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_getitem.py": 8414677531950073373, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/licenses/LICENSE": 11199044866758471950, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/parameter/constant_both.f90": 13943066317159236257, + "venv/lib/python3.13/site-packages/gitdb/test/test_pack.py": 7518388297247535189, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/client_credentials.py": 256154392957334831, + "venv/lib/python3.13/site-packages/pandas/core/indexes/extension.py": 7193879749426425951, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_arithmetic.py": 17427754419626622853, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/__init__.py": 697601512486720554, + "venv/lib/python3.13/site-packages/greenlet/greenlet_allocator.hpp": 11041111583319491309, + "venv/lib/python3.13/site-packages/pandas/_libs/reshape.cpython-313-x86_64-linux-gnu.so": 10639750501333255943, + "venv/lib/python3.13/site-packages/numpy/ma/testutils.pyi": 3899348061346041413, + "venv/lib/python3.13/site-packages/pip/_internal/configuration.py": 2563100675379605810, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_can_hold_element.py": 5406431247116557833, + "venv/lib/python3.13/site-packages/pandas/io/xml.py": 326466573926392764, + "venv/lib/python3.13/site-packages/yaml/representer.py": 10550136298978225013, + "venv/lib/python3.13/site-packages/dateutil/tz/win.py": 8427821225251397364, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_business_hour.py": 13754646634123368797, + "venv/lib/python3.13/site-packages/pygments/styles/lightbulb.py": 12433916113773598760, + "frontend/src/services/__tests__/gitService.test.js": 12845562082447336909, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/dtype.pyi": 12178008080078679769, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/operators.py": 2468046993343796128, + "venv/lib/python3.13/site-packages/pandas/tests/extension/array_with_attr/__init__.py": 15991623390785635773, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pip/__pip-runner__.py": 1138979712722199296, + "venv/lib/python3.13/site-packages/pip/_vendor/__init__.py": 11734104142988812647, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arithmetic.py": 3209727509456212551, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/RECORD": 11111103193315065053, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/linalg.pyi": 7217817172953767893, + "venv/lib/python3.13/site-packages/anyio/_core/_testing.py": 14024940365851109155, + "venv/lib/python3.13/site-packages/numpy/random/_bounded_integers.cpython-313-x86_64-linux-gnu.so": 16604252871044637047, + "venv/lib/python3.13/site-packages/passlib/tests/test_utils_pbkdf2.py": 17016810698578473773, + "venv/lib/python3.13/site-packages/authlib/oauth1/client.py": 7314311571224771, + "venv/lib/python3.13/site-packages/jsonschema/_types.py": 9250091433305395923, + "venv/lib/python3.13/site-packages/pandas/tests/series/accessors/test_struct_accessor.py": 6567451952835390075, + "venv/lib/python3.13/site-packages/httpx/_transports/default.py": 8391302827983907910, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/operators.py": 5584982192355398255, + "venv/lib/python3.13/site-packages/PIL/SunImagePlugin.py": 7661622930404688367, + "venv/lib/python3.13/site-packages/pygments/lexers/capnproto.py": 15713281507099411738, + "frontend/src/lib/components/reports/__tests__/report_detail.integration.test.js": 4193615240297330385, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_extension.py": 17245018204352082978, + "venv/lib/python3.13/site-packages/passlib/handlers/pbkdf2.py": 16686685453577026643, + "venv/lib/python3.13/site-packages/anyio/_core/_typedattr.py": 17584691045493791349, + "frontend/src/lib/components/translate/TranslationRunResult.svelte": 3992997916593732645, + "frontend/build/_app/immutable/chunks/DgoIDw4h.js": 10605176285482573925, + "venv/lib/python3.13/site-packages/certifi/__main__.py": 13417658012431779061, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/util.py": 2866856507760047219, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_select.py": 17823338162428379468, + "venv/lib/python3.13/site-packages/pygments/unistring.py": 18037463865539157041, + "frontend/src/lib/stores/__tests__/test_sidebar.js": 113566022614194798, + "venv/lib/python3.13/site-packages/keyring/completion.py": 1027436016070040568, + "venv/lib/python3.13/site-packages/pyasn1/codec/der/__init__.py": 15728752901274520502, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/numeric.pyi": 17005748821769179511, + "venv/lib/python3.13/site-packages/pandas/core/groupby/numba_.py": 15997665748332235683, + "frontend/build/index.html": 9441612921158753253, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_highlight.py": 7573043358244876807, + "backend/src/core/task_manager/event_bus.py": 15798578020529126889, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_formats.py": 9738552308554950419, + "frontend/build/_app/immutable/nodes/21.i4crDxrH.js": 12772123636509212690, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py": 7019253290755243568, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/mod.pyi": 10591120373577657317, + "backend/src/api/routes/git/_merge_routes.py": 2019590524299108754, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/f77fixedform.f95": 10898637805043867370, + "backend/src/models/maintenance.py": 2088418229495130810, + "backend/src/services/dataset_review/repositories/__tests__/test_session_repository.py": 13584543719626464409, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/RECORD": 17985800801793506250, + "venv/lib/python3.13/site-packages/_pytest/python_api.py": 12953851690889336092, + "docker/backend.entrypoint.sh": 1034669340368151691, + "backend/src/plugins/translate/__tests__/__init__.py": 2490542523242946173, + "backend/src/plugins/translate/plugin.py": 9225230324052126034, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/WHEEL": 16784970174376303810, + "venv/lib/python3.13/site-packages/numpy/typing/mypy_plugin.py": 1306129775649200113, + "scripts/generate_financial_arrears_data.py": 15989529185799374517, + "venv/lib/python3.13/site-packages/authlib/oidc/registration/claims.py": 4161520263207458028, + "venv/lib/python3.13/site-packages/numpy/f2py/use_rules.pyi": 18395688193449688360, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/array_like.py": 2778905818573625118, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_numeric.py": 9417128508433693658, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_clip.py": 13498704233745189154, + "venv/lib/python3.13/site-packages/passlib/tests/backports.py": 17098448557554464521, + "venv/lib/python3.13/site-packages/PIL/QoiImagePlugin.py": 17663704273100331654, + "backend/src/api/routes/validation/__tests__/test_validation_api.py": 9582367280498409855, + "venv/lib/python3.13/site-packages/_pytest/_argcomplete.py": 3586514420674089892, + "venv/lib/python3.13/site-packages/pandas/core/indexing.py": 15507869313676722071, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/sparse/test_indexing.py": 11572911419313573163, + "venv/lib/python3.13/site-packages/uvicorn/__init__.py": 11517239807926185665, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_pyf_src.py": 12351476647369971852, + "venv/lib/python3.13/site-packages/pandas/tests/extension/json/test_json.py": 12422315190455428620, + "backend/src/core/superset_client/_datasets_preview_filters.py": 14154361389981199486, + "venv/lib/python3.13/site-packages/pandas/core/arrays/masked.py": 13977195666947626206, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_period_index.py": 6634414375581820058, + "venv/lib/python3.13/site-packages/click/parser.py": 13988544851350599869, + "venv/lib/python3.13/site-packages/pydantic/experimental/pipeline.py": 9493054841465227788, + "backend/src/core/mapping_service.py": 17981290763325170519, + "backend/src/services/maintenance/_chart_manager.py": 11268757631496775895, + "venv/lib/python3.13/site-packages/attrs/__init__.pyi": 14353885498883901855, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_pivot.py": 334735766122314163, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/gcp.py": 12328409672947966867, + "backend/tests/test_smoke_app.py": 7819901244710945164, + "venv/lib/python3.13/site-packages/numpy/lib/tests/__init__.py": 15130871412783076140, + "backend/tests/core/test_defensive_guards.py": 1048600814279591148, + "backend/src/services/clean_release/repositories/manifest_repository.py": 12395698948312301073, + "venv/lib/python3.13/site-packages/numpy/lib/stride_tricks.py": 548928042543500365, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/test_nat.py": 7400568652984772972, + "frontend/src/lib/components/translate/ScheduleConfig.svelte": 9548866160759602637, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi": 9405122752084210696, + "venv/lib/python3.13/site-packages/keyring/testing/util.py": 11195868112805409554, + "backend/test.db": 15130871412783076140, + "backend/git_repos/remote/test-repo.git/objects/4e/227f4d8289ea657ae813b1460f979ae4b676b3": 5659284628452785331, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi": 10784666243744187693, + "venv/lib/python3.13/site-packages/pillow.libs/libavif-01e67780.so.16.3.0": 13947441788826399574, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/test_crosstab.py": 6631711416347033281, + "venv/lib/python3.13/site-packages/numpy/typing/__init__.py": 3608665862759745048, + "venv/lib/python3.13/site-packages/git/refs/symbolic.py": 14996822770181935589, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/__init__.py": 3969805865048730851, + "venv/lib/python3.13/site-packages/python_jose-3.5.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/resample/test_base.py": 15292769510056833117, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7662/token_validator.py": 13917237710752731397, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_type_check.py": 3935091606923106753, + "venv/bin/websockets": 12099863324306500376, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_umath_complex.py": 11732242536199439023, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9101/registration.py": 14639972512303032712, + "venv/lib/python3.13/site-packages/pyasn1/debug.py": 6305633719847955310, + "venv/lib/python3.13/site-packages/PIL/_imagingmath.cpython-313-x86_64-linux-gnu.so": 77725273398858074, + "venv/lib/python3.13/site-packages/pygments/lexers/scdoc.py": 8481749542463754279, + "venv/lib/python3.13/site-packages/numpy/f2py/symbolic.py": 16854377502491291093, + "venv/lib/python3.13/site-packages/pandas/tests/libs/test_libalgos.py": 13934861984871432400, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_tz_convert.py": 77283525137564255, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/cookies.py": 4997226307650350876, + "venv/lib/python3.13/site-packages/rapidfuzz-3.14.3.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/keyring/cli.py": 10996746519742056101, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/arrayterator.py": 3076316311545674897, + "venv/lib/python3.13/site-packages/pandas/core/series.py": 11618272682977710696, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/resultproxy.cpython-313-x86_64-linux-gnu.so": 6011605826065363427, + "backend/git_repos/remote/test-repo.git/objects/52/ec4a78c629329b8b572ec9d5205271c111baac": 18054296544295201561, + "venv/lib/python3.13/site-packages/jaraco/classes/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/fastapi/openapi/constants.py": 1111838716953068285, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/compiler.py": 11662494978292401568, + "venv/lib/python3.13/site-packages/sqlalchemy/util/queue.py": 1289234691048379395, + "frontend/src/routes/login/+page.svelte": 18430869485200259448, + "dist/docker/backend.0.1.1.tar.xz": 932529191402352855, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/arithmetic.pyi": 10265823318697442495, + "venv/lib/python3.13/site-packages/numpy/f2py/crackfortran.py": 12796890117561096360, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23533.f": 12558972205518833024, + "venv/lib/python3.13/site-packages/uvicorn/protocols/http/httptools_impl.py": 10367325397209016951, + "frontend/e2e/tests/git.e2e.js": 5892730242199126550, + "backend/tests/core/migration/test_dry_run_orchestrator.py": 5158126098685923841, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/dml.py": 6567627855667533645, + "venv/lib/python3.13/site-packages/pandas/core/_numba/extensions.py": 4132402557064663751, + "venv/lib/python3.13/site-packages/multipart/__init__.py": 6496114190873890851, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/methods/test_fillna.py": 13675584998644907265, + "venv/lib/python3.13/site-packages/anyio/abc/_resources.py": 8330687082933028623, + "venv/lib/python3.13/site-packages/anyio/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/websockets/protocol.py": 6401227903827084901, + "venv/lib/python3.13/site-packages/requests/adapters.py": 17161109043243436200, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_scalar.py": 2434773821902319678, + "venv/lib/python3.13/site-packages/pytest/__init__.py": 6137272437722350673, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8414/__init__.py": 4781700006554860887, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_indexing.py": 5910217172351020811, + "venv/lib/python3.13/site-packages/numpy/core/__init__.pyi": 15130871412783076140, + "venv/lib/python3.13/site-packages/fastapi/templating.py": 10760135144345238340, + "backend/src/core/superset_client/_user_projection.py": 16484323195475306883, + "venv/lib/python3.13/site-packages/PIL/__init__.py": 10393984345353752724, + "venv/lib/python3.13/site-packages/numpy/core/numerictypes.py": 5776941405348611027, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_constructors.py": 13890224577680389718, + "venv/lib/python3.13/site-packages/pandas/io/_util.py": 13608922148814398500, + "venv/lib/python3.13/site-packages/pygments/lexers/jslt.py": 11805394130669644345, + "frontend/build/_app/immutable/nodes/26.BHpCifr3.js": 16416419328529145595, + "venv/lib/python3.13/site-packages/pygments/lexers/_sql_builtins.py": 5906655440517434734, + "venv/lib/python3.13/site-packages/_pytest/pastebin.py": 13946273207624603063, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/utils.py": 9959199071030996679, + "venv/lib/python3.13/site-packages/websockets/extensions/base.py": 2457233337788783873, + "backend/src/core/logger.py": 12787152815342378434, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_datetime.py": 11417836378782978454, + "venv/lib/python3.13/site-packages/pandas/io/parsers/arrow_parser_wrapper.py": 11745253171984606573, + "venv/lib/python3.13/site-packages/authlib/integrations/starlette_client/integration.py": 3085827906490477329, + "backend/src/core/ws_log_handler.py": 17175572704051278951, + "venv/lib/python3.13/site-packages/numpy/random/__init__.pyi": 13833571330152615376, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/random/libdivide.h": 5314232500579481313, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_writers.py": 103545128256076790, + "venv/lib/python3.13/site-packages/starlette/background.py": 10232175205397808417, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/api.py": 13134394673408254097, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/__init__.py": 3577295959173028042, + "venv/lib/python3.13/site-packages/numpy/testing/_private/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/_ada_builtins.py": 16331776886501464264, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/package_data.py": 3078502124870585867, + "venv/lib/python3.13/site-packages/numpy/_core/lib/npy-pkg-config/npymath.ini": 1071371630695963467, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_droplevel.py": 2071197388394658690, + "venv/lib/python3.13/site-packages/numpy/ma/tests/test_regression.py": 12593643817685777170, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_interval_tree.py": 15789443159423302291, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_formats.py": 13752366280743004410, + "venv/lib/python3.13/site-packages/pandas/io/parsers/__init__.py": 11752833703934347122, + "frontend/src/components/StartupEnvironmentWizard.svelte": 8046284364754906166, + "frontend/tests/maintenance-store.test.ts": 7211673236234440419, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_infer_objects.py": 6769980076977692890, + "frontend/vite.config.js": 3769019895915732131, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/philox-testset-2.csv": 7063857529719738394, + "scripts/gen_semantics.py": 11397714264377363083, + "venv/lib/python3.13/site-packages/cffi/_cffi_errors.h": 1479575326813300292, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_setitem.py": 2059440410065814114, + "venv/lib/python3.13/site-packages/pip/_vendor/tomli_w/_writer.py": 15053365792216907149, + "frontend/playwright-report/trace/manifest.webmanifest": 565917384317025203, + "backend/src/core/superset_client/_base.py": 10958088163566963237, + "venv/lib/python3.13/site-packages/pandas/core/indexes/period.py": 1181348384346239378, + "venv/lib/python3.13/site-packages/websockets/version.py": 5853118844880112885, + "venv/lib/python3.13/site-packages/numpy/linalg/_linalg.py": 9654828595008925976, + "venv/lib/python3.13/site-packages/pandas/_libs/internals.pyi": 11662356720550765508, + "frontend/playwright-report/data/b13be72bc9111c369dd61bcb4b41565873341170.zip": 9286336518597330572, + "frontend/src/components/MappingTable.svelte": 17937756426921453860, + "venv/lib/python3.13/site-packages/numpy/__init__.py": 2331213407497901634, + "venv/lib/python3.13/site-packages/pandas/tests/io/conftest.py": 5864037534050136837, + "venv/lib/python3.13/site-packages/secretstorage/defines.py": 9590959702075554048, + "venv/lib/python3.13/site-packages/fastapi/security/api_key.py": 6965937678104291169, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/array_pad.pyi": 14755435694146003896, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/requests.py": 1102963893193914979, + "venv/lib/python3.13/site-packages/cryptography/py.typed": 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/datetimes/test_reductions.py": 1713831062142840146, + "venv/lib/python3.13/site-packages/anyio/_core/_sockets.py": 10525237827959090532, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_finfo.py": 17174674209412768422, + "venv/lib/python3.13/site-packages/pandas/errors/__init__.py": 13444371880185740908, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_astype.py": 4023134352880775277, + "backend/src/services/notifications/service.py": 7032100258837946310, + "venv/lib/python3.13/site-packages/pip/_internal/cli/status_codes.py": 9143625681947330756, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_common.py": 3559416690270529904, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_ppc_macosx.h": 3653129798702716366, + "venv/lib/python3.13/site-packages/ecdsa/ecdh.py": 12596317261561755793, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/applicator": 6616723520993329538, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/exclusions.py": 15852672500377116297, + "venv/lib/python3.13/site-packages/numpy/_typing/_add_docstring.py": 14657346268890680694, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_function_base.pyi": 2792940598392356268, + "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/base.py": 15872835330892203433, + "venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_hermite_e.py": 8912795372542950449, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/models.py": 16636119441941357281, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/METADATA": 9586902338916246692, + "venv/lib/python3.13/site-packages/pip/_vendor/pygments/regexopt.py": 16073437303824961930, + "venv/lib/python3.13/site-packages/numpy/testing/overrides.py": 11819432487830192978, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/ccalendar.cpython-313-x86_64-linux-gnu.so": 11019871270094058038, + "venv/lib/python3.13/site-packages/pandas/tests/extension/date/array.py": 18073740473413382768, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/nested_sequence.pyi": 11245460325970663922, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/lib_polynomial.pyi": 9134949577567498894, + "venv/lib/python3.13/site-packages/pandas/core/indexes/base.py": 496956059910401121, + "venv/lib/python3.13/site-packages/yaml/tokens.py": 2279161238859232338, + "venv/lib/python3.13/site-packages/pluggy/_result.py": 16790448391766505769, + "venv/lib/python3.13/site-packages/dotenv/py.typed": 9796674040111366709, + "venv/lib/python3.13/site-packages/jsonschema_specifications-2025.9.1.dist-info/METADATA": 18410956221497090898, + "venv/lib/python3.13/site-packages/passlib/ext/django/utils.py": 8118896525895185626, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/instrumentation.py": 14882045449667214075, + "venv/lib/python3.13/site-packages/numpy/ctypeslib/_ctypeslib.py": 12636954896699095212, + "venv/lib/python3.13/site-packages/pygments/cmdline.py": 15628499088643246809, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_reshape.py": 5572426834735088916, + "venv/lib/python3.13/site-packages/pygments/lexers/html.py": 17288963642862550116, + "venv/lib/python3.13/site-packages/pygments/lexers/xorg.py": 14591144191879110061, + "frontend/src/lib/api/datasetReview.js": 3023829599261929428, + "venv/lib/python3.13/site-packages/rsa/key.py": 4783269051050521475, + "venv/lib/python3.13/site-packages/numpy/_core/defchararray.py": 15550230459945996915, + "venv/lib/python3.13/site-packages/numpy/_core/tests/_natype.py": 12013743717306900860, + "venv/lib/python3.13/site-packages/pandas/core/dtypes/base.py": 3628510830969664111, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_info.py": 10615285239043745712, + "venv/lib/python3.13/site-packages/urllib3/_version.py": 839747992523118887, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/negative_bounds/issue_20853.f90": 3911644649277659333, + "venv/lib/python3.13/site-packages/pygments/lexers/asm.py": 13861952972248758785, + "venv/lib/python3.13/site-packages/httpx/_transports/__init__.py": 5931944625631942279, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/data_with_comments.f": 3980077223827767077, + "frontend/build/_app/immutable/nodes/5.Qu948XkR.js": 7156066372883630056, + "venv/lib/python3.13/site-packages/jeepney/io/threading.py": 525625939662612746, + "venv/lib/python3.13/site-packages/fastapi/middleware/wsgi.py": 3706578020491442104, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_arm64_masm.asm": 16630507336149184509, + "venv/lib/python3.13/site-packages/pip/_internal/utils/compat.py": 1841193561752758336, + "venv/lib/python3.13/site-packages/pandas/core/groupby/grouper.py": 18110568057754450953, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_matmul.py": 16169282225324014901, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_freq_attr.py": 7685756734926749093, + "venv/lib/python3.13/site-packages/PIL/_avif.pyi": 18222325750818585549, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/oct_key.py": 11504245602045724, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_array_api_info.py": 16491629653122827368, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_timegrouper.py": 276805119790266454, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/styled.py": 8726407298858811635, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_equals.py": 18261810467289276844, + "venv/lib/python3.13/site-packages/_pytest/warnings.py": 8633394774569709013, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timestamp/test_timestamp.py": 10308799534491190078, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_internals.py": 10472508540875131797, + "venv/lib/python3.13/site-packages/httpcore/_async/http_proxy.py": 13364803556177997526, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/modules.pyi": 14176187662591164602, + "frontend/src/routes/validation/[id]/+page.svelte": 17573557905368368906, + "backend/src/schemas/validation.py": 11881058653924000699, + "backend/src/services/clean_release/__tests__/test_manifest_builder.py": 9320699981861675127, + "backend/src/plugins/git/__init__.py": 2144831474780401625, + "venv/lib/python3.13/site-packages/websockets/frames.py": 4901850477414613953, + "venv/lib/python3.13/site-packages/starlette/routing.py": 16063812008141874150, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9207/parameter.py": 2793853093222900337, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/unix.py": 13808187640638677050, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/twisted.py": 16059862619165885730, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_astype.py": 15275720655739710249, + "venv/lib/python3.13/site-packages/urllib3/util/timeout.py": 17922362393077965047, + "venv/lib/python3.13/site-packages/starlette/middleware/authentication.py": 15211131264936212938, + "backend/src/models/dataset_review_pkg/_mapping_models.py": 8898456326244890685, + "venv/lib/python3.13/site-packages/urllib3/contrib/socks.py": 645086578806871685, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_align.py": 6050248183327934780, + "backend/src/services/clean_release/stages/__init__.py": 11595548160903612178, + "backend/src/plugins/translate/__tests__/test_dictionary_import.py": 828852818135096215, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/WHEEL": 12146818530001975731, + "venv/lib/python3.13/site-packages/pandas/io/formats/style_render.py": 13586834368514801953, + "backend/src/services/clean_release/compliance_orchestrator.py": 10585043190405940115, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/ufunclike.pyi": 14623308681600207918, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/isocintrin/isoCtests.f90": 6208802899442270399, + "venv/lib/python3.13/site-packages/starlette/middleware/base.py": 16850428285382256618, + "venv/lib/python3.13/site-packages/numpy/polynomial/hermite.pyi": 3573629536236108391, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/numeric.py": 14451517189908259173, + "venv/lib/python3.13/site-packages/websockets/asyncio/server.py": 885415484558949506, + "venv/lib/python3.13/site-packages/pip/_internal/network/auth.py": 6159841209618753296, + "venv/lib/python3.13/site-packages/passlib/tests/utils.py": 15403198680231294263, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_cumulative.py": 15644124412739892167, + "venv/lib/python3.13/site-packages/pandas/tests/dtypes/cast/test_promote.py": 16601872688404846307, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/licenses/LICENSE": 5669644120528099197, + "venv/lib/python3.13/site-packages/pandas/io/sas/sas_xport.py": 16525568795475918874, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_value_counts.py": 15633881149834196174, + "venv/lib/python3.13/site-packages/httpcore/_sync/http_proxy.py": 14037211594707072958, + "venv/lib/python3.13/site-packages/cryptography/hazmat/_oid.py": 755042927629281577, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/utils.h": 3920393832993063886, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/METADATA": 13428590545328703138, + "venv/lib/python3.13/site-packages/numpy/tests/test_lazyloading.py": 17465787495701737655, + "venv/lib/python3.13/site-packages/starlette/_utils.py": 8384087194580626069, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Prefix.pyi": 2700568594438441246, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/numerictypes.pyi": 15443101937711720707, + "venv/lib/python3.13/site-packages/numpy/ctypeslib/__init__.py": 2401931196871484449, + "venv/lib/python3.13/site-packages/websockets/asyncio/compatibility.py": 9716993942839407921, + "venv/lib/python3.13/site-packages/passlib/pwd.py": 14727089240749133060, + "venv/lib/python3.13/site-packages/pydantic/color.py": 1007422551673129827, + "venv/lib/python3.13/site-packages/pandas/_version_meson.py": 4875297137037630519, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_astype.py": 11995587502880659624, + "venv/lib/python3.13/site-packages/fastapi/openapi/docs.py": 16735218221639179927, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/floating/test_astype.py": 4178231007649608531, + "venv/lib/python3.13/site-packages/git/objects/tag.py": 7954808535585493300, + "venv/lib/python3.13/site-packages/urllib3/http2/connection.py": 1661620860881397554, + "venv/lib/python3.13/site-packages/ecdsa-0.19.1.dist-info/WHEEL": 17410883677306885019, + "venv/lib/python3.13/site-packages/pygments/lexers/bare.py": 18266858932333619451, + "frontend/build/_app/immutable/chunks/B02colNV.js": 11184422123417025804, + "backend/src/core/migration/risk_assessor.py": 1061977005072298440, + "backend/src/api/routes/assistant/__init__.py": 14959302162073618175, + "venv/lib/python3.13/site-packages/pip/_internal/utils/compatibility_tags.py": 15862649917149158291, + "backend/src/api/routes/translate/_router.py": 4164547666727936398, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/jwe_encs.py": 9703572751543253904, + "venv/lib/python3.13/site-packages/pandas/core/internals/ops.py": 4740509262379451243, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_numeric_only.py": 13610631681447961840, + "dist/docker/backend.0.1.0.tar.xz": 3591917885965226179, + "venv/lib/python3.13/site-packages/yaml/__init__.py": 11044333164208875121, + "backend/tests/services/clean_release/test_compliance_execution_service.py": 5924200441771414883, + "venv/lib/python3.13/site-packages/pygments/lexers/robotframework.py": 11507713622179102496, + "venv/lib/python3.13/site-packages/jeepney/tests/test_low_level.py": 3579024079580951234, + "venv/lib/python3.13/site-packages/smmap/test/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/smmap/mman.py": 9091562788592406032, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/panel.py": 17832701246248000383, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/uts46data.py": 1867240043777383728, + "venv/lib/python3.13/site-packages/uvicorn-0.40.0.dist-info/RECORD": 6349071557579241461, + "venv/lib/python3.13/site-packages/jeepney/io/trio.py": 11859775321483330469, + "venv/lib/python3.13/site-packages/pluggy/__init__.py": 8269188363563356631, + "venv/lib/python3.13/site-packages/pandas/io/formats/templates/latex_longtable.tpl": 12723621983797415444, + "venv/lib/python3.13/site-packages/pip/_internal/utils/filetypes.py": 4415340223268174913, + "venv/lib/python3.13/site-packages/jeepney/tests/test_bindgen.py": 8637878018232418583, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/base_key.py": 10402800587070352851, + "venv/lib/python3.13/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17": 4221600618602131476, + "venv/lib/python3.13/site-packages/h11-0.16.0.dist-info/RECORD": 173225030102092319, + "venv/lib/python3.13/site-packages/pillow.libs/liblzma-61b1002e.so.5.8.2": 11405063484938458842, + "venv/lib/python3.13/site-packages/numpy/polynomial/polynomial.pyi": 9935587108964614958, + "venv/lib/python3.13/site-packages/pydantic/v1/datetime_parse.py": 10467114625921924095, + "venv/lib/python3.13/site-packages/pip/_vendor/truststore/_windows.py": 9171347078900057357, + "venv/lib/python3.13/site-packages/passlib/context.py": 10362592407593745107, + "venv/lib/python3.13/site-packages/pandas/_libs/byteswap.pyi": 6723628093359375823, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_missing.py": 7034102519042351965, + "venv/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/base.py": 10205051944814316388, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/pubprivmod.f90": 8680230823849248800, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py": 3960540415600165213, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/base_class/test_indexing.py": 16623126293364224089, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/interface.py": 3134071530627935964, + "venv/lib/python3.13/site-packages/PIL/ImageTk.py": 17063969714816564357, + "venv/lib/python3.13/site-packages/pip/_internal/network/lazy_wheel.py": 12936988990566680659, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_swaplevel.py": 3584770792383216626, + "venv/lib/python3.13/site-packages/pygments/styles/rainbow_dash.py": 12236746494379891602, + "frontend/src/routes/settings/git/__tests__/git_settings_page.ux.test.js": 5334904955024018051, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/rec.pyi": 9140655366667421698, + "frontend/build/_app/immutable/chunks/C8K-NfB8.js": 522730246953022577, + "frontend/src/lib/stores/environmentContext.js": 1762535408632658714, + "venv/lib/python3.13/site-packages/cryptography/x509/name.py": 15338066443257445241, + "frontend/build/_app/immutable/chunks/D0ftnVnT.js": 17464841514774947275, + "backend/src/core/config_models.py": 2535711893860826646, + "dist/docker/frontend.0.1.0.tar.xz": 16011357094675100098, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc8628/__init__.py": 6532094538918910232, + "venv/lib/python3.13/site-packages/pydantic/tools.py": 8931184638883701008, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/string/gh25286.pyf": 14358606965464506398, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/timedeltas/__init__.py": 15130871412783076140, + "examples/maintenance-api-bash.sh": 674396824183793987, + "venv/lib/python3.13/site-packages/authlib/common/errors.py": 16082974228565515177, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_frame.py": 9378623452601244234, + "venv/lib/python3.13/site-packages/PIL/DdsImagePlugin.py": 10646832373516499548, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/casting.py": 12226803454582253097, + "frontend/src/components/TaskLogViewer.svelte": 11262767195652916566, + "venv/lib/python3.13/site-packages/rapidfuzz/__pyinstaller/__init__.py": 1229691061011958769, + "backend/src/services/clean_release/repositories/candidate_repository.py": 14784344453820731941, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_sort_index.py": 13517883160584591966, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/interval/test_overlaps.py": 8287716909793575347, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/columns.py": 8488246354818721406, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/openssl/__init__.py": 14571251344510763303, + "venv/lib/python3.13/site-packages/anyio/streams/tls.py": 4191898645554875562, + "merge_kilo.py": 4282227344165325430, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test__version.py": 9037916251087760255, + "venv/lib/python3.13/site-packages/jeepney/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/__main__.py": 6480933938145689964, + "venv/lib/python3.13/site-packages/passlib/tests/test_hosts.py": 8284535274820610802, + "venv/lib/python3.13/site-packages/_pytest/pathlib.py": 9719734558816066453, + "venv/lib/python3.13/site-packages/PIL/_tkinter_finder.py": 14045496501810535432, + "venv/lib/python3.13/site-packages/pydantic/_migration.py": 17982816821930887921, + "venv/lib/python3.13/site-packages/PIL/ImageMath.py": 7395449734007598797, + "venv/lib/python3.13/site-packages/numpy.libs/libscipy_openblas64_-096271d3.so": 14338208504131470036, + "venv/lib/python3.13/site-packages/iniconfig-2.3.0.dist-info/RECORD": 3288669175908898843, + "venv/lib/python3.13/site-packages/numpy/core/_utils.py": 14108063453670701289, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/metadata.py": 7204343250279221076, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/interval/test_equals.py": 11041884432990762650, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_scalar_compat.py": 1306236983392218709, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/keywrap.py": 10424037418528425800, + "venv/lib/python3.13/site-packages/numpy/__init__.pyi": 15820654525292895396, + "venv/lib/python3.13/site-packages/httpx/__version__.py": 9473642134297828811, + "venv/lib/python3.13/site-packages/numpy/f2py/__version__.py": 8588600299261398598, + "venv/lib/python3.13/site-packages/passlib/crypto/digest.py": 15890463288512025688, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_reductions.py": 3227705565578016389, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_kurt.py": 2898715045429898166, + "venv/lib/python3.13/site-packages/pandas/tests/series/test_reductions.py": 2816859231048302619, + "venv/lib/python3.13/site-packages/sqlalchemy/pool/__init__.py": 4337679908168515343, + "venv/lib/python3.13/site-packages/PIL/_imagingft.cpython-313-x86_64-linux-gnu.so": 11054435406031360190, + "venv/lib/python3.13/site-packages/sqlalchemy/connectors/asyncio.py": 4200928269459447593, + "venv/lib/python3.13/site-packages/uvicorn/supervisors/statreload.py": 5018382301336802445, + "venv/lib/python3.13/site-packages/pygments/styles/perldoc.py": 4857683935715743356, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/provision.py": 7362363963464621570, + "venv/lib/python3.13/site-packages/packaging/pylock.py": 15346942039643310253, + "venv/lib/python3.13/site-packages/jsonschema/benchmarks/nested_schemas.py": 4114645644496880787, + "frontend/src/routes/datasets/__tests__/inline_edit.test.js": 17712409018171053453, + "venv/lib/python3.13/site-packages/pydantic/deprecated/tools.py": 16466182352694741629, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_xs.py": 1897144171324167738, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9207/__init__.py": 8434616194114282088, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/mypy/infer.py": 12541904372617915365, + "venv/lib/python3.13/site-packages/keyring/__init__.py": 991260689223167957, + "venv/lib/python3.13/site-packages/numpy/lib/array_utils.pyi": 14646405559193539455, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/DamerauLevenshtein_py.py": 1933257612725836484, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/extending_distributions.pyx": 15302775787158991386, + "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/greenlet/platform/switch_amd64_unix.h": 16679226724722970205, + "venv/lib/python3.13/site-packages/requests/compat.py": 5836590172733661320, + "venv/lib/python3.13/site-packages/pandas/tests/test_sorting.py": 10751098438703044961, + "venv/lib/python3.13/site-packages/PIL/SgiImagePlugin.py": 6916200065790425497, + "venv/lib/python3.13/site-packages/greenlet/tests/test_weakref.py": 6780204527427742510, + "venv/bin/pip3": 13861749540792881808, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_counting.py": 5628494712451120258, + "venv/lib/python3.13/site-packages/greenlet-3.3.0.dist-info/METADATA": 15876173086384975957, + "frontend/src/lib/api/translate/datasources.js": 17202165717960970061, + "venv/lib/python3.13/site-packages/pygments/styles/friendly.py": 13799024964803741891, + "frontend/src/components/Navbar.svelte": 6128753323363185057, + "venv/lib/python3.13/site-packages/pytest_asyncio-1.3.0.dist-info/WHEEL": 16097436423493754389, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/cli/hi77.f": 10617763407280454334, + "frontend/src/components/git/GitWorkspacePanel.svelte": 15810952071932060330, + "venv/lib/python3.13/site-packages/rsa-4.9.1.dist-info/INSTALLER": 17282701611721059870, + "backend/src/api/routes/__tests__/test_clean_release_api.py": 11565478953155085157, + "backend/src/services/git/_sync.py": 14233419521256437438, + "frontend/e2e/e2e-nohealth.mjs": 5921562935931064381, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/authorization_server.py": 13696038495666024258, + "venv/lib/python3.13/site-packages/numpy/lib/_format_impl.py": 1809069379864985298, + "venv/lib/python3.13/site-packages/sqlalchemy-2.0.45.dist-info/WHEEL": 18203500019759199992, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/numpy_/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/maple.py": 7402467573829618534, + "backend/src/plugins/translate/orchestrator_runner.py": 1192466559618297192, + "venv/lib/python3.13/site-packages/pandas/tests/extension/test_datetime.py": 1678885152993000592, + "venv/lib/python3.13/site-packages/numpy/linalg/__init__.py": 15647756307608142577, + "venv/lib/python3.13/site-packages/git/objects/blob.py": 8972374723153211283, + "venv/lib/python3.13/site-packages/pandas/core/ops/__init__.py": 4049432353810047365, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/test_iloc.py": 7586049606891014270, + "venv/lib/python3.13/site-packages/pygments/lexers/stata.py": 7249891970174867363, + "frontend/src/app.css": 3020720639702954139, + "frontend/src/components/git/CommitHistory.svelte": 61942790722897211, + "frontend/build/_app/immutable/chunks/DsnmJJEf.js": 17416107759626312632, + "backend/src/plugins/llm_analysis/__tests__/test_screenshot_service.py": 17792688368296989200, + "backend/tests/test_datasets.py": 10782968094631273511, + "venv/lib/python3.13/site-packages/psycopg2/extensions.py": 14197445323992851566, + "venv/lib/python3.13/site-packages/pandas/io/excel/_xlrd.py": 14430937200583666658, + "venv/lib/python3.13/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE": 14230156892574098522, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_append.py": 13152738905565588661, + "venv/lib/python3.13/site-packages/ecdsa/_compat.py": 13034064768731879065, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/ddl.py": 5006132143435653867, + "backend/src/core/superset_profile_lookup.py": 5518507735632088337, + "venv/lib/python3.13/site-packages/pygments/styles/arduino.py": 4578385147314541233, + "venv/lib/python3.13/site-packages/dateutil/zoneinfo/rebuild.py": 1813298167468704155, + "backend/git_repos/remote/test-repo.git/hooks/pre-receive.sample": 6118492409684431911, + "venv/lib/python3.13/site-packages/annotated_doc-0.0.4.dist-info/RECORD": 7320381591791379627, + "backend/src/plugins/translate/preview_resolve_provider.py": 7349483761713339246, + "venv/lib/python3.13/site-packages/gitpython-3.1.46.dist-info/licenses/AUTHORS": 3558407083075395848, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/interval/test_interval.py": 18040371224712437126, + "venv/lib/python3.13/site-packages/numpy/lib/_npyio_impl.pyi": 6576645822227068922, + "venv/lib/python3.13/site-packages/pandas/tests/tools/test_to_time.py": 10463741033950978270, + "venv/lib/python3.13/site-packages/pip/_internal/cli/spinners.py": 7664056305019151182, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/period/test_scalar_compat.py": 10534925655070162459, + "venv/lib/python3.13/site-packages/PIL/TiffImagePlugin.py": 6845043550424565106, + "venv/lib/python3.13/site-packages/uvicorn/lifespan/off.py": 16254524872582859561, + "venv/lib/python3.13/site-packages/ecdsa/ecdsa.py": 9770689913380927623, + "venv/lib/python3.13/site-packages/git/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/shell.py": 3842338968014057744, + "venv/lib/python3.13/site-packages/fastapi/security/utils.py": 2616633862993539558, + "venv/lib/python3.13/site-packages/itsdangerous-2.2.0.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/authlib/common/encoding.py": 52296066492753953, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_lexsort.py": 10394832796613968484, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/categorical/test_map.py": 1115471561925426082, + "frontend/src/routes/tools/debug/+page.svelte": 8699044541980877686, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/__init__.py": 12975130533860125272, + "backend/src/api/routes/health.py": 4494840518139445701, + "venv/lib/python3.13/site-packages/pygments/lexers/apdlexer.py": 14222752852221009085, + "venv/lib/python3.13/site-packages/packaging/markers.py": 11602308203217831543, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7517/_cryptography_key.py": 388489172928969873, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/validation": 5398883285871046811, + "frontend/src/components/TaskList.svelte": 3024343043730631288, + "venv/lib/python3.13/site-packages/PIL/PpmImagePlugin.py": 7107324729714470853, + "venv/lib/python3.13/site-packages/pygments/lexers/haxe.py": 1915270891525929751, + "venv/lib/python3.13/site-packages/numpy/ctypeslib/_ctypeslib.pyi": 10360538024015064036, + "backend/tests/test_deprecation_audit_fixes.py": 17902995210831708431, + "venv/lib/python3.13/site-packages/pandas/core/window/common.py": 17956497339875932377, + "venv/lib/python3.13/site-packages/passlib/crypto/scrypt/__init__.py": 4390908730288159455, + "venv/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_common.py": 12064185052519470358, + "venv/lib/python3.13/site-packages/numpy/_core/tests/data/recarray_from_file.fits": 15116318600514274152, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_construction.py": 13953424340346625390, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/INSTALLER": 17282701611721059870, + "backend/src/services/dataset_review/event_logger.py": 8083530196989488371, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/unicode_comment.f90": 11326797716215117266, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/_orm_constructors.py": 4276726508722638048, + "backend/src/api/routes/admin.py": 235004514833998579, + "venv/lib/python3.13/site-packages/attrs-25.4.0.dist-info/licenses/LICENSE": 8438117004702803716, + "venv/lib/python3.13/site-packages/pydantic_core/_pydantic_core.cpython-313-x86_64-linux-gnu.so": 13917011878259810696, + "venv/lib/python3.13/site-packages/numpy/ma/tests/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/PIL/_webp.cpython-313-x86_64-linux-gnu.so": 11070012119632935103, + "venv/lib/python3.13/site-packages/h11/_util.py": 9362339074207904329, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/_internal_utils.py": 4091305333167213279, + "venv/lib/python3.13/site-packages/pandas/core/reshape/pivot.py": 4736553530021653868, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_to_dict_of_blocks.py": 11646835537993064324, + "venv/lib/python3.13/site-packages/websockets/datastructures.py": 5180442040351387281, + "venv/lib/python3.13/site-packages/jose/jwt.py": 3405491994268385178, + "venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_index_equal.py": 10617870815989304510, + "venv/lib/python3.13/site-packages/sqlalchemy/ext/asyncio/base.py": 13269563625127294513, + "venv/lib/python3.13/site-packages/pydantic/alias_generators.py": 5991580234179623842, + "venv/lib/python3.13/site-packages/pydantic_core-2.41.5.dist-info/RECORD": 6488682447051657004, + "venv/lib/python3.13/site-packages/pip/_internal/utils/datetime.py": 6816292030061301011, + "frontend/e2e/tests/login.e2e.js": 16303843677272482041, + "venv/lib/python3.13/site-packages/pydantic/schema.py": 83238111330132033, + "frontend/src/components/tasks/LogFilterBar.svelte": 5318774167984892372, + "frontend/build/_app/immutable/nodes/6.DJ9MrKC-.js": 8967503365556189617, + "backend/tests/test_maintenance_api.py": 2012388734813578069, + "venv/lib/python3.13/site-packages/ecdsa/test_ecdh.py": 3338834550392548171, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/test_multiindex.py": 13723677252432338937, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/__init__.py": 16211693040174992594, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py": 13763154154862871596, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/secrets.py": 17816662030600756342, + "venv/lib/python3.13/site-packages/numpy/_core/__init__.py": 14951958843029076911, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6750/token.py": 4161760290367932793, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/request.py": 10492090878715126550, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_frozen.py": 3484963987053884566, + "venv/lib/python3.13/site-packages/pandas/tests/groupby/test_index_as_string.py": 13421551616136437100, + "frontend/e2e/tests/settings.e2e.js": 14741334477359695649, + "frontend/src/routes/dashboards/health/+page.svelte": 7530813351508809839, + "frontend/build/_app/immutable/nodes/8.BFOpA89K.js": 13153301632221690235, + "venv/lib/python3.13/site-packages/pyasn1/codec/der/encoder.py": 4790267438222037867, + "venv/lib/python3.13/site-packages/passlib/tests/test_utils_handlers.py": 556092537518149789, + "backend/src/api/routes/assistant/_dispatch.py": 3122025109125421448, + "backend/tests/test_translate_history.py": 14504549443376034614, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/__ufunc_api.c": 11535375410441493281, + "venv/lib/python3.13/site-packages/dotenv/ipython.py": 15904966766060247908, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_encoding.py": 6622474614967398246, + "frontend/build/_app/immutable/nodes/25.DDfuZIEE.js": 7817480037775221276, + "venv/lib/python3.13/site-packages/pydantic/experimental/missing_sentinel.py": 1637241331832367709, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_semicolon_split.py": 8153770165829451525, + "venv/lib/python3.13/site-packages/passlib/apache.py": 2357244937629445006, + "venv/lib/python3.13/site-packages/pandas/tests/window/moments/test_moments_consistency_expanding.py": 12504275097476819918, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/test_astype.py": 563689238486630866, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_numpy_compat.py": 9112925138440787555, + "venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_concat.py": 4472503149811617440, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/version.py": 5000350193835202949, + "venv/lib/python3.13/site-packages/fastapi/__main__.py": 10755252341326986079, + "venv/lib/python3.13/site-packages/pandas/tests/generic/test_series.py": 2980850649986213051, + "venv/lib/python3.13/site-packages/websockets/legacy/server.py": 5390090919193784186, + "venv/lib/python3.13/site-packages/numpy/_core/_string_helpers.py": 17192211156810267818, + "venv/lib/python3.13/site-packages/pandas/tests/indexing/multiindex/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/_pytest/assertion/rewrite.py": 2425990712758915831, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc7636/__init__.py": 913610541217778747, + "venv/lib/python3.13/site-packages/numpy/random/__init__.pxd": 7355772669172093814, + "venv/lib/python3.13/site-packages/fastapi/testclient.py": 2606236077497278662, + "venv/lib/python3.13/site-packages/requests/status_codes.py": 17005213506461710202, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssl_.py": 644667973700652263, + "venv/lib/python3.13/site-packages/pandas/plotting/_matplotlib/hist.py": 10928173425078493095, + "venv/lib/python3.13/site-packages/gitdb-4.0.12.dist-info/RECORD": 9803861100978586236, + "venv/lib/python3.13/site-packages/pandas/core/_numba/kernels/mean_.py": 3641008929910474457, + "venv/lib/python3.13/site-packages/pandas/core/interchange/buffer.py": 12961802206383700922, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_update.py": 12293424926920594944, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_dropna.py": 17272771246760486947, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/boolean/test_comparison.py": 11333735187162513512, + "venv/lib/python3.13/site-packages/pycparser/lextab.py": 16045770806700381661, + "venv/lib/python3.13/site-packages/pandas/io/pytables.py": 17482934215513855928, + "venv/lib/python3.13/site-packages/pygments/styles/default.py": 13992125975366109635, + "frontend/src/lib/api/translate/schedules.js": 8616345664085016472, + "venv/lib/python3.13/site-packages/websockets/uri.py": 264376168984862773, + "backend/src/core/__tests__/test_superset_profile_lookup.py": 2078836378584435447, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_routines.py": 4860173574365060471, + "venv/lib/python3.13/site-packages/pygments/lexers/pony.py": 2720635393743617141, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/default.py": 7906029092844029127, + "venv/lib/python3.13/site-packages/numpy/lib/_index_tricks_impl.py": 13574106461973044500, + "venv/lib/python3.13/site-packages/numpy/random/_mt19937.cpython-313-x86_64-linux-gnu.so": 85866616759631810, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/memmap.pyi": 15629663272474054909, + "venv/lib/python3.13/site-packages/starlette/datastructures.py": 12097180838087229563, + "venv/lib/python3.13/site-packages/numpy/lib/tests/test_mixins.py": 12351373879926460719, + "venv/lib/python3.13/site-packages/passlib/totp.py": 14590474309565233318, + "venv/lib/python3.13/site-packages/PIL/FpxImagePlugin.py": 18245056799205041866, + "venv/lib/python3.13/site-packages/pydantic/_internal/_fields.py": 2692892815545218335, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_indexing.py": 6539365174681852769, + "venv/lib/python3.13/site-packages/authlib/oidc/core/models.py": 1370998944213578392, + "venv/lib/python3.13/site-packages/pygments/lexers/ul4.py": 9580182474451220952, + "backend/tests/test_smoke_plugins.py": 10704454611361370435, + "backend/git_repos/remote/test-repo.git/objects/ed/0432f88f5f7d95b26ecde34345abe741dd9db2": 13426916511127204463, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/timedelta/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/integer/test_concat.py": 1351478313334379336, + "venv/lib/python3.13/site-packages/pydantic/deprecated/decorator.py": 8609500261161560793, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/wait.py": 6196757964348666082, + "venv/lib/python3.13/site-packages/sqlalchemy/engine/cursor.py": 8074527784886981710, + "venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/pyproject.py": 12684373765476932108, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_win32_console.py": 18092547253031555768, + "venv/lib/python3.13/site-packages/rsa/__init__.py": 14623742580410014505, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/__init__.py": 10357835306532281617, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/hstore.py": 9700253004947691961, + "venv/lib/python3.13/site-packages/websockets/asyncio/async_timeout.py": 7267209982032642028, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_drop_duplicates.py": 5874427993953991216, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py": 9559295461619813890, + "venv/lib/python3.13/site-packages/authlib/jose/rfc7518/rsa_key.py": 7092106298733667895, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/getlimits.pyi": 93747984191461691, + "backend/git_repos/remote/test-repo.git/hooks/pre-merge-commit.sample": 10013699873067956556, + "venv/lib/python3.13/site-packages/dateutil/__init__.py": 17666544837260663800, + "backend/ss_tools_backend.egg-info/PKG-INFO": 15134841326777953914, + "backend/git_repos/remote/test-repo.git/objects/a1/3525f5f44e26d8fbec3226bd488d14793575a2": 3742572048019652365, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssltransport.py": 8148652555908329980, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/object/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_map.py": 10769974470610467636, + "venv/lib/python3.13/site-packages/passlib/crypto/_blowfish/unrolled.py": 12651425412640834530, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_ujson.py": 12184194085993665945, + "venv/lib/python3.13/site-packages/rsa/pem.py": 3118524021576082054, + "venv/lib/python3.13/site-packages/greenlet/platform/setup_switch_x64_masm.cmd": 8473866644286785815, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_to_latex.py": 15077617224435782028, + "venv/lib/python3.13/site-packages/cryptography/hazmat/decrepit/__init__.py": 63497920264089252, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_round.py": 9358309072340573675, + "venv/lib/python3.13/site-packages/urllib3/util/ssl_.py": 11720964010284185952, + "frontend/src/lib/components/translate/CorrectionCell.svelte": 14340498120654577399, + "venv/lib/python3.13/site-packages/pandas/tests/reductions/test_reductions.py": 11624188672428941494, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_scalarbuffer.py": 16859789411010045795, + "venv/lib/python3.13/site-packages/sqlalchemy/sql/sqltypes.py": 2952996080192295188, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_to_pydatetime.py": 16228315407662560992, + "venv/lib/python3.13/site-packages/pandas/core/computation/ops.py": 18250656489649699560, + "venv/lib/python3.13/site-packages/uvicorn/protocols/websockets/websockets_sansio_impl.py": 17221368219485351394, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/privatemod.f90": 8999550841368314739, + "backend/src/services/rbac_permission_catalog.py": 8206280020500996966, + "venv/lib/python3.13/site-packages/pydantic/v1/tools.py": 1995883197897112278, + "venv/lib/python3.13/site-packages/anyio/streams/memory.py": 11762722143503428823, + "backend/src/plugins/translate/__tests__/test_clickhouse_insert_integration.py": 2367759303622417201, + "backend/git_repos/remote/test-repo.git/objects/c2/491dfd8c841bacd5f491510f6334aa4a626f00": 6297303620364618482, + "venv/lib/python3.13/site-packages/authlib/integrations/flask_oauth2/errors.py": 16711622442922413520, + "venv/lib/python3.13/site-packages/pip/_vendor/dependency_groups/_toml_compat.py": 10196543528439925412, + "venv/lib/python3.13/site-packages/numpy/_typing/_ufunc.py": 16859854811012717088, + "venv/lib/python3.13/site-packages/pygments/lexers/graph.py": 10445044822847205061, + "venv/lib/python3.13/site-packages/pygments/lexers/dax.py": 10868881057512002309, + "venv/bin/fastapi": 12400009726251862770, + "venv/lib/python3.13/site-packages/passlib/handlers/django.py": 66638338316838351, + "venv/lib/python3.13/site-packages/numpy/_configtool.py": 2946953194004101078, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_setops.py": 14246225281428284850, + "frontend/src/lib/stores/__tests__/mocks/environment.js": 16653269108049932073, + "backend/src/plugins/translate/preview_session_ops.py": 14499196532448992687, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py": 5400174351499383072, + "venv/lib/python3.13/site-packages/httpx/__init__.py": 6383055693166097719, + "venv/lib/python3.13/site-packages/psycopg2_binary-2.9.11.dist-info/licenses/LICENSE": 5757922580822401219, + "venv/lib/python3.13/site-packages/jaraco.classes-3.4.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/numpy/core/function_base.py": 12696640832638144604, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_compression.py": 8061288329598682752, + "venv/lib/python3.13/site-packages/pygments/lexers/data.py": 9365024327689738663, + "venv/lib/python3.13/site-packages/greenlet/TUserGreenlet.cpp": 16258622236210473101, + "frontend/src/lib/components/assistant/AssistantChatPanel.svelte": 4130047433623185888, + "backend/src/plugins/translate/__tests__/test_token_budget.py": 9612693566837223655, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_info.py": 15151894356374015812, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi": 9294219058621261971, + "venv/lib/python3.13/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/content": 16257335642847993866, + "venv/lib/python3.13/site-packages/pandas/tests/frame/test_logical_ops.py": 16166386974005224415, + "venv/lib/python3.13/site-packages/numpy/_array_api_info.py": 9709101823494959741, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_update.py": 9098258267671647783, + "venv/lib/python3.13/site-packages/_pytest/cacheprovider.py": 5114545353355728201, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_asof.py": 15792528637923603240, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/dtypes/test_dtypes_basic.py": 10917162988625838981, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cffi/parse.py": 2427019397934437210, + "venv/lib/python3.13/site-packages/pandas/io/excel/_openpyxl.py": 6676451564208867775, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/simple.py": 11050636051019777317, + "venv/lib/python3.13/site-packages/sqlalchemy/util/_has_cy.py": 11979732417254560424, + "venv/lib/python3.13/site-packages/pandas/tseries/offsets.py": 13750652921710295115, + "venv/lib/python3.13/site-packages/pandas/tests/base/test_misc.py": 9190561773853901527, + "venv/lib/python3.13/site-packages/numpy/__config__.pyi": 1422114139050700402, + "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/tests/arithmetic/test_array_ops.py": 6709502157317299163, + "venv/lib/python3.13/site-packages/jaraco/context/__init__.py": 10975097417056278427, + "venv/lib/python3.13/site-packages/jose/jws.py": 11592462993417182096, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/sfc64_np126.pkl.gz": 1630203486813146863, + "venv/lib/python3.13/site-packages/pandas/_libs/indexing.pyi": 90995502095752726, + "backend/src/plugins/llm_analysis/__tests__/test_client_headers.py": 5527172390260032966, + "venv/lib/python3.13/site-packages/uvicorn/config.py": 17317823506849880916, + "venv/lib/python3.13/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js": 10530710876604536879, + "venv/lib/python3.13/site-packages/authlib/oauth2/__init__.py": 13682931764896414722, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_drop_duplicates.py": 2397396876872403048, + "venv/lib/python3.13/site-packages/keyring/backends/fail.py": 5792496235026678021, + "venv/lib/python3.13/site-packages/pandas/tests/test_common.py": 8987965560487646705, + "venv/lib/python3.13/site-packages/annotated_doc/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/common.py": 9354442374897565498, + "venv/lib/python3.13/site-packages/pandas/tests/strings/test_api.py": 10514120091521589282, + "venv/lib/python3.13/site-packages/httpcore/_sync/http11.py": 5947339024588907032, + "venv/lib/python3.13/site-packages/pygments/lexers/monte.py": 15158829991357994573, + "frontend/playwright-report/data/36557793d7fda8ef412a553a55389600452506f9.png": 8526067803082440263, + "backend/src/core/utils/superset_context_extractor/_base.py": 2165790563924045511, + "backend/src/api/routes/clean_release.py": 1984604735131504761, + "venv/lib/python3.13/site-packages/pandas/tests/apply/test_invalid_arg.py": 610891871484326055, + "venv/lib/python3.13/site-packages/authlib/oidc/core/grants/hybrid.py": 14287665090144592501, + "venv/lib/python3.13/site-packages/pygments/lexers/promql.py": 8929925488296216854, + "venv/lib/python3.13/site-packages/authlib/integrations/__init__.py": 15130871412783076140, + "frontend/build/_app/immutable/chunks/DkSc7bnI.js": 16633882293462436801, + "venv/lib/python3.13/site-packages/fastapi/security/open_id_connect_url.py": 3502444317759870079, + "backend/src/core/migration_engine.py": 3310429374293524108, + "venv/lib/python3.13/site-packages/_pytest/faulthandler.py": 13329320306353718649, + "venv/lib/python3.13/site-packages/pydantic-2.12.5.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pip/_vendor/idna/idnadata.py": 1169745920682458213, + "venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_size.py": 8527839563560550806, + "venv/lib/python3.13/site-packages/pandas/tests/arrays/interval/test_astype.py": 11386658862732393123, + "venv/lib/python3.13/site-packages/pygments/styles/stata_dark.py": 324072437809944751, + "venv/lib/python3.13/site-packages/apscheduler/executors/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/methods/test_shift.py": 14026124784027171225, + "frontend/src/lib/components/reports/ReportsList.svelte": 15460090587871611258, + "frontend/src/lib/stores/maintenance.svelte.js": 6057490524855148629, + "backend/tests/test_translate_scheduler_execution.py": 16687335504320865378, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_stringdtype.py": 8381476847196129074, + "frontend/src/lib/utils.js": 5436516952434475239, + "backend/src/models/storage.py": 14886607138033931307, + "venv/lib/python3.13/site-packages/pandas/core/indexers/objects.py": 409599993084996593, + "venv/lib/python3.13/site-packages/pandas/_config/config.py": 1494288055210911451, + "venv/lib/python3.13/site-packages/PIL/PcdImagePlugin.py": 922809545463280224, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/gevent.py": 4811840397266785551, + "venv/lib/python3.13/site-packages/pip/_vendor/urllib3/contrib/appengine.py": 16194997685865850655, + "venv/lib/python3.13/site-packages/starlette/middleware/exceptions.py": 10408538054406276433, + "venv/lib/python3.13/site-packages/_pytest/mark/expression.py": 1821437025841201912, + "venv/lib/python3.13/site-packages/yaml/emitter.py": 6036657460416912844, + "venv/lib/python3.13/site-packages/pygments/styles/inkpot.py": 10516710471319090846, + "frontend/src/routes/settings/__tests__/settings_page.ux.test.js": 12159582682619630694, + "venv/lib/python3.13/site-packages/pandas/tests/frame/constructors/test_from_dict.py": 4937173601709369119, + "venv/lib/python3.13/site-packages/numpy/fft/__init__.pyi": 10354990065626209946, + "backend/src/plugins/debug.py": 2035734953696955393, + "venv/lib/python3.13/site-packages/fastapi-0.127.1.dist-info/licenses/LICENSE": 3509878235770224233, + "venv/lib/python3.13/site-packages/pandas/core/internals/blocks.py": 6448406236246476333, + "venv/lib/python3.13/site-packages/rsa/randnum.py": 13958355153634534526, + "venv/lib/python3.13/site-packages/sqlalchemy/orm/util.py": 2176177435997659667, + "venv/lib/python3.13/site-packages/starlette/schemas.py": 697416731579555195, + "venv/lib/python3.13/site-packages/referencing/_attrs.py": 14434891919747863272, + "venv/lib/python3.13/site-packages/pygments/styles/rrt.py": 9490973359165080360, + "backend/src/api/routes/llm.py": 7404985960617844546, + "frontend/tests/maintenance.test.ts": 13103794138601813910, + "venv/lib/python3.13/site-packages/numpy/_core/_add_newdocs_scalars.pyi": 1826323011169529229, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/mysql/pyodbc.py": 11271266527234292020, + "venv/lib/python3.13/site-packages/pycparser/_c_ast.cfg": 2649342580905806389, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/crackfortran/gh23598Warn.f90": 7589258200398878529, + "frontend/playwright-report/data/d3248d538f098a40b756ead1ee1a92a7d61e7c7a.zip": 661058595618012246, + "backend/src/plugins/translate/_batch_sizer.py": 13074277127276828485, + "venv/lib/python3.13/site-packages/pyyaml-6.0.3.dist-info/licenses/LICENSE": 2345070715845618109, + "venv/lib/python3.13/site-packages/cryptography-46.0.3.dist-info/METADATA": 9041650844081036822, + "venv/lib/python3.13/site-packages/gitdb/db/git.py": 13552203494737962026, + "venv/lib/python3.13/site-packages/numpy-2.4.2.dist-info/WHEEL": 5838667082726674838, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ufunc_config.pyi": 11754104063443791746, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_mask.py": 5451866071307236899, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c": 17333399794446198412, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/conftest.py": 9673372914396625461, + "venv/lib/python3.13/site-packages/authlib/integrations/django_client/apps.py": 14151733532064278336, + "venv/lib/python3.13/site-packages/httpx/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/requests-2.32.5.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/io/formats/style/test_matplotlib.py": 12775850858284584296, + "venv/lib/python3.13/site-packages/pandas/tests/window/test_pairwise.py": 2673370322448160842, + "backend/src/api/routes/__tests__/test_clean_release_source_policy.py": 15242462571646635922, + "frontend/src/components/PasswordPrompt.svelte": 13739802421315835398, + "backend/src/services/clean_release/publication_service.py": 1882863137548904782, + "venv/lib/python3.13/site-packages/pip/_internal/operations/__init__.py": 15130871412783076140, + "backend/src/plugins/__init__.py": 17194112070692432889, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/reveal/ma.pyi": 6467636381637286867, + "backend/src/scripts/create_admin.py": 7540310914822649547, + "venv/lib/python3.13/site-packages/apscheduler/schedulers/blocking.py": 3483388533957772681, + "venv/lib/python3.13/site-packages/pygments/lexers/erlang.py": 11757064262773184741, + "venv/lib/python3.13/site-packages/anyio/_core/_eventloop.py": 6853955946028131785, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/fail/strings.pyi": 402863478592154500, + "venv/lib/python3.13/site-packages/pandas/core/arrays/timedeltas.py": 7318851108932357510, + "venv/lib/python3.13/site-packages/rpds_py-0.30.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pandas/_libs/tslibs/timezones.pyi": 17528421279543420867, + "venv/lib/python3.13/site-packages/urllib3/filepost.py": 3814725067598042920, + "backend/git_repos/remote/test-repo.git/refs/heads/preprod": 2288780285329550368, + "venv/lib/python3.13/site-packages/numpy/_core/numeric.py": 12261531924304979741, + "venv/lib/python3.13/site-packages/pandas/tests/frame/indexing/test_delitem.py": 16538190861492829338, + "venv/lib/python3.13/site-packages/pandas/tests/tslibs/test_strptime.py": 14328510310436552635, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi": 11733449165276720901, + "backend/src/services/clean_release/enums.py": 7365670144442292671, + "venv/lib/python3.13/site-packages/sqlalchemy/dialects/oracle/base.py": 13634605726041717070, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_x64_masm.obj": 2884737706935637437, + "venv/lib/python3.13/site-packages/numpy/lib/_function_base_impl.py": 14034239842770171660, + "venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_interval.py": 2613503970235591726, + "venv/lib/python3.13/site-packages/numpy/random/_examples/cython/extending.pyx": 756189645898997788, + "venv/lib/python3.13/site-packages/authlib/integrations/django_oauth2/requests.py": 6703055041957748929, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc9068/token.py": 4747545058753492487, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/packages.py": 11689856177725665974, + "venv/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarraytypes.h": 6765088137325865789, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/return_real/foo77.f": 16156304612888138777, + "venv/lib/python3.13/site-packages/pandas/util/_doctools.py": 3766479022075611396, + "venv/lib/python3.13/site-packages/pandas/tests/io/excel/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/io/formats/info.py": 215303194287834907, + "docker/nginx.conf": 14595959129793115016, + "venv/lib/python3.13/site-packages/tzlocal-5.3.1.dist-info/WHEEL": 5076688779572520166, + "venv/lib/python3.13/site-packages/pygments/lexers/usd.py": 934820244673741695, + "venv/lib/python3.13/site-packages/pygments/lexers/smithy.py": 10789533877863290582, + "frontend/src/routes/storage/repos/+page.svelte": 3849368960648953479, + "venv/lib/python3.13/site-packages/anyio/streams/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/httpx/_transports/mock.py": 13564349939188292363, + "venv/lib/python3.13/site-packages/numpy/core/arrayprint.py": 9652368112174245943, + "frontend/src/routes/admin/users/+page.svelte": 4464001185352807842, + "frontend/build/_app/immutable/nodes/34.BvudVJiY.js": 938635370536078571, + "venv/lib/python3.13/site-packages/greenlet/greenlet_exceptions.hpp": 8819301638282185623, + "backend/src/models/task.py": 1786589344409008831, + "venv/lib/python3.13/site-packages/_pytest/_py/path.py": 8464061867075119556, + "frontend/playwright-report/trace/defaultSettingsView.BDKsFU3c.css": 12935551588108679759, + "venv/lib/python3.13/site-packages/cffi-2.0.0.dist-info/METADATA": 5628172948035858892, + "backend/src/plugins/migration.py": 16213446701284149979, + "venv/lib/python3.13/site-packages/pygments/lexers/agile.py": 5686162551416231457, + "venv/lib/python3.13/site-packages/pandas/tests/extension/date/__init__.py": 16789767433439616593, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_compat.py": 6032546839876195115, + "venv/lib/python3.13/site-packages/pluggy-1.6.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_palettes.py": 13495896173068490516, + "venv/lib/python3.13/site-packages/authlib/oauth1/rfc5849/client_auth.py": 3301527187487914220, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/regression/AB.inc": 10441778083831997423, + "venv/lib/python3.13/site-packages/pandas/_libs/window/aggregations.pyi": 6072607880689125113, + "venv/lib/python3.13/site-packages/numpy/typing/tests/data/pass/scalars.py": 3468820466230647963, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/_initialize.pyi": 6616985736007157309, + "venv/lib/python3.13/site-packages/websockets-15.0.1.dist-info/REQUESTED": 15130871412783076140, + "venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/ciphers/base.py": 5294446834530589760, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_pickle.py": 4216445955812104014, + "venv/lib/python3.13/site-packages/pandas/tests/io/json/test_compression.py": 8577756801858495168, + "venv/lib/python3.13/site-packages/PIL/__main__.py": 827665918723937817, + "venv/lib/python3.13/site-packages/numpy/ma/extras.pyi": 15292036493781556342, + "venv/lib/python3.13/site-packages/jaraco_functools-4.4.0.dist-info/INSTALLER": 17282701611721059870, + "venv/lib/python3.13/site-packages/annotated_types-0.7.0.dist-info/RECORD": 11904769847385571600, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/src/routines/funcfortranname.pyf": 1361426175133186231, + "venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_arithmetic.py": 13320788210970132239, + "venv/lib/python3.13/site-packages/yaml/_yaml.cpython-313-x86_64-linux-gnu.so": 16990140871649227895, + "venv/lib/python3.13/site-packages/numpy/_utils/_convertions.py": 12886275429547303345, + "venv/lib/python3.13/site-packages/uvicorn/middleware/message_logger.py": 14825516604555033580, + "venv/lib/python3.13/site-packages/pandas/tests/copy_view/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/constructors.py": 7587476800569414769, + "venv/lib/python3.13/site-packages/sqlalchemy/cyextension/immutabledict.pyx": 11739218099400096619, + "venv/lib/python3.13/site-packages/pip/_vendor/packaging/tags.py": 254599446317461188, + "venv/lib/python3.13/site-packages/pandas/tests/series/methods/test_between.py": 337429135216881486, + "venv/lib/python3.13/site-packages/h11/_readers.py": 832030916375670301, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/_stack.py": 5316826578695144945, + "venv/lib/python3.13/site-packages/numpy/_core/tests/test_multiprocessing.py": 5522490547285108448, + "venv/lib/python3.13/site-packages/annotated_types/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/pygments/lexers/typst.py": 8883289726601667104, + "venv/lib/python3.13/site-packages/numpy/random/tests/data/__init__.py": 15130871412783076140, + "venv/lib/python3.13/site-packages/pandas/tests/indexes/test_setops.py": 15196593522537569500, + "venv/lib/python3.13/site-packages/pygments/lexers/ambient.py": 18106929781201758080, + "venv/lib/python3.13/site-packages/rapidfuzz/distance/Postfix.pyi": 2700568594438441246, + "venv/lib/python3.13/site-packages/greenlet/platform/switch_csky_gcc.h": 12929785267195988209, + "venv/lib/python3.13/site-packages/pip/_internal/distributions/base.py": 16714704323747942110, + "venv/lib/python3.13/site-packages/httpx/_transports/base.py": 6498990531443644896, + "venv/bin/f2py": 11006035631504708368, + "venv/lib/python3.13/site-packages/greenlet/greenlet_compiler_compat.hpp": 465436185632243991, + "venv/lib/python3.13/site-packages/numpy/f2py/tests/test_f2cmap.py": 5863341586534531594, + "frontend/playwright-report/trace/assets/urlMatch-BYQrIQwR.js": 8070494174996726626, + "venv/lib/python3.13/site-packages/numpy/random/_generator.pyi": 17167649524261942483, + "venv/lib/python3.13/site-packages/starlette/middleware/httpsredirect.py": 16837082808103815044, + "frontend/build/_app/immutable/chunks/DSCvrbNj.js": 7995659532253982919, + "venv/lib/python3.13/site-packages/pandas/tests/extension/base/reshaping.py": 18085648077811502689, + "venv/lib/python3.13/site-packages/pandas/tests/io/parser/common/__init__.py": 15130871412783076140, + "backend/src/core/migration/dry_run_orchestrator.py": 6268210017505159964, + "venv/lib/python3.13/site-packages/pydantic/errors.py": 3506829204186508192, + "backend/src/api/routes/validation.py": 13836068409484617547, + "backend/src/plugins/translate/preview.py": 1878554949419203980, + "venv/lib/python3.13/site-packages/cryptography/hazmat/bindings/__init__.py": 14571251344510763303, + "venv/lib/python3.13/site-packages/pip/_vendor/rich/align.py": 6078666505647454830, + "backend/tests/conftest.py": 5565151856098492311, + "venv/lib/python3.13/site-packages/pip/_internal/commands/lock.py": 14782882714168174465, + "venv/lib/python3.13/site-packages/pip/_vendor/requests/api.py": 12339139862411341381, + "venv/lib/python3.13/site-packages/sqlalchemy/pool/impl.py": 4687705587963980337, + "frontend/src/components/Toast.svelte": 4155277822937119359, + "frontend/src/services/toolsService.js": 1568142461283466080, + "frontend/src/components/storage/FileUpload.svelte": 14805293086068620697, + "backend/src/api/routes/dataset_review.py": 3689614039699023362, + "venv/lib/python3.13/site-packages/pip/_vendor/distlib/markers.py": 8297667990263004097, + "venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/py.typed": 15130871412783076140, + "venv/lib/python3.13/site-packages/numpy/lib/_index_tricks_impl.pyi": 5892973170789971535, + "venv/lib/python3.13/site-packages/pandas/tests/io/pytables/test_append.py": 9644955836191900614, + "venv/lib/python3.13/site-packages/secretstorage/__init__.py": 4535964275649588672, + "venv/lib/python3.13/site-packages/authlib/oauth2/rfc6749/hooks.py": 8580161128344266243, + "venv/lib/python3.13/site-packages/pytest_asyncio/plugin.py": 13414541723622354359, + "venv/lib/python3.13/site-packages/pygments/lexers/smv.py": 8253688483040957894, + "venv/lib/python3.13/site-packages/ecdsa/keys.py": 10281170640484982154, + "venv/lib/python3.13/site-packages/authlib-1.6.6.dist-info/METADATA": 2053484635654179443 } } \ No newline at end of file diff --git a/docs/adr/ADR-0007-rejected-fromStore-derived.md b/docs/adr/ADR-0007-rejected-fromStore-derived.md index a8c35acc..c815bac8 100644 --- a/docs/adr/ADR-0007-rejected-fromStore-derived.md +++ b/docs/adr/ADR-0007-rejected-fromStore-derived.md @@ -1,3 +1,10 @@ +# [DEF:ADR-0007:ADR] +# @STATUS REJECTED +# @PURPOSE Document the decision to forbid `fromStore` + multiple `$derived` in Svelte 5 components due to infinite reactive flush loop. +# @RELATION DEPENDS_ON -> [ADR-0006:ADR] +# @RATIONALE fromStore(store) returns a reactive object with .current property. Using it with multiple $derived creates persistent render_effect instances on every reactive re-evaluation, leading to an infinite flush loop and 100% CPU usage after ~300 poll cycles. +# @REJECTED fromStore with multiple $derived in the same component — causes infinite reactive flush loop in Svelte 5 runtime. + # ADR-0007: REJECTED — `fromStore` + multiple `$derived` in Svelte 5 ## Status @@ -59,3 +66,4 @@ $effect(() => { let foo = $derived(_state?.foo || null); let bar = $derived(_state?.bar || 0); ``` +# [/DEF:ADR-0007:ADR] diff --git a/specs/001-migration-ui-redesign/spec.md b/specs/001-migration-ui-redesign/spec.md index 81a1fd67..fc2d522f 100644 --- a/specs/001-migration-ui-redesign/spec.md +++ b/specs/001-migration-ui-redesign/spec.md @@ -2,7 +2,7 @@ **Feature Branch**: `001-migration-ui-redesign` **Created**: 2025-12-20 -**Status**: Draft +**Status**: Completed (environment dropdowns, database mapping tab, fuzzy matching, replace-DB migration) **Input**: User description: "я хочу переработать процесс и интерфейс миграции. 1. Необходимо чтобы был выпадающий список enviroments (откуда и куда), а также просто галка замены БД 2. Процесс замены БД должен быть предустановленными парами , необходима отдельная вкладка которая бы считывала базы данных с источника и цели и позволяла их маппить, при этом первоначально эмпирически подставляя пары вида 'Dev Clickhouse' -> 'Prod Clickhouse'. Меппинг нужно сохранять и иметь возможность его редактировать" ## Clarifications diff --git a/specs/002-app-settings/spec.md b/specs/002-app-settings/spec.md index d2183e07..1effa229 100755 --- a/specs/002-app-settings/spec.md +++ b/specs/002-app-settings/spec.md @@ -2,7 +2,7 @@ **Feature Branch**: `002-app-settings` **Created**: 2025-12-20 -**Status**: Draft +**Status**: Completed (environments CRUD, backup storage path, settings persistence, validation) **Input**: User description: "давай внесем полноценный механизм настройки веб приложения. Что нужно точно - 1. Интерфейс для добавления enviroments (разные сервера суперсета) 2. Интерфейс для настройки файлового хранилища бекапов" ## User Scenarios & Testing *(mandatory)* diff --git a/specs/004-integrate-svelte-kit/spec.md b/specs/004-integrate-svelte-kit/spec.md index a09f08b0..1c201768 100644 --- a/specs/004-integrate-svelte-kit/spec.md +++ b/specs/004-integrate-svelte-kit/spec.md @@ -2,7 +2,7 @@ **Feature Branch**: `004-integrate-svelte-kit` **Created**: 2025-12-20 -**Status**: Draft +**Status**: Completed (SvelteKit 5 with file-based routing, layouts, SPA mode, API integration, WS proxy) **Input**: User description: "Integrate SvelteKit into the project" ## User Scenarios & Testing *(mandatory)* diff --git a/specs/013-unify-frontend-css/spec.md b/specs/013-unify-frontend-css/spec.md index 8f29f2b7..6f7e2c49 100644 --- a/specs/013-unify-frontend-css/spec.md +++ b/specs/013-unify-frontend-css/spec.md @@ -2,7 +2,7 @@ **Feature Branch**: `013-unify-frontend-css` **Created**: 2026-01-23 -**Status**: Draft +**Status**: Implemented (i18n RU/EN with LocalStorage, Tailwind design tokens, UI component library, LanguageSwitcher) **Input**: User description: "Я хочу унифицировать CSS для фронта. Добавь в спецификацию требование, что я хочу l18n для всех текстовых элементов. Плюс, должен быть переключатель языков. Для начала два языка - русский и английский, русский по умолчанию." ## Clarifications diff --git a/specs/017-llm-analysis-plugin/spec.md b/specs/017-llm-analysis-plugin/spec.md index ecf4fc7b..37e703c9 100644 --- a/specs/017-llm-analysis-plugin/spec.md +++ b/specs/017-llm-analysis-plugin/spec.md @@ -2,7 +2,7 @@ **Feature Branch**: `017-llm-analysis-plugin` **Created**: 2026-01-28 -**Status**: Draft +**Status**: Implemented (plugin, service, scheduler, provider config; ~1714 LOC in core files) **Input**: User description: "LLM Dashboard Validation Plugin для интеграции LLM в ss-tools. Плагин должен поддерживать анализ корректности работы дашбордов через мультимодальную LLM (скриншот + логи). Второй плагин должен заниматься документированием датасетов и дашбордов, используя LLM. Возможно включение в создание текста коммитов в плагине Git Поддержка провайдеров: OpenRouter, Kilo Provider, OpenAI API. Интеграция с существующей PluginBase архитектурой, Task Manager, WebSocket логами." ## Clarifications diff --git a/specs/018-task-logging-v2/spec.md b/specs/018-task-logging-v2/spec.md index e32149c9..cba18b62 100644 --- a/specs/018-task-logging-v2/spec.md +++ b/specs/018-task-logging-v2/spec.md @@ -3,7 +3,7 @@ **Feature Branch**: `018-task-logging-v2` **Reference UX**: `specs/018-task-logging-v2/ux_reference.md` **Created**: 2026-02-07 -**Status**: Draft +**Status**: Implemented (TaskLogger with source attribution, DB persistence, REST/WS filtering, configurable levels) **Input**: User description: "Implement a separated per-task logging system with source attribution, persistence, and frontend filtering." ## User Scenarios & Testing *(mandatory)* diff --git a/specs/020-task-reports-design/spec.md b/specs/020-task-reports-design/spec.md index 279e2841..889ddc8a 100644 --- a/specs/020-task-reports-design/spec.md +++ b/specs/020-task-reports-design/spec.md @@ -3,7 +3,7 @@ **Feature Branch**: `020-task-reports-design` **Reference UX**: `ux_reference.md` (See specific folder) **Created**: 2026-02-22 -**Status**: Draft +**Status**: Implemented (unified reports API, ReportCard/ReportDetailPanel/ReportsList components, type profiles) **Input**: User description: "отображения отчетов по всем возможным задачам, со своим дизайном для каждого тип - llm документирование/проверка, бэкапы, миграции, документация." ## User Scenarios & Testing *(mandatory)* diff --git a/specs/021-llm-project-assistant/spec.md b/specs/021-llm-project-assistant/spec.md index 1fdf1cfb..21ab0926 100644 --- a/specs/021-llm-project-assistant/spec.md +++ b/specs/021-llm-project-assistant/spec.md @@ -3,7 +3,7 @@ **Feature Branch**: `021-llm-project-assistant` **Reference UX**: `ux_reference.md` (See specific folder) **Created**: 2026-02-23 -**Status**: Draft +**Status**: Implemented (routes, dispatcher, LLM planner, history, confirmation flow; 11+ frontend tests passing) **Input**: User description: "Создать чат-ассистента на базе LLM в веб-интерфейсе, чтобы управлять Git, миграциями/бэкапами, LLM-анализом и статусами задач через команды на естественном языке." ## User Scenarios & Testing *(mandatory)* diff --git a/specs/024-user-dashboard-filter/spec.md b/specs/024-user-dashboard-filter/spec.md index a5fe78d9..290f5478 100644 --- a/specs/024-user-dashboard-filter/spec.md +++ b/specs/024-user-dashboard-filter/spec.md @@ -2,7 +2,7 @@ **Feature Branch**: `024-user-dashboard-filter` **Created**: 2026-03-04 -**Status**: Draft +**Status**: Implemented (profile API, dashboard filter, frontend components, 32+ tests passing) **Input**: User description: "Необходимо добавить страницу пользовательского профиля. В странице стоит указать следующие настройки - показывать по умолчанию только мои дашборды. Для этого в настройках следует указать поле для аккаунта Apache Superset, и дальше фильтровать все дашборды по имени owners | modified_by" ## Clarifications diff --git a/specs/025-clean-release-compliance/checklists/requirements.md b/specs/025-clean-release-compliance/checklists/requirements.md index 0899696e..85f36574 100644 --- a/specs/025-clean-release-compliance/checklists/requirements.md +++ b/specs/025-clean-release-compliance/checklists/requirements.md @@ -30,7 +30,19 @@ - [x] No blocking ambiguity remains for `/speckit.plan` - [x] Specification is ready for `/speckit.plan` and `/speckit.tasks` +## Implementation Verification (2026-05-25) + +| Check | Status | +|-------|--------| +| Backend: clean_release services | ✅ `services/clean_release/` (30+ files: facade, orchestrator, policy_engine, manifest_builder, stages, repos) | +| Backend: clean_release routes | ✅ `api/routes/clean_release.py` + `clean_release_v2.py` | +| Backend: clean_release models | ✅ `models/clean_release.py` | +| Backend: CLI scripts | ✅ `scripts/clean_release_cli.py` + `clean_release_tui.py` | +| Backend: tests | ✅ 8 test files in `services/clean_release/__tests__/` + route tests | +| Quickstart validation | ✅ 15 tests passing (CLI + TUI + API) | + ## Notes - Architectural direction is intentional because the feature itself is a subsystem redesign rather than a small end-user capability. - Trust model, lifecycle invariants, and immutable evidence were kept at the requirement level because they are the product value of this redesign. +- Status updated: Partially Implemented. Core services, API v2, and CLI exist. Full compliance verification pending. diff --git a/specs/025-clean-release-compliance/spec.md b/specs/025-clean-release-compliance/spec.md index f50c1f8d..c4f91a4e 100644 --- a/specs/025-clean-release-compliance/spec.md +++ b/specs/025-clean-release-compliance/spec.md @@ -2,7 +2,7 @@ **Feature Branch**: `025-clean-release-compliance` **Created**: 2026-03-09 -**Status**: Draft +**Status**: Partially Implemented (services, routes, models, and CLI exist; final validation pending) **Input**: User description: "Редизайн текущего clean release TUI-checker в нормальную API/CLI-first release/compliance subsystem с разделением domain/application/infrastructure/interfaces, immutable snapshots, append-only compliance evidence, approval/publication flow, thin TUI client, REST API и интеграцией с TaskManager." ## User Scenarios & Testing *(mandatory)* diff --git a/specs/028-llm-datasource-supeset/checklists/requirements.md b/specs/028-llm-datasource-supeset/checklists/requirements.md index 92f86eac..8c8c0772 100644 --- a/specs/028-llm-datasource-supeset/checklists/requirements.md +++ b/specs/028-llm-datasource-supeset/checklists/requirements.md @@ -45,11 +45,27 @@ - [x] Dialect-aware SQL generation declared (PostgreSQL/Greenplum + ClickHouse, detected from Superset connection) - [x] Retention gap resolved: MetricSnapshot persistence before event pruning +## Implementation Verification (2026-05-25) + +| Check | Status | +|-------|--------| +| Backend: translate plugin | ✅ Exists at `plugins/translate/plugin.py` (C2) | +| Backend: translate routes | ✅ Exists as `api/routes/translate/` package (13 submodules) | +| Backend: translate services | ✅ Exists as `plugins/translate/service.py` (1174 LOC) | +| Backend: translate models | ✅ Exists as `models/translate.py` | +| Backend: translate schemas | ✅ Exists as `schemas/translate.py` | +| Backend: translate tests | ✅ 20 test files in `plugins/translate/__tests__/` | +| Frontend: translate pages | ✅ `/translate/`, `/translate/[id]/`, `/translate/dictionaries/`, `/translate/history/` | +| Frontend: translate components | ✅ 11 Svelte components (CorrectionCell, BulkReplaceModal, TranslationPreview, etc.) | +| Frontend: translate API client | ✅ `lib/api/translate/` (8 module files) | +| Docker compose | ✅ `docker-compose.yml` exists | +| Backend .env | ✅ `backend/.env` (12 lines, ENCRYPTION_KEY + feature flags) | + ## Notes - Post-review session resolved 3 critical contradictions and 10+ medium gaps. -- FR count: 49 | SC count: 15 | Key entities: 10 | Edge cases: 19 +- FR count: 63 (49 original + 14 NEW for multi-language/correction) | SC count: 25 | Key entities: 12 | Edge cases: 33 - Preview model clarified as quality gate (not row-level approval for all rows). - INSERT execution standardized on Superset `/api/v1/sqllab/execute/` API. - All manual copy/paste SQL Lab references removed from spec, UX, quickstart, and contracts. -- Specification is ready for the next phase (`/speckit.plan` re-validation or `/speckit.implement`). +- Spec status: Implemented ✅ (verified by code-to-spec mapping 2026-05-25)