screen-locker/stronglift_replacement/workout_app/lib/models
Krzysztof kuhy Rudnicki f4d5337f25 Manual-workout phone sync P1: wire format + shared constants + fixture
First phase of syncing phone-logged manual/off-app workouts to the PC so they
count toward the unlock. This phase only establishes the cross-language wire
contract; no behavior change to existing flows.

- _manual_workout.py: build_sync_payload(draft, date) = build_entry fields +
  a `kind="manual_workout"` discriminator + the workout's own `date`; and
  manual_sync_record_id(date, start) -> stable `manual:<date>T<HH:MM>` id.
  A StrongLifts session payload has no `kind`, so an ingesting PC can route on
  it and never mistake a manual for a verified session.
- test_manual_workout.py: TestSyncWireFormat pins the exact literal payload as
  the cross-language contract (the Dart workout_app test will reproduce the
  same literal byte-for-byte; neither side's own round-trip test catches drift
  from the other).
- workout_app/lib/models/manual_workout_constants.dart: hand-maintained mirror
  of the 7 MANUAL_WORKOUT_* constants + the kind value (Python stays source of
  truth; the shared fixture is the drift tripwire).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PM3auNTifaVgcXWDizZrjH
2026-07-13 10:52:00 +02:00
..
exercise_result.dart Add comprehensive test suite, backup service, and linting to workout app 2026-06-28 08:11:43 +02:00
exercise.dart Add comprehensive test suite, backup service, and linting to workout app 2026-06-28 08:11:43 +02:00
manual_workout_constants.dart Manual-workout phone sync P1: wire format + shared constants + fixture 2026-07-13 10:52:00 +02:00
set_result.dart Add comprehensive test suite, backup service, and linting to workout app 2026-06-28 08:11:43 +02:00
workout_plan.dart Add comprehensive test suite, backup service, and linting to workout app 2026-06-28 08:11:43 +02:00
workout_session.dart Add comprehensive test suite, backup service, and linting to workout app 2026-06-28 08:11:43 +02:00