Commit Graph

169 Commits

Author SHA1 Message Date
xRangerDE
4489319d70 release: 4.6.76 VOD checkbox aria-label + CSS extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 05:24:51 +02:00
xRangerDE
e56bac2c2b release: 4.6.75 Ctrl+F focuses archive search on Archiv tab
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 05:18:37 +02:00
xRangerDE
00e19ccf67 release: 4.6.74 fix TAB_IDS — stats + archive tabs now reachable
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 05:15:30 +02:00
xRangerDE
62400e4aa0 release: 4.6.73 remove 3 high-volume console.log calls
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 05:09:29 +02:00
xRangerDE
a46984d8ab release: 4.6.72 stats size-bucket histogram CSS extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 05:04:08 +02:00
xRangerDE
2cdbbe31ef release: 4.6.71 stats activity chart CSS extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:59:34 +02:00
xRangerDE
162b2845aa release: 4.6.70 stats top-streamers bar list CSS extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:54:56 +02:00
xRangerDE
7ffd52a901 release: 4.6.69 stats KPI cards CSS extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:50:24 +02:00
xRangerDE
3905b73751 release: 4.6.68 archive search results CSS extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:45:39 +02:00
xRangerDE
58f8164db4 release: 4.6.67 toast live region for screen readers
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:40:33 +02:00
xRangerDE
7be9453762 release: 4.6.66 update-banner progress bar a11y
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:36:43 +02:00
xRangerDE
01acbcc47f release: 4.6.65 cut + merge progress bars a11y role=progressbar
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:31:42 +02:00
xRangerDE
6213134a27 release: 4.6.64 queue progress bar role=progressbar + aria-valuenow
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:27:14 +02:00
xRangerDE
c6ae0cadbd release: 4.6.63 .select-compact for 4 inline-styled selects
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:22:16 +02:00
xRangerDE
1c62cf4a92 release: 4.6.62 open-file blocks executable extensions
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:16:46 +02:00
xRangerDE
73eaccb483 release: 4.6.61 scheme-validate open-external IPC
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:12:51 +02:00
xRangerDE
7e60d0e920 release: 4.6.60 bound renderer storyboard cache to 100 entries
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:08:43 +02:00
xRangerDE
96683afa14 release: 4.6.59 localize clip-cutter "Invalid time values" alert
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 04:00:28 +02:00
xRangerDE
8ef2ce50e7 release: 4.6.58 merge-tab empty state DOM-built
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:56:13 +02:00
xRangerDE
1b8624d88a release: 4.6.57 live-status poller — eviction on empty list
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:51:42 +02:00
xRangerDE
4518f8867a release: 4.6.56 queue-item title + selector keyboard-accessible
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:46:41 +02:00
xRangerDE
e95be22a02 release: 4.6.55 profile header avatar wrap + live card keyboard-accessible
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:41:22 +02:00
xRangerDE
5e369fef35 release: 4.6.54 VOD cards keyboard-activatable
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:37:15 +02:00
xRangerDE
0b99014de3 release: 4.6.53 streamer-item row keyboard-accessible + aria-current
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:32:04 +02:00
xRangerDE
78eeb8f3dc release: 4.6.52 sidebar nav-items keyboard-accessible + aria-current
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:27:53 +02:00
xRangerDE
a82a8f97f7 release: 4.6.51 AUTO/VOD/REC chip a11y — role + aria-pressed + keyboard
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:23:30 +02:00
xRangerDE
6086cd51c1 release: 4.6.50 remove-X buttons keyboard-accessible + aria-labeled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:18:18 +02:00
xRangerDE
5f7ce36845 release: 4.6.49 queue detail labels localized + retry button styled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:13:43 +02:00
xRangerDE
edf3836b26 release: 4.6.48 update-banner progress bar CSS extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:08:00 +02:00
xRangerDE
144088c01f release: 4.6.47 unified template-lint + retire hard-coded shades
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 03:04:31 +02:00
xRangerDE
9d4f5fd9a3 release: 4.6.46 inline-toggle class for compact filter-row toggles
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:58:53 +02:00
xRangerDE
f473f9e343 release: 4.6.45 fix duration badge overlapping + Queue button
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:55:55 +02:00
xRangerDE
10513f7399 release: 4.6.44 toggle-row class — 17 inline copies unified
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:53:03 +02:00
xRangerDE
d99fff5923 release: 4.6.43 queue empty state — class-based card
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:47:14 +02:00
xRangerDE
7909beb516 release: 4.6.42 form utility classes extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:43:23 +02:00
xRangerDE
e68db24e10 release: 4.6.41 storage stats table CSS extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:38:22 +02:00
xRangerDE
a7e189fef9 release: 4.6.40 live-status IPC payload trim
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:33:10 +02:00
xRangerDE
336fc77c85 release: 4.6.39 status bar cleanup + drop stale version hardcode
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:28:29 +02:00
xRangerDE
ce01034586 release: 4.6.38 sidebar streamer-list empty-state
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:24:51 +02:00
xRangerDE
a7c251f016 release: 4.6.37 localize VOD/Merge empty-state strings
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:20:29 +02:00
xRangerDE
db32f01ddb release: 4.6.36 events viewer rows class-based + data-type pills
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:14:34 +02:00
xRangerDE
4809da8957 release: 4.6.35 unify filter inputs + monospace template class
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:09:46 +02:00
xRangerDE
a373410b89 release: 4.6.34 viewer modal style extraction + dead var
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:05:37 +02:00
xRangerDE
0ae0f8bb7d release: 4.6.33 localize modal close aria-labels
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 02:00:29 +02:00
xRangerDE
4956a68d9b release: 4.6.32 clip-cutter modal repaint + global radio styling
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:56:08 +02:00
xRangerDE
32decb4c01 release: 4.6.31 modal a11y — dialog roles + aria-labels
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:50:27 +02:00
xRangerDE
5200126565 release: 4.6.30 dead code cleanup + profile type clarity
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:46:13 +02:00
xRangerDE
2f91823161 release: 4.6.29 VOD bulk-bar slide-in + style extraction
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:41:09 +02:00
xRangerDE
fdeb1697de release: 4.6.28 active streamer highlight + dead scrollbar cleanup
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:36:32 +02:00
xRangerDE
c7d0bb7e30 release: 4.6.27 range slider repaint + number input cleanup
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:31:29 +02:00
xRangerDE
693acfe49c release: 4.6.26 custom-styled checkboxes + select dropdowns
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:27:05 +02:00
xRangerDE
f6333bf6f5 release: 4.6.25 streamer counter + duration badge + queue shimmer + chat polish
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:23:19 +02:00
xRangerDE
8edbef0a60 release: 4.6.24 input focus + queue polish + toast + btn-icon fix
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:18:12 +02:00
xRangerDE
f6905fae82 release: 4.6.23 skeleton cards + tab fade + modal polish + scrollbar
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:14:16 +02:00
xRangerDE
8928d1f8ed release: 4.6.22 sidebar live indicators + polished hover + empty-state
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:11:27 +02:00
xRangerDE
fa8c2b2658 release: 4.6.21 sticky header opaque + banner visible + button styles
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:04:23 +02:00
xRangerDE
bd54ba9cfb release: 4.6.20 banner + live preview + VOD hover storyboard + sticky header
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:55:18 +02:00
xRangerDE
1b87a2611e release: 4.6.19 fix public-mode profile avatar (roles instead of broadcasterType)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:43:53 +02:00
xRangerDE
f564567897 release: 4.6.18 fix profile avatar fallback (real Twitch picture now loads)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:41:04 +02:00
xRangerDE
ef6b82bb8b release: 4.6.17 streamer profile header above VOD grid
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:38:39 +02:00
xRangerDE
a43fc6689c release: 4.6.16 auto-merge resumed live-recording parts
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:29:55 +02:00
xRangerDE
7d4ee9eb40 release: 4.6.15 local archive search
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:26:43 +02:00
xRangerDE
cf141eb9df release: 4.6.14 archive statistics dashboard
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:20:15 +02:00
xRangerDE
b21634b5f7 release: 4.6.13 auto-resume live recording across streamlink crashes
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:10:45 +02:00
xRangerDE
805231ae2f release: 4.6.12 manual scan-now + automation status line
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 22:10:00 +02:00
xRangerDE
398206e01c release: 4.6.11 live recording health indicator
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 22:04:54 +02:00
xRangerDE
ddaf4807f4 release: 4.6.10 auto-vod-download per-streamer toggle + background poller
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 21:59:06 +02:00
xRangerDE
2f1e5f4a9e release: 4.6.9 live recording meta + events viewer modal
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 21:50:14 +02:00
xRangerDE
5098510d53 release: 4.6.8 in-app chat replay viewer
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 21:42:42 +02:00
xRangerDE
dc0b92d5a4 release: 4.6.7 stream-events log during live recording
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 21:38:41 +02:00
xRangerDE
cd5c4daccf release: 4.6.6 auto-cleanup for old recordings
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 21:34:19 +02:00
xRangerDE
f7cf1b8cd9 release: 4.6.5 per-streamer storage stats panel
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:54:20 +02:00
xRangerDE
97d8cc10ef release: 4.6.4 Discord webhook notifications
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:50:59 +02:00
xRangerDE
0ab3780ab1 release: 4.6.3 live chat capture during recording
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:46:51 +02:00
xRangerDE
81c775a92e release: 4.6.2 VOD chat-replay download alongside video
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:40:16 +02:00
xRangerDE
363629583a release: 4.6.1 auto-record polling for set-and-forget live archival
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:35:20 +02:00
xRangerDE
1c5462b7fe release: 4.6.0 live stream recording
Major: each streamer now has a "REC" button. When the channel is
live, click captures into the queue with an open-ended streamlink
recording until the stream ends. Output goes to
{download_path}/{streamer}/live/{streamer}_LIVE_{date}_{time}.mp4.

VODs vanish from Twitch within weeks; this closes the gap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:30:09 +02:00
xRangerDE
49200f4ca6 release: 4.5.28 stats-bar pause + bulk-mark downloaded + title tooltip
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:20:43 +02:00
xRangerDE
092932d8d5 release: 4.5.27 disable-ads + queue context menu + cleanup
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:11:41 +02:00
xRangerDE
80aa66e46d release: 4.5.26 streamlink quality + per-item notifications + path validation
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:00:37 +02:00
xRangerDE
2e859c88f3 release: 4.5.25 streamer search + cutter drag-drop + scroll persistence
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 16:03:48 +02:00
xRangerDE
e5decfd851 release: 4.5.24 taskbar progress, VOD card delegation, context menu, LRU bound
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 15:56:34 +02:00
xRangerDE
504007600b release: 4.5.23 hide-downloaded filter + reset list + config export/import
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 15:46:22 +02:00
xRangerDE
56d4e0904f release: 4.5.22 auto-resume queue + already-downloaded VOD indicator
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 15:16:22 +02:00
xRangerDE
cb8e92732e release: 4.5.21 cutter/merge i18n, per-item retry, status-bar summary
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:02:43 +02:00
xRangerDE
766cdfe371 release: 4.5.20 trim-VOD dialog i18n + API help link + log file shortcut
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 13:33:10 +02:00
xRangerDE
9dcdb8086e release: 4.5.19 backend error i18n + light-theme color fix
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 12:33:19 +02:00
xRangerDE
7308a52a3e release: 4.5.18 streamer drag-reorder + VOD bulk-queue checkboxes
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 12:24:30 +02:00
xRangerDE
6c3dc3d1b6 release: 4.5.17 queue file actions + clickable finish notification
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 12:19:30 +02:00
xRangerDE
f04c0b64cc release: 4.5.16 skip-version, streamer validation, scheduler tooltip
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 12:14:14 +02:00
xRangerDE
83647c264b release: 4.5.15 trim button label matches dialog title
VOD-card button now reads "Trim VOD" / "VOD zuschneiden" to mirror
the dialog title exactly (was "Trim" / "Zuschneiden" in 4.5.14).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 11:59:24 +02:00
xRangerDE
075eb7b3b5 release: 4.5.14 rename VOD-card "Clip" button to Trim/Zuschneiden
Follow-up to 4.5.13: the button on each VOD card that opens the
"Trim VOD" dialog now reads "Trim" (EN) / "Zuschneiden" (DE) instead
of "Clip". Language switch now re-renders the VOD grid so labels
update live.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 11:55:59 +02:00
xRangerDE
3c0af2765e release: 4.5.13 rename trim dialog to "Trim VOD" / "VOD zuschneiden"
User-visible: the modal opened by the per-VOD "Clip" button now reads
"Trim VOD" (EN) / "VOD zuschneiden" (DE) instead of "Trim clip" /
"Clip zuschneiden" — disambiguates from the separate Twitch Clips
feature.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 11:49:19 +02:00
xRangerDE
37b793b9e8 release: 4.5.12 Parts-format preset for clip trimming
User-visible: Trim-Clip dialog now exposes the {date}_Part{part_padded}
naming pattern (e.g. 08.05.2026_Part07.mp4) as a radio preset, matching
the global VOD-parts template.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 11:46:21 +02:00
xRangerDE
173ae61a3f release: 4.5.11 GQL retry, VOD sort, shutdown consolidation
- public-API fallback retries on transient HTTP/network errors so a
  single TCP RST does not produce an empty VOD list
- new VOD list sort dropdown with persisted key (newest, oldest,
  most viewed, longest, shortest)
- shutdownCleanup() consolidates window-all-closed and before-quit
  into one idempotent helper so future exit-time cleanup lands once

See docs/IMPROVEMENT_LOG.md (Cycle 4, 2026-05-03) for the dated
rationale and regression run.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 15:55:03 +02:00
xRangerDE
81a1f914b4 release: 4.5.10 clip hardening, VOD filter, editor proc decoupling
- download-clip: sanitize broadcaster name + title, ensure unique
  filename, post-download size + integrity check, track in
  activeClipProcesses so window-close cleans up
- VOD list: persistent filter input with Ctrl+F focus, Esc clear,
  match counter (DE + EN strings)
- currentProcess split into currentEditorProcess (cutter/merger/
  splitter only) so cancel-download no longer accidentally kills a
  separate video cut

See docs/IMPROVEMENT_LOG.md (Cycle 3, 2026-05-03) for the dated
rationale and regression run.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 15:43:30 +02:00
xRangerDE
9d57c03e74 release: 4.5.9 release pipeline + defensive parsing
- scripts/release_gitea.mjs: --skip-build flag and auto-skip when
  artifacts for the version already exist on disk
- playwright in devDependencies; test:e2e* scripts call node directly
- loadConfig isPlainObject shape check + loadQueue sanitizes every
  entry incl. customClip/mergeGroup; stale status="downloading" is
  demoted to "pending" so the queue can actually be resumed

See docs/IMPROVEMENT_LOG.md (Cycle 2, 2026-05-03) for the dated
rationale and regression run.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 15:29:37 +02:00
xRangerDE
b4faf67db7 infra: release_gitea.mjs --skip-build + playwright in devDeps
Two release-pipeline fixes that previously forced manual workarounds.

- scripts/release_gitea.mjs no longer unconditionally runs npm run dist:win.
  New --skip-build flag, plus auto-skip when all 3 required artifacts
  (Setup-<v>.exe, Setup-<v>.exe.blockmap, latest.yml) already exist for
  the requested version. The previous behaviour re-ran the entire test
  suite + electron-builder on every release attempt — unusable when the
  test path was broken.
- playwright ^1.59.1 added to devDependencies. test:e2e / test:e2e:guide
  / test:e2e:full now invoke node scripts/smoke-test*.js directly instead
  of "npm exec --yes --package=playwright -- node ...", which failed with
  MODULE_NOT_FOUND when npm exec could not resolve playwright on the fly.
  No browser binaries needed — the smoke tests drive Electron via
  _electron, not a browser.

All test paths verified after the change: test:e2e, test:e2e:guide,
test:e2e:full, test:merge-split, test:e2e:update-logic — all pass with
the simplified scripts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 15:29:17 +02:00
xRangerDE
707c98e19d release: 4.5.8 fsync atomic writes, parallel filename race, UI persistence
Stability + UX cycle.

- saveConfig and writeQueueToDisk now use openSync+writeSync+fsyncSync+
  closeSync+renameSync via writeFileAtomicSync. Survives power loss
  between write and rename (used to leave the renamed file empty and
  silently reset config / queue on next launch).
- Per-item claimedFilenames map fixes the parallel-download race where
  one item finishing wiped sibling claims and let a third item collide
  on the same output path.
- Renderer queue lookup by [data-id] (no more index drift), active tab
  persisted in localStorage, Escape closes the topmost open modal,
  Ctrl/Cmd+1..5 jumps tabs.

See docs/IMPROVEMENT_LOG.md for the dated rationale and regression run.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 15:11:14 +02:00
xRangerDE
54197af863 release: 4.5.7 fix notification app name
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 04:20:21 +02:00