2026-06-17 PulseUp 작업일지입니다. 오늘은 4건의 작업을 진행했습니다.

운동 중 비활성 강제 로그아웃 방지

현상/기능

  • 월간프로그램 Play 후 리모컨/Electron으로 운동을 진행하는 동안 메인 웹페이지를 건드리지 않으면 90분 비활성 타임아웃으로 자동 로그아웃되는 문제 해결

작업

  • 원인 분석 결과 `useInactivityTimeout`(90분 무조작 강제 로그아웃)이 직접 원인. 의 `useInactivityTimeout` 호출부와 import를 주석 처리하여 비활성화. 토큰은 `sessionStorage` 기반이라 브라우저 종료 시 자동 로그아웃은 유지되고, idle 시 401은 refreshToken(7일) 자동 갱신으로 복구됨
  • **Web** · , `hooks/`

Main-Stress 라운드/Move 표시

현상/기능

  • Main-Stress 실행 중 MOVE가 `1→2→3→3→2→1`로 표시되어 문서 순서(`A1→A2→A3→C3→C2→C1`)와 맞지 않음
  • Main-Stress waterbreak 구간에서 다음 그룹 영상으로 미리 넘어가도록 변경

작업

  • Stress 전용 를 추가해 position prefix가 아니라 저장된 실행 순서의 6개 블록 기준으로 SET/MOVE와 그룹 프리로드를 계산하도록 분리. 첫 6개 운동은 MOVE `1→6`, 다음 6개 운동도 MOVE `1→6`으로 표시되도록 테스트 추가
  • waterbreak 진입 시 3분할 큐를 다음 그룹 첫 position으로 절대 seek하고 `_lastStressGroupIndex`를 갱신해 다음 운동 시작 시 중복 advance가 발생하지 않도록 조정. 상대 advance로 CD까지 밀릴 수 있던 경로를 제거했으며, 5분할은 패널별 큐 구조를 유지하기 위해 seek를 생략

Main-Loop 라운드/Move 표시

현상/기능

  • Main-Loop를 문서 순서(`Round 1~3: A1→A2→A3→C3→C2→C1`, `Round 4~6: B1→B2→B3→D3→D2→D1`) 기준으로 Stress처럼 전반 점검 및 수정
  • Main-Loop waterbreak 때 후반전 영상으로 넘어가지 않음
  • waterbreak 후 후반전 영상으로 이동한 상태에서 다음/이전 버튼을 누르면 A/C 영상으로 돌아감

작업

  • Loop 전용 를 추가해 라운드 안 저장 실행 순서 기준으로 영상 정렬과 MOVE를 계산하도록 분리. prefix 기반 역산으로 MOVE가 `1→2→3→3→2→1`처럼 깨질 수 있던 경로를 제거하고 waterbreak 중 다음 그룹 첫 position seek도 Stress와 동일하게 적용
  • Loop는 후반 판정을 position이 아니라 round 기준으로 해야 하므로, waterbreak 다음 운동의 raw position이 `C1`이어도 `round 4`이면 후반 대표 seek position `B1`로 변환해 좌 B/우 D 큐로 이동하도록 수정
  • 버튼 네비게이션의 공통 `broadcastQueueSeek`가 raw position(`C1` 등)을 그대로 보내던 문제를 수정. Loop일 때는 `round` 기준 반(1~3 전반, 4~6 후반)을 계산해 seek position을 `A{slot}` 또는 `B{slot}`로 변환하도록 `resolveLoopQueueSeekPosition`을 적용

workout_exercises 저장 로직 문서

현상/기능

  • Markdown `###` 단원이 인식되지 않는 깨진 양식 전체 리빌딩

작업

  • 깨진 코드 펜스, 미닫힌 볼드·표 앞 빈 줄 누락을 수정하고 AMRAP 예시를 `####` 하위 섹션으로 정리해 헤딩·목차가 정상 렌더링되도록 문서 재작성
  • **분석** · `workout_exercises_logic.md`