Skip to content

feat: add interface font scaling and fix notification deep links - #34

Open
Yoonwoo-Ha wants to merge 2 commits into
devswha:mainfrom
Yoonwoo-Ha:fix/notification-deeplink-font-size
Open

feat: add interface font scaling and fix notification deep links#34
Yoonwoo-Ha wants to merge 2 commits into
devswha:mainfrom
Yoonwoo-Ha:fix/notification-deeplink-font-size

Conversation

@Yoonwoo-Ha

Copy link
Copy Markdown
Contributor

배경

두 가지 사용자 경험 문제를 함께 개선합니다.

  1. 외부 CLI 완료 알림을 눌렀을 때 해당 대화가 아니라 홈으로 이동할 수 있었습니다.
    • 외부 turn monitor가 실제 ChatMux 세션 ID 대신 내부 completion target alias를 URL에 넣고 있었습니다.
    • 이미 열린 iOS PWA에서는 WindowClient.navigate()가 거부되거나 무시되는 경우도 있었습니다.
  2. 외관 설정에는 파일 코드 에디터 글꼴 크기만 있었고, 채팅·세션 목록·설정 등 전체 인터페이스의 글꼴 크기를 조정할 방법이 없었습니다.

변경 사항

알림 딥링크

  • 외부 CLI 완료 알림 URL에 매핑된 실제 appSessionId만 사용합니다.
  • 아직 앱 세션으로 매핑되지 않은 generation은 존재하지 않는 /session/<alias> 대신 안전하게 /로 이동합니다.
  • service worker가 /session/:id에서 세션 ID를 추출해 알림 데이터에 보존합니다.
  • 알림 클릭 시 열린 클라이언트에 notification:navigate 메시지를 먼저 보내 SPA 라우팅을 수행합니다.
  • WindowClient.navigate()는 보조 경로로 유지하되, iOS에서 거부되어도 클릭 처리가 실패하지 않도록 했습니다.

글꼴 크기

  • 코드 에디터 설정값을 CodeMirror 본문과 gutter에 명시적으로 적용합니다.
  • 기본 코드 에디터 글꼴 크기를 외관 설정의 기본값과 동일한 14px로 맞췄습니다.
  • 외관 설정에 전체 글꼴 크기를 추가했습니다.
    • 작게: 14px / 87.5%
    • 중간: 16px / 100% (기존 UI와 동일한 기본값)
    • 크게: 18px / 112.5%
  • 채팅, 세션 목록, 설정, 버튼 및 상태/메타데이터 배지가 같은 비율을 유지하며 변경됩니다.
  • 선택값은 브라우저 localStorage에 저장하고 React 렌더링 전에 적용해 첫 화면의 크기 깜박임을 줄였습니다.
  • 10개 지원 언어에 설정 문구를 추가했습니다.

호환성

  • 기본값은 중간이므로 기존 사용자의 화면 크기는 바뀌지 않습니다.
  • 서버 DB 스키마나 마이그레이션 변경은 없습니다.
  • 코드 에디터의 세부 글꼴 크기 설정은 전체 인터페이스 설정과 별도로 유지됩니다.
  • 이미 기기에 표시된 과거 알림의 payload는 변경할 수 없으며 새로 생성되는 알림부터 정확한 딥링크가 적용됩니다.

검증

  • 외부 turn monitor 및 service worker 알림 회귀 테스트 23개 통과
  • 글꼴 크기 단위 테스트 3개 통과
  • npm run typecheck 통과
  • npm run lint 통과
  • npm run build 통과 (client/server/Rust core)
  • 실제 Chromium 계산 스타일 확인
    • 채팅 본문: 12.25px → 14px → 15.75px
    • 세션 제목: 12.25px → 14px → 15.75px
    • 고정 픽셀 상태 배지: 8.75px → 10px → 11.25px
  • 390×844 모바일 viewport에서 큰 글꼴 사용 시 가로 overflow 없이 설정 화면이 유지되는 것을 확인했습니다.

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.

2 participants