From f6ce600d71e56790bf6f74d005422974ec96e31f Mon Sep 17 00:00:00 2001 From: imSp4rky Date: Mon, 2 Nov 2026 14:52:18 -0700 Subject: [PATCH] perf(api)!: cut per-request and per-tick event bus traffic Session update events carry the new action as action_entry instead of the full log; access lines stay out of the log ring unless --debug. Job events build and redact their dict once, the progress interval matches the 0.5 s poll, and dashboard stats are serialized once. --- docs/dev/rest-api/dashboard.md | 11 +++--- tests/remote/unit/test_dashboard.py | 4 ++- .../unit/test_download_gates_redaction.py | 23 ++++++++++++ unshackle/commands/serve.py | 2 ++ unshackle/core/api/download_manager.py | 24 ++++++++----- unshackle/core/api/download_worker.py | 2 -- unshackle/core/api/handlers.py | 36 +++++++++---------- unshackle/core/api/progress.py | 2 +- unshackle/core/api/session_store.py | 10 ++++-- 9 files changed, 77 insertions(+), 37 deletions(-) diff --git a/docs/dev/rest-api/dashboard.md b/docs/dev/rest-api/dashboard.md index f5ea445b..f82eedfd 100644 --- a/docs/dev/rest-api/dashboard.md +++ b/docs/dev/rest-api/dashboard.md @@ -28,8 +28,9 @@ routes are available in `--remote-only` mode too. Run the server headless with `--quiet`: no banner, no Rich output, one plain log line per event on stderr, and `api.*` loggers stay at `INFO` so remote session activity reaches the -log ring. Add `--debug` to raise the level to `DEBUG` and also write the full log to -`directories.logs` as `unshackle_serve_