---
title: "📓 작업일지 — 러닝 플랜 '실제기록 반영' 버그(routine_id 필터 제거)"
category: "worklog"
parent: "Claude Code 작업일지"
updated: "2026-07-08"
priority: "Medium"
purpose: "러닝 플랜의 실제 기록 반영 로직이 routine_id로 한정 조회되던 탓에 태깅 안 된 대부분의 실제 러닝이 0km로 보이던 버그를, 명세대로 '날짜별 전체 러닝'을 반영하도록 고친 기록."
read_when: ["러닝 플랜 실제기록", "loadActuals", "loadRecentRunStats", "routine_id 필터"]
document_type: "개발일지"
source_status: "generated"
knowledge_group: "03_history"
work_timestamp: "20260708_132014"
source_of_truth: "https://dallog-tools.hansbridge.co.kr/knowledge/"
context: "달록 본레포(ccy-hansbridge/dallog), 커밋 0385127(2026-07-08)."
---

# 작업일지 — 러닝 플랜 '실제기록 반영' 버그(routine_id 필터 제거)

> Codex의 "다른 플랜 기록이 섞일 수 있다"는 지적을 반영해 `routine_id`로 실제 러닝 기록을 한정했더니, 오히려 명세("날짜별 실제 러닝을 조회·합산")를 어기게 되고 실사용에서는 플랜에 안 묶인(미태깅) 러닝 기록 대부분이 0km로 보이는 결과를 낳았다. 이번 커밋에서 그 필터를 되돌렸다.

## 1. 무엇을 했나

### 원인
- `loadActuals`/`loadRecentRunStats`가 `.eq('routine_id', routineId)`로 조회를 한정 — 그 플랜에 태깅된 기록만 반영.
- 명세(§실제 기록 자동 반영)는 "플랜 태깅과 무관하게 그 날짜에 실제 뛴 러닝을 조회·합산"이 원칙인데, 이 필터가 명세 위반이었고 실사용 데이터 대부분이 미태깅이라 0km로 잘못 표시됨.

### 수정
- `src/lib/runningPlan.ts`: `loadActuals(start, end)`·`loadRecentRunStats(start, end)`에서 `routineId` 인자와 `.eq('routine_id', ...)` 조건을 제거. `is_record=false`(기록 아님) 제외 조건은 유지.
- `src/pages/RunningPlanPage.tsx`: 두 함수 호출부에서 `id`(routineId) 인자 제거.

## 2. 주요 변경 파일

| 파일 | 내용 |
|---|---|
| `src/lib/runningPlan.ts` | `loadActuals`·`loadRecentRunStats`에서 `routine_id` 필터 제거 |
| `src/pages/RunningPlanPage.tsx` | 위 두 함수 호출부 인자 변경 |

## 3. 관련 커밋

- `0385127` fix(running-plan): 실제기록 반영 버그 — routine_id 필터 제거(명세대로 날짜별 전체 러닝) (2026-07-08)

## 4. 남은 이슈

- 커밋 메시지 기준으로 별도 남은 이슈 언급 없음.
