diff --git a/.ai/MODULE_MAP.md b/.ai/MODULE_MAP.md
index 593df71a..70023518 100644
--- a/.ai/MODULE_MAP.md
+++ b/.ai/MODULE_MAP.md
@@ -2,12 +2,12 @@
> High-level module structure for AI Context. Generated automatically.
-**Generated:** 2026-03-10T18:26:33.375187
+**Generated:** 2026-03-10T20:52:01.801581
## Summary
- **Total Modules:** 103
-- **Total Entities:** 3077
+- **Total Entities:** 3088
## Module Hierarchy
@@ -1718,9 +1718,9 @@
### 📁 `migration/`
- - 📊 **Tiers:** CRITICAL: 12
+ - 📊 **Tiers:** CRITICAL: 21
- 📄 **Files:** 1
- - 📦 **Entities:** 12
+ - 📦 **Entities:** 21
**Key Entities:**
@@ -1972,9 +1972,9 @@
### 📁 `root/`
- 🏗️ **Layers:** DevOps/Tooling, Unknown
-- 📊 **Tiers:** CRITICAL: 11, STANDARD: 17, TRIVIAL: 9
+- 📊 **Tiers:** CRITICAL: 11, STANDARD: 18, TRIVIAL: 10
- 📄 **Files:** 2
-- 📦 **Entities:** 37
+- 📦 **Entities:** 39
**Key Entities:**
diff --git a/.ai/PROJECT_MAP.md b/.ai/PROJECT_MAP.md
index 5417276b..b7e436d5 100644
--- a/.ai/PROJECT_MAP.md
+++ b/.ai/PROJECT_MAP.md
@@ -68,6 +68,8 @@
- 📝 Calculate score and determine module's max tier for weighted global score
- ƒ **_generate_artifacts** (`Function`) `[CRITICAL]`
- 📝 Writes output files with tier-based compliance data.
+ - ƒ **_print_agent_report** (`Function`)
+ - 📝 Prints a JSON report optimized for AI agent orchestration and control.
- ƒ **_generate_report** (`Function`) `[CRITICAL]`
- 📝 Generates the Markdown compliance report with severity levels.
- ƒ **_collect_issues** (`Function`)
@@ -84,6 +86,8 @@
- 📝 Flattens entity tree for easier grouping.
- ƒ **to_dict** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
+ - ƒ **collect_recursive** (`Function`) `[TRIVIAL]`
+ - 📝 Auto-detected function (orphan)
- 📦 **DashboardTypes** (`Module`) `[TRIVIAL]`
- 📝 TypeScript interfaces for Dashboard entities
- 🏗️ Layer: Domain
@@ -1205,6 +1209,8 @@
- 📝 Fetches the list of environments from the API.
- ƒ **fetchDashboards** (`Function`) `[CRITICAL]`
- 📝 Fetches dashboards for the selected source environment.
+ - ▦ **ReactiveDashboardFetch** (`Block`) `[CRITICAL]`
+ - 📝 Automatically fetch dashboards when the source environment is changed.
- ƒ **fetchDatabases** (`Function`) `[CRITICAL]`
- 📝 Fetches databases from both environments and gets suggestions.
- ƒ **handleMappingUpdate** (`Function`) `[CRITICAL]`
@@ -1213,15 +1219,25 @@
- 📝 Opens the log viewer for a specific task.
- ƒ **handlePasswordPrompt** (`Function`) `[CRITICAL]`
- 📝 Reactive logic to show password prompt when a task is awaiting input.
+ - ▦ **ReactivePasswordPrompt** (`Block`) `[CRITICAL]`
+ - 📝 Monitor selected task for input requests and trigger password prompt.
- ƒ **handleResumeMigration** (`Function`) `[CRITICAL]`
- 📝 Resumes a migration task with provided passwords.
- ƒ **startMigration** (`Function`) `[CRITICAL]`
- - 📝 Starts the migration process.
+ - 📝 Initiates the migration process by sending the selection to the backend.
- ƒ **startDryRun** (`Function`) `[CRITICAL]`
- - 📝 Builds pre-flight diff and risk summary without applying migration.
+ - 📝 Performs a dry-run migration to identify potential risks and changes.
- ▦ **MigrationDashboardView** (`Block`) `[CRITICAL]`
- 📝 Render migration configuration controls, action CTAs, dry-run results, and modal entry points.
+ - ▦ **MigrationHeader** (`Block`) `[CRITICAL]`
+ - ▦ **TaskHistorySection** (`Block`) `[CRITICAL]`
+ - ▦ **ActiveTaskSection** (`Block`) `[CRITICAL]`
+ - ▦ **EnvironmentSelectionSection** (`Block`) `[CRITICAL]`
- 🧩 **DashboardSelectionSection** (`Component`) `[CRITICAL]`
+ - ▦ **MigrationOptionsSection** (`Block`) `[CRITICAL]`
+ - ▦ **DryRunResultsSection** (`Block`) `[CRITICAL]`
+ - ▦ **MigrationModals** (`Block`) `[CRITICAL]`
+ - 📝 Render overlay components for log viewing and password entry.
- ▦ **MappingsPageScript** (`Block`) `[CRITICAL]`
- 📝 Define imports, state, and handlers that drive migration mappings page FSM.
- 🔗 CALLS -> `fetchEnvironments`
diff --git a/.kilocode/workflows/speckit.semantics.md b/.kilocode/workflows/speckit.semantics.md
index 3e9f96f0..16ba95fc 100644
--- a/.kilocode/workflows/speckit.semantics.md
+++ b/.kilocode/workflows/speckit.semantics.md
@@ -1,5 +1,5 @@
---
-description: Maintain semantic integrity via multi-agent delegation. Analyzes codebase, delegates markup tasks to Semantic Engineer, verifies via Reviewer Agent, and reports status.
+description: Maintain semantic integrity by generating maps and auditing compliance reports.
---
## User Input
@@ -12,62 +12,63 @@ You **MUST** consider the user input before proceeding (if not empty).
## Goal
-Ensure the codebase 100% adheres to the semantic standards defined in `.ai/standards/semantics.md` (GRACE-Poly Protocol). You are the **Manager/Supervisor**. You do not write code. You manage the queue, delegate files to the Semantic Engineer, audit their work via the Reviewer Agent, and commit successful changes.
+Ensure the codebase adheres to the semantic standards defined in `.ai/standards/semantics.md`. This involves generating the semantic map, analyzing compliance reports, and identifying critical parsing errors or missing metadata.
## Operating Constraints
-1. **ROLE: Orchestrator**: High-level coordination ONLY. Do not output raw code diffs yourself.
-2. **DELEGATION PATTERN**: Strict `Orchestrator -> Engineer -> Reviewer -> Orchestrator` loop.
-3. **FAIL-FAST METRICS**: If the Reviewer Agent rejects a file 3 times in a row, drop the file from the current queue and mark it as `[HUMAN_INTERVENTION_REQUIRED]`.
-4. **TIER AWARENESS**: CRITICAL files MUST be processed first. A failure in a CRITICAL file blocks the entire pipeline.
+1. **ROLE: Orchestrator**: You are responsible for the high-level coordination of semantic maintenance.
+2. **STRICT ADHERENCE**: Follow `.ai/standards/semantics.md` for all anchor and tag syntax.
+3. **NON-DESTRUCTIVE**: Do not remove existing code logic; only add or update semantic annotations.
+4. **TIER AWARENESS**: Prioritize CRITICAL and STANDARD modules for compliance fixes.
+5. **NO PSEUDO-CONTRACTS (CRITICAL)**: You are STRICTLY FORBIDDEN from using automated scripts (e.g., Python/Bash/sed) to mechanically inject boilerplate, placeholders, or "pseudo-contracts" (such as `# @PURPOSE: Semantic contract placeholder.` or `# @PRE: Inputs satisfy function contract.`) merely to artificially inflate the compliance score. Every semantic tag, anchor, and contract you add MUST reflect a genuine, deep understanding of the specific code's actual logic and business requirements. Automated "stubbing" of semantics is classified as codebase corruption.
## Execution Steps
-### 1. Generate Semantic State (Analyze)
-Run the generator script to map the current reality:
+### 1. Generate Semantic Map
+
+Run the generator script from the repository root with the agent report option:
+
```bash
-python3 generate_semantic_map.py
+python3 generate_semantic_map.py --agent-report
```
-Parse the output (Global Score, Critical Parsing Errors, Files with Score < 0.7).
-### 2. Formulate Task Queue
-Create an execution queue based on the report. Priority:
-- **Priority 1 (Blockers)**: Files with "Critical Parsing Errors" (unclosed `[/DEF]` anchors).
-- **Priority 2 (Tier 1)**: `CRITICAL` tier modules missing mandatory tags (`@PRE`, `@POST`, `belief_scope`).
-- **Priority 3 (Tier 2)**: `STANDARD` modules with missing graph relations (`@RELATION`).
+### 2. Analyze Compliance Status
-### 3. The Delegation Loop (For each file in the queue)
-For every target file, execute this exact sequence:
+**Parse the JSON output to identify**:
+- `global_score`: The overall compliance percentage.
+- `critical_parsing_errors_count`: Number of Priority 1 blockers.
+- `priority_2_tier1_critical_missing_mandatory_tags_files`: Number of CRITICAL files needing metadata.
+- `targets`: Status of key architectural files.
-* **Step 3A (Delegate to Worker):** Send the file path and the specific violation from the report to the **Semantic Markup Agent (Engineer)**.
- *Prompt*: `"Fix semantic violations in [FILE]. Current issues: [ISSUES]. Apply GRACE-Poly standards without changing business logic."*
-* **Step 3B (Delegate to Auditor):** Once the Engineer returns the modified file, send it to the **Reviewer Agent (Auditor)**.
- *Prompt*: `"Verify GRACE-Poly compliance for [FILE]. Check for paired [DEF] anchors, complete contracts, and belief_scope usage. Return PASS or FAIL with specific line errors."*
-* **Step 3C (Evaluate):**
- * If Auditor returns `PASS`: Apply the diff to the codebase. Move to the next file.
- * If Auditor returns `FAIL`: Send the Auditor's error report back to the Engineer (Step 3A). Repeat max 3 times.
+### 3. Audit Critical Issues
-### 4. Verification
-Once the queue is empty, re-run `python3 generate_semantic_map.py` to prove the metrics have improved.
+Read the latest report and extract:
+- **Critical Parsing Errors**: Unclosed anchors or mismatched tags.
+- **Low-Score Files**: Files with score < 0.7 or marked with 🔴.
+- **Missing Mandatory Tags**: Specifically for CRITICAL tier modules.
-## Output Format
+### 4. Formulate Remediation Plan
-Return a structured summary of the operation:
+Create a list of files requiring immediate attention:
+1. **Priority 1**: Fix all "Critical Parsing Errors" (unclosed anchors).
+2. **Priority 2**: Add missing mandatory tags for CRITICAL modules.
+3. **Priority 3**: Improve coverage for STANDARD modules.
-```text
-=== GRACE SEMANTIC ORCHESTRATION REPORT ===
-Initial Global Score: [X]%
-Final Global Score: [Y]%
-Status:[PASS / BLOCKED]
+### 5. Execute Fixes (Optional/Handoff)
-Files Processed:
-1. [file_path] -[PASS (1 attempt) | PASS (2 attempts) | FAILED]
-2. ...
+If $ARGUMENTS contains "fix" or "apply":
+- For each target file, use `read_file` to get context.
+- Apply semantic fixes using `apply_diff`, preserving all code logic.
+- Re-run `python3 generate_semantic_map.py --agent-report` to verify the fix.
+
+## Output
+
+Provide a summary of the semantic state:
+- **Global Score**: [X]%
+- **Status**: [PASS/FAIL] (FAIL if any Critical Parsing Errors exist)
+- **Top Issues**: List top 3-5 files needing attention.
+- **Action Taken**: Summary of maps generated or fixes applied.
-Escalations (Human Intervention Required):
--[file_path]: Failed auditor review 3 times. Reason: [Last Auditor Note].
-```
## Context
$ARGUMENTS
-```
diff --git a/backend/src/api/routes/migration.py b/backend/src/api/routes/migration.py
index 71d06c03..b32c2143 100644
--- a/backend/src/api/routes/migration.py
+++ b/backend/src/api/routes/migration.py
@@ -26,7 +26,7 @@ from ...dependencies import get_config_manager, get_task_manager, has_permission
from ...core.database import get_db
from ...models.dashboard import DashboardMetadata, DashboardSelection
from ...core.superset_client import SupersetClient
-from ...core.logger import belief_scope
+from ...core.logger import logger, belief_scope
from ...core.migration.dry_run_orchestrator import MigrationDryRunService
from ...core.mapping_service import IdMappingService
from ...models.mapping import ResourceMapping
@@ -46,14 +46,18 @@ async def get_dashboards(
_ = Depends(has_permission("plugin:migration", "EXECUTE"))
):
with belief_scope("get_dashboards", f"env_id={env_id}"):
+ logger.reason(f"Fetching dashboards for environment: {env_id}")
environments = config_manager.get_environments()
- env = next((e for e in environments if e.id == env_id), None)
- if not env:
- raise HTTPException(status_code=404, detail="Environment not found")
+ env = next((e for e in environments if e.id == env_id), None)
+
+ if not env:
+ logger.explore(f"Environment {env_id} not found in configuration")
+ raise HTTPException(status_code=404, detail="Environment not found")
- client = SupersetClient(env)
- dashboards = client.get_dashboards_summary()
- return dashboards
+ client = SupersetClient(env)
+ dashboards = client.get_dashboards_summary()
+ logger.reflect(f"Retrieved {len(dashboards)} dashboards from {env_id}")
+ return dashboards
# [/DEF:get_dashboards:Function]
# [DEF:execute_migration:Function]
@@ -70,31 +74,30 @@ async def execute_migration(
_ = Depends(has_permission("plugin:migration", "EXECUTE"))
):
with belief_scope("execute_migration"):
+ logger.reason(f"Initiating migration from {selection.source_env_id} to {selection.target_env_id}")
+
# Validate environments exist
environments = config_manager.get_environments()
- env_ids = {e.id for e in environments}
- if selection.source_env_id not in env_ids or selection.target_env_id not in env_ids:
- raise HTTPException(status_code=400, detail="Invalid source or target environment")
+ env_ids = {e.id for e in environments}
+
+ if selection.source_env_id not in env_ids or selection.target_env_id not in env_ids:
+ logger.explore("Invalid environment selection", extra={"source": selection.source_env_id, "target": selection.target_env_id})
+ raise HTTPException(status_code=400, detail="Invalid source or target environment")
- # Create migration task with debug logging
- from ...core.logger import logger
-
- # Include replace_db_config and fix_cross_filters in the task parameters
- task_params = selection.dict()
- task_params['replace_db_config'] = selection.replace_db_config
- task_params['fix_cross_filters'] = selection.fix_cross_filters
-
- logger.info(f"Creating migration task with params: {task_params}")
- logger.info(f"Available environments: {env_ids}")
- logger.info(f"Source env: {selection.source_env_id}, Target env: {selection.target_env_id}")
-
- try:
- task = await task_manager.create_task("superset-migration", task_params)
- logger.info(f"Task created successfully: {task.id}")
- return {"task_id": task.id, "message": "Migration initiated"}
- except Exception as e:
- logger.error(f"Task creation failed: {e}")
- raise HTTPException(status_code=500, detail=f"Failed to create migration task: {str(e)}")
+ # Include replace_db_config and fix_cross_filters in the task parameters
+ task_params = selection.dict()
+ task_params['replace_db_config'] = selection.replace_db_config
+ task_params['fix_cross_filters'] = selection.fix_cross_filters
+
+ logger.reason(f"Creating migration task with {len(selection.selected_ids)} dashboards")
+
+ try:
+ task = await task_manager.create_task("superset-migration", task_params)
+ logger.reflect(f"Migration task created: {task.id}")
+ return {"task_id": task.id, "message": "Migration initiated"}
+ except Exception as e:
+ logger.explore(f"Task creation failed: {e}")
+ raise HTTPException(status_code=500, detail=f"Failed to create migration task: {str(e)}")
# [/DEF:execute_migration:Function]
@@ -112,29 +115,41 @@ async def dry_run_migration(
_ = Depends(has_permission("plugin:migration", "EXECUTE"))
):
with belief_scope("dry_run_migration"):
+ logger.reason(f"Starting dry run: {selection.source_env_id} -> {selection.target_env_id}")
+
environments = config_manager.get_environments()
- env_map = {env.id: env for env in environments}
- source_env = env_map.get(selection.source_env_id)
- target_env = env_map.get(selection.target_env_id)
- if not source_env or not target_env:
- raise HTTPException(status_code=400, detail="Invalid source or target environment")
- if selection.source_env_id == selection.target_env_id:
- raise HTTPException(status_code=400, detail="Source and target environments must be different")
- if not selection.selected_ids:
- raise HTTPException(status_code=400, detail="No dashboards selected for dry run")
+ env_map = {env.id: env for env in environments}
+ source_env = env_map.get(selection.source_env_id)
+ target_env = env_map.get(selection.target_env_id)
+
+ if not source_env or not target_env:
+ logger.explore("Invalid environment selection for dry run")
+ raise HTTPException(status_code=400, detail="Invalid source or target environment")
+
+ if selection.source_env_id == selection.target_env_id:
+ logger.explore("Source and target environments are identical")
+ raise HTTPException(status_code=400, detail="Source and target environments must be different")
+
+ if not selection.selected_ids:
+ logger.explore("No dashboards selected for dry run")
+ raise HTTPException(status_code=400, detail="No dashboards selected for dry run")
- service = MigrationDryRunService()
- source_client = SupersetClient(source_env)
- target_client = SupersetClient(target_env)
- try:
- return service.run(
- selection=selection,
- source_client=source_client,
- target_client=target_client,
- db=db,
- )
- except ValueError as exc:
- raise HTTPException(status_code=500, detail=str(exc)) from exc
+ service = MigrationDryRunService()
+ source_client = SupersetClient(source_env)
+ target_client = SupersetClient(target_env)
+
+ try:
+ result = service.run(
+ selection=selection,
+ source_client=source_client,
+ target_client=target_client,
+ db=db,
+ )
+ logger.reflect("Dry run analysis complete")
+ return result
+ except ValueError as exc:
+ logger.explore(f"Dry run orchestrator failed: {exc}")
+ raise HTTPException(status_code=500, detail=str(exc)) from exc
# [/DEF:dry_run_migration:Function]
# [DEF:get_migration_settings:Function]
diff --git a/backend/src/core/auth/repository.py b/backend/src/core/auth/repository.py
index 66830c2e..440f3f84 100644
--- a/backend/src/core/auth/repository.py
+++ b/backend/src/core/auth/repository.py
@@ -32,7 +32,13 @@ class AuthRepository:
# @DATA_CONTRACT: Input[Session] -> Output[None]
def __init__(self, db: Session):
with belief_scope("AuthRepository.__init__"):
+ if not isinstance(db, Session):
+ logger.explore("Invalid session provided to AuthRepository", extra={"type": type(db)})
+ raise TypeError("db must be an instance of sqlalchemy.orm.Session")
+
+ logger.reason("Binding AuthRepository to database session")
self.db = db
+ logger.reflect("AuthRepository initialized")
# [/DEF:__init__:Function]
# [DEF:get_user_by_username:Function]
@@ -43,7 +49,17 @@ class AuthRepository:
# @DATA_CONTRACT: Input[str] -> Output[Optional[User]]
def get_user_by_username(self, username: str) -> Optional[User]:
with belief_scope("AuthRepository.get_user_by_username"):
- return self.db.query(User).filter(User.username == username).first()
+ if not username or not isinstance(username, str):
+ raise ValueError("username must be a non-empty string")
+
+ logger.reason(f"Querying user by username: {username}")
+ user = self.db.query(User).filter(User.username == username).first()
+
+ if user:
+ logger.reflect(f"User found: {username}")
+ else:
+ logger.explore(f"User not found: {username}")
+ return user
# [/DEF:get_user_by_username:Function]
# [DEF:get_user_by_id:Function]
@@ -54,7 +70,17 @@ class AuthRepository:
# @DATA_CONTRACT: Input[str] -> Output[Optional[User]]
def get_user_by_id(self, user_id: str) -> Optional[User]:
with belief_scope("AuthRepository.get_user_by_id"):
- return self.db.query(User).filter(User.id == user_id).first()
+ if not user_id or not isinstance(user_id, str):
+ raise ValueError("user_id must be a non-empty string")
+
+ logger.reason(f"Querying user by ID: {user_id}")
+ user = self.db.query(User).filter(User.id == user_id).first()
+
+ if user:
+ logger.reflect(f"User found by ID: {user_id}")
+ else:
+ logger.explore(f"User not found by ID: {user_id}")
+ return user
# [/DEF:get_user_by_id:Function]
# [DEF:get_role_by_name:Function]
@@ -76,10 +102,15 @@ class AuthRepository:
# @DATA_CONTRACT: Input[User] -> Output[None]
def update_last_login(self, user: User):
with belief_scope("AuthRepository.update_last_login"):
+ if not isinstance(user, User):
+ raise TypeError("user must be an instance of User")
+
from datetime import datetime
+ logger.reason(f"Updating last login for user: {user.username}")
user.last_login = datetime.utcnow()
self.db.add(user)
self.db.commit()
+ logger.reflect(f"Last login updated and committed for user: {user.username}")
# [/DEF:update_last_login:Function]
# [DEF:get_role_by_id:Function]
@@ -144,9 +175,14 @@ class AuthRepository:
preference: UserDashboardPreference,
) -> UserDashboardPreference:
with belief_scope("AuthRepository.save_user_dashboard_preference"):
+ if not isinstance(preference, UserDashboardPreference):
+ raise TypeError("preference must be an instance of UserDashboardPreference")
+
+ logger.reason(f"Saving dashboard preference for user: {preference.user_id}")
self.db.add(preference)
self.db.commit()
self.db.refresh(preference)
+ logger.reflect(f"Dashboard preference saved and refreshed for user: {preference.user_id}")
return preference
# [/DEF:save_user_dashboard_preference:Function]
diff --git a/backend/src/core/config_manager.py b/backend/src/core/config_manager.py
index 1a41f6de..7965e5c1 100644
--- a/backend/src/core/config_manager.py
+++ b/backend/src/core/config_manager.py
@@ -36,18 +36,23 @@ class ConfigManager:
# @SIDE_EFFECT: Reads config sources and updates logging configuration.
# @DATA_CONTRACT: Input(str config_path) -> Output(None; self.config: AppConfig)
def __init__(self, config_path: str = "config.json"):
- with belief_scope("__init__"):
- assert isinstance(config_path, str) and config_path, "config_path must be a non-empty string"
+ with belief_scope("ConfigManager.__init__"):
+ if not isinstance(config_path, str) or not config_path:
+ logger.explore("Invalid config_path provided", extra={"path": config_path})
+ raise ValueError("config_path must be a non-empty string")
- logger.info(f"[ConfigManager][Entry] Initializing with legacy path {config_path}")
+ logger.reason(f"Initializing ConfigManager with legacy path: {config_path}")
self.config_path = Path(config_path)
self.config: AppConfig = self._load_config()
configure_logger(self.config.settings.logging)
- assert isinstance(self.config, AppConfig), "self.config must be an instance of AppConfig"
+
+ if not isinstance(self.config, AppConfig):
+ logger.explore("Config loading resulted in invalid type", extra={"type": type(self.config)})
+ raise TypeError("self.config must be an instance of AppConfig")
- logger.info("[ConfigManager][Exit] Initialized")
+ logger.reflect("ConfigManager initialization complete")
# [/DEF:__init__:Function]
# [DEF:_default_config:Function]
@@ -104,20 +109,23 @@ class ConfigManager:
# @SIDE_EFFECT: Database read/write, possible migration write, logging.
# @DATA_CONTRACT: Input(None) -> Output(AppConfig)
def _load_config(self) -> AppConfig:
- with belief_scope("_load_config"):
+ with belief_scope("ConfigManager._load_config"):
session: Session = SessionLocal()
try:
record = self._get_record(session)
if record and record.payload:
- logger.info("[_load_config][Coherence:OK] Configuration loaded from database")
- return AppConfig(**record.payload)
+ logger.reason("Configuration found in database")
+ config = AppConfig(**record.payload)
+ logger.reflect("Database configuration validated")
+ return config
- logger.info("[_load_config][Action] No database config found, migrating legacy config")
+ logger.reason("No database config found, initiating legacy migration")
config = self._load_from_legacy_file()
self._save_config_to_db(config, session=session)
+ logger.reflect("Legacy configuration migrated to database")
return config
except Exception as e:
- logger.error(f"[_load_config][Coherence:Failed] Error loading config from DB: {e}")
+ logger.explore(f"Error loading config from DB: {e}")
return self._default_config()
finally:
session.close()
@@ -130,8 +138,9 @@ class ConfigManager:
# @SIDE_EFFECT: Database insert/update, commit/rollback, logging.
# @DATA_CONTRACT: Input(AppConfig, Optional[Session]) -> Output(None)
def _save_config_to_db(self, config: AppConfig, session: Optional[Session] = None):
- with belief_scope("_save_config_to_db"):
- assert isinstance(config, AppConfig), "config must be an instance of AppConfig"
+ with belief_scope("ConfigManager._save_config_to_db"):
+ if not isinstance(config, AppConfig):
+ raise TypeError("config must be an instance of AppConfig")
owns_session = session is None
db = session or SessionLocal()
@@ -139,15 +148,17 @@ class ConfigManager:
record = self._get_record(db)
payload = config.model_dump()
if record is None:
+ logger.reason("Creating new global configuration record")
record = AppConfigRecord(id="global", payload=payload)
db.add(record)
else:
+ logger.reason("Updating existing global configuration record")
record.payload = payload
db.commit()
- logger.info("[_save_config_to_db][Action] Configuration saved to database")
+ logger.reflect("Configuration successfully committed to database")
except Exception as e:
db.rollback()
- logger.error(f"[_save_config_to_db][Coherence:Failed] Failed to save: {e}")
+ logger.explore(f"Failed to save configuration: {e}")
raise
finally:
if owns_session:
@@ -183,14 +194,15 @@ class ConfigManager:
# @SIDE_EFFECT: Mutates self.config, DB write, logger reconfiguration, logging.
# @DATA_CONTRACT: Input(GlobalSettings) -> Output(None)
def update_global_settings(self, settings: GlobalSettings):
- with belief_scope("update_global_settings"):
- logger.info("[update_global_settings][Entry] Updating settings")
-
- assert isinstance(settings, GlobalSettings), "settings must be an instance of GlobalSettings"
+ with belief_scope("ConfigManager.update_global_settings"):
+ if not isinstance(settings, GlobalSettings):
+ raise TypeError("settings must be an instance of GlobalSettings")
+
+ logger.reason("Updating global settings and persisting")
self.config.settings = settings
self.save()
configure_logger(settings.logging)
- logger.info("[update_global_settings][Exit] Settings updated")
+ logger.reflect("Global settings updated and logger reconfigured")
# [/DEF:update_global_settings:Function]
# [DEF:validate_path:Function]
@@ -257,14 +269,15 @@ class ConfigManager:
# @SIDE_EFFECT: Mutates environment list, DB write, logging.
# @DATA_CONTRACT: Input(Environment) -> Output(None)
def add_environment(self, env: Environment):
- with belief_scope("add_environment"):
- logger.info(f"[add_environment][Entry] Adding environment {env.id}")
- assert isinstance(env, Environment), "env must be an instance of Environment"
+ with belief_scope("ConfigManager.add_environment"):
+ if not isinstance(env, Environment):
+ raise TypeError("env must be an instance of Environment")
+ logger.reason(f"Adding/Updating environment: {env.id}")
self.config.environments = [e for e in self.config.environments if e.id != env.id]
self.config.environments.append(env)
self.save()
- logger.info("[add_environment][Exit] Environment added")
+ logger.reflect(f"Environment {env.id} persisted")
# [/DEF:add_environment:Function]
# [DEF:update_environment:Function]
@@ -274,22 +287,25 @@ class ConfigManager:
# @SIDE_EFFECT: May mutate environment list, DB write, logging.
# @DATA_CONTRACT: Input(str env_id, Environment updated_env) -> Output(bool)
def update_environment(self, env_id: str, updated_env: Environment) -> bool:
- with belief_scope("update_environment"):
- logger.info(f"[update_environment][Entry] Updating {env_id}")
- assert env_id and isinstance(env_id, str), "env_id must be a non-empty string"
- assert isinstance(updated_env, Environment), "updated_env must be an instance of Environment"
+ with belief_scope("ConfigManager.update_environment"):
+ if not env_id or not isinstance(env_id, str):
+ raise ValueError("env_id must be a non-empty string")
+ if not isinstance(updated_env, Environment):
+ raise TypeError("updated_env must be an instance of Environment")
+ logger.reason(f"Attempting to update environment: {env_id}")
for i, env in enumerate(self.config.environments):
if env.id == env_id:
if updated_env.password == "********":
+ logger.reason("Preserving existing password for masked update")
updated_env.password = env.password
self.config.environments[i] = updated_env
self.save()
- logger.info(f"[update_environment][Coherence:OK] Updated {env_id}")
+ logger.reflect(f"Environment {env_id} updated and saved")
return True
- logger.warning(f"[update_environment][Coherence:Failed] Environment {env_id} not found")
+ logger.explore(f"Environment {env_id} not found for update")
return False
# [/DEF:update_environment:Function]
@@ -300,18 +316,19 @@ class ConfigManager:
# @SIDE_EFFECT: May mutate environment list, conditional DB write, logging.
# @DATA_CONTRACT: Input(str env_id) -> Output(None)
def delete_environment(self, env_id: str):
- with belief_scope("delete_environment"):
- logger.info(f"[delete_environment][Entry] Deleting {env_id}")
- assert env_id and isinstance(env_id, str), "env_id must be a non-empty string"
+ with belief_scope("ConfigManager.delete_environment"):
+ if not env_id or not isinstance(env_id, str):
+ raise ValueError("env_id must be a non-empty string")
+ logger.reason(f"Attempting to delete environment: {env_id}")
original_count = len(self.config.environments)
self.config.environments = [e for e in self.config.environments if e.id != env_id]
if len(self.config.environments) < original_count:
self.save()
- logger.info(f"[delete_environment][Action] Deleted {env_id}")
+ logger.reflect(f"Environment {env_id} deleted and configuration saved")
else:
- logger.warning(f"[delete_environment][Coherence:Failed] Environment {env_id} not found")
+ logger.explore(f"Environment {env_id} not found for deletion")
# [/DEF:delete_environment:Function]
diff --git a/backend/src/core/migration_engine.py b/backend/src/core/migration_engine.py
index 11681676..fb479b10 100644
--- a/backend/src/core/migration_engine.py
+++ b/backend/src/core/migration_engine.py
@@ -38,7 +38,9 @@ class MigrationEngine:
# @PARAM: mapping_service (Optional[IdMappingService]) - Used for resolving target environment integer IDs.
def __init__(self, mapping_service: Optional[IdMappingService] = None):
with belief_scope("MigrationEngine.__init__"):
+ logger.reason("Initializing MigrationEngine")
self.mapping_service = mapping_service
+ logger.reflect("MigrationEngine initialized")
# [/DEF:__init__:Function]
# [DEF:transform_zip:Function]
@@ -59,12 +61,14 @@ class MigrationEngine:
Transform a Superset export ZIP by replacing database UUIDs and optionally fixing cross-filters.
"""
with belief_scope("MigrationEngine.transform_zip"):
+ logger.reason(f"Starting ZIP transformation: {zip_path} -> {output_path}")
+
with tempfile.TemporaryDirectory() as temp_dir_str:
temp_dir = Path(temp_dir_str)
try:
# 1. Extract
- logger.info(f"[MigrationEngine.transform_zip][Action] Extracting ZIP: {zip_path}")
+ logger.reason(f"Extracting source archive to {temp_dir}")
with zipfile.ZipFile(zip_path, 'r') as zf:
zf.extractall(temp_dir)
@@ -72,33 +76,33 @@ class MigrationEngine:
dataset_files = list(temp_dir.glob("**/datasets/**/*.yaml")) + list(temp_dir.glob("**/datasets/*.yaml"))
dataset_files = list(set(dataset_files))
- logger.info(f"[MigrationEngine.transform_zip][State] Found {len(dataset_files)} dataset files.")
+ logger.reason(f"Transforming {len(dataset_files)} dataset YAML files")
for ds_file in dataset_files:
- logger.info(f"[MigrationEngine.transform_zip][Action] Transforming dataset: {ds_file}")
self._transform_yaml(ds_file, db_mapping)
# 2.5 Patch Cross-Filters (Dashboards)
- if fix_cross_filters and self.mapping_service and target_env_id:
- dash_files = list(temp_dir.glob("**/dashboards/**/*.yaml")) + list(temp_dir.glob("**/dashboards/*.yaml"))
- dash_files = list(set(dash_files))
-
- logger.info(f"[MigrationEngine.transform_zip][State] Found {len(dash_files)} dashboard files for patching.")
-
- # Gather all source UUID-to-ID mappings from the archive first
- source_id_to_uuid_map = self._extract_chart_uuids_from_archive(temp_dir)
-
- for dash_file in dash_files:
- logger.info(f"[MigrationEngine.transform_zip][Action] Patching dashboard: {dash_file}")
- self._patch_dashboard_metadata(dash_file, target_env_id, source_id_to_uuid_map)
+ if fix_cross_filters:
+ if self.mapping_service and target_env_id:
+ dash_files = list(temp_dir.glob("**/dashboards/**/*.yaml")) + list(temp_dir.glob("**/dashboards/*.yaml"))
+ dash_files = list(set(dash_files))
+
+ logger.reason(f"Patching cross-filters for {len(dash_files)} dashboards")
+
+ # Gather all source UUID-to-ID mappings from the archive first
+ source_id_to_uuid_map = self._extract_chart_uuids_from_archive(temp_dir)
+
+ for dash_file in dash_files:
+ self._patch_dashboard_metadata(dash_file, target_env_id, source_id_to_uuid_map)
+ else:
+ logger.explore("Cross-filter patching requested but mapping service or target_env_id is missing")
# 3. Re-package
- logger.info(f"[MigrationEngine.transform_zip][Action] Re-packaging ZIP to: {output_path} (strip_databases={strip_databases})")
+ logger.reason(f"Re-packaging transformed archive (strip_databases={strip_databases})")
with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zf:
for root, dirs, files in os.walk(temp_dir):
rel_root = Path(root).relative_to(temp_dir)
if strip_databases and "databases" in rel_root.parts:
- logger.info(f"[MigrationEngine.transform_zip][Action] Skipping file in databases directory: {rel_root}")
continue
for file in files:
@@ -106,9 +110,10 @@ class MigrationEngine:
arcname = file_path.relative_to(temp_dir)
zf.write(file_path, arcname)
+ logger.reflect("ZIP transformation completed successfully")
return True
except Exception as e:
- logger.error(f"[MigrationEngine.transform_zip][Coherence:Failed] Error transforming ZIP: {e}")
+ logger.explore(f"Error transforming ZIP: {e}")
return False
# [/DEF:transform_zip:Function]
@@ -122,19 +127,23 @@ class MigrationEngine:
# @DATA_CONTRACT: Input[(Path file_path, Dict[str,str] db_mapping)] -> Output[None]
def _transform_yaml(self, file_path: Path, db_mapping: Dict[str, str]):
with belief_scope("MigrationEngine._transform_yaml"):
+ if not file_path.exists():
+ logger.explore(f"YAML file not found: {file_path}")
+ return
+
with open(file_path, 'r') as f:
data = yaml.safe_load(f)
if not data:
return
- # Superset dataset YAML structure:
- # database_uuid: ...
source_uuid = data.get('database_uuid')
if source_uuid in db_mapping:
+ logger.reason(f"Replacing database UUID in {file_path.name}")
data['database_uuid'] = db_mapping[source_uuid]
with open(file_path, 'w') as f:
yaml.dump(data, f)
+ logger.reflect(f"Database UUID patched in {file_path.name}")
# [/DEF:_transform_yaml:Function]
# [DEF:_extract_chart_uuids_from_archive:Function]
@@ -176,6 +185,9 @@ class MigrationEngine:
def _patch_dashboard_metadata(self, file_path: Path, target_env_id: str, source_map: Dict[int, str]):
with belief_scope("MigrationEngine._patch_dashboard_metadata"):
try:
+ if not file_path.exists():
+ return
+
with open(file_path, 'r') as f:
data = yaml.safe_load(f)
@@ -186,18 +198,13 @@ class MigrationEngine:
if not metadata_str:
return
- metadata = json.loads(metadata_str)
- modified = False
-
- # We need to deeply traverse and replace. For MVP, string replacement over the raw JSON is an option,
- # but careful dict traversal is safer.
-
# Fetch target UUIDs for everything we know:
uuids_needed = list(source_map.values())
+ logger.reason(f"Resolving {len(uuids_needed)} remote IDs for dashboard metadata patching")
target_ids = self.mapping_service.get_remote_ids_batch(target_env_id, ResourceType.CHART, uuids_needed)
if not target_ids:
- logger.info("[MigrationEngine._patch_dashboard_metadata][Reflect] No remote target IDs found in mapping database.")
+ logger.reflect("No remote target IDs found in mapping database for this dashboard.")
return
# Map Source Int -> Target Int
@@ -210,21 +217,16 @@ class MigrationEngine:
missing_targets.append(s_id)
if missing_targets:
- logger.warning(f"[MigrationEngine._patch_dashboard_metadata][Coherence:Recoverable] Missing target IDs for source IDs: {missing_targets}. Cross-filters for these IDs might break.")
+ logger.explore(f"Missing target IDs for source IDs: {missing_targets}. Cross-filters might break.")
if not source_to_target:
- logger.info("[MigrationEngine._patch_dashboard_metadata][Reflect] No source IDs matched remotely. Skipping patch.")
+ logger.reflect("No source IDs matched remotely. Skipping patch.")
return
- # Complex metadata traversal would go here (e.g. for native_filter_configuration)
- # We use regex replacement over the string for safety over unknown nested dicts.
-
+ logger.reason(f"Patching {len(source_to_target)} ID references in json_metadata")
new_metadata_str = metadata_str
- # Replace chartId and datasetId assignments explicitly.
- # Pattern: "datasetId": 42 or "chartId": 42
for s_id, t_id in source_to_target.items():
- # Replace in native_filter_configuration targets
new_metadata_str = re.sub(r'("datasetId"\s*:\s*)' + str(s_id) + r'(\b)', r'\g<1>' + str(t_id) + r'\g<2>', new_metadata_str)
new_metadata_str = re.sub(r'("chartId"\s*:\s*)' + str(s_id) + r'(\b)', r'\g<1>' + str(t_id) + r'\g<2>', new_metadata_str)
@@ -233,10 +235,10 @@ class MigrationEngine:
with open(file_path, 'w') as f:
yaml.dump(data, f)
- logger.info(f"[MigrationEngine._patch_dashboard_metadata][Reason] Re-serialized modified JSON metadata for dashboard.")
+ logger.reflect(f"Dashboard metadata patched and saved: {file_path.name}")
except Exception as e:
- logger.error(f"[MigrationEngine._patch_dashboard_metadata][Coherence:Failed] Metadata patch failed: {e}")
+ logger.explore(f"Metadata patch failed for {file_path.name}: {e}")
# [/DEF:_patch_dashboard_metadata:Function]
diff --git a/frontend/src/routes/migration/+page.svelte b/frontend/src/routes/migration/+page.svelte
index 47c4f1c0..814f1d38 100644
--- a/frontend/src/routes/migration/+page.svelte
+++ b/frontend/src/routes/migration/+page.svelte
@@ -15,10 +15,10 @@
@RELATION: [BINDS_TO] ->[frontend/src/components/TaskLogViewer.svelte]
@RELATION: [BINDS_TO] ->[frontend/src/components/PasswordPrompt.svelte]
@INVARIANT: Migration start is blocked unless source and target environments are selected, distinct, and at least one dashboard is selected.
-@UX_STATE: Idle -> User configures source/target environments, dashboard selection, and migration options.
-@UX_STATE: Loading -> Environment/database/dry-run fetch operations disable relevant actions and show progress text.
-@UX_STATE: Error -> Error banner/prompt message is shown while keeping user input intact for correction.
-@UX_STATE: Success -> Dry-run summary or active task view is rendered after successful API operations.
+@UX_STATE: [Idle] -> User configures source/target environments, dashboard selection, and migration options.
+@UX_STATE: [Loading] -> Environment/database/dry-run fetch operations disable relevant actions and show progress text.
+@UX_STATE: [Error] -> Error banner/prompt message is shown while keeping user input intact for correction.
+@UX_STATE: [Success] -> Dry-run summary or active task view is rendered after successful API operations.
@UX_FEEDBACK: Inline error banner, disabled CTA states, loading labels, dry-run summary cards, modal dialogs.
@UX_RECOVERY: User can adjust selection, refresh databases, retry dry-run/migration, resume task with passwords, or cancel modal flow.
@UX_REACTIVITY: State transitions rely on Svelte reactive bindings and store subscription to selectedTask.
@@ -102,9 +102,12 @@
*/
async function fetchEnvironments() {
return belief_scope("fetchEnvironments", async () => {
+ console.info("[fetchEnvironments][REASON] Initializing environment list for selection");
try {
environments = await api.getEnvironmentsList();
+ console.info("[fetchEnvironments][REFLECT] Environments loaded", { count: environments.length });
} catch (e) {
+ console.error("[fetchEnvironments][EXPLORE] Failed to fetch environments", e);
error = e.message;
} finally {
loading = false;
@@ -122,10 +125,13 @@
*/
async function fetchDashboards(envId: string) {
return belief_scope("fetchDashboards", async () => {
+ console.info("[fetchDashboards][REASON] Fetching dashboards for environment", { envId });
try {
dashboards = await api.requestApi(`/environments/${envId}/dashboards`);
selectedDashboardIds = []; // Reset selection when env changes
+ console.info("[fetchDashboards][REFLECT] Dashboards loaded", { count: dashboards.length });
} catch (e) {
+ console.error("[fetchDashboards][EXPLORE] Failed to fetch dashboards", e);
error = e.message;
dashboards = [];
}
@@ -135,8 +141,18 @@
onMount(fetchEnvironments);
- // Reactive: fetch dashboards when source env changes
- $: if (sourceEnvId) fetchDashboards(sourceEnvId);
+ // [DEF:ReactiveDashboardFetch:Block]
+ /**
+ * @PURPOSE: Automatically fetch dashboards when the source environment is changed.
+ * @PRE: sourceEnvId is not empty.
+ * @POST: fetchDashboards is called with the new sourceEnvId.
+ * @UX_STATE: [Loading] -> Triggered when sourceEnvId changes.
+ */
+ $: if (sourceEnvId) {
+ console.info("[ReactiveDashboardFetch][REASON] Source environment changed, fetching dashboards", { sourceEnvId });
+ fetchDashboards(sourceEnvId);
+ }
+ // [/DEF:ReactiveDashboardFetch:Block]
// [DEF:fetchDatabases:Function]
/**
@@ -146,7 +162,11 @@
*/
async function fetchDatabases() {
return belief_scope("fetchDatabases", async () => {
- if (!sourceEnvId || !targetEnvId) return;
+ if (!sourceEnvId || !targetEnvId) {
+ console.warn("[fetchDatabases][EXPLORE] Missing environment IDs for database fetch");
+ return;
+ }
+ console.info("[fetchDatabases][REASON] Fetching databases and suggestions for mapping", { sourceEnvId, targetEnvId });
fetchingDbs = true;
error = "";
@@ -167,7 +187,13 @@
targetDatabases = tgt;
mappings = maps;
suggestions = sugs;
+ console.info("[fetchDatabases][REFLECT] Databases and mappings loaded", {
+ sourceCount: src.length,
+ targetCount: tgt.length,
+ mappingCount: maps.length
+ });
} catch (e) {
+ console.error("[fetchDatabases][EXPLORE] Failed to fetch databases", e);
error = e.message;
} finally {
fetchingDbs = false;
@@ -188,8 +214,12 @@
const sDb = sourceDatabases.find((d) => d.uuid === sourceUuid);
const tDb = targetDatabases.find((d) => d.uuid === targetUuid);
- if (!sDb || !tDb) return;
+ if (!sDb || !tDb) {
+ console.warn("[handleMappingUpdate][EXPLORE] Database not found for mapping", { sourceUuid, targetUuid });
+ return;
+ }
+ console.info("[handleMappingUpdate][REASON] Updating database mapping", { sourceUuid, targetUuid });
try {
const savedMapping = await api.postApi("/mappings", {
source_env_id: sourceEnvId,
@@ -204,7 +234,9 @@
...mappings.filter((m) => m.source_db_uuid !== sourceUuid),
savedMapping,
];
+ console.info("[handleMappingUpdate][REFLECT] Mapping saved successfully");
} catch (e) {
+ console.error("[handleMappingUpdate][EXPLORE] Failed to save mapping", e);
error = e.message;
}
});
@@ -234,6 +266,13 @@
// Ideally, TaskHistory or TaskRunner emits an event when input is needed.
// Or we watch selectedTask.
+ // [DEF:ReactivePasswordPrompt:Block]
+ /**
+ * @PURPOSE: Monitor selected task for input requests and trigger password prompt.
+ * @PRE: $selectedTask is not null and status is AWAITING_INPUT.
+ * @POST: showPasswordPrompt is set to true if input_request is database_password.
+ * @UX_STATE: [AwaitingInput] -> Password prompt modal is displayed.
+ */
$: if (
$selectedTask &&
$selectedTask.status === "AWAITING_INPUT" &&
@@ -241,6 +280,7 @@
) {
const req = $selectedTask.input_request;
if (req.type === "database_password") {
+ console.info("[ReactivePasswordPrompt][REASON] Task awaiting database passwords", { taskId: $selectedTask.id });
passwordPromptDatabases = req.databases || [];
passwordPromptErrorMessage = req.error_message || "";
showPasswordPrompt = true;
@@ -251,6 +291,7 @@
// showPasswordPrompt = false;
// Actually, don't auto-close, let the user or success handler close it.
}
+ // [/DEF:ReactivePasswordPrompt:Block]
// [/DEF:handlePasswordPrompt:Function]
// [DEF:handleResumeMigration:Function]
@@ -278,31 +319,41 @@
// [DEF:startMigration:Function]
/**
- * @purpose Starts the migration process.
- * @pre sourceEnvId and targetEnvId must be set and different.
- * @post Migration task is started and selectedTask is updated.
+ * @PURPOSE: Initiates the migration process by sending the selection to the backend.
+ * @PRE: sourceEnvId and targetEnvId are set and different; at least one dashboard is selected.
+ * @POST: A migration task is created and selectedTask store is updated.
+ * @SIDE_EFFECT: Resets dryRunResult; updates error state on failure.
+ * @UX_STATE: [Loading] -> [Success] or [Error]
*/
async function startMigration() {
return belief_scope("startMigration", async () => {
if (!sourceEnvId || !targetEnvId) {
+ console.warn("[startMigration][EXPLORE] Missing environment selection");
error =
$t.migration?.select_both_envs ||
"Please select both source and target environments.";
return;
}
if (sourceEnvId === targetEnvId) {
+ console.warn("[startMigration][EXPLORE] Source and target environments are identical");
error =
$t.migration?.different_envs ||
"Source and target environments must be different.";
return;
}
if (selectedDashboardIds.length === 0) {
+ console.warn("[startMigration][EXPLORE] No dashboards selected");
error =
$t.migration?.select_dashboards ||
"Please select at least one dashboard to migrate.";
return;
}
+ console.info("[startMigration][REASON] Initiating migration execution", {
+ sourceEnvId,
+ targetEnvId,
+ dashboardCount: selectedDashboardIds.length
+ });
error = "";
try {
dryRunResult = null;
@@ -313,14 +364,9 @@
replace_db_config: replaceDb,
fix_cross_filters: fixCrossFilters,
};
- console.log(
- `[MigrationDashboard][Action] Starting migration with selection:`,
- selection,
- );
+
const result = await api.postApi("/migration/execute", selection);
- console.log(
- `[MigrationDashboard][Action] Migration started: ${result.task_id} - ${result.message}`,
- );
+ console.info("[startMigration][REFLECT] Migration task created", { taskId: result.task_id });
// Wait a brief moment for the backend to ensure the task is retrievable
await new Promise((r) => setTimeout(r, 500));
@@ -329,12 +375,9 @@
try {
const task = await api.getTask(result.task_id);
selectedTask.set(task);
+ console.info("[startMigration][REFLECT] Task details fetched and store updated");
} catch (fetchErr) {
- // Fallback: create a temporary task object to switch view immediately
- console.warn(
- $t.migration?.task_placeholder_warn ||
- "Could not fetch task details immediately, using placeholder.",
- );
+ console.warn("[startMigration][EXPLORE] Could not fetch task details immediately, using placeholder", fetchErr);
selectedTask.set({
id: result.task_id,
plugin_id: "superset-migration",
@@ -344,7 +387,7 @@
});
}
} catch (e) {
- console.error(`[MigrationDashboard][Failure] Migration failed:`, e);
+ console.error("[startMigration][EXPLORE] Migration initiation failed", e);
error = e.message;
}
});
@@ -353,36 +396,38 @@
// [DEF:startDryRun:Function]
/**
- * @purpose Builds pre-flight diff and risk summary without applying migration.
- * @pre source/target environments and selected dashboards are valid.
- * @post dryRunResult is populated with backend response.
- * @UX_STATE: Idle -> Dry Run button is enabled when selection is valid.
- * @UX_STATE: Loading -> Dry Run button shows "Dry Run..." and stays disabled.
- * @UX_STATE: Error -> error banner is displayed and dryRunResult resets to null.
+ * @PURPOSE: Performs a dry-run migration to identify potential risks and changes.
+ * @PRE: source/target environments and selected dashboards are valid.
+ * @POST: dryRunResult is populated with the pre-flight analysis.
+ * @UX_STATE: [Loading] -> [Success] or [Error]
* @UX_FEEDBACK: User sees summary cards + risk block + JSON details after success.
* @UX_RECOVERY: User can adjust selection and press Dry Run again.
*/
async function startDryRun() {
return belief_scope("startDryRun", async () => {
if (!sourceEnvId || !targetEnvId) {
+ console.warn("[startDryRun][EXPLORE] Missing environment selection");
error =
$t.migration?.select_both_envs ||
"Please select both source and target environments.";
return;
}
if (sourceEnvId === targetEnvId) {
+ console.warn("[startDryRun][EXPLORE] Source and target environments are identical");
error =
$t.migration?.different_envs ||
"Source and target environments must be different.";
return;
}
if (selectedDashboardIds.length === 0) {
+ console.warn("[startDryRun][EXPLORE] No dashboards selected");
error =
$t.migration?.select_dashboards ||
"Please select at least one dashboard to migrate.";
return;
}
+ console.info("[startDryRun][REASON] Initiating dry-run analysis", { sourceEnvId, targetEnvId });
error = "";
dryRunLoading = true;
try {
@@ -394,7 +439,9 @@
fix_cross_filters: fixCrossFilters,
};
dryRunResult = await api.postApi("/migration/dry-run", selection);
+ console.info("[startDryRun][REFLECT] Dry-run analysis completed", { riskScore: dryRunResult.risk.score });
} catch (e) {
+ console.error("[startDryRun][EXPLORE] Dry-run analysis failed", e);
error = e.message;
dryRunResult = null;
} finally {
@@ -418,20 +465,29 @@
-->
+
+
+
+
+
{#if $selectedTask}
-
{:else}
+
{#if loading}
{$t.migration?.loading_envs }
{:else if error}
@@ -442,6 +498,7 @@
{/if}
+
+
@@ -476,6 +534,7 @@
+
+
{#if replaceDb}
@@ -559,6 +620,7 @@
+
{#if dryRunResult}
Pre-flight Diff
@@ -599,15 +661,24 @@
{/if}
+
{/if}
-
+
+
(showLogViewer = false)}
+ on:close={() => {
+ console.info("[MigrationModals][REASON] Closing log viewer");
+ showLogViewer = false;
+ }}
/>
(showPasswordPrompt = false)}
+ on:cancel={() => {
+ console.info("[MigrationModals][REASON] User cancelled password prompt");
+ showPasswordPrompt = false;
+ }}
/>
+
diff --git a/generate_semantic_map.py b/generate_semantic_map.py
index 1206f9fc..f9b1755c 100644
--- a/generate_semantic_map.py
+++ b/generate_semantic_map.py
@@ -18,6 +18,7 @@ import re
import json
import datetime
import fnmatch
+import argparse
from enum import Enum
from dataclasses import dataclass, field
from typing import Dict, List, Optional, Any, Pattern, Tuple, Set
@@ -965,6 +966,106 @@ class SemanticMapGenerator:
self._generate_module_map()
# [/DEF:_generate_artifacts:Function]
+ # [DEF:_print_agent_report:Function]
+ # @TIER: STANDARD
+ # @PURPOSE: Prints a JSON report optimized for AI agent orchestration and control.
+ # @PRE: Validation and artifact generation are complete.
+ # @POST: JSON report printed to stdout.
+ def _print_agent_report(self):
+ with belief_scope("_print_agent_report"):
+ # Calculate global score (re-using logic from _generate_report)
+ total_weighted_score = 0
+ total_weight = 0
+ for file_path, data in self.file_scores.items():
+ tier = data["tier"]
+ score = data["score"]
+ weight = 3 if tier == Tier.CRITICAL else (2 if tier == Tier.STANDARD else 1)
+ total_weighted_score += score * weight
+ total_weight += weight
+ gs = total_weighted_score / total_weight if total_weight > 0 else 0
+
+ # Flatten entities to get per-file issues
+ file_data = {}
+ def collect_recursive(entities):
+ for e in entities:
+ path = e.file_path
+ if path not in file_data:
+ file_data[path] = {"issues": [], "tier": e.get_tier().value, "score": self.file_scores.get(path, {}).get("score", 0)}
+ file_data[path]["issues"].extend([i.to_dict() for i in e.compliance_issues])
+ collect_recursive(e.children)
+ collect_recursive(self.entities)
+
+ # Critical parsing errors
+ cpe = []
+ for path, data in file_data.items():
+ for i in data["issues"]:
+ msg = i.get("message", "").lower()
+ sev = i.get("severity", "").lower()
+ if "parsing" in msg and (sev == "error" or "critical" in msg):
+ cpe.append({"file": path, "severity": i.get("severity"), "message": i.get("message")})
+
+ # <0.7 by tier
+ lt = {"CRITICAL": 0, "STANDARD": 0, "TRIVIAL": 0, "UNKNOWN": 0}
+ for path, data in file_data.items():
+ if data["score"] < 0.7:
+ tier = data["tier"]
+ lt[tier if tier in lt else "UNKNOWN"] += 1
+
+ # Priority counts
+ p2 = 0
+ p3 = 0
+ for path, data in file_data.items():
+ tier = data["tier"]
+ issues = data["issues"]
+ if tier == "CRITICAL" and any("Missing Mandatory Tag" in i.get("message", "") for i in issues):
+ p2 += 1
+ if tier == "STANDARD" and any("@RELATION" in i.get("message", "") and "Missing Mandatory Tag" in i.get("message", "") for i in issues):
+ p3 += 1
+
+ # Target files status
+ targets = [
+ 'frontend/src/routes/migration/+page.svelte',
+ 'frontend/src/routes/migration/mappings/+page.svelte',
+ 'frontend/src/components/auth/ProtectedRoute.svelte',
+ 'backend/src/core/auth/repository.py',
+ 'backend/src/core/migration/risk_assessor.py',
+ 'backend/src/api/routes/migration.py',
+ 'backend/src/models/config.py',
+ 'backend/src/services/auth_service.py',
+ 'backend/src/core/config_manager.py',
+ 'backend/src/core/migration_engine.py'
+ ]
+ status = []
+ for t in targets:
+ f = file_data.get(t)
+ if not f:
+ status.append({"path": t, "found": False})
+ continue
+ sc = f["score"]
+ status.append({
+ "path": t,
+ "found": True,
+ "score": sc,
+ "tier": f["tier"],
+ "under_0_7": sc < 0.7,
+ "violations": len(f["issues"]) > 0,
+ "issues_count": len(f["issues"])
+ })
+
+ out = {
+ "global_score": gs,
+ "critical_parsing_errors_count": len(cpe),
+ "critical_parsing_errors": cpe[:50],
+ "lt_0_7_by_tier": lt,
+ "priority_1_blockers": len(cpe),
+ "priority_2_tier1_critical_missing_mandatory_tags_files": p2,
+ "priority_3_tier2_standard_missing_relation_files": p3,
+ "targets": status,
+ "total_files": len(file_data)
+ }
+ print(json.dumps(out, ensure_ascii=False))
+ # [/DEF:_print_agent_report:Function]
+
# [DEF:_generate_report:Function]
# @TIER: CRITICAL
# @PURPOSE: Generates the Markdown compliance report with severity levels.
@@ -1306,7 +1407,14 @@ class SemanticMapGenerator:
if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description="Generate Semantic Map and Compliance Reports")
+ parser.add_argument("--agent-report", action="store_true", help="Output JSON report for AI agents")
+ args = parser.parse_args()
+
generator = SemanticMapGenerator(PROJECT_ROOT)
generator.run()
+ if args.agent_report:
+ generator._print_agent_report()
+
# [/DEF:generate_semantic_map:Module]
diff --git a/semantics/semantic_map.json b/semantics/semantic_map.json
index 804f58f4..a30738a9 100644
--- a/semantics/semantic_map.json
+++ b/semantics/semantic_map.json
@@ -1,6 +1,6 @@
{
"project_root": ".",
- "generated_at": "2026-03-10T18:26:33.038330",
+ "generated_at": "2026-03-10T20:52:01.456257",
"modules": [
{
"name": "check_test_data",
@@ -45,7 +45,7 @@
"type": "Module",
"tier": "STANDARD",
"start_line": 1,
- "end_line": 1312,
+ "end_line": 1420,
"tags": {
"PURPOSE": "Scans the codebase to generate a Semantic Map, Module Map, and Compliance Report based on the System Standard.",
"PRE": "Valid directory containing code to scan.",
@@ -82,8 +82,8 @@
"name": "__init__",
"type": "Function",
"tier": "TRIVIAL",
- "start_line": 27,
- "end_line": 34,
+ "start_line": 28,
+ "end_line": 35,
"tags": {
"TIER": "TRIVIAL",
"PURPOSE": "Mock init for self-containment.",
@@ -102,8 +102,8 @@
"name": "__enter__",
"type": "Function",
"tier": "TRIVIAL",
- "start_line": 36,
- "end_line": 43,
+ "start_line": 37,
+ "end_line": 44,
"tags": {
"TIER": "TRIVIAL",
"PURPOSE": "Mock enter.",
@@ -122,8 +122,8 @@
"name": "__exit__",
"type": "Function",
"tier": "TRIVIAL",
- "start_line": 45,
- "end_line": 52,
+ "start_line": 46,
+ "end_line": 53,
"tags": {
"TIER": "TRIVIAL",
"PURPOSE": "Mock exit.",
@@ -142,8 +142,8 @@
"name": "Tier",
"type": "Class",
"tier": "TRIVIAL",
- "start_line": 59,
- "end_line": 65,
+ "start_line": 60,
+ "end_line": 66,
"tags": {
"TIER": "TRIVIAL",
"PURPOSE": "Enumeration of semantic tiers defining validation strictness."
@@ -160,8 +160,8 @@
"name": "Severity",
"type": "Class",
"tier": "TRIVIAL",
- "start_line": 69,
- "end_line": 75,
+ "start_line": 70,
+ "end_line": 76,
"tags": {
"TIER": "TRIVIAL",
"PURPOSE": "Severity levels for compliance issues."
@@ -178,8 +178,8 @@
"name": "ComplianceIssue",
"type": "Class",
"tier": "TRIVIAL",
- "start_line": 138,
- "end_line": 153,
+ "start_line": 139,
+ "end_line": 154,
"tags": {
"TIER": "TRIVIAL",
"PURPOSE": "Represents a single compliance issue with severity."
@@ -196,8 +196,8 @@
"name": "SemanticEntity",
"type": "Class",
"tier": "CRITICAL",
- "start_line": 156,
- "end_line": 413,
+ "start_line": 157,
+ "end_line": 414,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Represents a code entity (Module, Function, Component) found during parsing.",
@@ -209,8 +209,8 @@
"name": "__init__",
"type": "Function",
"tier": "STANDARD",
- "start_line": 161,
- "end_line": 187,
+ "start_line": 162,
+ "end_line": 188,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Initializes a new SemanticEntity instance.",
@@ -225,32 +225,32 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 161
+ "line_number": 162
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 161
+ "line_number": 162
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 161
+ "line_number": 162
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 161
+ "line_number": 162
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 161
+ "line_number": 162
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 161
+ "line_number": 162
}
],
"score": 0.0
@@ -260,8 +260,8 @@
"name": "get_tier",
"type": "Function",
"tier": "STANDARD",
- "start_line": 189,
- "end_line": 228,
+ "start_line": 190,
+ "end_line": 229,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Returns the tier of the entity, defaulting to STANDARD.",
@@ -276,32 +276,32 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 189
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 189
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 189
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 189
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 189
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 189
+ "line_number": 190
}
],
"score": 0.0
@@ -311,8 +311,8 @@
"name": "to_dict",
"type": "Function",
"tier": "STANDARD",
- "start_line": 230,
- "end_line": 259,
+ "start_line": 231,
+ "end_line": 260,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Serializes the entity to a dictionary for JSON output.",
@@ -327,32 +327,32 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 230
+ "line_number": 231
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 230
+ "line_number": 231
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 230
+ "line_number": 231
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 230
+ "line_number": 231
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 230
+ "line_number": 231
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 230
+ "line_number": 231
}
],
"score": 0.0
@@ -362,8 +362,8 @@
"name": "validate",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 261,
- "end_line": 366,
+ "start_line": 262,
+ "end_line": 367,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Checks for semantic compliance based on TIER requirements.",
@@ -379,92 +379,92 @@
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 261
+ "line_number": 262
}
],
"score": 0.0
@@ -474,8 +474,8 @@
"name": "get_score",
"type": "Function",
"tier": "STANDARD",
- "start_line": 368,
- "end_line": 412,
+ "start_line": 369,
+ "end_line": 413,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Calculates a compliance score (0.0 to 1.0) based on tier requirements.",
@@ -490,32 +490,32 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 368
+ "line_number": 369
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 368
+ "line_number": 369
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 368
+ "line_number": 369
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 368
+ "line_number": 369
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 368
+ "line_number": 369
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 368
+ "line_number": 369
}
],
"score": 0.0
@@ -532,8 +532,8 @@
"name": "get_patterns",
"type": "Function",
"tier": "STANDARD",
- "start_line": 416,
- "end_line": 454,
+ "start_line": 417,
+ "end_line": 455,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Returns regex patterns for a specific language.",
@@ -549,22 +549,22 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 416
+ "line_number": 417
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 416
+ "line_number": 417
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 416
+ "line_number": 417
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 416
+ "line_number": 417
}
],
"score": 0.28
@@ -574,8 +574,8 @@
"name": "extract_svelte_props",
"type": "Function",
"tier": "STANDARD",
- "start_line": 457,
- "end_line": 483,
+ "start_line": 458,
+ "end_line": 484,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Extracts props from Svelte component script section.",
@@ -590,22 +590,22 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 457
+ "line_number": 458
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 457
+ "line_number": 458
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 457
+ "line_number": 458
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 457
+ "line_number": 458
}
],
"score": 0.28
@@ -615,8 +615,8 @@
"name": "extract_svelte_events",
"type": "Function",
"tier": "STANDARD",
- "start_line": 486,
- "end_line": 520,
+ "start_line": 487,
+ "end_line": 521,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Extracts dispatched events from Svelte component.",
@@ -631,22 +631,22 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 486
+ "line_number": 487
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 486
+ "line_number": 487
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 486
+ "line_number": 487
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 486
+ "line_number": 487
}
],
"score": 0.28
@@ -656,8 +656,8 @@
"name": "extract_data_flow",
"type": "Function",
"tier": "STANDARD",
- "start_line": 523,
- "end_line": 573,
+ "start_line": 524,
+ "end_line": 574,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Extracts store subscriptions and data flow from Svelte component.",
@@ -672,22 +672,22 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 523
+ "line_number": 524
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 523
+ "line_number": 524
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 523
+ "line_number": 524
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 523
+ "line_number": 524
}
],
"score": 0.28
@@ -697,8 +697,8 @@
"name": "parse_file",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 576,
- "end_line": 772,
+ "start_line": 577,
+ "end_line": 773,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Parses a single file to extract semantic entities with tier awareness and enhanced Svelte analysis.",
@@ -715,72 +715,72 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 576
+ "line_number": 577
}
],
"score": 0.0
@@ -790,8 +790,8 @@
"name": "SemanticMapGenerator",
"type": "Class",
"tier": "CRITICAL",
- "start_line": 775,
- "end_line": 1305,
+ "start_line": 776,
+ "end_line": 1406,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Orchestrates the mapping process with tier-based validation.",
@@ -803,8 +803,8 @@
"name": "__init__",
"type": "Function",
"tier": "STANDARD",
- "start_line": 780,
- "end_line": 792,
+ "start_line": 781,
+ "end_line": 793,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Initializes the generator with a root directory.",
@@ -819,32 +819,32 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 780
+ "line_number": 781
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 780
+ "line_number": 781
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 780
+ "line_number": 781
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 780
+ "line_number": 781
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 780
+ "line_number": 781
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 780
+ "line_number": 781
}
],
"score": 0.0
@@ -854,8 +854,8 @@
"name": "_load_gitignore",
"type": "Function",
"tier": "STANDARD",
- "start_line": 794,
- "end_line": 810,
+ "start_line": 795,
+ "end_line": 811,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Loads patterns from .gitignore file.",
@@ -870,32 +870,32 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 794
+ "line_number": 795
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 794
+ "line_number": 795
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 794
+ "line_number": 795
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 794
+ "line_number": 795
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 794
+ "line_number": 795
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 794
+ "line_number": 795
}
],
"score": 0.0
@@ -905,8 +905,8 @@
"name": "_is_ignored",
"type": "Function",
"tier": "STANDARD",
- "start_line": 812,
- "end_line": 853,
+ "start_line": 813,
+ "end_line": 854,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Checks if a path should be ignored based on .gitignore or hardcoded defaults.",
@@ -921,32 +921,32 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 812
+ "line_number": 813
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 812
+ "line_number": 813
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 812
+ "line_number": 813
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 812
+ "line_number": 813
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 812
+ "line_number": 813
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 812
+ "line_number": 813
}
],
"score": 0.0
@@ -956,8 +956,8 @@
"name": "run",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 855,
- "end_line": 868,
+ "start_line": 856,
+ "end_line": 869,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Main execution flow.",
@@ -981,107 +981,107 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 855
+ "line_number": 856
}
],
"score": 0.0
@@ -1091,8 +1091,8 @@
"name": "_walk_and_parse",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 870,
- "end_line": 899,
+ "start_line": 871,
+ "end_line": 900,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Recursively walks directories and triggers parsing.",
@@ -1107,107 +1107,107 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 870
+ "line_number": 871
}
],
"score": 0.0
@@ -1217,8 +1217,8 @@
"name": "_process_file_results",
"type": "Function",
"tier": "STANDARD",
- "start_line": 901,
- "end_line": 943,
+ "start_line": 902,
+ "end_line": 944,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Validates entities and calculates file scores with tier awareness.",
@@ -1231,8 +1231,8 @@
"name": "validate_recursive",
"type": "Function",
"tier": "STANDARD",
- "start_line": 912,
- "end_line": 933,
+ "start_line": 913,
+ "end_line": 934,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Calculate score and determine module's max tier for weighted global score",
@@ -1247,42 +1247,42 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 912
+ "line_number": 913
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 912
+ "line_number": 913
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 912
+ "line_number": 913
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 912
+ "line_number": 913
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 912
+ "line_number": 913
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 912
+ "line_number": 913
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 912
+ "line_number": 913
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 912
+ "line_number": 913
}
],
"score": 0.0
@@ -1295,32 +1295,32 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 901
+ "line_number": 902
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 901
+ "line_number": 902
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 901
+ "line_number": 902
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 901
+ "line_number": 902
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 901
+ "line_number": 902
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 901
+ "line_number": 902
}
],
"score": 0.0
@@ -1330,8 +1330,8 @@
"name": "_generate_artifacts",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 945,
- "end_line": 966,
+ "start_line": 946,
+ "end_line": 967,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Writes output files with tier-based compliance data.",
@@ -1346,107 +1346,158 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 945
+ "line_number": 946
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "_print_agent_report",
+ "type": "Function",
+ "tier": "STANDARD",
+ "start_line": 969,
+ "end_line": 1067,
+ "tags": {
+ "TIER": "STANDARD",
+ "PURPOSE": "Prints a JSON report optimized for AI agent orchestration and control.",
+ "PRE": "Validation and artifact generation are complete.",
+ "POST": "JSON report printed to stdout."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
+ "severity": "WARNING",
+ "line_number": 969
+ },
+ {
+ "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
+ "severity": "WARNING",
+ "line_number": 969
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
+ "severity": "WARNING",
+ "line_number": 969
+ },
+ {
+ "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
+ "severity": "WARNING",
+ "line_number": 969
+ },
+ {
+ "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
+ "severity": "WARNING",
+ "line_number": 969
+ },
+ {
+ "message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
+ "severity": "WARNING",
+ "line_number": 969
}
],
"score": 0.0
@@ -1456,8 +1507,8 @@
"name": "_generate_report",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 968,
- "end_line": 1040,
+ "start_line": 1069,
+ "end_line": 1141,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Generates the Markdown compliance report with severity levels.",
@@ -1472,107 +1523,107 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 968
+ "line_number": 1069
}
],
"score": 0.0
@@ -1582,8 +1633,8 @@
"name": "_collect_issues",
"type": "Function",
"tier": "STANDARD",
- "start_line": 1042,
- "end_line": 1054,
+ "start_line": 1143,
+ "end_line": 1155,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Helper to collect issues for a specific file from the entity tree.",
@@ -1598,32 +1649,32 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1042
+ "line_number": 1143
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1042
+ "line_number": 1143
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1042
+ "line_number": 1143
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1042
+ "line_number": 1143
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1042
+ "line_number": 1143
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1042
+ "line_number": 1143
}
],
"score": 0.0
@@ -1633,8 +1684,8 @@
"name": "_generate_compressed_map",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 1056,
- "end_line": 1073,
+ "start_line": 1157,
+ "end_line": 1174,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Generates the token-optimized project map with enhanced Svelte details.",
@@ -1649,107 +1700,107 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1056
+ "line_number": 1157
}
],
"score": 0.0
@@ -1759,8 +1810,8 @@
"name": "_write_entity_md",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 1075,
- "end_line": 1144,
+ "start_line": 1176,
+ "end_line": 1245,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Recursive helper to write entity tree to Markdown with tier badges and enhanced details.",
@@ -1775,107 +1826,107 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1075
+ "line_number": 1176
}
],
"score": 0.0
@@ -1885,8 +1936,8 @@
"name": "_generate_module_map",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 1146,
- "end_line": 1303,
+ "start_line": 1247,
+ "end_line": 1404,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Generates a module-centric map grouping entities by directory structure.",
@@ -1899,8 +1950,8 @@
"name": "_get_module_path",
"type": "Function",
"tier": "STANDARD",
- "start_line": 1158,
- "end_line": 1171,
+ "start_line": 1259,
+ "end_line": 1272,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Extracts the module path from a file path.",
@@ -1915,42 +1966,42 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1158
+ "line_number": 1259
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1158
+ "line_number": 1259
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1158
+ "line_number": 1259
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1158
+ "line_number": 1259
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1158
+ "line_number": 1259
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1158
+ "line_number": 1259
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1158
+ "line_number": 1259
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1158
+ "line_number": 1259
}
],
"score": 0.0
@@ -1960,8 +2011,8 @@
"name": "_collect_all_entities",
"type": "Function",
"tier": "STANDARD",
- "start_line": 1173,
- "end_line": 1183,
+ "start_line": 1274,
+ "end_line": 1284,
"tags": {
"TIER": "STANDARD",
"PURPOSE": "Flattens entity tree for easier grouping.",
@@ -1976,42 +2027,42 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1173
+ "line_number": 1274
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1173
+ "line_number": 1274
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1173
+ "line_number": 1274
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1173
+ "line_number": 1274
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1173
+ "line_number": 1274
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1173
+ "line_number": 1274
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1173
+ "line_number": 1274
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for STANDARD tier)",
"severity": "WARNING",
- "line_number": 1173
+ "line_number": 1274
}
],
"score": 0.0
@@ -2024,107 +2075,107 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 1146
+ "line_number": 1247
}
],
"score": 0.0
@@ -2141,8 +2192,26 @@
"name": "to_dict",
"type": "Function",
"tier": "TRIVIAL",
- "start_line": 147,
- "end_line": 147,
+ "start_line": 148,
+ "end_line": 148,
+ "tags": {
+ "PURPOSE": "Auto-detected function (orphan)",
+ "TIER": "TRIVIAL"
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": true,
+ "issues": [],
+ "score": 1.0
+ }
+ },
+ {
+ "name": "collect_recursive",
+ "type": "Function",
+ "tier": "TRIVIAL",
+ "start_line": 989,
+ "end_line": 989,
"tags": {
"PURPOSE": "Auto-detected function (orphan)",
"TIER": "TRIVIAL"
@@ -2185,7 +2254,7 @@
"line_number": 1
},
{
- "message": "Fractal limit warning: Module length is 1312 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 1420 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -17359,7 +17428,7 @@
"type": "Component",
"tier": "CRITICAL",
"start_line": 36,
- "end_line": 406,
+ "end_line": 453,
"tags": {
"PURPOSE": "Orchestrate migration UI workflow and route user actions to backend APIs and task store.",
"PRE": "API client and component dependencies are available; i18n store is initialized.",
@@ -17374,7 +17443,7 @@
"type": "Function",
"tier": "CRITICAL",
"start_line": 97,
- "end_line": 114,
+ "end_line": 117,
"tags": {
"PURPOSE": "Fetches the list of environments from the API.",
"PRE": "None.",
@@ -17420,11 +17489,6 @@
"severity": "ERROR",
"line_number": 97
},
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 97
- },
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
@@ -17459,11 +17523,6 @@
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
"line_number": 97
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 97
}
],
"score": 0.0
@@ -17473,8 +17532,8 @@
"name": "fetchDashboards",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 116,
- "end_line": 134,
+ "start_line": 119,
+ "end_line": 140,
"tags": {
"PURPOSE": "Fetches dashboards for the selected source environment.",
"PRE": "envId is a valid environment ID.",
@@ -17489,82 +17548,103 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 119
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "ReactiveDashboardFetch",
+ "type": "Block",
+ "tier": "CRITICAL",
+ "start_line": 144,
+ "end_line": 155,
+ "tags": {
+ "PURPOSE": "Automatically fetch dashboards when the source environment is changed.",
+ "PRE": "sourceEnvId is not empty.",
+ "POST": "fetchDashboards is called with the new sourceEnvId.",
+ "UX_STATE": "[Loading] -> Triggered when sourceEnvId changes."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 144
},
{
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 116
+ "line_number": 144
}
],
"score": 0.0
@@ -17574,8 +17654,8 @@
"name": "fetchDatabases",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 141,
- "end_line": 177,
+ "start_line": 157,
+ "end_line": 203,
"tags": {
"PURPOSE": "Fetches databases from both environments and gets suggestions.",
"PRE": "sourceEnvId and targetEnvId must be set.",
@@ -17589,82 +17669,72 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
+ "line_number": 157
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 141
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 141
+ "line_number": 157
}
],
"score": 0.0
@@ -17674,8 +17744,8 @@
"name": "handleMappingUpdate",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 179,
- "end_line": 212,
+ "start_line": 205,
+ "end_line": 244,
"tags": {
"PURPOSE": "Saves a mapping to the backend.",
"PRE": "event.detail contains sourceUuid and targetUuid.",
@@ -17689,82 +17759,72 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 205
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 179
+ "line_number": 205
}
],
"score": 0.0
@@ -17774,8 +17834,8 @@
"name": "handleViewLogs",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 214,
- "end_line": 226,
+ "start_line": 246,
+ "end_line": 258,
"tags": {
"PURPOSE": "Opens the log viewer for a specific task.",
"PRE": "event.detail contains task object.",
@@ -17789,82 +17849,82 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
},
{
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 214
+ "line_number": 246
}
],
"score": 0.0
@@ -17874,97 +17934,134 @@
"name": "handlePasswordPrompt",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 228,
- "end_line": 254,
+ "start_line": 260,
+ "end_line": 295,
"tags": {
"PURPOSE": "Reactive logic to show password prompt when a task is awaiting input.",
"PRE": "selectedTask status is AWAITING_INPUT.",
"POST": "showPasswordPrompt set to true with request data."
},
"relations": [],
- "children": [],
+ "children": [
+ {
+ "name": "ReactivePasswordPrompt",
+ "type": "Block",
+ "tier": "CRITICAL",
+ "start_line": 269,
+ "end_line": 294,
+ "tags": {
+ "PURPOSE": "Monitor selected task for input requests and trigger password prompt.",
+ "PRE": "$selectedTask is not null and status is AWAITING_INPUT.",
+ "POST": "showPasswordPrompt is set to true if input_request is database_password.",
+ "UX_STATE": "[AwaitingInput] -> Password prompt modal is displayed."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 269
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 269
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 269
+ }
+ ],
+ "score": 0.0
+ }
+ }
+ ],
"compliance": {
"valid": false,
"issues": [
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
},
{
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 260
}
],
"score": 0.0
@@ -17974,8 +18071,8 @@
"name": "handleResumeMigration",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 256,
- "end_line": 277,
+ "start_line": 297,
+ "end_line": 318,
"tags": {
"PURPOSE": "Resumes a migration task with provided passwords.",
"PRE": "event.detail contains passwords.",
@@ -17989,82 +18086,82 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
},
{
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 256
+ "line_number": 297
}
],
"score": 0.0
@@ -18074,97 +18171,79 @@
"name": "startMigration",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 279,
- "end_line": 352,
+ "start_line": 320,
+ "end_line": 395,
"tags": {
- "PURPOSE": "Starts the migration process.",
- "PRE": "sourceEnvId and targetEnvId must be set and different.",
- "POST": "Migration task is started and selectedTask is updated."
+ "PURPOSE": "Initiates the migration process by sending the selection to the backend.",
+ "PRE": "sourceEnvId and targetEnvId are set and different; at least one dashboard is selected.",
+ "POST": "A migration task is created and selectedTask store is updated.",
+ "SIDE_EFFECT": "Resets dryRunResult; updates error state on failure.",
+ "UX_STATE": "[Loading] -> [Success] or [Error]"
},
"relations": [],
"children": [],
"compliance": {
"valid": false,
"issues": [
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 279
- },
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 279
- },
- {
- "message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
+ "line_number": 320
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 279
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 279
+ "line_number": 320
}
],
"score": 0.0
@@ -18174,13 +18253,13 @@
"name": "startDryRun",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 354,
- "end_line": 405,
+ "start_line": 397,
+ "end_line": 452,
"tags": {
- "PURPOSE": "Builds pre-flight diff and risk summary without applying migration.",
+ "PURPOSE": "Performs a dry-run migration to identify potential risks and changes.",
"PRE": "source/target environments and selected dashboards are valid.",
- "POST": "dryRunResult is populated with backend response.",
- "UX_STATE": "Error -> error banner is displayed and dryRunResult resets to null.",
+ "POST": "dryRunResult is populated with the pre-flight analysis.",
+ "UX_STATE": "[Loading] -> [Success] or [Error]",
"UX_FEEDBACK": "User sees summary cards + risk block + JSON details after success.",
"UX_RECOVERY": "User can adjust selection and press Dry Run again."
},
@@ -18192,82 +18271,72 @@
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @SIDE_EFFECT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @DATA_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
+ "line_number": 397
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 354
- },
- {
- "message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 354
+ "line_number": 397
}
],
"score": 0.0
@@ -18326,11 +18395,6 @@
"message": "Missing @INVARIANT tag (required for CRITICAL tier)",
"severity": "ERROR",
"line_number": 36
- },
- {
- "message": "Svelte protocol violation: `$:` reactive label is forbidden; use runes `$state/$derived/$effect`",
- "severity": "ERROR",
- "line_number": 36
}
],
"score": 0.0
@@ -18349,152 +18413,152 @@
{
"store": "selectedTask",
"type": "READS_FROM",
- "line": 238
+ "line": 277
},
{
"store": "selectedTask",
"type": "READS_FROM",
- "line": 239
+ "line": 278
},
{
"store": "selectedTask",
"type": "READS_FROM",
- "line": 240
+ "line": 279
},
{
"store": "selectedTask",
"type": "WRITES_TO",
- "line": 242
+ "line": 281
},
{
"store": "selectedTask",
"type": "READS_FROM",
- "line": 248
+ "line": 283
},
{
"store": "selectedTask",
"type": "READS_FROM",
- "line": 248
+ "line": 288
},
{
"store": "selectedTask",
"type": "READS_FROM",
- "line": 262
+ "line": 288
},
{
"store": "selectedTask",
"type": "READS_FROM",
- "line": 266
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 272
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 289
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 295
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 301
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 335
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 369
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 375
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 381
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 421
+ "line": 303
},
{
"store": "selectedTask",
"type": "READS_FROM",
+ "line": 307
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 313
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 333
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 340
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 347
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 411
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 418
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
"line": 425
},
{
"store": "t",
+ "type": "WRITES_TO",
+ "line": 469
+ },
+ {
+ "store": "selectedTask",
"type": "READS_FROM",
- "line": 430
+ "line": 477
},
{
"store": "t",
"type": "READS_FROM",
- "line": 436
+ "line": 485
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 492
},
{
"store": "t",
"type": "WRITES_TO",
- "line": 447
- },
- {
- "store": "t",
- "type": "WRITES_TO",
- "line": 452
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 461
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 472
- },
- {
- "store": "t",
- "type": "READS_FROM",
- "line": 488
- },
- {
- "store": "t",
- "type": "READS_FROM",
"line": 504
},
{
"store": "t",
- "type": "READS_FROM",
- "line": 512
+ "type": "WRITES_TO",
+ "line": 509
},
{
"store": "t",
"type": "READS_FROM",
- "line": 516
+ "line": 519
},
{
"store": "t",
"type": "READS_FROM",
- "line": 532
+ "line": 530
},
{
"store": "t",
"type": "READS_FROM",
- "line": 558
+ "line": 547
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 564
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 573
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 577
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 593
+ },
+ {
+ "store": "t",
+ "type": "READS_FROM",
+ "line": 619
}
]
},
@@ -18502,8 +18566,8 @@
"name": "MigrationDashboardView",
"type": "Block",
"tier": "CRITICAL",
- "start_line": 409,
- "end_line": 622,
+ "start_line": 456,
+ "end_line": 697,
"tags": {
"PURPOSE": "Render migration configuration controls, action CTAs, dry-run results, and modal entry points.",
"UX_STATE": "Success -> Dry-run details or TaskRunner content is presented.",
@@ -18513,11 +18577,11 @@
"relations": [],
"children": [
{
- "name": "DashboardSelectionSection",
- "type": "Component",
+ "name": "MigrationHeader",
+ "type": "Block",
"tier": "CRITICAL",
- "start_line": 458,
- "end_line": 477,
+ "start_line": 468,
+ "end_line": 470,
"tags": {},
"relations": [],
"children": [],
@@ -18527,112 +18591,357 @@
{
"message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @LAYER (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @SEMANTICS (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
+ "line_number": 468
},
{
"message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @INVARIANT (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @RELATION (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @UX_STATE (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @UX_FEEDBACK (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @UX_RECOVERY (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @UX_REACTIVITY (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing @INVARIANT tag (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
+ "line_number": 468
},
{
"message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @LAYER (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
- },
- {
- "message": "Missing Mandatory Tag: @SEMANTICS (required for CRITICAL tier)",
- "severity": "ERROR",
- "line_number": 458
+ "line_number": 468
},
{
"message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
+ "line_number": 468
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "TaskHistorySection",
+ "type": "Block",
+ "tier": "CRITICAL",
+ "start_line": 472,
+ "end_line": 474,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 472
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 472
+ },
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 472
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 472
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "ActiveTaskSection",
+ "type": "Block",
+ "tier": "CRITICAL",
+ "start_line": 476,
+ "end_line": 490,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 476
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 476
+ },
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 476
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 476
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "EnvironmentSelectionSection",
+ "type": "Block",
+ "tier": "CRITICAL",
+ "start_line": 501,
+ "end_line": 514,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 501
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 501
+ },
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 501
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 501
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "DashboardSelectionSection",
+ "type": "Component",
+ "tier": "CRITICAL",
+ "start_line": 516,
+ "end_line": 535,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @LAYER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
},
{
"message": "Missing Mandatory Tag: @INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
+ "line_number": 516
},
{
"message": "Missing Mandatory Tag: @RELATION (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
+ "line_number": 516
},
{
"message": "Missing Mandatory Tag: @UX_STATE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
+ "line_number": 516
},
{
"message": "Missing Mandatory Tag: @UX_FEEDBACK (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
+ "line_number": 516
},
{
"message": "Missing Mandatory Tag: @UX_RECOVERY (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
+ "line_number": 516
},
{
"message": "Missing Mandatory Tag: @UX_REACTIVITY (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
+ "line_number": 516
},
{
"message": "Missing @INVARIANT tag (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 458
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @LAYER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @SEMANTICS (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @INVARIANT (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @RELATION (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @UX_STATE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @UX_FEEDBACK (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @UX_RECOVERY (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing Mandatory Tag: @UX_REACTIVITY (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ },
+ {
+ "message": "Missing @INVARIANT tag (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 516
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "MigrationOptionsSection",
+ "type": "Block",
+ "tier": "CRITICAL",
+ "start_line": 537,
+ "end_line": 568,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 537
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 537
+ },
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 537
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 537
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "DryRunResultsSection",
+ "type": "Block",
+ "tier": "CRITICAL",
+ "start_line": 623,
+ "end_line": 664,
+ "tags": {},
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 623
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 623
+ },
+ {
+ "message": "Missing Mandatory Tag: @PURPOSE (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 623
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 623
+ }
+ ],
+ "score": 0.0
+ }
+ },
+ {
+ "name": "MigrationModals",
+ "type": "Block",
+ "tier": "CRITICAL",
+ "start_line": 668,
+ "end_line": 694,
+ "tags": {
+ "PURPOSE": "Render overlay components for log viewing and password entry.",
+ "UX_STATE": "[AwaitingInput] -> PasswordPrompt is visible."
+ },
+ "relations": [],
+ "children": [],
+ "compliance": {
+ "valid": false,
+ "issues": [
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 668
+ },
+ {
+ "message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
+ "severity": "ERROR",
+ "line_number": 668
}
],
"score": 0.0
@@ -18645,7 +18954,7 @@
{
"message": "Missing Mandatory Tag: @TIER (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 409
+ "line_number": 456
}
],
"score": 0.35
@@ -43143,7 +43452,7 @@
"type": "Module",
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 319,
+ "end_line": 336,
"tags": {
"TIER": "CRITICAL",
"SEMANTICS": "config, manager, persistence, migration, postgresql",
@@ -43183,7 +43492,7 @@
"type": "Class",
"tier": "CRITICAL",
"start_line": 28,
- "end_line": 318,
+ "end_line": 335,
"tags": {
"TIER": "CRITICAL",
"PURPOSE": "Handles application configuration load, validation, mutation, and persistence lifecycle."
@@ -43195,7 +43504,7 @@
"type": "Function",
"tier": "CRITICAL",
"start_line": 32,
- "end_line": 51,
+ "end_line": 56,
"tags": {
"PURPOSE": "Initialize manager state from persisted or migrated configuration.",
"PRE": "config_path is a non-empty string path.",
@@ -43291,8 +43600,8 @@
"name": "_default_config",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 53,
- "end_line": 65,
+ "start_line": 58,
+ "end_line": 70,
"tags": {
"PURPOSE": "Build default application configuration fallback.",
"PRE": "None.",
@@ -43308,77 +43617,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 53
+ "line_number": 58
}
],
"score": 0.0
@@ -43388,8 +43697,8 @@
"name": "_load_from_legacy_file",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 67,
- "end_line": 87,
+ "start_line": 72,
+ "end_line": 92,
"tags": {
"PURPOSE": "Load legacy JSON configuration for migration fallback path.",
"PRE": "self.config_path is initialized.",
@@ -43405,77 +43714,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 67
+ "line_number": 72
}
],
"score": 0.0
@@ -43485,8 +43794,8 @@
"name": "_get_record",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 89,
- "end_line": 98,
+ "start_line": 94,
+ "end_line": 103,
"tags": {
"PURPOSE": "Resolve global configuration record from DB.",
"PRE": "session is an active SQLAlchemy Session.",
@@ -43502,77 +43811,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 89
+ "line_number": 94
}
],
"score": 0.0
@@ -43582,8 +43891,8 @@
"name": "_load_config",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 100,
- "end_line": 124,
+ "start_line": 105,
+ "end_line": 132,
"tags": {
"PURPOSE": "Load configuration from DB or perform one-time migration from legacy JSON.",
"PRE": "SessionLocal factory is available and AppConfigRecord schema is accessible.",
@@ -43599,77 +43908,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 100
+ "line_number": 105
}
],
"score": 0.0
@@ -43679,8 +43988,8 @@
"name": "_save_config_to_db",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 126,
- "end_line": 155,
+ "start_line": 134,
+ "end_line": 166,
"tags": {
"PURPOSE": "Persist provided AppConfig into the global DB configuration record.",
"PRE": "config is AppConfig; session is either None or an active Session.",
@@ -43696,77 +44005,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 126
+ "line_number": 134
}
],
"score": 0.0
@@ -43776,8 +44085,8 @@
"name": "save",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 157,
- "end_line": 166,
+ "start_line": 168,
+ "end_line": 177,
"tags": {
"PURPOSE": "Persist current in-memory configuration state.",
"PRE": "self.config is initialized.",
@@ -43793,77 +44102,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 168
}
],
"score": 0.0
@@ -43873,8 +44182,8 @@
"name": "get_config",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 168,
- "end_line": 177,
+ "start_line": 179,
+ "end_line": 188,
"tags": {
"PURPOSE": "Return current in-memory configuration snapshot.",
"PRE": "self.config is initialized.",
@@ -43890,77 +44199,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 168
+ "line_number": 179
}
],
"score": 0.0
@@ -43970,8 +44279,8 @@
"name": "update_global_settings",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 179,
- "end_line": 194,
+ "start_line": 190,
+ "end_line": 206,
"tags": {
"PURPOSE": "Replace global settings and persist the resulting configuration.",
"PRE": "settings is GlobalSettings.",
@@ -43987,77 +44296,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 179
+ "line_number": 190
}
],
"score": 0.0
@@ -44067,8 +44376,8 @@
"name": "validate_path",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 196,
- "end_line": 215,
+ "start_line": 208,
+ "end_line": 227,
"tags": {
"PURPOSE": "Validate that path exists and is writable, creating it when absent.",
"PRE": "path is a string path candidate.",
@@ -44084,77 +44393,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 196
+ "line_number": 208
}
],
"score": 0.0
@@ -44164,8 +44473,8 @@
"name": "get_environments",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 217,
- "end_line": 226,
+ "start_line": 229,
+ "end_line": 238,
"tags": {
"PURPOSE": "Return all configured environments.",
"PRE": "self.config is initialized.",
@@ -44181,77 +44490,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 217
+ "line_number": 229
}
],
"score": 0.0
@@ -44261,8 +44570,8 @@
"name": "has_environments",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 228,
- "end_line": 237,
+ "start_line": 240,
+ "end_line": 249,
"tags": {
"PURPOSE": "Check whether at least one environment exists in configuration.",
"PRE": "self.config is initialized.",
@@ -44278,77 +44587,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 228
+ "line_number": 240
}
],
"score": 0.0
@@ -44358,8 +44667,8 @@
"name": "get_environment",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 239,
- "end_line": 251,
+ "start_line": 251,
+ "end_line": 263,
"tags": {
"PURPOSE": "Resolve a configured environment by identifier.",
"PRE": "env_id is string identifier.",
@@ -44375,77 +44684,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 239
+ "line_number": 251
}
],
"score": 0.0
@@ -44455,8 +44764,8 @@
"name": "add_environment",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 253,
- "end_line": 268,
+ "start_line": 265,
+ "end_line": 281,
"tags": {
"PURPOSE": "Upsert environment by id into configuration and persist.",
"PRE": "env is Environment.",
@@ -44472,77 +44781,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 253
+ "line_number": 265
}
],
"score": 0.0
@@ -44552,8 +44861,8 @@
"name": "update_environment",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 270,
- "end_line": 294,
+ "start_line": 283,
+ "end_line": 310,
"tags": {
"PURPOSE": "Update existing environment by id and preserve masked password placeholder behavior.",
"PRE": "env_id is non-empty string and updated_env is Environment.",
@@ -44569,77 +44878,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 270
+ "line_number": 283
}
],
"score": 0.0
@@ -44649,8 +44958,8 @@
"name": "delete_environment",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 296,
- "end_line": 315,
+ "start_line": 312,
+ "end_line": 332,
"tags": {
"PURPOSE": "Delete environment by id and persist when deletion occurs.",
"PRE": "env_id is non-empty string.",
@@ -44666,77 +44975,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 296
+ "line_number": 312
}
],
"score": 0.0
@@ -44775,7 +45084,7 @@
"valid": true,
"issues": [
{
- "message": "Fractal limit warning: Module length is 319 lines (must be < 300)",
+ "message": "Fractal limit warning: Module length is 336 lines (must be < 300)",
"severity": "WARNING",
"line_number": 1
}
@@ -47609,7 +47918,7 @@
"type": "Module",
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 245,
+ "end_line": 247,
"tags": {
"TIER": "CRITICAL",
"SEMANTICS": "migration, engine, zip, yaml, transformation, cross-filter, id-mapping",
@@ -47641,7 +47950,7 @@
"type": "Class",
"tier": "CRITICAL",
"start_line": 28,
- "end_line": 243,
+ "end_line": 245,
"tags": {
"PURPOSE": "Engine for transforming Superset export ZIPs."
},
@@ -47652,7 +47961,7 @@
"type": "Function",
"tier": "CRITICAL",
"start_line": 32,
- "end_line": 42,
+ "end_line": 44,
"tags": {
"PURPOSE": "Initializes migration orchestration dependencies for ZIP/YAML metadata transformations.",
"PRE": "mapping_service is None or implements batch remote ID lookup for ResourceType.CHART.",
@@ -47749,8 +48058,8 @@
"name": "transform_zip",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 44,
- "end_line": 113,
+ "start_line": 46,
+ "end_line": 118,
"tags": {
"PURPOSE": "Extracts ZIP, replaces database UUIDs in YAMLs, patches cross-filters, and re-packages.",
"PARAM": "fix_cross_filters (bool) - Whether to patch dashboard json_metadata.",
@@ -47768,77 +48077,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 44
+ "line_number": 46
}
],
"score": 0.0
@@ -47848,8 +48157,8 @@
"name": "_transform_yaml",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 115,
- "end_line": 138,
+ "start_line": 120,
+ "end_line": 147,
"tags": {
"PURPOSE": "Replaces database_uuid in a single YAML file.",
"PARAM": "db_mapping (Dict[str, str]) - UUID mapping dictionary.",
@@ -47866,77 +48175,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 115
+ "line_number": 120
}
],
"score": 0.0
@@ -47946,8 +48255,8 @@
"name": "_extract_chart_uuids_from_archive",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 140,
- "end_line": 165,
+ "start_line": 149,
+ "end_line": 174,
"tags": {
"PURPOSE": "Scans extracted chart YAML files and builds a source chart ID to UUID lookup map.",
"PRE": "temp_dir exists and points to extracted archive root with optional chart YAML resources.",
@@ -47965,77 +48274,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 149
}
],
"score": 0.0
@@ -48045,8 +48354,8 @@
"name": "_patch_dashboard_metadata",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 167,
- "end_line": 241,
+ "start_line": 176,
+ "end_line": 243,
"tags": {
"PURPOSE": "Rewrites dashboard json_metadata chart/dataset integer identifiers using target environment mappings.",
"PRE": "file_path points to dashboard YAML with json_metadata; target_env_id is non-empty; source_map contains source id->uuid.",
@@ -48063,77 +48372,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 167
+ "line_number": 176
}
],
"score": 0.0
@@ -50466,7 +50775,7 @@
"type": "Module",
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 166,
+ "end_line": 202,
"tags": {
"TIER": "CRITICAL",
"SEMANTICS": "auth, repository, database, user, role, permission",
@@ -50498,7 +50807,7 @@
"type": "Class",
"tier": "CRITICAL",
"start_line": 23,
- "end_line": 165,
+ "end_line": 201,
"tags": {
"PURPOSE": "Encapsulates database operations for authentication-related entities."
},
@@ -50514,7 +50823,7 @@
"type": "Function",
"tier": "CRITICAL",
"start_line": 27,
- "end_line": 36,
+ "end_line": 42,
"tags": {
"PURPOSE": "Bind repository instance to an existing SQLAlchemy session.",
"PRE": "db is an initialized sqlalchemy.orm.Session instance.",
@@ -50610,8 +50919,8 @@
"name": "get_user_by_username",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 38,
- "end_line": 47,
+ "start_line": 44,
+ "end_line": 63,
"tags": {
"PURPOSE": "Retrieve a user entity by unique username.",
"PRE": "username is a non-empty str and self.db is a valid open Session.",
@@ -50627,77 +50936,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 38
+ "line_number": 44
}
],
"score": 0.0
@@ -50707,8 +51016,8 @@
"name": "get_user_by_id",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 49,
- "end_line": 58,
+ "start_line": 65,
+ "end_line": 84,
"tags": {
"PURPOSE": "Retrieve a user entity by identifier.",
"PRE": "user_id is a non-empty str and self.db is a valid open Session.",
@@ -50724,77 +51033,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 49
+ "line_number": 65
}
],
"score": 0.0
@@ -50804,8 +51113,8 @@
"name": "get_role_by_name",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 60,
- "end_line": 69,
+ "start_line": 86,
+ "end_line": 95,
"tags": {
"PURPOSE": "Retrieve a role entity by role name.",
"PRE": "name is a non-empty str and self.db is a valid open Session.",
@@ -50821,77 +51130,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 60
+ "line_number": 86
}
],
"score": 0.0
@@ -50901,8 +51210,8 @@
"name": "update_last_login",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 71,
- "end_line": 83,
+ "start_line": 97,
+ "end_line": 114,
"tags": {
"PURPOSE": "Update last_login timestamp for the provided user entity.",
"PRE": "user is a managed User instance and self.db is a valid open Session.",
@@ -50918,77 +51227,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 71
+ "line_number": 97
}
],
"score": 0.0
@@ -50998,8 +51307,8 @@
"name": "get_role_by_id",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 85,
- "end_line": 94,
+ "start_line": 116,
+ "end_line": 125,
"tags": {
"PURPOSE": "Retrieve a role entity by identifier.",
"PRE": "role_id is a non-empty str and self.db is a valid open Session.",
@@ -51015,77 +51324,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 85
+ "line_number": 116
}
],
"score": 0.0
@@ -51095,8 +51404,8 @@
"name": "get_permission_by_id",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 96,
- "end_line": 105,
+ "start_line": 127,
+ "end_line": 136,
"tags": {
"PURPOSE": "Retrieve a permission entity by identifier.",
"PRE": "perm_id is a non-empty str and self.db is a valid open Session.",
@@ -51112,77 +51421,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 96
+ "line_number": 127
}
],
"score": 0.0
@@ -51192,8 +51501,8 @@
"name": "get_permission_by_resource_action",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 107,
- "end_line": 119,
+ "start_line": 138,
+ "end_line": 150,
"tags": {
"PURPOSE": "Retrieve a permission entity by resource and action pair.",
"PRE": "resource and action are non-empty str values; self.db is a valid open Session.",
@@ -51209,77 +51518,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 107
+ "line_number": 138
}
],
"score": 0.0
@@ -51289,8 +51598,8 @@
"name": "get_user_dashboard_preference",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 121,
- "end_line": 134,
+ "start_line": 152,
+ "end_line": 165,
"tags": {
"PURPOSE": "Retrieve dashboard preference entity owned by specified user.",
"PRE": "user_id is a non-empty str and self.db is a valid open Session.",
@@ -51306,77 +51615,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 121
+ "line_number": 152
}
],
"score": 0.0
@@ -51386,8 +51695,8 @@
"name": "save_user_dashboard_preference",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 136,
- "end_line": 151,
+ "start_line": 167,
+ "end_line": 187,
"tags": {
"PURPOSE": "Persist dashboard preference entity and return refreshed persistent row.",
"PRE": "preference is a valid UserDashboardPreference entity and self.db is a valid open Session.",
@@ -51403,77 +51712,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 136
+ "line_number": 167
}
],
"score": 0.0
@@ -51483,8 +51792,8 @@
"name": "list_permissions",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 153,
- "end_line": 162,
+ "start_line": 189,
+ "end_line": 198,
"tags": {
"PURPOSE": "List all permission entities available in storage.",
"PRE": "self.db is a valid open Session.",
@@ -51500,77 +51809,77 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 153
+ "line_number": 189
}
],
"score": 0.0
@@ -65477,7 +65786,7 @@
"type": "Module",
"tier": "CRITICAL",
"start_line": 1,
- "end_line": 292,
+ "end_line": 307,
"tags": {
"TIER": "CRITICAL",
"SEMANTICS": "api, migration, dashboards, sync, dry-run",
@@ -65525,7 +65834,7 @@
"type": "Function",
"tier": "CRITICAL",
"start_line": 36,
- "end_line": 57,
+ "end_line": 61,
"tags": {
"PURPOSE": "Fetch dashboard metadata from a requested environment for migration selection UI.",
"PRE": "env_id is provided and exists in configured environments.",
@@ -65596,8 +65905,8 @@
"name": "execute_migration",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 59,
- "end_line": 98,
+ "start_line": 63,
+ "end_line": 101,
"tags": {
"PURPOSE": "Validate migration selection and enqueue asynchronous migration task execution.",
"PRE": "DashboardSelection payload is valid and both source/target environments exist.",
@@ -65613,52 +65922,52 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 59
+ "line_number": 63
}
],
"score": 0.0
@@ -65668,8 +65977,8 @@
"name": "dry_run_migration",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 101,
- "end_line": 138,
+ "start_line": 104,
+ "end_line": 153,
"tags": {
"PURPOSE": "Build pre-flight migration diff and risk summary without mutating target systems.",
"PRE": "DashboardSelection is valid, source and target environments exist, differ, and selected_ids is non-empty.",
@@ -65685,52 +65994,52 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 101
+ "line_number": 104
}
],
"score": 0.0
@@ -65740,8 +66049,8 @@
"name": "get_migration_settings",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 140,
- "end_line": 155,
+ "start_line": 155,
+ "end_line": 170,
"tags": {
"PURPOSE": "Read and return configured migration synchronization cron expression.",
"PRE": "Configuration store is available and requester has READ permission.",
@@ -65757,52 +66066,52 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 140
+ "line_number": 155
}
],
"score": 0.0
@@ -65812,8 +66121,8 @@
"name": "update_migration_settings",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 157,
- "end_line": 180,
+ "start_line": 172,
+ "end_line": 195,
"tags": {
"PURPOSE": "Validate and persist migration synchronization cron expression update.",
"PRE": "Payload includes \"cron\" key and requester has WRITE permission.",
@@ -65829,52 +66138,52 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 157
+ "line_number": 172
}
],
"score": 0.0
@@ -65884,8 +66193,8 @@
"name": "get_resource_mappings",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 182,
- "end_line": 230,
+ "start_line": 197,
+ "end_line": 245,
"tags": {
"PURPOSE": "Fetch synchronized resource mappings with optional filters and pagination for migration mappings view.",
"PRE": "skip>=0, 1<=limit<=500, DB session is active, requester has READ permission.",
@@ -65901,52 +66210,52 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 182
+ "line_number": 197
}
],
"score": 0.0
@@ -65956,8 +66265,8 @@
"name": "trigger_sync_now",
"type": "Function",
"tier": "CRITICAL",
- "start_line": 232,
- "end_line": 290,
+ "start_line": 247,
+ "end_line": 305,
"tags": {
"PURPOSE": "Trigger immediate ID synchronization for every configured environment.",
"PRE": "At least one environment is configured and requester has EXECUTE permission.",
@@ -65973,52 +66282,52 @@
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
},
{
"message": "Missing Mandatory Tag: @TEST_CONTRACT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
},
{
"message": "Missing Mandatory Tag: @TEST_SCENARIO (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
},
{
"message": "Missing Mandatory Tag: @TEST_FIXTURE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
},
{
"message": "Missing Mandatory Tag: @TEST_EDGE (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
},
{
"message": "Missing Mandatory Tag: @TEST_INVARIANT (required for CRITICAL tier)",
"severity": "ERROR",
- "line_number": 232
+ "line_number": 247
}
],
"score": 0.0
@@ -66027,8 +66336,14 @@
],
"compliance": {
"valid": true,
- "issues": [],
- "score": 0.95
+ "issues": [
+ {
+ "message": "Fractal limit warning: Module length is 307 lines (must be < 300)",
+ "severity": "WARNING",
+ "line_number": 1
+ }
+ ],
+ "score": 0.8
}
},
{