0000000000000000000000000000000000000000 f18b2ac4adf4c112f6d511b248a1c4884fed4dc5 Bruce <bruce@intellieffect.com> 1775435743 +0900	clone: from github.com:intelli-bruce/RoomfitV2.git
f18b2ac4adf4c112f6d511b248a1c4884fed4dc5 f18b2ac4adf4c112f6d511b248a1c4884fed4dc5 Bruce <bruce@intellieffect.com> 1775450109 +0900	checkout: moving from main to refactor/extract-roomfit-ble-package
f18b2ac4adf4c112f6d511b248a1c4884fed4dc5 5c28bbf9e4a438a6dd9e7a96e9f1aa8cb2e177dc Bruce <bruce@intellieffect.com> 1775450215 +0900	commit: refactor(ble): extract roomfit_ble package and slim core/
5c28bbf9e4a438a6dd9e7a96e9f1aa8cb2e177dc f18b2ac4adf4c112f6d511b248a1c4884fed4dc5 Bruce <bruce@intellieffect.com> 1775462488 +0900	checkout: moving from refactor/extract-roomfit-ble-package to main
f18b2ac4adf4c112f6d511b248a1c4884fed4dc5 f18b2ac4adf4c112f6d511b248a1c4884fed4dc5 Bruce <bruce@intellieffect.com> 1775462617 +0900	reset: moving to HEAD
f18b2ac4adf4c112f6d511b248a1c4884fed4dc5 aff2ff86f45e9faf87bf75a535c716a482150528 Bruce <bruce@intellieffect.com> 1775462637 +0900	merge origin/main: Fast-forward
aff2ff86f45e9faf87bf75a535c716a482150528 aff2ff86f45e9faf87bf75a535c716a482150528 Bruce <bruce@intellieffect.com> 1775465617 +0900	checkout: moving from main to feat/exercise-analysis-package
aff2ff86f45e9faf87bf75a535c716a482150528 975c264c0820c48c708ec10682cb11e71ba6395e Bruce <bruce@intellieffect.com> 1775475300 +0900	commit: feat(exercise): introduce roomfit_exercise analysis package + workout/dev-lab UI
975c264c0820c48c708ec10682cb11e71ba6395e 975c264c0820c48c708ec10682cb11e71ba6395e Bruce <bruce@intellieffect.com> 1775475362 +0900	reset: moving to HEAD
975c264c0820c48c708ec10682cb11e71ba6395e aff2ff86f45e9faf87bf75a535c716a482150528 Bruce <bruce@intellieffect.com> 1775475375 +0900	checkout: moving from feat/exercise-analysis-package to main
aff2ff86f45e9faf87bf75a535c716a482150528 12ee533932096739ba37773a39da5b2502d54afc Bruce <bruce@intellieffect.com> 1775475378 +0900	pull --ff-only origin main: Fast-forward
12ee533932096739ba37773a39da5b2502d54afc 12ee533932096739ba37773a39da5b2502d54afc Bruce <bruce@intellieffect.com> 1775520955 +0900	checkout: moving from main to refactor/extract-roomfit-device
12ee533932096739ba37773a39da5b2502d54afc 9057f416ce87b5dddeeb4827dea88d6aec9858fa Bruce <bruce@intellieffect.com> 1775521758 +0900	commit: refactor(device): extract roomfit_device package (pure Dart device layer)
9057f416ce87b5dddeeb4827dea88d6aec9858fa 9057f416ce87b5dddeeb4827dea88d6aec9858fa Bruce <bruce@intellieffect.com> 1775521803 +0900	reset: moving to HEAD
9057f416ce87b5dddeeb4827dea88d6aec9858fa 12ee533932096739ba37773a39da5b2502d54afc Bruce <bruce@intellieffect.com> 1775521810 +0900	checkout: moving from refactor/extract-roomfit-device to main
12ee533932096739ba37773a39da5b2502d54afc eef2e9fb2a460f6a402eb08927a1a20331079b82 Bruce <bruce@intellieffect.com> 1775521813 +0900	pull --ff-only origin main: Fast-forward
eef2e9fb2a460f6a402eb08927a1a20331079b82 eef2e9fb2a460f6a402eb08927a1a20331079b82 Bruce <bruce@intellieffect.com> 1775523971 +0900	checkout: moving from main to fix/mcu-domain-alignment
eef2e9fb2a460f6a402eb08927a1a20331079b82 13f46030b5a06aaa40f3f35440d8d5da24d83926 Bruce <bruce@intellieffect.com> 1775542499 +0900	commit: fix(mcu): align protocol/device/exercise model with WESPION firmware source
13f46030b5a06aaa40f3f35440d8d5da24d83926 13f46030b5a06aaa40f3f35440d8d5da24d83926 Bruce <bruce@intellieffect.com> 1775542542 +0900	reset: moving to HEAD
13f46030b5a06aaa40f3f35440d8d5da24d83926 eef2e9fb2a460f6a402eb08927a1a20331079b82 Bruce <bruce@intellieffect.com> 1775542548 +0900	checkout: moving from fix/mcu-domain-alignment to main
eef2e9fb2a460f6a402eb08927a1a20331079b82 01e0dadaada0fcd58685154a70bc38c2fa781c9f Bruce <bruce@intellieffect.com> 1775542550 +0900	pull --ff-only origin main: Fast-forward
01e0dadaada0fcd58685154a70bc38c2fa781c9f 01e0dadaada0fcd58685154a70bc38c2fa781c9f Bruce <bruce@intellieffect.com> 1775596999 +0900	checkout: moving from main to fix/dev-report-canonical
01e0dadaada0fcd58685154a70bc38c2fa781c9f 955b502580aac6d699fd35230357180a881e3a8c Bruce <bruce@intellieffect.com> 1775597330 +0900	commit: fix(protocol): make dev 36B the canonical (and only) report format
955b502580aac6d699fd35230357180a881e3a8c 955b502580aac6d699fd35230357180a881e3a8c Bruce <bruce@intellieffect.com> 1775597372 +0900	reset: moving to HEAD
955b502580aac6d699fd35230357180a881e3a8c 01e0dadaada0fcd58685154a70bc38c2fa781c9f Bruce <bruce@intellieffect.com> 1775597377 +0900	checkout: moving from fix/dev-report-canonical to main
01e0dadaada0fcd58685154a70bc38c2fa781c9f 0b8ee0276c94e12787ffa777e7f5638c675c033f Bruce <bruce@intellieffect.com> 1775597380 +0900	pull --ff-only origin main: Fast-forward
0b8ee0276c94e12787ffa777e7f5638c675c033f 1acef813c6ab5c58f28dc450f9db6017c861d25c Bruce <bruce@intellieffect.com> 1775605555 +0900	commit: docs(mcu-requests): seed MCU firmware team request log
1acef813c6ab5c58f28dc450f9db6017c861d25c 1acef813c6ab5c58f28dc450f9db6017c861d25c Bruce <bruce@intellieffect.com> 1775606665 +0900	checkout: moving from main to fix/region-status-block-decode
1acef813c6ab5c58f28dc450f9db6017c861d25c 6140a3552f9e71f65ef48016f08b2dfd309b4f6f Bruce <bruce@intellieffect.com> 1775606747 +0900	commit: fix(protocol): RegionStatus.fromCode handles uint8-wrapped block (-1 → 255)
6140a3552f9e71f65ef48016f08b2dfd309b4f6f 6140a3552f9e71f65ef48016f08b2dfd309b4f6f Bruce <bruce@intellieffect.com> 1775606775 +0900	reset: moving to HEAD
6140a3552f9e71f65ef48016f08b2dfd309b4f6f 1acef813c6ab5c58f28dc450f9db6017c861d25c Bruce <bruce@intellieffect.com> 1775606781 +0900	checkout: moving from fix/region-status-block-decode to main
1acef813c6ab5c58f28dc450f9db6017c861d25c f4b28c9d29c883098221766c4ca4d862d5a10b4c Bruce <bruce@intellieffect.com> 1775606784 +0900	pull --ff-only origin main: Fast-forward
f4b28c9d29c883098221766c4ca4d862d5a10b4c f4b28c9d29c883098221766c4ca4d862d5a10b4c Bruce <bruce@intellieffect.com> 1775608280 +0900	checkout: moving from main to fix/hostile-scenarios-and-detector
f4b28c9d29c883098221766c4ca4d862d5a10b4c c7e7b73e0169abd5f2a8fbcc63e0ea67d4ace653 Bruce <bruce@intellieffect.com> 1775608335 +0900	commit: test+fix(exercise): hostile motion scenarios + 5 minimal SixStateFsm fixes
c7e7b73e0169abd5f2a8fbcc63e0ea67d4ace653 c7e7b73e0169abd5f2a8fbcc63e0ea67d4ace653 Bruce <bruce@intellieffect.com> 1775608387 +0900	reset: moving to HEAD
c7e7b73e0169abd5f2a8fbcc63e0ea67d4ace653 f4b28c9d29c883098221766c4ca4d862d5a10b4c Bruce <bruce@intellieffect.com> 1775608392 +0900	checkout: moving from fix/hostile-scenarios-and-detector to main
f4b28c9d29c883098221766c4ca4d862d5a10b4c c468fd20b45919723c05efb37178a1b500cfa5cf Bruce <bruce@intellieffect.com> 1775608394 +0900	pull --ff-only origin main: Fast-forward
c468fd20b45919723c05efb37178a1b500cfa5cf 933d808b3caa3e4f6f9051709a201bc7729d7bde Bruce <bruce@intellieffect.com> 1775781893 +0900	commit: docs(reference): realtime streaming architecture research + proposal
933d808b3caa3e4f6f9051709a201bc7729d7bde 933d808b3caa3e4f6f9051709a201bc7729d7bde Bruce <bruce@intellieffect.com> 1775781944 +0900	checkout: moving from main to perf/p1-quick-wins
933d808b3caa3e4f6f9051709a201bc7729d7bde cbe79a2fd85bbaaf8504b7e8d7dc3a75e9c0b9c5 Bruce <bruce@intellieffect.com> 1775782368 +0900	commit: perf: P1 quick wins — eliminate hot-path allocation waste at 20 Hz
cbe79a2fd85bbaaf8504b7e8d7dc3a75e9c0b9c5 cbe79a2fd85bbaaf8504b7e8d7dc3a75e9c0b9c5 Bruce <bruce@intellieffect.com> 1775782396 +0900	reset: moving to HEAD
cbe79a2fd85bbaaf8504b7e8d7dc3a75e9c0b9c5 933d808b3caa3e4f6f9051709a201bc7729d7bde Bruce <bruce@intellieffect.com> 1775782399 +0900	checkout: moving from perf/p1-quick-wins to main
933d808b3caa3e4f6f9051709a201bc7729d7bde 96631b108d563aaf4d538f1071b343eefc6d7da5 Bruce <bruce@intellieffect.com> 1775782401 +0900	pull --ff-only origin main: Fast-forward
96631b108d563aaf4d538f1071b343eefc6d7da5 96631b108d563aaf4d538f1071b343eefc6d7da5 Bruce <bruce@intellieffect.com> 1775793848 +0900	checkout: moving from main to feat/p2-ring-buffer-gateway
96631b108d563aaf4d538f1071b343eefc6d7da5 7116bc71b6590b0c48bc6d3d5ff7677c18e4c3ac Bruce <bruce@intellieffect.com> 1775794466 +0900	commit: feat(exercise): SampleRingBuffer + MotionController for chart-ready pipeline
7116bc71b6590b0c48bc6d3d5ff7677c18e4c3ac 7116bc71b6590b0c48bc6d3d5ff7677c18e4c3ac Bruce <bruce@intellieffect.com> 1775794491 +0900	reset: moving to HEAD
7116bc71b6590b0c48bc6d3d5ff7677c18e4c3ac 96631b108d563aaf4d538f1071b343eefc6d7da5 Bruce <bruce@intellieffect.com> 1775794494 +0900	checkout: moving from feat/p2-ring-buffer-gateway to main
96631b108d563aaf4d538f1071b343eefc6d7da5 e191fb9ad4b97be3957a491e31d8129103879f3a Bruce <bruce@intellieffect.com> 1775794496 +0900	pull --ff-only origin main: Fast-forward
e191fb9ad4b97be3957a491e31d8129103879f3a e191fb9ad4b97be3957a491e31d8129103879f3a Bruce <bruce@intellieffect.com> 1775854625 +0900	checkout: moving from main to feat/p3-live-chart
e191fb9ad4b97be3957a491e31d8129103879f3a 865fb6df32eadf27fdb9154eee4a9cc893ca76c4 Bruce <bruce@intellieffect.com> 1775854824 +0900	commit: feat(exercise): LiveLineChart — vsync-driven real-time chart widget
865fb6df32eadf27fdb9154eee4a9cc893ca76c4 865fb6df32eadf27fdb9154eee4a9cc893ca76c4 Bruce <bruce@intellieffect.com> 1775854841 +0900	reset: moving to HEAD
865fb6df32eadf27fdb9154eee4a9cc893ca76c4 e191fb9ad4b97be3957a491e31d8129103879f3a Bruce <bruce@intellieffect.com> 1775854843 +0900	checkout: moving from feat/p3-live-chart to main
e191fb9ad4b97be3957a491e31d8129103879f3a 447f18cb373e58a0f99c34eff631e1ae77612bc8 Bruce <bruce@intellieffect.com> 1775854846 +0900	pull --ff-only origin main: Fast-forward
447f18cb373e58a0f99c34eff631e1ae77612bc8 447f18cb373e58a0f99c34eff631e1ae77612bc8 Bruce <bruce@intellieffect.com> 1775856457 +0900	checkout: moving from main to test/p3-chart-stress
447f18cb373e58a0f99c34eff631e1ae77612bc8 ca2110dd93ac8586390fa9e5b77f96334123d061 Bruce <bruce@intellieffect.com> 1775856547 +0900	commit: test(exercise): 13 stress tests for LiveLineChart
ca2110dd93ac8586390fa9e5b77f96334123d061 ca2110dd93ac8586390fa9e5b77f96334123d061 Bruce <bruce@intellieffect.com> 1775856568 +0900	reset: moving to HEAD
ca2110dd93ac8586390fa9e5b77f96334123d061 447f18cb373e58a0f99c34eff631e1ae77612bc8 Bruce <bruce@intellieffect.com> 1775856571 +0900	checkout: moving from test/p3-chart-stress to main
447f18cb373e58a0f99c34eff631e1ae77612bc8 09c565c06b36dc6b6aa4b90b9f538c72e521c0ed Bruce <bruce@intellieffect.com> 1775856573 +0900	pull --ff-only origin main: Fast-forward
09c565c06b36dc6b6aa4b90b9f538c72e521c0ed 09c565c06b36dc6b6aa4b90b9f538c72e521c0ed Bruce <bruce@intellieffect.com> 1775857882 +0900	checkout: moving from main to feat/p4-dashboard-migration
09c565c06b36dc6b6aa4b90b9f538c72e521c0ed 79dda657408ace107a33c4646c037c965f1c4508 Bruce <bruce@intellieffect.com> 1775858433 +0900	commit: perf(dashboard): per-card select() rebuild isolation
79dda657408ace107a33c4646c037c965f1c4508 79dda657408ace107a33c4646c037c965f1c4508 Bruce <bruce@intellieffect.com> 1775858454 +0900	reset: moving to HEAD
79dda657408ace107a33c4646c037c965f1c4508 09c565c06b36dc6b6aa4b90b9f538c72e521c0ed Bruce <bruce@intellieffect.com> 1775858457 +0900	checkout: moving from feat/p4-dashboard-migration to main
09c565c06b36dc6b6aa4b90b9f538c72e521c0ed 1ee011b4372a1c2904bbd0b78e0ea3ec80933023 Bruce <bruce@intellieffect.com> 1775858459 +0900	pull --ff-only origin main: Fast-forward
1ee011b4372a1c2904bbd0b78e0ea3ec80933023 58d7963eda724a496512f6151fd93272e87340b6 Bruce <bruce@intellieffect.com> 1775867584 +0900	commit: docs: update AGENTS.md protocol rules + rewrite README for project context
58d7963eda724a496512f6151fd93272e87340b6 00a58bd27fb3fb17bac290f3207ae60da3a5e23f Bruce <bruce@intellieffect.com> 1775867589 +0900	commit: chore(ios): upgrade to Flutter Scene lifecycle + cleanup Info.plist
00a58bd27fb3fb17bac290f3207ae60da3a5e23f 3406d21290729835d0da145532eb8273eb2bdb92 Bruce <bruce@intellieffect.com> 1776084704 +0900	commit: fix(exercise): region gating — abort rep on block/over + tighten hostile tests
3406d21290729835d0da145532eb8273eb2bdb92 db739d5052b06fe9b02f884b56b135c28c0f838c Bruce <bruce@intellieffect.com> 1776084711 +0900	commit: feat(exercise): velocity loss % — set-level and per-rep tracking
db739d5052b06fe9b02f884b56b135c28c0f838c 98d48817f67023e21b731efbde2b1f164e77ef14 Bruce <bruce@intellieffect.com> 1776084718 +0900	commit: perf(exercise): MCV displacement-based — T-Force gold standard method
98d48817f67023e21b731efbde2b1f164e77ef14 fd34d156f05ab13f88c250224f07445f68f74d25 Bruce <bruce@intellieffect.com> 1776084725 +0900	commit: feat(exercise): AutoRomLearner — progressive ROM calibration from reps
fd34d156f05ab13f88c250224f07445f68f74d25 adeb762f99f9e891042cae0ceaefd8b9a332eaf1 Bruce <bruce@intellieffect.com> 1776084733 +0900	commit: feat(db): Supabase roomfitv2 schema — workout data collection
adeb762f99f9e891042cae0ceaefd8b9a332eaf1 db90165e1f545399db33c5912ccd44762ace64bf Bruce <bruce@intellieffect.com> 1776084741 +0900	commit: feat(workout): B2C use cases — session, set, quick start (TDD)
db90165e1f545399db33c5912ccd44762ace64bf d3fa1fe71e97ff9c8ec4b70661c9900be13692c3 Bruce <bruce@intellieffect.com> 1776114144 +0900	commit: feat(workout): B2C app layer — providers, UI screens, exercise library
d3fa1fe71e97ff9c8ec4b70661c9900be13692c3 2f5289058f59d3f4c9e865ac411236dab194c525 Bruce <bruce@intellieffect.com> 1776114253 +0900	commit: feat(auth): Supabase Auth integration + auth gate + dark theme
2f5289058f59d3f4c9e865ac411236dab194c525 17e1a0bd8b5c35f5e5ad7abfd143ff5e59b49374 Bruce <bruce@intellieffect.com> 1776114415 +0900	commit: feat(workout): history screen + session detail with VBT metrics
17e1a0bd8b5c35f5e5ad7abfd143ff5e59b49374 99951cd58561ed134d928904ec225a72cde21003 Bruce <bruce@intellieffect.com> 1776114851 +0900	commit: fix(auth): guard Supabase.instance access when anon key not set
99951cd58561ed134d928904ec225a72cde21003 8583906a5ac4b51da1ecf6447eb16f04f774258c Bruce <bruce@intellieffect.com> 1776115086 +0900	commit: feat(dev): dev mode with MockDeviceGateway + DevHomeScreen
8583906a5ac4b51da1ecf6447eb16f04f774258c bf8b0ab9be974b7152e28ae40c2f43d700cccfaf Bruce <bruce@intellieffect.com> 1776122681 +0900	commit: feat(design-system): design system package + migrate UI to tokenized components
bf8b0ab9be974b7152e28ae40c2f43d700cccfaf bfcda499fd595ff17d83115abbfe252d98c127f1 Bruce <bruce@intellieffect.com> 1776122885 +0900	commit: style(design-system): bump border radius for modern rounded aesthetic
bfcda499fd595ff17d83115abbfe252d98c127f1 691b292834e2a99149299ffe42b1ba7ba4a90e44 Bruce <bruce@intellieffect.com> 1776123372 +0900	commit: test(workout): E2E widget tests for all screens + fix AppButton overflow
691b292834e2a99149299ffe42b1ba7ba4a90e44 aa9907848df722f1a6e9a46ee06f8b09eda199a6 Bruce <bruce@intellieffect.com> 1776123562 +0900	commit: fix(workout): coordinator no longer leaves user stuck on loading screen
aa9907848df722f1a6e9a46ee06f8b09eda199a6 0938e36bda2000449e1c28e2be29adb63478bd2f Bruce <bruce@intellieffect.com> 1776129659 +0900	commit: fix(workout): connect exercise select to workout flow + integration E2E
0938e36bda2000449e1c28e2be29adb63478bd2f d28b5c3b282e5ce46ead8f34e82605258dfd5fdb Bruce <bruce@intellieffect.com> 1776239535 +0900	commit: chore(firmware): scaffold roomfit_firmware package
d28b5c3b282e5ce46ead8f34e82605258dfd5fdb 8fdde403e3ffa0b89596258535d4c79c073ec051 Bruce <bruce@intellieffect.com> 1776240628 +0900	commit: feat(firmware): CRC16-XMODEM + YModem SOH packet builders
8fdde403e3ffa0b89596258535d4c79c073ec051 d5379f1fe087b246d86398e4c2a6865e03aeb14e Bruce <bruce@intellieffect.com> 1776241186 +0900	commit: feat(firmware): YModem transfer session with progress stream
d5379f1fe087b246d86398e4c2a6865e03aeb14e 504f0e43e0f8276b75b42cabc9e0558dd415c2cd Bruce <bruce@intellieffect.com> 1776242462 +0900	commit: feat(firmware): IAP protocol + FirmwareUpdateSession orchestrator
504f0e43e0f8276b75b42cabc9e0558dd415c2cd a5b32e62768c445d21093496a7093a752a9c45bc Bruce <bruce@intellieffect.com> 1776250802 +0900	commit: feat(schema): VBT analytics + fatigue/load tracking (BP-grounded)
a5b32e62768c445d21093496a7093a752a9c45bc 44715930107777141c2e947f4216a4a8556082a0 Bruce <bruce@intellieffect.com> 1776251137 +0900	commit: feat(exercise): VBT profile + fatigue analytics (pure Dart, TDD)
44715930107777141c2e947f4216a4a8556082a0 36c75d54a193c75dd0fac2147ac88e5710810861 Bruce <bruce@intellieffect.com> 1776300102 +0900	commit: feat(workout): wire BP analytics into actual data collection
36c75d54a193c75dd0fac2147ac88e5710810861 d71c177c340efbbc82e90b833497196067033e58 Bruce <bruce@intellieffect.com> 1776300554 +0900	commit: feat(workout): RPE/RIR + session sRPE/mood + Hooper UI capture
d71c177c340efbbc82e90b833497196067033e58 cd1b0826fdf94a0e2b760a8e33ce5cceec3a1b1d Bruce <bruce@intellieffect.com> 1776301181 +0900	commit: docs: domain concept reference under docs/concepts/
cd1b0826fdf94a0e2b760a8e33ce5cceec3a1b1d 34222c3728cbc02670fc5c0e43f37516e5a32f84 Bruce <bruce@intellieffect.com> 1776302708 +0900	commit: fix(db): apply VBT analytics migration + close RLS gap
34222c3728cbc02670fc5c0e43f37516e5a32f84 08e0758261bc43871658f9c142d3ea31de08775e Bruce <bruce@intellieffect.com> 1776303708 +0900	commit: feat(app): swap InMemory repos with Supabase when anon key is set
08e0758261bc43871658f9c142d3ea31de08775e e36aa3a601ca5397f71914236f22dfd0e6ca2ada Bruce <bruce@intellieffect.com> 1776305222 +0900	commit: fix(ui): RPE sheet overflow + set summary button clipping
e36aa3a601ca5397f71914236f22dfd0e6ca2ada fab79f9dba2bca0212c73295166134a882504a2d Bruce <bruce@intellieffect.com> 1776327307 +0900	commit: test(e2e): 12/12 integration tests — RPE/Session feedback flow
fab79f9dba2bca0212c73295166134a882504a2d 98daf4f4bedc4802aa6f4bb77912e77e6c097852 Bruce <bruce@intellieffect.com> 1776559043 +0900	commit: docs(b2b): v0 design docs — hierarchy / RLS / shadow accounts / monorepo structure
98daf4f4bedc4802aa6f4bb77912e77e6c097852 bd1889d92c43b9c0d32ebc4a08ffac27f3a1887d Bruce <bruce@intellieffect.com> 1776559071 +0900	commit: refactor(repo): dual-app pub workspace monorepo — apps/{b2c,b2b} + roomfit_shop
bd1889d92c43b9c0d32ebc4a08ffac27f3a1887d 50f2a3a698d90397c119cce16825bf9d4569d913 Bruce <bruce@intellieffect.com> 1776559353 +0900	commit: feat(db): B2B shop hierarchy schema + RLS
50f2a3a698d90397c119cce16825bf9d4569d913 e98fe7e894e645c10423f6bde0ca18197f4f0638 Bruce <bruce@intellieffect.com> 1776559567 +0900	commit: feat(shop): Center/Role/Membership domain + InMemoryShopRepository (TDD)
e98fe7e894e645c10423f6bde0ca18197f4f0638 bce04ca242c72b780b3aaaa1eecf00c2e7dce509 Bruce <bruce@intellieffect.com> 1776559697 +0900	commit: feat(shop): Edge function invite_member + SupabaseShopRepository
bce04ca242c72b780b3aaaa1eecf00c2e7dce509 d17bb6b177541df627e3bc25eb516efe961bc062 Bruce <bruce@intellieffect.com> 1776559783 +0900	commit: refactor(workout): WorkoutSessionState carries B2B session context (structural)
d17bb6b177541df627e3bc25eb516efe961bc062 4c74438e243d88cb48741ebcb932faa5e13e96cd Bruce <bruce@intellieffect.com> 1776559882 +0900	commit: feat(workout): persist trainer_id/center_id/session_type for supervised sessions
4c74438e243d88cb48741ebcb932faa5e13e96cd f744bfec6e433d3d607d2250f3adc8a4744a8217 Bruce <bruce@intellieffect.com> 1776560773 +0900	commit: refactor(shop): rename Center→Shop and CenterMember→ShopMember (structural)
f744bfec6e433d3d607d2250f3adc8a4744a8217 2ca3dc7b3fb482f7d0c48509106dd911e3b52049 Bruce <bruce@intellieffect.com> 1776560788 +0900	commit: feat(studio): B2B app UI scaffold — AuthGate / CreateShop / ShopHome / Invite
2ca3dc7b3fb482f7d0c48509106dd911e3b52049 f2cc074d787b337e8fd5764bd3698bfc4b803e2a Bruce <bruce@intellieffect.com> 1776561284 +0900	commit: feat(studio): Stage 1 supervised workout recorder (manual set entry)
f2cc074d787b337e8fd5764bd3698bfc4b803e2a 1fe85c6962f6b5c0125235584a9e70fabd19000d Bruce <bruce@intellieffect.com> 1776561681 +0900	commit: refactor(workout): extract domain + data + catalog to packages/roomfit_workout
1fe85c6962f6b5c0125235584a9e70fabd19000d f2cc074d787b337e8fd5764bd3698bfc4b803e2a Bruce <bruce@intellieffect.com> 1776561701 +0900	reset: moving to HEAD^
f2cc074d787b337e8fd5764bd3698bfc4b803e2a 99d624cf2b0ce61eda780f65b10277e695ac4a49 Bruce <bruce@intellieffect.com> 1776561724 +0900	commit: refactor(workout): extract domain + data + catalog to packages/roomfit_workout
99d624cf2b0ce61eda780f65b10277e695ac4a49 ff47985c02ec3ba018c62ef7dd340e0aa0a692c0 Bruce <bruce@intellieffect.com> 1776561823 +0900	commit: refactor(studio): drop duplicated exercise catalog — consume shared package
ff47985c02ec3ba018c62ef7dd340e0aa0a692c0 6613056307a97675c9fce4f75fdd620ac1314f47 Bruce <bruce@intellieffect.com> 1776562772 +0900	commit: feat(studio): Stage 2 BLE-live VBT supervised workout flow
6613056307a97675c9fce4f75fdd620ac1314f47 a16228101da1dd7d883b6ec5f0fae146a3d32a51 Bruce <bruce@intellieffect.com> 1776563421 +0900	commit: feat(studio): mock device gateway + dev home for offline supervised testing
a16228101da1dd7d883b6ec5f0fae146a3d32a51 bb282e5c255102fc91c15b10c31fe3e5bd21abd5 Bruce <bruce@intellieffect.com> 1776564276 +0900	commit: test(studio): E2E integration test for supervised BLE-live flow
bb282e5c255102fc91c15b10c31fe3e5bd21abd5 bb282e5c255102fc91c15b10c31fe3e5bd21abd5 Bruce <bruce@intellieffect.com> 1776567057 +0900	checkout: moving from main to feat/b2b-rls-hardening
bb282e5c255102fc91c15b10c31fe3e5bd21abd5 183610af6923514eeb0727714db7334334474fc6 Bruce <bruce@intellieffect.com> 1776567158 +0900	commit: feat(b2b): RLS hardening — sessions immutable trigger + LVP/wellness/rep_run staff path
183610af6923514eeb0727714db7334334474fc6 bb282e5c255102fc91c15b10c31fe3e5bd21abd5 Bruce <bruce@intellieffect.com> 1776567181 +0900	checkout: moving from feat/b2b-rls-hardening to main
bb282e5c255102fc91c15b10c31fe3e5bd21abd5 bb282e5c255102fc91c15b10c31fe3e5bd21abd5 Bruce <bruce@intellieffect.com> 1776567181 +0900	checkout: moving from main to feat/invite-confirmation
bb282e5c255102fc91c15b10c31fe3e5bd21abd5 c0a12f9663612972f681c8872d3f8d57dd0e67a0 Bruce <bruce@intellieffect.com> 1776567242 +0900	commit: feat(invite): require explicit confirmation when inviting an existing user (SEC-02)
c0a12f9663612972f681c8872d3f8d57dd0e67a0 bb282e5c255102fc91c15b10c31fe3e5bd21abd5 Bruce <bruce@intellieffect.com> 1776567252 +0900	checkout: moving from feat/invite-confirmation to main
bb282e5c255102fc91c15b10c31fe3e5bd21abd5 bb282e5c255102fc91c15b10c31fe3e5bd21abd5 Bruce <bruce@intellieffect.com> 1776567252 +0900	checkout: moving from main to feat/b2b-disconnect-and-lazy-session
bb282e5c255102fc91c15b10c31fe3e5bd21abd5 c00a7353da23d7cc64d0c6b321dbe8cadef89afe Bruce <bruce@intellieffect.com> 1776567408 +0900	commit: feat(b2b workout): handle BLE disconnect + lazy supervised session start
c00a7353da23d7cc64d0c6b321dbe8cadef89afe 563fdb6d00ebb6114b3b56b03efe46fbf9406fdf Bruce <bruce@intellieffect.com> 1776568305 +0900	commit: fix(pr-ship): address review blockers on PR #43
563fdb6d00ebb6114b3b56b03efe46fbf9406fdf 563fdb6d00ebb6114b3b56b03efe46fbf9406fdf Bruce <bruce@intellieffect.com> 1776568319 +0900	reset: moving to HEAD
563fdb6d00ebb6114b3b56b03efe46fbf9406fdf bb282e5c255102fc91c15b10c31fe3e5bd21abd5 Bruce <bruce@intellieffect.com> 1776568322 +0900	checkout: moving from feat/b2b-disconnect-and-lazy-session to main
bb282e5c255102fc91c15b10c31fe3e5bd21abd5 27131584a4d6f66fe842119546c9ca7b0cecb3e4 Bruce <bruce@intellieffect.com> 1776568324 +0900	pull --ff-only origin main: Fast-forward
27131584a4d6f66fe842119546c9ca7b0cecb3e4 27131584a4d6f66fe842119546c9ca7b0cecb3e4 Bruce <bruce@intellieffect.com> 1776568334 +0900	checkout: moving from main to main
27131584a4d6f66fe842119546c9ca7b0cecb3e4 27131584a4d6f66fe842119546c9ca7b0cecb3e4 Bruce <bruce@intellieffect.com> 1776568384 +0900	reset: moving to HEAD
27131584a4d6f66fe842119546c9ca7b0cecb3e4 27131584a4d6f66fe842119546c9ca7b0cecb3e4 Bruce <bruce@intellieffect.com> 1776568457 +0900	reset: moving to HEAD
27131584a4d6f66fe842119546c9ca7b0cecb3e4 27131584a4d6f66fe842119546c9ca7b0cecb3e4 Bruce <bruce@intellieffect.com> 1776568521 +0900	reset: moving to HEAD
27131584a4d6f66fe842119546c9ca7b0cecb3e4 26d3e1f580e5e57c2a99ebe9fd6c7f29e7d85bce Bruce <bruce@intellieffect.com> 1776568523 +0900	pull --ff-only: Fast-forward
26d3e1f580e5e57c2a99ebe9fd6c7f29e7d85bce 783c49b4c0463c9832074b2d6822efd3cd6e6b38 Bruce <bruce@intellieffect.com> 1776590824 +0900	commit: chore(b2b): lock search_path on enforce_session_immutable_columns()
783c49b4c0463c9832074b2d6822efd3cd6e6b38 4bdf3c800a7b6157d119b00295b10fa6d8a21400 Bruce <bruce@intellieffect.com> 1776590894 +0900	commit: docs(b2b): mark CRITICAL 5 shipped in scenario-gaps-index
4bdf3c800a7b6157d119b00295b10fa6d8a21400 4bdf3c800a7b6157d119b00295b10fa6d8a21400 Bruce <bruce@intellieffect.com> 1776591806 +0900	checkout: moving from main to main
4bdf3c800a7b6157d119b00295b10fa6d8a21400 4bdf3c800a7b6157d119b00295b10fa6d8a21400 Bruce <bruce@intellieffect.com> 1776591806 +0900	checkout: moving from main to feat/b2b-pickers
4bdf3c800a7b6157d119b00295b10fa6d8a21400 b41364ad1511f966ce6f3f6fa640292943b0bc1a Bruce <bruce@intellieffect.com> 1776592050 +0900	commit: feat(b2b workout): SetSettingsSheet — weight mode + side + training goal pickers
b41364ad1511f966ce6f3f6fa640292943b0bc1a b41364ad1511f966ce6f3f6fa640292943b0bc1a Bruce <bruce@intellieffect.com> 1776592087 +0900	reset: moving to HEAD
b41364ad1511f966ce6f3f6fa640292943b0bc1a 4bdf3c800a7b6157d119b00295b10fa6d8a21400 Bruce <bruce@intellieffect.com> 1776592089 +0900	checkout: moving from feat/b2b-pickers to main
4bdf3c800a7b6157d119b00295b10fa6d8a21400 c61229702df6e4de38f18d4da5823684eb0a6854 Bruce <bruce@intellieffect.com> 1776592092 +0900	pull --ff-only origin main: Fast-forward
c61229702df6e4de38f18d4da5823684eb0a6854 c61229702df6e4de38f18d4da5823684eb0a6854 Bruce <bruce@intellieffect.com> 1776592102 +0900	checkout: moving from main to main
c61229702df6e4de38f18d4da5823684eb0a6854 c61229702df6e4de38f18d4da5823684eb0a6854 Bruce <bruce@intellieffect.com> 1776592102 +0900	reset: moving to HEAD
c61229702df6e4de38f18d4da5823684eb0a6854 c61229702df6e4de38f18d4da5823684eb0a6854 Bruce <bruce@intellieffect.com> 1776592105 +0900	checkout: moving from main to feat/b2b-weight-mode-command
c61229702df6e4de38f18d4da5823684eb0a6854 a41fdc3c76deb5868dbe9399ba9dcb052fb92e7f Bruce <bruce@intellieffect.com> 1776592276 +0900	commit: feat(workout): SetExecutor.startSet emits SetWeightModeCommand (DOM-01)
a41fdc3c76deb5868dbe9399ba9dcb052fb92e7f a41fdc3c76deb5868dbe9399ba9dcb052fb92e7f Bruce <bruce@intellieffect.com> 1776592302 +0900	reset: moving to HEAD
a41fdc3c76deb5868dbe9399ba9dcb052fb92e7f c61229702df6e4de38f18d4da5823684eb0a6854 Bruce <bruce@intellieffect.com> 1776592304 +0900	checkout: moving from feat/b2b-weight-mode-command to main
c61229702df6e4de38f18d4da5823684eb0a6854 e9db8a0d1a0454a168201c85ed3d147840faffd2 Bruce <bruce@intellieffect.com> 1776592307 +0900	pull --ff-only origin main: Fast-forward
e9db8a0d1a0454a168201c85ed3d147840faffd2 e9db8a0d1a0454a168201c85ed3d147840faffd2 Bruce <bruce@intellieffect.com> 1776592320 +0900	checkout: moving from main to main
e9db8a0d1a0454a168201c85ed3d147840faffd2 e9db8a0d1a0454a168201c85ed3d147840faffd2 Bruce <bruce@intellieffect.com> 1776592320 +0900	reset: moving to HEAD
e9db8a0d1a0454a168201c85ed3d147840faffd2 e9db8a0d1a0454a168201c85ed3d147840faffd2 Bruce <bruce@intellieffect.com> 1776592322 +0900	checkout: moving from main to feat/b2b-set-controls
e9db8a0d1a0454a168201c85ed3d147840faffd2 11c86f063dbc1fdbe3acbcc5cded400b0fa8e16c Bruce <bruce@intellieffect.com> 1776592445 +0900	commit: feat(b2b workout): SetControlBar — emergency stop + weight trim (DOM-06)
11c86f063dbc1fdbe3acbcc5cded400b0fa8e16c 11c86f063dbc1fdbe3acbcc5cded400b0fa8e16c Bruce <bruce@intellieffect.com> 1776592462 +0900	reset: moving to HEAD
11c86f063dbc1fdbe3acbcc5cded400b0fa8e16c e9db8a0d1a0454a168201c85ed3d147840faffd2 Bruce <bruce@intellieffect.com> 1776592464 +0900	checkout: moving from feat/b2b-set-controls to main
e9db8a0d1a0454a168201c85ed3d147840faffd2 cac457fcd2c43e1f0d5e149230d984e465753957 Bruce <bruce@intellieffect.com> 1776592467 +0900	pull --ff-only origin main: Fast-forward
cac457fcd2c43e1f0d5e149230d984e465753957 cac457fcd2c43e1f0d5e149230d984e465753957 Bruce <bruce@intellieffect.com> 1776592491 +0900	checkout: moving from main to main
cac457fcd2c43e1f0d5e149230d984e465753957 cac457fcd2c43e1f0d5e149230d984e465753957 Bruce <bruce@intellieffect.com> 1776592491 +0900	reset: moving to HEAD
cac457fcd2c43e1f0d5e149230d984e465753957 cac457fcd2c43e1f0d5e149230d984e465753957 Bruce <bruce@intellieffect.com> 1776592493 +0900	checkout: moving from main to feat/resumable-and-b2c-label
cac457fcd2c43e1f0d5e149230d984e465753957 eba740c5c660269022827e88ab3a5b424e99f022 Bruce <bruce@intellieffect.com> 1776592692 +0900	commit: feat: resumable supervised sessions + B2C 'trainer-recorded' badge (UX-03 + UX-04)
eba740c5c660269022827e88ab3a5b424e99f022 eba740c5c660269022827e88ab3a5b424e99f022 Bruce <bruce@intellieffect.com> 1776592712 +0900	reset: moving to HEAD
eba740c5c660269022827e88ab3a5b424e99f022 cac457fcd2c43e1f0d5e149230d984e465753957 Bruce <bruce@intellieffect.com> 1776592714 +0900	checkout: moving from feat/resumable-and-b2c-label to main
cac457fcd2c43e1f0d5e149230d984e465753957 c53673a91c234fea92f32247366cf5b6d4784de1 Bruce <bruce@intellieffect.com> 1776592717 +0900	pull --ff-only origin main: Fast-forward
c53673a91c234fea92f32247366cf5b6d4784de1 c53673a91c234fea92f32247366cf5b6d4784de1 Bruce <bruce@intellieffect.com> 1776592734 +0900	checkout: moving from main to main
c53673a91c234fea92f32247366cf5b6d4784de1 c53673a91c234fea92f32247366cf5b6d4784de1 Bruce <bruce@intellieffect.com> 1776592734 +0900	reset: moving to HEAD
c53673a91c234fea92f32247366cf5b6d4784de1 c53673a91c234fea92f32247366cf5b6d4784de1 Bruce <bruce@intellieffect.com> 1776592737 +0900	checkout: moving from main to feat/b2b-multi-exercise
c53673a91c234fea92f32247366cf5b6d4784de1 b830ffe0c2ccfc78b85acb6740c554e1c54e8a5b Bruce <bruce@intellieffect.com> 1776592829 +0900	commit: feat(b2b workout): multi-exercise sessions — '다른 운동' from SetSummary (DOM-05)
b830ffe0c2ccfc78b85acb6740c554e1c54e8a5b b830ffe0c2ccfc78b85acb6740c554e1c54e8a5b Bruce <bruce@intellieffect.com> 1776592846 +0900	reset: moving to HEAD
b830ffe0c2ccfc78b85acb6740c554e1c54e8a5b c53673a91c234fea92f32247366cf5b6d4784de1 Bruce <bruce@intellieffect.com> 1776592848 +0900	checkout: moving from feat/b2b-multi-exercise to main
c53673a91c234fea92f32247366cf5b6d4784de1 747cafff8afcd38bc8da6bb436bf5ba0c7cc0739 Bruce <bruce@intellieffect.com> 1776592851 +0900	pull --ff-only origin main: Fast-forward
747cafff8afcd38bc8da6bb436bf5ba0c7cc0739 b8472e80ce82aeb66fd5e2666704877186261b18 Bruce <bruce@intellieffect.com> 1776592877 +0900	commit: docs(b2b): mark HIGH 8 shipped in scenario-gaps-index
b8472e80ce82aeb66fd5e2666704877186261b18 b8472e80ce82aeb66fd5e2666704877186261b18 Bruce <bruce@intellieffect.com> 1776595100 +0900	checkout: moving from main to main
b8472e80ce82aeb66fd5e2666704877186261b18 b8472e80ce82aeb66fd5e2666704877186261b18 Bruce <bruce@intellieffect.com> 1776595100 +0900	reset: moving to HEAD
b8472e80ce82aeb66fd5e2666704877186261b18 b8472e80ce82aeb66fd5e2666704877186261b18 Bruce <bruce@intellieffect.com> 1776595103 +0900	checkout: moving from main to feat/auto-cutoff
b8472e80ce82aeb66fd5e2666704877186261b18 c1bc010e4ea6e4341db2be661f1e69251734eeee Bruce <bruce@intellieffect.com> 1776595316 +0900	commit: feat(workout): SetExecutor auto-cutoff on VL threshold + targetReps (DOM-07)
c1bc010e4ea6e4341db2be661f1e69251734eeee c1bc010e4ea6e4341db2be661f1e69251734eeee Bruce <bruce@intellieffect.com> 1776595334 +0900	reset: moving to HEAD
c1bc010e4ea6e4341db2be661f1e69251734eeee b8472e80ce82aeb66fd5e2666704877186261b18 Bruce <bruce@intellieffect.com> 1776595337 +0900	checkout: moving from feat/auto-cutoff to main
b8472e80ce82aeb66fd5e2666704877186261b18 5aef305344ba907ae4b48a61af219ae9fa6197bd Bruce <bruce@intellieffect.com> 1776595339 +0900	pull --ff-only origin main: Fast-forward
5aef305344ba907ae4b48a61af219ae9fa6197bd 5aef305344ba907ae4b48a61af219ae9fa6197bd Bruce <bruce@intellieffect.com> 1776595356 +0900	checkout: moving from main to main
5aef305344ba907ae4b48a61af219ae9fa6197bd 5aef305344ba907ae4b48a61af219ae9fa6197bd Bruce <bruce@intellieffect.com> 1776595356 +0900	reset: moving to HEAD
5aef305344ba907ae4b48a61af219ae9fa6197bd 5aef305344ba907ae4b48a61af219ae9fa6197bd Bruce <bruce@intellieffect.com> 1776595358 +0900	checkout: moving from main to docs/scenario-fixes
5aef305344ba907ae4b48a61af219ae9fa6197bd 4b15630dfcae3480805adae05600ceb5ebe4aef3 Bruce <bruce@intellieffect.com> 1776595434 +0900	commit: docs(b2b): scenario dashboard BLE seq fix + 7-table data flow + claim trigger note
4b15630dfcae3480805adae05600ceb5ebe4aef3 4b15630dfcae3480805adae05600ceb5ebe4aef3 Bruce <bruce@intellieffect.com> 1776595457 +0900	reset: moving to HEAD
4b15630dfcae3480805adae05600ceb5ebe4aef3 5aef305344ba907ae4b48a61af219ae9fa6197bd Bruce <bruce@intellieffect.com> 1776595459 +0900	checkout: moving from docs/scenario-fixes to main
5aef305344ba907ae4b48a61af219ae9fa6197bd f89b877a84996c93f99dc83fc126aa7a4288e9d4 Bruce <bruce@intellieffect.com> 1776595461 +0900	pull --ff-only origin main: Fast-forward
f89b877a84996c93f99dc83fc126aa7a4288e9d4 f89b877a84996c93f99dc83fc126aa7a4288e9d4 Bruce <bruce@intellieffect.com> 1776595480 +0900	checkout: moving from main to main
f89b877a84996c93f99dc83fc126aa7a4288e9d4 f89b877a84996c93f99dc83fc126aa7a4288e9d4 Bruce <bruce@intellieffect.com> 1776595480 +0900	reset: moving to HEAD
f89b877a84996c93f99dc83fc126aa7a4288e9d4 f89b877a84996c93f99dc83fc126aa7a4288e9d4 Bruce <bruce@intellieffect.com> 1776595482 +0900	checkout: moving from main to feat/cross-wire-guard
f89b877a84996c93f99dc83fc126aa7a4288e9d4 dd6560f45d633ff2c156aa36a6c46bfe097cd14b Bruce <bruce@intellieffect.com> 1776595567 +0900	commit: feat(b2b): cross-wire guard before starting a second supervised flow (UX-06)
dd6560f45d633ff2c156aa36a6c46bfe097cd14b dd6560f45d633ff2c156aa36a6c46bfe097cd14b Bruce <bruce@intellieffect.com> 1776595577 +0900	reset: moving to HEAD
dd6560f45d633ff2c156aa36a6c46bfe097cd14b f89b877a84996c93f99dc83fc126aa7a4288e9d4 Bruce <bruce@intellieffect.com> 1776595580 +0900	checkout: moving from feat/cross-wire-guard to main
f89b877a84996c93f99dc83fc126aa7a4288e9d4 0d2e07597f4dc4bc042aae9de4cb76c80742906c Bruce <bruce@intellieffect.com> 1776595582 +0900	pull --ff-only origin main: Fast-forward
0d2e07597f4dc4bc042aae9de4cb76c80742906c 0d2e07597f4dc4bc042aae9de4cb76c80742906c Bruce <bruce@intellieffect.com> 1776595598 +0900	checkout: moving from main to main
0d2e07597f4dc4bc042aae9de4cb76c80742906c 0d2e07597f4dc4bc042aae9de4cb76c80742906c Bruce <bruce@intellieffect.com> 1776595598 +0900	reset: moving to HEAD
0d2e07597f4dc4bc042aae9de4cb76c80742906c 0d2e07597f4dc4bc042aae9de4cb76c80742906c Bruce <bruce@intellieffect.com> 1776595600 +0900	checkout: moving from main to feat/b2b-schema-enrichment
0d2e07597f4dc4bc042aae9de4cb76c80742906c c57bdc398fdeb2371c2be89b0c3b911003a1d15e Bruce <bruce@intellieffect.com> 1776595685 +0900	commit: feat(b2b db): centers/memberships/sessions enrichment + self-session center_id guard
c57bdc398fdeb2371c2be89b0c3b911003a1d15e c57bdc398fdeb2371c2be89b0c3b911003a1d15e Bruce <bruce@intellieffect.com> 1776595699 +0900	reset: moving to HEAD
c57bdc398fdeb2371c2be89b0c3b911003a1d15e 0d2e07597f4dc4bc042aae9de4cb76c80742906c Bruce <bruce@intellieffect.com> 1776595701 +0900	checkout: moving from feat/b2b-schema-enrichment to main
0d2e07597f4dc4bc042aae9de4cb76c80742906c 98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 Bruce <bruce@intellieffect.com> 1776595704 +0900	pull --ff-only origin main: Fast-forward
98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 Bruce <bruce@intellieffect.com> 1776595717 +0900	checkout: moving from main to main
98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 Bruce <bruce@intellieffect.com> 1776595718 +0900	reset: moving to HEAD
98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 Bruce <bruce@intellieffect.com> 1776595720 +0900	checkout: moving from main to feat/multi-shop-picker
98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 c229c1c0b0cd3775dd51d9efc11736ebbb247804 Bruce <bruce@intellieffect.com> 1776595882 +0900	commit: feat(b2b shop): multi-shop picker in ShopHome header (UX-07)
c229c1c0b0cd3775dd51d9efc11736ebbb247804 c229c1c0b0cd3775dd51d9efc11736ebbb247804 Bruce <bruce@intellieffect.com> 1776595886 +0900	reset: moving to HEAD
c229c1c0b0cd3775dd51d9efc11736ebbb247804 98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 Bruce <bruce@intellieffect.com> 1776595888 +0900	checkout: moving from feat/multi-shop-picker to main
98f66b9c58a9ce14f284c10b8f82f0dafdf095d9 f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e Bruce <bruce@intellieffect.com> 1776595891 +0900	pull --ff-only origin main: Fast-forward
f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e Bruce <bruce@intellieffect.com> 1776595917 +0900	checkout: moving from main to main
f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e Bruce <bruce@intellieffect.com> 1776595917 +0900	reset: moving to HEAD
f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e Bruce <bruce@intellieffect.com> 1776595919 +0900	checkout: moving from main to feat/owner-dashboard
f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e dd723cf513f2eddaf93210952b644c51e7108ed7 Bruce <bruce@intellieffect.com> 1776596053 +0900	commit: feat(b2b shop): OwnerDashboard — member count + per-trainer activity (UX-08)
dd723cf513f2eddaf93210952b644c51e7108ed7 dd723cf513f2eddaf93210952b644c51e7108ed7 Bruce <bruce@intellieffect.com> 1776596057 +0900	reset: moving to HEAD
dd723cf513f2eddaf93210952b644c51e7108ed7 f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e Bruce <bruce@intellieffect.com> 1776596059 +0900	checkout: moving from feat/owner-dashboard to main
f4585a9f5b2a98dd9f7d4a450866f5a72cadf49e 62a8289d7107d2a8079202021007f432f824d9c7 Bruce <bruce@intellieffect.com> 1776596062 +0900	pull --ff-only origin main: Fast-forward
62a8289d7107d2a8079202021007f432f824d9c7 62a8289d7107d2a8079202021007f432f824d9c7 Bruce <bruce@intellieffect.com> 1776596083 +0900	checkout: moving from main to main
62a8289d7107d2a8079202021007f432f824d9c7 62a8289d7107d2a8079202021007f432f824d9c7 Bruce <bruce@intellieffect.com> 1776596083 +0900	reset: moving to HEAD
62a8289d7107d2a8079202021007f432f824d9c7 62a8289d7107d2a8079202021007f432f824d9c7 Bruce <bruce@intellieffect.com> 1776596085 +0900	checkout: moving from main to feat/lifecycle-ops
62a8289d7107d2a8079202021007f432f824d9c7 8953f0156bcf4dd392cf4e1adde538a864976dc1 Bruce <bruce@intellieffect.com> 1776596335 +0900	commit: feat(b2b shop): trainer/member soft-removal + atomic owner handoff (UX-09)
8953f0156bcf4dd392cf4e1adde538a864976dc1 8953f0156bcf4dd392cf4e1adde538a864976dc1 Bruce <bruce@intellieffect.com> 1776596339 +0900	reset: moving to HEAD
8953f0156bcf4dd392cf4e1adde538a864976dc1 62a8289d7107d2a8079202021007f432f824d9c7 Bruce <bruce@intellieffect.com> 1776596342 +0900	checkout: moving from feat/lifecycle-ops to main
62a8289d7107d2a8079202021007f432f824d9c7 59d125b6bd3509fe855cc72d4979debb2cac7f20 Bruce <bruce@intellieffect.com> 1776596345 +0900	pull --ff-only origin main: Fast-forward
59d125b6bd3509fe855cc72d4979debb2cac7f20 59d125b6bd3509fe855cc72d4979debb2cac7f20 Bruce <bruce@intellieffect.com> 1776596372 +0900	checkout: moving from main to main
59d125b6bd3509fe855cc72d4979debb2cac7f20 59d125b6bd3509fe855cc72d4979debb2cac7f20 Bruce <bruce@intellieffect.com> 1776596372 +0900	reset: moving to HEAD
59d125b6bd3509fe855cc72d4979debb2cac7f20 59d125b6bd3509fe855cc72d4979debb2cac7f20 Bruce <bruce@intellieffect.com> 1776596375 +0900	checkout: moving from main to feat/invite-email-rate-limit
59d125b6bd3509fe855cc72d4979debb2cac7f20 16e844fea17b300e8c0880a40b9b26674d6a718a Bruce <bruce@intellieffect.com> 1776596557 +0900	commit: feat(invite): rate limit + direct user lookup + magic link return (UX-05 + SEC-04)
16e844fea17b300e8c0880a40b9b26674d6a718a 16e844fea17b300e8c0880a40b9b26674d6a718a Bruce <bruce@intellieffect.com> 1776596561 +0900	reset: moving to HEAD
16e844fea17b300e8c0880a40b9b26674d6a718a 59d125b6bd3509fe855cc72d4979debb2cac7f20 Bruce <bruce@intellieffect.com> 1776596567 +0900	checkout: moving from feat/invite-email-rate-limit to main
59d125b6bd3509fe855cc72d4979debb2cac7f20 d6827a4432745f897d168faef0f89622f1d9401a Bruce <bruce@intellieffect.com> 1776596570 +0900	pull --ff-only origin main: Fast-forward
d6827a4432745f897d168faef0f89622f1d9401a d6827a4432745f897d168faef0f89622f1d9401a Bruce <bruce@intellieffect.com> 1776596585 +0900	checkout: moving from main to main
d6827a4432745f897d168faef0f89622f1d9401a d6827a4432745f897d168faef0f89622f1d9401a Bruce <bruce@intellieffect.com> 1776596585 +0900	reset: moving to HEAD
d6827a4432745f897d168faef0f89622f1d9401a 188125a33345214a42beaa8589b76c78c9458ae0 Bruce <bruce@intellieffect.com> 1776596620 +0900	commit: docs(b2b): all 27 scenario gaps shipped
188125a33345214a42beaa8589b76c78c9458ae0 f3de02772d8ba74400807670a75d604022bbbca0 Bruce <bruce@intellieffect.com> 1776597081 +0900	commit: chore(e2e): drop unused imports in b2c/b2b integration tests
f3de02772d8ba74400807670a75d604022bbbca0 7195652b1ee5df3aedcf575e0d1bca02c6bbf3f4 Bruce <bruce@intellieffect.com> 1776597104 +0900	commit: test(b2c e2e): assert rep count increments after mock motion
7195652b1ee5df3aedcf575e0d1bca02c6bbf3f4 03b154e734dc47bfdadbd1bd116e922b06994709 Bruce <bruce@intellieffect.com> 1776599331 +0900	commit: feat(b2b shop): resolve trainer_id → email in OwnerDashboard
03b154e734dc47bfdadbd1bd116e922b06994709 01819460a8680d50f8c4ac5f1ff170bf127c9c61 Bruce <bruce@intellieffect.com> 1776601426 +0900	commit: feat(supabase): exercise_metadata catalog + PR views for personal dashboard
01819460a8680d50f8c4ac5f1ff170bf127c9c61 b5f682aca6f1e4b691e6364f0c405dde6aee5398 Bruce <bruce@intellieffect.com> 1776601840 +0900	commit: docs: VBT metrics data flow — MCU derivatives vs app recomputation
b5f682aca6f1e4b691e6364f0c405dde6aee5398 188125a33345214a42beaa8589b76c78c9458ae0 Bruce <bruce@intellieffect.com> 1776601946 +0900	reset: moving to origin/main
188125a33345214a42beaa8589b76c78c9458ae0 b5f682aca6f1e4b691e6364f0c405dde6aee5398 Bruce <bruce@intellieffect.com> 1776601946 +0900	checkout: moving from main to feat/workout-data-observability
b5f682aca6f1e4b691e6364f0c405dde6aee5398 b5f682aca6f1e4b691e6364f0c405dde6aee5398 Bruce <bruce@intellieffect.com> 1776602338 +0900	reset: moving to HEAD
b5f682aca6f1e4b691e6364f0c405dde6aee5398 188125a33345214a42beaa8589b76c78c9458ae0 Bruce <bruce@intellieffect.com> 1776602344 +0900	checkout: moving from feat/workout-data-observability to main
188125a33345214a42beaa8589b76c78c9458ae0 a23d25f309fe8b27a2d43b03167df1b8be5ea62a Bruce <bruce@intellieffect.com> 1776602346 +0900	pull --ff-only origin main: Fast-forward
a23d25f309fe8b27a2d43b03167df1b8be5ea62a a23d25f309fe8b27a2d43b03167df1b8be5ea62a Bruce <bruce@intellieffect.com> 1776602358 +0900	checkout: moving from main to main
a23d25f309fe8b27a2d43b03167df1b8be5ea62a a23d25f309fe8b27a2d43b03167df1b8be5ea62a Bruce <bruce@intellieffect.com> 1776604623 +0900	checkout: moving from main to feat/b2b-tablet-shell-and-member-dashboard
a23d25f309fe8b27a2d43b03167df1b8be5ea62a b658794dda3907865d4ba6b1b5b26a05cddc7e83 Bruce <bruce@intellieffect.com> 1776604649 +0900	commit: feat(b2b): tablet shell + home dashboard + member journey dashboard
b658794dda3907865d4ba6b1b5b26a05cddc7e83 43d4b386d64b8960b08e8d8ad619cdffdcc9138c Bruce <bruce@intellieffect.com> 1776605911 +0900	commit: style(b2b): polish tablet shell UI to match roomfit-gym reference
43d4b386d64b8960b08e8d8ad619cdffdcc9138c 43d4b386d64b8960b08e8d8ad619cdffdcc9138c Bruce <bruce@intellieffect.com> 1776605962 +0900	reset: moving to HEAD
43d4b386d64b8960b08e8d8ad619cdffdcc9138c a23d25f309fe8b27a2d43b03167df1b8be5ea62a Bruce <bruce@intellieffect.com> 1776605969 +0900	checkout: moving from feat/b2b-tablet-shell-and-member-dashboard to main
a23d25f309fe8b27a2d43b03167df1b8be5ea62a 033058042069f1d7ae135644a7a81e25edfe6afb Bruce <bruce@intellieffect.com> 1776605972 +0900	pull --ff-only origin main: Fast-forward
033058042069f1d7ae135644a7a81e25edfe6afb 033058042069f1d7ae135644a7a81e25edfe6afb Bruce <bruce@intellieffect.com> 1776605979 +0900	checkout: moving from main to main
033058042069f1d7ae135644a7a81e25edfe6afb 033058042069f1d7ae135644a7a81e25edfe6afb Bruce <bruce@intellieffect.com> 1776639897 +0900	checkout: moving from main to fix/b2b-tab-content-width-cap
033058042069f1d7ae135644a7a81e25edfe6afb 3500ebee14bee819d986297b4d440bbcf5b8accc Bruce <bruce@intellieffect.com> 1776639906 +0900	commit: fix(b2b): cap Sessions + Members tab content at 720 px
3500ebee14bee819d986297b4d440bbcf5b8accc 3500ebee14bee819d986297b4d440bbcf5b8accc Bruce <bruce@intellieffect.com> 1776640562 +0900	reset: moving to HEAD
3500ebee14bee819d986297b4d440bbcf5b8accc 033058042069f1d7ae135644a7a81e25edfe6afb Bruce <bruce@intellieffect.com> 1776640567 +0900	checkout: moving from fix/b2b-tab-content-width-cap to main
033058042069f1d7ae135644a7a81e25edfe6afb c4ea1186e5c64f7e7044939880fff9068f90086a Bruce <bruce@intellieffect.com> 1776640569 +0900	pull --ff-only origin main: Fast-forward
c4ea1186e5c64f7e7044939880fff9068f90086a c383000efeff4ec01977dc778713e2f0effdc899 Bruce <bruce@intellieffect.com> 1776641578 +0900	commit: chore(b2b): wire release signing (Android upload key + iOS ExportOptions)
c383000efeff4ec01977dc778713e2f0effdc899 6a2b2441ccbd7bb4dc2b7835345b7acf7c3941e8 Bruce <bruce@intellieffect.com> 1776660405 +0900	commit: chore(b2b ios): switch ExportOptions to manual signing
6a2b2441ccbd7bb4dc2b7835345b7acf7c3941e8 ff9c7b1e7bb5e4011888a568e07bf6303e880ede Bruce <bruce@intellieffect.com> 1776662313 +0900	commit: chore(b2b ios): declare no non-exempt encryption in Info.plist
ff9c7b1e7bb5e4011888a568e07bf6303e880ede ff9c7b1e7bb5e4011888a568e07bf6303e880ede Bruce <bruce@intellieffect.com> 1776717455 +0900	reset: moving to HEAD
ff9c7b1e7bb5e4011888a568e07bf6303e880ede ff9c7b1e7bb5e4011888a568e07bf6303e880ede Bruce <bruce@intellieffect.com> 1776717546 +0900	checkout: moving from main to main
ff9c7b1e7bb5e4011888a568e07bf6303e880ede 4cc2a7565238d62d2f6705d80d32a92d9486bbd0 Bruce <bruce@intellieffect.com> 1776717550 +0900	pull --ff-only: Fast-forward
4cc2a7565238d62d2f6705d80d32a92d9486bbd0 4cc2a7565238d62d2f6705d80d32a92d9486bbd0 Bruce <bruce@intellieffect.com> 1776717591 +0900	reset: moving to HEAD
4cc2a7565238d62d2f6705d80d32a92d9486bbd0 4cc2a7565238d62d2f6705d80d32a92d9486bbd0 Bruce <bruce@intellieffect.com> 1776734645 +0900	reset: moving to HEAD
4cc2a7565238d62d2f6705d80d32a92d9486bbd0 bc576cbbb605e772554c25c74c4eb8ff70e83edc Bruce <bruce@intellieffect.com> 1776734653 +0900	pull --ff-only: Fast-forward
bc576cbbb605e772554c25c74c4eb8ff70e83edc bc576cbbb605e772554c25c74c4eb8ff70e83edc Bruce <bruce@intellieffect.com> 1776749380 +0900	reset: moving to HEAD
bc576cbbb605e772554c25c74c4eb8ff70e83edc a1b96b6ae907edf48d2b1ba933f26bb29a1b3594 Bruce <bruce@intellieffect.com> 1776749424 +0900	pull --ff-only: Fast-forward
a1b96b6ae907edf48d2b1ba933f26bb29a1b3594 a1b96b6ae907edf48d2b1ba933f26bb29a1b3594 Bruce <bruce@intellieffect.com> 1776749620 +0900	checkout: moving from main to fix/b2b-seed-weight-from-motion-report
a1b96b6ae907edf48d2b1ba933f26bb29a1b3594 a5c96dd12654d789d227310d8ec57b6fdf2e9a89 Bruce <bruce@intellieffect.com> 1776749749 +0900	commit: fix(b2b workout): seed preset weight from motion.weightSet, not weight.leftWeightKg
a5c96dd12654d789d227310d8ec57b6fdf2e9a89 a1b96b6ae907edf48d2b1ba933f26bb29a1b3594 Bruce <bruce@intellieffect.com> 1776749772 +0900	checkout: moving from fix/b2b-seed-weight-from-motion-report to main
a1b96b6ae907edf48d2b1ba933f26bb29a1b3594 6f920728b732686a833ff05f6544c5e4126b2a81 Bruce <bruce@intellieffect.com> 1776749775 +0900	pull --ff-only origin main: Fast-forward
6f920728b732686a833ff05f6544c5e4126b2a81 cdf22a42953e54a8306addb704ecb63f86546b24 Bruce <bruce@intellieffect.com> 1776751883 +0900	commit: chore(gitignore): ignore deploy artifacts + .claude agent state
cdf22a42953e54a8306addb704ecb63f86546b24 552d536b3757cbd3aba3f4d0a7d0b91a47f4a16f Bruce <bruce@intellieffect.com> 1776752440 +0900	commit: docs(dashboards): reflect PR #65/66/67 — v1 도메인 완전 포팅 반영
552d536b3757cbd3aba3f4d0a7d0b91a47f4a16f 552d536b3757cbd3aba3f4d0a7d0b91a47f4a16f Bruce <bruce@intellieffect.com> 1776922085 +0900	reset: moving to HEAD
552d536b3757cbd3aba3f4d0a7d0b91a47f4a16f 552d536b3757cbd3aba3f4d0a7d0b91a47f4a16f Bruce <bruce@intellieffect.com> 1777271537 +0900	reset: moving to HEAD
552d536b3757cbd3aba3f4d0a7d0b91a47f4a16f af136e7ba4ee716e47433d27d30e061783dacb28 Bruce <bruce@intellieffect.com> 1777271564 +0900	pull --ff-only origin main: Fast-forward
