Files
OSIT-AE-App-Svelte/documentation/MODULE__AE_Journals.md

3.1 KiB

Aether Journals — Module Overview

Status: Active module Last Updated: 2026-06-12 Library: src/lib/ae_journals/ Routes: src/routes/journals/

This module manages private personal journals and journal entries with offline-first behavior and Svelte 5 runes patterns.


Core Responsibilities

  • Journal and journal-entry CRUD via V3 API wrappers.
  • Dexie-backed local cache with liveQuery-driven UI updates.
  • Private/passcode-aware access behavior and client-side content encryption.
  • Quick Add, Append/Prepend, import/export, and entry auto-save workflows.
  • Tabbed module, journal, and entry configuration modals.

Key Data Objects

  • journal
  • journal_entry

Common fields and behavior follow Aether object conventions (code, name, enable, hide, priority, sort, cfg_json, data_json).


Storage and Reactivity

  • Local cache: Dexie tables in journals DB layer.
  • UI reactivity: Svelte 5 runes ($state, $derived, $effect) plus liveQuery wrappers (lq__*, lqw__*).
  • Persisted module settings: see config map.

Related config map:

  • documentation/MODULE__AE_Journals_Config_Map.md

Implemented Entry Workflows

  • Quick Add creates a plaintext note in a selected journal without opening the full editor.
  • Append/Prepend injects timestamped content into an existing entry.
  • Bulk import creates entries from parsed files; export supports centralized templates.
  • Entry edits support debounced auto-save when journals_loc.entry.auto_save is enabled.
  • Full entry saves encrypt content into content_encrypted when the entry's private flag is enabled; disabling private clears encrypted content/history fields.
  • The non-reactive decrypt_journal_entry() helper isolates decryption from Svelte effects.
  • Entry configuration exposes Actions, Metadata, Security, and JSON views. Trusted users can Remove (disable); managers and administrators can hard Delete.

Current Security Limitations

  • passcode_hash is editable but is not compared as secondary authentication before decryption. This remains an active task.
  • Quick Add explicitly creates entries with private: false; import creates plaintext content without setting encryption fields. These paths do not currently offer E2EE.
  • Successful decryption currently logs a short plaintext preview to the browser console. Removal is tracked as an active privacy fix.
  • Outbound email sharing is not implemented and requires a product/security decision because journal content is private.

Access and Privacy

Journals contain private personal data. The Journals layout renders module content only when the user has user_id, person_id, and trusted_access. Treat all journal and journal-entry routes, API responses, decrypted state, logs, exports, and future sharing features as private.


  • documentation/archive/PROJECT__AE_UI_Journals_Module_Update_2026.md
  • documentation/TODO__Agents.md
  • documentation/GUIDE__SvelteKit2_Svelte5_DexieJS.md
  • documentation/GUIDE__AE_API_V3_for_Frontend.md
  • documentation/BOOTSTRAP__AI_Agent_Quickstart.md