diff --git a/documentation/PROJECT__AE_Events_Launcher_Native_integration.md b/documentation/PROJECT__AE_Events_Launcher_Native_integration.md index 00cd0381..2ae52724 100644 --- a/documentation/PROJECT__AE_Events_Launcher_Native_integration.md +++ b/documentation/PROJECT__AE_Events_Launcher_Native_integration.md @@ -1,7 +1,7 @@ # Aether Events Launcher: Native Electron Integration > **Status:** Operational / Phase 5 Implementation -> **Last Updated:** 2026-03-11 +> **Last Updated:** 2026-05-11 > **Primary Platform:** macOS (Darwin) > **Fallback Platform:** Linux / Windows diff --git a/documentation/TODO__Agents.md b/documentation/TODO__Agents.md index ba69fc7b..15a9fe7a 100644 --- a/documentation/TODO__Agents.md +++ b/documentation/TODO__Agents.md @@ -6,10 +6,44 @@ ## 🔴 CMSC Charlotte — May 27 (Presentation Management) **Drive down:** May 25 | **Setup:** May 26 morning | **Show:** May 27+ -- [ ] **[Electron/Launcher] Clean up presentation file launch scripts** — BGH show revealed - issues with the scripts used to open/launch presentation files through the Electron Launcher. - Audit and improve the launch/open flow (script reliability, error handling, file path resolution). - Must be tested and ready before May 26 setup day. +**[Electron/Launcher] Clean up presentation file launch scripts** — BGH show revealed issues +with the scripts used to open/launch presentation files. Architecture decision: move launch +logic to the Svelte side so it can be changed without an Electron rebuild. Electron becomes a +thin OS primitive layer; all business logic lives in Svelte and device config. + +**Electron groundwork (2026-05-11) — DONE:** +- [x] `run_osascript` hardened — temp `.scpt` file approach; handles multi-line + special chars +- [x] `native:copy-from-cache-to-temp` primitive added — copy to tmp, caller decides launch +- [x] `native:launch-from-cache` accepts optional `script_template` — AppleScript or `shell:` prefix; falls back to hardcoded defaults when null +- [x] `get_launch_script_template()` in `launcher_file_cont.svelte` reads from device config then event config; passes result to `launch_from_cache` + +**Svelte-side migration — remaining before May 26:** +- [ ] **[Launcher] Built-in Svelte default templates** — move the "known good" pptx/key/pdf + AppleScript strings out of Electron hardcode and into a Svelte constants file (e.g. + `ae_launcher__default_launch_scripts.ts`). Priority: `get_launch_script_template()` already + checks device config and event config; add a 3rd fallback to these Svelte defaults before + returning `null`. This means Electron's hardcoded defaults become the last-resort only. +- [ ] **[Launcher] Composable open flow** — refactor `handle_open_file()` to use + `copy_from_cache_to_temp` + `run_osascript` / `run_cmd` directly instead of the all-in-one + `launch_from_cache`. Finer error handling at each step (verify copy succeeded before + attempting script; surface failure clearly in UI). +- [ ] **[Launcher] Error handling + fallback** — when the launch script fails, offer fallback + to `open_local_file_v2` (OS default handler) rather than silently failing. Show error detail + in the launcher file row so staff can diagnose onsite. +- [ ] **[Launcher] Slide control scripts in Svelte config** — `control_presentation` AppleScript + one-liners are hardcoded in Electron. Move to device config (`data_json.control_scripts`) or + Svelte constants so slide nav behavior (e.g. keystroke vs. AppleScript command) can be adjusted + without a rebuild. Wire through `run_osascript` directly. +- [ ] **[Launcher] `kill_processes` target list in config** — process names to kill on cleanup + are currently caller-hardcoded. Allow device config to specify the process name list per + file type / app, so adding a new presentation app doesn't require a Svelte code change. +- [ ] **[Launcher] Launcher config UI — launch_scripts editor** — add a Technical Mode panel + in the Launcher config (tabbed settings) to view and edit `launch_scripts` entries on the + active device record. PATCH via `event_device` V3 CRUD. Lets OSIT staff tune scripts onsite + without needing phpMyAdmin or a code deploy. +- [ ] **[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. ---