feat: unify logging via electron-log and add IPC error boundary

Bug reports from Steam Deck (Flatpak) arrived without any useful context:
no terminal, no log file, no trace of what failed. Silent catches in
helixClient hid quota and token errors entirely. IPC handler exceptions
reached the renderer as rejected promises with no server-side record.

electron-log now writes to a rotating log file (~1 MB, 5 files) that
users can attach to bug reports. All IPC handlers are wrapped in
safeHandle, which logs and re-throws at the boundary. Optional-feature
failures (chapters, profile images, viewer counts) emit log.warn with
enough context to diagnose. A React ErrorBoundary catches render crashes
app-wide and logs them before showing a reload prompt.
This commit is contained in:
Andre
2026-05-15 09:26:03 +02:00
parent 9acf503afa
commit a5eaafbed3
16 changed files with 162 additions and 62 deletions
+12 -2
View File
@@ -1,15 +1,16 @@
{
"name": "twitch4steamdeck",
"version": "0.3.4",
"version": "0.4.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "twitch4steamdeck",
"version": "0.3.4",
"version": "0.4.5",
"license": "MIT",
"dependencies": {
"better-sqlite3": "^12.8.0",
"electron-log": "^5.4.4",
"hls.js": "^1.6.16",
"qrcode": "^1.5.4",
"react": "^18.3.1",
@@ -4237,6 +4238,15 @@
"node": ">= 10.0.0"
}
},
"node_modules/electron-log": {
"version": "5.4.4",
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-5.4.4.tgz",
"integrity": "sha512-istWgaXjBfURBSS8LWVW9C3jsc6+ac+tY1lXrQEOTp0lVj+a4OlO1Tmqb36GgnEUDv92DGC9VI1HNXwJinWpgA==",
"license": "MIT",
"engines": {
"node": ">= 14"
}
},
"node_modules/electron-publish": {
"version": "25.1.7",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-25.1.7.tgz",