docs: clarify Electron scope, update badge test lessons, all badge tests passing
- AE__Architecture.md: Add section 7 -- Runtime Environment: Browser vs Electron. Electron is ONLY for Events Pres Mgmt Launcher. Badge printing (and everything else) works via standard browser window.print(), no Electron needed. - MODULE__AE_Events_Badges.md rev 3: Update print section to browser-first approach, remove Electron from print workflow, add two new test lessons (flat API URLs, CSS attribute vs DOM property), mark all tests passing. - TODO__Agents.md: Add completed data integrity test fixes item, add window.print() wiring to upcoming tasks, expand input field audit note.
This commit is contained in:
@@ -135,7 +135,34 @@ A list of potential future standard fields, often prefixed with `obj_`. These ar
|
||||
|
||||
- `obj_id`, `obj_ext_uid`, `obj_ext_id`, `obj_import_id`, `obj_code`, `obj_account_id`, `obj_passcode`, `obj_type`, `obj_type_ver_id`, `obj_name`, `obj_summary`, `obj_outline`, `obj_description`, `obj_enable`, `obj_enable_on`, `obj_archive_on`, `obj_hide`, `obj_priority`, `obj_sort`, `obj_group`, `obj_cfg_json`, `obj_notes`, `obj_created_on`, `obj_updated_on`.
|
||||
|
||||
## 7. IndexedDB LiveQuery Usage
|
||||
## 7. Runtime Environment: Browser vs Electron
|
||||
|
||||
The Aether SvelteKit frontend runs in a standard web browser in almost all cases. The Electron native app is a **very specialized exception** with a narrow, specific purpose.
|
||||
|
||||
### 7.1. Standard Browser (Default)
|
||||
|
||||
All Aether modules run in a regular browser (Chrome, Chromium, Firefox, Safari). This includes:
|
||||
- Badge printing — `window.print()` works well across Chrome, Chromium, and Firefox. Chrome is recommended for onsite badge printing stations.
|
||||
- All CRUD operations, event management, journals, IDAA, reports, etc.
|
||||
- No special browser configuration required.
|
||||
|
||||
### 7.2. Electron Native App (Specialized — Pres Mgmt Launcher Only)
|
||||
|
||||
The Electron app (`aether_app_native_electron/`) exists **solely** to support the **Events Presentation Management Launcher**. It provides OS-level capabilities that a browser sandbox cannot:
|
||||
- Control of third-party presentation software (PowerPoint, Keynote, LibreOffice Impress)
|
||||
- Local filesystem access for slide file management
|
||||
- Hardware telemetry for connected devices
|
||||
|
||||
**What Electron is NOT used for:**
|
||||
- Badge printing (browser works fine)
|
||||
- Any other Aether module
|
||||
- Any general-purpose Aether functionality
|
||||
|
||||
The bridge is exposed as `window.aetherNative` (set by Electron's preload script). All code that calls `window.aetherNative` should degrade gracefully when it is `undefined` (i.e., in a normal browser). See: `src/lib/electron/electron_relay.ts`.
|
||||
|
||||
**When to assume Electron is available:** Only inside the `/events/[event_id]/(launcher)/` route group, and only when the page was loaded from the native app.
|
||||
|
||||
## 8. IndexedDB LiveQuery Usage
|
||||
|
||||
- `lq__xyz_obj`: Used for general read-only access to liveQuery results.
|
||||
- `lqw__xyz_obj`: Used for forms and binding values, representing a writable snapshot of liveQuery results.
|
||||
|
||||
Reference in New Issue
Block a user