bigbiggerbiggestbot/ROADMAP.md
Danny bc1d44b556 feat: per-user workout numbering (#7)
Display workouts as "#N" based on each user's own ordered list of
non-deleted workouts (rank by timestamp ascending). Global auto-
increment id stays the primary key, used only internally and in
exports. User-visible surfaces now all use the per-user number:
- /history listing
- /delete now accepts the per-user number
- Save confirmations (bot text and Mini App toast)

Deleting a workout renumbers the later ones downward, as expected
for a pure display transform.

New db helpers: get_user_workout_number, resolve_user_number, and
get_workouts now includes user_number per row via SQLite window
function.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 22:32:24 +02:00

2.7 KiB

BigBiggerBiggestBot — Roadmap

Immediate bugs

  • #6 Can't save workout with only one exercise — investigate structured editor save path

Next

  • #1 Hide "next exercise" affordance until current exercise has ≥1 set
  • Version display in Mini App footer — format YYYY-MM-DD <short-sha>. Primary path uses git log, pure-Python fallback parses .git/HEAD + loose commit objects for environments without git on PATH.
  • Semantic versioning tags — start tagging releases (v0.1.0, v0.2.0, ...) so the footer shows a human version instead of a SHA. Decided against — keeping YYYY-MM-DD <short-sha> format.
  • #7 Per-user workout numbering display (global ID stays as real key, just display transform)

Soon

  • #2 Superset support in structured editor — backend already supports it; UI needs a "group with previous" toggle or drag-to-group
  • Exercise name standardization — OHP = shoulder press = military press. Aliases table.
  • Global exercise name suggestions — autocomplete should draw from all users' exercises, not just the current user's history.
  • #3 Machine-to-muscle mapping — reference dataset + /machine <id> command. Seeded with gym80 IDs.
  • Interaction / event logging — structured audit of user actions (command usage, Mini App opens, per-set additions with timestamps). Foundation for the rest-timer and future telemetry.
  • Staging via shipyard — new features and fixes must be verified against the shipyard bot (separate Telegram bot) before merging to main and triggering the production deploy.

Later

  • #8 Workout templates — save/load favorite workouts
  • Per-exercise history — "show me all my squat sessions"
  • Mini-app UI polish (loading states, skeleton screens)
  • News section — surface new features/fixes on release. Delivery TBD: Mini App panel, occasional bot broadcast, or both.
  • Profile / settings — per-user preferences (language, units, etc.)
  • Rest timer — show time since the last set was completed (depends on per-set timestamps from the interaction logging item; gated by a profile/settings toggle so users can turn it off).
  • Cardio tracking — separate data model (duration, distance, pace) alongside strength workouts
  • About section — Mini App panel with pre-alpha / use-at-own-risk disclaimer, version, license link.

Later later

  • Per-exercise graphs/trends
  • #5 AI image generator describing workout (novelty)
  • Replace cloudflared — unlocks BotFather permanent URL

Feedback reference

Raw feedback from /feedback command queryable via:

sqlite workouts.db "SELECT * FROM feedback ORDER BY created_at DESC;"