ytptube/ui
Jesse Bate 0cb3a95a41 perf: batch item_updated WebSocket events into a single per-tick payload
The per-download 500ms throttle still scales linearly with concurrency:
N active downloads produce up to 2N item_updated frames per second, each
with its own serialization pass and per-client send.

Add an ItemBatcher at the WebSocket boundary that coalesces dirty items
by _id (last write wins) and emits one item_updated frame per 500ms
tick whose payload is always a list of items, even for a single update.
Leading-edge emits keep isolated updates (e.g. renames via the API)
instant, and a trailing flush at most 500ms later delivers the rest.
Pending items are flushed on shutdown before clients disconnect.

Emitter call sites, the EventBus, and the StatusTracker throttle are
unchanged; the batcher only changes the wire format. The frontend now
types item_updated as StoreItem[] and iterates the array.

BREAKING CHANGE: the item_updated WebSocket event payload (data) is now
always an array of items instead of a single item object.
2026-06-10 23:38:27 +09:30
..
app perf: batch item_updated WebSocket events into a single per-tick payload 2026-06-10 23:38:27 +09:30
public refactor: swap icon for real favicon and better status indicator 2026-04-09 01:37:52 +03:00
tests feat: add system diagnostics endpoint. 2026-05-26 19:22:36 +03:00
.env.example [FEAT] Added checkbox in task add page to directly archive all items in a task. 2025-10-17 17:21:21 +03:00
.gitignore initial nuxtjs ui skeleton 2024-12-13 18:31:07 +03:00
.oxfmtrc.json refactor: switch from pnpm to bun 2026-02-20 22:46:30 +03:00
bun.lock chore: update external packages 2026-06-04 09:31:43 +03:00
bunfig.toml fix: add jsdom as dev dependancy 2026-02-20 23:14:23 +03:00
eslint.config.js minor fixes and style update 2025-10-26 21:42:48 +03:00
nuxt.config.ts rerfactor: add page transition toggle 2026-06-08 07:53:05 +03:00
package.json chore: update external packages 2026-06-04 09:31:43 +03:00
tsconfig.json add build sha to .version file to be able to cleanup user python packages on master/dev builds. 2025-09-04 17:03:38 +03:00
vitest.config.ts update ui tests 2025-09-16 19:28:52 +03:00
web-types.json Refactor: rebase the UI on top of nuxt/ui 2026-03-25 22:59:53 +03:00