104 lines
6.1 KiB
Markdown
104 lines
6.1 KiB
Markdown
# Full-ring continuity and live-pass lifetime
|
||
|
||
## Scope and evidence
|
||
|
||
Owner requested review of the latest full ring, removal of distance-triggered
|
||
termination, and removal of the recorded/live pass chooser from operator setup.
|
||
Full-route acquisition and its quality gates are deliberately unchanged.
|
||
|
||
The completed study is `0324337e-b590-4561-b19a-8fbc7835b888`, captured on
|
||
2026-09-21. This is an audit of immutable production decisions, not a numerical
|
||
rerun, new capture, or absolute-position survey. The operator reports a start
|
||
approximately 20 m before the original seam and a full circular walk.
|
||
|
||
Private evidence is retained under
|
||
`.runtime/audits/2026-09-21-ring-002-unbounded/`: audit script, per-check results,
|
||
UTC/monotonic audit bounds, input SHA-256 inventory and test logs. Every study
|
||
artifact, the raw MQTT capture, metadata, clocks and capture manifest were hashed
|
||
before and after inspection; they were unchanged. Raw data remains outside Git.
|
||
|
||
## Production result
|
||
|
||
- Reference length: **579.9827 m**; cumulative live travel at termination:
|
||
**580.0751 m**. Recorded reason: **`distance-limit`**.
|
||
- Route search: **810/810** fits, complete; selected anchor at **555 m** along
|
||
the reference. Worker wall time **127.93 s**, followed by three fresh
|
||
confirmation checks. First tracking receipt: **12:35:02.035 UTC**.
|
||
- Fresh checks: **101 accepted / 101**, comprising two acquiring decisions and
|
||
**99 tracking decisions** (the third confirmation establishes tracking).
|
||
No reinitialization or recovery attempt; no recorded pose receipt gap.
|
||
- Overlap within the 0.5 m evaluation radius: **98.274–99.928%**, median
|
||
**99.644%**. Inlier surface RMSE: **0.1330–0.1580 m**, median **0.1416 m**.
|
||
- Successive accepted transform changes: maximum **0.0716 m / 0.2732°**.
|
||
These are consistency measurements, not surveyed pose errors.
|
||
- Local checks: median **0.450 s** worker time, maximum **0.900 s**;
|
||
median check interval **5.111 s**, maximum **6.564 s**. Maximum accepted
|
||
result age **3.112 s**, below the unchanged freshness gate.
|
||
- No LiDAR/pose queue overflow or oversize rejection. Camera preview dropped
|
||
1,271 superseded queue frames; this is a separate latest-frame video path,
|
||
not evidence of missing registration clouds.
|
||
- Last check at **12:43:25.926 UTC**, at sampled travel **578.815 m**, was
|
||
accepted and tracking. The distance branch terminated the study **238 ms**
|
||
later, at **12:43:26.164 UTC**. Capture finalization completed separately at
|
||
**12:44:51.043 UTC**. No scanner-stop command belongs to that distance branch.
|
||
|
||
The stop is therefore an execution-policy defect, not a failed geometric fit.
|
||
The reported black screen was not independently reproduced; saved aligned
|
||
geometry and the historical scene remain available. Browser telemetry is a
|
||
presentation-admission proxy, not a GPU-paint receipt.
|
||
|
||
## Correction and architecture boundary
|
||
|
||
`selected-live-route/v2` separates reference coverage from pass lifetime:
|
||
|
||
- The selected reference still defines where matching searches and validates.
|
||
- Distance remains telemetry. It does not consume a budget or end a pass,
|
||
including on detours, reversals, snakes or additional laps.
|
||
- New runs expose `maximum_distance_m: null` and `maximum_seconds: null`.
|
||
The live loop no longer reads a distance cap, including a retained legacy
|
||
finite field. Historical reports are not migrated or rewritten.
|
||
- Explicit study cancellation, source end/stop intent, changed source identity,
|
||
technical failure and service shutdown retain their existing semantics.
|
||
Quality/freshness loss still revokes tracking and invokes the existing
|
||
recovery path; removing the cap does not hold a false green status.
|
||
- Engineering recorded-replay bounds are unchanged. They limit an offline
|
||
experiment, not operator live travel.
|
||
|
||
Operator setup now contains project, full reference and direction, followed by
|
||
one **«Начать новый проход»** action. The entire **«Повторный проход»** section,
|
||
its mode switch, recorded-source fields and explanatory paragraphs are removed.
|
||
The workspace invokes only the live start and no longer mounts the recorded
|
||
comparison hook or requests its catalog. Existing saved comparisons and backend
|
||
engineering comparison APIs remain available. The admitted Design Guideline
|
||
Inspector and Button are reused; no new controls, styling or navigation added.
|
||
|
||
## Validation and limits
|
||
|
||
Functional fixtures exercise three traversals of the same route geometry with
|
||
travel equal to three reference lengths, including a finite legacy cap field.
|
||
They verify that source end, explicit study cancellation and source stop intent
|
||
still terminate and release leases without commanding capture. A second fixture
|
||
uses the real stationary bootstrap and causal gate, synthetic numeric fits, and
|
||
fresh accepted windows beyond three reference lengths. UI tests render the
|
||
actual settings, verify empty/busy/short-reference gates and the direct start.
|
||
|
||
Acceptance: **140 focused backend tests**, **888 frontend tests**, architecture
|
||
checks, TypeScript and the production build passed. The existing large-chunk
|
||
build warning remains. In-app browser QA on the canonical `8000` service verified
|
||
the empty form, full corrected reference, normal/expanded layouts, scrolling to
|
||
the start action and Escape. No start action was sent during browser QA. The
|
||
latest real ring result was left open, with its saved geometry visibly loaded.
|
||
The service was restarted while acquisition was idle and left healthy on `8000`,
|
||
with no Mission Core listener on `8765`.
|
||
|
||
SHA-256 comparison against the preceding handoff confirms unchanged entry
|
||
acquisition, full-route search/worker, stationary bootstrap, registration and
|
||
causal-tracking modules. Only lifetime policy/loop and the requested setup UI
|
||
were changed for this increment, alongside regression tests and this audit.
|
||
|
||
The observed physical ring supports continuous localization on this reference.
|
||
It does not establish absolute pose accuracy, unattended navigation/safety,
|
||
seasonal transfer, multi-kilometre capacity, or physical multi-lap acceptance.
|
||
No new device operation or change to route search, correction-map producers,
|
||
registration thresholds or scanner acquisition was made for this correction.
|