sim separation + honest GT error lines + deploy-verification rule - #228
Conversation
- libs/retina-simulation → fix/aircraft-separation (ee7f2be): spawn poses resample away from live traffic and in-flight conflicts slow the later-created aircraft toward 70% of cruise — the hub-radial planner stacked traffic on the metro core, making association ambiguity a property of the simulator rather than of realistic traffic. - LiveAircraftMap: the matched-GT error line for an arc-only track now requires the arc to actually be present. Beam-gate suppression keeps the track entry but withholds its arc — the track's only map presence — so the midpoint fallback drew dashed yellow lines ending at empty ground. The GT dot stays; the line only draws with an honest endpoint. - CLAUDE.md: after deploying, verify on the environment's live map in a real browser; green tests don't cover the compose/env/frontend seams. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @jehanazad's task in 4m 43s —— View job Code Review
Findings1.
if (ac.position_source === POSITION_SOURCE_ARC_ONLY) {
const near = arcNearestPoint(ac, nodesByIdRef.current?.[ac.node_id], gtLat, gtLon);
if (near) return near.distKm;
}
return distanceKm(ac.lat, ac.lon, gtLat, gtLon); // ← dishonest midpoint fallbackWhen an arc-only track is beam-gate-suppressed this tick, 2. Minor: wasted work in
Other notes
|
The submodule branch was rebased onto its main and force-pushed; new tip 7c5f6f1 (old ee7f2be preserved at backup/aircraft-separation-ee7f2be). See offworldlabs/retina-simulation#10. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @jehanazad's task in 1m 10s —— View job Code Review
What changed since the last reviewOnly one new commit landed:
Still open from the previous review (unaddressed — file unchanged)
if (ac.position_source === POSITION_SOURCE_ARC_ONLY) {
const near = arcNearestPoint(ac, nodesByIdRef.current?.[ac.node_id], gtLat, gtLon);
if (near) return near.distKm;
}
return distanceKm(ac.lat, ac.lon, gtLat, gtLon); // ← dishonest midpoint fallbackWhen beam-gate suppression causes Minor (unchanged, low priority): Other notes
|
Three related fixes extracted from the droplet's deploy branch (
deploy/fixes-on-compose-rename), where they have been running on retina-test since 2026-08-21, now rebased cleanly onto main.Depends on offworldlabs/retina-simulation#10 merging first — this PR pins
libs/retina-simulationto7c5f6f1, the rebased tip of that PR'sfix/aircraft-separationbranch.What & why
libs/retina-simulationtofix/aircraft-separation: spawn poses resample away from live traffic, and in-flight conflicts slow the later-created aircraft toward 70% of cruise. The hub-radial planner was stacking traffic on the metro core, making association ambiguity a property of the simulator rather than of realistic traffic.LiveAircraftMap.tsx, the matched-GT error line for an arc-only track now requires the arc to actually be present. Beam-gate suppression keeps the track entry but withholds its arc (the track's only map presence), so the midpoint fallback drew dashed yellow lines ending at empty ground. The GT dot stays; the line only draws with an honest endpoint.The second commit re-pins the submodule from the original droplet tip
ee7f2beto7c5f6f1, the same change rebased onto retina-simulation's main (old tip preserved atbackup/aircraft-separation-ee7f2be).Testing
Frontend CI suite (node 20, matching
.github/workflows/ci.yml) on the rebased branch:npm run lint— cleannpm run typecheck— cleannpm test— 9 files, 95 tests, all passednpm run build— succeededBackend sim-path tests against the re-pinned submodule (
RADAR_TCP_PORT=13012for this droplet's known port flake):test_simulation.py test_metro_and_arcs.py test_stonesoup_metrics.py— 20 passed, 1 skipped.Rebase onto
origin/main(6b6fd3c) applied without conflicts.🤖 Generated with Claude Code