Skip to content

umm v0.66.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 13:45
· 55 commits to main since this release
9f53164

v0.66.0 — 다시 시도가 같은 발표를 만듭니다

발표 자료 만들기는 호출 두 번입니다. Ptium이 덱을 열고, umm이 그 덱에 덱 소스를 넣습니다.
두 번째가 실패하면 빈 덱이 Ptium에 남고, umm은 그 덱에 다시 시도를 제안합니다 — 버튼을
다시 누르면 빈 덱이 하나 더 생기기 때문입니다(v0.60.0).

그 다시 시도가 다른 발표를 만들고 있었습니다.

    생각 6개를 골라 20장으로 요청 → Ptium 시간 초과 → 다시 시도

            전                                후
    ━━━━━━━━━━━━━━━━━━━━━━━━      ━━━━━━━━━━━━━━━━━━━━━━━━
    같은 덱에 다시 넣기            같은 덱에 다시 넣기
      공간 전체                      고른 생각 6개
      분량 제한 없음                 20장
      묶음 이름·부 나누기 꺼짐        켜 둔 그대로
      아무 말도 없음                 요청한 그 발표

공간은 다시 읽고, 요청은 잃어버렸습니다

다시 시도가 저장된 소스를 그대로 다시 보내지 않는 것은 의도한 것입니다. 실패한 뒤로
생각이 바뀌었을 가능성이 높고, 옛 소스를 되살리면 슬라이드에 지난 문장이 올라갑니다. 그래서
공간을 다시 컴파일합니다.

바뀐 것은 공간이지 요청이 아닙니다. 그런데 요청은 실패한 그 HTTP 호출 안에만 있었고,
다시 시도 버튼은 아무것도 싣고 가지 않습니다. 그 결과 선택·분량 제한·스위치가 전부 기본값
으로 되돌아간 채, 같은 제목으로, 같은 덱 안에 컴파일됐습니다. 여섯 개를 고른 사람이 공간
전체를 받았고, 20장을 말한 사람이 제한 없는 덱을 받았습니다.

가장 나쁜 부분은 조용하다는 것입니다. 화면에는 다시 시도를 눌렀고 성공했다고만 적힙니다.

요청을 덱 옆에 적어 둡니다

presentation_links.request (마이그레이션 024). trimmed_count를 다시 계산하지 않고
저장해 둔 것과 같은 이유입니다 — 누군가 다시 시도를 누르는 시점에 무엇을 요청했는지 아는
것은 이 행뿐
입니다.

  • 데이터베이스에는 불투명합니다: Ptium의 덱 id를 umm이 해석하지 않는 것과 같습니다.
    형태는 컴파일러가 소유하고, 저장소는 보관만 합니다.
  • 공간과 제목은 여기에 넣지 않습니다: 이미 같은 행의 열입니다. 두 곳에 적으면 두 답이
    어긋날 수 있습니다.
  • 응답으로 나가지 않습니다: 지나간 요청의 기록이지, 지금 보고 있는 덱의 필드가 아닙니다.
  • 필요한 한 곳에서만 읽습니다: 실패한 덱을 불러올 때. 목록을 그리려고 실어 보내지
    않습니다.

모델을 부르는 스위치 둘도 그대로 둡니다

묶음 이름 짓기와 부 나누기는 게이트웨이를 부르고, 덱을 매번 같지 않게 만듭니다. 그래도
다시 시도에서 조용히 꺼 버리지 않습니다. 다시 시도는 요청한 발표를 만드는 일이고,
스위치를 빼면 이 릴리스가 없애려는 바로 그 조용한 바꿔치기를 다시 하는 셈입니다. 모델이 두
번째에 다르게 이름 붙일 수 있다는 것은 모델에게 제목을 맡긴다는 뜻 그대로이고, 화면은 이미
그 제목이 모델의 것이라고 말하고 있습니다.

예전에 만든 덱도 다시 시도됩니다

이 열이 생기기 전에 기록된 덱은 {}입니다. 아무것도 고르지 않은 것으로 읽히고, 공간 전체를
기본값으로 컴파일합니다 — 그때 하던 일과 정확히 같습니다. 요청한 발표보다는 나쁘고,
다시 시도를 거절하는 것보다는 낫습니다.

확인한 것

✓ 실패 후 다시 시도가 처음과 한 글자도 다르지 않은 덱 소스를 만듦
✓ 고르지 않은 생각이 다시 시도로 들어오지 않음
✓ 분량 제한이 다시 시도에서도 지켜짐
✓ 스위치 다섯 개(선택·제외 포함·한 장씩·이름 짓기·부 나누기)가 그대로 기록되고 되살아남
✓ 기록이 없는 옛 덱은 예전처럼 공간 전체를 컴파일함
✓ 실제 PostgreSQL에 저장했다가 실패한 덱으로 다시 읽어 그대로 돌아옴
✓ 마이그레이션 024가 적용·재적용·되돌리기를 모두 통과함
✓ 고친 코드를 옛 동작으로 되돌리면 새 시험이 실패함
바꾼 것 잡은 것
요청을 덱 옆에 저장 다시 시도가 선택·분량·스위치를 잃음
실패한 덱을 읽을 때 함께 읽음 같은 버튼이 다른 발표를 만듦

이 자리에는 시험이 하나도 없었습니다. Retry는 이번에 처음으로 단위 시험을 갖습니다.


전체 검증: go vet ./... · go test ./... · 실제 PostgreSQL 17에서 통합 시험 ·
scripts/migrate-dry-run.sh · gofmt · 변형 검출(옛 동작으로 되돌리면 새 시험이 실패) ·
vitest · oxlint · tsc · i18n · 버전 일관성

What's Changed

  • auto-improve: Release v0.65.1 a part heading that opens nothing by @hkjang in #131
  • auto-improve: Release v0.66.0 a retry that asks for the same talk again by @hkjang in #132

Full Changelog: v0.64.0...v0.66.0