Encrypt scroll-back lines with AES-256-GCM using the player-derived key
before flushing to SQLite. Sessions are saved to the saved_sessions
table and restored on login after a Hydra restart. Flush triggers:
periodic (60s), on detach, and on shutdown. AAD includes account ID,
session ID, and sequence number to prevent reordering attacks.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>