Chuck and Claude Opus 5.5
b638b91169
feat(common): sports_game_over -- the reconciled game-over check (sports family 5) ( #770 )
...
* feat(common): sports_game_over -- the reconciled game-over check (sports family 5)
New hardware-free module src/common/sports_game_over.py with
SportsGameOverMixin._is_game_really_over, the scoreboards' SportsLive check
that drops a game ESPN still lists as live, copied from ledmatrix-plugins
claude/family5-reconcile once the nine copies (five bodies) became one.
Over on a final period text; from period FINAL_PERIOD on, also on a 0:00
clock string unless the score is level (a tie at the end of regulation goes
to overtime; a game that ends tied ends on its final status). FINAL_PERIOD
is the one per-sport seam, a class attribute defaulting to None (the clock
never ends a game); the scoreboards declare 3 (hockey), 4 (basketball,
football, lacrosse) or None (afl, nrl, soccer, baseball, ufc).
- test/test_sports_game_over.py: the plugins' pinned matrix folded to the
three FINAL_PERIOD values, edge shapes, the tie guard, ufc's recorded
ESPN MMA states, an override deferring through super() (baseball), the
base order with SportsLiveSharedMixin._detect_stale_games, host contract.
- test/test_sports_game_over_parity.py: with LEDMATRIX_PLUGINS, compares the
body with every plugin copy (drift-report normalisation plus decorators)
and each plugin's FINAL_PERIOD with the owner's decision.
- mypy ratchet, src/common/README.md, CHANGELOG (Unreleased, New modules).
- docs/SPORTS_UNIFICATION.md: family 5 status and decisions; the seam
tables now match the code (FINAL_PERIOD defaults to None; the
CLOCK_COUNTS_DOWN seam never existed and is gone from the doc).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
* docs: cite ledmatrix-plugins #625 for the family 5 reconcile
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 09:36:12 -04:00
..
2026-10-04 13:25:12 -04:00
2026-10-04 23:18:02 -04:00
2026-10-01 10:45:28 -04:00
2026-10-04 23:18:02 -04:00
2026-03-20 15:06:58 -04:00
2026-09-30 10:48:14 -04:00
2026-10-04 22:44:17 -04:00
2026-10-03 13:09:53 -04:00
2026-10-03 12:11:27 -04:00
2026-07-12 10:38:52 -04:00
2026-10-02 18:15:28 -04:00
2026-09-30 10:39:44 -04:00
2026-10-01 20:37:54 -04:00
2026-09-28 08:24:43 -04:00
2026-09-30 10:39:44 -04:00
2026-09-30 10:39:44 -04:00
2026-09-30 10:39:44 -04:00
2026-09-11 10:07:38 -04:00
2026-09-30 11:15:31 -04:00
2026-10-03 22:18:54 -04:00
2026-10-04 20:56:00 -04:00
2026-10-04 20:56:00 -04:00
2026-09-30 10:39:44 -04:00
2026-08-23 11:44:23 -04:00
2026-10-03 22:30:39 -04:00
2026-10-04 22:44:17 -04:00
2026-10-03 22:30:39 -04:00
2026-09-28 08:24:43 -04:00
2026-10-03 22:30:28 -04:00
2026-10-03 22:30:39 -04:00
2026-09-30 10:39:44 -04:00
2026-09-30 10:48:14 -04:00
2026-10-03 22:30:39 -04:00
2026-10-03 22:30:39 -04:00
2026-09-23 10:29:16 -04:00
2026-09-24 17:35:49 -04:00
2026-09-11 10:07:38 -04:00
2026-10-04 15:07:19 -04:00
2026-09-30 10:39:44 -04:00
2026-09-11 10:07:38 -04:00
2026-09-24 17:35:49 -04:00
2026-09-28 10:42:07 -04:00
2026-10-03 22:18:42 -04:00
2026-09-28 10:40:16 -04:00
2026-10-03 13:09:53 -04:00
2026-10-03 13:09:53 -04:00
2026-09-18 09:56:50 -04:00
2026-09-28 11:08:43 -04:00
2026-08-26 10:03:43 -04:00
2026-09-01 09:54:04 -04:00
2026-09-30 10:48:14 -04:00
2026-10-03 14:26:03 -04:00
2026-08-07 16:17:11 -04:00
2026-09-13 11:53:50 -04:00
2026-09-28 10:41:40 -04:00
2026-09-28 10:39:40 -04:00
2026-09-24 15:51:53 -04:00
2026-09-30 09:38:16 -04:00
2026-08-12 08:42:56 -04:00
2026-10-03 22:18:00 -04:00
2026-10-03 14:14:08 -04:00
2026-10-01 10:45:28 -04:00
2026-08-19 12:28:22 -04:00
2026-10-03 22:18:00 -04:00
2026-09-07 13:37:54 -04:00
2026-08-12 08:40:07 -04:00
2026-09-17 12:38:39 -04:00
2026-10-03 14:26:03 -04:00
2026-09-23 12:54:07 -04:00
2026-08-11 14:14:25 -04:00
2026-10-03 14:14:08 -04:00
2026-08-19 17:40:52 -04:00
2026-09-14 09:42:24 -04:00
2026-09-23 16:33:24 -04:00
2026-09-28 08:26:05 -04:00
2026-09-28 10:41:40 -04:00
2026-09-23 12:52:50 -04:00
2026-10-01 08:27:16 -04:00
2026-10-03 22:30:16 -04:00
2026-09-11 10:07:38 -04:00
2026-10-03 22:30:16 -04:00
2026-08-06 14:04:23 -04:00
2026-10-03 22:18:42 -04:00
2026-09-23 12:36:26 -04:00
2026-09-24 17:32:02 -04:00
2026-09-17 16:37:29 -04:00
2026-09-30 10:48:14 -04:00
2026-08-04 13:46:28 -04:00
2026-09-03 16:06:40 -04:00
2026-09-28 10:39:40 -04:00
2026-10-01 10:45:28 -04:00
2026-10-01 08:37:15 -04:00
2026-09-23 16:48:02 -04:00
2026-09-28 15:00:45 -04:00
2026-10-04 22:15:30 -04:00
2026-09-28 08:25:26 -04:00
2026-09-28 09:07:08 -04:00
2026-09-23 10:29:16 -04:00
2026-08-23 11:43:39 -04:00
2026-10-01 16:10:04 -04:00
2026-09-23 10:29:16 -04:00
2026-10-02 22:30:52 -04:00
2026-09-28 08:26:05 -04:00
2026-09-28 10:39:40 -04:00
2026-09-24 17:37:15 -04:00
2026-09-23 12:36:26 -04:00
2026-10-01 20:27:20 -04:00
2026-09-07 13:37:54 -04:00
2026-10-03 22:18:19 -04:00
2026-10-01 14:51:38 -04:00
2026-09-17 16:37:29 -04:00
2026-10-04 17:17:10 -04:00
2026-09-28 10:39:40 -04:00
2026-10-03 11:51:06 -04:00
2026-10-01 16:10:04 -04:00
2026-09-24 17:35:49 -04:00
2026-09-30 11:15:31 -04:00
2026-08-06 14:04:23 -04:00
2026-09-28 10:40:16 -04:00
2026-09-28 10:40:16 -04:00
2026-09-24 17:32:29 -04:00
2026-08-07 13:27:20 -04:00
2026-09-24 17:32:29 -04:00
2026-09-28 10:40:16 -04:00
2026-10-04 22:44:17 -04:00
2026-10-04 15:46:15 -04:00
2026-10-03 14:14:08 -04:00
2026-09-29 11:49:36 -04:00
2026-10-04 18:56:32 -04:00
2026-10-01 10:00:26 -04:00
2026-09-24 17:31:41 -04:00
2026-10-03 14:01:23 -04:00
2026-10-05 08:26:26 -04:00
2026-09-24 17:32:29 -04:00
2026-09-23 16:50:42 -04:00
2026-10-01 20:13:57 -04:00
2026-10-03 11:51:06 -04:00
2026-08-21 14:30:29 -04:00
2026-10-04 22:15:30 -04:00
2026-09-07 13:37:38 -04:00
2026-07-12 10:38:52 -04:00
2026-09-30 21:32:07 -04:00
2026-08-21 15:50:55 -04:00
2026-09-28 11:08:43 -04:00
2026-09-23 12:36:26 -04:00
2026-08-12 14:58:05 -04:00
2026-08-23 11:42:51 -04:00
2026-10-03 13:35:13 -04:00
2026-08-03 16:52:42 -04:00
2026-10-03 13:35:13 -04:00
2026-10-03 13:09:53 -04:00
2026-10-03 13:48:27 -04:00
2026-09-28 15:00:45 -04:00
2026-10-04 20:56:00 -04:00
2026-10-04 22:44:17 -04:00
2026-10-01 10:33:02 -04:00
2026-10-04 22:15:30 -04:00
2026-10-01 10:33:02 -04:00
2026-10-01 20:37:54 -04:00
2026-10-04 22:44:17 -04:00
2026-10-03 22:18:31 -04:00
2026-08-21 15:50:55 -04:00
2026-09-23 10:29:16 -04:00
2026-10-03 14:38:27 -04:00
2026-09-28 15:00:45 -04:00
2026-09-18 11:09:25 -04:00
2026-09-24 17:35:49 -04:00
2026-09-11 08:41:58 -04:00
2026-09-23 12:36:26 -04:00
2026-09-28 10:40:16 -04:00
2026-09-28 08:26:05 -04:00
2026-09-28 08:26:05 -04:00
2026-09-28 10:40:16 -04:00
2026-09-28 10:39:40 -04:00
2026-09-24 17:32:02 -04:00
2026-10-03 22:30:51 -04:00
2026-09-08 08:34:52 -04:00
2026-08-11 16:10:56 -04:00
2026-09-24 19:57:03 -04:00
2026-09-30 09:10:41 -04:00
2026-10-04 19:27:51 -04:00
2026-09-07 13:37:38 -04:00
2026-09-29 17:59:12 -04:00
2026-09-30 10:39:44 -04:00
2026-09-23 10:34:20 -04:00
2026-09-28 10:41:40 -04:00
2026-09-30 10:39:44 -04:00
2026-09-30 10:39:44 -04:00
2026-09-30 10:39:44 -04:00
2026-09-28 10:40:16 -04:00
2026-09-15 19:17:48 -04:00
2026-08-17 15:35:02 -04:00
2026-09-08 08:34:52 -04:00
2026-09-28 15:00:45 -04:00
2026-09-30 09:10:41 -04:00
2026-09-30 09:31:16 -04:00
2026-08-21 16:19:33 -04:00
2026-09-11 08:41:58 -04:00
2026-09-30 09:10:41 -04:00
2026-08-19 12:28:22 -04:00
2026-10-03 22:18:42 -04:00
2026-10-03 22:18:42 -04:00
2026-09-28 08:25:45 -04:00
2026-09-24 17:32:29 -04:00
2026-08-23 11:43:39 -04:00
2026-10-05 08:26:26 -04:00
2026-09-28 08:25:45 -04:00
2026-09-24 17:32:02 -04:00
2026-07-09 07:54:18 -04:00
2026-10-05 01:39:02 -04:00
2026-10-02 13:42:23 -04:00
2026-10-04 20:56:00 -04:00
2026-09-30 10:48:14 -04:00
2026-09-24 17:32:02 -04:00
2026-09-17 16:37:29 -04:00
2026-09-30 10:48:14 -04:00
2026-10-03 22:18:42 -04:00
2026-09-30 20:59:16 -04:00
2026-09-23 12:36:26 -04:00
2026-10-03 14:01:23 -04:00
2026-09-30 10:48:14 -04:00
2026-09-30 10:39:44 -04:00
2026-09-24 15:49:51 -04:00
2026-10-03 13:09:53 -04:00
2026-08-07 13:02:59 -04:00
2026-09-28 08:25:26 -04:00
2026-09-24 17:32:02 -04:00
2026-09-30 10:39:44 -04:00
2026-10-03 14:14:08 -04:00
2026-09-23 16:33:24 -04:00
2026-09-28 10:39:40 -04:00
2026-10-04 13:25:12 -04:00
2026-10-01 15:59:14 -04:00
2026-10-01 20:37:54 -04:00
2026-10-01 15:59:14 -04:00
2026-09-17 16:37:29 -04:00
2026-09-24 17:32:02 -04:00
2026-10-01 14:32:24 -04:00
2026-08-21 16:22:48 -04:00
2026-08-07 10:17:30 -04:00
2026-05-15 10:19:55 -04:00
2026-09-28 10:41:40 -04:00
2026-10-04 22:15:30 -04:00
2026-10-01 14:15:22 -04:00
2026-07-31 09:40:38 -04:00
2026-09-28 08:26:05 -04:00
2026-10-01 09:48:47 -04:00
2026-09-30 20:50:34 -04:00
2026-10-03 22:18:19 -04:00
2026-09-30 21:07:31 -04:00
2026-10-03 14:26:03 -04:00
2026-09-17 16:37:29 -04:00
2026-10-04 14:41:47 -04:00
2026-10-01 20:27:20 -04:00
2026-09-29 12:38:40 -04:00
2026-10-03 22:19:05 -04:00
2026-09-29 12:38:40 -04:00
2026-10-01 10:10:22 -04:00
2026-09-30 09:11:02 -04:00
2026-09-29 12:38:40 -04:00
2026-10-01 10:10:22 -04:00
2026-10-05 09:36:12 -04:00
2026-10-05 09:36:12 -04:00
2026-09-13 11:53:50 -04:00
2026-09-15 15:32:21 -04:00
2026-10-01 10:10:22 -04:00
2026-10-01 10:10:22 -04:00
2026-10-03 14:01:23 -04:00
2026-10-01 20:39:44 -04:00
2026-09-17 16:37:29 -04:00
2026-09-20 18:25:33 -04:00
2026-09-29 12:38:40 -04:00
2026-10-01 10:10:22 -04:00
2026-08-26 11:25:10 -04:00
2026-09-29 09:05:10 -04:00
2026-10-03 22:19:05 -04:00
2026-09-30 21:32:07 -04:00
2026-09-23 16:33:12 -04:00
2026-09-11 10:07:38 -04:00
2026-09-28 08:26:05 -04:00
2026-10-04 15:07:19 -04:00
2026-09-24 17:32:02 -04:00
2026-09-28 10:41:40 -04:00
2026-09-28 15:00:45 -04:00
2026-09-23 16:33:24 -04:00
2026-09-28 08:24:43 -04:00
2026-09-30 10:39:44 -04:00
2026-10-03 22:18:42 -04:00
2026-10-05 09:06:56 -04:00
2026-09-24 17:32:02 -04:00
2026-07-13 09:32:37 -04:00
2026-09-24 17:31:41 -04:00
2026-09-24 17:31:41 -04:00
2026-09-24 15:51:14 -04:00
2026-09-28 10:40:16 -04:00
2026-09-11 08:45:40 -04:00
2026-09-30 10:39:44 -04:00
2026-10-03 14:26:03 -04:00
2026-09-24 17:31:41 -04:00
2026-08-06 14:04:23 -04:00
2026-09-28 08:25:45 -04:00
2026-10-01 20:19:30 -04:00
2026-09-30 10:48:14 -04:00
2026-09-23 12:36:26 -04:00
2026-09-30 15:35:26 -04:00
2026-08-21 14:30:29 -04:00
2026-10-03 13:09:53 -04:00
2026-09-24 17:37:15 -04:00
2026-09-24 17:37:15 -04:00
2026-10-01 08:27:16 -04:00
2026-10-01 08:27:16 -04:00
2026-09-24 19:38:22 -04:00
2026-09-28 08:25:26 -04:00
2026-09-30 20:59:16 -04:00
2026-09-30 20:59:16 -04:00
2026-08-23 11:42:33 -04:00
2026-08-12 14:06:32 -04:00
2026-09-24 17:37:15 -04:00
2026-09-30 21:07:31 -04:00
2026-09-30 21:07:31 -04:00
2026-09-30 20:59:16 -04:00
2026-09-30 21:07:31 -04:00
2026-09-30 21:07:31 -04:00
2026-10-01 09:48:47 -04:00
2026-10-01 08:27:16 -04:00
2026-10-01 09:48:47 -04:00
2026-08-21 15:50:55 -04:00
2026-10-04 20:56:00 -04:00
2026-07-08 09:43:13 -04:00
2026-10-01 09:48:47 -04:00
2026-09-24 17:37:15 -04:00
2026-09-28 10:39:14 -04:00
2026-09-30 09:30:37 -04:00
2026-09-24 19:57:03 -04:00
2026-09-23 16:33:24 -04:00
2026-09-23 12:36:26 -04:00
2026-10-04 20:56:00 -04:00
2026-09-30 15:35:26 -04:00
2026-09-10 17:42:00 -04:00
2026-09-23 12:36:53 -04:00
2026-09-24 15:53:19 -04:00
2026-09-30 09:02:01 -04:00
2026-10-04 20:56:00 -04:00
2026-09-30 10:39:44 -04:00
2026-09-30 10:39:44 -04:00
2026-09-30 09:38:16 -04:00
2026-10-03 13:09:53 -04:00
2026-09-09 16:25:45 -04:00
2026-09-14 09:42:24 -04:00
2026-09-28 10:42:07 -04:00
2026-09-14 12:40:41 -04:00
2026-09-14 12:40:41 -04:00
2026-09-24 17:32:29 -04:00
2026-10-01 15:51:00 -04:00
2026-09-28 08:26:05 -04:00