Commit Graph

5 Commits

Author SHA1 Message Date
nonna
add0f803cd Fix status flicker during WebSocket reconnect loop
connect() was unconditionally calling setStatus('connecting', ...) at the
top of each attempt, causing a visible flicker over "Disconnected —
retrying..." every 3 seconds during the retry loop.

Fix: add everConnected flag (was missing from Neutralino version);
connect() only shows "Connecting..." on the first attempt. onclose now
uses everConnected instead of _hadError to determine state. onerror no
longer sets its own status — onclose is the sole status updater on
disconnect, eliminating a second flicker source. everConnected is reset
on Save so pointing at a new server shows "Connecting..." cleanly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 01:19:51 +00:00
nonna
92d79a7d45 Fix WebSocket never connecting due to init race condition
Neutralino.init() establishes an internal WebSocket asynchronously.
Calling storage.getData() before the "ready" event fires could stall
silently, meaning init() never reached connect(). Also, "ready" can
fire before DOMContentLoaded, so DOM refs would be null.

Fix: wait for both "ready" AND DOMContentLoaded before calling init(),
guaranteeing native APIs and DOM are both available.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 00:26:41 +00:00
nonna
6c4731eac0 Application runs, but seems unable to actually connect to the Kokoro server. 2026-03-12 00:10:00 +00:00
nonna
ce92a21874 Fix MODULE_NOT_FOUND on npm start
Use explicit path to neu CLI binary instead of relying on .bin/
shim resolution, which fails when the shell PATH doesn't include
node_modules/.bin/ — same fix applied to the Electron build.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 00:57:51 +00:00
nonna
2c369d74b1 Initial Neutralino.js POC for kokoro-widget
Lightweight alternative to the Electron build (~5MB vs ~300MB).
Uses system webview (WebKit2GTK on Linux, WKWebView on macOS,
WebView2 on Windows). Same UI and feature set as the Electron build:
WebSocket audio client, volume control, host/port settings, tray icon,
hide-to-tray on close, CLI args (--host, --port, --volume).

Note: Linux requires libwebkit2gtk-4.0 or libwebkit2gtk-4.1.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 00:44:45 +00:00