Files
reloop-v2/.claude/state/task-quality-gate.json
reloop 58719e329e feat: 문제풀이 UI 통일 + PDF→문제집 + 통계탭 삭제
- 통계 탭 삭제 (프론트 페이지/차트/네비 항목, 백엔드 stats 모듈은 대시보드용으로 유지)
- PDF 문제 분리 → 문제집 생성으로 변경 (ProblemSet + Problem 레코드)
  - ProblemSet에 sourceType, uploadedByUserId 추가
  - POST /problem-sets/create-from-pdf 엔드포인트
  - GET /problem-sets/my-uploads, DELETE /problem-sets/:id
  - exams 페이지에 '내가 만든 문제집' 섹션
- 문제 풀이 UI 통일
  - DrawingCanvas 공통 컴포넌트 추출 (필기모드)
  - 복습 페이지에 필기모드(캔버스+펜색상) 추가
  - 다시풀기 페이지에 필기모드+메모 추가
  - 처음풀기 페이지 난이도 슬라이더→3버튼(H/M/E)+SM-2 연동

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 10:17:12 +09:00

152 lines
3.2 KiB
JSON

{
"39": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:22:01Z"
},
"40": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:22:03Z"
},
"41": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:22:03Z"
},
"42": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:22:03Z"
},
"43": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:22:04Z"
},
"44": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:22:04Z"
},
"45": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:45:11Z"
},
"46": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:45:11Z"
},
"47": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:45:12Z"
},
"48": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:45:12Z"
},
"49": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:45:13Z"
},
"50": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:45:13Z"
},
"38": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T15:45:13Z"
},
"51": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T16:36:04Z"
},
"52": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T16:42:51Z"
},
"53": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T16:44:00Z"
},
"54": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T16:45:12Z"
},
"55": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T16:46:25Z"
},
"56": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T16:47:35Z"
},
"57": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T18:24:27Z"
},
"58": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T18:46:47Z"
},
"59": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T20:22:38Z"
},
"61": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-11T21:30:52Z"
},
"1": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-16T23:50:14Z"
},
"2": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-16T23:50:14Z"
},
"3": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-16T23:50:15Z"
},
"4": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-16T23:52:08Z"
},
"9": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-17T00:34:53Z"
},
"10": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-17T00:34:53Z"
},
"11": {
"failure_count": 0,
"last_action": "reset",
"updated_at": "2026-04-17T01:03:58Z"
}
}