chore: bump retina-tracker for the frame dt and gating fix (86cb9bq7p) - #271
Conversation
|
Claude finished @Babissimo's task in 1m 31s —— View job Code ReviewTodo list
SummaryThis PR is a single-line submodule pointer bump: Findings
RecommendationSafe to merge from this repo's side. The only outstanding verification is confirming the |
An out-of-order frame made dt negative, which made F P Fᵀ + Q non-positive-definite. The association gate tested only that S was invertible, so such a track kept gating and its Mahalanobis distances came out negative, which wins a minimisation outright: the corrupted track took detections from every healthy track it could reach, with no exception, no log and no counter, and ended up reporting the wrong aircraft under the original track ID. This repo is where that bites. blah2_bridge's duplicate guard admitted an older frame, and FRAME_WORKERS drain a single queue with no per-node keying, so backwards timestamps reach a node's tracker under ordinary operation rather than as an edge case. The bump carries six intervening commits besides the fix. Five are tooling and formatting (ruff configuration, the vulture dead-code gate, running both through pre-commit) and one adds events.jsonl rotation, which this repo never reaches since it supplies its own InMemoryEventWriter. The fix is the only behavioural change that lands: across the range track.py sees import reordering plus one `if/return` pair collapsed to `return expr`, and config.py gains an additive `output` section with no existing default altered. offworldlabs/retina-tracker#24 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3f40a43 to
ddf9d09
Compare
|
Claude finished @Babissimo's task in 42s —— View job Code ReviewTodo list
SummaryThis PR is a single-line submodule pointer bump: Findings
RecommendationSafe to merge from this repo's side. The only outstanding verification is confirming the |
Ticket: 86cb9bq7p
Parent: 86cb9bp4q, pipeline accuracy audit of 2026-08-24
Tracker side: offworldlabs/retina-tracker#24 (merged as
79db48c)Moves
libs/retina-trackerfrom04ec70b(v0.2.1) to79db48c.Why it matters here
An out-of-order frame made
dtnegative, which madeF P Fᵀ + Qnon-positive-definite. The gate tested only thatSwas invertible, so such a track kept gating, its Mahalanobis distances came out negative, and a negative cost wins a minimisation outright. The corrupted track took detections from every healthy track it could reach, with no exception, no log and no counter, and ended upACTIVE, positive definite and indistinguishable from healthy, reporting the wrong aircraft under the original track ID.This repo is what feeds it. Audit §3 found
blah2_bridge's duplicate guard wasts_ms != last_ts, which skips exact repeats but injects an older frame, and §2 foundFRAME_WORKERSdraining a single queue with no per-node keying. Backwards timestamps therefore reach a node's tracker in ordinary operation, not as an edge case.What else the bump carries
Six intervening commits besides the fix. Checked rather than assumed:
d9f473devents.jsonlrotationInMemoryEventWriterThe fix is the only behavioural change that lands. Across the whole range
track.pysees import reordering plus oneif/returnpair collapsed toreturn expr, andconfig.pygains an additiveoutputsection with no existing default altered.Expected effect
Association counts shift slightly. Detections that previously received a garbage negative distance are now excluded rather than preferred. That is the intent, not a regression.
Still open on the tracker side
n_dt_clamped/n_frames_rejected/n_clock_resyncsto an operator (86cb9t7pw). Until then the counters are reachable only by attribute access on theTrackerinstance, and they are the only signal that §2's per-node serialisation defect is still live.🤖 Generated with Claude Code