Saving notes

This commit is contained in:
Scott Idem
2026-02-10 19:45:45 -05:00
parent c5bfc140af
commit ae03cbb27f
2 changed files with 31 additions and 46 deletions

View File

@@ -95,55 +95,44 @@
- [ ] **[Recipient Agent]**: [Description of request] (Sent: [YYYY-MM-DD]) - [ ] **[Recipient Agent]**: [Description of request] (Sent: [YYYY-MM-DD])
### 🎯 Strategic Goals (Current Sprint) ### 🎯 Strategic Goals (Current Sprint)
- **Primary:** Performance Sprint & Journals Standardization. - **Primary:** Launcher Stabilization & Performance.
- **Secondary:** V3 API Migration and System Health Stability. - **Secondary:** V3 API Migration and System Health Stability.
### 🚧 Active Workstreams ### 🚧 Active Workstreams
- **[Launcher Stabilization]:** Hardening the native bridge and resolving session selection reactivity issues.
- **[Leads Module V3]:** Transitioning Exhibitor Leads to V3 API and mobile-first dashboard. - **[Leads Module V3]:** Transitioning Exhibitor Leads to V3 API and mobile-first dashboard.
- **[Hydration Optimization]:** Implemented SWR pattern and non-blocking layouts to eliminate "white page" delays. - **[Hydration Optimization]:** Implemented SWR pattern and non-blocking layouts to eliminate "white page" delays.
- **[Search Hardening]:** Standardized debounced reactive search logic across Recovery Meetings, Badge Search, and Journals modules. - **[Search Hardening]:** Standardized debounced reactive search logic across Recovery Meetings, Badge Search, and Journals modules.
- **[Service Worker]:** Re-enabled registration and implemented robust asset caching.
- **[Telemetry]:** Modern dashboard in Launcher Config with visual CPU/RAM gauges. - **[Telemetry]:** Modern dashboard in Launcher Config with visual CPU/RAM gauges.
- **[Journals Module]:** Standardized naming (`ae_comp__*`), normalized props to snake_case, and unified icons.
### 🧠 Recent Learnings & Decisions ### 🧠 Recent Learnings & Decisions
- **V3 Search Context:** POST search for child objects (e.g. `event_exhibit_tracking`) requires explicit `for_obj_type` and `for_obj_id` query parameters to assist the backend in partitioning, otherwise it may inject incorrect legacy filters like `event_id_random`. - **LiveQuery Reactivity:** `liveQuery` observables require explicit prefixing ($) in templates. Re-assigning them to `$state` variables in effects can lead to `store_invalid_shape` errors if prefixes aren't updated.
- **SWR Pattern:** Crucial for eliminating page load delays in Sites, Events, and Journals. - **Global Page State:** Migrating from manual prop-passing (like `data_url`) to the global `$page` state significantly simplifies component trees and avoids "undefined" errors during navigation.
- **Debounced Search:** Replacing manual triggers and loops (like setInterval) with reactive debounced effects significantly improves UX and reduces API noise. - **Native Handover:** Using `.tmp` files for downloads and only renaming to `.file` after SHA-256 verification ensures cache integrity in the native bridge.
- **Quiet Logs:** Silenced noisy `AbortError` and `NetworkError` in background fetches to reduce noise.
- **Details Toggle:** Optimized Event Session list by deferring expensive sub-components.
--- ---
## 3. 🧠 Short Term Memory (Session Context) ## 3. 🧠 Short Term Memory (Session Context)
- **Status:** Session Concluded / System Stable. - **Status:** Session Concluded / System Reverted to Stable.
- **Last Action:** Finalized V3 Leads foundations, fixed dashboard routing, and implemented booth management. - **Last Action:** Reverted uncommitted reactivity refactors in `launcher/+layout.svelte` and `launcher_session_view.svelte` due to page load failure.
- **Key Learnings:** - **Key Learnings:**
- **Backend API Bug:** Identified a 400 Database Schema error in `event_exhibit_tracking` search caused by the backend incorrectly injecting legacy `event_id_random` filters. Frontend is verified clean and strictly follows base `_id` standards. - **Reactivity Race Conditions:** Manual store updates synchronized via URL can clash with layout effects, leading to clobbered states.
- **Svelte 5 Store Prefixes:** Standardizing on `$lq__obj` for observables is critical; switching to direct state variables requires surgical template updates.
- **Nested Routing Logic:** Lead Detail routes MUST be nested under the Exhibit ID to maintain context and resolve 404 errors in the capturing workflow.
- **Property Processor Hardening:** Hardened processors to prioritize base `_id` mapping to internal `id` fields, ensuring robust Dexie synchronization for string-only identifiers.
- **Accomplishments:** - **Accomplishments:**
- **V3 Leads Module Foundations:** Modularized `ae_events__exhibit` and `ae_events__exhibit_tracking` with V3 SWR standards and trace-ready performance logging. - **'download' Filename Bug Fix:** Explicitly passed filenames to V3 Action endpoints and implemented a safety net in `api_get_object.ts`.
- **Menu Refactor:** Migrated `menu_session_list.svelte` and `menu_location_list.svelte` to use global `$page.url` state.
- **Native Caching:** Implemented SHA-256 verification and stale temp purge in the Electron bridge.
- **UI Initialization:** Ensured `event_session_id` defaults to `null` and added explicit no-session prompts.
- **String-Only ID Standardization:** Standardized all Lead capture and search functions to use base `_id` keys instead of the `_random` suffix dependency. - **Current Blocker:** Session Selection Hang (Page fails to load or UI hangs when selecting a session if starting from a path without an initial ID).
- **Leads Dashboard Orchestration:** Implemented a mobile-first, high-contrast dashboard with persistent tab navigation (Add Lead, Lead List, Manage). - **Immediate Next Step:** Investigate Dexie/Svelte reactivity in the Launcher layout without introducing breaking clobbers.
- **Lead Detail Profile:** Implemented a comprehensive read-only Lead Profile view featuring custom responses and exhibitor notes.
- **Booth Management:** Implemented the Manage/Config tab using `Element_ae_crud_v2` for live-revalidating booth profile updates.
- **Current Blocker:** Backend Search Bug for `event_exhibit_tracking` (injecting `event_id_random`).
- **Immediate Next Step:** Verify Staff Sign-in workflow and License assignment logic once the search bug is resolved.
--- ---
@@ -177,22 +166,11 @@
## Gemini Added Memories ## Gemini Added Memories
- The Aether Docker environment now has a robust physical database management suite: restore_db.sh, check_and_import.sh, and export_db.sh. Password escaping issues resolved using single quotes in .env. - [Harden: ID Integrity] Generic object processors MUST use truthy checks when mapping `_random` variants to clean keys.
- [Harden: Event File Loader] Safety Net in `_refresh_file_li_background` to inject missing metadata from query context.
- Standalone DB tests in API project: Use virtual environment at 'environment/bin/python3', extract credentials from container env, and manually construct SQLAlchemy URI to bypass 'app.config' dependency issues. - [Harden: API Safety Net] `api_get_object.ts` fallback-extracts `filename` from `params` if the explicit argument is missing.
- [Native: Cache Reliability] Implemented SHA-256 integrity checks and stale `.tmp` purge in Electron `file_handlers.ts`.
- [Harden: ID Integrity] Generic object processors MUST use truthy checks when mapping `_random` variants to clean keys to prevent `null` or `undefined` values from clobbering valid linking IDs received from V3 API responses. - [Layout: Page State] Use `page` from `$app/state` for layout-level store synchronization to avoid clobbering manual updates.
- [Harden: Event File Loader] Implemented a "Safety Net" in `_refresh_file_li_background` to inject missing `for_id` and `for_type` from the query context before saving to Dexie, ensuring robust indexing even with partial API responses.
- Centralized 'public_read' flag in object definitions (core.py, cms.py, etc.) controls guest access in V3 API.
- V3 API 'view' parameter rollout complete across core event library modules.
- Presentation Management reports utilize the 'alt' view for file data shapes.
- The user prefers snake_case or Snake_Case over CamelCase for all naming and identifiers. - The user prefers snake_case or Snake_Case over CamelCase for all naming and identifiers.
- Formatting Standard: Prettier printWidth is set to 80.
- Formatting Standard: Prettier printWidth is set to 80 to force multi-line expansion for attributes and calls. - The Aether API V3 search for 'event_exhibit_tracking' has a backend bug injecting 'event_id_random'.
- The Aether API V3 search for 'event_exhibit_tracking' currently has a backend bug where it incorrectly injects a filter for 'event_id_random' instead of 'event_id', causing a 400 Database Schema error (MariaDB code 1054). The frontend is sending the correct V3 payload, but the backend mapping needs to be updated by the API agent.

11
TODO.md
View File

@@ -29,14 +29,21 @@ This is a list of tasks to be completed before the next event/show/conference.
- [x] **Session Search:** Modernized logic, fixed layout bugs and icon exports. (Completed 2026-01-27) - [x] **Session Search:** Modernized logic, fixed layout bugs and icon exports. (Completed 2026-01-27)
- [x] **Exhibit Search:** Standardized Exhibitor and Lead Tracking reactive search. (Completed 2026-01-28) - [x] **Exhibit Search:** Standardized Exhibitor and Lead Tracking reactive search. (Completed 2026-01-28)
## Recent Accomplishments (Feb 10, 2026)
- **AE Events Launcher Stabilization:**
- [x] **'download' Filename Bug:** Resolved issue where files were downloaded as generic 'download' by explicitly passing `filename` to the API and implementing a safety net in `api_get_object.ts`.
- [x] **Global Page State Migration:** Refactored menu components (`menu_session_list.svelte`, `menu_location_list.svelte`, `launcher_menu.svelte`) to use Svelte 5's reactive `page` state instead of obsolete `data_url` props.
- [x] **Native Bridge Hardening:** Implemented SHA-256 integrity checks, stale `.tmp` purge, and "Safe Handover" pattern in the native Electron bridge.
- [x] **UI/UX Refinements:** Initialized `event_session_id` to `null` and added explicit "No session selected" prompts to improve the empty-state experience.
## Urgent Tasks (Feb 10, 2026) ## Urgent Tasks (Feb 10, 2026)
1. **AE Events Launcher Hardening:** 1. **AE Events Launcher Hardening:**
- [ ] **Session Selection Hang:** Investigate why the page fails to load or hangs after selecting a session when starting from a path without an initial ID. (Current Attempt: Derived LiveQuery vs state-driven subscription).
- [ ] **Temp Cleanup:** Implement auto/manual removal of `[tmp]` files older than 24 hours. - [ ] **Temp Cleanup:** Implement auto/manual removal of `[tmp]` files older than 24 hours.
- [ ] **Recording Access:** Add button to open `[recording]` directory in Finder (macOS). - [ ] **Recording Access:** Add button to open `[recording]` directory in Finder (macOS).
- [ ] **JWT Lifecycle:** Implement silent auto-refresh for long-running podium sessions. - [ ] **JWT Lifecycle:** Implement silent auto-refresh for long-running podium sessions.
- [ ] **Launch Protection:** Prevent "Duplicate Launch" via UI locking and status messaging.
- [ ] **Cache Reliability:** Implement `.tmp -> .file` rename pattern with post-download checksum verification.
- [ ] **Native Actuators:** Plan macOS-specific commands for window focus and system orientation. - [ ] **Native Actuators:** Plan macOS-specific commands for window focus and system orientation.
- [ ] **Self-Update:** Implement simple directory/URL-based auto-update mechanism. - [ ] **Self-Update:** Implement simple directory/URL-based auto-update mechanism.
- [x] **Audit:** Marked `electron_native.js` as `[DEPRECATED]` in favor of active native repo logic. - [x] **Audit:** Marked `electron_native.js` as `[DEPRECATED]` in favor of active native repo logic.