Commit Graph

2069 Commits

Author SHA1 Message Date
Scott Idem
6380effa90 Quickly saving in progress changes. We are working on why the IDAA Recovery Meetings are not loading. 403 errors. 2026-01-20 18:23:40 -05:00
Scott Idem
0e411531eb V3 Hardening & Fixes: Structured Errors, JWT Fallbacks, and Module Stability
- Implemented Structured Error Handling across GET/POST/PATCH helpers to extract rich V3 error metadata.
- Added direct localStorage fallback for JWT detection to resolve race conditions during initial page load.
- Fixed async race condition in Archives leading to 'archive_content_li is undefined' crash.
- Hardened generic object processor to handle non-array API responses gracefully.
- Resolved zero-result bug in Event Search by using raw 'account_id_random' to bypass backend mapping conflicts.
- Isolated bootstrap headers in +layout.ts and removed invalid response headers from request config.
- Enhanced /testing dashboard with live header inspection and V3 hardening audits.
2026-01-20 18:23:40 -05:00
Scott Idem
c40a296a77 API V3: Implement Structured Error Handling and Validation Tests
- Updated api_get_object and api_post_object to extract rich metadata (meta.details) from 400/500 responses.
- Enables frontend to bubble up specific DB schema, validation, and constraint errors for better debugging.
- Added 'V3 Hardening' section to /testing dashboard with automated tests for Permissive Mode and Structured Error extraction.
2026-01-20 18:22:14 -05:00
Scott Idem
8566917be1 API Hardening: Refine Bypass Logic and Enable Permissive Mode
- Hardened 'Bootstrap Paradox' bypass logic in GET/POST helpers to only strip account ID if an intentional bypass value is provided.
- Enabled 'Permissive Update Mode' (x-ae-ignore-extra-fields: true) by default to improve frontend state synchronization.
- Fixed loader hydration bug where isolated API headers were being overwritten by stale global defaults.
- Ensured correctly resolved account names persist in local state instead of defaulting to 'Ghost Account'.
- Added Environment & Bridge diagnostics section to the testing dashboard for easier runtime verification.
2026-01-20 18:22:14 -05:00
Scott Idem
25d6503afe Environment & Bootstrap Stability: Fix Ghost Account and Modernize PWA Manifest
- Resolved 'Ghost Account' warning by updating layout hydration to align with V3 ID Vision (account_id vs account_id_random).
- Improved site lookup reliability using Agent API Key and structured EQ filters for exact FQDN matching (including ports).
- Modernized PWA manifest with maskable icons (PNG/WebP), app shortcuts, and unique installation IDs.
- Implemented automatic Electron 'Native' mode detection in root layout.
- Fixed stale API URLs in Launcher native file download logic.
- Added V3 migration documentation and JWT verification test scripts.
2026-01-20 18:22:14 -05:00
Scott Idem
08d0d9ca45 feat: Refine dynamic manifest with OSIT branding and full icon set
- Incorporated comprehensive icon list from dgr.oneskyit.com reference.
- Updated dynamic naming logic to 'One Sky IT - {Account} Aether PWA'.
- Set display mode to 'fullscreen' per reference standard.
- Added verification tool to the Testing Dashboard.
2026-01-20 18:15:28 -05:00
Scott Idem
79e8411842 feat: Implement dynamic domain-based PWA manifest
- Added /manifest.webmanifest server-side route.
- Implemented hostname-based branding lookup using Agent API Key.
- Updated app.html to use the dynamic manifest route.
- Added manifest verification tool to the System Testing dashboard.
2026-01-20 18:10:40 -05:00
Scott Idem
f565857e20 feat: Implement API V3 Testing Dashboard and Security Hardening
- Added comprehensive System Testing dashboard with live V3 trace tool.
- Implemented Section 2D 'Fail-Fast' protocol in get_object helper.
- Added reactive JWT synchronization in root layout to ensure V3 consistency.
- Resolved Tailwind 4 @apply compilation errors in testing page.
2026-01-20 17:54:15 -05:00
Scott Idem
0b2ed6ce08 feat(pwa): implement dynamic manifest.webmanifest and service worker for multi-tenant support 2026-01-16 19:09:03 -05:00
Scott Idem
ecb6ba5250 refactor: improve type safety, Svelte 5 reactivity, and API resilience 2026-01-16 17:29:33 -05:00
Scott Idem
09d1aa6720 Hardened Journals and IDAA module load functions for offline resilience and ghost account support. 2026-01-16 17:04:56 -05:00
Scott Idem
f1f905c626 Refined offline banner UI with semi-transparency and collapse/expand toggle. 2026-01-16 16:54:33 -05:00
Scott Idem
24ccf38412 Hardened root layout initialization and ghost fallback logic to resolve 500 errors during API downtime. 2026-01-16 16:51:11 -05:00
Scott Idem
a10accfaaf Implemented offline-first fast-paths and hardened API/Layout resilience. Added reactive offline banner, root error page, and ghost site fallbacks to handle server downtime and connection loss without crashing. 2026-01-16 16:41:32 -05:00
Scott Idem
8b611e7875 feat(offline): implement Dexie fallbacks and fix type stability in Events module
- Offline Resilience: Added local Dexie fallbacks to load_ae_obj_id__* and load_ae_obj_li__* functions for Events, Sessions, Locations, Exhibits, and Badges.
- Type Safety: Standardized ae_Event and ae_EventSession interfaces in ae_types.ts; resolved Promise assignment errors in load functions (+page.ts).
- Bug Fixes: Corrected duplication in ae_events__event_location.ts and ae_events__event_badge_template.ts; fixed missing try_cache parameters.
- UI Stability: Fixed Dexie LiveQuery subscription pattern in bulk print view and ensured proper property access in layout load functions.
2026-01-16 15:09:10 -05:00
Scott Idem
2db2aba6f9 feat(launcher): improve Events Presentation Launcher stability and data flow
- Standardized ID usage: Migrated multiple components from '_random' variants to standard 'id' properties to align with V3 backend and Dexie patterns.
- Electron Integration: Added global 'native_app' declaration and Window interface augmentation in app.d.ts to resolve TypeScript errors.
- Type Safety: Enhanced ae_EventSession interface with missing 'event_file_li' and added runtime null checks in session loading logic.
- UI/UX: Restored missing launcher components in location-specific pages and fixed LiveQuery filter logic for session lists.
- Bug Fixes: Resolved indexing errors in location list and corrected store update patterns in layout.
2026-01-16 13:59:51 -05:00
Scott Idem
5ee17c2925 The badge view ID now correctly renders a badge! This took way too long. So many $ were removed and things missed. 2026-01-16 13:07:28 -05:00
Scott Idem
07572e0f5c The badge does not yet render and are not fully working on the badge view ID page, but I am saving anyways. It at least works and seems to finally be moving in the right direction. It is partially related to the badge_template records not being saved to the badge_template. 2026-01-16 12:44:30 -05:00
Scott Idem
c7d63da8a1 fix: Consolidate type and parameter fixes across multiple modules
- API: Standardized 'order_by_li' types in event and archive modules.
- API: Corrected 'enabled'/'hidden' parameter types in event exhibit and device search/list functions.
- Type Safety: Addressed generic type casting issues in _process_generic_props across event modules.
- Data Handling: Resolved return type consistency in journal creation and DB save operations.
- Parameter Management: Fixed missing 'try_cache' parameters in event exhibit functions.
- Core Logic: Ensured correct object properties in DB put operations for hosted files.
2026-01-15 19:56:37 -05:00
Scott Idem
ee1ca93894 fix: resolve TypeErrors in core, events, and journals modules
- Core: Use FormData in video clip components to fix EventTarget errors.
- DB: Rename 'File' to 'ae_LocalFile' in db_core to prevent DOM type shadowing.
- API: Strictly type 'order_by_li' across archives, events, and journals to match API definition.
- API: Fix 'enabled'/'hidden' parameter types in search functions.
- Generics: Add 'any' cast to 'processed_obj' in generic processors to fix indexing errors.
- Journals: Update journal_entry creation to return null on failure, fix missing ID fields in DB save.
2026-01-15 19:27:53 -05:00
Scott Idem
ab1c207c86 feat: standardize OrderBy types and fix data model mismatches
- Update ae_types.ts with joined fields for deep layout loading
- Fix OrderBy vs OrderBy[] type mismatch in API v2/v3 and generic CRUD
- Apply 'as const' to order_by_li defaults in core/event libraries
- Resolve type errors in reports_presenters and reports_files Svelte components
2026-01-15 19:03:26 -05:00
Scott Idem
31f18b8723 fix(types): systemic cleanup of high-impact svelte-check errors
- Resolved Svelte 5 $bindable() prop errors in Analytics and Person Table components.
- Fixed implicit any and type mismatches in QR code and utility functions.
- Corrected OrderBy type mismatch pattern in systemic loaders.
- Improved type safety for BlobPart and ArrayBuffer handling.
- Down to 700 errors from ~731.
2026-01-15 18:29:27 -05:00
Scott Idem
d4753de9e2 fix(core): add missing links and modernize list pages
- Added missing Addresses and Contacts links to Core Management main page.
- Modernized list pages for Accounts, Sites, Activity Logs, and Lookups.
- Standardized headers, iconography, and search layouts across all core list views.
- Improved layout responsiveness and visual hierarchy.
2026-01-15 18:24:42 -05:00
Scott Idem
156cb79a24 fix(core): comprehensive search UI redesign and module modernization
- Rebuilt Users and People search from scratch using robust flexbox (grow, min-w-100px, whitespace-nowrap).
- Added search functionality and card-grid layout to Address and Contact management lists.
- Modernized detail pages for Addresses and Contacts with standardized headers and iconography.
- Unified form padding (p-3 for inputs, p-2 for selects) across all Core modules.
- Fixed variable hoisting and missing icon imports in Address components.
2026-01-15 18:17:44 -05:00
Scott Idem
b2f695c846 feat(core): standardized search UI and improved form padding
- Standardized User Management search to match People Management style.
- Added 'p-3' padding to main search inputs and 'p-2' to selects for better visual clarity.
- Improved search icon spacing with enhanced shim padding (!px-4).
- Applied consistent padding enhancements to Account, Site, and User detail pages.
- Standardized 'Go' button prominence across search sections.
2026-01-15 18:01:52 -05:00
Scott Idem
39d0707968 Lots of style clean up 2026-01-15 17:51:48 -05:00
Scott Idem
572ce1841b feat(core): standardized form inputs and buttons across core modules
- Updated Person, Address, Contact forms with consistent Skeleton UI styling.
- Standardized Account, Site, and User detail pages.
- Modernized People, Address, and Contact list pages with improved headers and action buttons.
- Applied 'variant-filled-surface' and 'rounded-lg' patterns from Journals module for UI consistency.
2026-01-15 17:40:46 -05:00
Scott Idem
96adf1fa26 Better looking testing dashboard. Still needs work though. It does not scroll correctly. 2026-01-15 17:28:26 -05:00
Scott Idem
52f5d0bab6 fix(core): use multi-call strategy for inclusive User Management scope
- Updated load_ae_obj_li__user to handle 'All' scope by fetching account and global users separately.
- Ensured Search API uses authorized account_id_random field with op: 'eq' for null.
- Fixed 404 for global lookups by avoiding [NULL] in standard List API.
2026-01-15 16:17:25 -05:00
Scott Idem
c219c78e8f fix(core): use supported NULL comparison operator in User Management search
- Switched from 'op: is' to 'op: eq' for NULL values, as 'is' was returning 400.
- Refined search query structure to ensure compatibility with user search endpoint.
2026-01-15 15:16:40 -05:00
Scott Idem
f23b515f11 fix(core): resolve zero-results and incorrect scoping in User Management
- Refined load_ae_obj_li__user to use List API for simple account filtering and Search API for complex cases.
- Fixed 'Global Only' scope returning all users by ensuring correct NULL filtering.
- Improved search query structure with top-level 'or' for inclusive global support.
- Added detailed logging to load_ae_obj_li__user for easier debugging.
2026-01-15 14:58:52 -05:00
Scott Idem
227c806318 fix(core): improve User Management filtering and scope support
- Updated load_ae_obj_li__user to use search_ae_obj_v3 for complex account OR global filtering.
- Fixed zero-results issue by defaulting to 'All' scope (Current Account + Global).
- Added visual 'Account' vs 'Global' badges to user cards.
- Added 'Scope' selector to User Management page.
2026-01-15 14:45:34 -05:00
Scott Idem
111c828a04 feat(core): default User Management to current account context
- Updated load_ae_obj_li__user to support for_obj_id filtering.
- Updated create_ae_obj__user to support account_id for new users.
- Updated User Management page to default to current account_id for listing and creation.
2026-01-15 14:40:09 -05:00
Scott Idem
df9e14d896 feat(core): enhance Person management and modernize Address/Contact lists
- Improved Person table with 'Not Linked' badge for better visibility.
- Updated Person form with 'prefix' field and direct User account linking.
- Standardized Address and Contact list views to show all records (enabled/hidden).
- Amending previous refactor to include all verified import and type fixes.
2026-01-15 14:36:25 -05:00
Scott Idem
74d107f157 refactor(core): consolidate logic and modernize imports
- Unified Person and User logic into ae_core__* counterparts and marked legacy files.
- Renamed Activity Log to ae_core__activity_log.ts for naming consistency.
- Updated all core function imports across the identity, logs, and video conference modules.
- Fixed missing 'prefix' field in Person form payload and corrected return types in Activity Log.
- Updated project TODO to reflect completed core module refinements.
2026-01-15 14:29:35 -05:00
Scott Idem
7ce9c5e093 fix(auth): resolve sign-in crashes and email authentication 500 error
- Refactored authentication calls in core__user.ts to explicitly set x-account-id and remove x-no-account-id, ensuring correct account context for legacy endpoints.
- Updated emailed sign-in link logic to use the correct /user/{user_id}/email_auth_key_url endpoint and avoid 500 crashes caused by extraneous URL parameters.
- Fixed person search query field names (enable/hide) and broadened search scope to 'all' to ensure records are found regardless of status.
- Added safety checks and documentation to prevent UI crashes when API responses are empty or NULL.
2026-01-15 14:03:49 -05:00
Scott Idem
b88d5fbabf Fixes for username and password sign in! Quick save while Gemini still working. 2026-01-15 11:28:57 -05:00
Scott Idem
98cd35078d feat(journals): implement background auto-save for status and security fields
- Refactored handle_update_journal and handle_update_entry to support non-closing background persistence.
- Implemented strict payload whitelisting for journal and journal_entry updates to resolve HTTP 400 schema errors.
- Added onchange triggers to enable, hide, priority, and sort fields for real-time background syncing.
- Standardized 'Status & Security' tab labeling across configuration components.
2026-01-14 19:08:37 -05:00
Scott Idem
dbb45e10ae style(journals): standardize and stabilize 'Config' interfaces across all levels 2026-01-14 18:52:45 -05:00
Scott Idem
0108e28f59 More clean up. Saving notes. 2026-01-14 18:30:36 -05:00
Scott Idem
9caeb91394 Quickly saving good looking and mostly working config menus. 2026-01-14 18:27:46 -05:00
Scott Idem
cdf318e744 style(journals): stabilize and standardize all configuration interfaces
- Implemented 'untrack' safeguards in all modal effect blocks to prevent reactivity loops.
- Standardized Module, Journal, and Entry configuration with unified tabbed UI and Aether Orange theme.
- Fixed critical 'journal is undefined' and ReferenceErrors in configuration modals.
- Restored missing button toggles and visibility options in journal-level settings.
- Documented Dexie liveQuery '$' prefix mandate in GEMINI.md and project documentation.
- Eliminated legacy JournalEntry_SettingsMenu in favor of ModalJournalEntryConfig.
2026-01-14 17:50:48 -05:00
Scott Idem
8ae23cdcd9 style(journals): standardize configuration interfaces across module
- Refactored Module, Journal, and Entry configs to use consistent tabbed layouts.
- Adopted unified 'Aether Orange' aesthetic with Skeleton UI and Lucide icons.
- Replaced overcrowded inline settings menu with 'ModalJournalEntryConfig'.
- Cleaned up Header component logic and improved visual consistency.
2026-01-14 17:17:56 -05:00
Scott Idem
04e4350fbf feat(journals): implement force reset for lost passcodes and harden sync
- Added 'Force Reset to Plain Text' button in the editor for decryption failure states.
- Guarded reset functionality with '.edit_mode'.
- Refactored background sync logic to properly isolate 'untrack' calls and prevent content resets.
2026-01-14 17:06:00 -05:00
Scott Idem
cd0702b8cc fix(journals): resolve AI tools ReferenceError and finalize modularization
- Corrected template usage to 'JournalEntry_AITools'.
- Finalized Chunk 3: Modularized AI tools wrapper.
2026-01-14 16:52:00 -05:00
Scott Idem
bb3e4f4095 fix(journals): resolve browser hang during privacy toggle
- Refactored effects to use selective tracking and 'untrack' for all store reads.
- Implemented manual 'deep_copy' to handle Svelte 5 reactive proxies safely.
- Added concurrency locks ('is_processing') to decryption and save workflows.
- Stabilized state synchronization to prevent circular reactivity loops.
2026-01-14 16:48:50 -05:00
Scott Idem
11e022d21e Lots of updates to the notes. Style/layout fix for main Journals page. 2026-01-14 16:48:00 -05:00
Scott Idem
c907a95c57 fix(journals): eliminate reactivity loops and browser hangs during privacy toggle
- Refactored all effects to use 'untrack' for rigorous dependency isolation.
- Implemented 'deep_copy' helper to safely handle Svelte 5 reactive proxies.
- Added concurrency locks to 'update_journal_entry' and decryption workflows.
- Completed integration of 'JournalEntry_Metadata' component.
2026-01-14 16:35:25 -05:00
Scott Idem
b9fc4addfc fix(journals): resolve browser hang and integrate Metadata component
- Implemented manual 'deep_copy' to handle reactive proxies safely.
- Added concurrency locks ('is_processing') to prevent PATCH loops.
- Standardized metadata display by switching to 'JournalEntry_Metadata'.
2026-01-14 16:31:27 -05:00
Scott Idem
58a41e093b fix(journals): resolve reactivity loop and hang during privacy toggle
- Refactored effects to use 'untrack' for store isolation.
- Implemented content normalization in 'has_unsaved_changes' to avoid circular triggers.
- Ensured atomic state sync after successful PATCH updates.
- Added comprehensive flow diagnostics to track effect execution.
2026-01-14 16:20:44 -05:00