Restore Event Session search stability and advance platform-wide string ID standardization

- Restored Event Session search by standardizing on 'event_id' for Dexie queries and implementing dual-layer filtering (local + API guard) to prevent broad results from clobbering filtered views.
- Advanced String-Only ID Standardization (Phase 2) by updating generic object processors across all event library modules to support both base IDs and legacy '_random' variants.
- Refactored Event Presenter and Presentation components to support standardized '_id_li' props while maintaining backward compatibility.
- Standardized common helper identifiers to snake_case (e.g., 'prevent_default') in the Events module.
- Verified Staff and Poster email notification logic in the Bulletin Board module.
- Updated .gitignore and cleaned up test artifacts.
This commit is contained in:
Scott Idem
2026-02-04 19:32:17 -05:00
parent 46c30590ed
commit bd39fd3061
12 changed files with 134 additions and 32 deletions

View File

@@ -123,7 +123,15 @@
- **Last Action:** Committed a platform-wide refactor of button types and file operation security (81 files).
- **Last Action:** Restored Event Session search functionality and standardized ID mapping across core event library modules.
@@ -131,15 +139,31 @@
- **Multi-Line Attribute Hazards:** Bulk regex tools often miss or duplicate attributes in multi-line Svelte tags; surgical manual edits or specialized parsers are required for clean tag handling.
- **V3 Action Pattern:** Authenticated file downloads now strictly require the `key=${account_id}` parameter via the `/v3/action/` endpoint path.
- **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.
- **Svelte 5 Effects:** Using `$effect` to synchronize props to local state requires `untrack` to prevent circular reactivity loops.
@@ -147,19 +171,47 @@
- **Standardized Button Typing:** Applied `type="button"` vs `type="submit"` across Journals, Events, and IDAA modules to prevent accidental form submissions.
- **Hardened File Operations:** Successfully migrated the entire platform to the authenticated V3 Action API for all file downloads and deletes.
- **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.
- **Compiler Error Sweep:** Resolved over 40 critical compiler errors, including duplicate attributes in complex components and missing imports.
- **DX Optimization:** Verified the "Safe Workflow Strategy" (Edit -> Lint -> Check) as an effective baseline for large-scale refactoring.
- **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`).
@@ -167,7 +219,15 @@
- **Immediate Next Step:** Resolve remaining type mismatches (~160) or begin modular refactoring of large components (>800 lines).
- **Immediate Next Step:** Continue ID standardization across remaining modules or proceed with IDAA Archives/Recovery Meetings verification.
---