# F-074 — Implementer evidence: Audit shows real-time logs from application services

## Problem

The admin audit page (`/audit`) fetched audit log entries once on mount. New entries from application services only appeared after a page refresh.

## Changes

`project/apps/admin/src/app/(dashboard)/audit/page.tsx`:
- Added `useRef` import for stable reference to current items without triggering re-renders
- Added `itemsRef` (useRef) to keep track of current items for deduplication
- Added `newCount` state to track number of new entries since last view
- Added `pollingActive` state to track whether polling is active
- Added `useEffect` that keeps `itemsRef` in sync with `items` state
- Added polling `useEffect` (5-second interval) that fetches latest entries and prepends new ones:
  - Polls only when `page === 0` and no filter is active
  - Uses `itemsRef` (not `items`) to avoid re-running the effect when items change
  - Deduplicates by `id` to avoid showing duplicates
  - Prepends new entries to list (slice to PAGE_SIZE)
  - Increments `newCount` for each new entry
- Header now shows:
  - "● En vivo" (green pulse dot) when polling is active on page 0
  - "+N nuevas" badge when new entries have arrived (click to dismiss)
- Polling stops automatically when navigating to page > 0 or when filter is active

## Verification

- `npx tsc --noEmit` admin — exit 0 ✅
- `npx eslint` on changed file — exit 0 ✅
- `./scripts/verify.sh` — exit 0 ✅

## Files touched

```
project/apps/admin/src/app/(dashboard)/audit/page.tsx   (modified)
work/artifacts/F-074/implementer.md                  (this file)
```
