Desktop app implemented with Electron + TypeScript + React.
pnpm install
pnpm devpnpm buildpnpm test- Daily profile lock at
00:00inAmerica/Mexico_City - Exactly one active profile (
p0/p1) per day with HMAC commit integrity inmeta.json - Per-profile encrypted storage in
profiles/p0.db.enc/profiles/p1.db.encusing AES-256-GCM + HKDF - Master key bootstrap via
keytar(DailyLockNotepad/master), with local fallback only if keytar is unavailable - Active-profile-only runtime (inactive profile is not loaded/decrypted or exposed in UI)
- Document editor with autosave (debounce + max interval), snapshots, and session restore
- Deterministic tree parser for indentation +
>branch rules with collapsed buckets - Text/Graph modes, right tree panel, Z-wrap dual projection view, and inversion toggle
- Command palette (
Ctrl+P), within-document search only, plaintext export warning - Midnight rollover behavior requiring restart/relaunch to enforce the new day lock
electron/main.tselectron/preload.tssrc/core/appController.tssrc/core/dailyLock.tssrc/core/crypto.tssrc/core/profileRepository.tssrc/shared/treeParser.tssrc/shared/autosaveScheduler.tssrc/renderer/App.tsxtests/acceptance.test.ts
This protects against casual file tampering and accidental profile exposure. A local machine owner can still bypass controls by patching/running modified binaries.