diff --git a/GEMINI.md b/GEMINI.md index 84761797..308333d6 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -222,3 +222,19 @@ The activity logging functionality is now working as expected. While the origina - **API V3 Implicit Context:** When using nested API routes (e.g., `/v3/crud/parent/{id}/child/`), the child objects returned may not contain the `parent_id`. The frontend must proactively inject this ID during processing if it's required for local database indexing or filtering. - **Search Logic Construction:** When building complex V3 `search_query` objects, avoid including empty `and` or `or` arrays, as some backend parsers may strictly validate their presence or content. Only attach these properties if they contain at least one filter. - **Backend Operator Support:** Always verify supported operators (`like`, `eq`, `gt`, etc.) in the backend FastAPI implementation. Using unsupported operators like `ilike` or `contains` will cause immediate backend `ValueError` crashes. + +### Session Learnings (2026-01-05) + +**Context:** Finalized core Aether API V3 wrappers and completed the full migration of the Journals module. + +**Key Accomplishments:** +- **Completed V3 CRUD Wrappers:** Implemented and verified `create_ae_obj_v3`, `create_nested_obj_v3`, `update_ae_obj_v3`, `update_nested_obj_v3`, `delete_ae_obj_v3`, and `delete_nested_ae_obj_v3`. +- **Soft Delete Pattern:** Standardized the `method` parameter in deletion wrappers to support `disable` (sets `enable=false`) and `hide` (sets `hide=true`), matching the system's "safe removal" requirements. +- **Journals Module Migration:** Successfully moved all Journal and Journal Entry CRUD operations to V3. Refactored functions to follow the standard "API -> Processor -> DB Save" pattern for maximum reactivity and local caching. +- **Data Integrity Fixes:** Resolved an issue where `print_count` and print timestamps were missing from Dexie by changing the default API view to `base` (fetching `Event_Badge_Base`) and aligning the `Badge` interface/schema. +- **Sorting Logic Restoration:** Fixed a bug where `db.bulkGet` would return items in ID-order, overriding the API's sort order. Implemented a `Map`-based re-sorting logic in display components to ensure items are rendered exactly as sorted by the backend. + +**Next Steps:** +- **Events - Badges Migration:** Complete the V3 migration for the Badges module (Create, Update, Delete). +- **Core Module Migration:** Begin migrating high-level modules (Accounts, Sites, People) to V3. +- **Cleanup:** Audit remaining legacy `api_get__crud_obj_id` calls and transition them to `get_ae_obj_v3`. diff --git a/TODO.md b/TODO.md index f12fead8..a6801032 100644 --- a/TODO.md +++ b/TODO.md @@ -40,9 +40,8 @@ This is a list of tasks to be completed before the next event/show/conference. - [ ] Standardize JWT usage in headers for all V3 calls. - [ ] Update file download logic to support JWT in URL parameters. - [ ] **Module Migration:** - - [x] **Journals:** Partially migrated (List and Search). + - [x] **Journals:** Fully migrated to V3 CRUD. - [x] **Events - Badges:** Partially migrated (List and Search). - - [ ] Complete migration for Journals (Create, Update, Delete). - [ ] Complete migration for Events - Badges (Create, Update, Delete). - [ ] Migrate Core modules (Accounts, Sites, People). - [ ] Migrate IDAA modules.