Skip to content

feat(memo): 일정 메모에 마크다운 체크리스트와 버전 충돌 보호 추가 - #181

Closed
minbros wants to merge 2 commits into
devfrom
feature/memo-markdown-todo
Closed

minbros wants to merge 2 commits into
devfrom
feature/memo-markdown-todo

Conversation

@minbros

@minbros minbros commented Sep 17, 2026

Copy link
Copy Markdown
Member

변경 내용

  • 일정 메모에 Markdown/GFM 링크·자동 링크·체크리스트를 지원하고, 보기 화면의 체크박스 변경을 즉시 저장합니다. 기존 본문 저장과 줄바꿈을 유지하며 raw HTML과 안전하지 않은 링크를 차단합니다.
  • memoVersion/expectedMemoVersion으로 동시 수정을 검증합니다. 오래된 저장의 409 발생 시 최신 내용을 조회하고 초안을 보존하며, 명시적 재확인 후 저장합니다. 삭제·이동 시 초안 복구와 캐시/WS의 낮은 버전·지연 응답 보호를 적용합니다.

변경 이유

  • 메모를 체크리스트로 활용하면서 다른 편집자의 내용과 미저장 초안이 덮어써지지 않도록 합니다.
  • 백엔드와 조율한 배포가 필요합니다. expectedMemoVersion 필수 계약은 호환성을 깨는 변경입니다. 백엔드 feature/memo-version1307c070460c63ea25827d87156b9a993a8dbda1 API와 함께 적용해야 합니다. 현재 확인된 대응 백엔드 PR은 없습니다.

테스트

  • npm run lint — PASS, 오류 0개 / 기존 경고 4개
  • npm test — 전체 847 PASS / 기존 brand-assets 실패 3개로 FAIL
  • npm run build — PASS
  • 그 외 수동 검증: 실제 격리 환경에서 OAuth·Places·REST·WS, Markdown 작업 목록, 즉시 저장/새로고침 유지, 실제 409 복구, 독립 항목 저장, 시간만 변경 시 메모 보존, 삭제 후 초안 복구 PASS. 데스크톱 1440×900 / 모바일 390×844 검증 PASS.
  • 관련 집중 테스트 95개 PASS, 타입 검사 PASS.
  • 브라우저 미실행: 드래그 재정렬, 일차 간 이동, 강제 롤백, 지연 응답 역전 타이밍, 네트워크 재연결. 관련 집중 테스트 통과가 브라우저 검증을 대체하지는 않습니다.
  • 변경하지 않은 Travelpayouts 연동에서 config is not valid 콘솔 오류가 관찰되었습니다. 정확한 제공자 원인은 미확정이며, 검증한 메모 흐름에는 영향이 없었습니다.

- GFM 메모 렌더링과 체크리스트 즉시 저장을 지원
- memoVersion 기반 충돌·캐시 병합·초안 보존을 적용
- REST 및 STOMP 지연 응답과 재연결 동기화를 검증
@vercel

vercel Bot commented Sep 17, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
frontend-server Ready Ready Preview Sep 17, 2026 4:51pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Sep 17, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 6 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: fba86a06-206b-4cc8-9ad2-50bccab76a2c

📥 Commits

Reviewing files that changed from the base of the PR and between 095ae64 and c0d9b86.

📒 Files selected for processing (32)
  • src/app/(main)/plan/_components/itinerary/MemoMarkdown.tsx
  • src/app/(main)/plan/_components/itinerary/PlanItemMemoForm.test.tsx
  • src/app/(main)/plan/_components/itinerary/PlanItemMemoForm.tsx
  • src/app/(main)/plan/_components/itinerary/PlanItemMemoSave.test.tsx
  • src/app/(main)/plan/_components/itinerary/PlanItemTimeForm.test.tsx
  • src/app/(main)/plan/_components/itinerary/PlanItemTimeForm.tsx
  • src/app/(main)/plan/_components/itinerary/PlanPageView.tsx
  • src/app/(main)/plan/_components/itinerary/PlanPlaceCard.tsx
  • src/contexts/stomp/use-stomp-provider-effects.test.tsx
  • src/contexts/stomp/use-stomp-provider-effects.tsx
  • src/hooks/useMemoSave.ts
  • src/hooks/useRooms.ts
  • src/lib/api/errors.ts
  • src/lib/api/http.ts
  • src/lib/api/rooms/schedule-items.time.test.ts
  • src/lib/api/rooms/schedule-items.ts
  • src/lib/plan/memo-cache.test.ts
  • src/lib/plan/memo-cache.ts
  • src/lib/plan/memo-save.test.ts
  • src/lib/plan/memo-save.ts
  • src/lib/plan/memo-version.ts
  • src/lib/plan/schedule-bulk-hydration.ts
  • src/lib/plan/schedule-memo-races.test.ts
  • src/lib/plan/scheduleItemPlaces.test.ts
  • src/lib/plan/scheduleItemPlaces.ts
  • src/lib/plan/types.ts
  • src/lib/query-client.ts
  • src/lib/rooms.ts
  • src/lib/stomp/forced-room-exit-dispatch.ts
  • src/lib/stomp/schedules-dispatch.test.ts
  • src/lib/stomp/schedules-dispatch.ts
  • src/stores/plan-memo-drafts-store.ts

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.

- 기본 입력 컨트롤의 키보드 동작과 이벤트 전달을 유지
- 체크리스트 버튼의 포커스와 입력 동작 회귀 테스트 추가
@sonarqubecloud

Copy link
Copy Markdown

@minbros minbros closed this Sep 20, 2026
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