770d5bf459
Web Push: the VAPID keypair, subscription store, `/api/push/*`, the service-worker push handlers, the presence heartbeat that only existed to suppress pushes, the Notifications settings tab, and the `[web]` config section. Drops p256, hkdf, aes-gcm, jsonwebtoken and getrandom. Session triage: per-session color, web pin, and archive are gone from the Instance, the REST API, the CLI (`session color` / `archive` / `unarchive`), the TUI (the `z` and `U` keybinds, the Archived sidebar section, group archive-all) and the web sidebar (row badges, context menu, bulk actions, sort tiers, optimistic overlay). Unread stays: the marker, the auto-mark on a finished turn, dwell-to-read and the mark-read-on-open endpoint are all unchanged; only the manual toggle is removed. Claude Code session import: the on-disk scanner, `aoe session import`, `/api/claude-sessions`, and the wizard's import tab. Repo clone: `/api/git/clone`, `clone_repo` / `clone_bare_repo`, the wizard's Clone URL tab and the dashboard action. Markdown: ToolCards now renders through react-markdown like MarkdownFileView instead of carrying a second stack, dropping marked and dompurify. Dead dependencies with no call sites: portable-pty, serde_yaml, glob, clsx. Web multi-select is left in place but no longer drives anything; it existed only for bulk pin/archive. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>