Skip to content

🐛 fix: 타입 오류·타임존 버그 정리 + 테스트 추가 + 리뷰 워크플로 시크릿 분리 - #7

Open
za0012 wants to merge 4 commits into
Nextsfrom
fix/typecheck-tests-ci
Open

🐛 fix: 타입 오류·타임존 버그 정리 + 테스트 추가 + 리뷰 워크플로 시크릿 분리#7
za0012 wants to merge 4 commits into
Nextsfrom
fix/typecheck-tests-ci

Conversation

@za0012

@za0012 za0012 commented Jul 30, 2026

Copy link
Copy Markdown
Owner

자동 리뷰 리포트(2026-07-03)의 지적 중 유효한 항목을 실제로 처리합니다.

1. tsc 타입 오류 12건 → 0

studyStore(6)·MakeStudy 복구·Sidebar·TagSection·problems/page·calendar(tablemonth_grid). 12번째 Logo.pngnext-env.d.ts 미생성 환경 문제로 next build가 재생성하며 해소.

2. 히트맵·라인차트 타임존 버그 수정 + 테스트

  • toISOString()(UTC) → date-fns format(로컬)로 교체. KST에서 말일이 07-30으로 밀려 07-31이 누락되던 문제 수정.
  • LineChart 범위 -5..0으로 조정(마지막 항목=기준월), new Date(key) 라벨 밀림 제거.
  • hook.test.ts 2개 추가(12 케이스). beforeAllTZ=Asia/Seoul 고정해 UTC로 강제되는 bun test에서도 KST 회귀를 잡음.

3. 리뷰 워크플로 시크릿 분리 (보안)

리포트 6) 지금 바로 볼 것 #1: PR 코드가 secrets와 함께 실행되던 구조를 분리.

  • checks: PR 코드 실행(lint/typecheck/test/build), secrets 미주입. 브랜치 보호 필수 체크 대상.
  • ai-review: LLM·publish. secrets 필요 → environment 승인 게이트 + --skip-checks로 코드 실행 없이 수행.

검증 (로컬)

  • tsc --noEmit 0건 · bun run test 12 pass · next build 통과
  • 하네스(bun run review -- --skip-agents --fail-on P1) exit 0 (build·typecheck·test 통과, lint는 P2라 비차단)

lint(biome) 잔여 경고는 P2라 이 게이트를 막지 않으며 별도로 정리 예정입니다.

🤖 Generated with Claude Code

za0012 and others added 4 commits July 31, 2026 00:31
- studyStore: 초기 null 상태를 StoredStudy(nullable)로 타입 지정 (6건)
- MakeStudy: 주석만 남아 모듈 인식 안 되던 것을 createStudy 흐름으로 복구
- Sidebar: enabled 가드가 있는 getStudyMembers 인자 타입 정리
- TagSection: useWatch 결과를 string[]로 명시(+미사용 import/변수 제거)
- problems/page: members undefined 방어, 미사용 타입 제거, 스켈레톤 key 안정화
- calendar: react-day-picker v10에 없는 table 키를 month_grid로 교체

tsc --noEmit 0건, next build 통과 확인.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- 두 훅의 toISOString(UTC) → date-fns format(로컬)로 교체해 KST에서
  말일 누락·월 밀림 버그를 수정
- LineChart 범위를 -5..0으로 조정해 마지막 항목이 기준월이 되도록 수정
- today를 인자(기본값 new Date())로 받게 해 테스트에서 날짜 주입 가능,
  호출부는 그대로 동작
- hook.test.ts 2개 추가: 말일 포함·365일·빈날 0·getColor 경계값 /
  6개월·마지막=기준월·라벨↔값 매핑. beforeAll로 TZ=Asia/Seoul 고정
- tsconfig에서 *.test.ts 제외(bun:test는 bun test가 검증, tsc 0 유지)

bun test 12 pass, tsc 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
리포트의 보안 지적(PR 코드가 secrets와 함께 실행됨)을 정리한다.
- checks: PR 코드를 실행하는 검증(lint/typecheck/test/build). secrets 미주입.
  브랜치 보호의 필수 체크 대상. 빌드 프리렌더용 NEXT_PUBLIC placeholder 주입.
- ai-review: LLM 리뷰 + Notion/GitHub publish. secrets 필요.
  environment(ai-review) 승인 게이트 뒤에 두고 --skip-checks로 코드 실행 없이 수행.
  설치 단계에는 secrets 미노출.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- test 스크립트의 glob(./src/**/*.test.ts)이 Linux 셸에서 확장되지 않아
  "no matches"로 실패 → `bun test src`(디렉터리 탐색, 크로스플랫폼)로 변경.
  TZ=Asia/Seoul을 프로세스 시작 시 고정해 KST 회귀 테스트를 보장.
- typecheck(tsc)가 next build 생성물(next-env.d.ts/.next types)에 의존하는데
  fresh 체크아웃에서 build보다 먼저 돌아 Logo.png 타입을 못 찾던 문제 →
  워크플로 checks에 REVIEW_CHECKS=lint,build,typecheck,test로 build 선행.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@za0012
za0012 deployed to ai-review July 30, 2026 15:59 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown

자동 PR 코드 리뷰

  • 실행 유형: PR 리뷰
  • 생성 시각: 2026-07-30T15:59:30.654Z
  • 기준 커밋: 8d4c24d6bb349045140caf41872afae0d8c24e0a
  • 대상 커밋: 0dcb2a52b394b3f3a72141525bca77519cfc856b
  • 변경 파일 수: 13
  • 발견 항목 수: 0
  • 이번 PR 영향 가능 항목: 0
  • 기존 실패 추정 항목: 0

검증 결과

이번 PR 영향 가능 항목

이번 PR 변경 파일에서 직접 발생한 것으로 보이는 항목은 없습니다.

기존 실패로 추정되는 항목

기존 실패로 분류된 항목은 없습니다.

경고

  • OpenAI review skipped because OPENAI_API_KEY is missing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant