f3161ecfff
- artifacts/api-server/src/routes/groups.ts:
- Added loadSubResourceNameFields() to fetch username / appSlug+nameEn+nameAr / roleName when adding or removing a group sub-resource.
- POST/DELETE /groups/:id/:kind/:targetId now persist these names alongside the id in audit metadata. Best-effort lookup on DELETE so a missing linked record does not break the action.
- Removed unused SUB_TABLE constant.
- artifacts/tx-os/src/pages/admin.tsx:
- formatAuditSummary now renders human-readable lines for:
- app.update rename (changes.nameEn/nameAr/slug from→to)
- group.update rename (previousName, when only one field changed)
- group.user/app/role.add/remove (prefer enriched name fields, fall back to *ById locale keys with #id when only the id is known)
- settings.update registrationOpen toggle ("Opened/Closed public registration", with optional "with N other change(s)" suffix)
- Helper linkedAppName() shared by the app branches.
- Raw JSON metadata remains available via the existing expand toggle.
- artifacts/tx-os/src/locales/{en,ar}.json:
- Added admin.audit.summary keys for app.rename, group.rename, group.{user,app,role}{Add,Remove}/{Add,Remove}ById, settings.registrationOpened/Closed/OpenedWith/ClosedWith in both English and Arabic.
Verification:
- Backend metadata enrichment validated end-to-end (group create, user/app/role add+remove, group rename, settings toggle) via a temporary script — all rows persist the new name fields.
- Browser e2e test logged in as a freshly created admin, exercised the same flows, opened the Audit log panel, and confirmed each row renders the readable summary (no #id placeholders) and that the raw JSON pane still expands and contains 'username'.
Notes / drift:
- The task brief listed many actions (user.delete, role.delete, app.delete, app.create, etc.). The group sub-resource actions and rename / registration toggle branches were the ones that previously rendered as opaque "#id" text and are addressed in this task. Top-level user/app/role delete already had decent metadata; further enrichment proposed as a follow-up so it can be reviewed independently.