diff --git a/GEMINI.md b/GEMINI.md index 88000bf9..6b144b41 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -115,6 +115,10 @@ --- +--- + + + ## 3. 🧠 Short Term Memory (Session Context) @@ -123,15 +127,7 @@ - - - - -- **Last Action:** Restored Event Session search functionality and standardized ID mapping across core event library modules. - - - - +- **Last Action:** Hardened Event File processing, implemented loader safety nets, and enabled verbose tracking. @@ -139,31 +135,15 @@ + - **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. - - - **Dual-Layer Filtering:** API search revalidation can clobber correctly filtered local results if the API has a minimum character limit (e.g., 3 chars); implementing a backup client-side filter on the API response is essential for "sticky" search results. - - - - - - - - - **ID Standardization:** Phasing out the `_random` suffix requires updating the generic object processors to check both the base `[obj_type]_id` and the `_random` variant to ensure Dexie primary keys are correctly mapped. - - - - - - - - - **Svelte 5 Untrack:** `untrack()` is critical inside `$effect` when reading reactive state that shouldn't trigger a re-run, but must be used carefully to avoid stale data in complex search logic. - + - **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. @@ -171,47 +151,23 @@ + - **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. - - - **Event Session Search Restoration:** Stabilized the Session Search module by standardizing on `event_id` for queries and implementing local result protection against broad API responses. + - **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. - - - **Platform-Wide ID Hardening:** Updated `_process_generic_props` in all event library files (`location.ts`, `presentation.ts`, `presenter.ts`, `session.ts`, etc.) to support the transition away from string-only IDs. - - - - - - - - - **Bulletin Board Verification:** Confirmed email notification logic for Staff and Posters in the IDAA BB module. - - - - - - - - - **Prop Standardization:** Refactored `presenter` and `presentation` components to use standardized `_id_li` properties. - - - - - - - - - **Code Cleanup:** Standardized common helper identifiers to snake_case (`prevent_default`). - + - **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. @@ -219,33 +175,68 @@ - - - - -- **Immediate Next Step:** Continue ID standardization across remaining modules or proceed with IDAA Archives/Recovery Meetings verification. - - +- **Immediate Next Step:** Verify Bulletin Board email notifications and Recovery Meetings Zoom/Jitsi logic. --- + + ## 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. -- **`src/lib/ae_journals/`**: Journals feature module. + +- **`src/lib/ae_events/`**: Core event library and Dexie store. + - **`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), Journals (Notes, AI), IDAA (Logistics, Jitsi). + +- **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) \ No newline at end of file + +- **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. + +- [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. + +- [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. + +- Formatting Standard: Prettier printWidth is set to 80 to force multi-line expansion for attributes and calls. \ No newline at end of file