New `events` table with (user_id, kind, created_at, data JSON).
Instruments:
Bot:
- cmd.start, cmd.history, cmd.stats, cmd.delete, cmd.export, cmd.feedback
- workout.save (source=text), workout.delete (source=bot)
Server:
- workout.save (source=webapp), workout.update, workout.delete (source=webapp)
- POST /api/events for Mini App client-side events
Mini App:
- miniapp.open on init()
- set.add on addSet(), with exercise name / reps / weight
(per-set timestamps unlock the rest-timer feature later)
log_event swallows failures so it can never break a caller.
get_events supports user_id / kind filtering for inspection.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>