Go to file
xRangerDE 020f3dacf1 harden: GQL retry on transient errors + consolidate shutdown cleanup
Two server-side changes touching different paths.

1. fetchPublicTwitchGql now retries on transient HTTP (408/429/5xx) and
   network-layer failures (no response). Up to 3 attempts with
   exponential backoff + jitter (400ms * 2^(n-1)). The previous
   catch (e) { return null; } swallowed network blips on the public
   fallback path, which is what every user without a client_id hits
   on each VOD list load — a single TCP RST produced an empty list
   and the user had to click refresh. GraphQL errors[] are still
   returned without retry (application-level query rejections).
   Recovery is logged via appendDebugLog so we can later see whether
   the retries actually pay off in production.

2. shutdownCleanup() consolidates window-all-closed and before-quit.
   The two handlers ran nearly identical cleanup blocks but had
   drifted: only window-all-closed killed children and was
   platform-aware. The helper kills activeDownloads + activeClipProcesses
   + currentEditorProcess with try/catch, persists config + queue,
   then stops timers (debug-log flush moved AFTER persistence so any
   save error reaches the log before the timer is gone). An idempotent
   shutdownCleanupDone flag makes a follow-on event a no-op.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 15:54:40 +02:00
build chore: migrate repository to Codeberg, bump version to 4.2.0, update update logic 2026-03-01 20:23:21 +01:00
docs ui: VOD list filter with persistence + Ctrl+F focus + Esc clear 2026-05-03 15:43:16 +02:00
scripts infra: release_gitea.mjs --skip-build + playwright in devDeps 2026-05-03 15:29:17 +02:00
src harden: GQL retry on transient errors + consolidate shutdown cleanup 2026-05-03 15:54:40 +02:00
.gitignore chore: migrate repository to Codeberg, bump version to 4.2.0, update update logic 2026-03-01 20:23:21 +01:00
eslint.config.mjs chore: add ESLint with security plugin, fix code quality warnings 2026-03-22 14:55:35 +01:00
package-lock.json release: 4.5.10 clip hardening, VOD filter, editor proc decoupling 2026-05-03 15:43:30 +02:00
package.json release: 4.5.10 clip hardening, VOD filter, editor proc decoupling 2026-05-03 15:43:30 +02:00
README_AI_RELEASE.md docs: add AI release runbook for gitea 2026-03-05 01:04:18 +01:00
tsconfig.json chore: migrate repository to Codeberg, bump version to 4.2.0, update update logic 2026-03-01 20:23:21 +01:00