feat(operation-trace): declutter the log list and add page navigation

The list was noisy and hard to read: a constant "verified" badge and the
"L1/L2" level badge on every row carried no information, the same "view X"
line repeated until it buried real changes, and each row rendered its full
payload diff inline.

- Drop the per-row level badge and the "verified" badge; keep only an
  exception badge, so a healthy row shows nothing extra.
- Collapse consecutive identical rows into one line with an "xN" count.
- Make the change digest opt-in per row (one expanded at a time) and show a
  "<n> changes" toggle instead of dumping the diff.
- Show the registered route under each row so "Resource / System" is no
  longer ambiguous about what actually happened.
- Replace the arrows-only pager with a page selector ("Page x / y") plus the
  arrows, for logs with hundreds of records.

Verified: tsc, eslint, prettier and check-i18n all pass.
This commit is contained in:
TyperBody
2026-09-27 02:32:12 +08:00
parent 884beea4b6
commit 67bc80e3bc
10 changed files with 266 additions and 132 deletions
@@ -59,6 +59,8 @@ export interface OperationLogRecord {
action_i18n_key: string;
resource_type: string | null;
resource_id: string | null;
/** Registered Core route identity, e.g. ``/api/v1/settings/governance``. */
route: string | null;
level: OperationLevel;
level_name: string;
outcome: 'ok' | 'denied' | 'error';