diff --git a/documentation/TODO__Agents.md b/documentation/TODO__Agents.md index de2ff30a..6f18ec5a 100644 --- a/documentation/TODO__Agents.md +++ b/documentation/TODO__Agents.md @@ -63,6 +63,16 @@ guessing defaults. - [ ] **[Launcher] End-to-end test on macOS** — test pptx and key opens on a real podium Mac before May 26 setup day. Verify: file copies to tmp correctly, script fires, app opens in slideshow mode, error fallback works. +- [ ] **[Launcher/Electron] Wallpaper stops applying after several changes (post-CMSC)** — + After setting the wallpaper 3–5 times in a session, macOS silently ignores further `set desktop + picture` calls even though the SvelteKit side reports "Saved & Applied ✓". Restore Default + (`restore_macos_default_wallpaper`) immediately unblocks it; closing/reopening Electron does + not. **Workaround:** use Restore Default, then re-apply. **Root cause:** macOS caches the + current wallpaper path and skips the AppleScript call when the downloaded file lands at the + same temp path. **Fix (post-CMSC):** in the Electron `set_wallpaper` handler + (`aether_app_native_electron`), append a timestamp or random suffix to the temp filename on + every download so macOS always sees a new path (e.g. `wallpaper_1748123456.jpg` instead of + `wallpaper.jpg`). --- diff --git a/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_wallpaper.svelte b/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_wallpaper.svelte index d1e12588..1e7f3dce 100644 --- a/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_wallpaper.svelte +++ b/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_wallpaper.svelte @@ -145,7 +145,7 @@ async function handle_apply(): Promise<{ success: boolean; linux_test?: boolean account_id: String($ae_api.account_id ?? '') }); - if (result?.success && (result as any).linux_test_mode) { + if (result?.success && (result as { linux_test_mode?: boolean }).linux_test_mode) { linux_test_popup_data = result as Record; linux_test_popup_open = true; return { success: true, linux_test: true }; @@ -227,20 +227,18 @@ const section_description = $derived( {/if} -
+
-
-

Primary Display

-
+
+

Primary Display

+
{#each PRIMARY_PRESETS as preset (preset.value)} {/each} @@ -249,27 +247,25 @@ const section_description = $derived( type="url" bind:value={url_input} placeholder="https://… or select a preset above" - class="input input-sm preset-tonal-surface h-7 w-full text-[10px]" /> + class="input input-sm preset-tonal-surface h-8 w-full text-[10px]" /> {#if is_applied} -

Applied ✓

+

Applied ✓

{/if}
-
-

+

+

External / Projector (optional)

-
+
{#each EXTERNAL_PRESETS as preset (preset.value)} {/each} @@ -278,18 +274,18 @@ const section_description = $derived( type="url" bind:value={url_external_input} placeholder="Blank = use primary on all displays" - class="input input-sm preset-tonal-surface h-7 w-full text-[10px]" /> + class="input input-sm preset-tonal-surface h-8 w-full text-[10px]" />
-
+
{#if $ae_loc.is_native || $ae_loc.edit_mode} @@ -297,15 +293,15 @@ const section_description = $derived( type="button" onclick={handle_restore_default} title="Restore macOS default wallpaper" - class="btn btn-sm preset-tonal-surface h-8 px-2.5 opacity-60 hover:opacity-100"> - + class="btn preset-tonal-surface ring-surface-500/50 h-10 w-10 ring-1 opacity-75 hover:opacity-100"> + {/if}
{#if status}
@@ -320,19 +316,19 @@ const section_description = $derived( {#if linux_test_popup_open && linux_test_popup_data} -