Oleksandr Bezdieniezhnykh
5d84d2839e
[AZ-505] Test-spec sync + task-mode doc updates for cycle 6
...
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
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
Oleksandr Bezdieniezhnykh
61612044fb
[AZ-503] [AZ-504] Cycle 5 Steps 11-15 sync
...
Wrap up cycle 5 verification + documentation:
- Steps 10/11 wrap-up reports (implementation_completeness +
implementation_report) for the AZ-503-foundation + AZ-504 batch.
- Step 12 test-spec sync: AZ-503-foundation/AZ-504 ACs appended;
AZ-505 deferred ACs recorded.
- Step 13 update-docs: architecture, data-model, glossary, module-
layout, uav-tile-upload contract (v1.1.0), DataAccess + Services
+ Tests module docs synced; new common_uuidv5.md module doc.
- Step 14 security audit: PASS_WITH_WARNINGS; 0 new Critical/High;
2 new Low informational (F1 flightId provenance, F2 pgcrypto
deploy gap).
- Step 15 performance test: PASS_WITH_INFRA_WARNINGS; PT-08
passed twice (AZ-504 fix verified); PT-01/02 failed due to
recurring local Docker/colima DNS cold-start (not an app
regression). Cycle-3 perf-harness leftover stays OPEN with
replay #5 documented.
- Autodev state moved to Step 16 (Deploy).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-12 18:01:27 +03:00
Oleksandr Bezdieniezhnykh
51b572108a
[AZ-484] Cycle 1 Steps 12-16: docs, security, perf, deploy report
...
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
Captures the post-implementation autodev gates for AZ-484 multi-source
tile storage:
- Step 12 (Test-Spec Sync): added 7 AC rows (AZ-484 AC-1..AC-7) and a
PT-07 NFR row to traceability-matrix.md; added PT-07 scenario to
performance-tests.md.
- Step 13 (Update Docs): refreshed data_model.md (tiles columns +
indexes + selection rule + UPSERT contract + migrations 012/013),
module-layout.md (Common/Enums section with L-001 guidance,
DataAccess imports-from now lists 6 sites), 6 module / component
docs to reflect the new repo signatures, source/captured_at fields,
and Dapper enum bypass workaround. ripple_log_cycle1.md records
zero out-of-scope ripple.
- Step 14 (Security Audit): PASS_WITH_WARNINGS - 0 Critical, 0 High,
5 Medium, 5 Low. AZ-484 itself added zero new findings. Hardening
items (Postgres default creds, .env in build context, GMaps key
rotation, ASP.NET Core 8.0.21 -> 8.0.25, rate limiter) recorded
for separate tickets.
- Step 15 (Performance Test): all PT-01..PT-07 scenarios Unverified
(non-blocking); PT-07 baseline-comparison harness deferred to a
leftover for next cycle.
- Step 16 (Deploy): cycle deploy report covering migration safety,
rollback path, post-deploy verification, security caveats.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-11 10:03:05 +03:00
Oleksandr Bezdieniezhnykh
7c37636fdf
[AZ-373] Refactor C20: drop MapsVersion from new writes (option a)
...
- Stop writing "downloaded_YYYY-MM-DD" into tiles.maps_version: new rows
bind @MapsVersion to NULL via TileService.BuildTileEntity.
- Retain the tiles.maps_version column (coderule.mdc forbids unprompted
column drops); pre-existing rows keep their values for forensics.
- Remove MapsVersion property from DownloadTileResponse (API wire shape)
and TileMetadata (internal DTO); OpenAPI schema regenerates from the
DTO via Swashbuckle.
- Add 3 AC tests in TileServiceTests covering the captured-entity write
(AC-1) and the DTO/wire-shape removal (AC-2).
- Update integration-test local DTO + console output; refresh docs in
common_dtos.md, services_tile_service.md, data_model.md.
- Archive AZ-373 task file: todo/ -> done/.
174 unit + 5 smoke pass.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-11 04:05:40 +03:00
Oleksandr Bezdieniezhnykh
6b373082c8
[AZ-315] Sync architecture docs after coupling refactor
...
Phase C of architecture coupling refactor (epic AZ-309). Closes the
last baseline finding (F5 — DataAccess incorrectly documented as
importing Common) and synchronizes the rest of _docs/02_document/
with the post-split project layout from AZ-312/313/314:
- module-layout.md: per-component sections for the three new csprojs
with explicit ProjectReferences and the no-cross-sibling-reference
invariant the split enforces.
- architecture.md: components and internal-communication tables
updated to show calls flow through Common interfaces.
- architecture_compliance_baseline.md: F1..F5 marked Resolved with
task IDs and commit refs; baseline summary now 0 findings.
- diagrams/components.md, components/03_tile_downloader/description.md,
modules/{common_interfaces,services_tile_service,
services_google_maps_downloader,tests_unit}.md updated for the
split, RateLimitException relocation, and new ITileService methods.
Documentation-only batch — no code, no tests, no build changes.
Epic AZ-309 complete (6 tasks across 3 batches).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-10 07:25:21 +03:00
Oleksandr Bezdieniezhnykh
b0fffa6d42
[AZ-284] Autodev baseline + testability refactor
...
Phase A baseline outputs from /autodev (Steps 1-5):
- Problem & solution docs (_docs/00_problem, _docs/01_solution)
- Codebase documentation (_docs/02_document) incl. architecture,
module-layout, glossary, system-flows, baseline compliance scan
- Test specs (blackbox, performance, resilience, security, resource,
traceability matrix)
- Test task decomposition (_docs/02_tasks/todo): AZ-285..AZ-290
- Testability refactor (_docs/04_refactoring/01-testability-refactoring):
- TC-01 Move DownloadedTileInfoV2 + new ExistingTileInfo to Common.DTO
- TC-02 Replace dead ISatelliteDownloader API with real signatures
- TC-03 GoogleMapsDownloaderV2 implements ISatelliteDownloader
- TC-04 TileService depends on ISatelliteDownloader (mockable)
- TC-05 DI + endpoints use ISatelliteDownloader
- Test runner scripts (scripts/run-tests.sh, run-performance-tests.sh)
- Autodev state pointer (_docs/_autodev_state.md)
Prepares the codebase for AZ-285..AZ-290 unit/integration test work.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-10 04:44:08 +03:00