mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-22 21:01:13 +00:00
[AZ-335] C1 warm-start hint persistence + F8 reboot recovery wiring
Adds JsonSidecarWarmStartHintStore (atomic JSON + SHA-256 sidecar via AZ-280) inside c1_vio, plus the cross-strategy WarmStartWiredStrategy wrapper + prime_warm_start_from_disk / prime_warm_start_from_fc hooks at runtime_root. AC-7 post-reset covariance inflation and AC-8 "no fake confidence" baseline floor are enforced at the wiring layer so no strategy module needed edits. Adds three c1_vio config fields (warm_start_store_dir, warm_start_save_period_frames, post_reset_covariance_inflation_factor) and registers the new FDR kind vio.warm_start. 34 unit tests cover all 10 ACs + 3 NFRs. Verdict PASS_WITH_WARNINGS — see _docs/03_implementation/reviews/batch_56_review.md for the four non-blocking documentation findings (F1 cold-start log kind shorthand, F2 strategy-frame pose semantics, F3 dev-hardware perf smoke, F4 runtime_root importing c1-internal _facade_spine for shared FDR conventions). Closes AZ-335; depends on AZ-528 (batch 55). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -47,6 +47,28 @@ KNOWN_PAYLOAD_KEYS: Final[dict[str, frozenset[str]]] = {
|
||||
"vio.health": frozenset(
|
||||
{"state", "consecutive_lost", "bias_norm", "strategy_label", "frame_id"}
|
||||
),
|
||||
# AZ-335 / E-C1: emitted by the warm-start wiring on every successful
|
||||
# `prime_warm_start_*` invocation (F2 takeoff load, F8 reboot reload,
|
||||
# cold-start fall-through). Exactly ONE record per prime call.
|
||||
# `source` is one of "f2_takeoff_fc" | "f8_reboot_disk" |
|
||||
# "cold_start_no_hint" — distinguishes the three runtime paths so
|
||||
# post-flight forensics can answer "did this flight reuse a prior
|
||||
# hint?". `bias_norm` is the L2 norm of the loaded hint's accel||gyro
|
||||
# bias (None on cold start, since there is no hint). `staleness_ns`
|
||||
# is the monotonic-ns delta between hint capture and prime time
|
||||
# (None on cold start). `pre_reboot_covariance_norm` is the AC-8
|
||||
# baseline carried alongside the hint on the F8 path (None on F2
|
||||
# and cold start, since the wiring's covariance floor is only
|
||||
# enforced on the F8 reload path).
|
||||
"vio.warm_start": frozenset(
|
||||
{
|
||||
"source",
|
||||
"strategy_label",
|
||||
"bias_norm",
|
||||
"staleness_ns",
|
||||
"pre_reboot_covariance_norm",
|
||||
}
|
||||
),
|
||||
"state.tick": frozenset({"frame_id", "fused_pose", "covariance_2x2", "estimator_label"}),
|
||||
"tile_match": frozenset({"frame_id", "tile_id", "score", "match_count", "ransac_inliers"}),
|
||||
"overrun": frozenset({"producer_id", "dropped_count"}),
|
||||
|
||||
Reference in New Issue
Block a user