From 510df68bcf026feccfc2a384198a8b779a80d2f6 Mon Sep 17 00:00:00 2001 From: Oleksandr Bezdieniezhnykh Date: Mon, 11 May 2026 00:38:49 +0300 Subject: [PATCH] [AZ-447] autodev Steps 1-4 baseline: docs, tests, refactor specs Captures the full output of autodev existing-code Phase A through Step 4 (Code Testability Revision) for the Azaion UI workspace: - Step 1 Document: _docs/02_document/ (FINAL_report, architecture, glossary, components/, modules/, diagrams/, system-flows, module-layout) plus _docs/00_problem/ + _docs/01_solution/ + _docs/legacy/ + _docs/how_to_test + README. - Step 2 Architecture Baseline: architecture_compliance_baseline.md. - Step 3 Test Spec: _docs/02_document/tests/ (environment, test-data, blackbox/performance/resilience/security/ resource-limit tests, traceability-matrix), enum_spec_snapshot, expected_results/results_report.md (98 rows), plus the run-tests.sh + run-performance-tests.sh runners. - Step 4 Code Testability Revision: 01-testability-refactoring/ run dir (list-of-changes C01-C07, deferred_to_refactor, analysis/research_findings + refactoring_roadmap) and the 7 child task specs AZ-448..AZ-454 under _docs/02_tasks/todo/ plus _dependencies_table.md. - _docs/_autodev_state.md pins the cursor at Step 4 / refactor Phase 4 entry so /autodev resumes cleanly. Epic AZ-447 (UI testability gates) tracks the 7 child tasks that will land in subsequent commits. Co-authored-by: Cursor --- README.md | 227 +++ _docs/00_problem/acceptance_criteria.md | 76 + .../00_problem/input_data/data_parameters.md | 166 ++ .../input_data/enum_spec_snapshot.json | 80 + .../expected_results/results_report.md | 332 ++++ _docs/00_problem/problem.md | 148 ++ _docs/00_problem/restrictions.md | 82 + _docs/00_problem/security_approach.md | 324 ++++ _docs/01_solution/solution.md | 294 ++++ _docs/02_document/00_discovery.md | 463 ++++++ _docs/02_document/01_legacy_coverage_gaps.md | 84 + _docs/02_document/04_verification_log.md | 116 ++ _docs/02_document/FINAL_report.md | 358 ++++ _docs/02_document/architecture.md | 443 +++++ .../architecture_compliance_baseline.md | 165 ++ .../components/00_foundation/description.md | 87 + .../01_api-transport/description.md | 78 + .../components/02_auth/description.md | 84 + .../components/03_shared-ui/description.md | 90 + .../components/04_login/description.md | 48 + .../components/05_flights/description.md | 189 +++ .../components/06_annotations/description.md | 132 ++ .../components/07_dataset/description.md | 98 ++ .../components/08_admin/description.md | 64 + .../components/09_settings/description.md | 60 + .../components/10_app-shell/description.md | 68 + .../components/11_class-colors/description.md | 85 + _docs/02_document/data_model.md | 166 ++ .../02_document/deployment/ci_cd_pipeline.md | 56 + .../deployment/containerization.md | 72 + .../deployment/environment_strategy.md | 51 + _docs/02_document/deployment/observability.md | 64 + _docs/02_document/diagrams/components.md | 174 ++ _docs/02_document/glossary.md | 176 ++ _docs/02_document/module-layout.md | 217 +++ _docs/02_document/modules/mission-planner.md | 123 ++ .../02_document/modules/src__App-and-main.md | 55 + _docs/02_document/modules/src__api__client.md | 109 ++ _docs/02_document/modules/src__api__sse.md | 73 + .../modules/src__auth__AuthContext.md | 116 ++ .../modules/src__auth__ProtectedRoute.md | 101 ++ .../modules/src__components__ConfirmDialog.md | 74 + .../src__components__DetectionClasses.md | 99 ++ .../modules/src__components__FlightContext.md | 106 ++ .../modules/src__components__Header.md | 152 ++ .../modules/src__components__HelpModal.md | 64 + .../src__features__admin__AdminPage.md | 215 +++ .../modules/src__features__annotations.md | 110 ++ ...src__features__annotations__classColors.md | 73 + .../src__features__dataset__DatasetPage.md | 69 + .../modules/src__features__flights.md | 106 ++ .../src__features__login__LoginPage.md | 151 ++ .../src__features__settings__SettingsPage.md | 181 ++ .../modules/src__hooks__useDebounce.md | 55 + .../modules/src__hooks__useResizablePanel.md | 70 + _docs/02_document/modules/src__i18n__i18n.md | 64 + .../02_document/modules/src__types__index.md | 83 + _docs/02_document/state.json | 126 ++ _docs/02_document/system-flows.md | 656 ++++++++ _docs/02_document/tests/blackbox-tests.md | 1478 +++++++++++++++++ _docs/02_document/tests/environment.md | 212 +++ _docs/02_document/tests/performance-tests.md | 224 +++ _docs/02_document/tests/resilience-tests.md | 244 +++ .../02_document/tests/resource-limit-tests.md | 213 +++ _docs/02_document/tests/security-tests.md | 246 +++ _docs/02_document/tests/test-data.md | 100 ++ .../02_document/tests/traceability-matrix.md | 165 ++ _docs/02_tasks/_dependencies_table.md | 18 + .../todo/AZ-448_refactor_owm_api_key.md | 86 + .../todo/AZ-449_refactor_owm_base_url.md | 66 + .../todo/AZ-450_refactor_tile_urls.md | 80 + .../AZ-451_refactor_leaflet_marker_icon.md | 70 + .../todo/AZ-452_refactor_api_base_accessor.md | 85 + .../todo/AZ-453_refactor_navigate_to_login.md | 71 + ...AZ-454_refactor_document_token_accessor.md | 64 + .../analysis/refactoring_roadmap.md | 57 + .../analysis/research_findings.md | 54 + .../deferred_to_refactor.md | 42 + .../list-of-changes.md | 101 ++ _docs/_autodev_state.md | 27 + _docs/how_to_test.md | 11 + _docs/legacy/wpf-era.md | 439 +++++ scripts/run-performance-tests.sh | 173 ++ scripts/run-tests.sh | 291 ++++ 84 files changed, 13065 insertions(+) create mode 100644 README.md create mode 100644 _docs/00_problem/acceptance_criteria.md create mode 100644 _docs/00_problem/input_data/data_parameters.md create mode 100644 _docs/00_problem/input_data/enum_spec_snapshot.json create mode 100644 _docs/00_problem/input_data/expected_results/results_report.md create mode 100644 _docs/00_problem/problem.md create mode 100644 _docs/00_problem/restrictions.md create mode 100644 _docs/00_problem/security_approach.md create mode 100644 _docs/01_solution/solution.md create mode 100644 _docs/02_document/00_discovery.md create mode 100644 _docs/02_document/01_legacy_coverage_gaps.md create mode 100644 _docs/02_document/04_verification_log.md create mode 100644 _docs/02_document/FINAL_report.md create mode 100644 _docs/02_document/architecture.md create mode 100644 _docs/02_document/architecture_compliance_baseline.md create mode 100644 _docs/02_document/components/00_foundation/description.md create mode 100644 _docs/02_document/components/01_api-transport/description.md create mode 100644 _docs/02_document/components/02_auth/description.md create mode 100644 _docs/02_document/components/03_shared-ui/description.md create mode 100644 _docs/02_document/components/04_login/description.md create mode 100644 _docs/02_document/components/05_flights/description.md create mode 100644 _docs/02_document/components/06_annotations/description.md create mode 100644 _docs/02_document/components/07_dataset/description.md create mode 100644 _docs/02_document/components/08_admin/description.md create mode 100644 _docs/02_document/components/09_settings/description.md create mode 100644 _docs/02_document/components/10_app-shell/description.md create mode 100644 _docs/02_document/components/11_class-colors/description.md create mode 100644 _docs/02_document/data_model.md create mode 100644 _docs/02_document/deployment/ci_cd_pipeline.md create mode 100644 _docs/02_document/deployment/containerization.md create mode 100644 _docs/02_document/deployment/environment_strategy.md create mode 100644 _docs/02_document/deployment/observability.md create mode 100644 _docs/02_document/diagrams/components.md create mode 100644 _docs/02_document/glossary.md create mode 100644 _docs/02_document/module-layout.md create mode 100644 _docs/02_document/modules/mission-planner.md create mode 100644 _docs/02_document/modules/src__App-and-main.md create mode 100644 _docs/02_document/modules/src__api__client.md create mode 100644 _docs/02_document/modules/src__api__sse.md create mode 100644 _docs/02_document/modules/src__auth__AuthContext.md create mode 100644 _docs/02_document/modules/src__auth__ProtectedRoute.md create mode 100644 _docs/02_document/modules/src__components__ConfirmDialog.md create mode 100644 _docs/02_document/modules/src__components__DetectionClasses.md create mode 100644 _docs/02_document/modules/src__components__FlightContext.md create mode 100644 _docs/02_document/modules/src__components__Header.md create mode 100644 _docs/02_document/modules/src__components__HelpModal.md create mode 100644 _docs/02_document/modules/src__features__admin__AdminPage.md create mode 100644 _docs/02_document/modules/src__features__annotations.md create mode 100644 _docs/02_document/modules/src__features__annotations__classColors.md create mode 100644 _docs/02_document/modules/src__features__dataset__DatasetPage.md create mode 100644 _docs/02_document/modules/src__features__flights.md create mode 100644 _docs/02_document/modules/src__features__login__LoginPage.md create mode 100644 _docs/02_document/modules/src__features__settings__SettingsPage.md create mode 100644 _docs/02_document/modules/src__hooks__useDebounce.md create mode 100644 _docs/02_document/modules/src__hooks__useResizablePanel.md create mode 100644 _docs/02_document/modules/src__i18n__i18n.md create mode 100644 _docs/02_document/modules/src__types__index.md create mode 100644 _docs/02_document/state.json create mode 100644 _docs/02_document/system-flows.md create mode 100644 _docs/02_document/tests/blackbox-tests.md create mode 100644 _docs/02_document/tests/environment.md create mode 100644 _docs/02_document/tests/performance-tests.md create mode 100644 _docs/02_document/tests/resilience-tests.md create mode 100644 _docs/02_document/tests/resource-limit-tests.md create mode 100644 _docs/02_document/tests/security-tests.md create mode 100644 _docs/02_document/tests/test-data.md create mode 100644 _docs/02_document/tests/traceability-matrix.md create mode 100644 _docs/02_tasks/_dependencies_table.md create mode 100644 _docs/02_tasks/todo/AZ-448_refactor_owm_api_key.md create mode 100644 _docs/02_tasks/todo/AZ-449_refactor_owm_base_url.md create mode 100644 _docs/02_tasks/todo/AZ-450_refactor_tile_urls.md create mode 100644 _docs/02_tasks/todo/AZ-451_refactor_leaflet_marker_icon.md create mode 100644 _docs/02_tasks/todo/AZ-452_refactor_api_base_accessor.md create mode 100644 _docs/02_tasks/todo/AZ-453_refactor_navigate_to_login.md create mode 100644 _docs/02_tasks/todo/AZ-454_refactor_document_token_accessor.md create mode 100644 _docs/04_refactoring/01-testability-refactoring/analysis/refactoring_roadmap.md create mode 100644 _docs/04_refactoring/01-testability-refactoring/analysis/research_findings.md create mode 100644 _docs/04_refactoring/01-testability-refactoring/deferred_to_refactor.md create mode 100644 _docs/04_refactoring/01-testability-refactoring/list-of-changes.md create mode 100644 _docs/_autodev_state.md create mode 100644 _docs/how_to_test.md create mode 100644 _docs/legacy/wpf-era.md create mode 100755 scripts/run-performance-tests.sh create mode 100755 scripts/run-tests.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..c9e59fa --- /dev/null +++ b/README.md @@ -0,0 +1,227 @@ +# azaion-ui + +React SPA that serves as the **single front-end for the entire Azaion suite**. +It does not own data or business logic; it is the operator's window onto +every backend service that lives as a sibling submodule in the +[`azaion/suite`](../README.md) monorepo. + +``` +suite/ +├── annotations/ .NET 10 — Annotations / Media / Datasets / Settings +├── flights/ .NET 10 — Flights, waypoints, aircrafts, GPS SSE +├── detections/ Cython — YOLO inference (ONNX / TensorRT) +├── detections-semantic/ Cython — Semantic detection +├── loader/ Cython — Encrypted resource loader +├── gps-denied-onboard/ Python — GPS-denied positioning (UAV side) +├── gps-denied-desktop/ Python — GPS-denied positioning (operator side) +├── autopilot/ Python — UAV control via MAVLink +├── admin/ .NET 10 — Users, roles, detection classes, model versions +├── ai-training/ Python — YOLO training, ONNX export +├── satellite-provider/ .NET 10 — Google Maps tile cache +└── ui/ React 19 — ◄ this repository +``` + +For the suite-wide architecture, deployment topology, database design, and +the legacy WPF predecessor see: + +- [`suite/_docs/`](../_docs/) — system-level architecture and per-service + feature docs (canonical source of truth). +- [`_docs/legacy/wpf-era.md`](_docs/legacy/wpf-era.md) — what the + pre-rewrite Windows desktop application looked like, why the React port + exists, and which behaviours are intentionally being preserved. +- [`_docs/ui_design/`](_docs/ui_design/) — page-level wireframes + (HTML mockups + a design README) inherited from the WPF UI; the + authoritative reference for layout, keyboard shortcuts, color scheme, + affiliation icons, annotation row gradient, etc. + +> **Status.** The code currently in `src/` is a **rudimentary first cut** +> mechanically translated from the legacy WPF / XAML UI. It is not yet +> fully wired to the new suite APIs and has no test coverage. Formal +> bottom-up documentation, a test specification, a testability pass, and +> the initial test suite are being produced via the +> [`/autodev` existing-code flow](.cursor/skills/autodev/SKILL.md). When +> the documentation + safety net are in place, feature work resumes +> through the same flow. + +--- + +## What this repo is — and is not + +| | this repo (`ui/`) | the suite services | +|--|---|---| +| **Owns** | rendering, routing, client-side state, i18n, drag-and-drop, the Leaflet map, `