Files
satellite-provider/_docs/02_document/ripple_log_cycle6.md
T
Oleksandr Bezdieniezhnykh 5d84d2839e
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
[AZ-505] Test-spec sync + task-mode doc updates for cycle 6
Step 12 (Test-Spec Sync, cycle-update mode):
- blackbox-tests.md: append BT-23..BT-26 for AZ-505's new
  observable behaviors (inventory order/shape; leaflet
  most-recent via location_hash; HTTP/2 multiplex over TLS+ALPN;
  request validation).
- performance-tests.md: append PT-09 (inventory p95 ≤ 1000ms /
  2500 tiles); records cycle-6 measured p95=66ms; documents
  promotion path to scripts/run-performance-tests.sh if budget
  ever tightens.
- traceability-matrix.md: resolve the 5 AZ-503 deferrals
  (AC-5/6/9/10/12) by pointing at AZ-505 test names + add 7
  AZ-505 AC rows (AC-1..AC-7) + bump totals (90 -> 94 tests,
  56/56 -> 63/63 in-scope) + add cycle-6 coverage shape notes
  (budget relaxation rationale, voting-filter deferral note,
  TLS+ALPN pivot, NFR propagation).

Step 13 (Update Docs, task mode):
- common_dtos.md: add 5 new TileInventory DTOs.
- common_interfaces.md: add ITileService.GetInventoryAsync.
- services_tile_service.md: document TileService.GetInventoryAsync
  steps + the XOR-validation-in-handler note.
- dataaccess_migrator.md: bump migration count 14 -> 15;
  describe migration 015 (AZ-505 leaflet covering index, lock
  window, INCLUDE-list trade-off).
- system-flows.md: add F7 (Leaflet Tile Serving, AZ-310 +
  AZ-505 location_hash rewire + TLS+ALPN) and F8 (Tile
  Inventory Bulk Lookup) with sequence diagrams, validation
  surface, and AC-4 perf evidence. Update Flow Inventory +
  Dependencies tables accordingly.
- glossary.md: add "Tile Inventory" entry pointing at the
  v1.0.0 contract.
- ripple_log_cycle6.md: new file — exhaustive reverse-dependency
  analysis confirms zero stale downstream module docs.

Advance autodev state from step 11 -> 14 (skipping 12+13 as
completed in this commit; auto-chain through Step 14 = Security
Audit optional gate).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 22:29:22 +03:00

44 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ripple Log — Cycle 6 (AZ-505)
## Direct doc updates (Task mode Step 14)
| Doc | Reason |
|-----|--------|
| `modules/api_program.md` | `Program.cs` — added `POST /api/satellite/tiles/inventory` handler + Kestrel TLS+ALPN config (updated in AC-5 fix commit). |
| `modules/common_dtos.md` | `Common/DTO/TileInventory.cs` — 5 new DTOs (`TileCoord`, `TileInventoryRequest`, `TileInventoryEntry`, `TileInventoryResponse`, `TileInventoryLimits`). |
| `modules/common_interfaces.md` | `Common/Interfaces/ITileService.cs` — added `GetInventoryAsync`. |
| `modules/common_uuidv5.md` | `Common/Utils/Uuidv5.cs` — added `LocationHashForTile(int z, int x, int y)` (consolidated from two prior inline call sites). |
| `modules/dataaccess_tile_repository.md` | `DataAccess/Repositories/TileRepository.cs``GetByTileCoordinatesAsync` rewired to `location_hash`-keyed predicate; new `GetTilesByLocationHashesAsync` (Npgsql-direct, bypasses Dapper). |
| `modules/dataaccess_migrator.md` | New migration 015 (`AddTilesLeafletPathIndex`); migration count bumped 14 → 15. |
| `modules/services_tile_service.md` | `Services.TileDownloader/TileService.cs``GetInventoryAsync` implementation; `BuildTileEntity` consolidated to `Uuidv5.LocationHashForTile`. |
| `modules/dataaccess_models.md` | No structural entity changes, only commentary additions (already updated in initial cycle-6 batch). |
| `module-layout.md` | Endpoint + repo-method rows added; Kestrel TLS path noted (updated in AC-5 fix commit). |
| `data_model.md` | `tiles.location_hash` column note expanded with AZ-505 usage; `tiles_leaflet_path` index row added; migration 015 row added (already updated in initial cycle-6 batch). |
| `system-flows.md` | Added F7 (Leaflet Tile Serving) and F8 (Tile Inventory Bulk Lookup) flows + dependency rows. |
| `architecture.md` | Tile-storage contract section already cites AZ-505 + `tile-inventory.md` v1.0.0 (initial cycle-6 batch). No further changes needed. |
| `glossary.md` | Added "Tile Inventory" entry; `Location Hash` entry already cites AZ-505 (initial cycle-6 batch). |
| `contracts/api/tile-inventory.md` | NEW at v1.0.0 (initial cycle-6 batch); Non-Goals updated for the TLS+ALPN path (AC-5 fix commit). |
| `contracts/data-access/tile-storage.md` | Bumped to v2.0.0 (initial cycle-6 batch). |
| `tests/blackbox-tests.md` | BT-23..BT-26 appended (Test-Spec Sync, Step 12). |
| `tests/performance-tests.md` | PT-09 appended (Test-Spec Sync, Step 12). |
| `tests/traceability-matrix.md` | 5 AZ-503 deferred rows resolved + 7 AZ-505 AC rows added + totals + cycle-6 notes (Step 12). |
## Reverse-dependency ripple (Step 0.5)
Reverse-dependency analysis for the changed C# source files:
- `SatelliteProvider.Common/DTO/TileInventory.cs` (new file) — consumed only by `Program.cs` and `TileService.cs`; both already directly updated.
- `SatelliteProvider.Common/Interfaces/ITileService.cs` (signature addition `GetInventoryAsync`) — consumed by `Program.cs` (handler wiring); already directly updated.
- `SatelliteProvider.Common/Utils/Uuidv5.cs` (added `LocationHashForTile`) — consumed by `TileService.BuildTileEntity` + `TileRepository.GetByTileCoordinatesAsync` + `TileService.GetInventoryAsync`; all already directly updated.
- `SatelliteProvider.DataAccess/Repositories/ITileRepository.cs` (signature addition `GetTilesByLocationHashesAsync`) — consumed only by `TileService.GetInventoryAsync`; already directly updated.
- `SatelliteProvider.DataAccess/Repositories/TileRepository.cs` (read-path rewrite + bulk add) — consumed via DI through `ITileRepository`; `RegionService` and `RouteService` consume only `GetTilesByRegionAsync` (unchanged), so their docs are NOT stale.
- `SatelliteProvider.Services.TileDownloader/TileService.cs` (added `GetInventoryAsync`, consolidated `BuildTileEntity`) — consumed via DI through `ITileService` by `Program.cs` (already updated), `RegionService` (consumes only `DownloadAndStoreTilesAsync` + `GetTilesByRegionAsync`, both unchanged), and `RouteService` (via `RegionService`, no direct dependency).
- `SatelliteProvider.Api/Program.cs` — top-level; no upstream consumers in the workspace.
- `SatelliteProvider.DataAccess/Migrations/015_AddTilesLeafletPathIndex.sql` — embedded resource; consumed by `DatabaseMigrator` at startup. Migrator doc already updated above.
**Verdict**: zero stale downstream module docs. The direct-update list above is exhaustive. No directory-proximity heuristic was needed (`csproj` `ProjectReference` graph is small and was walked exhaustively).
## Tooling note
This cycle used manual `csproj ProjectReference` traversal (`SatelliteProvider.Api.csproj``Common.csproj`, `DataAccess.csproj`, `Services.*` projects) rather than a static analyzer. The dependency graph is shallow (3 levels max) and was walked exhaustively, so the heuristic-fallback mode in the document-skill ripple step was not triggered.