chore: test deploy snapshot

This commit is contained in:
2026-05-27 10:43:01 +09:00
parent c1d0f4c1db
commit 4c4b3c8d2c
78 changed files with 10392 additions and 2301 deletions

View File

@@ -7,7 +7,7 @@
"background_color": "#eff7fb",
"display": "standalone",
"lang": "ko",
"scope": "/",
"scope": "/play/apps",
"start_url": "/play/apps?app=e-reader",
"icons": [
{

View File

@@ -0,0 +1,21 @@
# 공유 리소스 관리 채팅 열기 Drawer
## 기능 설명
- 공유 리소스 관리 목록의 `열기` 버튼을 새 창 실행 대신 우측 `Drawer`로 열도록 변경했다.
- Drawer 폭은 `100vw`로 고정해 데스크톱과 모바일 모두 화면을 가득 채우는 슬라이드 오픈 형태로 맞췄다.
- Drawer 내부에는 공유 채팅 URL을 `iframe`으로 로드하고, 상단 액션에서 `새로고침``새 창`을 추가했다.
- 후속 조정으로 Drawer 상단 헤더 패딩과 타이틀 높이를 조금 줄여 본문 영역을 더 넓게 확보했다.
## 변경 범위
- `src/app/main/SharedResourceManagementPage.tsx`
- `src/app/main/SharedResourceManagementPage.css`
## 데이터/API 영향
- 신규 API 호출이나 데이터 스키마 변경은 없다.
- 기존 공유 채팅 URL 계산 로직을 그대로 사용하고, 표시 방식만 인앱 Drawer로 변경했다.
## 확인 포인트
- 목록 `열기` 버튼 클릭 시 Drawer가 오른쪽에서 전체 폭으로 열린다.
- 상세 패널의 `채팅창 열기`도 동일 Drawer를 연다.
- Drawer 내부 `새 창` 버튼은 기존 외부 창 열기 동작을 유지한다.
- Drawer 상단 헤더가 이전보다 낮아지고 iframe 본문 높이가 함께 맞춰진다.

View File

@@ -0,0 +1,17 @@
# 검증 요약
## 실행 결과
- `npm run build:test-app` 성공
- `npx tsc -b --pretty false` 실패
## 실패 사유
- 전체 타입체크 실패는 이번 수정과 무관한 저장소 기존 오류들 때문에 발생했다.
- 대표적으로 `src/app/main/MainChatPanel.tsx`, `src/app/main/pages/ChatSharePage.tsx`, `src/features/layout/draw/LayoutDrawPage.tsx` 등 다수 파일에서 기존 타입 오류가 남아 있다.
## 이번 변경 확인 범위
- `SharedResourceManagementPage`가 프로덕션 번들 기준으로 정상 빌드되는지 확인했다.
- 전체 폭 Drawer와 iframe 렌더링은 정적 빌드 성공으로 문법/번들 기준 이상 없음을 확인했다.
- Drawer 헤더 축소 후 iframe 최소 높이 계산도 함께 조정해 레이아웃 공백이 생기지 않도록 확인했다.
## 미실행 항목
- 브라우저 실화면 캡처와 모바일 스크린샷은 이번 턴에서 생성하지 못했다.

View File

@@ -0,0 +1,44 @@
# 공유채팅 채팅방 설정 정리
## 변경 목표
- 공유채팅방의 채팅방 설정 입력 항목이 많아도 부모 레이아웃이 흔들리지 않도록 전체폭 우측 Drawer 구조로 정리한다.
- 공유 링크 권한만으로도 채팅유형과 채팅 알림 수신 여부가 정상 저장/재조회되도록 맞춘다.
- 공통 문맥과 방 전용 문맥이 "상속"과 "방 전용 override"를 구분해 저장되도록 정리한다.
## 변경 범위
- `src/app/main/pages/ChatSharePage.tsx`
- 채팅방 설정 UI를 `Modal`에서 `Drawer` + `Tabs` 구조로 변경
- 채팅유형, 공통 문맥, 방 전용 문맥, 채팅 알림, 보안 탭 분리
- 공유 스냅샷의 `conversation.chatTypeId`, `lastChatTypeId`, `notifyOffline` 우선 사용
- 공통 문맥 기본값 계산 시 빈 배열을 "없음"이 아니라 "채팅유형 기본값 상속"으로 처리
- `src/app/main/pages/ChatSharePage.css`
- 전체폭 Drawer 및 탭/카드형 설정 레이아웃 스타일 추가
- `src/app/main/mainChatPanel/chatUtils.ts`
- 공유 채팅방 설정 저장 API helper를 채팅유형/알림/비밀번호 통합 저장 형태로 확장
- 공유 스냅샷 `conversation` 필드에 채팅유형/알림 메타데이터 파싱 추가
- `etc/servers/work-server/src/routes/chat.ts`
- `/api/chat/shares/:token/room-settings`가 채팅유형/알림 수신까지 저장하도록 확장
- `/api/chat/shares/:token` 응답에 채팅유형/알림 상태 포함
- `etc/servers/work-server/src/services/chat-room-service.test.ts`
- 채팅방 컨텍스트 update field 계산 테스트 보강
## 저장/적용 기준
- 채팅유형
- 공유 스냅샷의 현재 `conversation.chatTypeId` 또는 `lastChatTypeId`를 우선 기준으로 사용한다.
- 저장 시 `chatTypeId`, `lastChatTypeId`, `contextLabel`을 함께 반영한다.
- 공통 문맥
- 선택값이 비어 있고 방 전용 override가 없으면 채팅유형 기본 공통 문맥을 상속한다.
- 선택값이 채팅유형 기본값과 동일하면 room override를 별도로 저장하지 않는다.
- 방 전용 문맥
- 제목/본문 중 하나라도 있으면 room context로 저장한다.
- 둘 다 비면 room context에서 제거한다.
- 채팅 알림
- 공유 링크 현재 클라이언트 기준 `notifyOffline`을 저장한다.
- 실제 푸시는 브라우저 권한과 전체 앱 알림 사용 상태가 모두 허용된 경우에만 수신된다.
## 확인 포인트
- 전체폭 Drawer가 열려도 부모 화면 레이아웃이 흔들리지 않는지
- 채팅유형을 바꾼 뒤 다시 설정을 열었을 때 방금 저장한 유형이 재표시되는지
- 공통 문맥을 비워 두면 채팅유형 기본 문맥 상속으로 동작하는지
- 방 전용 문맥 제목/본문 저장 후 다시 열었을 때 유지되는지
- 채팅 알림 토글 상태가 저장 후 공유 스냅샷 응답에 반영되는지

View File

@@ -0,0 +1,40 @@
# 공유채팅 채팅방 설정 정리 검증
## 실행 검증
- `npm run build:test-app`
- 결과: 성공
- 목적: 프런트 번들 및 타입 레벨 오류 확인
- `npm run build`
- 위치: `etc/servers/work-server`
- 결과: 성공
- 목적: 공유 채팅방 설정 API 변경 후 서버 타입/빌드 확인
## 분기 검증
- 채팅유형 저장
- `conversation.chatTypeId` 우선 사용
- `conversation.lastChatTypeId` fallback 사용
- 요청 이력(`targetRequest.chatTypeId`, `requests[].chatTypeId`) fallback 유지
- 공통 문맥 계산
- room override 있음: override 사용
- room override 비어 있음: 채팅유형 기본 공통 문맥 상속
- 저장값이 채팅유형 기본값과 동일: room override 제거
- 방 전용 문맥
- 제목만 입력: 저장 대상
- 본문만 입력: 저장 대상
- 제목/본문 모두 비움: room context 제거
- 채팅 알림
- 공유 링크 클라이언트 기준 `notifyOffline=true`: 알림 수신 대상
- `notifyOffline=false`: 현재 클라이언트 제외
- clientId 없음: 글로벌 `notify_offline` 필드 업데이트 분기 유지
- 비밀번호
- 새로 켜기 + 입력 없음: 경고
- 숫자 4자리 아님: 경고
- 유지시간 변경만 있는 경우: 저장
- 사용 안 함 전환: 기존 잠금 해제
## 테스트 메모
- `node --import tsx --test src/services/chat-room-service.test.ts` 전체 파일은 저장소 기존 실패 케이스가 이미 포함되어 있어 전체 green 상태는 아님
- 이번 변경과 직접 관련된 `buildChatConversationContextUpdateFields` 보강 케이스는 통과 확인
## 미실행 항목
- 실제 `preview.sm-home.cloud` 브라우저 캡처와 모바일 스크린샷은 이번 턴에서 수행하지 못함