Commit f8be98c
feat: live action monitor + install themes from plain CSS
LIVE ACTIONS — you can now watch everything the agents do on this machine, as it
happens, from the dashboard. A 👁 toggle in the header turns streaming on or off
(persisted), and a Live Actions view shows the feed: every shell command, web
read, dashboard change, config write, skill install and blocked attempt, with the
actor that asked for it, colour-coded, filterable to commands only.
Two things made it actually useful rather than a log dump:
- Cursor-based streaming. GET /api/actions?since=<id> returns only rows newer
than what the client holds, so polling never replays and switching views
doesn't duplicate. brain.audit_since()/audit_max_id() back it.
- In-flight tracking. The audit log only records FINISHED actions, so a
long-running command was invisible until it ended — exactly when you least
want to be blind. tools.inflight() registers work as it starts, so a running
command shows immediately with a live elapsed timer, and /api/exec and
/api/web both register too.
Verified in-browser: toggle flips and persists, 26 rows rendered with blocked
attempts highlighted, a new action streamed in 26 -> 28 with no refresh, and a
`sleep 5` appeared in the running panel at 1.2s elapsed while still executing.
THEMES FROM CSS — the installer took a JSON blob of variables, but themes get
shared as CSS: people paste a `:root{--accent:…}` block from a gist, not JSON.
It now accepts either. CSS is parsed for custom properties, the name/label come
from `/* name: … */` comments, and light-vs-dark is derived from --bg's relative
luminance instead of asking. JSON keeps working unchanged.
Verified: an 11-variable `:root` block installed as "Neon Ice", applied instantly
(#caa63f -> #00e5ff), landed in the theme dropdown, dark correctly detected — and
the JSON path still installs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 6ec77e0 commit f8be98c
4 files changed
Lines changed: 206 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
202 | 218 | | |
203 | 219 | | |
204 | 220 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1500 | 1500 | | |
1501 | 1501 | | |
1502 | 1502 | | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
1503 | 1514 | | |
1504 | 1515 | | |
1505 | 1516 | | |
| |||
1729 | 1740 | | |
1730 | 1741 | | |
1731 | 1742 | | |
| 1743 | + | |
1732 | 1744 | | |
1733 | 1745 | | |
1734 | 1746 | | |
| |||
1745 | 1757 | | |
1746 | 1758 | | |
1747 | 1759 | | |
| 1760 | + | |
| 1761 | + | |
1748 | 1762 | | |
1749 | 1763 | | |
1750 | 1764 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
49 | 50 | | |
50 | 51 | | |
51 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
52 | 82 | | |
53 | 83 | | |
54 | 84 | | |
| |||
70 | 100 | | |
71 | 101 | | |
72 | 102 | | |
| 103 | + | |
73 | 104 | | |
74 | 105 | | |
75 | 106 | | |
| |||
81 | 112 | | |
82 | 113 | | |
83 | 114 | | |
| 115 | + | |
| 116 | + | |
84 | 117 | | |
85 | 118 | | |
86 | 119 | | |
| |||
0 commit comments