Complete editable fields whitelists for all remaining AE objects
- Created .editable_fields.ts files for Journals, Events, and Sponsorships modules - Standardized the whitelist pattern across the entire codebase - Updated TODO.md and GEMINI.md with recent accomplishments and learnings
This commit is contained in:
31
GEMINI.md
31
GEMINI.md
@@ -223,30 +223,23 @@ The activity logging functionality is now working as expected. While the origina
|
||||
- **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-06 - Night)
|
||||
### Session Learnings (2026-01-07)
|
||||
|
||||
**Context:** Fixed critical IDAA loading issues, optimized API retry logic, and continued V3 migration for IDAA modules.
|
||||
**Context:** Finalized IDAA Bulletin Board V3 migration and completed the global application of the `editable_fields.ts` pattern.
|
||||
|
||||
**Key Accomplishments:**
|
||||
- **IDAA Recovery Meetings Fix:** Resolved a 400 Bad Request error by removing the restricted `conference` field from the V3 search query and implementing local filtering as a temporary frontend workaround.
|
||||
- **API Retry Optimization:** Updated `post_object` in `api_post_object.ts` to immediately stop retrying on 4xx client-side errors, improving responsiveness and reducing unnecessary network overhead.
|
||||
- **IDAA V3 Migration:**
|
||||
- Migrated **Archives** and **Archive Content** modules to V3 CRUD.
|
||||
- Migrated **Events** (used by Recovery Meetings) to V3 CRUD.
|
||||
- Created `editable_fields` definitions for Archives and Archive Content.
|
||||
- **Core Placeholders:** Built logic and UI placeholders for **Addresses** and **Contacts** at `/core/addresses` and `/core/contacts`.
|
||||
- **Navigation Update:** Integrated the new Address and Contact management routes into the core layout navigation.
|
||||
- **Inter-Agent Communication:** Established identity as `frontend_svelte` and confirmed the file-based "Inbox" messaging system via `agents_sync/inbox` for coordination with `backend_fastapi` and other agents.
|
||||
- **IDAA Bulletin Board V3:** Completed migration to V3 CRUD. Resolved a critical bug where results disappeared after filtering by ensuring `account_id` is injected into processed objects before being saved to IndexedDB.
|
||||
- **Race Condition Resolution:** Identified and fixed a race condition during database refresh by `await`ing Dexie `.clear()` operations.
|
||||
- **Global Editable Field Whitelists:** Successfully created `.editable_fields.ts` whitelist files for all remaining Aether objects (Journals, Events, Sponsorships). This standardizes secure updates from the frontend by explicitly defining permitted fields for PATCH operations.
|
||||
- **Documentation:** Updated `TODO.md` and `GEMINI.md` to reflect the current project state and recent milestones.
|
||||
|
||||
**Key Learnings:**
|
||||
- **API Health Monitoring:** Learned to use `curl -s https://dev-api.oneskyit.com/v3/crud/health` for direct backend health checks, bypassing frontend complexity during diagnosis.
|
||||
- **Client Error Handling:** It is critical to differentiate between network failures (worth retrying) and client errors (400, 403) which indicate fundamental request issues.
|
||||
- **Nested CRUD Pattern:** Successfully applied the `create_nested_obj_v3` and `delete_nested_ae_obj_v3` patterns to the Event Badge and Archive Content modules.
|
||||
- **Agent Coordination:** The `agents_sync/inbox` provides a low-friction way to align frontend and backend efforts, especially during breaking API transitions.
|
||||
- **IndexedDB Filter Consistency:** When using client-side filtering (e.g., `liveQuery`) on fields like `account_id`, it is vital that the frontend data processors inject these IDs if the API response omits them (common in nested V3 routes).
|
||||
- **Asynchronous DB Operations:** Always `await` database cleanup operations (`.clear()`) before triggering new data loads to prevent stale data or empty lists due to race conditions.
|
||||
- **Strict Data Shaping:** Centralizing field whitelists in `.editable_fields.ts` files provides a clean, maintainable way to control what data is sent back to the API during updates, preventing accidental overwrites of protected fields.
|
||||
|
||||
**Next Steps:**
|
||||
- **Bulletin Board (Posts):** Migrate `ae_posts` to V3 CRUD.
|
||||
- **Person Activity UI:** Finalize the "Linked Activity & Content" section in the Person detail view to show real related data.
|
||||
- **Address/Contact Details:** Build out the detail pages for these new modules.
|
||||
- **Agent Inbox:** Periodically check `/home/scott/agents_sync/inbox/frontend_svelte/` for messages from the backend agent.
|
||||
- **Authentication & Security:** Standardize JWT usage in headers for all V3 calls.
|
||||
- **Person Management:** Build out the "Linked Activity & Content" section and dedicated edit forms.
|
||||
- **Address/Contact Details:** Implement detail pages for these newly added modules.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user