Files
NODEDC_MISSION_CORE/docs/audits/2026-09-21-ring-continuity-and-live-lifetime.md
T

6.1 KiB
Raw Blame History

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.27499.928%, median 99.644%. Inlier surface RMSE: 0.13300.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.