93 lines
4.9 KiB
Markdown
93 lines
4.9 KiB
Markdown
# ADR 0025 — E32 full replay and exclusive point ownership
|
|
|
|
Date: 2026-07-27
|
|
|
|
Status: accepted for source-scoped diagnostic/shadow use
|
|
|
|
## Context
|
|
|
|
A5 defined `TrackGeometry v1` and `PointSlab`, but E29 did not retain the exact
|
|
frame-local point indices that produced each semantic and geometry result.
|
|
E32 therefore had to recover those indices without changing the frozen E29
|
|
thresholds, apply only the accepted E31/E30 corrections and prove that the
|
|
translated result had no hidden source loss.
|
|
|
|
The accepted E31 profile is limited to the immutable RAVNOVES00 source session.
|
|
It admits one normalized person self-mask, rejects a generic geometry mask and
|
|
binds two exact geometry self-corrections. The A3 human generation additionally
|
|
rejects geometry cluster `2622:4` as background/noise and retains `4147:3` as a
|
|
real occupied object.
|
|
|
|
## Decision
|
|
|
|
1. E32 recomputes E29 support indices using the exact E29 profile and immutable
|
|
camera, LiDAR, pose and local-surface inputs.
|
|
2. Every recomputed frame must equal the stored E29 frame before any E31/E30
|
|
correction is applied. A difference in any observation, cluster, metric,
|
|
policy or frame binding fails the replay closed.
|
|
3. E32 applies only:
|
|
- the admitted E31 person self-mask by normalized bbox centre;
|
|
- the two exact E31 geometry correction item locators;
|
|
- the complete immutable A3 human geometry dispositions.
|
|
4. The rejected generic E31 geometry mask is never applied. E29 thresholds are
|
|
never retuned and excluded points are never reclassified as free space.
|
|
5. `PointSlab` grants one owner to each published source point. When two E29
|
|
camera observations claim the same point, E32 uses a deterministic
|
|
non-threshold policy: smallest bbox, then higher detector score, lower track
|
|
id and lower observation ordinal. A track that retains points stays `agree`;
|
|
a track that loses all exclusive points becomes explicit `unknown`.
|
|
6. Camera-only and conflict observations cannot publish an E29 range derived
|
|
from support that failed the E29 qualification threshold. Their semantic
|
|
observation remains, but `metric_basis=unavailable` and `range_m=null`.
|
|
7. A held observation is published only when an earlier current observation
|
|
for the same track exists in the replay. A held observation without such
|
|
provenance is explicitly journalled and omitted instead of inventing
|
|
`held_from_frame_index`.
|
|
8. Compact storage uses deterministic `.npy` arrays for frame offsets,
|
|
frame-local source indices, map-frame float32 points and local owner
|
|
indices. The JSONL frame record retains the complete TrackGeometry table and
|
|
PointSlab reference. The public reader reconstructs and validates the exact
|
|
`TrackGeometryFrame`.
|
|
9. Every excluded or altered E29 product is written to
|
|
`e29-e32-changes.jsonl` with its source locator, before/after state, reason,
|
|
decision identity when applicable and affected claim count.
|
|
10. E32 remains diagnostic. It grants no command, navigation, traversability,
|
|
free-space or safety authority and does not modify the persistent map.
|
|
|
|
## Accepted result
|
|
|
|
The immutable result is
|
|
`e32-track-geometry-a14ca0e7fb3850ca0dfa3c41634e1b490a2d58ab74d101afc6d6921fbdb0e6fd`.
|
|
|
|
- 4,489 / 4,489 E29 frames reproduce exactly.
|
|
- Source availability remains 3,928 available and 561 unavailable frames.
|
|
- 20,513 semantic observations close as 20,119 published, 385 source-scoped
|
|
self-mask exclusions and 9 held observations without prior-current
|
|
provenance.
|
|
- 21,321 geometry clusters close as 21,318 published, two exact E31
|
|
self-corrections and one A3 human background/noise exclusion. The A3
|
|
object-present cluster remains published.
|
|
- 2,125,813 E29 qualified point claims close as 2,119,302 published rows,
|
|
2,050 explicitly excluded claims and 4,461 overlapping claims removed by
|
|
ownership arbitration.
|
|
- 709 semantic observations required point-ownership arbitration: 563 retained
|
|
`agree`; 146 became `unknown`.
|
|
- 1,558 ranges backed only by unqualified semantic support are withheld.
|
|
- E29/E32 conflict count remains 38 and no conflict observation changes. E32
|
|
is not presented as a detector-accuracy improvement.
|
|
- `agree` changes from 6,341 to 6,195, `single-source-camera` from 13,246 to
|
|
12,861, `unknown` from 888 to 1,025 and geometry-only from 21,321 to 21,318.
|
|
|
|
## Consequences
|
|
|
|
- A6 is complete as a reproducible, source-scoped TrackGeometry input for the
|
|
A7/E33 recorded-source-paced worker shadow.
|
|
- E33 receives a closed ownership and source-accounting contract instead of
|
|
ambiguous E29 point claims.
|
|
- The unchanged 38 conflicts and retained held observations remain perception
|
|
limitations. Runtime qualification must not describe them as corrected.
|
|
- The 146 conservative `agree → unknown` transitions are an intentional
|
|
consequence of exclusive ownership, not threshold degradation.
|
|
- A second source or changed mount must pass a new qualification; this E32
|
|
result cannot be transferred by assumption.
|