Oleksandr Bezdieniezhnykh
02208c577e
[AZ-623] [AZ-625] Phase E: c282_ransac + c5 helpers; split handle work
Wire 4 stateless / cached helpers into airborne_bootstrap.build_pre_constructed:
c282_ransac_filter, c5_imu_preintegrator (cached on calibration path),
c5_se3_utils (helpers.se3_utils module as namespace handle), c5_wgs_converter.
The original AZ-623 5th deliverable (c5_isam2_graph_handle) hit an
unresolvable construction-order conflict between c4_pose (consumes the handle)
and c5_state (creates it inside build_state_estimator's tuple return) under
the umbrella's "MUST NOT touch any per-component factory signature" constraint.
Per AZ-623 spec's escalation gate, scope was split: AZ-625 captures the handle
ordering work; AZ-624 dependency edge updated to require both.
Tests: tests/unit/runtime_root/test_az623_pre_constructed_phase_e.py adds 7
tests covering AC-623.1..3 (4 new keys + correct types, IMU preintegrator
caching, operator-actionable error messages for empty / unreadable / malformed
calibration paths). Autouse stubs added to test_az619/620/621/622 so prior
phase tests remain isolated from new builders.
Quality gates: ruff format clean, ruff lint clean, 24/24 phase tests pass,
247/247 runtime_root + c5_state regression suite passes. Code review verdict
PASS_WITH_WARNINGS (3 Low findings; full report in
_docs/03_implementation/reviews/batch_94_review.md).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 09:20:28 +03:00
..
2026-05-13 19:42:46 +03:00
2026-05-11 01:33:42 +03:00
2026-05-11 03:00:49 +03:00
2026-05-11 03:00:49 +03:00
2026-05-11 01:33:42 +03:00
2026-05-11 02:03:36 +03:00
2026-05-11 03:23:33 +03:00
2026-05-11 02:03:36 +03:00
2026-05-11 03:00:49 +03:00
2026-05-11 03:00:49 +03:00
2026-05-11 03:00:49 +03:00
2026-05-11 03:23:33 +03:00
2026-05-11 01:33:42 +03:00
2026-05-11 03:23:33 +03:00
2026-05-11 02:03:36 +03:00
2026-05-11 01:33:42 +03:00
2026-05-11 02:03:36 +03:00
2026-05-11 03:23:33 +03:00
2026-05-11 02:03:36 +03:00
2026-05-11 03:38:58 +03:00
2026-05-11 03:38:58 +03:00
2026-05-11 03:38:58 +03:00
2026-05-11 03:52:07 +03:00
2026-05-11 03:52:07 +03:00
2026-05-11 03:52:07 +03:00
2026-05-12 04:30:14 +03:00
2026-05-12 23:11:49 +03:00
2026-05-12 23:55:50 +03:00
2026-05-12 10:13:21 +03:00
2026-05-12 10:20:21 +03:00
2026-05-12 10:33:37 +03:00
2026-05-12 04:21:44 +03:00
2026-05-12 17:05:41 +03:00
2026-05-12 18:01:50 +03:00
2026-05-13 04:01:37 +03:00
2026-05-12 19:29:11 +03:00
2026-05-12 20:37:41 +03:00
2026-05-13 07:01:14 +03:00
2026-05-13 19:42:46 +03:00
2026-05-13 05:48:52 +03:00
2026-05-13 06:13:36 +03:00
2026-05-13 08:48:53 +03:00
2026-05-13 00:09:53 +03:00
2026-05-13 04:20:47 +03:00
2026-05-13 02:37:14 +03:00
2026-05-13 02:37:14 +03:00
2026-05-13 05:00:16 +03:00
2026-05-13 19:42:46 +03:00
2026-05-13 19:42:46 +03:00
2026-05-13 19:42:46 +03:00
2026-05-13 21:30:25 +03:00
2026-05-13 21:30:25 +03:00
2026-05-12 04:44:31 +03:00
2026-05-12 09:56:45 +03:00
2026-05-14 01:11:09 +03:00
2026-05-14 02:40:01 +03:00
2026-05-14 03:30:46 +03:00
2026-05-12 05:25:35 +03:00
2026-05-13 22:44:22 +03:00
2026-05-13 22:31:56 +03:00
2026-05-13 23:52:54 +03:00
2026-05-14 00:39:29 +03:00
2026-05-13 21:47:07 +03:00
2026-05-12 05:31:27 +03:00
2026-05-12 06:22:40 +03:00
2026-05-12 05:43:33 +03:00
2026-05-14 04:10:34 +03:00
2026-05-14 04:10:34 +03:00
2026-05-14 04:10:34 +03:00
2026-05-12 05:52:36 +03:00
2026-05-14 04:10:34 +03:00
2026-05-11 10:32:14 +03:00
2026-05-14 05:01:14 +03:00
2026-05-14 05:01:14 +03:00
2026-05-11 05:35:20 +03:00
2026-05-11 05:51:23 +03:00
2026-05-11 06:07:45 +03:00
2026-05-11 06:20:01 +03:00
2026-05-11 07:06:38 +03:00
2026-05-11 10:12:30 +03:00
2026-05-11 07:13:44 +03:00
2026-05-11 06:53:22 +03:00
2026-05-16 09:02:33 +03:00
2026-05-11 04:17:59 +03:00
2026-05-11 04:28:14 +03:00
2026-05-11 04:17:59 +03:00
2026-05-11 04:47:44 +03:00
2026-05-11 04:47:44 +03:00
2026-05-11 04:47:44 +03:00
2026-05-11 05:06:56 +03:00
2026-05-11 05:06:56 +03:00
2026-05-12 05:10:01 +03:00
2026-05-14 05:33:20 +03:00
2026-05-14 05:33:20 +03:00
2026-05-14 11:55:33 +03:00
2026-05-14 20:04:37 +03:00
2026-05-14 09:01:04 +03:00
2026-05-14 21:41:39 +03:00
2026-05-14 09:50:51 +03:00
2026-05-16 16:22:44 +03:00
2026-05-16 17:18:01 +03:00
2026-05-16 17:54:00 +03:00
2026-05-16 18:10:46 +03:00
2026-05-16 17:54:00 +03:00
2026-05-16 17:54:00 +03:00
2026-05-16 18:10:46 +03:00
2026-05-16 18:10:46 +03:00
2026-05-17 07:12:24 +03:00
2026-05-17 07:12:24 +03:00
2026-05-17 07:49:17 +03:00
2026-05-17 07:49:17 +03:00
2026-05-17 07:12:24 +03:00
2026-05-17 07:49:17 +03:00
2026-05-17 14:48:45 +03:00
2026-05-17 15:10:20 +03:00
2026-05-17 15:28:39 +03:00
2026-05-17 15:43:06 +03:00
2026-05-17 08:26:16 +03:00
2026-05-17 08:26:16 +03:00
2026-05-17 08:26:16 +03:00
2026-05-17 15:43:06 +03:00
2026-05-17 16:46:49 +03:00
2026-05-17 16:46:49 +03:00
2026-05-17 16:46:49 +03:00
2026-05-17 16:46:49 +03:00
2026-05-17 17:09:37 +03:00
2026-05-17 17:09:37 +03:00
2026-05-17 17:09:37 +03:00
2026-05-17 17:09:37 +03:00
2026-05-17 17:33:43 +03:00
2026-05-17 17:33:43 +03:00
2026-05-17 17:33:43 +03:00
2026-05-17 17:33:43 +03:00
2026-05-17 18:01:55 +03:00
2026-05-17 18:01:55 +03:00
2026-05-17 18:01:55 +03:00
2026-05-17 18:01:55 +03:00
2026-05-16 17:18:01 +03:00
2026-05-16 17:18:01 +03:00
2026-05-17 18:14:00 +03:00
2026-05-13 19:42:46 +03:00
2026-05-12 02:53:58 +03:00
2026-05-13 02:37:14 +03:00
2026-05-13 23:23:22 +03:00
2026-05-13 23:37:04 +03:00
2026-05-14 00:51:19 +03:00
2026-05-14 03:03:16 +03:00
2026-05-16 05:33:56 +03:00
2026-05-16 12:58:38 +03:00
2026-05-17 08:42:12 +03:00
2026-05-17 09:00:55 +03:00
2026-05-17 09:08:48 +03:00
2026-05-17 09:52:05 +03:00
2026-05-17 12:08:02 +03:00
2026-05-17 13:40:07 +03:00
2026-05-17 14:19:08 +03:00
2026-05-19 06:23:15 +03:00
2026-05-19 06:35:47 +03:00
2026-05-19 06:47:05 +03:00
2026-05-19 08:56:04 +03:00
2026-05-19 09:20:28 +03:00