Claude
05e23c4ac7
feat(server): degrade timer refresh rate when no clients are connected
...
The main loop recalculated the runtime at 32ms unconditionally. With no
websocket client connected there is nothing observing the sub-second values,
so we fall back to a 1s rate and raise it again as soon as a client connects.
Coordination is done through a new leaf store, `connectedClients`: the socket
adapter publishes the count and the runtime service subscribes to it. Keeping
the module free of dependencies lets both sides use it without a cycle, and
keeps the transport layer unaware of the services reacting to it.
The rate policy lives in the config alongside the values it is coupled to.
`getSkipLimit` is now derived from the rate in use, since the skip threshold
has to stay above an ordinary refresh cycle: at the idle rate the previous
fixed 1s threshold would have read every tick as a time skip and reloaded roll.
Accuracy of the event boundaries is no longer tied to the rate. The ad-hoc end
callbacks are replaced by `scheduleNextBoundary`, which derives the next
boundary from the state after every update and anticipates it when it falls
inside the current cycle. This also covers the paths that previously had no
predictive end at all (roll, roll pre-roll, restored playback) and fixes the
renewal in `addTime`, which scheduled with a time of day where a duration was
expected and so never fired.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EhEkCTUCQbPVYABYpf4zh2
2026-09-16 15:32:16 +00:00
Alex Christoffer Rasmussen
319293ab4c
small ui improvements ( #2196 )
...
* ui: add slight gap in keyCombo display
* ui: show ellipsis when selected dropdown option is to long
2026-09-14 20:47:27 +02:00
Alex Christoffer Rasmussen
27a35fe555
fix: type resolver package ( #2199 )
...
* fix: package file definition
* bump version to 4.13.1
2026-09-14 20:40:47 +02:00
Carlos Valente
b07544ab84
feat(automation): improve definition and trigger editing
2026-09-13 15:40:12 +02:00
Carlos Valente
79c21daf73
fix(automation): validate template-aware output targets
2026-09-13 15:40:12 +02:00
Carlos Valente
1175b3c641
fix(report): harden empty report check
2026-09-05 20:51:53 +02:00
Carlos Valente
afc3a44455
refactor(report): improve report summary
2026-09-05 20:35:44 +02:00
Carlos Valente
bc6a321172
fix(cuesheet): prevent empty seconds field
2026-09-05 20:32:02 +02:00
Carlos Valente
977b01a072
fix: keep group visible as header for the running event
v4.13.0
2026-09-05 09:24:42 +02:00
SMPTY
dd718230ad
fix(client): fix PWA manifest so "Install as App" works properly ( #2192 )
2026-09-05 09:15:08 +02:00
Carlos Valente
9ec12f4927
docs(llm): request for useeffect documentation
2026-08-28 12:29:12 +02:00
Carlos Valente
4c08ca2908
feat(timer): playing sound on time end
2026-08-28 12:29:12 +02:00
Carlos Valente
265b167600
bump version to 4.13.0
2026-08-28 12:04:02 +02:00
Carlos Valente
eb7b2a5c4b
refactor(finder): improve feature UX
...
Search every text field with optional filters, keep result selection stable, and expose clearer match context and counts. Cover query parsing, matching, mixed-entry indexing, and the reveal flow.
2026-08-28 11:41:44 +02:00
Carlos Valente
e0ae9f7f09
refactor(log): use ToggleButton for filters
...
Reuse the shared toggle abstraction while preserving the existing filter behaviour and accessible labels.
2026-08-28 11:41:44 +02:00
Carlos Valente
b0c778fa62
feat(buttons): add ToggleButton component
...
Keep toggle styling and the accessible pressed state coupled in one reusable button.
2026-08-28 11:41:44 +02:00
Carlos Valente
98d3b1f6f3
chore(license): resolver has permissive license
2026-08-28 08:40:17 +02:00
Carlos Valente
d9dd147d4b
refactor(server): replace defensive copies with cow patterns
2026-08-26 20:17:34 +02:00
Carlos Valente
9806f97d27
test(rundown): improve rundown utils coverage
2026-08-25 22:41:37 +02:00
Carlos Valente
b9683f00dc
fix: prevent stale rundown cache on rename
2026-08-25 21:41:34 +02:00
Carlos Valente
63fdc50c50
docs(llms): document ongoing code migrations
2026-08-25 21:41:18 +02:00
Carlos Valente
5acfc4a122
docs(llms): setup agents documentation
2026-08-25 21:41:18 +02:00
Carlos Valente
a84b8b5530
refactor(ui): polish navigation menu and view params editor
2026-08-23 13:42:21 +02:00
Carlos Valente
c19aa4ca28
fix(cuesheet): prevent stale column width on refresh
2026-08-23 13:28:24 +02:00
Carlos Valente
805663e2ea
chore(deps): migrate to @tanstack/react-table v9
2026-08-23 13:28:24 +02:00
Carlos Valente
0f0b32d444
accept bearer token
2026-08-21 20:52:11 +02:00
Carlos Valente
703dee35a4
style: bump oxfmt to 0.63 and reformat
2026-08-18 13:56:53 +02:00
Carlos Valente
2a7f5b7872
chore(deps): upgrade dependencies
2026-08-18 13:56:53 +02:00
Carlos Valente
c6eccec30e
refactor(settings): show new app indicator
v4.12.0
2026-08-09 16:48:20 +02:00
Carlos Valente
5220c2c374
fix(settings): prevent loader overflow
2026-08-09 16:48:20 +02:00
Carlos Valente
4eeeb294f7
chore: update electron navigation
2026-08-09 16:48:20 +02:00
Alex Christoffer Rasmussen
a006331fea
Group duration context menu utils ( #1748 )
2026-08-09 16:45:47 +02:00
Carlos Valente
ac0ef06459
bump version to 4.12.0
2026-08-09 10:44:13 +02:00
Carlos Valente
4d04fe35c3
refactor(e2e): improve test stability
2026-08-09 10:41:12 +02:00
Carlos Valente
fb559ed9da
refactor(progress bar): reset when event changes
2026-08-05 15:30:22 +02:00
Carlos Valente
24be49ef66
refactor(settings): polish settings UI
2026-08-02 13:44:28 +02:00
Carlos Valente
f0c284b708
refactor(link): add row presentation variant
2026-08-02 13:44:28 +02:00
Carlos Valente
9e42f18299
feat(settings): add searchable navigation
2026-08-02 13:44:28 +02:00
Carlos Valente
bdd815678b
refactor(ui): extend link and modal variants
2026-08-02 13:44:28 +02:00
Carlos Valente
12fc76b8ff
refactor(op): simplify UI elements
2026-08-02 12:55:49 +02:00
Carlos Valente
8ed0a1689e
refactor(op): clarify settings text
2026-08-02 12:55:49 +02:00
Carlos Valente
ba18b8dba7
refactor(ui): rundown title UI polish
2026-08-02 12:55:49 +02:00
Carlos Valente
608247157b
refactor(rundown): cap rundown names to 64 characters
2026-08-02 12:55:49 +02:00
Carlos Valente
514b6c3a02
refactor(navigation): custom params indicators only for current view
2026-08-02 12:55:49 +02:00
Carlos Valente
2050735014
refactor(ui): title alignment is logo aware
2026-08-02 12:55:49 +02:00
Carlos Valente
76b1341432
refactor(logo): upload on submit form
2026-08-02 10:39:58 +02:00
Carlos Valente
c7422fc7c7
refactor(logo): improve flow for managing logo
2026-08-02 10:39:58 +02:00
Carlos Valente
c93b10cea9
chore: bump deepmerge-ts package
2026-08-02 10:39:58 +02:00
Carlos Valente
8a7f9530d2
chore: bump nanoid package
2026-08-02 10:39:58 +02:00
Carlos Valente
94d54529ee
refactor(views): consistent loading and empty states
2026-08-01 16:25:14 +02:00