92 lines
3.1 KiB
Markdown
92 lines
3.1 KiB
Markdown
# ADR 0034: Lossless replay and diagnostic observation boundary
|
|
|
|
Date: 2026-07-30
|
|
Status: accepted and implemented
|
|
|
|
## Decision
|
|
|
|
The accepted K1 local-surface algorithm consumes one normalized, read-only
|
|
source view. Two immutable source schemas are admitted:
|
|
|
|
- camera-aligned `missioncore.e10-lidar-replay-pack/v1`;
|
|
- native-cadence, field-retaining `missioncore.lidar-replay-pack/v2`.
|
|
|
|
The normalized view carries exact source pack identity, artifact SHA-256,
|
|
session identity, representation, schema, native point offsets, map-frame XYZ,
|
|
host-monotonic timing and nearest-pose age. A replay-pack-v2 source additionally
|
|
retains RGBI/intensity provenance. The derivative never rewrites or disguises
|
|
one source as the other.
|
|
|
|
The lossless v2 builder uses two bounded passes over raw capture evidence. The
|
|
first pass freezes frame counts and scalar header/timing contracts. The second
|
|
pass preallocates and fills numeric arrays one decoded frame at a time, failing
|
|
closed if the source differs between passes. The strict reader decompresses
|
|
each NPZ member once before repeated integrity, field and logical-content
|
|
validation. Repeated on-demand decompression inside a frame loop is forbidden.
|
|
|
|
## Diagnostic observation derivative
|
|
|
|
E51 is separate from the persistent reconstruction and the E34 short-TTL
|
|
occupied/unknown layer. It may publish:
|
|
|
|
- temporal motion candidates derived from a bounded centroid history;
|
|
- current near-occupied proximity candidates from admitted E32 range;
|
|
- camera-owned semantics and semantic provenance;
|
|
- explicit current/held freshness and evidence conflict.
|
|
|
|
It may not publish:
|
|
|
|
- a dynamic object class;
|
|
- a collision state;
|
|
- free space from missing points;
|
|
- numeric semantic confidence when the upstream contract has none;
|
|
- command, navigation or safety authority.
|
|
|
|
A map-frame jump candidate rejects motion publication. Held evidence cannot
|
|
publish current proximity. Collision remains unavailable until the physical
|
|
vehicle body and LiDAR mount/extrinsic geometry are separately bound and
|
|
qualified.
|
|
|
|
## Resource boundary
|
|
|
|
All full-session Mac execution is sequential. The current 14-inch 2023 MacBook
|
|
Pro has 18 GiB RAM; replay build, strict validation, local-surface build and
|
|
test execution are never intentionally overlapped. Docker is not part of this
|
|
path. Port `8000` remains the canonical running Mission Core service.
|
|
|
|
## Accepted evidence
|
|
|
|
Full native replay:
|
|
|
|
```text
|
|
lidar-replay-pack-8fc0fb418578b8ee2ac88d502d2acbc63ae533437a9da14f1a9f9d8916f613ce
|
|
```
|
|
|
|
- 4,570 LiDAR frames;
|
|
- 4,598 pose frames;
|
|
- 10,751,258 points;
|
|
- exact live/replay equivalence passed;
|
|
- pose coverage 100%.
|
|
|
|
Full v2 local surface:
|
|
|
|
```text
|
|
k1-local-surface-61a0307497b1e9b32d5521f59aa853bce22d81def7ca4d3fc81273a4162e6d22
|
|
```
|
|
|
|
- 4,570/4,570 valid;
|
|
- zero stale-pose, insufficient-surface or fit-failure frames;
|
|
- pose-binding age 20.6421 ms p95.
|
|
|
|
E51:
|
|
|
|
```text
|
|
e51-motion-semantic-1abb7eb9940608fc5af95a1f318cadfbc42ac2412a8662b6622e000e03da1555
|
|
```
|
|
|
|
- 4,489/4,489 frames;
|
|
- 2,119,302/2,119,302 current occupied point rows preserved;
|
|
- 0.4148 ms frame-processing p95;
|
|
- 0.2969 MiB process peak-RSS growth;
|
|
- all acceptance checks passed.
|