From 0e4802f7dee837d7d70484510d500cf1399d8d55 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 26 Jan 2026 11:43:47 -0500 Subject: [PATCH] Saving minor fix for IDAA and JItsi. Saving code clean up for the Launcher. Related to the device heartbeat loop. --- GEMINI.md | 13 +++ TODO.md | 8 ++ .../launcher/[event_location_id]/+page.svelte | 93 ++----------------- .../(idaa)/video_conferences/+page.svelte | 2 +- 4 files changed, 31 insertions(+), 85 deletions(-) diff --git a/GEMINI.md b/GEMINI.md index 359f9b98..7941bc0a 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -126,6 +126,19 @@ This project is the frontend UI/UX for the Aether (AE) system, built with Svelte --- +## 🧠 Session Context (2026-01-23) +- **Status:** Phase 4 Implementation Complete (Telemetry/Heartbeat). +- **Recent Actions:** + - Standardized Electron bridge to `snake_case` across all methods. + - Implemented organized caching with mandatory 2-char subdirectories. + - Verified Phase 3 OS commands (`run_cmd`, `run_osascript`, `kill_processes`). + - Implemented exhaustive recursive room data fetching in `ae_events__event_location.ts`. + - Hardened bootstrap to preserve local overrides for sync timers. +- **Pending Tasks:** + - Verify heartbeat visibility in Launcher UI. + - Implement Phase 5 AppleScript handlers for PowerPoint/Keynote. + - Build Telemetry Dashboard in Launcher Config. + ## 🔗 Resources - **Reference Stubs:** `agents_sync/technical/references/` (Svelte 5, Dexie, FastAPI). - **Official Docs:** [Svelte Runes](https://svelte.dev/blog/runes) | [Dexie Quick Ref](https://dexie.org/docs/API-Reference#quick-reference) \ No newline at end of file diff --git a/TODO.md b/TODO.md index 4ca0276c..0fc2343b 100644 --- a/TODO.md +++ b/TODO.md @@ -49,3 +49,11 @@ This is a list of tasks to be completed before the next event/show/conference. - [x] **Journal Stability:** Resolved display issues where entries failed to show on initial load. - [x] **Filter Hardening:** Updated LiveQuery to handle NULL/undefined for Enabled/Hidden flags. - [x] **Config Expansion:** Added dynamic Query Limits (10-1000) to Journal module settings. + +## Native App Development (2026-01-23) +- [x] Phase 2: Organized caching with 2-char subdirectories. +- [x] Phase 3: Standardize snake_case bridge and OS command set. +- [x] Phase 4: Implement device heartbeat and telemetry loop. +- [ ] [BUG] Verify heartbeat visibility in Launcher UI (user reported not seeing it). +- [ ] Phase 5: Implement specialized AppleScript handlers for Office/Keynote. +- [ ] [REFINEMENT] Build Telemetry Dashboard in Launcher Config. diff --git a/src/routes/events/[event_id]/(launcher)/launcher/[event_location_id]/+page.svelte b/src/routes/events/[event_id]/(launcher)/launcher/[event_location_id]/+page.svelte index 9eb5a324..be5a36c4 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher/[event_location_id]/+page.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher/[event_location_id]/+page.svelte @@ -5,21 +5,9 @@ } let { data }: Props = $props(); + let log_lvl: number = $state(0); // Imports - // import { browser } from '$app/environment'; - // import { onMount } from 'svelte'; - - // import type { key_val } from '$lib/ae_stores'; - // import { ae_util } from '$lib/ae_utils/ae_utils'; - // import { api } from '$lib/api'; - // import Element_ae_crud from '$lib/element_ae_crud.svelte'; - // import Element_data_store from '$lib/element_data_store_v2.svelte'; - - // import { liveQuery } from "dexie"; - // import { core_func } from '$lib/ae_core_functions'; - // import { db_core } from "$lib/db_core"; - // import { db_events } from "$lib/ae_events/db_events"; import { ae_snip, ae_loc, @@ -47,44 +35,26 @@ get_device_info } from '$lib/electron/electron_relay'; - // import LauncherBackgroundSync from '../../launcher_background_sync.svelte'; - - // import Event_launcher_menu from '../../launcher_menu.svelte'; - // import Event_launcher_session_view from '../../launcher_session_view.svelte'; - - // import native_app from '$lib/electron_native.js'; - - // Exports - // Variables // Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other. - // $slct.account_id = data.account_id; - // console.log(`$slct.account_id = `, $slct.account_id); let ae_acct = data[$slct.account_id]; - // console.log(`ae_acct = `, ae_acct); // $ae_loc.url_origin = data.url.origin; - console.log(`event_id: ${data.params.event_id}`); + log_lvl = 1; + if (log_lvl) { + console.log(`event_id: ${data.params.event_id}`); + console.log(`event_location_id: ${data.params.event_location_id}`); + } $events_slct.event_id = data.params.event_id; - - console.log(`event_location_id: ${data.params.event_location_id}`); $events_slct.event_location_id = data.params.event_location_id; - // console.log(`ae_acct.slct.event_id:`, ae_acct.slct.event_id); - // $events_slct.event_id = ae_acct.slct.event_id; - // $events_slct.event_obj = ae_acct.slct.event_obj; $events_slct.event_location_obj_li = ae_acct.slct.event_location_obj_li ?? ['']; $events_slct.id_li__event_location = ae_acct.slct.id_li__event_location ?? ['']; - console.log(`$events_slct.event_location_obj_li:`, $events_slct.event_location_obj_li); + if (log_lvl) { + console.log(`$events_slct.event_location_obj_li:`, $events_slct.event_location_obj_li); + } $events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li ?? ['']; - // $events_slct.id_li__event_session = ae_acct.slct.id_li__event_session ?? ['']; - - // $events_trig = ae_acct.trig; - // $events_trig.event_location_li = true; - // $events_trig.event_session_li = true; - - // $events_trigger = 'event_location_li'; // Set the local storage values if (!$events_loc.launcher) { @@ -106,26 +76,6 @@ }; } - // if (browser) { - // console.log(`data.url.searchParams.get('location_id') = `, data.url.searchParams.get('location_id')); - // } - - // if (ae_acct.slct.event_id) { - // $events_loc.launcher.slct.event_id = ae_acct.slct.event_id; - // } - // if (ae_acct.slct.event_location_id) { - // $events_loc.launcher.slct.event_location_id = ae_acct.slct.event_location_id; - // } - // if (ae_acct.slct.event_session_id) { - // $events_loc.launcher.slct.event_session_id = ae_acct.slct.event_session_id; - // } - // if (ae_acct.slct.event_presentation_id) { - // $events_loc.launcher.slct.event_presentation_id = ae_acct.slct.event_presentation_id; - // } - // if (ae_acct.slct.event_presenter_id) { - // $events_loc.launcher.slct.event_presenter_id = ae_acct.slct.event_presenter_id; - // } - // Set the session storage values if (!$events_sess.launcher) { $events_sess.launcher = {}; @@ -135,17 +85,6 @@ $events_sess.launcher.show_content__presentation_code = true; $events_sess.launcher.show_content__presenter_code = true; - // Process the location list to pull out just the IDs. - // let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. - // let bi_id_li__event_location: string[] = []; - // for (let i = 0; i < $events_slct.event_location_obj_li.length; i++) { - // let event_location_obj = $events_slct.event_location_obj_li[i]; - // let event_location_id = event_location_obj.event_location_id; - // tmp_li.push(event_location_id); - // } - // bi_id_li__event_location = tmp_li; - // console.log(`bi_id_li__event_location:`, bi_id_li__event_location); - // Variables that will be used with Svelte bind are prefixed with 'bi_'. let bi_trig__event_location: any = null; @@ -158,24 +97,10 @@ // if (browser) { // console.log(`Browser: ${browser}`); - // bi_trig__event_location = 'event_location_li'; - // bi_trig__event_session = 'event_session_li'; - - // // $events_slct.event_location_id = data.url.searchParams.get('location_id'); - // // $events_slct.event_session_id = data.url.searchParams.get('session_id'); // } // onMount(() => { // console.log('Pres Mgmt Launcher [slug]: +page@(launcher).svelte'); - - // // if ($ae_event_launcher.app_mode == 'native') { - // // handle_get_device_info($slct.event_device_id); - // // } - - // // const native_app = require('$lib./script'); - - // // let native_app_config = native_app.load_init_config(); - // // console.log('Native App Initial Config:', native_app_config); // }); async function handle_get_device_info(event_device_id: string) { diff --git a/src/routes/idaa/(idaa)/video_conferences/+page.svelte b/src/routes/idaa/(idaa)/video_conferences/+page.svelte index a69b113d..bb977ef9 100644 --- a/src/routes/idaa/(idaa)/video_conferences/+page.svelte +++ b/src/routes/idaa/(idaa)/video_conferences/+page.svelte @@ -612,7 +612,7 @@ {/if} -{#if show_jitsi_tools} +{#if show_jitsi_tools && $ae_loc.edit_mode}