Skip to content

Commit 621087f

Browse files
release: v6.0.0 — update version refs, changelog, and docs
- shared.js: 5.4.1 → 6.0.0 - docs/faq.md: version in log example → 6.0.0 - CHANGELOG.md: added 3 critical bug fixes to v6.0.0 entry (dock data, background fitting, SP Control clearing) - All 179 tests passing (75 Lua + 104 JS)
1 parent 5059c66 commit 621087f

3 files changed

Lines changed: 5 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ All notable changes to SessionPulse are documented here.
2121
- **Asset organization**`assets/` now has 3 subdirectories: `backgrounds/`, `screenshots/`, `sounds/`.
2222

2323
### Fixed
24+
- **CRITICAL: Dock showed "READY 00:00" while timer was running**`process_overlay_control_command()` unconditionally cleared SP Control text to `""` every `script_tick`, even when the text contained state data (`kind:"state"`). The dock reads SP Control for live data, so it was always wiped before the dock could read it. Fix: check the `kind` field first — if it's `"state"`, return immediately without clearing.
25+
- **Dock data connection broken by CEF security** — Dock tried to `fetch(session_state.json)` which is blocked by Chromium Embedded Framework's `file://` same-origin policy. Fallback read text sources (`SP Timer`, `SP Session`, etc.) that no longer exist after the overlay-first refactor. Fix: restructured dock to use SP Control via WebSocket as primary data source. Returns a default idle state when SP Control is empty (timer idle).
26+
- **Background images didn't fill canvas**`fit_source_to_canvas()` was completely disabled by a type guard `type(obs.obs_video_info) ~= "function"`. In OBS Lua, `obs.obs_video_info` is a userdata constructor, so `type()` returns `"userdata"`, not `"function"`. Guard always returned early, silently disabling all canvas fitting. Fix: changed to `if not obs.obs_video_info then return end`. Also rewrote fitting to use direct scale calculation (`max(canvas_w/src_w, canvas_h/src_h)`) instead of OBS bounds API.
2427
- **Lua test failures** — removed 5 stale assertions checking for auto-created text sources; added bar overlay placement test. Added `obs_video_info` nil guard in `fit_source_to_canvas` for test environments.
2528
- **Test counts** — Lua runtime queue: 79 → 75 (removed stale, added new); JS frontend: 104 (unchanged).
2629

docs/faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Common issues and their solutions, organized by category.
99
### Timer doesn't start
1010

1111
1. **Check the Script Log:** Tools → Scripts → Script Log. Look for errors.
12-
2. **Loaded correctly?** You should see `[SessionPulse] Loaded v5.4.1` in the log.
12+
2. **Loaded correctly?** You should see `[SessionPulse] Loaded v6.0.0` in the log.
1313
3. **Hotkey set?** Go to Settings → Hotkeys → search "SessionPulse". Make sure Start/Pause has a key assigned.
1414
4. **Custom Intervals format:** If using Custom mode, verify the format is `Name:Minutes,Name:Minutes` — no spaces around colons.
1515

shared.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* SessionPulse — Shared Utilities (ES Module)
3-
* v5.4.1
3+
* v6.0.0
44
*
55
* Canonical formatting, badge mapping, and state helpers for SessionPulse UIs.
66
*

0 commit comments

Comments
 (0)