diff --git a/conductor/fix-idaa-breakout-links.md b/conductor/fix-idaa-breakout-links.md new file mode 100644 index 00000000..f50bca9a --- /dev/null +++ b/conductor/fix-idaa-breakout-links.md @@ -0,0 +1,33 @@ +# Plan: Fix IDAA Jitsi Breakout Links + +IDAA Jitsi meetings are embedded in an iframe on the `idaa.org` website. To allow members to "break out" of the iframe (for a better experience on mobile or to use full-tab features), the app provides an "Open Meeting Externally" link. + +Currently, this link is generated from `$page.url.href`, which often lacks the `key` (site access key) and `uuid` (Novi identity token) required for Aether's authentication gate, especially if the user has navigated internally within SvelteKit. + +## 1. Objective +Ensure all "Breakout" and "Copy Link" actions on the IDAA Video Conferences page include the necessary `key` and `uuid` parameters. + +## 2. Implementation Steps + +### Step 1: Update `src/routes/idaa/(idaa)/video_conferences/+page.svelte` +- Create a reactive `breakout_url` derived from `$page.url.href`. +- In the derivation logic: + - Instantiate a `new URL`. + - Check if `key` is present in `searchParams`. If missing, pull from `$ae_loc.allow_access` or `$ae_loc.site_access_key`. + - Check if `uuid` is present in `searchParams`. If missing, pull from `$idaa_loc.novi_uuid`. + - Return the resulting `href`. +- Update the following UI elements to use `breakout_url`: + - `copy_meeting_link` function (uses `navigator.clipboard.writeText`). + - "Open in New Tab" anchor tag (`href`). + - "Copy Link" fallback textarea (`value`). + - "Copy Break-out Link" in the Jitsi Tools panel (`value`). + +### Step 2: Update `documentation/CLIENT__IDAA_and_customized_mods.md` +- Add a note in the "Authentication: Novi UUID System" or "Iframe Integration" section about the requirement for `key` and `uuid` in breakout links. +- Document that the frontend now automatically re-injects these for external links to ensure persistent session access outside the iframe. + +## 3. Verification +- Manually verify the logic: + - If `key` and `uuid` are already in the URL (e.g., initial load), the derived URL should remain unchanged (or correctly deduplicated). + - If they are missing (e.g., after navigating from another IDAA page), they should be added to the generated link. +- Run `npx svelte-check` to ensure no syntax regressions. diff --git a/conductor/launcher-ux-refinement.md b/conductor/launcher-ux-refinement.md new file mode 100644 index 00000000..fc4c3938 --- /dev/null +++ b/conductor/launcher-ux-refinement.md @@ -0,0 +1,53 @@ +# Plan: Launcher Config UX Refinement (Cohesion & Stability) + +The goal of this plan is to address the visual "bouncing", layering overload, and the misplaced close button in the new Launcher configuration modal. + +## 1. Dimensional Stability +- **Problem:** Switching tabs causes the modal to resize vertically and horizontally, leading to a "bouncing" feel. +- **Solution:** + - Set a fixed height for the `Launcher_cfg` container (e.g., `h-[750px]`). + - Use `overflow-y-auto` only for the right-hand content pane. + - Ensure the sidebar has a stable width. + +## 2. Visual Hierarchy & Layering +- **Problem:** Too many nested backgrounds (Page > Launcher > Modal > Inner Pane > Section Pane > Section Content). +- **Solution:** + - Flatten the background of the main content pane. + - Simplify `Launcher_Cfg_Section.svelte`: + - Remove `shadow-xl` from individual sections. + - Use subtler borders instead of strong "preset-outlined" colors. + - Remove the secondary background (`bg-white/5`) from the section content area. + - Standardize on a single, clean surface color for the right-hand pane. + +## 3. The "Centered Close Button" Bug +- **Problem:** A close button is appearing in the middle of the screen. +- **Investigation:** + - Check for absolute-positioned elements in `Launcher_cfg.svelte` or `+layout.svelte`. + - Verify if Flowbite's `Modal` default close button is clashing with internal buttons. +- **Solution:** + - Consolidate all "Close" actions. + - Use the Modal's built-in top-right close button (if available) or a single, well-positioned button in the sidebar. + +## 4. Implementation Steps + +### Step 1: Update `Launcher_cfg.svelte` +- Set stable dimensions: `h-[750px] max-h-[90vh] w-[1000px] max-w-[95vw]`. +- Remove internal shadows and borders that conflict with the Modal container. +- Clean up the sidebar "Close" button. + +### Step 2: Update `Launcher_cfg_section.svelte` +- Simplify the styling to reduce visual clutter. +- Remove `shadow-xl`. +- Use consistent padding and margins. + +### Step 3: Update `+layout.svelte` +- Ensure the `Modal` is configured for a stable, large view without default padding issues. +- Verify the `modal_cfg_open` logic. + +### Step 4: Add `Launcher_cfg_field.svelte` (Helper) +- Implement a unified field helper to standardize Label/Description/Input layouts across all tabs. + +## 5. Verification +- Toggle between all 7 tabs. Verify zero layout shift (height/width remains constant). +- Check appearance in Light and Dark modes. +- Verify "Technical Mode" transitions. diff --git a/documentation/TODO__Agents.md b/documentation/TODO__Agents.md index 69ffbe8c..5831f7bb 100644 --- a/documentation/TODO__Agents.md +++ b/documentation/TODO__Agents.md @@ -14,6 +14,12 @@ List overridable via `event_device.other_json.launcher.kill_process_li`. Auto-cleanup on file open (deferred — manual button sufficient for CMSC). - [ ] **[Launcher] End-to-end test on macOS** — test pptx and key opens on a real podium Mac. +- [ ] **[Launcher] Hidden/deleted files still visible in Presenter file list** — When an + `event_file` is hidden (`hide=1`) or soft-deleted, it continues to appear in the Launcher's + per-presenter file list. Needs investigation: likely the Launcher's IDB query or the + file-list component does not apply a `!hide` / `enable` filter. Check the file list query + in the Launcher file components and the `properties_to_save` whitelist in + `ae_events__event_file.ts` to confirm `hide` and `enable` are persisted to IDB. - [ ] **[Launcher/Electron] Wallpaper stops applying after several changes (post-CMSC)** — Append timestamp/random suffix to temp filename so macOS always sees a new path. - [ ] **[Launcher/Electron] Wallpaper drift after display hotplug (post-CMSC)** —