Batch 5b completes the helpers sweep for cycle-1 Step 13.
For each of the four remaining helpers (sha256_sidecar,
engine_filename_schema, ransac_filter,
descriptor_normaliser):
- Append "Cycle-1 operational reality" section to the
existing common-helpers/<NN>_*.md, documenting the
shipped interface, exception types, public constants,
determinism / validation invariants, and AZ-task
lineage.
Specific cycle-1 facts captured per helper:
- sha256_sidecar (AZ-280): single Sha256SidecarError
hierarchy, SIDECAR_SUFFIX public constant, sidecar
format is pure lowercase 64-char hex (no JSON),
verbatim ".sha256" suffix append, streaming digests
in 1 MiB chunks, verify-returns-False semantics for
missing payload vs. raise for missing sidecar,
byte-deterministic aggregate_hash with sorted-by-str
basenames.
- engine_filename_schema (AZ-281):
EngineFilenameSchemaError, ENGINE_SUFFIX and
ALLOWED_PRECISIONS public constants, strict model
validation ([a-z0-9_]+ ≤64 chars no __), dotted
version regex, non-bool sm validation, matches_host
ignores precision by design.
- ransac_filter (AZ-282 / AZ-623): RansacFilterError,
frozen RansacResult dataclass, cv2.setRNGSeed(0)
determinism, median-not-mean residual, NaN for empty
inliers, min_inliers is informational only,
filter_correspondences uses perspectiveTransform vs.
compute_reprojection_residual uses projectPoints, OK
to import se3_utils (both Layer 1).
- descriptor_normaliser (AZ-283 / AZ-338):
DescriptorNormaliserError, ALLOWED_DTYPES =
(float16, float32), float32 norm computation with
dtype-preserving cast-back, new
intra_cluster_normalise method for NetVLAD per-cluster
L2 (AZ-338), descriptor_metric returns
"inner_product" string.
Two contract files (descriptor_normaliser.md and
ransac_filter.md mention follow-up) need follow-up
minor revisions to match shipped surface; queued for
the contracts-folder sweep.
Bumps _docs/_autodev_state.md sub_step to
tests-doc-updates phase 9.
Co-authored-by: Cursor <cursoragent@cursor.com>
Batch 5a of the cycle-1 doc sync. For each of the four
foundation helpers (imu_preintegrator, se3_utils,
lightglue_runtime, wgs_converter):
- Append "Cycle-1 operational reality" section to the
existing common-helpers/<NN>_*.md, documenting what the
shipped implementation actually exposes vs. the design-
intent sketch (interfaces, exception types, public
constants, AZ-task lineage).
Specific cycle-1 facts captured per helper:
- imu_preintegrator (AZ-276): make_imu_preintegrator
factory, BMI088-class noise defaults, single
ImuPreintegrationError exception, actual return type is
PreintegratedCombinedMeasurements (consumer builds the
CombinedImuFactor), destructive reset_with_bias semantics,
first-sample-not-integrated dt=0 handling.
- se3_utils (AZ-277): SE3 = gtsam.Pose3 re-export,
Se3InvalidMatrixError, strict caller-orthogonalisation
invariant, _DEFAULT_ROT_ATOL=1e-6 and small-angle Taylor
cutoff for exp_map, is_valid_rotation predicate, strict
dtype=float64 everywhere.
- lightglue_runtime (AZ-278 / R14 fix): EngineHandle
Protocol-typed constructor, LightGlueRuntimeError +
LightGlueConcurrentAccessError, non-blocking concurrent-
access guard (raises rather than serialises),
match_batch equal-length precondition, composition-root
single-instance into C2.5 + C3.
- wgs_converter (AZ-279 + AZ-490): WEB_MERCATOR_MAX_LAT_DEG
and MAX_ZOOM constants, WgsConversionError, ECEF arrays
are ndarray(3,) float64, new horizontal_distance_m method
(AZ-490 takeoff-origin bounded-delta gate), slippy-map
tile math hand-rolled to match satellite-provider on-disk
layout.
Two contract files (imu_preintegrator.md and
wgs_converter.md) need follow-up minor revisions to match
shipped surface; queued for the next contracts-folder
sweep, noted inline in each helper's new section.
Also refresh D-CROSS-CVE-1 opencv-pin leftover replay
timestamp (8-min debounce — gtsam upstream state cannot
change in that window).
Bumps _docs/_autodev_state.md sub_step detail.
Co-authored-by: Cursor <cursoragent@cursor.com>
Transitioned the autodev state to phase 21, reflecting the completion of Step 5 and the drafting of Step 6 epics. Revised the architecture documentation to clarify the roles of the Tile Manager and its components, ensuring accurate representation of the system's operational flow. Updated glossary entries for Flight State and Operator to incorporate recent changes and enhance clarity on component interactions and responsibilities.
Keep VIO package and native bridge paths backend-neutral so BASALT remains an implementation choice rather than a component boundary.
Co-authored-by: Cursor <cursoragent@cursor.com>