Skip to content

fix(core): 실시간 연결이 끊겼다가 다시 붙으면 새로 고치지 않아도 목록을 다시 읽음 (SIL-74) - #54

Merged
space-angel merged 1 commit into
mainfrom
fix/sil-74-realtime-reconnect
Oct 15, 2026
Merged

space-angel merged 1 commit into
mainfrom
fix/sil-74-realtime-reconnect

Conversation

@space-angel

Copy link
Copy Markdown
Contributor

관련 이슈

SIL-74 [개발] 웹 앱 화면 만들기 (A1~A4)

무엇을 바꿨나요

  • watchPendingChecks(packages/core/src/data/notify.ts): 끊긴 적이 있는데 다시 연결되면(SUBSCRIBED) onChange를 불러요. 웹 앱은 그때 끊김 안내를 지우고 목록을 다시 읽어요. 끊긴 사이에 온 새 확인할 변경은 OS 알림도 떠요.
  • 끊김 안내 끝부분을 "새로 고치면 다시 연결해요." → "다시 연결하고 있어요."로 바꿨어요.
  • packages/core/src/data/notify.test.ts 새로 추가: 끊김 → 다시 연결 순서에서 onChange가 한 번만 불리는지 확인해요.
  • packages/core/README.md, apps/web/src/api/types.ts 설명 한 줄씩 고침.

왜 바꿨나요

웹 앱에 "새 확인할 변경을 바로 받지 못하고 있어요 (socket closed: 1006). 새로 고치면 다시 연결해요."가 자주 뜨고 사라지지 않았어요.
연결은 Supabase가 알아서 다시 붙이는데, 화면은 끊김만 보고 다시 붙음은 보지 않아서 안내가 남아 있었어요. 사람이 새로 고치지 않아도 되게 하려고 바꿨어요 (app.notify.realtime, notify.error.not-empty는 그대로 지켜요: 끊긴 동안은 안내가 떠요).

어떻게 확인했나요

  • pnpm check 통과 (vitest 229 통과·1 건너뜀, notify 78 통과)
  • http://localhost:5173/?me=신지 (팀 DB)에서 실시간 연결을 일부러 끊어 봄: 0.25초 뒤 안내가 뜨고, 1.5초 뒤 다시 연결되면서 안내가 저절로 사라짐

직접 확인하지 못한 부분

  • 창이 안 보이는 동안(최소화, 뒤에 있는 탭)에는 연결 라이브러리(phoenix)가 일부러 다시 연결하지 않아요. 창이 다시 보이면 1~2초 안에 붙어요. 그래서 창을 뒤에 둔 동안 끊기면 다시 볼 때까지 OS 알림이 오지 않아요. 끊기는 횟수를 줄이는 worker: true 설정은 따로 시험해서 다음 작업으로 나눠요.
  • 실제 와이파이 끊김·노트북 잠자기에서 다시 붙는 것은 직접 보지 않았어요 (위 시험은 브라우저에서 연결을 직접 닫는 방식).
  • 설치한 앱(PWA, 4173) 창에서는 확인하지 않았어요.

🤖 Generated with Claude Code

끊김 안내(socket closed: 1006)가 다시 연결된 뒤에도 남아 있던 문제를 고쳐요.
다시 연결되면 onChange를 불러 안내를 지우고 끊긴 사이에 온 변경을 다시 읽어요.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@space-angel
space-angel merged commit 14eb619 into main Oct 15, 2026
@github-actions

Copy link
Copy Markdown

바뀐 결정 사항 찾기 · PR #54

지금은 결정 사항을 저장하지 않고 결과만 알려 주는 기간이에요. 저장했다면 아래처럼 했을 거예요.

바뀐 결정 사항이 없어요. (살펴본 영역: app, notify)

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