mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 08:31:13 +00:00
cde237e236d576eec83d880fa28bc0193db514b8
Batch 38 (cycle 1) lands the two upload-side prerequisites the upcoming AZ-319 TileUploader needs to authenticate per-flight sessions against the parent suite's D-PROJ-2 ingest contract. AZ-317 FlightStateGate: - confirm_on_ground() defence-in-depth gate atop ADR-004 process isolation; fail-closed for UNKNOWN, IN_FLIGHT, TAKING_OFF, LANDING, and source-failure (mapped to UNKNOWN with original exception preserved on __cause__). - ERROR log on refusal, INFO log on pass, single source call per invocation (no polling, no retry). AZ-318 PerFlightKeyManager: - Per-flight ephemeral Ed25519 keypair via the project-pinned cryptography library; sign(payload) -> 64-byte Ed25519 signature. - Best-effort zeroisation of a project-controlled bytearray mirror on end_session; OpenSSL-side buffer freed via dropped reference. - __del__ safety net with WARN log if end_session was missed. - start_session emits FDR kind=c11.upload.session.key.public so the safety officer can correlate flights with key fingerprints. - record_signature_rejection emits FDR + ERROR log on parent-suite ingest rejection (security-critical, never silently dropped). Shared C11 plumbing: - TileManagerError parent + 3 subclasses (FlightStateNotOnGroundError, SessionNotActiveError, SignatureRejectedError envelope). - FlightStateSignal (str, Enum) and PublicKeyFingerprint DTOs. - FlightStateSource Protocol on c11_tile_manager.interface. - runtime_root.c11_factory factories for both new services. - Two new FDR kinds registered in fdr_client.records central KNOWN_PAYLOAD_KEYS; AZ-272 schema-roundtrip fixtures added in lockstep so the central test stays green. Tests: 26 new + 2 fixture additions; full suite 1384 passed, 80 skipped (documented Docker / Tier-2 / CUDA gates). Code review: PASS_WITH_WARNINGS — 2 Low findings documented in _docs/03_implementation/reviews/batch_38_review.md (dev-host vs operator-workstation perf bound; spec text named StrEnum but project pins Python 3.10). Co-authored-by: Cursor <cursoragent@cursor.com>
gps-denied-onboard
Companion onboard system for GPS-denied UAV navigation. Detailed design and architecture documentation lives under _docs/.
Quick links
- Problem statement:
_docs/00_problem/problem.md - Architecture:
_docs/02_document/architecture.md - Module layout (file ownership):
_docs/02_document/module-layout.md - Component docs:
_docs/02_document/components/ - Test specs:
_docs/02_document/tests/ - Deployment:
_docs/02_document/deployment/
Local development
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest -q tests/unit/
For full Tier-1 integration via Docker, see _docs/02_document/deployment/containerization.md.
Build matrix
Four binaries built from this codebase: airborne, research, operator-tooling, replay-cli. CMake BUILD_* flags gate component inclusion per binary — see cmake/build_options.cmake and _docs/02_document/module-layout.md § Build-Time Exclusion Map.
Description
Languages
Markdown
100%