docs(launcher): CMSC Charlotte task breakdown + doc date fix

- TODO__Agents: expand CMSC Charlotte launcher task into done/remaining
  sections; enumerate Svelte-side migration items (default templates,
  composable open flow, error fallback, slide control config, kill list
  config, Launcher config UI editor, end-to-end Mac test gate)
- PROJECT__AE_Events_Launcher_Native_integration: update Last Updated to 2026-05-11
This commit is contained in:
Scott Idem
2026-05-11 17:34:48 -04:00
parent f72454f379
commit a3d229c803
2 changed files with 39 additions and 5 deletions

View File

@@ -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

View File

@@ -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.
---