fix(release): harden updater status and cutter layout
Windows CI / verify (push) Failing after 3m37s

Ignore malformed update notifications that do not carry a version, preventing unusable release prompts in installed builds.

Keep the loaded cutter workspace free of the source selector and give cutter export selects an explicit non-repeating indicator after workspace styling.

Add regression coverage, bump the patch release to 1.0.10, and update public installation documentation.
This commit is contained in:
Sucukdeluxe
2026-08-12 21:30:08 +02:00
parent 7d4ba91543
commit aa28a0b870
14 changed files with 137 additions and 20 deletions
+29 -1
View File
@@ -200,6 +200,34 @@ async function run() {
await win.setViewportSize({ width: 1440, height: 900 });
await win.emulateMedia({ reducedMotion: 'reduce' });
await win.evaluate(() => window.showTab('cutter'));
await win.evaluate(() => {
document.getElementById('cutterWorkspace').classList.add('shown');
document.getElementById('cutterExportProfile').disabled = false;
});
await win.locator('#cutterExportProfile').waitFor({ state: 'visible' });
const cutterExportProfileBox = await win.locator('#cutterExportProfile').boundingBox();
if (!cutterExportProfileBox) throw new Error('Export profile is not visible');
await win.mouse.move(cutterExportProfileBox.x + cutterExportProfileBox.width / 2, cutterExportProfileBox.y + cutterExportProfileBox.height / 2);
const cutterExportProfilePresentation = await win.evaluate(() => {
const style = getComputedStyle(document.getElementById('cutterExportProfile'));
return {
backgroundImage: style.backgroundImage,
backgroundRepeat: style.backgroundRepeat,
backgroundPosition: style.backgroundPosition,
sourceDisplay: getComputedStyle(document.querySelector('.cutter-source-bar')).display,
};
});
check(
cutterExportProfilePresentation.backgroundImage !== 'none'
&& cutterExportProfilePresentation.backgroundRepeat === 'no-repeat'
&& cutterExportProfilePresentation.backgroundPosition.includes('8px')
&& cutterExportProfilePresentation.sourceDisplay === 'none',
`Export profile indicator is tiled or misplaced: ${JSON.stringify(cutterExportProfilePresentation)}`
);
await win.evaluate(() => {
document.getElementById('cutterWorkspace').classList.remove('shown');
document.getElementById('cutterExportProfile').disabled = true;
});
const additionalContainerCapabilities = await Promise.all(Object.entries(additionalContainerFiles).map(async ([extension, filePath]) => ({
extension,
capability: await createCutterCapability(win, filePath),
@@ -316,7 +344,7 @@ async function run() {
`Disabled empty-player volume control still expands on hover: ${JSON.stringify({ emptyVolumeBefore, emptyVolumeAfter })}`
);
if (process.env.TWITCH_VOD_MANAGER_CUTTER_EMPTY_ONLY === '1') {
console.log(JSON.stringify({ failures, runtimeIssues, emptyLayout, emptyFullscreenLayout, emptyVolumeBefore, emptyVolumeAfter }, null, 2));
console.log(JSON.stringify({ failures, runtimeIssues, cutterExportProfilePresentation, emptyLayout, emptyFullscreenLayout, emptyVolumeBefore, emptyVolumeAfter }, null, 2));
if (failures.length > 0) process.exitCode = 1;
return;
}