Changelog
Full release history for KUMA Timer — macOS & Windows professional countdown timer.
New
- KUMA Live — share your timer over the internet with a QR code link; remote speakers see the countdown in real-time from any browser, no LAN needed. Up to 2 viewers per session with optional remote messaging
- Ring gradient mode — smooth green → orange → red gradient synced with colour thresholds
- Separate auto-start options — independent toggles for auto-start on Cue load and Preset load
- Ring & bar background colours — customisable track colours for ring and progress bar
- Timezone picker — dropdown with 50 common timezones replaces the free-text field
Changed
- Display settings redesign — reorganised into Text Colour, Ring, and Progress Bar groups
- Blink on overtime — now works on all outputs: display, NDI, web and KUMA Live
- Round timer text — 20% larger for readability
- Limitimer USB filtering — port dropdown excludes Bluetooth and virtual ports
Fixed
- Pause from Count Up mode now correctly resumes as Count Up (not countdown)
- Web mirror gradient progress bar no longer crashes on load
- PVM mode no longer freezes display, NDI and web outputs
New
- Update popup with changelog — clicking ▲ UPDATE opens a dialog with release notes and a platform-aware download button
- Redesigned SET row — HH/MM/SS spinboxes and SET button in a single row for easier touch use
New
- QR code for /control panel — scan with any phone to open the remote control page
- SMS templates — save messages as permanent templates from the Send SMS dialog
- Keyboard shortcuts — Space play/pause, R reset, H hide/show
New
- COUNT UP mode — counts upward from preset or zero; works across all outputs (display, NDI, CDEther, LimiTimer, web overlay, Companion)
- LimiTimer health check — detects device power-off, auto-reconnects with status indicator
New
- CDEther MAC/ARP discovery — instant detection by Interspace OUI; colour-coded scan UI with device picker
- Background image — choose between solid colour and image (JPEG/PNG/GIF); fills display without aspect ratio lock; inherited by web overlay
- Smooth animations — ring and progress bar interpolate at ~30 fps instead of jumping once per second
- Time of Day timezone — IANA timezone support for clock mode
New
- Single-instance guard — prevents duplicate windows
- Touch keyboard — optional on-screen keyboard for touchscreen setups (numeric pad + QWERTY)
- Bug report dialog — copy system info and send via email or GitHub Issues
- Ring style setting — Progress (depletes), Solid (always full), or Outline only
- Web overlay improvements — ring tracks timer colour, depletes correctly, smooth animation, SMS scroll works
New
- SMS Fullscreen mode — message fills the entire display window; timer hidden; text auto-scales
- Dsan LimiTimer — RS-485 output with proper DSAN PCT-2 protocol (CRC16-MODBUS, BCD encoding, Run/Blink flags)
- Multi-monitor support — display window reliably targets the correct screen on mixed-DPI setups
New
- Microsoft Store — KUMA Timer available on the Microsoft Store
- NDI on Windows — NDI runtime bundled; no separate install required
New
- Round Clock mode — circular ring timer on all outputs: display window, NDI, Presenter View, Web Mirror
- Ring direction — Countdown (empties) or Fill up (fills)
- Smooth SMS scroll — time-based animation, stutter-free
New
- NDI TX Output — stream 1920×1080 timer to any NDI receiver (vMix, OBS, Resolume); runtime bundled
- Web Controller — password-protected browser panel for remote control from any phone or tablet
- Timer Font Selector — Courier New, Menlo, Monaco, Consolas; applies to display and NDI
- Status bar — compact coloured indicators (CDEther, LimiTimer, NDI, WEB) with hover tooltips
New
- Companion: Previous Cue action and preset button
- Companion: Set Display Mode action — switch between Timer and Clock from Companion
- Companion: Low Time Warning feedback — button changes colour when progress drops below a set threshold (e.g. <20%)
- Companion: Cue is active feedback — highlights the currently loaded cue button
- Companion: Speaker Name Info preset — shows
$(pltech-kumatimer:cue_name)
- Companion:
display_mode variable (TIMER / CLOCK)
- Companion module: 113 unit tests (vitest) — all actions, feedbacks, variables and presets covered
- Companion module: ESLint (v9 +
@companion-module/tools shared config) — zero warnings
- Companion module: LICENSE (MIT) and README.md — Bitfocus store submission ready
- Cue dialog asks for Hours when HH:MM:SS format is active
Changed
- Companion module ID renamed:
pltech-kumatimer-http → pltech-kumatimer (HTTP removed)
- Companion variable prefix updated:
$(KUMA_Timer:…) → $(pltech-kumatimer:…)
- Companion module fully rewritten in TypeScript (ESM, yarn 4, strict mode)
- Companion: START button shows LIVE (bright green) while timer is running
- Companion: PAUSE button switches to RESUME (green) when paused
- Companion: HIDE button switches to SHOW (red) when display is hidden
- Companion: Timer display button changes colour by status — green/orange/red/grey
- Companion: Preset buttons show real values (
5M, 10M…) instead of generic P1–P6
- Companion:
cue_name variable now reads from active speaker, not display label
- Companion: SMS message text field is empty by default
_creds.py removed from git history — credentials no longer in repository
Fixed
- Companion: STOP preset was calling non-existent action — now correctly calls Reset
- Companion: +1m / −1m presets used wrong action IDs
- Companion: Loading a Cue from Companion crashed KUMA Timer
- Companion: Overlapping poll requests no longer stack up — guard prevents concurrent fetches
- Companion: Active cue index type mismatch fixed (string vs number comparison)
- Web mirror: HH:MM:SS font scales correctly, no longer overflows
New
- Bitfocus Companion HTTP module: dynamic Cue presets loaded live from cuesheet
- Companion: Preset buttons show real values (
5M, 10M…) instead of generic P1–P6
- Companion:
/api/status now exposes presets[] and cues[] arrays
- Cue dialog: asks for Hours when
HH:MM:SS format is active
Changed
- Companion poll optimised: feedbacks refresh every 500 ms, cue/preset check every 10 s
- Cue/preset data loads on first poll (500 ms) instead of after 10 s cold start
- SMS colour picker buttons widened (80 px → 120 px) for easier colour selection
Fixed
- Web mirror (
/mirror): HH:MM:SS font now scales correctly — no longer overflows
- Credentials removed from git history;
_creds.py excluded from repository
New
- Bitfocus Companion module switched to HTTP/JSON API — full control via
/api/status + /api/command, no OSC required
- API Reference page (
api.html) with full endpoint documentation
- SMS overhaul: saved/recent history, 6 colour presets, auto-scroll speed, settings tab
- Cue edit in-line and next-cue button
- Cue name shown on display window
- Auto-update checker using
latest.json from kuma.pl-tech.co.uk
Changed
- Connections tab split into two sections: HTTP API and OSC Protocol
- Default OSC listen port changed
8000 → 9000 (port 8000 conflicts with Companion web GUI)
- OSC Incoming / OSC Outgoing labels clarified in Settings
- OSC overtime widgets grey out when OSC is disabled
Removed
- VT (Video Track) / QLab integration mode removed — less is more
New
- LTC receiver mode — reads SMPTE timecode from audio input, displays
HH:MM:SS:FF in cyan
- Presenter View Mode (PVM): two-row control bar, M/S spinboxes, progress bar
- Bitfocus Companion OSC module with feedbacks, variables and presets
/kuma/settime OSC command — load exact time as HH:MM:SS string
- Companion module download and install guide on website
- Website with download page, documentation and auto-update via
latest.json
Fixed
- LTC decoder: correct calibration and full-buffer sync scan with device fallback
- SSL certificate handling on Windows using
certifi
- Non-blocking dashboard fetch (no longer freezes UI)
- Update checker: correctly parses RC pre-release versions
- NSMicrophoneUsageDescription added for macOS LTC audio permission prompt
- LTC display font size and crash on close
- LTC mode: status label visible, cuesheet hidden, display shows
HH:MM:SS:FF
New
- SMS message always scrolls; speed auto-adjusted to fill duration
- Early LTC receiver implementation (audio SMPTE input)
New
- Windows installer (Inno Setup) — KUMA Timer now available for Windows 10/11 x64
- OSC status feedback:
LIVE / PAUSED / STANDBY / HIDDEN sent to Companion
- GitHub Actions CI: automated macOS (Apple Silicon) and Windows builds
- HELP.md — full user guide in English
Fixed
- macOS 26 Tahoe crash: Qt permission plugin removed from bundle
- Qt platform plugins and Flask bundled correctly by PyInstaller
- Restore Defaults now correctly refreshes preset buttons in UI
- Security issues, BCD encoding, cue list bug fixes
- OSC
/kuma/warp and /kuma/preset: correct minutes/seconds conversion
Changed
- Single source of truth for
APP_VERSION in constants.py
- Security: hardcoded credentials moved to obfuscated module
- Fullscreen scaling improvements, IP label overflow fix
New
- Dynamic UI — fullscreen scaling, sidebar, cogwheel settings button
- Hardware ID for telemetry and dynamic versioning
- Real-time UI refresh for HH:MM:SS format and Warp panel
- LIVE label stays red after UI rescale / settings reload
Fixed
- Settings save/exit polished
- Default settings restored correctly
- Toggle timer button logic (show/hide state + label)
New
- Smooth Warp 2.0 — silently adjusts tick speed to hit zero at the right moment
- About window with branding
- Professional icons
- Restore Defaults option
- Background telemetry
New
- Countdown timer with MM:SS and HH:MM:SS display
- OSC remote control — start, pause, reset, warp, presets
- Web Mirror — built-in HTTP server for browser display
- Cuesheet with named speakers and individual times
- Send Message to Screen (SMS) scrolling marquee
- Overtime count-up with colour warnings
- Presenter View Mode — always-on-top floating window