Files
gps-denied-onboard/.planning/STATE.md
T
Yuzviak a11ed15187 docs: add Phase 1 ADRs and update PROJECT.md with completed decisions
ADR 0002: hexagonal/ports-and-adapters architecture — components/ layout,
  protocol.py per component, composition root, core/ for concentrated math.
ADR 0003: @dataclass(slots=True, frozen=True) on hot path; Pydantic retained
  only at REST/config/DB boundaries. Pose/GPSPoint migration deferred to Phase 2.
ADR 0004: Stage 2 as independent iteration — own phases 1-6, own requirements,
  stage1 code treated as MVP starting capital.

PROJECT.md: Stage 2 Key Decisions updated from Pending → Accepted with Phase 1
  implementation notes, deferred work list, and final architecture summary.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 09:23:09 +03:00

4.6 KiB
Raw Blame History

gsd_state_version, milestone, milestone_name, status, last_updated, last_activity, progress
gsd_state_version milestone milestone_name status last_updated last_activity progress
1.0 v2.0 Stage 2 — Hexagonal architecture + try02 idea integration + real-flight fixture phase_1_complete 2026-05-11T00:00:00Z 2026-05-11 — Phase 1 complete; 01-08 composition root + YAML config shipped; 216/216 tests green
total_phases completed_phases total_plans completed_plans percent
6 1 8 8 100

Project State

Project Reference

See: .planning/PROJECT.md (updated 2026-05-10)

Core value: Flight controller must receive valid MAVLink GPS_INPUT at 5-10Hz with position accuracy ≤50m for 80% of frames — without this, the UAV cannot navigate in GPS-denied airspace. Current focus: Stage 2 / Phase 1 — Hexagonal Refactor & Composition Root

Current Phase

Phase: 1 — Hexagonal Refactor & Composition Root (COMPLETE) Next phase: Phase 2 — Acceptance Criteria + Test Taxonomy + Observability Spine

Roadmap Summary

Stage 1 (v1.0 — archived under .planning/archive/v1.0/)

Treated as MVP starting capital, not active backlog. ESKF + cuVSLAM/ORB VO + GPR + MAVLink + 195 passing tests + 8 SITL skipped. Refactoring is allowed and expected.

Stage 2 (v2.0 — current iteration, Phases 16)

Phase Name Status
1 Hexagonal Refactor & Composition Root Complete (8/8 plans, 216 tests green)
2 Acceptance Criteria + Test Taxonomy + Observability Spine Pending
3 Safety Anchor State Machine & Geometry-Gated Verifier Pending
4 Conditional Multi-Scale VPR + Flight Data Recorder Pending
5 MAVLink Source-Aware Output & Spoofing/Blackout Handling Pending
6 Real-Flight Fixture (Azaion 10.05.2026) + CLI + Per-Env Docker Pending

Key Files

  • .planning/PROJECT.md — Stage 2 project context
  • .planning/REQUIREMENTS.md — 52 Stage 2 requirements with traceability
  • .planning/ROADMAP.md — Stage 2 roadmap, 6 phases
  • .planning/archive/v1.0/ — Stage 1 historical record (PROJECT/REQUIREMENTS/ROADMAP/phases)
  • .planning/codebase/ — codebase map (ARCHITECTURE, CONCERNS, STACK, etc.)
  • _docs/01_solution/solution.md — authoritative architecture spec
  • _docs/00_problem/acceptance_criteria.md — to be rewritten with formal AC-1.x (Phase 2)

Session Notes

  • 2026-04-01 — Project initialized; Stage 1 brownfield scaffold (~2800 lines)
  • Stage 1 complete — 195 passing + 8 SITL skipped tests, all 7 phases shipped, archived to .planning/archive/v1.0/
  • 2026-05-10 — Stage 2 opened as independent iteration with own phase numbering (16); 52 requirements drafted
  • 2026-05-10 — Stage 2 ROADMAP.md created; 100% requirement coverage; traceability populated in REQUIREMENTS.md
  • Stage 2 strategy: refactor stage1 working code to hexagonal layout, re-implement try02 concepts (NOT layout details), formalize AC, add Azaion real-flight fixture
  • Code from stage1 is MVP — refactoring is allowed and expected; no regression in 195 stage1 tests is the floor
  • 2026-05-11 — Phase 1 complete: Plans 01-01 through 01-08 executed; 216/216 tests passing; ARCH-01..07 all satisfied

Stage 2 Phase Dependency Order

Phase 1 (ARCH refactor — Protocol surfaces stabilize first)
   ↓
Phase 2 (AC + TEST taxonomy + structlog spine)
   ↓
Phase 3 (SAFE state machine + VERIFY anchor gates)
   ↓
Phase 4 (Conditional VPR + FDR — needs trigger semantics from SAFE)
   ↓
Phase 5 (MAVOUT — source labels + spoofing + blackout — needs SAFE labels + FDR audit)
   ↓
Phase 6 (FIXTURE — Azaion real-flight + CLI + per-env Docker — exercises everything end-to-end)

Current Position

Phase: 1 — Hexagonal Refactor & Composition Root Plan: 08 (COMPLETE — final plan of phase) Status: Phase 1 complete — all 8 plans executed, 216/216 tests green, ARCH-01..07 satisfied Last activity: 2026-05-11 — Plan 01-08 complete; build_pipeline factory + RuntimeConfig + YAML config shipped

Key Decisions (Phase 1)

  • ARCH-01: components/{vio,satellite_matcher,gpr,mavlink_io,anchor_verifier,safety_state,flight_recorder,coordinate_transforms}/ created with protocol.py + impls
  • ARCH-02: hot_types migration deferred to Phase 2 (Pydantic retained for 216-test stability)
  • ARCH-03: pipeline/composition.py build_pipeline(env) as explicit DI root
  • ARCH-04: core/ math files retained as single files (eskf, factor_graph, coordinates, chunk_manager, recovery, rotation)
  • ARCH-05: typing.Protocol throughout; orchestrator.py has zero concrete adapter imports
  • ARCH-06: config/{jetson,x86_dev,ci,sitl}.yaml + RuntimeConfig.env + YamlConfigSettingsSource
  • ARCH-07: 216 passed / 8 skipped / 0 failed (baseline was 216+8 skipped)