Commit Graph

1523 Commits

Author SHA1 Message Date
Scott Idem
7ec3bae343 feat: add Zero-Dependency AE_Comp_Editor_TipTap with auto-formatting support 2026-01-29 14:30:28 -05:00
Scott Idem
363d94a36b refactor: consolidate CodeMirror editors into unified AE_Comp_Editor_CodeMirror component 2026-01-29 14:16:35 -05:00
Scott Idem
3d7b68e7ce Good by Data Store v2 2026-01-29 13:15:24 -05:00
Scott Idem
1a462c06c5 Date update 2026-01-29 12:43:40 -05:00
Scott Idem
0c8a96dd0c This should be the last round of Data Store changes to upgrade them to v3. 2026-01-29 12:35:57 -05:00
Scott Idem
2975835d96 Continuing to make updates to the Data Stores to use v3. 2026-01-29 12:29:14 -05:00
Scott Idem
9bf2373a82 Slowly updating things to Data Store v3. Also doing some safe code clean up. Mainly removing commented out code. 2026-01-29 12:21:47 -05:00
Scott Idem
917c8f3e37 Slowly implementing the new Data Store element v3. It should be a drop in replacement for v2. 2026-01-29 12:12:33 -05:00
Scott Idem
ab3aa52e07 A working Data Store element/component again!!! Saving! 2026-01-29 11:51:12 -05:00
Scott Idem
6a132af2ae Saving changes that seem to be safe and working. 2026-01-29 11:08:34 -05:00
Scott Idem
20f1f5ad27 This is a mostly working state again. Some files were backed up to ~/tmp/Aether_UI_UX_app. Things are slowly being merged back in. Not easy. 2026-01-29 10:57:59 -05:00
Scott Idem
b25d13297e fix: stabilize root layout reactivity and badge template form
- Fix infinite loops in '+layout.svelte' by using 'untrack' for store synchronization effects.
- Correctly define 'ae_acct' as a derived rune to resolve ReferenceErrors and ensure site styles hydrate properly.
- Modernize 'ae_comp__badge_template_form.svelte' with Svelte 5 Runes and callback props (onsuccess, onerror, oncancel).
- Fix illegal async  in badge form by moving logic to a dedicated load function untracked by the effect.
- Add Presentation Management Reports to TODO list for tracking.
2026-01-28 15:46:29 -05:00
Scott Idem
55773a332d refactor: harden type safety and modernize core forms for Svelte 5
- Standardize 'ae_BaseObj' and event types in 'ae_types.ts' to handle nullable fields from V3 API/Dexie.
- Modernize Person, Address, and Contact forms with Svelte 5 Runes and reactive synchronization.
- Refactor Event Settings and its sub-components to use the 'onsave' callback pattern, removing deprecated dispatchers.
- Hardened 'element_data_store_v2' with safe initialization and localStorage caching logic.
- Clean up unused 'element_data_store.svelte' (V1) and suppress Electron environment type errors in 'tmp_shell_handlers.ts'.
- Update documentation and workspace settings to reflect Phase 5 reactive patterns.
2026-01-28 14:40:20 -05:00
Scott Idem
bc1d74f817 docs: update task lists and migration audit for Exhibit Search standardization 2026-01-28 12:07:00 -05:00
Scott Idem
cc3a6b0f59 feat(leads): implement reactive search for exhibitors and lead tracking
- Implemented V3-style reactive search (Local Cache -> Remote Revalidation) for exhibitors.
- Standardized search fields to 'name' for Exhibits and 'event_badge_full_name' for Lead Tracking.
- Refactored Leads UI with standardized search components and grid layout.
- Updated event routing to exclusively use string-based IDs (Triple-ID pattern).
- Hardened 'ae_EventSession' type definitions to handle null values from V3 API/Dexie.
2026-01-28 12:05:42 -05:00
Scott Idem
f145b4dcac Saving notes. 2026-01-27 18:46:58 -05:00
Scott Idem
811afb2fd7 refactor(sessions): standardize reactive search and fix list layout
- Migrated Session search to the debounced  pattern with Search Guards and shared observables.
- Implemented 'Remote First' toggle support (Edit Mode only) for background-only revalidation.
- Resolved 'each_key_duplicate' crash and fixed icon scaling issues in the session list.
- Restored missing session alert visibility for managers.
- Standardized store initialization to prevent reactivity loops.
2026-01-27 18:41:19 -05:00
Scott Idem
8680ad89c1 refactor(badges): complete field normalization and search mapping
- Finalized the rename of 'default_qry_string' to 'default_qry_str' across the Badge library, Dexie schema, and API documentation.
- Synchronized all reactive filtering in '+page.svelte' with the standardized field names to restore full search functionality.
- Verified that text search, affiliations, and types now correctly map to whitelisted backend fields.
2026-01-27 18:04:08 -05:00
Scott Idem
5219bd0c9c refactor(badges): fix text search and standardize field mapping
- Renamed 'default_qry_string' to 'default_qry_str' across the Badge interface, Dexie schema, and API logic to resolve 400 'Unauthorized search field' errors.
- Synchronized local Fast Path filtering with the correct database field names.
- Hardened the reactive search pattern in '+page.svelte' to ensure end-to-sync consistency between local and background results.
2026-01-27 17:53:05 -05:00
Scott Idem
bf93539880 refactor(badges): stabilize search components and reactivity
- Implemented Search Guard and store initialization in '+page.svelte' to fix loops and filtering.
- Updated 'ae_comp__badge_search.svelte' to act as a pure UI component triggering versioned searches.
- Refactored 'ae_comp__badge_obj_li.svelte' to use shared data streams and fixed icon build errors.
2026-01-27 17:47:08 -05:00
Scott Idem
22ede45bd6 refactor(badges): standardize reactive search and fix text filtering
- Corrected 'search__event_badge' to use the valid 'default_qry_str' field name, resolving 400 errors during text search.
- Re-implemented the standardized debounced search pattern in '+page.svelte' with a robust Search Guard to eliminate loops.
- Hardened Fast Path local filtering to match the 'Badge' schema and synchronized result sorting with API revalidation.
- Updated 'ae_comp__badge_search.svelte' and 'ae_comp__badge_obj_li.svelte' to align with the shared data pattern and fixed Lucide icon imports.
- Ensured 'events_loc' store initialization for new search-related fields.
2026-01-27 17:46:55 -05:00
Scott Idem
23ecb21fe1 fix(journals): eliminate infinite search loop with criteria-based guard
- Implemented a 'Search Guard' pattern in '+page.svelte' that snapshots search criteria and bails out of redundant executions.
- Stabilized reactivity by removing immediate list clearing in Remote First mode, ensuring a consistent data stream.
- Isolated all search-driven state updates with 'untrack' to prevent circular dependency triggers.
- Hardened the 'lq__journal_entry_obj_li' observable to ensure stable result emission.
2026-01-27 16:50:18 -05:00
Scott Idem
4f8c482cf3 refactor(journals): stabilize reactive search and synchronize result counts
- Refactored 'src/routes/journals/[journal_id]/+page.svelte' to use a singleton 'liveQuery' observable, eliminating the search subscription loop.
- Synchronized entry counts in 'ae_comp__journal_obj_id_view.svelte' with the shared entries observable, ensuring accurate header feedback.
- Cleaned up 'ae_comp__journal_entry_obj_li.svelte' by removing redundant script blocks and hardening visibility filters.
- Restricted the result count badge to Edit Mode for a cleaner standard user interface.
- Improved initial load UX with localized spinners and proper undefined-state guards.
2026-01-27 16:17:46 -05:00
Scott Idem
6055fc3408 refactor(journals): standardize high-performance reactive search and stabilize results stream
- Implemented the loop-proof search pattern in 'src/routes/journals/[journal_id]/+page.svelte' using versioned triggers and untracked dependency isolation.
- Stabilized data loading by introducing 'ae_comp__journal_entry_obj_li_wrapper.svelte', ensuring smooth SWR transitions between local and API results.
- Synchronized result counts with the rendered list in 'ae_comp__journal_entry_obj_li.svelte' and implemented permissive visibility defaults.
- Added 'Remote First' toggle support (Edit Mode only) and laid groundwork for Global Search in 'ae_comp__journal_entry_obj_qry.svelte'.
- Updated Dexie schema and API helpers to support future person-level cross-journal searching.
2026-01-27 15:20:17 -05:00
Scott Idem
07e13ea5f2 perf(idaa): optimize search responsiveness and stabilize reactive data stream
- Stabilized the 'liveQuery' observable in 'ae_idaa_comp__event_obj_li_wrapper.svelte' by re-wrapping it in '', ensuring smooth UI updates when switching between local and API results.
- Reduced search debounce time to 250ms in '+page.svelte' for a more instantaneous user experience.
- Hardened 'Fast Path' local filtering to be more permissive and added debug logging to help diagnose IndexedDB sync issues.
- Restricted the visibility of the 'Remote First' toggle to Edit Mode (.edit_mode) for a cleaner standard user interface.
2026-01-27 14:48:08 -05:00
Scott Idem
3b6b32ce1c refactor(idaa): harden reactive search logic and resolve infinite loops
- Replaced boolean search triggers with a versioned integer pattern to break reactivity loops in '+page.svelte'.
- Resolved 'behind by one' search lag by ensuring the UI immediately reflects local results, even if empty.
- Corrected subscription syntax for 'liveQuery' observables in 'ae_idaa_comp__event_obj_li.svelte'.
- Implemented a robust 'Remote First' toggle support in search logic while maintaining fast-path local feedback.
- Hardened Fast Path filtering to match server-side logic more accurately for improved cache reliability.
2026-01-27 14:26:47 -05:00
Scott Idem
055d8e7816 refactor(search): standardize debounced reactive search across modules
- Standardized the search pattern using Svelte 5 debounced $effects in Recovery Meetings, Badge Search, and Journals to eliminate manual triggers and stuttering.
- Fixed a bug in 'ae_idaa_comp__event_obj_li.svelte' where the Results count was inconsistent with the displayed list by implementing a derived 'visible_event_obj_li' state.
- Hardened 'ae_idaa_comp__event_obj_li_wrapper.svelte' to filter out 'undefined' entries from database 'bulkGet' calls.
- Cleaned up legacy search handling code in 'ae_idaa_comp__event_obj_qry.svelte'.
- Updated 'TODO.md' and 'GEMINI.md' to reflect search logic hardening accomplishments.
2026-01-27 13:08:11 -05:00
Scott Idem
b837e6d0f8 perf(core): standardize non-blocking load pattern and add performance guidelines
- Documented the 'Non-Blocking Load Pattern' (SWR) in 'documentation/PERFORMANCE_GUIDELINES.md' to prevent future performance regressions.
- Refactored 'src/routes/core/people/[person_id]/+page.ts' to be non-blocking, improving perceived speed for person details.
- Updated 'GEMINI.md' standards and 'TODO.md' tasks to reflect system-wide performance hardening.
2026-01-27 12:32:26 -05:00
Scott Idem
9655604d86 perf(events): refactor load functions to be non-blocking
- Eliminated blocking 'await' calls in '+page.ts' for main Events, Session, Location, and Presenter views.
- Implemented Stale-While-Revalidate (SWR) pattern: pages now render instantly using cached IndexedDB data while API refreshes run in the background.
- Removed expensive sequential loops in load functions, allowing the reactive UI (via LiveQuery) to handle data arrival as background tasks complete.
2026-01-27 12:25:35 -05:00
Scott Idem
30413e32d2 refactor(events): harden V3 String-Only ID vision and fix Session Alert store error
- Standardized Event module logic files to strictly use random string IDs, ensuring frontend consistency and avoiding 'Integer Trap' 404s.
- Refactored 'ae_comp__event_session_alert.svelte' to accept a plain object instead of a store/observable, resolving the 'store_invalid_shape' error in list loops.
- Updated all callers of the alert component to pass unwrapped session objects.
- Cleaned up event-related UI components to remove redundant '_random' field lookups and align with V3 CRUD patterns.
- Updated project metadata (GEMINI.md, TODO.md) to reflect the new memory structure and latest hardened state.
2026-01-27 12:18:12 -05:00
Scott Idem
a704779d1b fix(ux): optimize event lists and fix editor line wrapping
- Implemented 'Details' toggle in Session lists to defer expensive presenter/file sub-component renders, improving initial hydration speed.
- Fixed line-wrapping for long lines in Journals Editor (both plain textarea and CodeMirror).
- Updated TODO.md and GEMINI.md to reflect Journals standardization and performance optimizations.
2026-01-26 20:25:56 -05:00
Scott Idem
ae86d0aede fix(journals): standardize component naming, props, and libraries
- Renamed all Journal components to follow the ae_comp__* snake_case convention.
- Normalized all custom event handler props from PascalCase (onSave) to snake_case (on_save) across the module.
- Migrated all icon imports from @lucide/svelte to lucide-svelte for consistency.
- Resolved ReferenceErrors and file corruption issues in Journals config and entry views.
- Updated qry__journal_entry logic to support category filtering.
- Verified module integrity and component interop.
2026-01-26 20:18:39 -05:00
Scott Idem
6858052e7d fix(idaa): correct svelte-check errors and refine IDAA components
- Fixed invalid JavaScript-style comments inside HTML tags.
- Restored intentional '1 == 3' business logic pattern.
- Switched to 'event.currentTarget' for FormData instantiation.
- Resolved type errors in delete method calls via explicit casting.
- Cleaned up unused props and resolved property access issues in Archives and Bulletin Board components.
- Verified final state with npm run check.
2026-01-26 18:09:18 -05:00
Scott Idem
ac14721bd0 fix(idaa): audit and harden IDAA module components and types
- Updated ae_types.ts with missing IDAA-specific fields for Archives and Events (topic_name, archive_on, contact_li_json, etc.) using snake_case.
- Refactored bulletin board post filter to safely handle null archive_on dates.
- Fixed missing 'data' prop assignment in bulletin board list component to resolve type error.
- Corrected core_func.download_export__obj_type method name in recovery meetings export.
- Hardened safety checks for contact_li_json in recovery meetings view logic to prevent null property access.
- Mapped Jitsi meeting event data to internal snake_case variables and fixed input type assignments.
- Updated project documentation (TODO, GEMINI.md, .ae_brief) to reflect IDAA hardening progress.
2026-01-26 17:50:27 -05:00
Scott Idem
0a390c9505 feat(sw): implement and enable robust service worker caching
- Re-enabled automatic service worker registration in svelte.config.js.
- Implemented a production-ready service-worker.js using SvelteKit metadata (-worker).
- Added intelligent caching for build artifacts, static files, and network fallbacks.
- This ensures the UI shell and assets load instantly from disk, completing the hydration performance workstream.
2026-01-26 17:19:30 -05:00
Scott Idem
ef597bc058 feat(launcher): implement visual telemetry dashboard in health config
- Added visual progress bars for RAM usage based on native device metadata.
- Implemented color-coded status indicators (success/warning/error) for memory usage.
- Enhanced layout with animated pulses for heartbeat and sync status.
- Added detailed device info display including hostname and IP addresses.
2026-01-26 17:14:14 -05:00
Scott Idem
476ab7ede6 perf(hydration): resolve white page delay by removing blocking awaits from layouts
- Refactored Events root layout to fire load_ae_obj_id__event in the background.
- Refactored Journals list page to fire load_ae_obj_li__journal in the background.
- Combined with SWR module logic, this ensures near-instant UI rendering from Dexie cache while refreshes occur asynchronously.
2026-01-26 17:13:40 -05:00
Scott Idem
c7a517a6e1 perf(hydration): optimize page loads and silence background fetch noise
- Implemented SWR pattern for Journal and Site Domain lookups.
- Refactored +layout.ts across modules to fire background refreshes instead of blocking.
- Updated +layout.svelte to render the layout shell immediately while hydrating.
- Silenced 'AbortError' and 'NetworkError' in api_get_object.ts and api_post_object.ts for log_lvl 0.
- Resolved duplicate export errors in ae_journals__journal.ts.
2026-01-26 17:06:22 -05:00
Scott Idem
715cc7cb65 perf(hydration): implement non-blocking load path for Launcher and Sessions
- Implemented SWR pattern for session loading in ae_events__event_session.ts.
- Refactored Launcher layouts (+layout.ts and +page.ts) to fire background refreshes instead of awaiting API calls.
- Removed redundant blocking logic to ensure instant UI rendering from Dexie cache.
2026-01-26 16:50:40 -05:00
Scott Idem
359eb9cf3f perf(hydration): implement cache-first site discovery and SWR event loading
- Refactored lookup_site_domain_v3 to be cache-first, unblocking root layout.
- Implemented Stale-While-Revalidate (SWR) pattern for load_ae_obj_id__event.
- Added global hydration overlay and loading spinner to +layout.svelte.
- Updated site domain whitelist to persist critical account/styling metadata in Dexie.
- Refactored root load function to return immediately if cached site data is found.
2026-01-26 16:41:14 -05:00
Scott Idem
c95b866969 Saving settings. 2026-01-26 16:19:05 -05:00
Scott Idem
5f2ccf8823 refactor(launcher): modularize launcher config and implement Phase 5 actuators
- Broke down the massive launcher_cfg.svelte into 7 modular sub-components.
- Updated electron_relay.ts with Phase 5 presentation controls and manifest tools.
- Updated architecture documentation to reflect the new TypeScript-based native bridge.
2026-01-26 16:18:00 -05:00
Scott Idem
7c14b1e3a2 chore: disable noisy markdown linting rules (MD007, MD033) in VS Code settings 2026-01-26 15:19:27 -05:00
Scott Idem
b072857d68 feat(native): harden launcher bridge and implement presentation-aware handover
- Upgraded LauncherBackgroundSync to force-hydrate OS metadata (home/tmp) on mount.
- Hardened electron_relay.ts with robust placeholder resolution and global regex.
- Restored safe handover by making native.launch_from_cache presentation-aware.
- Integrated heartbeat and sync status into the formal Launcher Config UI.
- Added comprehensive technical documentation for the 2026 native architecture.
2026-01-26 15:12:03 -05:00
Scott Idem
f0c4022675 fix(native): restore safe handover by making launch_from_cache presentation-aware
- Reverted handle_open_file to use native.launch_from_cache for atomic copy support.
- Upgraded Electron main process to handle specialized launcher logic (LibreOffice/AppleScript) internally after the copy operation.
- Ensures absolute paths and file existence before triggering OS apps.
2026-01-26 14:59:10 -05:00
Scott Idem
1a9630903d refactor(native): localize OS hydration to Launcher module
- Removed detailed OS path hydration from root +layout.ts to keep it lean.
- Moved home/tmp directory hydration to LauncherBackgroundSync onMount.
- Fixed regex pattern bug in electron_relay.ts (/\[home\]/g).
- Ensures absolute paths are correctly generated within the Launcher module.
2026-01-26 14:34:15 -05:00
Scott Idem
32866f7911 docs: finalize Phase 4 and update session context
- Officially marked Phase 4 (Heartbeat/Sync) as complete.
- Updated GEMINI.md development history and session context.
- Set Phase 5 (AppleScript/Office) as the next active workstream.
2026-01-26 13:28:34 -05:00
Scott Idem
71297af15c fix(api): implement auto-serialization for _json fields in V3 create/update
- Added logic to automatically JSON.stringify any field ending in '_json' in V3 API helpers.
- Added final payload logging to create_ae_obj_v3 for better debugging.
- Resolves 'str type expected' validation errors (HTTP 400) when sending objects to V3 CRUD endpoints.
2026-01-26 13:02:11 -05:00
Scott Idem
13bc903ad9 fix(launcher): resolve heartbeat timezone shift and enable browser testing
- Removed manual 'Z' suffix addition in device processing to fix incorrect offsets.
- Switched heartbeat payload to standard UTC ISO strings.
- Enabled background timers in non-native environments for easier verification.
- Hardened telemetry gathering to skip Electron-only APIs when running in a browser.
2026-01-26 12:57:59 -05:00
Scott Idem
af1dc18b57 Bug fix for Activity Log creation. Related to the date and auth. 2026-01-26 12:36:19 -05:00