Files
Oleksandr Bezdieniezhnykh bf13549b32
ci/woodpecker/push/02-build-push Pipeline failed
[autodev] Update configuration and documentation for cycle-1
- Enhanced `.env.example` with detailed CMake build flags and replay-mode strategy flags for development and CI environments.
- Updated `.gitignore` to include a new deploy rollback bookmark.
- Revised `_docs/_autodev_state.md` to reflect the current task status and steps.
- Added new lessons to `_docs/LESSONS.md` regarding testing and architectural improvements.
- Documented changes in `_docs/02_document/deployment/ci_cd_pipeline.md` to reflect the relaxed OpenCV version pin.
- Updated test data documentation in `_docs/02_document/tests/test-data.md` to clarify fixture usage and paths.

This commit continues the cycle-1 documentation sync and addresses various configuration updates for improved clarity and functionality.
2026-05-20 08:05:35 +03:00

6.4 KiB
Raw Permalink Blame History

Structural Snapshot — 2026-05-20 (cycle-1 close)

Baseline snapshot for future retros. Captures the component / import / contract topology at end of cycle 1 so cycle 2 retro can compute deltas without re-deriving from source.

Component Inventory

# Component Path Strategy slots (registered) Notes
1 C1 — VIO src/gps_denied_onboard/components/c1_vio/ klt_ransac (operational default), okvis2 (BLOCKED via AZ-332→AZ-592), vins_mono (BLOCKED via AZ-333→AZ-593) Three strategies behind _STRATEGY_REGISTRY; airborne_bootstrap registers all 3 with BUILD_* gating
2 C2 — VPR src/gps_denied_onboard/components/c2_vpr/ ultra_vpr (production default), megaloc, mixvpr, selavpr, eigenplaces, salad, netvlad All implemented; secondaries behind BUILD_* flags per ADR-002
3 C2.5 — Re-rank src/gps_denied_onboard/components/c2_5_rerank/ inlier_based_reranker Single strategy
4 C3 — Matcher src/gps_denied_onboard/components/c3_matcher/ disk_lightglue (default), aliked_lightglue, xfeat Three strategies
5 C3.5 — AdHoP src/gps_denied_onboard/components/c3_5_adhop/ adhop_refiner (production), passthrough (baseline) Conditional refinement
6 C4 — Pose src/gps_denied_onboard/components/c4_pose/ opencv_gtsam (production) D-CROSS-LATENCY-1 hybrid trigger lives here
7 C5 — State src/gps_denied_onboard/components/c5_state/ gtsam_isam2 (production), eskf_baseline (engine-rule baseline) iSAM2 + IncrementalFixedLagSmoother
8 C6 — Tile cache src/gps_denied_onboard/components/c6_tile_cache/ Factory-based (no _STRATEGY_REGISTRY entry) Postgres 16 + filesystem + FAISS HNSW
9 C7 — Inference src/gps_denied_onboard/components/c7_inference/ tensorrt, pytorch_fp16, onnx_trt_ep (selected via INFERENCE_BACKEND env) Factory-based
10 C8 — FC adapter src/gps_denied_onboard/components/c8_fc_adapter/ ardupilot_plane (signed MAVLink), inav (MSP2) Selected via GPS_DENIED_FC_PROFILE
11 C10 — Provisioning src/gps_denied_onboard/components/c10_provisioning/ n/a (operator-only) C10 + C11 + C12 ship in operator-orchestrator image
12 C11 — Tile Manager src/gps_denied_onboard/components/c11_tilemanager/ n/a (operator-only) BUILD_C11_TILE_MANAGER=OFF on airborne (ADR-004)
13 C12 — Operator Orchestrator src/gps_denied_onboard/components/c12_operator_orchestrator/ n/a (operator-only) Includes FlightsApiClient (AZ-489) + PostLandingUploadOrchestrator + OperatorReLocService
14 C13 — FDR src/gps_denied_onboard/components/c13_fdr/ Factory-based Writer thread + segment rotation + 64 GB cap + flight header/footer
15 helpers/runtime_root src/gps_denied_onboard/helpers/, src/gps_denied_onboard/runtime_root/ n/a — composition root + cross-cutting helpers Hosts compose_root, airborne_bootstrap, operator_bootstrap, _STRATEGY_REGISTRY, replay branch, factory modules

Source Size

Scope Python LoC
src/ (total) 61,071

Import Graph Health

  • Cycles in component import graph: 0 (verified across batches 8892 cumulative reviews — no back-edges introduced).
  • Composition seam: runtime_root.airborne_bootstrap (single composition root for airborne binary) + runtime_root.operator_bootstrap (single composition root for operator-orchestrator binary). Both pull from per-component *_factory modules under runtime_root/.

Contract Files

Path Purpose Status
_docs/02_document/contracts/shared_fdr_client/fdr_record_schema.md FDR record envelope (v1.3.0) Production
_docs/02_document/contracts/shared_fdr_client/fdr_client_protocol.md FDR client API surface Production
_docs/02_document/contracts/shared_log_bridge/log_record_schema.md Log record schema (v1.0.0) Production
_docs/02_document/contracts/shared_satellite_provider_ingest/ D-PROJ-2 ingest endpoint placeholder Planned (parent-suite work)
_docs/02_document/contracts/shared_flights_api/ C12 → flights REST DTO Production (consumed by AZ-489)

Contract coverage % vs public-API symbols is not computed in this snapshot (no public-API inventory exists yet). Recommend adding the inventory + coverage metric as a cycle-2 follow-up — the same effort that lands architecture_compliance_baseline.md per Improvement Action #3.

Build Track Coverage (per ADR-002 + ADR-011)

Binary Composition root Strategies linked (production) BUILD_* flags
Airborne (companion-tier1 Tier-1 / companion-jetson Tier-2) airborne_bootstrap C1=klt_ransac, C2=ultra_vpr, C2.5=inlier_based_reranker, C3=disk_lightglue, C3.5=adhop_refiner, C4=opencv_gtsam, C5=gtsam_isam2, C7=tensorrt/pytorch_fp16, C8=ardupilot_plane/inav BUILD_VINS_MONO=OFF, BUILD_SALAD=OFF, BUILD_C11_TILE_MANAGER=OFF, BUILD_DEV_STATIC_KEY=OFF, BUILD_STATE_ESKF=OFF; replay flags BUILD_VIDEO_FILE_FRAME_SOURCE=ON, BUILD_TLOG_REPLAY_ADAPTER=ON, BUILD_REPLAY_SINK_JSONL=ON (ADR-011)
Research (lab Jetson IT-12) airborne_bootstrap with research flags airborne contents + every non-default strategy linked All BUILD_* flags ON except BUILD_DEV_STATIC_KEY
Operator-Orchestrator operator_bootstrap C10, C11 (TileDownloader + TileUploader), C12 (FlightsApiClient, PostLandingUploadOrchestrator, OperatorReLocService) BUILD_C11_TILE_MANAGER=ON

Process Leftovers (open at snapshot time)

  • _docs/_process_leftovers/2026-05-11_d_cross_cve_1_opencv_pin_deferred.md — OPEN, gtsam numpy-2 unblock pending.

Cycle-2 Delta Targets

When cycle 2 closes, compare against this snapshot:

  • Component count change — target 0 (no new components mid-feature-cycle; if AZ-595 or follow-ups add a component, document why).
  • Source LoC change — informational; rapid growth flagged for sub-component refactor review.
  • Cycles in import graph — must stay 0; any new cycle is a regression and surfaces a Critical finding.
  • _STRATEGY_REGISTRY keys — should grow by 02 (only when a new strategy lands per ADR-002).
  • Contract files — D-PROJ-2 ingest moves from "placeholder" to "production" if parent-suite ships its endpoint.