mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-21 17:31:15 +00:00
5d84d2839e
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>
44 lines
4.8 KiB
Markdown
44 lines
4.8 KiB
Markdown
# Ripple Log — Cycle 6 (AZ-505)
|
||
|
||
## Direct doc updates (Task mode Step 1–4)
|
||
|
||
| 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.
|