# Lappy v0.3.5 — moving reconnaissance recovery and unconditional exits

The 27 October morning run reproduced a v0.3.4 recovery dead end at 879.174 m: a short six-to-five-satellite dip caused a pause; normal movement of 12.569 m over 0.9 seconds exceeded its fixed 10 m recovery limit. Finish then refused the paused state while STOP demanded Finish.

- **STOP always ends capture**, independently of GPS, either marker, route length, gaps or a capacity fault. Incomplete geometry opens a stopped-recording view with Resume/Discard. It is never silently turned into a timing course.
- **CANCEL is visible on the recording screen** and exits capture without requiring Start or Finish. Discard removes the partial recovery state, including its old backup, without deleting saved courses/PBs or raw capture logs.
- Reconnaissance uses a valid 3D position and reported horizontal accuracy within 5 m. Satellite count and velocity accuracy no longer reject otherwise usable positions. Timed Drag/Track quality gates are unchanged.
- Short position interruptions recover using elapsed time, plausible movement and reported uncertainty. Larger holes are explicitly recorded as gaps; reception recovery continues capture instead of demanding a turnaround. A gapped recording cannot be saved as a valid course.
- Stopped partial recordings and normal shutdown checkpoints use a separate checksummed `recon.lpd` file. Startup exposes Resume Draft; fresh GPS is required before marking after resume. Storage failures are visible and do not prevent stopping/cancelling.
- Retain the 50 km geometry limit, 8,192 points, four-hour P2P attempts and the v0.3.4 validation-performance repair.

The original morning capture passes the new regression at the first Finish intent (1,296.040 m). The archived v0.3.4 code fails the same regression. A location-free derived fixture runs with the regular test suite; raw receiver identity/coordinates are not distributed.

See [implementation](IMPLEMENTATION_v0.3.5.md) and [device-check scope](HARDWARE_BENCH_v0.3.5.md). Field retesting is still required.
