fabro/apps/fabro-web
Bryan Helmkamp acec32cea9
feat(web): build live events page in settings
Replaces the /settings/live-events placeholder with a working page that
streams server-wide events from /api/v1/attach. Shares the leader-owned
cross-tab EventSource so additional tabs subscribe without opening
parallel connections.

The page keeps an in-memory ring buffer (newest first, max 1,000) with
id or run_id:seq dedupe and resets on remount; live-only by design,
nothing is replayed on connect or persisted in the browser. Reuses the
existing event-debug filters, search, and details panel, and links each
row's run_id to /runs/:id. The category filter is the static set of
DebugCategory values so "All types" always matches.

Settings layout is now fullHeight-aware so the events page can fill the
viewport alongside the sub-nav. DebugEventDetailsPanel's event prop is
broadened to a shared EventDisplayPayload shape so it accepts both
EventEnvelope and the live payload.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:05:10 -04:00
..
app feat(web): build live events page in settings 2026-05-10 14:05:10 -04:00
public/images chore(web): namespace static images under /images and skip in HTTP logs 2026-04-30 08:57:14 -04:00
scripts fix(web): debounce dev watcher and ignore non-source events 2026-05-06 11:01:06 -04:00
.dockerignore Rename Arc to Fabro in TypeScript/JavaScript 2026-03-12 11:13:18 -04:00
.gitignore Rename Arc to Fabro in TypeScript/JavaScript 2026-03-12 11:13:18 -04:00
index.template.html chore(web): namespace static images under /images and skip in HTTP logs 2026-04-30 08:57:14 -04:00
package.json feat(runs): add sandbox terminal 2026-05-09 16:06:04 -04:00
tsconfig.json Fix login route collision after SPA cutover 2026-04-01 21:55:30 -07:00