Skip to content

umm v0.67.1

Choose a tag to compare

@github-actions github-actions released this 03 Sep 08:32
· 44 commits to main since this release
cd49e75

v0.67.1 — 끝난 로그인을 느린 네트워크라고 부르던 배너

탭을 열어 둔 채 세션이 만료되면, 오프라인 큐는 그 자리에서 멈춥니다. 멈추는 것 자체는
맞습니다 — 뒤에 선 변경들도 같은 쿠키를 같은 서버로 가져가니 답은 같습니다. 문제는
멈췄다고 아무도 말하지 않았다는 것입니다.

    세션이 만료된 채로 글을 쓰다가 오프라인이 됨

            전                              후
    ━━━━━━━━━━━━━━━━━━━━━━      ━━━━━━━━━━━━━━━━━━━━━━
    401 Unauthorized             401 Unauthorized
    ↓                            ↓
    flush 중단 (조용히)            flush 중단 + 이유를 남김
    ↓                            ↓
    "2개 변경이 연결을             "2개 변경이 다시 로그인하기를
     기다리는 중"                   기다리는 중"  [다시 로그인]
    [지금 동기화] ← 눌러도          ↓
     같은 401, 아무 일도 없음       로그인 화면 → 로그인 → 자동 전송

배너에는 "남은 변경"이라는 상태 하나뿐이었습니다

큐가 비지 않는 이유는 세 가지인데, 배너의 문장은 v0.66.3까지 두 가지밖에 없었습니다.

  • 연결이 없다 — 저절로 풀립니다. 기다리면 됩니다.
  • 겹침 결정을 기다린다 — 사람만 풀 수 있습니다. v0.66.3에서 분리했습니다.
  • 세션이 끝났다 — 사람만 풀 수 있는데, 연결 대기로 표시되고 있었습니다.

세 번째는 지금 동기화를 아무리 눌러도 같은 401을 다시 받습니다. 재시도 타이머도 걸리지
않습니다(걸어도 소용없으니 맞는 판단입니다). 그래서 그 사람은 이미 도착해 있는 것을
기다리라는 말을 듣고
, 자기 글을 움직일 수 있는 단 하나의 행동 — 다시 로그인 — 은 끝내
듣지 못했습니다.

flush가 왜 멈췄는지 기록합니다

offlineBlockReason()이 마지막 flush의 판정을 돌려줍니다. flush마다 새로 정해지므로,
한때 참이었던 것이 아니라 지금의 큐를 설명합니다.

응답 판정
401 signed-out 세션이 끝났습니다
403 refused 이 계정으로는 이 변경을 받지 않습니다

두 경우 모두 그 자리에서 알림도 함께 띄웁니다. 403은 서버가 준 이유를 그대로 전하고,
401은 되풀이할 만한 이유가 없으므로 무엇을 하면 되는지를 말합니다.

배너는 할 수 있는 일을 내놓습니다

상태 배너
오프라인 오프라인 · {n}개 변경을 안전하게 보관 중
온라인, 보낼 변경 {n}개 변경이 연결을 기다리는 중 · 지금 동기화
온라인, 붙잡힌 충돌 {n}개 변경이 겹침 해결을 기다리는 중 · 겹침 확인
세션 만료 {n}개 변경이 다시 로그인하기를 기다리는 중 · 다시 로그인
계정 거부 {n}개 변경을 지금 계정으로 보낼 수 없음 · 다시 시도

다시 로그인은 세션을 다시 읽습니다. 정말로 끝났다면 앱이 로그인 화면으로 돌아가고,
로그인하면 배너가 다시 뜨면서 큐가 저절로 나갑니다. 아직 살아 있었다면 화면은 그대로
있습니다 — 확인이 손해를 끼치지 않습니다.

401·403은 큐 전체를 세우므로 그때는 지금 동기화를 내놓지 않습니다. 보낼 수 없는 것을
보내겠다는 버튼은, v0.66.3이 충돌에서 없앤 것과 같은 빈 버튼입니다.

배너는 이제 umm:offline-sync도 듣습니다. flush는 재시도 타이머에서도, 다른 화면에서도
돌기 때문에, 이것이 없으면 큐가 막힌 이유는 이 배너에서 직접 누른 동기화 뒤에만
보였습니다.

확인한 것

✓ 401은 큐를 세우고, 뒤의 변경은 시도조차 하지 않음 (fetch 1회)
✓ 세션 만료가 연결 대기가 아니라 로그인 대기로 표시됨
✓ 알림이 "다시 로그인"이라고 말함
✓ 다시 로그인한 뒤 같은 큐가 그대로 나가고 판정이 사라짐
✓ 403은 로그인 탓으로 돌리지 않고 다른 문장·다른 버튼을 씀
✓ 막힌 큐에는 `지금 동기화`가 나오지 않음
바꾼 것 잡은 것
flush가 멈춘 이유를 남김 조용히 멈춰 영원히 서 있던 큐
세션 만료를 연결 대기와 나눠 표시 이미 있는 연결을 기다리라는 말
다시 로그인으로 세션을 다시 읽음 로그인 화면으로 갈 길이 없던 만료 세션

전체 검증: go vet ./... · go test ./... · 변형 검출(옛 동작으로 되돌리면 새 시험
4개가 전부 실패) · vitest 156개 · oxlint · Prettier · tsc · i18n 975키 · 버전 일관성

What's Changed

  • Release v0.66.2 walk the export menu in a browser by @hkjang in #134
  • auto-improve: Release v0.67.1 a queue told to wait for a connection it has by @hkjang in #137

Full Changelog: v0.66.3...v0.67.1