From be8637a5079650aca5f3ce878c3f27083b77d735 Mon Sep 17 00:00:00 2001 From: Darrell van Swinderen Date: Wed, 23 Sep 2026 09:18:47 +0200 Subject: [PATCH 1/2] fix(renderer): Storage Saver and Publisher keep the page gutter Every page puts `px-12 py-6` on its own root and the page header above it is inset by the same 48 pixels. The two pages added in 3.5.0 left it off, so the title was inset and every panel, heading, tile and empty state under it ran flush from the sidebar to the window edge. Nothing caught it, because nothing on those pages overflowed or changed size. `screens.spec.ts` now walks every page under the header and fails when anything that paints (text, or a border you can see) sits outside the header's own inset on either side. Things a sideways scroller clips, like Today's carousel, are the scroller's business, and the clip name field's deliberate outset has a transparent border and is not counted. Proved: against the unfixed build it fails on Storage Saver with the section headings at x=232 against a gutter starting at 279. With the fix it passes. Co-Authored-By: Claude Opus 5.5 (1M context) --- src/renderer/src/views/PublisherPage.vue | 2 +- src/renderer/src/views/StorageSaverPage.vue | 2 +- tests/e2e/screens.spec.ts | 72 +++++++++++++++++++++ 3 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/views/PublisherPage.vue b/src/renderer/src/views/PublisherPage.vue index c55cd699..1e394c1a 100644 --- a/src/renderer/src/views/PublisherPage.vue +++ b/src/renderer/src/views/PublisherPage.vue @@ -115,7 +115,7 @@ function unpublishSelected(): void { diff --git a/src/renderer/src/components/Settings/RecordingSettings.vue b/src/renderer/src/components/Settings/RecordingSettings.vue index 932fbf48..dd0c1f0b 100644 --- a/src/renderer/src/components/Settings/RecordingSettings.vue +++ b/src/renderer/src/components/Settings/RecordingSettings.vue @@ -399,8 +399,18 @@ function openGuide(): void {

OBS is still recording at {{ qualityInObs ?? 'something else' }}. This lands the next time the setup is written, which cannot happen while OBS is - open. + >. + + +

import BasePanel from '@renderer/components/Base/BasePanel.vue'; import { computed } from 'vue'; -import { Icon } from '@iconify/vue'; -import { ICON_BOX, SECTION_HEADER } from '@renderer/components/Base/geometry'; +import { SECTION_HEADER } from '@renderer/components/Base/geometry'; import BaseButton from '@renderer/components/Base/BaseButton.vue'; import StorageClipTile from './StorageClipTile.vue'; import { useFormat } from '@renderer/composables/ui/useFormat'; @@ -83,11 +82,11 @@ const publishedDoomed = computed(() => doomed.value.filter((clip) => clip.publis - Delete the other {{ doomed.length }} diff --git a/src/renderer/src/components/Storage/BurstSection.vue b/src/renderer/src/components/Storage/BurstSection.vue index 3d48c703..63d96e7e 100644 --- a/src/renderer/src/components/Storage/BurstSection.vue +++ b/src/renderer/src/components/Storage/BurstSection.vue @@ -54,7 +54,15 @@ const emit = defineEmits<{