semantic update

This commit is contained in:
2026-02-23 13:15:48 +03:00
parent 008b6d72c9
commit 26880d2e09
29 changed files with 5134 additions and 958 deletions

View File

@@ -2,12 +2,12 @@
> High-level module structure for AI Context. Generated automatically.
**Generated:** 2026-02-20T11:30:24.325166
**Generated:** 2026-02-23T11:15:39.876570
## Summary
- **Total Modules:** 63
- **Total Entities:** 1214
- **Total Modules:** 71
- **Total Entities:** 1340
## Module Hierarchy
@@ -79,9 +79,9 @@
### 📁 `routes/`
- 🏗️ **Layers:** API, UI (API), Unknown
- 📊 **Tiers:** CRITICAL: 1, STANDARD: 137, TRIVIAL: 3
- 📄 **Files:** 15
- 📦 **Entities:** 141
- 📊 **Tiers:** CRITICAL: 2, STANDARD: 140, TRIVIAL: 3
- 📄 **Files:** 16
- 📦 **Entities:** 145
**Key Entities:**
@@ -115,10 +115,10 @@
### 📁 `__tests__/`
- 🏗️ **Layers:** API
- 📊 **Tiers:** STANDARD: 16, TRIVIAL: 2
- 📄 **Files:** 2
- 📦 **Entities:** 18
- 🏗️ **Layers:** API, Domain (Tests)
- 📊 **Tiers:** CRITICAL: 3, STANDARD: 16, TRIVIAL: 21
- 📄 **Files:** 5
- 📦 **Entities:** 40
**Key Entities:**
@@ -126,13 +126,19 @@
- Unit tests for Dashboards API endpoints
- 📦 **backend.src.api.routes.__tests__.test_datasets** (Module)
- Unit tests for Datasets API endpoints
- 📦 **backend.tests.test_reports_api** (Module) `[CRITICAL]`
- Contract tests for GET /api/reports defaults, pagination, an...
- 📦 **backend.tests.test_reports_detail_api** (Module) `[CRITICAL]`
- Contract tests for GET /api/reports/{report_id} detail endpo...
- 📦 **backend.tests.test_reports_openapi_conformance** (Module) `[CRITICAL]`
- Validate implemented reports payload shape against OpenAPI-r...
### 📁 `core/`
- 🏗️ **Layers:** Core
- 📊 **Tiers:** STANDARD: 109
- 📊 **Tiers:** STANDARD: 112, TRIVIAL: 1
- 📄 **Files:** 9
- 📦 **Entities:** 109
- 📦 **Entities:** 113
**Key Entities:**
@@ -159,6 +165,7 @@
**Dependencies:**
- 🔗 DEPENDS_ON -> AppConfigRecord
- 🔗 DEPENDS_ON -> ConfigModels
- 🔗 DEPENDS_ON -> PyYAML
- 🔗 DEPENDS_ON -> sqlalchemy
@@ -166,9 +173,9 @@
### 📁 `auth/`
- 🏗️ **Layers:** Core
- 📊 **Tiers:** STANDARD: 27
- 📊 **Tiers:** STANDARD: 26
- 📄 **Files:** 6
- 📦 **Entities:** 27
- 📦 **Entities:** 26
**Key Entities:**
@@ -224,9 +231,9 @@
### 📁 `task_manager/`
- 🏗️ **Layers:** Core
- 📊 **Tiers:** CRITICAL: 7, STANDARD: 63, TRIVIAL: 4
- 📊 **Tiers:** CRITICAL: 7, STANDARD: 63, TRIVIAL: 8
- 📄 **Files:** 7
- 📦 **Entities:** 74
- 📦 **Entities:** 78
**Key Entities:**
@@ -298,14 +305,16 @@
### 📁 `models/`
- 🏗️ **Layers:** Domain, Model
- 📊 **Tiers:** CRITICAL: 1, STANDARD: 15, TRIVIAL: 17
- 📄 **Files:** 8
- 📦 **Entities:** 33
- 📊 **Tiers:** CRITICAL: 2, STANDARD: 24, TRIVIAL: 21
- 📄 **Files:** 10
- 📦 **Entities:** 47
**Key Entities:**
- **ADGroupMapping** (Class)
- Maps an Active Directory group to a local System Role.
- **AppConfigRecord** (Class)
- Stores the single source of truth for application configurat...
- **ConnectionConfig** (Class) `[TRIVIAL]`
- Stores credentials for external databases used for column ma...
- **DashboardMetadata** (Class) `[TRIVIAL]`
@@ -318,17 +327,16 @@
- Target Superset environments for dashboard deployment.
- **Environment** (Class)
- Represents a Superset instance environment.
- **ErrorContext** (Class)
- Error and recovery context for failed/partial reports.
- **FileCategory** (Class) `[TRIVIAL]`
- Enumeration of supported file categories in the storage syst...
- **GitRepository** (Class) `[TRIVIAL]`
- Tracking for a local Git repository linked to a dashboard.
- **GitServerConfig** (Class) `[TRIVIAL]`
- Configuration for a Git server connection.
**Dependencies:**
- 🔗 DEPENDS_ON -> Role
- 🔗 DEPENDS_ON -> TaskRecord
- 🔗 DEPENDS_ON -> backend.src.core.task_manager.models
- 🔗 DEPENDS_ON -> sqlalchemy
### 📁 `__tests__/`
@@ -483,9 +491,9 @@
### 📁 `scripts/`
- 🏗️ **Layers:** Scripts, Unknown
- 📊 **Tiers:** STANDARD: 7, TRIVIAL: 2
- 📄 **Files:** 4
- 📦 **Entities:** 9
- 📊 **Tiers:** STANDARD: 17, TRIVIAL: 2
- 📄 **Files:** 5
- 📦 **Entities:** 19
**Key Entities:**
@@ -493,6 +501,8 @@
- CLI tool for creating the initial admin user.
- 📦 **backend.src.scripts.init_auth_db** (Module)
- Initializes the auth database and creates the necessary tabl...
- 📦 **backend.src.scripts.migrate_sqlite_to_postgres** (Module)
- Migrates legacy config and task history from SQLite/file sto...
- 📦 **backend.src.scripts.seed_permissions** (Module)
- Populates the auth database with initial system permissions.
- 📦 **test_dataset_dashboard_relations** (Module) `[TRIVIAL]`
@@ -548,6 +558,44 @@
- 📦 **backend.src.services.__tests__.test_resource_service** (Module)
- Unit tests for ResourceService
### 📁 `reports/`
- 🏗️ **Layers:** Domain
- 📊 **Tiers:** CRITICAL: 5, STANDARD: 13
- 📄 **Files:** 3
- 📦 **Entities:** 18
**Key Entities:**
- **ReportsService** (Class) `[CRITICAL]`
- Service layer for list/detail report retrieval and normaliza...
- 📦 **backend.src.services.reports.normalizer** (Module) `[CRITICAL]`
- Convert task manager task objects into canonical unified Tas...
- 📦 **backend.src.services.reports.report_service** (Module) `[CRITICAL]`
- Aggregate, normalize, filter, and paginate task reports for ...
- 📦 **backend.src.services.reports.type_profiles** (Module) `[CRITICAL]`
- Deterministic mapping of plugin/task identifiers to canonica...
**Dependencies:**
- 🔗 DEPENDS_ON -> backend.src.core.task_manager.manager.TaskManager
- 🔗 DEPENDS_ON -> backend.src.core.task_manager.models.Task
- 🔗 DEPENDS_ON -> backend.src.models.report
- 🔗 DEPENDS_ON -> backend.src.models.report.TaskType
- 🔗 DEPENDS_ON -> backend.src.services.reports.normalizer
### 📁 `__tests__/`
- 🏗️ **Layers:** Domain (Tests)
- 📊 **Tiers:** CRITICAL: 1, TRIVIAL: 2
- 📄 **Files:** 1
- 📦 **Entities:** 3
**Key Entities:**
- 📦 **backend.tests.test_report_normalizer** (Module) `[CRITICAL]`
- Validate unknown task type fallback and partial payload norm...
### 📁 `tests/`
- 🏗️ **Layers:** Domain (Tests), Test, Unknown
@@ -675,9 +723,9 @@
### 📁 `tasks/`
- 🏗️ **Layers:** UI, Unknown
- 📊 **Tiers:** STANDARD: 4, TRIVIAL: 10
- 📄 **Files:** 3
- 📦 **Entities:** 14
- 📊 **Tiers:** STANDARD: 4, TRIVIAL: 12
- 📄 **Files:** 4
- 📦 **Entities:** 16
**Key Entities:**
@@ -691,6 +739,8 @@
- Auto-generated module for frontend/src/components/tasks/LogF...
- 📦 **TaskLogPanel** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/components/tasks/Task...
- 📦 **TaskResultPanel** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/components/tasks/Task...
### 📁 `tools/`
@@ -732,6 +782,22 @@
- 📦 **toasts_module** (Module)
- Manages toast notifications using a Svelte writable store.
### 📁 `api/`
- 🏗️ **Layers:** Infra
- 📊 **Tiers:** CRITICAL: 1, STANDARD: 4
- 📄 **Files:** 1
- 📦 **Entities:** 5
**Key Entities:**
- 📦 **frontend.src.lib.api.reports** (Module) `[CRITICAL]`
- Wrapper-based reports API client for list/detail retrieval w...
**Dependencies:**
- 🔗 DEPENDS_ON -> [DEF:api_module]
### 📁 `auth/`
- 🏗️ **Layers:** Feature
@@ -747,9 +813,9 @@
### 📁 `layout/`
- 🏗️ **Layers:** UI, Unknown
- 📊 **Tiers:** CRITICAL: 3, STANDARD: 4, TRIVIAL: 23
- 📊 **Tiers:** CRITICAL: 3, STANDARD: 4, TRIVIAL: 24
- 📄 **Files:** 4
- 📦 **Entities:** 30
- 📦 **Entities:** 31
**Key Entities:**
@@ -770,6 +836,80 @@
- 📦 **TopNavbar** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/layout...
### 📁 `__tests__/`
- 🏗️ **Layers:** Unknown
- 📊 **Tiers:** TRIVIAL: 3
- 📄 **Files:** 1
- 📦 **Entities:** 3
**Key Entities:**
- 📦 **test_breadcrumbs.svelte** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/layout...
### 📁 `reports/`
- 🏗️ **Layers:** UI, Unknown
- 📊 **Tiers:** CRITICAL: 4, STANDARD: 1, TRIVIAL: 9
- 📄 **Files:** 4
- 📦 **Entities:** 14
**Key Entities:**
- 🧩 **ReportCard** (Component) `[CRITICAL]`
- Render one report with explicit textual type label and profi...
- 🧩 **ReportDetailPanel** (Component) `[CRITICAL]`
- Display detailed report context with diagnostics and actiona...
- 🧩 **ReportsList** (Component) `[CRITICAL]`
- Render unified list of normalized reports with canonical min...
- 📦 **ReportCard** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/report...
- 📦 **ReportDetailPanel** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/report...
- 📦 **ReportsList** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/lib/components/report...
- 📦 **frontend.src.lib.components.reports.reportTypeProfiles** (Module) `[CRITICAL]`
- Deterministic mapping from report task_type to visual profil...
**Dependencies:**
- 🔗 DEPENDS_ON -> frontend/src/lib/i18n/index.ts
### 📁 `__tests__/`
- 🏗️ **Layers:** UI, UI (Tests)
- 📊 **Tiers:** CRITICAL: 5, STANDARD: 1, TRIVIAL: 4
- 📄 **Files:** 6
- 📦 **Entities:** 10
**Key Entities:**
- 📦 **frontend.src.lib.components.reports.__tests__.report_card.ux** (Module) `[CRITICAL]`
- Test UX states and transitions for ReportCard component
- 📦 **frontend.src.lib.components.reports.__tests__.report_detail.integration** (Module) `[CRITICAL]`
- Validate detail-panel behavior for failed reports and recove...
- 📦 **frontend.src.lib.components.reports.__tests__.report_detail.ux** (Module) `[CRITICAL]`
- Test UX states and recovery for ReportDetailPanel component
- 📦 **frontend.src.lib.components.reports.__tests__.report_type_profiles** (Module) `[CRITICAL]`
- Validate report type profile mapping and unknown fallback be...
- 📦 **frontend.src.lib.components.reports.__tests__.reports_filter_performance** (Module)
- Guard test for report filter responsiveness on moderate in-m...
- 📦 **frontend.src.lib.components.reports.__tests__.reports_page.integration** (Module) `[CRITICAL]`
- Integration-style checks for unified mixed-type reports rend...
### 📁 `fixtures/`
- 🏗️ **Layers:** UI
- 📊 **Tiers:** STANDARD: 1
- 📄 **Files:** 1
- 📦 **Entities:** 1
**Key Entities:**
- 📦 **reports.fixtures** (Module)
- Shared frontend fixtures for unified reports states.
### 📁 `i18n/`
- 🏗️ **Layers:** Infra
@@ -907,6 +1047,7 @@
- 📦 **RootLayoutConfig** (Module) `[TRIVIAL]`
- Root layout configuration (SPA mode)
- 📦 **layout** (Module)
- Bind global layout shell and conditional login/full-app rend...
### 📁 `roles/`
@@ -1031,6 +1172,20 @@
- 🧩 **MappingManagement** (Component)
- Page for managing database mappings between environments.
### 📁 `reports/`
- 🏗️ **Layers:** UI, Unknown
- 📊 **Tiers:** CRITICAL: 1, TRIVIAL: 7
- 📄 **Files:** 1
- 📦 **Entities:** 8
**Key Entities:**
- 🧩 **UnifiedReportsPage** (Component) `[CRITICAL]`
- Unified reports page with filtering and resilient UX states ...
- 📦 **+page** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/routes/reports/+page....
### 📁 `settings/`
- 🏗️ **Layers:** UI, Unknown
@@ -1082,15 +1237,17 @@
### 📁 `tasks/`
- 🏗️ **Layers:** Page
- 📊 **Tiers:** STANDARD: 5
- 🏗️ **Layers:** Page, Unknown
- 📊 **Tiers:** STANDARD: 4, TRIVIAL: 5
- 📄 **Files:** 1
- 📦 **Entities:** 5
- 📦 **Entities:** 9
**Key Entities:**
- 🧩 **TaskManagementPage** (Component)
- Page for managing and monitoring tasks.
- 📦 **+page** (Module) `[TRIVIAL]`
- Auto-generated module for frontend/src/routes/tasks/+page.sv...
### 📁 `debug/`
@@ -1210,6 +1367,10 @@ graph TD
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
routes-->|DEPENDS_ON|backend
__tests__-->|TESTS|backend
__tests__-->|TESTS|backend
__tests__-->|TESTS|backend
__tests__-->|TESTS|backend
core-->|USES|backend
@@ -1224,11 +1385,14 @@ graph TD
utils-->|DEPENDS_ON|backend
utils-->|DEPENDS_ON|backend
models-->|INHERITS_FROM|backend
models-->|DEPENDS_ON|backend
models-->|USED_BY|backend
models-->|INHERITS_FROM|backend
llm_analysis-->|IMPLEMENTS|backend
llm_analysis-->|IMPLEMENTS|backend
storage-->|DEPENDS_ON|backend
scripts-->|READS_FROM|backend
scripts-->|READS_FROM|backend
scripts-->|USES|backend
scripts-->|USES|backend
scripts-->|CALLS|backend
@@ -1246,5 +1410,20 @@ graph TD
services-->|DEPENDS_ON|backend
services-->|DEPENDS_ON|backend
__tests__-->|TESTS|backend
reports-->|DEPENDS_ON|backend
reports-->|DEPENDS_ON|backend
reports-->|DEPENDS_ON|backend
reports-->|DEPENDS_ON|backend
reports-->|DEPENDS_ON|backend
reports-->|DEPENDS_ON|backend
reports-->|DEPENDS_ON|backend
__tests__-->|TESTS|backend
tests-->|TESTS|backend
reports-->|DEPENDS_ON|lib
__tests__-->|TESTS|routes
__tests__-->|TESTS|routes
__tests__-->|TESTS|lib
__tests__-->|TESTS|lib
__tests__-->|TESTS|lib
__tests__-->|TESTS|routes
```

View File

@@ -234,6 +234,7 @@
- 📦 **frontend.src.lib.stores.__tests__.sidebar** (`Module`)
- 📝 Unit tests for sidebar store
- 🏗️ Layer: Domain (Tests)
- 🔒 Invariant: Sidebar store transitions must be deterministic across desktop/mobile toggles.
- ƒ **test_sidebar_initial_state** (`Function`)
- ƒ **test_toggleSidebar** (`Function`)
- ƒ **test_setActiveItem** (`Function`)
@@ -248,12 +249,26 @@
- 📦 **frontend.src.lib.stores.__tests__.test_taskDrawer** (`Module`) `[CRITICAL]`
- 📝 Unit tests for task drawer store
- 🏗️ Layer: UI
- 🔒 Invariant: Store state transitions remain deterministic for open/close and task-status mapping.
- 📦 **navigation** (`Mock`)
- 📝 Mock for $app/navigation in tests
- 📦 **stores** (`Mock`)
- 📝 Mock for $app/stores in tests
- 📦 **environment** (`Mock`)
- 📝 Mock for $app/environment in tests
- 📦 **frontend.src.lib.api.reports** (`Module`) `[CRITICAL]`
- 📝 Wrapper-based reports API client for list/detail retrieval without direct native fetch usage.
- 🏗️ Layer: Infra
- 🔒 Invariant: Uses existing api wrapper methods and returns structured errors for UI-state mapping.
- 🔗 DEPENDS_ON -> `[DEF:api_module]`
- ƒ **buildReportQueryString** (`Function`)
- 📝 Build query string for reports list endpoint from filter options.
- ƒ **normalizeApiError** (`Function`)
- 📝 Convert unknown API exceptions into deterministic UI-consumable error objects.
- ƒ **getReports** (`Function`)
- 📝 Fetch unified report list using existing request wrapper.
- ƒ **getReportDetail** (`Function`)
- 📝 Fetch one report detail by report_id.
- 🧩 **Select** (`Component`) `[TRIVIAL]`
- 📝 Standardized dropdown selection component.
- 🏗️ Layer: Atom
@@ -304,6 +319,89 @@
- 📝 Derived store providing the translation dictionary.
- ƒ **_** (`Function`)
- 📝 Get translation by key path.
- 🧩 **ReportCard** (`Component`) `[CRITICAL]`
- 📝 Render one report with explicit textual type label and profile-driven visual variant.
- 🏗️ Layer: UI
- 🔒 Invariant: Unknown task type always uses fallback profile.
- ⚡ Events: select
- ⬅️ READS_FROM `lib`
- ➡️ WRITES_TO `props`
- ➡️ WRITES_TO `derived`
- 📦 **ReportCard** (`Module`) `[TRIVIAL]`
- 📝 Auto-generated module for frontend/src/lib/components/reports/ReportCard.svelte
- 🏗️ Layer: Unknown
- ƒ **getStatusClass** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **formatDate** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **onSelect** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 🧩 **ReportsList** (`Component`) `[CRITICAL]`
- 📝 Render unified list of normalized reports with canonical minimum fields.
- 🏗️ Layer: UI
- 🔒 Invariant: Every rendered row shows task_type label, status, summary, and updated_at.
- ⚡ Events: select
- ➡️ WRITES_TO `props`
- 📦 **ReportsList** (`Module`) `[TRIVIAL]`
- 📝 Auto-generated module for frontend/src/lib/components/reports/ReportsList.svelte
- 🏗️ Layer: Unknown
- ƒ **handleSelect** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **frontend.src.lib.components.reports.reportTypeProfiles** (`Module`) `[CRITICAL]`
- 📝 Deterministic mapping from report task_type to visual profile with one fallback.
- 🏗️ Layer: UI
- 🔒 Invariant: Unknown type always resolves to fallback profile.
- 🔗 DEPENDS_ON -> `frontend/src/lib/i18n/index.ts`
- ƒ **getReportTypeProfile** (`Function`)
- 📝 Resolve visual profile by task type with guaranteed fallback.
- 🧩 **ReportDetailPanel** (`Component`) `[CRITICAL]`
- 📝 Display detailed report context with diagnostics and actionable recovery guidance.
- 🏗️ Layer: UI
- 🔒 Invariant: Failed/partial reports surface actionable hints when available.
- ⬅️ READS_FROM `lib`
- ➡️ WRITES_TO `props`
- ⬅️ READS_FROM `t`
- 📦 **ReportDetailPanel** (`Module`) `[TRIVIAL]`
- 📝 Auto-generated module for frontend/src/lib/components/reports/ReportDetailPanel.svelte
- 🏗️ Layer: Unknown
- ƒ **notProvided** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **formatDate** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **frontend.src.lib.components.reports.__tests__.reports_filter_performance** (`Module`)
- 📝 Guard test for report filter responsiveness on moderate in-memory dataset.
- 🏗️ Layer: UI (Tests)
- ƒ **applyFilters** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **makeDataset** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **frontend.src.lib.components.reports.__tests__.reports_page.integration** (`Module`) `[CRITICAL]`
- 📝 Integration-style checks for unified mixed-type reports rendering expectations.
- 🏗️ Layer: UI (Tests)
- 🔒 Invariant: Mixed fixture includes all supported report types in one list.
- ƒ **collectVisibleTypeLabels** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **frontend.src.lib.components.reports.__tests__.report_type_profiles** (`Module`) `[CRITICAL]`
- 📝 Validate report type profile mapping and unknown fallback behavior.
- 🏗️ Layer: UI (Tests)
- 🔒 Invariant: Unknown task_type always resolves to the fallback profile.
- 📦 **frontend.src.lib.components.reports.__tests__.report_card.ux** (`Module`) `[CRITICAL]`
- 📝 Test UX states and transitions for ReportCard component
- 🏗️ Layer: UI
- 🔒 Invariant: Each test asserts at least one observable UX contract outcome.
- 📦 **frontend.src.lib.components.reports.__tests__.report_detail.ux** (`Module`) `[CRITICAL]`
- 📝 Test UX states and recovery for ReportDetailPanel component
- 🏗️ Layer: UI
- 🔒 Invariant: Detail UX tests keep placeholder-safe rendering and recovery visibility verifiable.
- 📦 **frontend.src.lib.components.reports.__tests__.report_detail.integration** (`Module`) `[CRITICAL]`
- 📝 Validate detail-panel behavior for failed reports and recovery guidance visibility.
- 🏗️ Layer: UI (Tests)
- 🔒 Invariant: Failed report detail exposes actionable next actions when available.
- ƒ **buildFailedDetailFixture** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **reports.fixtures** (`Module`)
- 📝 Shared frontend fixtures for unified reports states.
- 🏗️ Layer: UI
- 🧩 **Sidebar** (`Component`) `[CRITICAL]`
- 📝 Persistent left sidebar with resource categories navigation
- 🏗️ Layer: UI
@@ -383,12 +481,21 @@
- 🏗️ Layer: Unknown
- ƒ **handleClose** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **goToTasksPage** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **handleOverlayClick** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **connectWebSocket** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **disconnectWebSocket** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **test_breadcrumbs.svelte** (`Module`) `[TRIVIAL]`
- 📝 Auto-generated module for frontend/src/lib/components/layout/__tests__/test_breadcrumbs.svelte.js
- 🏗️ Layer: Unknown
- ƒ **getBreadcrumbs** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **formatBreadcrumbLabel** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **ErrorPage** (`Page`)
- 📝 Global error page displaying HTTP status and messages
- 🏗️ Layer: UI
@@ -402,20 +509,32 @@
- ƒ **load** (`Function`)
- 📝 Loads initial plugin data for the dashboard.
- 📦 **layout** (`Module`)
- 📝 Bind global layout shell and conditional login/full-app rendering.
- 🏗️ Layer: UI
- 🔒 Invariant: Login route bypasses shell; all other routes are wrapped by ProtectedRoute.
- 🧩 **TaskManagementPage** (`Component`)
- 📝 Page for managing and monitoring tasks.
- 🏗️ Layer: Page
- ⬅️ READS_FROM `lib`
- ➡️ WRITES_TO `t`
- ⬅️ READS_FROM `t`
- ƒ **loadInitialData** (`Function`)
- ƒ **loadTasks** (`Function`)
- 📝 Loads tasks and environments on page initialization.
- ƒ **refreshTasks** (`Function`)
- 📝 Periodically refreshes the task list.
- ƒ **handleSelectTask** (`Function`)
- 📝 Updates the selected task ID when a task is clicked.
- ƒ **handleRunBackup** (`Function`)
- 📝 Triggers a manual backup task for the selected environment.
- 📦 **+page** (`Module`) `[TRIVIAL]`
- 📝 Auto-generated module for frontend/src/routes/tasks/+page.svelte
- 🏗️ Layer: Unknown
- ƒ **handleTaskTypeChange** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **handlePageSizeChange** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **goToPrevPage** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **goToNextPage** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **DatasetHub** (`Page`) `[CRITICAL]`
- 📝 Dataset Hub - Dedicated hub for datasets with mapping progress
- 🏗️ Layer: UI
@@ -472,6 +591,28 @@
- 📝 Auto-detected function (orphan)
- ƒ **getMappingProgress** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 🧩 **UnifiedReportsPage** (`Component`) `[CRITICAL]`
- 📝 Unified reports page with filtering and resilient UX states for mixed task types.
- 🏗️ Layer: UI
- 🔒 Invariant: List state remains deterministic for active filter set.
- ⬅️ READS_FROM `lib`
- ⬅️ READS_FROM `t`
- ➡️ WRITES_TO `t`
- 📦 **+page** (`Module`) `[TRIVIAL]`
- 📝 Auto-generated module for frontend/src/routes/reports/+page.svelte
- 🏗️ Layer: Unknown
- ƒ **buildQuery** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **loadReports** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **hasActiveFilters** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **clearFilters** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **onFilterChange** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **onSelectReport** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 🧩 **LoginPage** (`Component`)
- 📝 Provides the user interface for local and ADFS authentication.
- 🏗️ Layer: UI
@@ -961,6 +1102,11 @@
- ➡️ WRITES_TO `derived`
- ƒ **formatTime** (`Function`)
- 📝 Format ISO timestamp to HH:MM:SS */
- 📦 **TaskResultPanel** (`Module`) `[TRIVIAL]`
- 📝 Auto-generated module for frontend/src/components/tasks/TaskResultPanel.svelte
- 🏗️ Layer: Unknown
- ƒ **statusColor** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 🧩 **FileList** (`Component`)
- 📝 Displays a table of files with metadata and actions.
- 🏗️ Layer: UI
@@ -1205,6 +1351,27 @@
- 🏗️ Layer: Unknown
- ƒ **test_dashboard_dataset_relations** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **backend.src.scripts.migrate_sqlite_to_postgres** (`Module`)
- 📝 Migrates legacy config and task history from SQLite/file storage to PostgreSQL.
- 🏗️ Layer: Scripts
- 🔒 Invariant: Script is idempotent for task_records and app_configurations.
- 📦 **Constants** (`Section`)
- ƒ **_json_load_if_needed** (`Function`)
- 📝 Parses JSON-like values from SQLite TEXT/JSON columns to Python objects.
- ƒ **_find_legacy_config_path** (`Function`)
- 📝 Resolves the existing legacy config.json path from candidates.
- ƒ **_connect_sqlite** (`Function`)
- 📝 Opens a SQLite connection with row factory.
- ƒ **_ensure_target_schema** (`Function`)
- 📝 Ensures required PostgreSQL tables exist before migration.
- ƒ **_migrate_config** (`Function`)
- 📝 Migrates legacy config.json into app_configurations(global).
- ƒ **_migrate_tasks_and_logs** (`Function`)
- 📝 Migrates task_records and task_logs from SQLite into PostgreSQL.
- ƒ **run_migration** (`Function`)
- 📝 Orchestrates migration from SQLite/file to PostgreSQL.
- ƒ **main** (`Function`)
- 📝 CLI entrypoint.
- 📦 **backend.src.scripts.seed_permissions** (`Module`)
- 📝 Populates the auth database with initial system permissions.
- 🏗️ Layer: Scripts
@@ -1313,21 +1480,28 @@
- ƒ **_validate_import_file** (`Function`)
- 📝 Validates that the file to be imported is a valid ZIP with metadata.yaml.
- 📦 **ConfigManagerModule** (`Module`)
- 📝 Manages application configuration, including loading/saving to JSON and CRUD for environments.
- 📝 Manages application configuration persisted in database with one-time migration from JSON.
- 🏗️ Layer: Core
- 🔒 Invariant: Configuration must always be valid according to AppConfig model.
- 🔗 DEPENDS_ON -> `ConfigModels`
- 🔗 DEPENDS_ON -> `AppConfigRecord`
- 🔗 CALLS -> `logger`
- **ConfigManager** (`Class`)
- 📝 A class to handle application configuration persistence and management.
- ƒ **__init__** (`Function`)
- 📝 Initializes the ConfigManager.
- ƒ **_default_config** (`Function`)
- 📝 Returns default application configuration.
- ƒ **_load_from_legacy_file** (`Function`)
- 📝 Loads legacy configuration from config.json for migration fallback.
- ƒ **_get_record** (`Function`)
- 📝 Loads config record from DB.
- ƒ **_load_config** (`Function`)
- 📝 Loads the configuration from disk or creates a default one.
- ƒ **_save_config_to_disk** (`Function`)
- 📝 Saves the provided configuration object to disk.
- 📝 Loads the configuration from DB or performs one-time migration from JSON file.
- ƒ **_save_config_to_db** (`Function`)
- 📝 Saves the provided configuration object to DB.
- ƒ **save** (`Function`)
- 📝 Saves the current configuration state to disk.
- 📝 Saves the current configuration state to DB.
- ƒ **get_config** (`Function`)
- 📝 Returns the current configuration.
- ƒ **update_global_settings** (`Function`)
@@ -1377,14 +1551,14 @@
- 📦 **AppConfig** (`DataClass`)
- 📝 The root configuration model containing all application settings.
- 📦 **backend.src.core.database** (`Module`)
- 📝 Configures the SQLite database connection and session management.
- 📝 Configures database connection and session management (PostgreSQL-first).
- 🏗️ Layer: Core
- 🔒 Invariant: A single engine instance is used for the entire application.
- 🔗 DEPENDS_ON -> `sqlalchemy`
- 📦 **BASE_DIR** (`Variable`)
- 📝 Base directory for the backend (where .db files should reside).
- 📝 Base directory for the backend.
- 📦 **DATABASE_URL** (`Constant`)
- 📝 URL for the main mappings database.
- 📝 URL for the main application database.
- 📦 **TASKS_DATABASE_URL** (`Constant`)
- 📝 URL for the tasks execution database.
- 📦 **AUTH_DATABASE_URL** (`Constant`)
@@ -1409,6 +1583,8 @@
- 📝 Dependency for getting a tasks database session.
- ƒ **get_auth_db** (`Function`)
- 📝 Dependency for getting an authentication database session.
- ƒ **_build_engine** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **LoggerModule** (`Module`)
- 📝 Configures the application's logging system, including a custom handler for buffering logs and streaming them over WebSockets.
- 🏗️ Layer: Core
@@ -1531,8 +1707,6 @@
- 🏗️ Layer: Core
- 🔒 Invariant: Uses bcrypt for hashing with standard work factor.
- 🔗 DEPENDS_ON -> `passlib`
- 📦 **pwd_context** (`Variable`)
- 📝 Passlib CryptContext for password management.
- ƒ **verify_password** (`Function`)
- 📝 Verifies a plain password against a hashed password.
- ƒ **get_password_hash** (`Function`)
@@ -1778,6 +1952,12 @@
- 📝 Delete all logs for a specific task.
- ƒ **delete_logs_for_tasks** (`Function`)
- 📝 Delete all logs for multiple tasks.
- ƒ **_json_load_if_needed** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_parse_datetime** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_resolve_environment_id** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **json_serializable** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **TaskManagerModule** (`Module`)
@@ -1831,6 +2011,8 @@
- 📝 Resume a task that is awaiting input with provided passwords.
- ƒ **clear_tasks** (`Function`)
- 📝 Clears tasks based on status filter (also deletes associated logs).
- ƒ **sort_key** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **TaskManagerModels** (`Module`)
- 📝 Defines the data models and enumerations used by the Task Manager.
- 🏗️ Layer: Core
@@ -2169,6 +2351,18 @@
- ƒ **download_file** (`Function`)
- 📝 Retrieve a file for download.
- 🔗 CALLS -> `StoragePlugin.get_file_path`
- 📦 **ReportsRouter** (`Module`) `[CRITICAL]`
- 📝 FastAPI router for unified task report list and detail retrieval endpoints.
- 🏗️ Layer: UI (API)
- 🔒 Invariant: Endpoints are read-only and do not trigger long-running tasks.
- 🔗 DEPENDS_ON -> `backend.src.services.reports.report_service.ReportsService`
- 🔗 DEPENDS_ON -> `backend.src.dependencies`
- ƒ **_parse_csv_enum_list** (`Function`)
- 📝 Parse comma-separated query value into enum list.
- ƒ **list_reports** (`Function`)
- 📝 Return paginated unified reports list.
- ƒ **get_report_detail** (`Function`)
- 📝 Return one normalized report detail with diagnostics and next actions.
- 📦 **__init__** (`Module`) `[TRIVIAL]`
- 📝 Auto-generated module for backend/src/api/routes/__init__.py
- 🏗️ Layer: Unknown
@@ -2240,15 +2434,71 @@
- 📝 Auto-detected function (orphan)
- ƒ **mock_get_dashboards** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **backend.tests.test_reports_openapi_conformance** (`Module`) `[CRITICAL]`
- 📝 Validate implemented reports payload shape against OpenAPI-required top-level contract fields.
- 🏗️ Layer: Domain (Tests)
- 🔒 Invariant: List and detail payloads include required contract keys.
- ƒ **__init__** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_admin_user** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_task** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **test_reports_list_openapi_required_keys** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **test_reports_detail_openapi_required_keys** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **backend.tests.test_reports_api** (`Module`) `[CRITICAL]`
- 📝 Contract tests for GET /api/reports defaults, pagination, and filtering behavior.
- 🏗️ Layer: Domain (Tests)
- 🔒 Invariant: API response contract contains {items,total,page,page_size,has_next,applied_filters}.
- ƒ **__init__** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_admin_user** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_make_task** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **test_get_reports_default_pagination_contract** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **test_get_reports_filter_and_pagination** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **test_get_reports_invalid_filter_returns_400** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **backend.src.api.routes.__tests__.test_datasets** (`Module`)
- 📝 Unit tests for Datasets API endpoints
- 🏗️ Layer: API
- 🔒 Invariant: Endpoint contracts remain stable for success and validation failure paths.
- ƒ **test_get_datasets_success** (`Function`)
- ƒ **test_get_datasets_env_not_found** (`Function`)
- ƒ **test_get_datasets_invalid_pagination** (`Function`)
- ƒ **test_map_columns_success** (`Function`)
- ƒ **test_map_columns_invalid_source_type** (`Function`)
- ƒ **test_generate_docs_success** (`Function`)
- 📦 **backend.tests.test_reports_detail_api** (`Module`) `[CRITICAL]`
- 📝 Contract tests for GET /api/reports/{report_id} detail endpoint behavior.
- 🏗️ Layer: Domain (Tests)
- ƒ **__init__** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **get_all_tasks** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_admin_user** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_make_task** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **test_get_report_detail_success** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **test_get_report_detail_not_found** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **backend.src.models.config** (`Module`)
- 📝 Defines database schema for persisted application configuration.
- 🏗️ Layer: Domain
- 🔗 DEPENDS_ON -> `sqlalchemy`
- **AppConfigRecord** (`Class`)
- 📝 Stores the single source of truth for application configuration.
- 📦 **backend.src.models.llm** (`Module`)
- 📝 SQLAlchemy models for LLM provider configuration and validation results.
- 🏗️ Layer: Domain
@@ -2298,6 +2548,33 @@
- 📝 Represents a mapping between source and target databases.
- **MigrationJob** (`Class`) `[TRIVIAL]`
- 📝 Represents a single migration execution job.
- 📦 **backend.src.models.report** (`Module`) `[CRITICAL]`
- 📝 Canonical report schemas for unified task reporting across heterogeneous task types.
- 🏗️ Layer: Domain
- 🔒 Invariant: Canonical report fields are always present for every report item.
- 🔗 DEPENDS_ON -> `backend.src.core.task_manager.models`
- **TaskType** (`Class`)
- 📝 Supported normalized task report types.
- **ReportStatus** (`Class`)
- 📝 Supported normalized report status values.
- **ErrorContext** (`Class`)
- 📝 Error and recovery context for failed/partial reports.
- **TaskReport** (`Class`)
- 📝 Canonical normalized report envelope for one task execution.
- **ReportQuery** (`Class`)
- 📝 Query object for server-side report filtering, sorting, and pagination.
- **ReportCollection** (`Class`)
- 📝 Paginated collection of normalized task reports.
- **ReportDetailView** (`Class`)
- 📝 Detailed report representation including diagnostics and recovery actions.
- ƒ **_non_empty_str** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_validate_sort_by** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_validate_sort_order** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **_validate_time_range** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **backend.src.models.storage** (`Module`) `[TRIVIAL]`
- 📝 Data models for the storage system.
- 🏗️ Layer: Domain
@@ -2477,12 +2754,75 @@
- 📦 **backend.src.services.__tests__.test_resource_service** (`Module`)
- 📝 Unit tests for ResourceService
- 🏗️ Layer: Service
- 🔒 Invariant: Resource summaries preserve task linkage and status projection behavior.
- ƒ **test_get_dashboards_with_status** (`Function`)
- ƒ **test_get_datasets_with_status** (`Function`)
- ƒ **test_get_activity_summary** (`Function`)
- ƒ **test_get_git_status_for_dashboard_no_repo** (`Function`)
- ƒ **test_get_last_task_for_resource** (`Function`)
- ƒ **test_extract_resource_name_from_task** (`Function`)
- 📦 **backend.src.services.reports.normalizer** (`Module`) `[CRITICAL]`
- 📝 Convert task manager task objects into canonical unified TaskReport entities with deterministic fallback behavior.
- 🏗️ Layer: Domain
- 🔒 Invariant: Unknown task types and partial payloads remain visible via fallback mapping.
- 🔗 DEPENDS_ON -> `backend.src.core.task_manager.models.Task`
- 🔗 DEPENDS_ON -> `backend.src.models.report`
- 🔗 DEPENDS_ON -> `backend.src.services.reports.type_profiles`
- ƒ **status_to_report_status** (`Function`)
- 📝 Normalize internal task status to canonical report status.
- ƒ **build_summary** (`Function`)
- 📝 Build deterministic user-facing summary from task payload and status.
- ƒ **extract_error_context** (`Function`)
- 📝 Extract normalized error context and next actions for failed/partial reports.
- ƒ **normalize_task_report** (`Function`)
- 📝 Convert one Task to canonical TaskReport envelope.
- 📦 **backend.src.services.reports.type_profiles** (`Module`) `[CRITICAL]`
- 📝 Deterministic mapping of plugin/task identifiers to canonical report task types and fallback profile metadata.
- 🏗️ Layer: Domain
- 🔒 Invariant: Unknown input always resolves to TaskType.UNKNOWN with a single fallback profile.
- 🔗 DEPENDS_ON -> `backend.src.models.report.TaskType`
- 📦 **PLUGIN_TO_TASK_TYPE** (`Data`)
- 📝 Maps plugin identifiers to normalized report task types.
- 📦 **TASK_TYPE_PROFILES** (`Data`)
- 📝 Profile metadata registry for each normalized task type.
- ƒ **resolve_task_type** (`Function`)
- 📝 Resolve canonical task type from plugin/task identifier with guaranteed fallback.
- ƒ **get_type_profile** (`Function`)
- 📝 Return deterministic profile metadata for a task type.
- 📦 **backend.src.services.reports.report_service** (`Module`) `[CRITICAL]`
- 📝 Aggregate, normalize, filter, and paginate task reports for unified list/detail API use cases.
- 🏗️ Layer: Domain
- 🔒 Invariant: List responses are deterministic and include applied filter echo metadata.
- 🔗 DEPENDS_ON -> `backend.src.core.task_manager.manager.TaskManager`
- 🔗 DEPENDS_ON -> `backend.src.models.report`
- 🔗 DEPENDS_ON -> `backend.src.services.reports.normalizer`
- **ReportsService** (`Class`) `[CRITICAL]`
- 📝 Service layer for list/detail report retrieval and normalization.
- 🔒 Invariant: Service methods are read-only over task history source.
- ƒ **__init__** (`Function`) `[CRITICAL]`
- 📝 Initialize service with TaskManager dependency.
- 🔒 Invariant: Constructor performs no task mutations.
- ƒ **_load_normalized_reports** (`Function`)
- 📝 Build normalized reports from all available tasks.
- 🔒 Invariant: Every returned item is a TaskReport.
- ƒ **_matches_query** (`Function`)
- 📝 Apply query filtering to a report.
- 🔒 Invariant: Filter evaluation is side-effect free.
- ƒ **_sort_reports** (`Function`)
- 📝 Sort reports deterministically according to query settings.
- 🔒 Invariant: Sorting criteria are deterministic for equal input.
- ƒ **list_reports** (`Function`)
- 📝 Return filtered, sorted, paginated report collection.
- ƒ **get_report_detail** (`Function`)
- 📝 Return one normalized report with timeline/diagnostics/next actions.
- 📦 **backend.tests.test_report_normalizer** (`Module`) `[CRITICAL]`
- 📝 Validate unknown task type fallback and partial payload normalization behavior.
- 🏗️ Layer: Domain (Tests)
- 🔒 Invariant: Unknown plugin types are mapped to canonical unknown task type.
- ƒ **test_unknown_type_maps_to_unknown_profile** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- ƒ **test_partial_payload_keeps_report_visible_with_placeholders** (`Function`) `[TRIVIAL]`
- 📝 Auto-detected function (orphan)
- 📦 **BackupPlugin** (`Module`)
- 📝 A plugin that provides functionality to back up Superset dashboards.
- 🏗️ Layer: App

View File

@@ -1,6 +1,5 @@
<!-- [DEF:FrontendComponentShot:Component] -->
<script>
/**
<!-- /**
* @TIER: CRITICAL
* @SEMANTICS: Task, Button, Action, UX
* @PURPOSE: Action button to spawn a new task with full UX feedback cycle.
@@ -19,6 +18,8 @@
* @UX_TEST: Idle -> {click: spawnTask, expected: isLoading=true}
* @UX_TEST: Success -> {api_resolve: 200, expected: toast.success called}
*/
-->
<script>
import { postApi } from "$lib/api.js";
import { t } from "$lib/i18n";
import { toast } from "$lib/stores/toast";
@@ -29,6 +30,11 @@
let isLoading = false;
// [DEF:spawnTask:Function]
/**
* @purpose Execute task creation request and emit user feedback.
* @pre plugin_id is resolved and request params are serializable.
* @post isLoading is reset and user receives success/error feedback.
*/
async function spawnTask() {
isLoading = true;
console.log("[FrontendComponentShot][Loading] Spawning task...");