mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-27 09:51:14 +00:00
chore: WIP pre-implement cycle 14 baseline
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# Performance Report — Cycle 13
|
||||
|
||||
**Date**: 2026-06-26
|
||||
**Cycle**: 13 (AZ-1126 capturedAt DateTimeOffset)
|
||||
**Runner**: `scripts/run-performance-tests.sh` (default: `PERF_REPEAT_COUNT=20`, `PERF_UAV_BATCH_SIZE=10`, `PERF_PT10_SLOW_MS=50`)
|
||||
**Stack**: `docker compose -f docker-compose.yml -f docker-compose.perf.yml up -d --build`
|
||||
**API_URL**: `https://localhost:18980`
|
||||
**Verdict**: **PASS** (11/11 thresholds; exit 0)
|
||||
|
||||
## Notes
|
||||
|
||||
First perf attempt failed at PT-01 (exit 7) because the perf stack was not running — resolved by starting the compose overlay before re-run.
|
||||
|
||||
## REST scenarios (PT-01..PT-08)
|
||||
|
||||
| Scenario | Result | Key metric |
|
||||
|----------|--------|------------|
|
||||
| PT-01 cold tile | Pass | 1519 ms |
|
||||
| PT-02 cached tile | Pass | 230 ms |
|
||||
| PT-03 region 200m | Pass | 2433 ms |
|
||||
| PT-04 region 500m stitch | Pass | 2158 ms |
|
||||
| PT-05 concurrent regions | Pass | 2378 ms |
|
||||
| PT-06 route create | Pass | 203 ms |
|
||||
| PT-07 cold/warm | Pass | warm p95 54 ms vs cold 2148 ms |
|
||||
| PT-08 UAV batch | Pass | batch p95 225 ms |
|
||||
|
||||
AZ-1126 does not change perf probe payloads (PT-08 still uses offset-aware `capturedAt` from fixture generator).
|
||||
|
||||
## PT-10 (gRPC stream)
|
||||
|
||||
| Metric | p50 | p95 | Threshold | Verdict |
|
||||
|--------|-----|-----|-----------|---------|
|
||||
| first_batch_ms | 43 ms | 63 ms | ≤ 30000 ms | Pass |
|
||||
| total_stream_ms | 43 ms | 64 ms | ≤ 120000 ms | Pass |
|
||||
| slow-consumer | — | — | completes without DeliveryError | Pass |
|
||||
|
||||
Iteration 1 cold path ~3950 ms first batch (empty volume); iterations 2–20 warm cached.
|
||||
@@ -0,0 +1,48 @@
|
||||
# Retrospective — Cycle 13 (2026-06-26)
|
||||
|
||||
**Tasks**: AZ-1126 (capturedAt DateTimeOffset, 2 SP). **1 task, 2 SP, 1 batch.**
|
||||
**Mode**: cycle-end. Step 16.5 (Release) **skipped** (no release harness).
|
||||
**Previous retro**: `retro_2026-06-26_cycle12.md`
|
||||
|
||||
## Implementation Summary
|
||||
|
||||
| Metric | Cycle 13 | Δ vs cycle 12 |
|
||||
|--------|----------|---------------|
|
||||
| Tasks implemented | **1** | unchanged |
|
||||
| Total complexity delivered | **2 SP** | -1 SP |
|
||||
| Blocked tasks | **0** | unchanged |
|
||||
| Auto-fix attempts | **1** (filter message propagation) | new |
|
||||
|
||||
## Quality
|
||||
|
||||
| Gate | Result |
|
||||
|------|--------|
|
||||
| Code review | PASS_WITH_WARNINGS (batch_01_cycle13) |
|
||||
| Step 11 full suite | **PASS** (pre-verified in Step 10) |
|
||||
| Step 14 security | **PASS** (delta) — F-AZ810-2 **resolved** |
|
||||
| Step 15 perf | **PASS** 11/11 (first run failed: stack not up) |
|
||||
| Step 16 deploy | **PASS** — `deploy_cycle13.md` |
|
||||
|
||||
## Cycle 13 delta
|
||||
|
||||
- **F-AZ810-2 closed** — cycle 12 retro Action #1 shipped; `DateTimeOffset` + strict converter eliminates `DateTimeKind` ambiguity on UAV upload path.
|
||||
- **Filter regression caught in batch** — generic `JsonException` handler initially masked converter diagnostics; fixed by propagating exception message.
|
||||
- **Security finding → task → closure** — 2 SP dedicated cycle resolved a multi-cycle Low carry-over without scope creep.
|
||||
|
||||
## Comparison with cycle 12 retro actions
|
||||
|
||||
| Cycle 12 action | Cycle 13 outcome |
|
||||
|-----------------|------------------|
|
||||
| F-AZ810-2 DateTimeOffset (~1 SP) | **Done** (AZ-1126) |
|
||||
| Align `environment.md` integration command | **Open** — not scheduled |
|
||||
| PT-09 shell harness promotion | **Open** — optional |
|
||||
|
||||
## Top 3 Improvement Actions (cycle 14 candidates)
|
||||
|
||||
1. **D-AZ795-1** — bump FluentValidation 12.0.0 → 12.1.1 (~1 SP) — sole remaining Low prod dependency finding
|
||||
2. **Align `environment.md` integration command** with `run-tests.sh` (`docker-compose.tests.yml` only) (~0.5 SP) — third-cycle carry-over
|
||||
3. **Perf gate preflight** — document or script-check that perf compose stack is up before PT-01 (~0.5 SP) — cycle 13 first-run exit 7
|
||||
|
||||
## Cycle 13 Verdict
|
||||
|
||||
**Successful security-closure cycle** — AZ-1126 delivered a focused type migration with full gate coverage (security + perf + deploy). One auto-fix in the validation filter; no architecture drift.
|
||||
@@ -0,0 +1,28 @@
|
||||
# Structural Snapshot — 2026-06-26 (post-cycle 13, capturedAt DateTimeOffset)
|
||||
|
||||
Cycle 13 delta against `structure_2026-06-25_cycle10.md` (no cycle 11/12 structure snapshots on disk). Source: `_docs/02_document/module-layout.md` + on-disk `*.csproj` graph.
|
||||
|
||||
## Projects
|
||||
|
||||
| Layer | csproj | Cycle 13 delta |
|
||||
|-------|--------|----------------|
|
||||
| 2 (Common) | `SatelliteProvider.Common` | `UtcOffsetRequiredDateTimeOffsetConverter` + `UavTileMetadata.CapturedAt` type change |
|
||||
| 4 (API) | `SatelliteProvider.Api` | Validator + `UavUploadValidationFilter` message propagation |
|
||||
| 3 (Application) | `SatelliteProvider.Services.TileDownloader` | Quality gate + upload handler UTC comparisons |
|
||||
| 6 (Tests) | `SatelliteProvider.Tests`, `SatelliteProvider.IntegrationTests` | Converter + UAV validation tests |
|
||||
|
||||
**Project count**: **10** (unchanged).
|
||||
|
||||
## Cross-Project Import Edges
|
||||
|
||||
**Total ProjectReference edges**: **23** (unchanged). **Import cycles**: 0.
|
||||
|
||||
## Contract coverage
|
||||
|
||||
| Surface | Contract | Cycle 13 delta |
|
||||
|---------|----------|----------------|
|
||||
| UAV upload metadata | `uav-tile-upload.md` v1.2.1 | patch — explicit UTC offset on `capturedAt` |
|
||||
| gRPC `DeliverRouteTiles` | `tile_provision.proto` | unchanged |
|
||||
| REST error envelope | `error-shape.md` v1.0.1 | unchanged |
|
||||
|
||||
**gRPC perf coverage**: PT-10 verified (cycle 12); cycle 13 did not regress.
|
||||
Reference in New Issue
Block a user