neon-sprawl/docs/plans
VinPropane e31cd2df68 NEO-24: freshen server position before target-select + surface divergence on HUD
Fix "Tab says denied even though I'm in range of beta": root cause is the
race between the 20 Hz move-stream sampler and the target-select POST. A
Tab press right after the capsule stops can be validated against the
server's last sampled position, which trails the visible capsule by
several meters.

Client-side fixes (server contract unchanged):

- TargetSelectionClient.set_freshness_kick(authority, player): before each
  POST /target/select, submit a move-stream with the current player
  position so the server's stored snapshot is as fresh as possible when
  the range check runs. Wired in main.gd; optional so tests without the
  wiring still pass (regression-covered).
- PlayerPositionLabel now shows a "srv: (x,y,z) Δ=<d>m age=<ms>" line
  populated from PositionAuthorityClient.authoritative_ack, so any
  residual client/server divergence is visible in the HUD and future
  reports can point at it directly.
- Two new tests: select POST kicks exactly one freshness stream with the
  current player position before POSTing, and the kick is a no-op when
  the wiring is absent.

Docs: plan Decision 5, review follow-up #2, manual QA section 5 and
section 1, and client README updated to describe the new behaviors.
2026-04-21 23:21:16 -04:00
..
E1M3-prototype-backlog.md chore: address E1.M3 docs review (Slice 3 anchor, Linear pointers) 2026-04-17 20:48:53 -04:00
NEO-5-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-6-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-7-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-8-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-9-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-10-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-11-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-12-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-13-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-14-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-15-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-16-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-17-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-18-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-19-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-20-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-22-implementation-plan.md NEO-22: Unit-test WASD locomotion pure helpers 2026-04-17 20:16:25 -04:00
NEO-23-implementation-plan.md NEO-23: add targeting HTTP API (TargetState v1, select intent) 2026-04-17 21:06:59 -04:00
NEO-24-implementation-plan.md NEO-24: freshen server position before target-select + surface divergence on HUD 2026-04-21 23:21:16 -04:00
NEON-29-implementation-plan.md NEON-29: Fix nav column steer ping-pong — path lookahead + air bee-line 2026-04-12 18:03:47 -04:00
internal-content-authoring.md chore: Epic 2 E2.M1 stub, content CI validation, doc follow-ups 2026-04-03 21:27:52 -04:00