Files
NODEDC_MISSION_CORE/docs/adr/0025-e32-full-replay-and-exclusive-point-ownership.md
T

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.