Appearance
A14 — Staff review activity and decision context
Status: in review / open. Updated: 2026-09-12. Owner: frontend A14. Implementation: frontend PR #33, commit 97f7662, branch feature/review-analytics-ui, targeting frontend dev.
Issues and acceptance covered
#52. The acceptance boundary is the implementation scope and completion checks below; see the issue acceptance matrix for parent coverage. Shared definitions: financial contract; proof anchors: evidence index.
Dependencies and blockers
A07 protected review read API in backend PR #95, stacked on #93; #41/#43 owning workflow/queue contracts. Backend #93 remains the immediate dependency base. Independent of financial UI and Whop transfers.
Repository and expected files
Frontend: features/admin/submissions, screens/admin/submissions, small contextual review history component; consume existing canonical audit context instead of generic audit-page rewrite.
Existing behavior and verified gap
Current review list shows status/snapshots/creator track record but no reliable actor/time/reason history or period reviewer activity (E20).
Proposed implementation boundary
Add read-only activity summary and per-submission committed history with reviewer/campaign/time filters, explicit current-queue versus event labels and coverage. Keep existing mutation actions intact; do not duplicate #41 producer/workflow or #43 query repair. The implementation keeps committed-event summary separate from queue state, supports UTC exclusive-to/campaign/status filters, aggregate/day buckets, lazy submission history, stable asOf pagination, partial/unavailable/unknown actor labels, full reasons, and analytics invalidation after successful moderation.
Expected API / data contract
Consume A07 review DTO with bounded ordered events, safe actor labels and coverage; no client inference from acceptedAt or current status. The frontend preserves explicit partial/unavailable/unknown coverage and actor states, and does not invent reviewer filters absent from the backend contract.
Required tests
One submitted clip with multiple reviews, unknown legacy actor, missing history, filtered period, denied/read failure and long reason display; loading/empty/error/browser keyboard and mobile. Focused analytics and command tests, changed lint, TypeScript, production build and diff check were run; browser/manual evidence remains outstanding.
Suggested agent tier
Lower-cost UI agent; smart owner reviews accountability meaning and event/privacy boundaries.
Expected PR boundary and reason
One review analytics UI PR stacked on A07, safe independently of finance/risk UI. Unlocks A17 after review and browser/manual evidence. Keep compatibility additive, avoid unrelated cleanup, and list exact stacked commits and later units unlocked in the PR. If observed scope grows beyond this boundary, update the plan before splitting or adding work.
RBAC requirements / TODOs
Preserve submission-moderation access and staff layout. TODO(RBAC): Require approved reviewer-accountability access for actor activity and moderation reasons; do not show unrelated canonical audit events. No permission mapping or reviewer filter is added in this PR.
Completion and reconciliation checks
Displayed reviewer/outcome totals equal A07 event count; no current-status proxy. Contextual event is the same underlying canonical record, with no duplicate audit creation.
Record actual tests, source schema/contract versions, PR/merge SHA, manual evidence and residual coverage before changing status to complete. Current PR remains open for review. #68 coverage and DB/manual/browser evidence remain outstanding; #91/#92/#93/#95 remain open dependencies. Any unexpected migration must first satisfy the migration gates; never bundle upstream financial writer work into this analytics unit.