Repository navigation
v1.6.8 - Reliability: fewer missed games, no silent failures
Reliability release: fewer missed games, no silent failures
A full review of the scanner against the stream PC's logs and the whole match database turned up several ways games were missed or logged wrong without any warning. This release fixes them, and makes anything that still goes wrong visible in the app.
Missed or wrong games
- #10-#20 with 10+ squad kills. The header is right-aligned, so a two-digit kill total pushes the placement left out of its box. #10 and #20 read as 0 and the game was never logged; #11-#19 logged as 1-9 (e.g. a 12th place stored as 2nd). The placement box now follows the total-kills number. Verified on a real #10 game the old build lost, plus 28 composited headers (#1-#20 with 0, 1, 11 and 13 kills).
- 1-kill games had no squad total. A lone gold
1never OCRs, so about 1 in 9 games showed 0 squad kills. The total is now taken from the players' kills when the header can't be read (never over a value that was read). - Native 16:9 profile revive/respawn. The boxes cut the top off the digits, so revive 1 read as 7 or blank and respawn 0 as 6. Existing installs are corrected automatically (only if the shipped values are still there; hand-calibrated boxes are left alone).
Nothing fails silently any more
- A summary that won't log is flagged. If a summary is on screen but hasn't logged after 15 s, the app shows a red warning with the reason so you can press Capture. If it leaves the screen unlogged, the frame and the reason are saved to
debug\unlogged\and the app shows "Missed a summary at …". A quick tab-away that comes back and logs is not counted. - RP tracking status is shown. No ALS key, a rejected key, or ALS being unreachable used to look exactly like normal tracking while every game logged without RP. The app now says when RP is off or failing, and the "Last" line notes a game that logged without RP.
- Errors no longer end the watch. An exception in one pass used to stop tracking for the rest of the night while the app still looked alive. The watch now recovers and shows the error (red while it repeats).
- CSV open in Excel. A locked CSV used to lose the match from both the CSV and Supabase. The match now still syncs to Supabase and waits in
apex_matches_unsaved.csvuntil the CSV can be written. Open CSV now opens a copy so it can't lock the file. - Supabase down. A failed insert is queued in
apex_matches_unsynced.jsonland retried with the next match. - Debug-log notes for RP resolution and Supabase errors (the windowed build used to discard them).
RP on games two squadmates both logged
When two trackers log the same game, the database keeps the first copy and deletes the second. If the deleted copy was the one with RP, that game lost its RP. On the owner's tracker (service key), the RP is now written to the surviving copy, matched by the whole match's placement, kills and damage.
How it was tested
The placement, squad-total and revive/respawn fixes were run against every real summary frame we have (only the intended values changed). Both watch loops were run end to end on a replayed summary, including a summary that never logs and a quick tab-away. The locked-CSV side file, the Supabase retry queue and the cross-PC RP fallback were tested against fakes, not yet against a real locked file or the live database trigger.
Update
Use the in-app update, or download ApexTracker_share.zip, close the tracker, and replace the program files. Keep your existing config.json and .env.