move activity feed out of main.py into ui/ package
ui.py becomes a package: pages.py (HTML templates, unchanged), activity.py
(new — activity-feed data fetching + cache + APIRouter exposing /api/activity),
__init__.py re-exports.
main.py is now composition only — `app.include_router(activity_router)`
replaces ~100 lines of inline data fetching, JSON shaping, TID decoding,
and cache state. main.py: 376 → 260 lines.
no behavior change. /api/activity returns the same shape; cache TTL still 60s.
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>