Files
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

4.8 KiB
Raw Permalink Blame History

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.csGetByTileCoordinatesAsync 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.csGetInventoryAsync 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.csprojCommon.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.