Skip to content

[RELEASE] v0.0.2#221

Merged
kimminna merged 98 commits into
mainfrom
release/0.0.2
Jul 15, 2026
Merged

[RELEASE] v0.0.2#221
kimminna merged 98 commits into
mainfrom
release/0.0.2

Conversation

@kimminna

Copy link
Copy Markdown
Member

What's Changed

Full Changelog: v0.0.1...v0.0.2

yumin-kim2 and others added 30 commits July 14, 2026 05:22
- 통계 캘린더 헤더의 충돌 해결 중 깨진 JSX 구조를 수정했습니다

- 선택 날짜 표시 로직과 sticky 헤더 레이아웃을 함께 유지했습니다

- 변경된 날짜 유틸 경로에 맞게 import를 수정했습니다

- 통계 캘린더 헤더 간격을 margin 대신 gap으로 조정했습니다
…modal-api

# Conflicts:
#	apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_containers/HomeTodoContainer.tsx
#	apps/timo-web/components/todo-modal/create/CreateTodoModalContent.tsx
#	apps/timo-web/hooks/todo-modal/common/use-tag-field.tsx
#	apps/timo-web/hooks/todo-modal/detail/use-detail-todo-form.ts
#	apps/timo-web/utils/todo/tag-label.ts
- 해당 날짜 투두 총 개수가 20개 이상이면 Add task 클릭 시 모달을 열지 않고 안내 토스트를 노출했습니다
- Today/Home 화면의 Add task 버튼에 동일 로직을 적용했습니다
- 안내 토스트 문구를 완료 여부와 무관한 전체 개수 기준으로 수정했습니다
- 클릭이 동작하지 않는 생성 모달 체크박스에서 cursor-pointer를 제거했습니다
ehye1 and others added 16 commits July 15, 2026 13:17
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- public/favicon.png를 next.js metadata.icons에 연결해 브라우저 탭 파비콘을 표시했습니다.
- 정적 title/description을 generateMetadata로 전환해 로케일(en/ko)별 텍스트가 반영되도록 했습니다.
- metadataBase, Open Graph, Twitter Card, hreflang(alternates), robots, formatDetection 등 SEO 메타데이터를 추가했습니다.
- messages/en.json, messages/ko.json에 Metadata 네임스페이스를 추가했습니다.
- API 클라이언트가 실제로는 swagger-typescript-api가 아닌 Orval 기반임을 반영해 stack.md를 수정했습니다.
- Git Hooks를 Husky 단독이 아닌 Husky + lint-staged 조합으로 정정했습니다.
- SVG 아이콘 생성 방식을 SVG sprite에서 실제 사용 중인 SVGR로 수정했습니다.
- structure.md의 모노레포 트리에서 존재하지 않는 lib/를 제거하고 api/, containers/ 등 실제 디렉터리를 반영했습니다.
- components.md의 예시 도메인을 존재하지 않는 auth에서 실제 존재하는 focus 도메인으로 교체했습니다.
- commit.md의 config 스코프에 누락된 tailwind-config 패키지를 추가했습니다.
- tokens.md에 실제 CSS에는 있지만 문서화되지 않았던 Radius, Shadow, Z-Index, overlay 색상 토큰을 추가했습니다.
- withdrawConfirmTitle을 plain t() 대신 t.markup()으로 호출해 red 태그 미제공 에러를 해결했습니다
- 실사용처가 없는 logoutConfirmTitle 필드를 훅과 타입에서 제거했습니다
…modal

[FEAT] 설정 페이지 확인 모달 개선
- app/[locale]/layout.tsx는 locale 세그먼트까지의 params만 받아 하위 경로를 알 수 없는데도, alternates.canonical/languages와 openGraph.url을 항상 locale 루트 경로로 고정해 모든 하위 라우트가 홈 URL을 상속했습니다.
- 경로 종속 필드를 제거하고, locale에만 의존하는 openGraph 필드(type, siteName, title, description, locale, alternateLocale)는 유지했습니다.
- (main) 라우트 그룹은 AuthGuardProvider로 로그인이 필요한 개인화 화면이라 robots.index/follow를 false로 설정해 검색 엔진 노출에서 제외했습니다.
- 로그인 페이지에 generateMetadata를 추가해 로케일별 title/description과 경로 고유 canonical(/{locale}/login)을 설정했습니다. messages의 Login 네임스페이스에 title 키를 새로 추가했습니다.
- 약관 페이지에 generateMetadata를 추가해 type 쿼리 파라미터(SERVICE/PRIVACY)에 따라 기존 Settings.nav.policy/privacy 문자열을 재사용한 제목과 경로 고유 canonical(/{locale}/policy)을 설정했습니다.
[FEAT] 파비콘·SEO 메타데이터 설정 및 아키텍처 문서 동기화
- api/common, types/, hooks/ 루트에 흩어져 있던 스키마·타입·훅을 도메인별 폴더로 이동했습니다
- 폴더 이동으로 깨진 import 경로를 전체 수정했습니다
- 쿼리/뮤테이션 훅 11개의 파일명·함수명을 -query/-mutation, ~Query/~Mutation 컨벤션으로 통일했습니다
- naming.md에 TanStack Query 훅의 파일명·함수명 컨벤션을 추가했습니다
- timo-api-integration 스킬의 _queries 훅 작성 가이드와 예시를 새 컨벤션에 맞게 갱신했습니다
…ping

[FIX] 캘린더 팝업 하단 날짜 잘림 수정
…convention

[REFACTOR] 폴더 구조 정리 및 쿼리/뮤테이션 훅 네이밍 컨벤션 적용
[FIX] 상세 TODO 조회/수정/삭제 API 연결 개선
@vercel

vercel Bot commented Jul 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
timo Ready Ready Preview, Comment Jul 15, 2026 6:55am

Request Review

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@kimminna, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 25 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5f16aff9-48a1-4a25-8de4-8e3dd0e71bc1

📥 Commits

Reviewing files that changed from the base of the PR and between 684b5ac and 4a572f5.

⛔ Files ignored due to path filters (8)
  • apps/timo-web/api/generated/endpoints/terms/terms.ts is excluded by !**/generated/**
  • apps/timo-web/api/generated/endpoints/terms/terms.zod.ts is excluded by !**/generated/**
  • apps/timo-web/api/generated/models/baseResponseTermsDetailResponse.ts is excluded by !**/generated/**
  • apps/timo-web/api/generated/models/getTermsByConditionParams.ts is excluded by !**/generated/**
  • apps/timo-web/api/generated/models/index.ts is excluded by !**/generated/**
  • apps/timo-web/api/generated/models/termsDetailResponse.ts is excluded by !**/generated/**
  • apps/timo-web/api/generated/models/termsListResponse.ts is excluded by !**/generated/**
  • apps/timo-web/public/favicon.png is excluded by !**/*.png
📒 Files selected for processing (105)
  • .agents/skills/api/timo-api-integration/SKILL.md
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_components/todo-card/HomeTodoCard.tsx
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_containers/HomeTodoContainer.tsx
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_containers/todo-card/HomeDayHeaderContainer.tsx
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_hooks/use-home-todos-by-date.ts
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_queries/use-home-view-query.ts
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_types/home-view-type.ts
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_types/todo-type.ts
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_components/TodayTodoCard.tsx
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_containers/TodayDateHeaderContainer.tsx
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_containers/TodayTodoCardContainer.tsx
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_containers/TodayTodoListContainer.tsx
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_hooks/todo-modal/use-create-todo-submit.ts
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_hooks/useTodayTodoList.ts
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_queries/use-today-query.ts
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_types/today-type.ts
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/page.tsx
  • apps/timo-web/app/[locale]/(main)/focus/_hooks/use-focus-session.ts
  • apps/timo-web/app/[locale]/(main)/focus/_queries/use-focus-todo-query.ts
  • apps/timo-web/app/[locale]/(main)/layout.tsx
  • apps/timo-web/app/[locale]/(main)/settings/_components/account/SettingsProfileView.tsx
  • apps/timo-web/app/[locale]/(main)/settings/_containers/account/SettingsLogoutModalContainer.tsx
  • apps/timo-web/app/[locale]/(main)/settings/_containers/account/SettingsProfileContainer.tsx
  • apps/timo-web/app/[locale]/(main)/settings/_containers/terms/SettingsTermsContainer.tsx
  • apps/timo-web/app/[locale]/(main)/settings/_containers/withdrawal/SettingsWithdrawModalContainer.tsx
  • apps/timo-web/app/[locale]/(main)/settings/_containers/withdrawal/SettingsWithdrawalContainer.tsx
  • apps/timo-web/app/[locale]/(main)/settings/_hooks/account/use-settings-profile-labels.ts
  • apps/timo-web/app/[locale]/(main)/settings/_hooks/account/use-settings-profile.ts
  • apps/timo-web/app/[locale]/(main)/settings/_queries/account/use-logout-mutation.ts
  • apps/timo-web/app/[locale]/(main)/settings/_queries/withdrawal/use-withdraw-mutation.ts
  • apps/timo-web/app/[locale]/(main)/settings/_types/account/profile-type.ts
  • apps/timo-web/app/[locale]/(main)/statistics/_components/StatisticsCalendar.tsx
  • apps/timo-web/app/[locale]/(main)/statistics/_components/StatisticsSidePanel.tsx
  • apps/timo-web/app/[locale]/(main)/statistics/_containers/StatisticsCalendarContainer.tsx
  • apps/timo-web/app/[locale]/(main)/statistics/_containers/StatisticsContainer.tsx
  • apps/timo-web/app/[locale]/(main)/statistics/_mocks/statistics-calendar.ts
  • apps/timo-web/app/[locale]/(main)/statistics/_queries/.gitkeep
  • apps/timo-web/app/[locale]/(main)/statistics/_queries/use-statistics-query.ts
  • apps/timo-web/app/[locale]/(main)/statistics/_utils/format-statistics-date.ts
  • apps/timo-web/app/[locale]/layout.tsx
  • apps/timo-web/app/[locale]/login/page.tsx
  • apps/timo-web/app/[locale]/oauth/callback/_containers/OauthCallbackContainer.tsx
  • apps/timo-web/app/[locale]/policy/_containers/PolicyContainer.tsx
  • apps/timo-web/app/[locale]/policy/page.tsx
  • apps/timo-web/components/layout/sidebar/time/TimeboxPanel.tsx
  • apps/timo-web/components/layout/sidebar/time/TimerPanel.tsx
  • apps/timo-web/components/toast/AnimatedToast.tsx
  • apps/timo-web/components/todo-modal/create/CreateTodoModalContent.tsx
  • apps/timo-web/components/todo-modal/create/CreateTodoTaskFields.tsx
  • apps/timo-web/components/todo-modal/detail/DetailTodoMemoField.tsx
  • apps/timo-web/components/todo-modal/detail/DetailTodoModalContainer.tsx
  • apps/timo-web/components/todo-modal/detail/DetailTodoModalContent.tsx
  • apps/timo-web/components/todo-modal/detail/DetailTodoTaskFields.tsx
  • apps/timo-web/containers/timer/StopCompleteModalContainer.tsx
  • apps/timo-web/containers/todo-modal/create/CreateTodoModalContainer.tsx
  • apps/timo-web/containers/todo-modal/detail/DetailTodoModalContainer.tsx
  • apps/timo-web/hooks/timer/use-active-timer.ts
  • apps/timo-web/hooks/timer/use-timer-actions.ts
  • apps/timo-web/hooks/timer/use-timer-overtime.ts
  • apps/timo-web/hooks/timer/use-timer-query-invalidation.ts
  • apps/timo-web/hooks/todo-modal/common/use-tag-field.tsx
  • apps/timo-web/hooks/todo-modal/create/use-create-todo-submit.ts
  • apps/timo-web/hooks/todo-modal/create/use-icon-field.ts
  • apps/timo-web/hooks/todo-modal/create/use-repeat-field.ts
  • apps/timo-web/hooks/todo-modal/create/use-subtask-field.ts
  • apps/timo-web/hooks/todo-modal/create/use-time-field.ts
  • apps/timo-web/hooks/todo-modal/create/use-title-field.ts
  • apps/timo-web/hooks/todo-modal/detail/use-delete-todo-submit.ts
  • apps/timo-web/hooks/todo-modal/detail/use-detail-subtask-field.ts
  • apps/timo-web/hooks/todo-modal/detail/use-detail-todo-form.ts
  • apps/timo-web/hooks/todo-modal/detail/use-detail-todo-icon-submit.ts
  • apps/timo-web/hooks/todo-modal/detail/use-detail-todo-patch-handlers.ts
  • apps/timo-web/hooks/todo-modal/detail/use-detail-todo-text-auto-save.ts
  • apps/timo-web/hooks/todo-modal/detail/use-update-todo-submit.ts
  • apps/timo-web/messages/en.json
  • apps/timo-web/messages/ko.json
  • apps/timo-web/next.config.js
  • apps/timo-web/providers/locale/LanguageSyncProvider.tsx
  • apps/timo-web/providers/overlay/OverlayProvider.tsx
  • apps/timo-web/queries/auth/use-my-profile-query.ts
  • apps/timo-web/queries/settings/use-terms-query.ts
  • apps/timo-web/queries/tag/use-create-tag-mutation.ts
  • apps/timo-web/queries/tag/use-delete-tag-mutation.ts
  • apps/timo-web/queries/tag/use-tags-query.ts
  • apps/timo-web/queries/time-box/use-time-boxes-query.ts
  • apps/timo-web/queries/use-terms.ts
  • apps/timo-web/schemas/auth/user-profile-schema.ts
  • apps/timo-web/schemas/settings/terms-schema.ts
  • apps/timo-web/schemas/tag/tag-schema.ts
  • apps/timo-web/schemas/timebox/timebox-schema.ts
  • apps/timo-web/schemas/timer/timer-schema.ts
  • apps/timo-web/schemas/todo/todo-schema.ts
  • apps/timo-web/utils/todo/detail-todo-update-request.ts
  • apps/timo-web/utils/todo/todo-time.ts
  • docs/architecture/components.md
  • docs/architecture/stack.md
  • docs/architecture/structure.md
  • docs/conventions/commit.md
  • docs/conventions/naming.md
  • docs/design/tokens.md
  • packages/timo-design-system/src/components/button/play-button/PlayButton.tsx
  • packages/timo-design-system/src/components/calendar/Calendar.tsx
  • packages/timo-design-system/src/components/layout/modal/Modal.tsx
  • packages/timo-design-system/src/lib/index.ts
  • packages/timo-design-system/src/lib/modal-stack-registry.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/0.0.2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added ⏰ Timo-web Timo 웹 서비스 ⌚ Timo-Design-system Timo 디자인 시스템 labels Jul 15, 2026
@github-actions github-actions Bot added the ♦️ 민아 민아상 label Jul 15, 2026
@kimminna kimminna added the 🎉 Deploy 배포 작업 label Jul 15, 2026
@github-actions

Copy link
Copy Markdown

Timo Performance Report

Bundle Size — timo-web
라우트 크기 First Load JS
/[locale]/home 210.11 kB 🔴 415.97 kB
/[locale]/today 194.23 kB 🔴 400.09 kB
/[locale]/focus 160.03 kB 🔴 365.89 kB
/[locale]/settings 166.58 kB 🔴 372.43 kB
/[locale]/statistics 232.90 kB 🔴 438.76 kB
/[locale]/[...rest] 0 B 🟡 205.86 kB
/[locale]/login 212.93 kB 🔴 418.78 kB
/[locale]/oauth/callback 119.64 kB 🟡 325.50 kB
/[locale]/onboarding 232.88 kB 🔴 438.73 kB
/[locale] 118.95 kB 🟡 324.81 kB
/[locale]/policy 125.08 kB 🟡 330.93 kB

공유 번들: 205.86 kB
🟢 < 200kB  |  🟡 < 350kB  |  🔴 ≥ 350kB (First Load JS · gzip)

Lighthouse — timo-web
URL Perf A11y LCP CLS TBT
/en/home 🔴 54 🟢 95 🔴 15.6s 🟢 0.000 🔴 843ms
/en/today 🔴 63 🟢 95 🔴 15.6s 🟢 0.000 🟡 473ms
/en/focus 🔴 58 🟢 95 🔴 15.3s 🟢 0.000 🔴 635ms
/en/statistics 🔴 61 🟢 95 🔴 15.0s 🟢 0.000 🟡 508ms

Perf ≥ 70 / A11y ≥ 85 목표
LCP 🟢 < 2.5s 🟡 < 4s 🔴 ≥ 4s  |  CLS 🟢 < 0.1 🟡 < 0.25 🔴 ≥ 0.25  |  TBT 🟢 < 200ms 🟡 < 600ms 🔴 ≥ 600ms

Image Optimization — timo-web
파일 크기 포맷 상태
favicon.png 27.84 kB PNG ⚠️ 🟢
images/google-calendar.png 36.20 kB PNG ⚠️ 🟢
images/google-logo.png 26.79 kB PNG ⚠️ 🟢

총 3개 · 90.84 kB  |  🟢 < 200KB  |  🟡 < 500KB  |  🔴 ≥ 500KB
⚠️ 3개 파일 WebP/AVIF 변환 권장

측정 커밋: e1efb1a

@kimminna
kimminna merged commit 2d633f2 into main Jul 15, 2026
16 checks passed
@kimminna
kimminna deleted the release/0.0.2 branch July 15, 2026 07:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⌚ Timo-Design-system Timo 디자인 시스템 ⏰ Timo-web Timo 웹 서비스 ♦️ 민아 민아상 🎉 Deploy 배포 작업

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants