Commit Graph

1 Commits

Author SHA1 Message Date
Arvin Ansari
d9cf35cb56
feat(core): Add a one-page viewer for the activity log (no-changelog)
`pnpm inspect:activity` serves every column of `activity_event` on
127.0.0.1:5699 — paginated, sortable on any column, with a free-text filter
that also searches the JSON `data` column, so a run id or a failing node name
finds its entry without knowing which field holds it. Category and action get
their own dropdowns, listing what is actually in the table.

Standalone rather than a view in the editor UI, on purpose. An in-app page
would need a route, a store, an API client, a scope-gated endpoint, i18n
strings and tests — a lot of product surface for a table you want to eyeball
while working on it. This is one file, no build step and no dependency, and it
reads the database directly so what you see is what is stored.

Read-only in three ways that matter: the connection is opened with readOnly, so
a write is rejected by SQLite rather than by convention; every query is a
SELECT; and the sort column comes from an allowlist, because a column name
cannot be a bound parameter. Verified — a sort of `1; DROP TABLE
activity_event` falls back to id and leaves the table intact.

Bound to 127.0.0.1 only, and unauthenticated by design: it is a debug surface,
and the whole table including who did what in which project is served to
anything that can reach the port. Confirmed unreachable on the LAN address.

Verified in a browser against a seeded database: filters, header sorting, page
size and paging all drive correctly, the free-text search finds both failing
runs by their failing node name, and the console is clean.
2026-08-26 15:32:36 +02:00