| BE-001 |
Add unique constraint on (user_id, device_id, metric_type, ... | [ ] |backend-api` |
|
|
| BE-002 |
Handle conflict in POST /devices/{id}/sync — on duplicate,... |
[ ] |
backend-api |
| BE-003 |
Add integration test for dedup sync |
[ ] |
backend-api |
| BE-004 |
Add field-level validation to POST /health/metrics/bulk |
[ ] |
backend-api |
| BE-005 |
Partial success support — valid rows inserted, invalid rows ... |
[ ] |
backend-api |
| BE-006 |
Add validation tests for all metric types |
[ ] |
backend-api |
| BE-007 |
Update last_sync_at on device after successful sync |
[ ] |
backend-api |
| BE-008 |
Set connection_status = 'connected' on sync |
[ ] |
backend-api |
| BE-009 |
Add DB trigger or cron: set connection_status = 'disconnect... | [ ] |backend-api` |
|
|
| BE-010 |
Add sync_count column to user_devices — increment on eac... |
[ ] |
backend-api |
| BE-011 |
Fix POST /devices upsert — same device_identifier update... |
[ ] |
backend-api |
| BE-012 |
Return is_new: true/false in registration response |
[ ] |
backend-api |
| BE-013 |
Add device_type detection from name — "X3B" → ring, "JVC" ... |
[ ] |
backend-api |
| BE-014 |
Increase payload limit on POST /devices/{id}/sync to accep... |
[ ] |
backend-api |
| BE-015 |
Add is_backfill: bool flag to sync request |
[ ] |
backend-api |
| BE-016 |
Track backfill progress in user_devices.meta |
[ ] |
backend-api |
| BE-017 |
Fix GET /health/summary — aggregate steps as SUM, HR as AV... |
[ ] |
backend-api |
| BE-018 |
Add sleep duration to summary — sum sleep stages |
[ ] |
backend-api |
| BE-019 |
Add calories and active_minutes to summary |
[ ] |
backend-api |
| BE-020 |
Handle empty data gracefully — return nulls, not errors |
[ ] |
backend-api |
| BE-021 |
Implement readiness score calculation |
[ ] |
backend-api |
| BE-022 |
Implement strain score calculation |
[ ] |
backend-api |
| BE-023 |
Implement recovery score calculation |
[ ] |
backend-api |
| BE-024 |
Add trend arrows — compare today vs yesterday |
[ ] |
backend-api |
| BE-025 |
GET /health/metrics?metric_type=sleep returns structured s... |
[ ] |
backend-api |
| BE-026 |
Add 7-day sleep trend endpoint — GET /health/sleep/trend?da... | [ ] |backend-api` |
|
|
| BE-027 |
Sleep insights text generation |
[ ] |
backend-api |
| BE-028 |
Daily activity rollup — GET /health/activity?date=... |
[ ] |
backend-api |
| BE-029 |
Weekly activity rollup — GET /health/activity?period=weekly... | [ ] |backend-api` |
|
|
| BE-030 |
Monthly activity rollup — GET /health/activity?period=month... | [ ] |backend-api` |
|
|
| BE-031 |
Pattern detection — correlate sleep with next-day HRV |
[ ] |
backend-api |
| BE-032 |
Return empty array (not error) when insufficient data |
[ ] |
backend-api |
| BE-033 |
Anomaly detection — flag unusual readings |
[ ] |
backend-api |
| BE-034 |
Enforce can_view_health flag on health endpoints |
[ ] |
backend-api |
| BE-035 |
Enforce can_view_body flag on body endpoints |
[ ] |
backend-api |
| BE-036 |
Enforce can_view_workouts flag on training endpoints |
[ ] |
backend-api |
| BE-037 |
Enforce can_view_food flag on nutrition endpoints |
[ ] |
backend-api |
| BE-038 |
Enforce can_view_devices flag on device endpoints |
[ ] |
backend-api |
| BE-039 |
Enforce can_view_goals flag on goals endpoints |
[ ] |
backend-api |
| BE-040 |
Integration test for all 6 permission flags |
[ ] |
backend-api |
| BE-041 |
POST /coach/sessions — create session with validation |
[ ] |
backend-api |
| BE-042 |
PUT /sessions/{id}/start — transition to live |
[ ] |
backend-api |
| BE-043 |
POST /sessions/{id}/join — add participant |
[ ] |
backend-api |
| BE-044 |
PUT /sessions/{id}/end — complete session |
[ ] |
backend-api |
| BE-045 |
POST /sessions/{id}/reserve — book a spot with payment |
[ ] |
backend-api |
| BE-046 |
POST /agora/token generates valid RTC token |
[ ] |
backend-api |
| BE-047 |
Validate session exists and user is participant |
[ ] |
backend-api |
| BE-048 |
POST /coach/managed-clients — create offline client |
[ ] |
backend-api |
| BE-049 |
GET /coach/managed-clients — list all managed clients |
[ ] |
backend-api |
| BE-050 |
PUT /coach/managed-clients/{id} — update client info |
[ ] |
backend-api |
| BE-051 |
DELETE /coach/managed-clients/{id} — soft delete |
[ ] |
backend-api |
| BE-052 |
POST /coach/managed-clients/{id}/metrics — log health data... |
[ ] |
backend-api |
| BE-053 |
Intake forms CRUD — POST/GET/PUT/DELETE /coach/portal/intak... | [ ] |backend-api` |
|
|
| BE-054 |
Client journey — GET /coach/portal/clients/{id}/journey |
[ ] |
backend-api |
| BE-055 |
Messaging — POST/GET /coach/portal/messages |
[ ] |
backend-api |
| BE-056 |
Billing — POST/GET /coach/portal/billing |
[ ] |
backend-api |
| BE-057 |
Notes — POST/GET/PUT/DELETE /coach/portal/clients/{id}/note... | [ ] |backend-api` |
|
|
| BE-058 |
POST /push/register — store FCM token per device |
[ ] |
backend-api |
| BE-059 |
DELETE /push/{token} — invalidate token |
[ ] |
backend-api |
| BE-060 |
FCM send function — deliver push via Firebase |
[ ] |
backend-api |
| BE-061 |
Health alert notification — abnormal HR/SpO2 |
[ ] |
backend-api |
| BE-062 |
Session reminder notification — 30 min before |
[ ] |
backend-api |
| BE-063 |
Sync reminder notification — no sync in 24h |
[ ] |
backend-api |
| BE-064 |
Create activities table migration |
[ ] |
backend-api |
| BE-065 |
POST /activities — save completed activity with GPS route |
[ ] |
backend-api |
| BE-066 |
GET /activities — list user activities |
[ ] |
backend-api |
| BE-067 |
GET /activities/{id} — get activity detail with route |
[ ] |
backend-api |
| BE-068 |
DELETE /activities/{id} — delete activity |
[ ] |
backend-api |
| BE-069 |
GET /activities/stats — activity summary stats |
[ ] |
backend-api |
| BE-070 |
Live activity endpoint — POST /activities/live — save GPS ... |
[ ] |
backend-api |
| BE-071 |
POST /activities/start — begin live activity |
[ ] |
backend-api |
| BE-072 |
POST /activities/{id}/finish — complete live activity |
[ ] |
backend-api |
| SDK-001 |
Buddy challenge CRUD — create, list, get, update, delete |
[ ] |
athion-sdk |
| SDK-002 |
Buddy matching — find, request, accept, reject |
[ ] |
athion-sdk |
| SDK-003 |
Buddy messaging — send, list messages, mark read |
[ ] |
athion-sdk |
| SDK-004 |
Buddy sessions — create, join, leave, complete |
[ ] |
athion-sdk |
| SDK-005 |
Buddy stats and leaderboard — get stats, rankings |
[ ] |
athion-sdk |
| SDK-006 |
Buddy models — all request/response types |
[ ] |
athion-sdk |
| SDK-007 |
Managed client CRUD — create, list, get, update, delete |
[ ] |
athion-sdk |
| SDK-008 |
Managed client health — log metrics, get summary, get histor... |
[ ] |
athion-sdk |
| SDK-009 |
Managed client notes and progress — notes CRUD, progress tra... |
[ ] |
athion-sdk |
| SDK-010 |
Managed client models |
[ ] |
athion-sdk |
| SDK-011 |
Intake service — form templates CRUD, assign, get responses |
[ ] |
athion-sdk |
| SDK-012 |
Journey service — get timeline, add event |
[ ] |
athion-sdk |
| SDK-013 |
Messaging service — send, list threads, list messages, mark ... |
[ ] |
athion-sdk |
| SDK-014 |
Notes service — CRUD |
[ ] |
athion-sdk |
| SDK-015 |
Sessions service — CRUD, manage participants |
[ ] |
athion-sdk |
| SDK-016 |
Locations service — CRUD for training locations |
[ ] |
athion-sdk |
| SDK-017 |
Billing service — create invoice, list, get, mark paid |
[ ] |
athion-sdk |
| SDK-018 |
Payouts service — request, list, get status |
[ ] |
athion-sdk |
| SDK-019 |
Campaigns service — create, list, update, delete, get stats |
[ ] |
athion-sdk |
| SDK-020 |
Analytics service — revenue, clients, sessions, retention |
[ ] |
athion-sdk |
| SDK-021 |
Coach portal models — all request/response types |
[ ] |
athion-sdk |
| SDK-022 |
Circle challenges — create, list, join, leave, complete |
[ ] |
athion-sdk |
| SDK-023 |
Circle milestones and activities — remaining endpoints |
[ ] |
athion-sdk |
| SDK-024 |
Add ActivityService — CRUD for GPS activities |
[ ] |
athion-sdk |
| SDK-025 |
Add activity models |
[ ] |
athion-sdk |
| AU-001 |
Add reconnect logic in ble_manager.dart — retry connection... |
[ ] |
app-user |
| AU-002 |
Show reconnecting UI state in device_screen.dart |
[ ] |
app-user |
| AU-003 |
Test: toggle Bluetooth off/on → app reconnects within 30s |
[ ] |
app-user |
| AU-004 |
iOS: configure CBCentralManager for background BLE restora... |
[ ] |
app-user |
| AU-005 |
Android: create foreground service for BLE sync |
[ ] |
app-user |
| AU-006 |
Sync data to backend while backgrounded |
[ ] |
app-user |
| AU-007 |
Save partial sync data locally on BLE disconnect |
[ ] |
app-user |
| AU-008 |
Show user-friendly error messages for BLE failures |
[ ] |
app-user |
| AU-009 |
No app crash on any BLE error path |
[ ] |
app-user |
| AU-010 |
On first pair, trigger full history download from device |
[ ] |
app-user |
| AU-011 |
Show backfill progress UI |
[ ] |
app-user |
| AU-012 |
Post backfill data to backend with is_backfill: true |
[ ] |
app-user |
| AU-013 |
Read firmware version on BLE connect |
[ ] |
app-user |
| AU-014 |
Compare against minimum version and show warning banner |
[ ] |
app-user |
| AU-015 |
Set useMockDataProvider = false and fix all null/error sta... |
[ ] |
app-user |
| AU-016 |
Dashboard tab → wire to GET /health/summary |
[ ] |
app-user |
| AU-017 |
Health tab → wire to health metrics API |
[ ] |
app-user |
| AU-018 |
Training tab → wire to training API |
[ ] |
app-user |
| AU-019 |
Community tab → wire to community API |
[ ] |
app-user |
| AU-020 |
Profile tab → wire to profile API |
[ ] |
app-user |
| AU-021 |
Current HR widget — show live value when device connected |
[ ] |
app-user |
| AU-022 |
Resting HR card — show from daily summary |
[ ] |
app-user |
| AU-023 |
HR zones chart — today's time in each zone |
[ ] |
app-user |
| AU-024 |
7-day HR trend — line chart |
[ ] |
app-user |
| AU-025 |
Sleep score circle — large score 0-100 with color |
[ ] |
app-user |
| AU-026 |
Sleep stages breakdown — stacked bar |
[ ] |
app-user |
| AU-027 |
Sleep duration and bed/wake times |
[ ] |
app-user |
| AU-028 |
7-day sleep trend — bar chart |
[ ] |
app-user |
| AU-029 |
Activity rings/progress — steps, calories, active minutes |
[ ] |
app-user |
| AU-030 |
Today's stats cards — steps, distance, calories, active minu... |
[ ] |
app-user |
| AU-031 |
Weekly activity bar chart |
[ ] |
app-user |
| AU-032 |
HRV current value + 7-day trend |
[ ] |
app-user |
| AU-033 |
Stress indicator from HRV |
[ ] |
app-user |
| AU-034 |
SpO2 current reading + overnight trend |
[ ] |
app-user |
| AU-035 |
Personal info step saves to API |
[ ] |
app-user |
| AU-036 |
Country/language step saves to API |
[ ] |
app-user |
| AU-037 |
Fitness level step saves |
[ ] |
app-user |
| AU-038 |
Training objective step saves |
[ ] |
app-user |
| AU-039 |
Training days step saves |
[ ] |
app-user |
| AU-040 |
Daily goals step saves |
[ ] |
app-user |
| AU-041 |
Hobbies/sports step saves |
[ ] |
app-user |
| AU-042 |
Final submit — all steps sent to PUT /profile |
[ ] |
app-user |
| AU-043 |
Skip behavior — skipped steps use defaults |
[ ] |
app-user |
| AU-044 |
Register FCM token on login |
[ ] |
app-user |
| AU-045 |
Handle incoming push — show system notification |
[ ] |
app-user |
| AU-046 |
Deep link from notification tap |
[ ] |
app-user |
| AU-047 |
Scan QR code from web → extract session token |
[ ] |
app-user |
| AU-048 |
Call POST /auth/qr/verify with session token |
[ ] |
app-user |
| AU-049 |
Show success/error feedback |
[ ] |
app-user |
| AU-050 |
List training programs from API |
[ ] |
app-user |
| AU-051 |
Program detail → series → exercises |
[ ] |
app-user |
| AU-052 |
Mark exercises complete and save workout |
[ ] |
app-user |
| AU-053 |
Post feed — list posts from friends |
[ ] |
app-user |
| AU-054 |
Create post — text and image |
[ ] |
app-user |
| AU-055 |
Stories — view and create |
[ ] |
app-user |
| AU-056 |
Friend requests — send, accept, reject |
[ ] |
app-user |
| AU-057 |
Show wallet balance from GET /wallet |
[ ] |
app-user |
| AU-058 |
Transaction history list |
[ ] |
app-user |
| AU-059 |
Request location permissions (iOS + Android) |
[ ] |
app-user |
| AU-060 |
Activity start screen — select type (run/cycle/walk/hike) |
[ ] |
app-user |
| AU-061 |
Live GPS tracking during activity |
[ ] |
app-user |
| AU-062 |
Live metrics display — pace, distance, HR, elevation |
[ ] |
app-user |
| AU-063 |
Auto-pause detection |
[ ] |
app-user |
| AU-064 |
Send live GPS points to backend |
[ ] |
app-user |
| AU-065 |
Activity completion screen — summary + map |
[ ] |
app-user |
| AU-066 |
Activity history list |
[ ] |
app-user |
| AU-067 |
Activity detail screen — full map + splits |
[ ] |
app-user |
| AU-068 |
Activity stats screen — totals and records |
[ ] |
app-user |
| AD-001 |
Serial port discovery — scan for connected equipment |
[ ] |
app-device |
| AD-002 |
Connection stability — maintain serial connection during ses... |
[ ] |
app-device |
| AD-003 |
Reconnect on disconnect — auto-retry with user feedback |
[ ] |
app-device |
| AD-004 |
Parse serial data packets — force, power, HR, reps |
[ ] |
app-device |
| AD-005 |
Display live metrics on workout screen — <500ms latency |
[ ] |
app-device |
| AD-006 |
Heart rate display from equipment sensor |
[ ] |
app-device |
| AD-007 |
Resistance slider sends serial command to motor |
[ ] |
app-device |
| AD-008 |
Support all 5 resistance modes |
[ ] |
app-device |
| AD-009 |
Remote control button handling — power up/down |
[ ] |
app-device |
| AD-010 |
Start/stop workout session with timer |
[ ] |
app-device |
| AD-011 |
Post workout summary to backend |
[ ] |
app-device |
| AD-012 |
Show workout summary screen |
[ ] |
app-device |
| AD-013 |
Launch KinesteX SDK with camera |
[ ] |
app-device |
| AD-014 |
Rep counting and form scoring |
[ ] |
app-device |
| AD-015 |
Save AI training results to backend |
[ ] |
app-device |
| AD-016 |
Device configuration screen — equipment type, mirror, power,... |
[ ] |
app-device |
| AD-017 |
10-step onboarding flow completes and saves |
[ ] |
app-device |
| AD-018 |
Join live coaching session from home screen |
[ ] |
app-device |
| CA-001 |
Application form — bio, specializations, certifications, doc... |
[ ] |
coach-app |
| CA-002 |
Application status tracking |
[ ] |
coach-app |
| CA-003 |
Create session form — title, date, time, duration, price, ma... |
[ ] |
coach-app |
| CA-004 |
Dashboard tabs — Upcoming, Live, Pending, History |
[ ] |
coach-app |
| CA-005 |
Edit upcoming session |
[ ] |
coach-app |
| CA-006 |
Cancel/delete session |
[ ] |
coach-app |
| CA-007 |
Start session — initiate Chime meeting |
[ ] |
coach-app |
| CA-008 |
Video/audio during session — both directions |
[ ] |
coach-app |
| CA-009 |
End session — close for all participants |
[ ] |
coach-app |
| CA-010 |
Client list — show connected clients |
[ ] |
coach-app |
| CA-011 |
Client health summary — HR, sleep, activity, body comp |
[ ] |
coach-app |
| CA-012 |
Permission-denied state — "No permission" for restricted met... |
[ ] |
coach-app |
| CA-013 |
Stats cards — total sessions, participants, revenue, live co... |
[ ] |
coach-app |
| CA-014 |
Register FCM token on coach login |
[ ] |
coach-app |
| CA-015 |
Handle session-related pushes |
[ ] |
coach-app |
| CA-016 |
Create managed client — name, goals, notes |
[ ] |
coach-app |
| CA-017 |
Log metrics for managed client |
[ ] |
coach-app |
| CA-018 |
Edit and delete managed client |
[ ] |
coach-app |
| CA-019 |
Replace api_client.dart Dio calls with athion_sdk calls |
[ ] |
coach-app |
| CA-020 |
Auth token management via SDK |
[ ] |
coach-app |
| CA-021 |
Verify all screens still work after migration |
[ ] |
coach-app |
| WEB-001 |
Replace hardcoded values in widget components with Supabase ... |
[ ] |
champion-stats-hub |
| WEB-002 |
Add empty states for all widgets |
[ ] |
champion-stats-hub |
| WEB-003 |
Demo mode preserves mock data |
[ ] |
champion-stats-hub |
| WEB-004 |
Connection status from user_devices table |
[ ] |
champion-stats-hub |
| WEB-005 |
Today's ring metrics — HR, HRV, SpO2, sleep, steps, temp |
[ ] |
champion-stats-hub |
| WEB-006 |
7-day trend charts for ring metrics |
[ ] |
champion-stats-hub |
| WEB-007 |
Band-specific metrics — SOS, strain, workout modes |
[ ] |
champion-stats-hub |
| WEB-008 |
Last night's sleep display — score, duration, stages chart |
[ ] |
champion-stats-hub |
| WEB-009 |
Weekly sleep trend |
[ ] |
champion-stats-hub |
| WEB-010 |
Sleep insights text |
[ ] |
champion-stats-hub |
| WEB-011 |
Readiness, strain, recovery, fitness score gauges |
[ ] |
champion-stats-hub |
| WEB-012 |
Trend arrows and deltas |
[ ] |
champion-stats-hub |
| WEB-013 |
Score breakdown on click |
[ ] |
champion-stats-hub |
| WEB-014 |
Generate QR code from backend session |
[ ] |
champion-stats-hub |
| WEB-015 |
Poll for scan completion |
[ ] |
champion-stats-hub |
| WEB-016 |
Today's activity from Supabase |
[ ] |
champion-stats-hub |
| WEB-017 |
Weekly bar chart and calendar heatmap |
[ ] |
champion-stats-hub |
| WEB-018 |
Workout history list |
[ ] |
champion-stats-hub |
| WEB-029 |
GPS activity list with route maps |
[ ] |
champion-stats-hub |
| WEB-030 |
Activity detail page with full map |
[ ] |
champion-stats-hub |
| WEB-031 |
Activity stats dashboard |
[ ] |
champion-stats-hub |
| WEB-019 |
Chat sends to ai-coach Edge Function |
[ ] |
champion-stats-hub |
| WEB-020 |
Conversation history persistence |
[ ] |
champion-stats-hub |
| WEB-021 |
Context includes user health data |
[ ] |
champion-stats-hub |
| WEB-022 |
Client list from Supabase |
[ ] |
champion-stats-hub |
| WEB-023 |
Client health summary view |
[ ] |
champion-stats-hub |
| WEB-024 |
Session schedule and management |
[ ] |
champion-stats-hub |
| WEB-025 |
Revenue dashboard |
[ ] |
champion-stats-hub |
| WEB-026 |
"Add to Home Screen" works on iOS Safari |
[ ] |
champion-stats-hub |
| WEB-027 |
"Add to Home Screen" works on Android Chrome |
[ ] |
champion-stats-hub |
| WEB-028 |
Offline fallback page |
[ ] |
champion-stats-hub |
| GOR-001 |
Gorillas BLE protocol analysis — identify characteristics, d... |
[ ] |
backend-api + app-user |
| GOR-002 |
Add Gorillas device type to backend — update device_type enu... |
[ ] |
backend-api |
| GOR-003 |
Gorillas BLE service in app-user — scan, connect, read metri... |
[ ] |
app-user |
| GOR-004 |
Gorillas data mapping — map device metrics to health_metrics... |
[ ] |
backend-api + app-user |
| GOR-005 |
Gorillas device screen in app-user |
[ ] |
app-user |
| GOR-006 |
Gorillas web dashboard page |
[ ] |
champion-stats-hub |
| GOR-007 |
Gorillas integration test — end-to-end sync flow |
[ ] |
backend-api + app-user |