release: prepare version 1.0.20 and stabilize queue UI fixtures
Windows CI / verify (push) Canceled after 0s
Windows CI / verify (push) Canceled after 0s
This commit is contained in:
+7
-7
@@ -1,13 +1,13 @@
|
||||
# Changelog
|
||||
|
||||
## Unreleased
|
||||
## 1.0.20 - 2026-09-06
|
||||
|
||||
- Respond to every rapid click on the queue details toggle, allowing the animation to reverse immediately without a perceived cooldown.
|
||||
- Animate queue details expanding and collapsing with a matching chevron rotation; keep collapsed file actions out of keyboard navigation.
|
||||
- Keep the waiting queue status unboxed with a transparent background and its yellow status dot.
|
||||
- Rework queue cards with two-line titles, clearer status badges, larger dates below the progress bar on the right, and 32-pixel remove and retry buttons. Keep paused progress visible and wrap long download errors.
|
||||
- Expand or collapse queue details by double-clicking the card surface or using the dedicated keyboard-accessible toggle. Add isolated queue-card checks for both languages and themes.
|
||||
- Resolve the repository icon during Windows hot development even when the branded Electron executable reports itself as packaged, preventing a startup crash.
|
||||
- Make queue cards easier to read with two-line titles, larger dates below the progress bar on the right, and 32-pixel remove and retry buttons.
|
||||
- Show clearer download states, preserve the progress percentage while paused, and wrap long error messages. Keep the waiting status simple with a yellow dot and no badge background or outline.
|
||||
- Open and close download details by double-clicking the card surface or using the dedicated keyboard-accessible arrow.
|
||||
- Animate details smoothly in both directions with a matching arrow rotation. Respond immediately to rapid clicks and keep collapsed file actions out of keyboard navigation.
|
||||
- Fix the Windows hot-development startup crash caused by looking for the application icon in the packaged resource directory.
|
||||
- Add isolated queue-card checks for both languages and themes, keyboard controls, animation and rapid clicks; exclude local development data and bundled third-party tools from linting.
|
||||
|
||||
## 1.0.19 - 2026-08-14
|
||||
|
||||
|
||||
+7
-1
@@ -55,7 +55,7 @@ npm run dev
|
||||
|
||||
## Entscheidungen und offene nächste Schritte
|
||||
|
||||
- Zunächst den aktuellen Quellstand und die Entwicklungsumgebung wiederherstellen. Keine neue Version veröffentlichen.
|
||||
- Wiederherstellung abgeschlossen. Sascha hat am 6. September 2026 die Veröffentlichung ausdrücklich beauftragt; Release 1.0.20 wird auf `public-v1` vorbereitet, mit identischen Assets und englischen/deutschen Changelogs auf GitHub/Forgejo.
|
||||
- Die gewünschte Umbenennung zu `Twitch Downloader` ist lokal umgesetzt. Eine Umbenennung der Remotes und der Anwendung samt Update-Kompatibilität ist gesondert abzustimmen und zu prüfen.
|
||||
- Die Standardbranches wurden bei der Wiederherstellung nicht umgestellt oder mit älteren Entwicklungslinien zusammengeführt.
|
||||
- Nächste fachliche Änderung von Sascha entgegennehmen; vor Änderungen diese Memory, `README.md`, `CHANGELOG.md` und den Git-Status lesen.
|
||||
@@ -91,3 +91,9 @@ npm run dev
|
||||
- Lint ohne Fehler bei den bekannten 15 Warnungen. Lokale Entwicklungsdaten und installierte Drittanbieter-Werkzeuge sind nun ausdrücklich von ESLint ausgeschlossen; vier Lint-Konfigurationstests erfolgreich.
|
||||
- Security-/Public-Manifest-, CI- und E2E-Isolationsprüfungen erfolgreich. Der neue UI-Test steht in der öffentlichen Datei-Allowlist; Entwicklungsdaten und Screenshots bleiben außerhalb von Git.
|
||||
- Hot-Dev bleibt aktiv. Keine Veröffentlichung und kein Live-Download für diese UI-Änderung.
|
||||
|
||||
Release-Vorbereitung 1.0.20 am 6. September 2026:
|
||||
|
||||
- Versionsangaben in Paket, Lockfile, Oberfläche, README und Release-Vertrag auf 1.0.20 gesetzt; Changelog datiert.
|
||||
- CI-Race im Queue-UI-Test behoben: Die Hintergrundsynchronisierung erhält dieselben Offline-Fixtures wie der Renderer, damit sie die Testkarten auf langsameren Runnern nicht entfernt. Keine Änderung am produktiven Queue-Verhalten.
|
||||
- Vollständige lokale Release-Prüfung und Installer-Build laufen; Veröffentlichung erst nach erfolgreicher Validierung. Abschließende Release-Verifikation folgt hier.
|
||||
|
||||
@@ -61,7 +61,7 @@ The application works in public mode without a Twitch login. Connecting a Twitch
|
||||
## Installation
|
||||
|
||||
1. Open the [latest GitHub release](https://github.com/Sucukdeluxe/Twitch-VOD-Manager/releases/latest).
|
||||
2. Download `Twitch-VOD-Manager-Setup-1.0.18.exe`.
|
||||
2. Download `Twitch-VOD-Manager-Setup-1.0.20.exe`.
|
||||
3. Run the installer and choose the installation directory.
|
||||
4. Start Twitch VOD Manager and add a streamer.
|
||||
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "twitch-vod-manager",
|
||||
"version": "1.0.19",
|
||||
"version": "1.0.20",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "twitch-vod-manager",
|
||||
"version": "1.0.19",
|
||||
"version": "1.0.20",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"axios": "^1.16.1",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "twitch-vod-manager",
|
||||
"version": "1.0.19",
|
||||
"version": "1.0.20",
|
||||
"description": "Twitch VOD Manager - Download Twitch VODs easily",
|
||||
"main": "dist/main.js",
|
||||
"author": "Sucukdeluxe",
|
||||
|
||||
@@ -13,7 +13,7 @@ const installerSource = fs.readFileSync(path.join(root, 'build', 'installer.nsh'
|
||||
const installerSmokeSource = fs.readFileSync(path.join(root, 'scripts', 'smoke-test-installer.js'), 'utf8');
|
||||
const manifestPath = path.join(root, 'scripts', 'public-release-files.json');
|
||||
const failures = [];
|
||||
const expectedVersion = '1.0.19';
|
||||
const expectedVersion = '1.0.20';
|
||||
|
||||
function check(condition, message) {
|
||||
if (!condition) failures.push(message);
|
||||
|
||||
@@ -17,7 +17,8 @@ async function main() {
|
||||
const errors = [];
|
||||
win.on('pageerror', (error) => errors.push(String(error)));
|
||||
await win.waitForFunction(() => typeof window.showTab === 'function' && typeof window.changeLanguage === 'function');
|
||||
await win.evaluate(() => {
|
||||
await win.waitForFunction((version) => appVersion === version, require('../package.json').version);
|
||||
const fixtures = await win.evaluate(() => {
|
||||
showTab('vods');
|
||||
const panel = document.querySelector('[data-context-for="vods"]');
|
||||
panel.dataset.vodsLayout = 'tabs';
|
||||
@@ -31,7 +32,14 @@ async function main() {
|
||||
{ id: 'live', status: 'downloading', title: 'Live aus dem Studio', progress: 0, isLive: true, recordingHealth: 'ok', progressStatus: 'Live-Aufnahme läuft' }
|
||||
].map((item) => ({ url: `https://example.invalid/${item.id}`, date: '2026-09-06T10:00:00Z', streamer: 'Beispielkanal', duration_str: '2h 34m', ...item }));
|
||||
renderQueue();
|
||||
return queue;
|
||||
});
|
||||
await app.evaluate(({ ipcMain }, items) => {
|
||||
ipcMain.removeHandler('get-queue');
|
||||
ipcMain.handle('get-queue', async () => items);
|
||||
}, fixtures);
|
||||
await win.evaluate(() => syncQueueAndDownloadState());
|
||||
assert.equal(await win.locator('#queueList .queue-item').count(), fixtures.length, 'Queue fixtures survive background synchronization');
|
||||
for (const theme of ['twitch', 'light']) {
|
||||
for (const language of ['de', 'en']) {
|
||||
await win.setViewportSize({ width: 1280, height: 900 });
|
||||
@@ -126,6 +134,8 @@ async function main() {
|
||||
ipcMain.removeHandler('remove-from-queue');
|
||||
ipcMain.handle('remove-from-queue', async (_event, id) => {
|
||||
if (id !== 'pending') throw new Error('Unexpected removal target');
|
||||
ipcMain.removeHandler('get-queue');
|
||||
ipcMain.handle('get-queue', async () => []);
|
||||
return [];
|
||||
});
|
||||
});
|
||||
|
||||
+1
-1
@@ -945,7 +945,7 @@
|
||||
|
||||
<div class="settings-card" data-settings-pane="updates" hidden>
|
||||
<h3 id="updateTitle">Updates</h3>
|
||||
<p id="versionInfo" class="card-intro">Version: v1.0.19</p>
|
||||
<p id="versionInfo" class="card-intro">Version: v1.0.20</p>
|
||||
<button type="button" class="btn-secondary" id="checkUpdateBtn" onclick="checkUpdate()">Nach Updates suchen</button>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user