채팅 UI 개편: 한 줄 티커 + 우측 사이드패널 채팅창

- 티커: 반투명 검은 가로 박스, 새 채팅을 한 줄씩 7초간 순차 표시,
  길면 말줄임(…) 처리. 접속 이후 도착한 메시지만 흘림
- 💬 버튼 → 기존 메뉴와 같은 우측 사이드패널로 전체 채팅창
  (히스토리 스크롤 + 말풍선 + 입력창, 내 메시지는 오른쪽 초록)
- SSE 연결은 chatClient 싱글톤(useSyncExternalStore)으로 티커·패널 공유
- 1:1 친구 채팅 로드맵을 docs/GAME_DESIGN.md 12절에 기록

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
이 커밋은 다음에 포함됨:
kjs
2026-08-14 16:47:10 +09:00
co-authored by Claude Fable 5
부모 6696e6bd54
커밋 8ef59a8215
5개의 변경된 파일과 239개의 추가작업 그리고 120개의 파일을 삭제
+16
파일 보기
@@ -217,3 +217,19 @@
2. **서버 연동**: DB 세이브 동기화 (Phase D). 친구 방문은 보류
3. **시간**: 날짜·낮/밤 없음, 항상 낮. 페이스는 체력·행복도로 조절
4. 이름: 랜덤+변경 가능 / 외형: 일러스트 확정 / 수용 초과: 입양 제한 유지
---
## 12. 소셜 기능 로드맵 (2026-08-14 추가)
현재 구현: **전체 채팅** — 우측 상단 반투명 검은 티커(새 채팅 한 줄씩, 말줄임 처리) + 💬 버튼으로 우측 사이드패널 채팅창. SSE 실시간, 닉네임+토큰 인증, 1.5초 쿨다운, 120자 제한.
### 친구 기능 구현 후 추가할 것 (예정)
1. **친구 시스템 선행 필요**: 친구 요청/수락, 친구 목록 (villages 테이블 기반)
2. **1:1 채팅**: 친구끼리만 가능
- 채팅 패널 상단에 탭 추가: `[전체] [친구1] [친구2] …` — 현재 ChatPanel은 이 확장을 염두에 둔 구조
- DB: chat_messages에 `recipient` 컬럼(NULL=전체 채팅) 추가하는 방향
- SSE 스트림에서 수신자 필터링 (본인 대상 메시지만 푸시)
- 안 읽은 메시지 뱃지 (티커/💬 버튼에 표시)
3. **연계 후보**: 친구 마을 방문(읽기 전용)과 함께 구현하면 시너지