camelot 0.3.0
The control panel.
camelot-gtk (new package) — a GTK4/libadwaita switchboard over the daemon: what is being recorded, one switch per capability.
- Background service: start/stop the daemon
- Recording: activity on/off, typed text, how long to keep history, durable log
- Access: browser accessibility, ignored applications (with a running-app picker)
- Activity log: the
recentdigest as a live list, on its own page — there when you want it
Every change writes the config file and the daemon reloads in place. Installs a desktop entry; single-instance.
Daemon
subscribe: a push stream of recorded events and state changes (backfill first). The panel is built on it and never polls.recentfolds edits per widget across interleaving activity, caps snippets to one line, and reports terminal repaints as "output".- Events are resolved off libatspi's dispatch path via a bounded queue, with per-widget location caching: ~0% CPU under a terminal flood (was ~5%).
- Hardening found by wedging the daemon from the panel: the event callback is fenced against exceptions, and child/parent/application lookups are null-safe.
Packages: camelot (CLI, daemon, unit, completions) and camelot-gtk (panel, desktop entry) for Arch, Debian/Ubuntu and Fedora.