feat(planning): consolidate recorded-route localization and spatial scene

Preserve the completed teach-and-repeat laboratory stage: reference preparation, cascaded acquisition, local tracking and recovery, recording lifecycle, replay qualification, and persistent Rerun scene controls. Document the open grid-picking regression and Rerun upgrade contract. No autonomous driving or loop-closure optimization is claimed.
This commit is contained in:
DCCONSTRUCTIONS
2026-09-21 08:47:19 +03:00
parent be58d589e2
commit e515ab1b8c
189 changed files with 19074 additions and 758 deletions
@@ -7673,6 +7673,26 @@ test("spatial controls explain the bounded K1 calibration wait before point data
}
});
test("planning status extends only its current authoritative acquiring session", () => {
const state = runtimeState();
const spatialActivity = {sessionId: "data-session-001", label: "Привязка к эталону", detail: "Ожидание на месте.", busy: true};
const render = (current, activity = spatialActivity, controllerPatch = {}) => renderToStaticMarkup(createElement(K1SpatialControlsView, {
controller: {...acquisitionController(current), ...controllerPatch}, spatialActivity: activity,
}));
assert.match(render(state), /Привязка к эталону/);
assert.match(render(state), /Ожидание на месте/);
assert.doesNotMatch(render(state, {...spatialActivity, sessionId: "other-capture"}), /Привязка к эталону/);
for (const acquisitionState of ["awaiting_external_start", "starting", "awaiting_external_stop", "stopping", "finalizing"]) {
const current = structuredClone(state); current.acquisition.state = acquisitionState;
assert.doesNotMatch(render(current), /Привязка к эталону/);
}
const lost = structuredClone(state); lost.connection_supervisor = supervisor({control: true, data: false, dataPlaneState: "stalled"});
assert.doesNotMatch(render(lost), /Привязка к эталону/);
assert.doesNotMatch(render(state, spatialActivity, {physicalStopInFlight: true}), /Привязка к эталону/);
const cleanup = structuredClone(state); cleanup.acquisition.cleanup_pending = true;
assert.doesNotMatch(render(cleanup), /Привязка к эталону/);
});
test("contour health never promotes selection or replay metrics to live authority", () => {
const selectedOnly = {
phase: "starting",