Commit Graph

1694 Commits

Author SHA1 Message Date
Scott Idem
3c8a6feda0 Docs: Document session cold-start bug fix and mark project resolved
- Updated Dexie/liveQuery guide with detailed explanation of the
  try_cache + microtask yield bug pattern
- Marked session view refactor project as RESOLVED (2026-02-26)
- Added inline code comments to all three fixed loader functions
  explaining the critical fixes

Documents the 'refresh twice' bug resolution for future reference.
2026-02-26 13:43:34 -05:00
Scott Idem
32f8a75373 Refactor: Add microtask yields to journals module for consistency
Added await Promise.resolve() yields after IndexedDB writes to ensure
Dexie observers fire before function returns. Aligns with pattern
established in event loaders fix.

Journals module was already working correctly (preserved try_cache),
but adding yields ensures consistent timing behavior across all
nested data loading patterns.
2026-02-26 13:42:27 -05:00
Scott Idem
3849118fec Fix: Event session cold-start bug - presentations/presenters now load on first render
CRITICAL BUG FIX: Session view required 1-2 manual refreshes to display
presentations and presenters when IndexedDB was empty.

Root Cause:
- Nested loaders passed try_cache: false, preventing IDB writes
- Missing microtask yields caused race conditions between IDB writes
  and liveQuery subscriptions

Changes:
- ae_events__event_session.ts: Preserve try_cache in nested loads
- ae_events__event_presentation.ts: Block on presenter loads with await
  Promise.all() + preserve try_cache
- ae_events__event_presenter.ts: Add microtask yield after IDB write

Result: Presentations AND presenters now render correctly on first
navigation without requiring manual page refresh.
2026-02-26 13:40:36 -05:00
Scott Idem
9da3e5326b docs: reorganize and rename documentation files for consistency
- Apply consistent prefix naming: AE__, GUIDE__, PROJECT__, MODULE__, TODO__
- Move superseded/session docs to documentation/history/
- Migrate old/ directory contents to history/ with updated naming
- README.md: replace stale Modules section with accurate current routes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 10:49:23 -05:00
Scott Idem
b1162b9f08 I am done. Just saving things for the night. Not a good day. 2026-02-25 20:17:03 -05:00
Scott Idem
95a56d25bf test: stabilize cold-start Playwright tests; fix editor bind:new_content fallback 2026-02-25 20:15:09 -05:00
Scott Idem
7b5c7528b6 All of the changes from today (Wednesday February 25, 2026) need to be reviewed. We spent over 6 hours trying to fix the page loading when viewing a fresh Session ID and Presentation ID. OpenAI and Gemini failed hard!!! I am at a lost and frustrated. I will probably need to deal with this myself. :-/ 2026-02-25 18:34:21 -05:00
Scott Idem
17620b6fbc refactor(events): enforce hierarchy consistency and id standardization 2026-02-25 17:53:20 -05:00
Scott Idem
197adff33b tests: add Playwright event badge CRUD + interaction tests; add minimal V3 mocks and env helper; update presenter/badge smoke tests to use helpers; convert test locals to snake_case 2026-02-24 17:49:43 -05:00
Scott Idem
39614c9cc2 test: remove stale tests/disabled/example.test.ts 2026-02-24 16:45:45 -05:00
Scott Idem
a7f6101cce test: move and rename private-network check to tests/private_network.test.ts; make diagnostic 2026-02-24 16:42:10 -05:00
Scott Idem
f2c426b595 test: combine and modernize private-network checks; remove legacy disabled variants 2026-02-24 16:38:36 -05:00
Scott Idem
7f9f93765d test: modernize v3 API security tests (mock /v3/, deterministic headers); add runnable modern copy 2026-02-24 16:36:27 -05:00
Scott Idem
c70e7a3bf9 test: add badge interaction test + README; ignore disabled tests in Playwright config 2026-02-24 16:32:50 -05:00
Scott Idem
e57bbca33e Work on CORS testing and fixes. Chrome and pfSense with the DNS resolution found a problem. Should be fixed now. 2026-02-23 18:18:58 -05:00
Scott Idem
30e44a0af1 Testing tests with Playwright 2026-02-21 10:05:21 -05:00
Scott Idem
7724cac492 Saving notes 2026-02-20 19:45:54 -05:00
Scott Idem
399455b67a feat(testing): Add foundational Playwright security test
Adds the first successful, stable Playwright integration test for the SvelteKit frontend. This test serves as a template for future UI/UX and integration tests.

Key outcomes and learnings captured in this test:
- Establishes a pattern for running tests against the high-speed 'npm run dev' server.
- Verifies critical API security header logic, including the unauthenticated bypass for lookups and account ID scavenging from localStorage.
- Solves application boot crashes in a test environment by injecting a complete, default 'ae_loc' state object into localStorage before the app hydrates.
- Demonstrates the correct, race-condition-free pattern for waiting on network requests that are handled by API mocks.

This commit also removes the old, unreliable Node.js-based scripts ('verify_jwt_logic.js', 'verify_jwt_sync.js') that these new tests replace.
2026-02-20 19:43:01 -05:00
Scott Idem
06dbccaaa4 Reorganized System Lookups page and added Time Zone priority filtering.
- Sequenced sections as Country, Subdivisions, then Time Zones.
- Implemented a reactive toggle for 'only_priority' in the Time Zone section to support high-priority filtering.
- Switched to a full-width card layout for improved readability of large datasets.
2026-02-20 18:03:42 -05:00
Scott Idem
2dfc8a5034 Implemented 'only_priority' filtering for V3 Lookups.
- Updated V3 lookup API and core timezone loader to support the 'only_priority' flag.
- Enabled high-priority timezone filtering in IDAA Recovery Meeting and Archive editors to streamline selection lists.
2026-02-20 17:17:09 -05:00
Scott Idem
52c9e765a0 Implemented Aether API V3 Lookup integration for standardized tables.
- Created 'src/lib/ae_api/api_get__lookup_v3.ts' to handle the new '/v3/lookup/{lu_type}/list' endpoint.
- Refactored 'get_ae_obj_li_for_lu' in 'api.ts' to prioritize the V3 system for countries, subdivisions, and time zones, with V2 fallback for legacy types.
- Ensured lookups use the 'x-no-account-id' bypass for unauthenticated site bootstrapping.
- Updated core country, subdivision, and time zone loaders to use the refined API interface.
2026-02-20 16:12:06 -05:00
Scott Idem
b4d85f4618 Saving notes 2026-02-19 19:20:16 -05:00
Scott Idem
e2e120456e Enhanced Events Launcher Location loading and instructions.
Implemented explicit 'enabled' and 'hidden' parameter support in the Event data layer ('load_ae_obj_id__event').

Updated the Events Launcher layout and background sync engine to proactively fetch all enabled locations (including hidden ones), ensuring the room select list is complete and stays updated.

Refined 'launcher_file_cont.svelte' to only display native-specific file opening instructions when 'app_mode' is 'native'.

Updated AGENT_TODO.md to reflect task completion and new priorities.
2026-02-19 17:54:21 -05:00
Scott Idem
0a689be25d Implemented 'inc_hosted_file' support and expanded data mapping for Event Files.
Updated the Event File data layer to support the 'inc_hosted_file' flag in load and search functions, enabling on-demand retrieval of joined Hosted File metadata.

Refined the data mapping in 'process_ae_obj__event_file_props' to include 'content_type' and strictly controlled which properties are persisted to IndexedDB, adhering to the 'Bite-Sized Data' principle by excluding unneeded backend fields like subdirectory paths.

Enhanced 'get_ae_obj_li_v3' to support generic parameter pass-through for V3 CRUD operations.
2026-02-19 17:15:12 -05:00
Scott Idem
e5b94123a5 Fixed Event File data mapping for V3 API and updated AGENT_TODO.
Mapped prefixed backend fields 'hosted_file_hash_sha256' and 'hosted_file_size' to flat 'hash_sha256' and 'file_size' properties in the Event File data layer. This resolves component crashes (TypeError: slice on null) by ensuring IndexedDB is populated with valid hash strings.

Updated AGENT_TODO.md to reflect recently completed tasks.
2026-02-19 15:19:19 -05:00
Scott Idem
4a7ac31197 Resolved Svelte check errors and modernized component event handling.
Implemented Svelte 5 callback props (onsuccess, oncancel) for Badge create and upload forms, replacing legacy dispatchers.

Updated the AE Field Editor to accept an optional 'id' prop, resolving property mismatch errors.

Updated the Event Settings page to use the new callback prop interface, clearing type assignment errors reported by 'npm run check'.
2026-02-16 19:11:59 -05:00
Scott Idem
de7e8443c8 Making the Debug Menu not always shown as easily. 2026-02-16 17:22:36 -05:00
Scott Idem
f96f7069a4 Stabilized hierarchical permissions and implemented strict visibility gating.
Standardized access level hierarchy (super > manager > administrator > trusted) and added hierarchical comparison utilities to 'ae_util'.

Refactored IDAA layout to use an 'Upgrade-Only' permission strategy, preventing context-specific identifications from downgrading global Manager privileges.

Implemented strict gated filtering in the Journal Entry list: hidden and disabled items now correctly require both the appropriate hierarchical role (Trusted/Admin) AND active Edit Mode.
2026-02-16 17:12:24 -05:00
Scott Idem
fb724411d3 Initialized Activity Log IndexedDB infrastructure and refactored Jitsi reports.
Added 'activity_log' table to Dexie 'ae_core_db' (v4) to support local caching of tracking data.

Implemented 'process_ae_obj__activity_log_props' with robust timestamp fallbacks.

Refactored 'qry__jitsi_report' to follow the Frontier module pattern, ensuring consistent V3 search and local cache synchronization.
2026-02-16 16:13:04 -05:00
Scott Idem
4711f41c34 Expanded Recovery Meeting sort options and refined development SOP.
Implemented 'Meeting Name (A-Z)' and 'Meeting Name (Z-A)' sorting for Recovery Meetings, including UI dropdown updates and client-side re-sorting logic.

Updated documentation/GUIDE__DEVELOPMENT.md to v1.1 with clarified verification steps and inter-agent coordination protocols.

Minor label cleanup in Journal editor.
2026-02-16 15:58:17 -05:00
Scott Idem
f34e24aa02 Standardized robust chronological sorting across modules.
Updated '_process_generic_props' in multiple libraries to ensure 'updated' timestamp always falls back to 'created_on' or epoch start, preventing null values from breaking newest-first ordering in IndexedDB.

Aligned Recovery Meetings and Archives list views to use these pre-computed sort keys for consistent UI behavior even when 'updated_on' is null.
2026-02-16 15:40:00 -05:00
Scott Idem
fdfba0f752 Clean up of the email notifications for Post, Post Comment, and Event create and update. 2026-02-16 13:34:38 -05:00
Scott Idem
6c4cdb4ed0 Notes 2026-02-13 19:52:45 -05:00
Scott Idem
b03888d37f Serious notes about security updates. 2026-02-13 19:21:51 -05:00
Scott Idem
f62bd9fb79 security(api): harden V3 authentication and unify CRUD endpoint patterns
Implemented critical security and architectural fixes to align the frontend with the Aether API V3 standard and resolve 403 Forbidden race conditions.

- Unified CRUD Helpers: Updated get, create, update, and delete helpers to use the standard /v3/crud/{obj_type}/{id} paths, ensuring correct backend isolation context.
- Auth Scavenging: Implemented direct localStorage scavenging for 'x-account-id' in core fetch helpers to prevent hydration race conditions in Svelte 5.
- Header Cleanup: Purged redundant 'x-aether-api-token' and fixed misplaced protocol headers in global stores.
- Reliability: Fixed 'Content-Type' typos and standardized kebab-case header normalization.
2026-02-13 19:10:32 -05:00
Scott Idem
3e83890932 feat(framework): implement AE Obj Field Editor v3 and test playground
- Created consolidated AE_Obj_Field_Editor_V3 component using Svelte 5 Runes.
- Standardized on V3 CRUD API (PATCH /v3/crud/{obj_type}/{obj_id}).
- Implemented local state guards to prevent reactivity loops.
- Added support for multiple field types (text, textarea, select, checkbox, tiptap).
- Created a dedicated testing playground with real Demo account data.
- Updated the PROJECT_AE_OBJECT_FIELD_EDITOR_V3_UPGRADE.md plan.
2026-02-13 16:07:21 -05:00
Scott Idem
6bfd13f52c refactor(events, idaa): standardize on String-only IDs and remove '_random' suffix
Aligned the Events Badges, Templates, and IDAA Bulletin Board modules with
Aether UI/UX v3 standards by prioritizing semantic String IDs (e.g., event_id,
badge_id) over legacy '_random' variants in API helpers, Dexie processors,
and UI components.

- Refactored badge and template loaders to use clean ID field names.
- Updated search and LiveQuery logic in badge management views.
- Cleaned up unused imports and legacy code in +layout and +page components.
- Standardized ID mapping in generic object processors.
- Improved IDAA post creation UX with autofocus and empty title defaults.
2026-02-13 13:51:55 -05:00
Scott Idem
de947c827a ui(hosted_files): update clipping components and fix count reference bug 2026-02-12 19:57:42 -05:00
Scott Idem
5998389e3a ui(hosted_files): improve upload component accessibility and dark mode 2026-02-12 19:57:25 -05:00
Scott Idem
52ff50457d ui(hosted_files): update video util page for dark mode consistency 2026-02-12 19:57:10 -05:00
Scott Idem
4f4f16478d refactor(core): adjust root layout data structure and clean up site config 2026-02-12 15:29:17 -05:00
Scott Idem
a7e17283e4 fix(events): robust date sorting in core event processors 2026-02-12 15:24:18 -05:00
Scott Idem
60771c5ba1 fix(journals): robust date sorting in journal and entry processors 2026-02-12 15:23:22 -05:00
Scott Idem
c4009391c0 fix(posts): robust date sorting in post and comment processors 2026-02-12 15:22:28 -05:00
Scott Idem
5e9457580c fix(bb): robust date sorting in Bulletin Board list 2026-02-12 15:21:44 -05:00
Scott Idem
64be14249c ui(recovery_meetings): update meeting editor and search components 2026-02-12 15:07:37 -05:00
Scott Idem
4266bef352 ui(bb): update post list surface colors 2026-02-12 15:07:05 -05:00
Scott Idem
6977867ed8 feat(idaa): add IDAA module dashboard 2026-02-12 15:06:10 -05:00
Scott Idem
299367ae62 Updating notes 2026-02-11 19:29:26 -05:00
Scott Idem
f785907792 Updating the documentation for things. Hopefully improvements to Gemini CLI. 2026-02-11 17:59:09 -05:00