# Lappy v0.8.1

Track timing uses a 20 m default corridor and confirms a continuous outside excursion for at least one second of both GPS and arrival time. Returning inside clears the pending excursion. Rejected positions cannot contribute gates, reference traces or delta. Existing clock, missing-sample, latency, quality, wrong-way and shortcut protections remain active.

An invalid circuit lap is saved once while the session remains open. Good position continuity and a fresh finite forward S/F crossing start the next lap automatically. Invalid laps cannot update PBs or reference traces. Explicit disarm still stops the session; P2P invalidations still require rearming. Both themes show AUTO RESTART AT S/F during circuit recovery.

Recorded courses can reconnect confirmed movement within 10 m of the last trusted position after a stationary/creep hold. Stationary fixes alone cannot add route distance or manufacture a finish. Larger unexplained offsets remain an unresolved motion break and prevent saving.

Session controls now distinguish sample gaps, poor-quality pauses, clock changes, arrival interruptions, stream resets, position jumps, motion joins, motion breaks and missing route sections. JSON exposes separate per-cause counts and route-break totals; VBO comments preserve the typed events. Old archives report unavailable recording diagnostics as null. The existing gaps field and its sample_gaps alias refer to archive timing gaps over 500 ms; recorder sample-gap events use the existing 250 ms recon threshold.

New sessions identify timing policy 2. Course codecs and identities stay at policy 1. Previously saved 15 m defaults receive the 20 m runtime tolerance without rewriting their geometry, IDs, PBs or references. New recordings also retain the legacy codec default and use the 20 m effective timing corridor. Gate widths remain independent.

Validation includes all nine November 7 afternoon archives (64,868 samples), stationary replay and synthetic spikes, sustained excursions, next-lap recovery, real interruptions, archive controls/counts, simulator interactions and target stack checks. The two timed field archives end at their original v0.8.0 invalidation, so they cannot establish complete field laps. CUSTOM 02's first two false breaks reconnect; a later roughly 20 m position change remains blocked because movement evidence does not justify joining it.
