mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-23 00:11:14 +00:00
17a0d074af
Wires the airborne composition root for replay-as-configuration (ADR-011):
- compose_root(config) branches on config.mode in {"live", "replay"}.
Live behaviour is unchanged; replay builds ReplayInputAdapter,
attaches JsonlReplaySink, and injects NoopMavlinkTransport.
- New private module runtime_root/_replay_branch.py holds the
replay-only strategy graph + build-flag gate + calibration loader.
- Config gains Config.mode (Literal["live","replay"]) plus
Config.replay sub-block with nested ReplayAutoSyncConfig that mirrors
the AZ-405 AutoSyncConfig DTO; YAML loader + ENV map updated.
Absorbs the AZ-400 transport-seam retrofit that AZ-401 strictly
required but AZ-400 had not delivered:
- New MavlinkTransport Protocol (write/bytes_written/close).
- NoopMavlinkTransport (replay; build-flag gated, idempotent close,
thread-safe byte counter).
- SerialMavlinkTransport (live, no-op restructure of existing pymavlink
byte path; encoder retrofit to actually USE it is the AZ-558
follow-up).
AZ-401 AC-9 (NoopMavlinkTransport.bytes_written > 0 after C8 encoders
run) is BLOCKED on AZ-558 — the encoder routing retrofit is out of
the AZ-401 task envelope (FORBIDDEN files: pymavlink_ardupilot_adapter,
msp2_inav_adapter). AZ-558 spec, batch_61_review.md, and the test's
@pytest.mark.skip rationale all carry the deferral reason.
Tests: 22 compose_root replay-branch tests + 17 transport tests.
Full regression: 2063 passed, 86 environment-skips, 1 documented
skip (AC-9 / AZ-558), 1 pre-existing flaky perf test deselected.
Co-authored-by: Cursor <cursoragent@cursor.com>
49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
"""Config loader + dataclass schemas (E-CC-CONF / AZ-269)."""
|
|
|
|
from gps_denied_onboard.config.loader import ENV_KEY_MAP, load_config
|
|
from gps_denied_onboard.config.schema import (
|
|
DEFAULT_FORBIDDEN_RECORD_KINDS,
|
|
KNOWN_FC_DIALECTS,
|
|
KNOWN_FC_STRATEGIES,
|
|
KNOWN_GCS_STRATEGIES,
|
|
KNOWN_REPLAY_PACES,
|
|
Config,
|
|
ConfigError,
|
|
FcConfig,
|
|
FdrConfig,
|
|
FdrWriterConfig,
|
|
GcsConfig,
|
|
LogConfig,
|
|
RecordKindPolicyConfig,
|
|
ReplayAutoSyncConfig,
|
|
ReplayConfig,
|
|
RequiredFieldMissingError,
|
|
RuntimeConfig,
|
|
TileSnapshotConfig,
|
|
register_component_block,
|
|
)
|
|
|
|
__all__ = [
|
|
"DEFAULT_FORBIDDEN_RECORD_KINDS",
|
|
"ENV_KEY_MAP",
|
|
"KNOWN_FC_DIALECTS",
|
|
"KNOWN_FC_STRATEGIES",
|
|
"KNOWN_GCS_STRATEGIES",
|
|
"KNOWN_REPLAY_PACES",
|
|
"Config",
|
|
"ConfigError",
|
|
"FcConfig",
|
|
"FdrConfig",
|
|
"FdrWriterConfig",
|
|
"GcsConfig",
|
|
"LogConfig",
|
|
"RecordKindPolicyConfig",
|
|
"ReplayAutoSyncConfig",
|
|
"ReplayConfig",
|
|
"RequiredFieldMissingError",
|
|
"RuntimeConfig",
|
|
"TileSnapshotConfig",
|
|
"load_config",
|
|
"register_component_block",
|
|
]
|