Files
OSIT-AE-App-Svelte/src/lib/electron
Scott Idem 93efabdf00 docs(electron): fix cross-repo confusion, remove misplaced file, update integration docs
- Remove tmp_shell_handlers.ts from SvelteKit repo — this was a draft of the
  Electron main-process shell handler that was placed in the wrong repo. It used
  ipcMain (Electron main-process only) and could never run in SvelteKit. Was not
  imported anywhere but was misleading.

- Fix src/lib/electron/README.md:
  - Correct broken doc link (was AE_EVENTS_LAUNCHER_NATIVE_INTEGRATION.md,
    actual filename is PROJECT__AE_Events_Launcher_Native_integration.md)
  - Mark electron_native.js as DEPRECATED — do not import (was described as
    active "Bridge Logic", which was incorrect and confusion-causing)
  - Add clear bridge architecture diagram showing the three-layer flow
  - Note that aether_app_native_electron/ is the active Electron repo

- Update PROJECT__AE_Events_Launcher_Native_integration.md:
  - Fix Layer 1 file path: aether_app_native/ → aether_app_native_electron/
  - Section 5.3: Phase 5 actuators are all implemented, not "planned" — update
    recording, display layout, power control, window control, wallpaper to reflect
    actual implementation status; note update_app is a stub
  - Section 7: Expand IPC whitelist to cover all relay functions including new
    cleanup_tmp_files, system handlers, and full parameter signatures
  - Document get_seed_config / get_jwt as intentionally not relayed to UI

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 11:59:29 -04:00
..

Aether Native Integration (Electron)

This directory contains the SvelteKit-side bridge for the Aether Native App (Electron). It provides the UI with access to OS-level capabilities required for the Event Launcher.

The native implementation lives in a separate repo: ~/OSIT_dev/aether_app_native_electron/

Technical Manual

For detailed architecture, lifecycle, and IPC specifications, see: PROJECT__AE_Events_Launcher_Native_integration.md

File Manifest

File Role Description
electron_relay.ts Active — Messenger The TypeScript API used by Svelte components. Standardizes all IPC calls to snake_case. This is the only file in this directory that should be imported.
electron_native.js DEPRECATED — Do not import Legacy V2/V4 reference file. The active native logic lives in aether_app_native_electron/. Kept for historical reference only.

Usage Example

import { is_native, launch_from_cache } from '$lib/electron/electron_relay';

if (is_native) {
    await launch_from_cache({
        cache_root: $ae_loc.local_file_cache_path,
        hash: file_obj.hash_sha256,
        temp_root: $ae_loc.host_file_temp_path,
        filename: file_obj.filename
    });
}

Security Model

  • All native functions are accessed via window.aetherNative (contextBridge)
  • Only explicitly whitelisted IPC channels are exposed — no arbitrary code execution
  • Path isolation: all file operations use [home] / [tmp] placeholders resolved by the native bridge
  • Context isolation is enabled; Node integration is disabled in the renderer

Bridge Architecture (Three Layers)

Svelte Component
  └── electron_relay.ts          (this directory — typed wrappers, snake_case API)
        └── window.aetherNative  (contextBridge whitelist in preload/index.ts)
              └── ipcMain handlers (aether_app_native_electron/src/main/*.ts)