mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-05 14:55:08 +00:00
The control socket is now the only way the web interface sends the display a command. The display stops reading display_on_demand_request and plugin_error_clear_request, and the web interface stops writing them. - Display: no mailbox poll (MailboxWatch, the 1 s / 0.25 s cadence, _consume_on_demand_request, the deprecation log) and no persisted display_on_demand_processed_id guard; the error publisher reads no clear request. CacheManager.file_signature and MailboxWatch are removed. - A write to either retired key is dropped by CacheManager.save_cache and logged once per writer, naming the plugin from the call stack (or the request's plugin_id), with the API to move to. - Web: on-demand start with no display listening starts the service (when start_service) and sends the request again once the socket answers (45 s, 10 s for a running service without a socket yet); every other failure is a 503 (400 for invalid_args). Stop answers 503 when no display listens, unless stop_service. errors/clear answers 503 with a reason-specific message instead of writing a request; clear_pending is always false. src.ipc.client.should_fall_back is replaced by display_not_listening. - Kept: display_current_state, display_on_demand_state, plugin_runtime_snapshot and the heartbeat (read whenever the socket cannot answer), and display_on_demand_config (the display's resume record). Tests: mailbox-only tests removed (test_on_demand_mailbox.py, the mailbox cadence, file_signature and MailboxWatch tests); tests that injected requests through the mailbox now use the socket queue or a plugin's in-process request. The run-loop harness sends on-demand requests over its fake control socket, so four golden traces change: on-demand starts and stops land at the request instant instead of the next 0.25 s mailbox look (one frame fewer on the screen they end), and in vegas.json within one frame instead of 263 ms, which shifts the later 1 s-throttled WiFi-notice check by under a second. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
1.1 KiB
JSON
28 lines
1.1 KiB
JSON
{
|
|
"screens": [
|
|
[0.0, "<vegas>", 30.008, "duration", 3751, null],
|
|
[30.008, "<vegas>", 30.007, "duration", 3751, null],
|
|
[60.015, "<vegas>", 10.24, "vegas-live", 1280, null],
|
|
[70.255, "sports_live", 20.0, "duration", 20, true],
|
|
[90.255, "sports_live", 20.0, "display-false", 11, false],
|
|
[110.255, "<vegas>", 30.008, "duration", 3751, null],
|
|
[140.263, "<vegas>", 9.744, "on-demand-start", 1218, null],
|
|
[150.007, "clock", 20.0, "duration", 20, true],
|
|
[170.007, "clock", 5.0, "on-demand-expired", 5, true],
|
|
[175.007, "<vegas>", 25.999, "vegas-interrupt", 3250, null],
|
|
[201.006, "<wifi>", 2.0, "duration", 4, null],
|
|
[203.006, "<vegas>", 30.008, "duration", 3751, null],
|
|
[233.014, "<vegas>", 26.986, "horizon", 3374, null]
|
|
],
|
|
"events": [
|
|
[70.255, "vegas-live"],
|
|
[70.255, "live", "sports_live"],
|
|
[150.0, "request", "start:v1"],
|
|
[150.007, "on-demand-start", "clock"],
|
|
[150.007, "vegas-interrupt"],
|
|
[175.007, "on-demand-expired"],
|
|
[200.0, "wifi-file", "Connected to HomeNet"],
|
|
[201.006, "vegas-interrupt"]
|
|
]
|
|
}
|