Saving notes and things. Done for the night. Tomorrow need to work on the Leads - Manage/Config and then Leads - Sign In/Licenses/Payment
This commit is contained in:
78
GEMINI.md
78
GEMINI.md
@@ -99,102 +99,62 @@
|
||||
- **Secondary:** V3 API Migration and System Health Stability.
|
||||
|
||||
### 🚧 Active Workstreams
|
||||
- **[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.
|
||||
- **[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.
|
||||
- **[Native Bridge]:** Phase 5 AppleScript handlers for macOS (PowerPoint/Keynote).
|
||||
- **[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
|
||||
- **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`.
|
||||
- **SWR Pattern:** Crucial for eliminating page load delays in Sites, Events, and Journals.
|
||||
- **Debounced Search:** Replacing manual triggers and loops (like setInterval) with reactive debounced effects significantly improves UX and reduces API noise.
|
||||
- **Quiet Logs:** Silenced noisy `AbortError` and `NetworkError` in background fetches to reduce noise.
|
||||
- **Details Toggle:** Optimized Event Session list by deferring expensive sub-components.
|
||||
- **CodeMirror Fix:** Resolved line-wrapping issues in editors.
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 3. 🧠 Short Term Memory (Session Context)
|
||||
|
||||
|
||||
|
||||
- **Status:** Session Concluded / System Stable.
|
||||
|
||||
|
||||
|
||||
- **Last Action:** Hardened Event File processing, implemented loader safety nets, and enabled verbose tracking.
|
||||
|
||||
|
||||
- **Last Action:** Finalized V3 Leads foundations, fixed dashboard routing, and implemented booth management.
|
||||
|
||||
- **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.
|
||||
|
||||
- **Nested Routing Logic:** Lead Detail routes MUST be nested under the Exhibit ID to maintain context and resolve 404 errors in the capturing workflow.
|
||||
|
||||
- **ID Clobbering:** The generic processor was blindly overwriting clean IDs with `null` random IDs from the API; truthy checks on `_random` variants are essential to preserve relationship integrity.
|
||||
|
||||
|
||||
|
||||
- **Loader Safety Net:** Implementing minimal, type-aware ID injection in `_refresh_file_li_background` ensures records are correctly indexed in Dexie even when the backend response is partially incomplete.
|
||||
|
||||
|
||||
|
||||
- **Relationship Sync:** Synchronizing `for_id` with specific object IDs (e.g., `event_presenter_id`) in the processor ensures UI components can reliably retrieve files using either the generic or specific keys.
|
||||
|
||||
|
||||
- **Property Processor Hardening:** Hardened processors to prioritize base `_id` mapping to internal `id` fields, ensuring robust Dexie synchronization for string-only identifiers.
|
||||
|
||||
- **Accomplishments:**
|
||||
|
||||
- **V3 Leads Module Foundations:** Modularized `ae_events__exhibit` and `ae_events__exhibit_tracking` with V3 SWR standards and trace-ready performance logging.
|
||||
|
||||
- **String-Only ID Standardization:** Standardized all Lead capture and search functions to use base `_id` keys instead of the `_random` suffix dependency.
|
||||
|
||||
- **Event File Upload Restoration:** Fixed 422 errors in `ae_comp__event_files_upload.svelte` by identifying a backend Pydantic integer vs string mismatch and standardizing on the V3 action endpoint.
|
||||
- **Leads Dashboard Orchestration:** Implemented a mobile-first, high-contrast dashboard with persistent tab navigation (Add Lead, Lead List, Manage).
|
||||
|
||||
- **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.
|
||||
|
||||
- **Relationship Integrity:** Resolved missing `event_id` and cross-contaminated IDs in `ae_events_db.file` by hardening `_process_generic_props` and the background loader.
|
||||
|
||||
|
||||
|
||||
- **UI Retrieval Fix:** Reverted `element_manage_event_file_li_direct.svelte` to robust `for_type`/`for_id` filtering and enhanced `li_all` with combined ID filters to ensure linked files show up for all objects.
|
||||
|
||||
|
||||
|
||||
- **Batch Formatting:** Finalized module-wide formatting (printWidth: 80) across Archives, Settings, and root Events components.
|
||||
|
||||
|
||||
|
||||
- **Surgical Debugging:** Enabled verbose tracking in Presenter load functions and the Event File loader to isolate data flow issues.
|
||||
|
||||
|
||||
|
||||
- **Current Blocker:** None.
|
||||
|
||||
|
||||
|
||||
- **Immediate Next Step:** Verify Bulletin Board email notifications and Recovery Meetings Zoom/Jitsi logic.
|
||||
|
||||
- **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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 4. 📂 Reference: Directory & Whitelist
|
||||
|
||||
*Low-density reference data. Keep at the bottom to avoid cluttering the prompt's "hot zone".*
|
||||
|
||||
|
||||
|
||||
### 🛡️ File Whitelist
|
||||
|
||||
- `~/tmp`, `~/Downloads`, `~/temp`, `~/agents_sync`
|
||||
|
||||
|
||||
|
||||
### 🗺️ Standard Directory Map
|
||||
|
||||
- **`src/lib/ae_api/`**: API V3 standard helpers.
|
||||
@@ -203,29 +163,23 @@
|
||||
|
||||
- **`src/lib/types/ae_types.ts`**: Unified TypeScript interfaces.
|
||||
|
||||
|
||||
|
||||
### 📦 Modules Overview
|
||||
|
||||
- **Core:** Identity (`accounts`, `people`, `users`), Infrastructure (`sites`, `site_domains`), Storage (`hosted_files`).
|
||||
|
||||
- **Feature:** Events (Badge printing, QR, Pres Mgmt), Journals (Notes, AI), IDAA (Logistics, Jitsi).
|
||||
|
||||
|
||||
|
||||
### 🔗 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)
|
||||
|
||||
|
||||
|
||||
## 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.
|
||||
|
||||
- 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' dependencies.
|
||||
- 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: 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.
|
||||
|
||||
@@ -239,4 +193,6 @@
|
||||
|
||||
- The user prefers snake_case or Snake_Case over CamelCase for all naming and identifiers.
|
||||
|
||||
- Formatting Standard: Prettier printWidth is set to 80 to force multi-line expansion for attributes and calls.
|
||||
- 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' 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.
|
||||
|
||||
Reference in New Issue
Block a user