Keep the auto-run's target where the player is allowed to stand

Oliver's v369 log ("vieeel besser") showed two misses with the auto-run
heading to x 6.5 and 8.7, far outside the frame he is held in. Since the
dip ends at the bounce, a hard cross-court topspin ball drifts sideways
long enough that its comfort point lies off the court; intercept had no
lateral bound, and its last-resort target was never checked at all
(headless: x 14.8). Candidates now respect xLimit — a kicking ball is
taken earlier, on the rise — and the final target is clamped. v370.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5.5 committed 2026-10-14 13:46:53 +02:00
1 parent e25047ed0c
commit 8e4b298d92
4 files changed
+53 -6

No files matched your search

+13
View File
@@ -5502,6 +5502,19 @@ planner that rolls a bounce forward switches at the same moment (physics, `inter
approach, quality by distance from the sweet spot. That is a separate decision. The timed ring still
returns 92-98%. 162 tests, nine seeds.
### v369's phone verdict: "vieeel besser" — and one planning bug the topspin fix exposed (v370)
His v369 log against THE BRUTE: long clean rallies. His flicks now scatter around the centre (q = 1 for
most; the misses are ordinary ±50-90 ms timing, both directions). That confirms the v368 revert: no
offset is left. One new pattern: two misses where the auto-run was heading to `runTo` x 6.51 and 8.73,
far outside the frame the player is held in (`xLimit`, ~4.3 m on a phone). Since the dip ends at the
bounce, a hard cross-court topspin ball landing just inside the line drifts on sideways long enough that
its comfort point lies off the court. Two things were wrong. `intercept` had no lateral bound on any
candidate. And its last resort (`deepest`, "run at the deepest hittable point") was never checked for
reach at all; headless it planned to x 14.8. Every candidate now respects `xLimit`, so a kicking ball is
taken earlier, on the rise, while it is still inside. The final target is clamped too, so an unreachable
ball still gets a run to the nearest legal spot. Test: his ball (hard cross-court, lands at 3.3, kicks
out). Without the fix the target is 14.8 m; with it the run stays in bounds and he returns it.
# OPEN — leftovers, in rough priority order
Nothing here is broken; these are known gaps and unverified risks.