Files
satellite-provider/_docs/02_tasks/_dependencies_table.md
T
Oleksandr Bezdieniezhnykh 5a28f67d33
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
[AZ-359] Refactor C07: collapse RegionService catch ladder via RegionFailureClassifier
Replace 9 nearly-identical catch blocks in
RegionService.ProcessRegionAsync with a single catch (Exception ex)
that delegates to RegionFailureClassifier.Classify, returning a
typed (category, errorMessage) pair. Preserves all original error
messages stored in region summary files; failure-path call into
HandleProcessingFailureAsync is unchanged.

Net source delta: -38 lines in RegionService, +71 lines in new
RegionFailureClassifier (pure static), +10 unit tests covering
each category, precedence, status-code propagation, null guard.

Tests: 68 unit (was 58) + 5 smoke + 3 stub-contract integration
tests pass.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 00:07:31 +03:00

5.1 KiB

Task Dependencies

Dependency Graph

Step 6 — Implement Tests (AZ-285..AZ-290)

Task Depends On Points Status
AZ-285 Test Infrastructure 3 Done
AZ-286 TileService Tests AZ-285 3 Done
AZ-287 RegionService Tests AZ-285 3 Done
AZ-288 RouteService Tests AZ-285 3 Done
AZ-289 Integration Route Maps AZ-285 2 Done
AZ-290 Non-Functional Tests AZ-285 3 Done

Step 8 — Refactor 02-coupling-refactoring (AZ-309 epic)

Task Depends On Points Status
AZ-310 ServeTile via ITileService 3 Done (In Testing)
AZ-311 GetTileByLatLon via ITileService AZ-310 2 Done (In Testing)
AZ-312 Split Services into 3 csprojs AZ-311 5 Done (In Testing)
AZ-313 Update consumers (Api/Tests) AZ-312 3 Done (In Testing)
AZ-314 DI registration split AZ-313 2 Done (In Testing)
AZ-315 Documentation sync AZ-314 2 In Progress

Step 8 — Refactor 03-code-quality-refactoring (AZ-350 epic)

Roadmap: _docs/04_refactoring/03-code-quality-refactoring/analysis/refactoring_roadmap.md (4 execution phases).

Task C-ID Title Phase Depends On Points Status
AZ-351 C01 Fix null logger to DatabaseMigrator 1 2 Done (In Testing)
AZ-352 C02 Replace empty catch in ExtractTileCoordinatesFromFilename 1 2 Done (In Testing)
AZ-363 C10 Delete write-only counters in RegionRequestQueue 1 1 Done (In Testing)
AZ-356 C05 Stub endpoints return 501 1 2 Done (In Testing)
AZ-354 C04 Strict CORS by default 1 2 Done (In Testing)
AZ-353 C03 Sanitize 5xx responses via IExceptionHandler 1 3 Done (In Testing)
AZ-359 C07 Consolidate RegionService catch ladder 2 3 Done (In Testing)
AZ-357 C06 Drop tile Version concept; new migration 2 5 To Do
AZ-362 C09 Idempotent POST contract 2 AZ-353 3 To Do
AZ-366 C13 Consolidate Haversine + filename parser 3 2 To Do
AZ-377 C24 Consolidate Earth constants + 111000 3 AZ-371 2 To Do
AZ-368 C15 Shared TileCsvWriter 3 2 To Do
AZ-367 C14 Shared TileGridStitcher 3 AZ-364 3 To Do
AZ-369 C16 Move inline DTOs out of Program.cs 3 2 To Do
AZ-365 C12 Decompose RouteService.CreateRouteAsync 3 5 To Do
AZ-364 C11 Decompose RouteProcessingService god-class 3 AZ-366, AZ-367 (folds in AZ-360) 5 To Do
AZ-360 C08 Replace IServiceProvider in RouteProcessingService 3 AZ-364 (folded) 2 To Do
AZ-371 C18 Magic numbers → ProcessingConfig/MapConfig 4 3 To Do
AZ-370 C17 Status / point-type enums + AC RT2 update 4 3 To Do
AZ-373 C20 Clarify / drop MapsVersion 4 AZ-357 2 To Do
AZ-374 C21 Typed HttpClient for Google Maps 4 2 To Do
AZ-375 C22 O(N) existing-tile lookup (HashSet) 4 AZ-371 2 To Do
AZ-376 C23 Delete unused FindExistingTileAsync 4 1 To Do
AZ-378 C25 Repo _logger fields: delete or use 4 1 To Do
AZ-379 C26 Extract repo SELECT column-list constants 4 2 To Do
AZ-380 C27 Delete CalculatePolygonDiagonalDistance 4 1 To Do
AZ-372 C19 dotnet format + NetAnalyzers + Coverlet 4 3 To Do

Execution Order

Step 6

  1. AZ-285 (test infrastructure — all others depend on this)
  2. AZ-286, AZ-287, AZ-288 (unit tests — can run in parallel)
  3. AZ-289 (integration tests — depends on infra only)
  4. AZ-290 (non-functional tests — depends on infra only)

Step 8 (02-coupling-refactoring)

  1. AZ-310 → AZ-311 (Phase A: route tile endpoints through ITileService)
  2. AZ-312 → AZ-313 → AZ-314 (Phase B: physical split + consumer + DI rewire)
  3. AZ-315 (Phase C: docs sync, must be last)

Step 8 (03-code-quality-refactoring)

Phase 1 (Critical fixes): AZ-351 → AZ-352 → AZ-363 → AZ-356 → AZ-354 → AZ-353 Phase 2 (Correctness): AZ-359 → AZ-357 → AZ-362 (AZ-362 needs AZ-353) Phase 3 (Structural cleanup): AZ-366 → AZ-377 → AZ-368 → AZ-367 → AZ-369 → AZ-365 → AZ-364 (folds AZ-360) — AZ-377 needs AZ-371 Phase 4 (Typing/config/tooling/polish): AZ-371 → AZ-370 → AZ-373 → AZ-374 → AZ-375 → AZ-376 → AZ-378 → AZ-379 → AZ-380 → AZ-372

Total Effort

Step 6: 6 tasks, 17 story points Step 8 (02-coupling-refactoring): 6 tasks, 17 story points Step 8 (03-code-quality-refactoring): 27 tasks, ~66 story points

Coverage Verification

Test Spec Category Covered By
blackbox-tests.md (BT-01..BT-12, BT-N01..BT-N05) AZ-286, AZ-287, AZ-288, AZ-289
performance-tests.md (PT-01..PT-06) AZ-290
resilience-tests.md (RS-01..RS-06) AZ-290
security-tests.md (SEC-01..SEC-04) AZ-290
resource-limit-tests.md (RL-01..RL-04) AZ-290
traceability-matrix.md (100% AC coverage) All tasks combined