Oleksandr Bezdieniezhnykh
d1624e6d54
[AZ-AUTODEV] Step 6 (Implement Tests) complete; advance to Step 7
...
Final implementation report for the test step. All six test tasks
(AZ-285..AZ-290) completed across three batches. Code review verdicts:
all PASS_WITH_WARNINGS. Run-Tests handoff recorded for Step 7 per
implement skill Step 16.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-10 05:12:38 +03:00
Oleksandr Bezdieniezhnykh
7822841587
[AZ-289] [AZ-290] Batch 3 tests: integration ZIP cap, perf, security, queue
...
AZ-289 — RL-01 50MB ZIP cap added to RunRouteWithTilesZipTest;
existing integration tests already cover BT-08/BT-09 + AC-1/AC-2.
AZ-290:
- scripts/run-performance-tests.sh extended with PT-01/03/04/05
- SatelliteProvider.IntegrationTests/SecurityTests.cs (SEC-01..SEC-04),
wired into Program.cs
- SatelliteProvider.Tests/RegionRequestQueueTests.cs covering RS-04 /
RL-02 queue capacity behavior
Notes:
- RS-04 spec wording ("rejects overflow") drifts from the channel's
BoundedChannelFullMode.Wait back-pressure semantics. Tests assert
the actual behavior; spec to be reconciled in Step 12 (Test-Spec
Sync). Tracked as Low/Spec-Gap in batch_03_review.md.
- Unit tests: 35/35 passed (Docker .NET 8 SDK).
- Integration test project builds clean (0 warnings, 0 errors).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-10 05:10:30 +03:00
Oleksandr Bezdieniezhnykh
dea0b8b4c0
[AZ-286] [AZ-287] [AZ-288] Service-level unit tests (mocked deps)
...
Batch 2: 27 new tests, 31/31 total passing.
AZ-286 TileService (9 tests):
- BT-01 download stores tiles via repository
- BT-02 cache reuse passes existing tiles to downloader
- BT-02b stale-version cached tiles are NOT treated as still-valid
- BT-N02 GoogleMapsDownloaderV2 rejects zoom levels not in {15..19}
- GetTileAsync known/unknown id
AZ-287 RegionService (6 tests):
- AC-1 RequestRegionAsync inserts entity and queues request
- AC-2/AC-3 ProcessRegionAsync transitions queued→processing→completed
and writes CSV + summary files
- AC-4 stitch path is set when stitchTiles=true
- ProcessRegionAsync handles RateLimitException by writing failed
summary with the error message preserved
- GetRegionStatusAsync mapping
- Missing region id is logged and short-circuits without DB writes
AZ-288 RouteService (12 tests):
- AC-1 every consecutive pair is ≤200m apart on 2-point route
- AC-2 first/last user points keep their roles; middles are interpolated
- BT-10 10pt route → 1 start, 1 end, 8 action, plus intermediates
- BT-12 20pt route → 1 start, 1 end, 18 action
- AC-3 TotalDistanceMeters == Σ Haversine(point[i-1], point[i])
- BT-N03 < 2 points throws ArgumentException
- regionSize <100 / >10000 throws ArgumentException
- BT-N04 (0,0) corner throws
- BT-N05 inverted NW.lat <= SE.lat throws
- BT-11 valid geofence creates region requests + links them with
isGeofence=true
- BT-07 GetRouteAsync returns route + points
- GetRouteAsync unknown id returns null
Code review: PASS_WITH_WARNINGS — 3 Low Spec-Gap findings:
1. BT-N01 (invalid coords) deferred to AZ-289 integration tests
(TileService doesn't validate coordinates — API-layer concern)
2. Point-type label drift between blackbox-tests.md ("original")
and code ("start"/"action"/"end")
3. Region status drift: spec "pending" vs code "queued" — initial
state on insert
Verification: docker dotnet test — 31/31 pass in 0.83s.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-10 05:02:00 +03:00
Oleksandr Bezdieniezhnykh
3d112c0f47
[AZ-285] Add batch 1 implementation report
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-10 04:56:11 +03:00
Oleksandr Bezdieniezhnykh
853b0a63df
[AZ-285] Test infrastructure: scaffold unit test project + fixtures
...
- Add SatelliteProvider.DataAccess project reference to test csproj
(enables mocking ITileRepository / IRegionRepository / IRouteRepository)
- Replace DummyTest placeholder with InfrastructureTests covering:
* All mockable interfaces (ISatelliteDownloader, repos, queue, services)
can be mocked via Moq
* TileService can be constructed with mocked dependencies
* Test coordinate fixtures load with expected values
- Add Fixtures/TestCoordinates.cs with REG-01..REG-03 + ROUTE-01/04/06
shared test data
- Archive AZ-285 to _docs/02_tasks/done/
- Batch 1 review report: PASS_WITH_WARNINGS (Low/Spec-Gap deferred AC-2,
Low/Maintainability pre-existing FluentAssertions 8.x license note)
Verification: docker dotnet test run — 4/4 tests pass in 2.35s.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-10 04:55:28 +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
Oleksandr Bezdieniezhnykh
25a644a9bf
chore: sync .cursor from suite
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
2026-05-09 05:18:10 +03:00
Oleksandr Bezdieniezhnykh
9148a1def4
chore: sync .cursor from suite
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
2026-05-05 01:08:49 +03:00
Oleksandr Bezdieniezhnykh
191cdb80a6
chore: sync .cursor skills from suite
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
2026-05-03 17:43:27 +03:00
Oleksandr Bezdieniezhnykh
59244c1d24
chore: sync .cursor skills from suite
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
2026-04-29 17:03:57 +03:00
Oleksandr Bezdieniezhnykh
6dadb13198
chore: sync .cursor from suite
...
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
Made-with: Cursor
2026-04-25 19:45:03 +03:00
Oleksandr Bezdieniezhnykh
ed84af8797
Remove obsolete Woodpecker CI configuration for ARM builds. This deletion streamlines the pipeline by eliminating unused build steps and settings related to ARM architecture, which are no longer necessary.
ci/woodpecker/push/01-test Pipeline was successful
ci/woodpecker/push/02-build-push Pipeline was successful
2026-04-25 06:53:03 +03:00
Oleksandr Bezdieniezhnykh
fc10d5f120
Update Woodpecker CI configuration for Docker registry authentication
...
ci/woodpecker/manual/build-arm Pipeline was successful
Replaced HARBOR_USER and HARBOR_TOKEN with REGISTRY_USER and REGISTRY_TOKEN for improved clarity and consistency. Adjusted Docker login command and updated image tagging to reflect the new registry path under 'azaion'. This change enhances the pipeline's ability to authenticate and push images to the correct registry.
2026-04-21 20:37:38 +03:00
Oleksandr Bezdieniezhnykh
c2bde44da0
[AZ-205] Authenticate to Harbor before pushing build images
...
Add HARBOR_USER/HARBOR_TOKEN from Woodpecker secrets and a docker login
step before the existing build/push, so pipelines can push to the new
TLS-authenticated Harbor registry.
2026-04-20 04:10:43 +03:00
Oleksandr Bezdieniezhnykh
950073d703
[AZ-204] OCI revision labels + AZAION_REVISION env
...
Made-with: Cursor
2026-04-20 03:58:47 +03:00
Oleksandr Bezdieniezhnykh
1baa649540
[AZ-203] Parameterize registry host via REGISTRY_HOST secret
...
Pipeline reads $REGISTRY_HOST from the Woodpecker global secret
'registry_host' instead of hardcoding 'localhost:5000'. The full
host:port lives in the secret, so Harbor migration (AZ-205) becomes
one secret edit rather than editing every submodule pipeline.
Made-with: Cursor
2026-04-20 03:49:21 +03:00
Oleksandr Bezdieniezhnykh
1334eba63c
Sync .cursor from suite (autodev orchestrator + monorepo skills)
2026-04-18 22:04:27 +03:00
Oleksandr Bezdieniezhnykh
3418e1fcde
Refine coding standards and testing guidelines
...
- Updated coding rule descriptions for clarity and emphasis on readability, meaningful comments, and test verification.
- Adjusted thresholds for test coverage on business logic from 80% to 75%, aligning with the canonical reference in `cursor-meta.mdc`.
- Enhanced guidelines for handling skipped tests, emphasizing the need for investigation and classification.
- Introduced completeness audit requirements for research decomposition to ensure thoroughness in addressing problem dimensions.
2026-04-17 20:28:37 +03:00
Oleksandr Bezdieniezhnykh
6ca317e830
Allow manual CI builds
...
ci/woodpecker/manual/build-arm Pipeline failed
Made-with: Cursor
2026-04-12 05:41:33 +03:00
Oleksandr Bezdieniezhnykh
badc5fa862
Update Woodpecker CI configuration to trigger on push events
2026-04-12 05:10:44 +03:00
Oleksandr Bezdieniezhnykh
09117f90b5
Sync .cursor from detections
2026-04-12 05:05:11 +03:00
Oleksandr Bezdieniezhnykh
fddf1b8706
CI: main tag without prefix
...
Made-with: Cursor
2026-04-12 04:12:07 +03:00
Oleksandr Bezdieniezhnykh
8229396426
Remove Woodpecker CI configuration file
2026-04-12 04:00:02 +03:00
Oleksandr Bezdieniezhnykh
1163612e85
update woodpecker add dev branch
...
Made-with: Cursor
2026-04-11 20:40:33 +03:00
Oleksandr Bezdieniezhnykh
f9621e99e2
Refactor tile handling and enhance CORS settings
2026-04-09 13:27:59 +03:00
Oleksandr Bezdieniezhnykh
f08058ea9c
Add CORS configuration and tile handling improvements
2026-03-26 00:34:42 +02:00
Anton Martynenko
604f0e070d
documentation
2025-11-20 12:41:07 +01:00
Anton Martynenko
bf2030e3c6
improved zip file
2025-11-20 12:32:56 +01:00
Anton Martynenko
bc7998eaf7
folders inside zip file
2025-11-20 12:28:27 +01:00
Anton Martynenko
05f6934ca6
tests cleanup
2025-11-20 12:23:26 +01:00
Anton Martynenko
661396554f
zip file for tiles
2025-11-20 12:17:57 +01:00
Anton Martynenko
9048a7b3ec
cleanup
2025-11-19 18:27:35 +01:00
Anton Martynenko
48ebad0609
less logs
2025-11-19 18:18:19 +01:00
Anton Martynenko
eff7ca4dba
better geo fences and points on the map
2025-11-19 17:59:52 +01:00
Anton Martynenko
a148df1697
fix warnings
2025-11-19 17:40:12 +01:00
Anton Martynenko
d122497b50
geo fences - wip
2025-11-19 17:26:23 +01:00
Anton Martynenko
5974b0c589
api /api/satellite/tiles/latlon
2025-11-19 13:12:26 +01:00
Anton Martynenko
b66d3a0277
parallel processing for routes and regions
2025-11-19 13:01:30 +01:00
Anton Martynenko
7f33567632
change how tiles are stored
2025-11-19 12:17:27 +01:00
Anton Martynenko
7a32ed5110
more tests
2025-11-18 19:14:12 +01:00
Anton Martynenko
f8798cd3d3
more complex route
2025-11-01 17:24:59 +01:00
Anton Martynenko
11395ec913
route stitching
2025-11-01 16:54:46 +01:00
Anton Martynenko
8714a4817d
route in progress, region stitching is disabled by default
2025-11-01 15:55:41 +01:00
Anton Martynenko
b532f1335e
updated plan - routes
2025-11-01 15:32:52 +01:00
Anton Martynenko
96ab109277
add route description
2025-11-01 15:25:44 +01:00
Anton Martynenko
f13f3eea6b
improve retries
2025-10-29 15:07:20 +01:00
Anton Martynenko
250d13c62e
add test for zoom 18 and 500x500 meters image
2025-10-29 14:54:33 +01:00
Anton Martynenko
afd83ba8ae
tiles are cached and reused properly
2025-10-29 14:42:54 +01:00
Anton Martynenko
caa30e5017
tiels are cached and reused properly
2025-10-29 11:57:50 +01:00
Anton Martynenko
72eea71507
added stitching
2025-10-29 11:21:59 +01:00