Releases

  • 5.22.4

    5.22.4 주요 변경사항

    계정 보안(web)

    • 계정 보안 화면에서 패스키 추가가 실패하면 원인을 안내합니다. 이전에는 브라우저가 거부한 이유와 관계없이 "패스키를 추가하지 못했습니다."만 보였습니다.
    • 이 기기나 기기의 비밀번호 관리자에 이미 이 계정의 패스키가 있어 인증기가 등록을 거절하면(InvalidStateError), 다른 기기, 다른 패스키 제공자 또는 보안 키에서 추가하라고 안내합니다. Chrome Android가 같은 상황을 UnknownError나 NotAllowedError로 알리는 경우를 대비해, 패스키가 이미 있는 계정에서는 이 두 안내에도 같은 힌트를 붙입니다.
    • 취소·시간 초과는 그대로 알리고, 알 수 없는 브라우저 오류는 영어 원문 대신 한국어 기본 문구에 오류 이름을 덧붙여 보여 줍니다.
    • 로그인 창도 같은 오류 판정을 쓰며, 새 계정 등록에서 "이미 등록된 패스키"를 놓치던 문제가 함께 고쳐졌습니다.

    이미지 빌드(byedpi)

    • byedpi의 alpine 기반 이미지를 태그만 기록하고, 게시 때 조회한 digest를 빌드 인자로 넘깁니다. 이번 base는 기존 고정 digest와 같습니다.

    호환되는 버그 수정이고 API·schema·Compose·환경 키·nginx 변경이 없어 patch 5.22.4로 게시합니다.

    이미지 게시 범위

    -ChangedOnly 게시입니다.

    서비스 5.22.4 digest
    backend(log-reader) 새 빌드(APP_VERSION) sha256:b9cc9c30…
    web 새 빌드 sha256:6b8e984e…
    byedpi 새 빌드(Dockerfile 변경) sha256:d0343125…
    crawler 재사용(5.22.3) sha256:d5a80fa1…
    nginx 재사용(5.21.0) sha256:4e67d92a…

    NAS 업데이트와 주의사항

    운영은 운영 반영을 따릅니다.

    • schema·Compose 변경 없음: 반영 SQL이 없고 compose.yml·환경 파일 변경이 없습니다.
    • 5.22.3에서 올라오면 backend(와 같은 이미지를 쓰는 log-reader), web, byedpi만 교체됩니다.
    • 배포 전 레지스트리에 다섯 서비스의 latest가 모두 있는지 확인합니다.
    • rollback: -ChangedOnly 게시라 서비스별 태그가 다릅니다. backend·web은 5.22.3, byedpi는 5.22.2로 되돌립니다. crawler(5.22.3)와 nginx(5.21.0)는 바뀌지 않았습니다.

    5.22.3 대비 전체 변경

    검증

    • run-unit.ps1 -Workspace web 통과(lint·typecheck·Jest 2332). 대상 commit 96ffdeea는 main 30d95960과 같은 tree입니다.
    • 병합된 main에서 web 이미지 빌드 통과
    • byedpi 변경: run-operations.ps1 -DeploymentOnly 통과, ALPINE_BASE 태그@digest 임시 빌드·실행 통과
    • ops/update-base-images.ps1: 고정 digest 모두 최신
    • 독립 코드 리뷰 APPROVED, 지적 사항은 후속 commit으로 반영
    • 실행하지 않음: run-passkey.ps1, run-integration.ps1, run-unit.ps1 -Workspace all, 실기기(Chrome Android) 확인

    게시 확인

    • publish-images.ps1 -Version 5.22.4 -Publish -ChangedOnly 성공, -VerifyOnly -ChangedOnly -ServiceNames byedpi,backend,web 성공, 다섯 서비스 latest 존재 확인
    • 운영 NAS 배포 완료(deploy-production.sh exit 0). 실행 중 digest가 위 표와 일치하고 backend 버전 label은 5.22.4입니다.
    Downloads 2
  • 5.22.3

    표지·썸네일과 가비지 컬렉터 상호작용 감사에서 찾은 문제를 고친 patch 릴리스입니다.

    중복 검사

    • 시작·끝 페이지 조정으로 삭제 대기가 된 페이지를 중복 검사 snapshot에서 제외해, 조정한 작품과 그 작품을 비교 대상으로 둔 항목이 "이미지 색인 대기"에 머무르던 문제를 고쳤습니다.
    • 소속 작품이 모두 삭제된 중복 그룹을 정기 정리에서 삭제합니다. Hitomi 사전 검사가 같은 그룹을 다시 채우는 경우와 잠금으로 직렬화했습니다.
    • Hitomi 사전 검사가 해결된 그룹을 다시 열 때 이전 선택 작품과 해결 시각을 비웁니다.

    표지·썸네일

    • 이미지 검색 결과가 버전이 붙은 카드 썸네일 URL(thumbnailUrl)을 사용합니다.
    • 페이지 조정 응답에 새 1페이지의 thumbnailUrl을 담고, viewer가 상세 cache와 홈 복귀 snapshot의 카드를 갱신합니다.
    • 시작 페이지 조정 직후 backend가 crawler 내부 API로 그 작품의 카드 썸네일 생성을 요청합니다(실패해도 관리자 요청은 성공, 생성 중 재요청은 한 번의 재실행으로 합침).
    • 시간당 썸네일 유지 생성이 백필 pass의 일시정지·미시작과 관계없이 실행됩니다. 단건·유지 생성과 pass가 겹칠 때 완료 수가 과다 집계되던 문제를 고쳤습니다.

    저장소 유지보수

    • 원본 삭제 작품의 손상 원본은 정합성 복구에서 지우거나 다시 받기로 돌리지 않고 sourceRemoved로 남깁니다.
    • Hitomi coverage 재개방을 복구와 같은 transaction에서 처리하고, 손상 객체 삭제는 commit 뒤에 수행합니다. 원본 삭제 표시와 복구를 갤러리 잠금으로 직렬화했습니다.
    • 중단된 다운로드를 재개할 때 원장의 hash·크기와 일치하는 객체만 채택해, 이전 작품이 남긴 객체를 재사용하지 않습니다.
    • 행 없는 orphan 객체 삭제와 같은 원본 gallery 생성을 owner 잠금으로 직렬화했고, 생성은 전역 잠금 밖에서 기다립니다.

    schema·Compose·환경 키·nginx 변경은 없습니다. backend·crawler·web 이미지를 새로 게시했고 nginx·byedpi는 기존 이미지를 그대로 씁니다.

    Downloads 2
  • 5.22.2

    5.22.2 주요 변경사항

    태그 번역(shared)

    • 포켓몬스터는 한국어 더빙명 기준: 더빙에 나오지 않은 캐릭터는 한국어 게임명을 씁니다. 35개를 교정했습니다.
      • 예: 라나 → 수련, 메이 → 봄이, 유리 → 우리, 힐다 → 투희, 엘리오 → 영태, 제시·제임스 → 로사·로이, 에리카 → 민화, 알리스터 → 어니언, 브랜든 → 휘웅
      • 운영 데이터에서 포켓몬스터와 함께 붙는 비중이 큰 키만 바꿨습니다.
      • phoebe·chloe·klara처럼 다른 작품이 우세한 키와 georgia(벽람항로 조지아)는 그대로 둡니다.
    • 작품별 더빙명 기준
      • 더빙명 단독: 국내에서 더빙명이 더 유명하거나 둘 다 알려진 작품입니다.
        • 대상 작품: 도라에몽, 짱구는 못말려, 원피스(상디), 주먹왕 랄프, 디지몬 어드벤처·테이머즈·크로스워즈, 유희왕 DM·5D's, 은하철도 999
        • 바뀐 표기: 한솔, 매튜, 이미나, 철이, 조앤, 리시드, 아나트 아키, 잭 아틀러스, 칼리, 서유리, 셰리 루브란
      • 원어명 단독: 그 밖의 작품입니다.
        • 대상 작품: 슬램덩크, 꼬마마법사 레미, 마이멜로디, 프리티 리듬, 프리☆채널, 프리파라, 베리베리 뮤우뮤우
        • 바뀐 표기: 아카기 하루코, 마키하타야마 하나, 쿠루미 누이, 하루네 아이라, 모모야마 미라이, 시라타마 미캉, 미나미 미레이, 모모미야 이치고 등
    • 캐릭터 오역 22개 교정
      • 이름 오역: 미타케를 달렸다 → 미타케 란, 변태 → 시프티, 사기 → 프라우, 루쉰 → 육손, 소방관 → 화방녀, 인형 → 포프, 사우론 → 네크로맨서
      • 공식·통일 표기: 사막 독수리 → 데저트 이글, 슈퍼크라운 바우저 → 슈퍼크라운 쿠파, 쿠키런 공식명 4개
      • 엉뚱한 작품 표시 제거: 케르베로스 (카드캡터 사쿠라) → 케르베로스
    • 검토 근거는 apps/web/src/lib/__fixtures__/tag-translation-review-2026-10-23-round3.json·-round4.json과 태그 번역 정책에 있습니다.

    기반 이미지

    • byedpi의 alpine:3.24 upstream digest가 바뀌어 고정값을 갱신했습니다.

    번역 교정과 기반 이미지 갱신이라 patch 5.22.2로 게시합니다. API·schema·Compose·환경 키 변경은 없습니다.

    이미지 게시 범위

    • 새로 빌드(5.22.2·latest)
      • backend: 번역 사전, APP_VERSION
      • crawler: shared 포함
      • web: 번역 사전
      • byedpi: alpine digest
    • 변경 없음(-ChangedOnly로 태그 생략): nginx는 5.21.0 태그의 digest를 latest로 유지합니다.

    NAS 업데이트와 주의사항

    운영 반영을 따릅니다.

    • 반영할 것 없음: schema·Compose 변경이 없어 반영 SQL이 없고 compose.yml·환경 파일도 바뀌지 않습니다.
    • 교체 대상: 5.22.1에서 올리면 backend(같은 이미지를 쓰는 log-reader 포함)·crawler·web·byedpi가 교체됩니다.
    • crawler 먼저 정지: 교체 전에 stop -t 60 crawler로 checkpoint를 저장합니다. 재시작한 뒤 E-Hentai·Hitomi pipeline은 checkpoint 재개를 기다리는 상태가 됩니다.
    • rollback
      • backend·crawler·web은 5.22.1로 고정합니다.
      • byedpi는 5.21.0으로 고정합니다.

    5.22.1 대비 전체 변경

    검증

    • 릴리스 commit 9a1b8b52(main 650869c0과 같은 tree)에서 통과
      • 개발 stack backend·crawler·web·byedpi 재빌드, healthy
      • run-translation-coverage.ps1
      • run-unit.ps1 -Workspace all: backend 755·crawler 925·web 2320 tests
      • run-integration.ps1
      • run-operations.ps1 -DeploymentOnly
      • ops/update-base-images.ps1: 고정 digest 모두 최신
      • Compose config·git diff --check
      • 문서 링크·anchor 오류 0건
    • 기능 branch 사전 점검 통과: 중복·충돌·빈 값 0, fixture와 diff 일치
    • NOT RUN
      • 이번 변경의 Sol 독립 리뷰: diff·fixture·log를 대조해 판단했습니다.
      • run-compose-compat·run-schema: 해당 영역 변경이 없습니다.
      • byedpi 실제 외부 연결 network runner
      • 격리 UI·실기기 확인

    게시 확인

    • 릴리스 소스: 9a1b8b52(annotated Git 태그 5.22.2 대상)
    • 새로 빌드한 이미지(5.22.2·latest)
      • backend(APP_VERSION=5.22.2): sha256:f75fc6cf81a5bdea86b5fe567a04c7a1cf44a816b196f4adc1007e838f5f1c99
      • crawler: sha256:da6d9aebaaf571450f4d7db7cc8c38347d8f76c7befd51140e0bb5ce27a68479
      • web: sha256:57a0b645b442dd2aa285a39aabb4f4bb8a51e72759108dc5d4009f48e6a0c3cc
      • byedpi: sha256:43600ae7e834e0b42086815c40bef929e898c6cfe2f702956c2296c1c956d96c
    • 기존 이미지 유지
      • nginx latest(5.22.2 태그 없음, 5.21.0 digest 유지): sha256:4e67d92a695b9cf723093ff8f2a706959d79c954a9a3d5e83c1242fccb832a87
    • 게시 명령: ops/publish-images.ps1 -Version 5.22.2 -Publish -ChangedOnly가 첫 실행에서 완료됐습니다(Registry tags verified for 5.22.2.).
    Downloads 2
  • 5.22.1

    5.22.1 주요 변경사항

    태그 번역(shared)

    5.22.0의 번역 검토를 사용자 기준에 맞춰 다시 다듬었습니다. 기존 번역 67개를 교정하고 1개를 추가했습니다.

    • 통용 용어 우선: 장르에서 실제로 널리 쓰는 말은 외래어라도 그대로 씁니다. 정말 마이너한 용어만 뜻을 풀어 씁니다.
      • 교정: 스캣 → 스캇, 스메그마 → 치구, 교미 프레스 → 교배 프레스, 강제 구강성교 → 이라마치오, 모녀덮밥·자매덮밥, 질경
      • 5.22.0에서 풀어 썼던 용어를 원래 통용어로 되돌림: 스마타, 시오후키, 곳쿤, 페이스시팅, 오모라시, 거인녀, 알몸 에이프런
      • 사용자 결정: 리밍, 펨보이, 샴쌍둥이, 밀프·딜프, 오버니삭스, 들박, 입싸, TS, 쓰리썸, 보어(항문 보어·꼬리 보어 포함)
    • 음역 캐릭터 301개 재확인: 운영 데이터에서 함께 붙는 패러디로 작품을 특정한 뒤 공식 표기를 찾았습니다.
      • 공식·게임 데이터 기준 교정: 토우카, 엘레인, 깅코, 아가타 사아야, 모리오카 코우헤이, 소고루 쿄우, 시죠 마키, 테레시아, 이드·샤샤(트릭컬)
      • 같은 작품 표기 맞춤: 루이(BEASTARS), 그레고, 에리나 올레고브나 아빈, 마리야 미하일로브나 쿠죠
      • 사용자 결정: 인덱스, 에리카 브랑델리, 세필리아 아크스, 링고 양
      • 공식 표기와 같은 46개는 출처를 기록했습니다. 공식 한국어판이 없는 항목은 작품만 기록하고 현재 값을 유지했습니다.
      • 한국 더빙판에서만 바뀐 이름(유사랑·한샛별 등)은 새로 채택하지 않습니다.
    • 전역 블랙리스트 번역 보충: 전역 블랙리스트 태그 가운데 번역이 없던 parody:palworld를 팰월드로 추가했습니다(PlayStation 한국 스토어 공식 제목). 작가·그룹은 원어 유지 대상이라 제외했습니다.
    • 검토 근거는 apps/web/src/lib/__fixtures__/tag-translation-review-2026-10-23-round2.json과 태그 번역 검토 근거에 있습니다.

    번역 교정과 누락 번역 1건 보충이라 patch 5.22.1로 게시합니다. API·schema·Compose·환경 키 변경은 없습니다.

    이미지 게시 범위

    • 새로 빌드(5.22.1·latest):
      • backend: 번역 사전, APP_VERSION
      • crawler: shared 패키지 포함
      • web: 번역 사전
    • 변경 없음(-ChangedOnly로 태그 생략): nginx·byedpi는 5.21.0 태그의 digest를 latest로 유지합니다.

    NAS 업데이트와 주의사항

    운영 반영을 따릅니다.

    • schema·Compose 변경 없음: 반영 SQL이 없고 compose.yml·환경 파일 변경도 없습니다.
    • 교체 대상: 5.22.0에서 올리면 backend(와 같은 이미지를 쓰는 log-reader)·crawler·web이 교체됩니다.
    • crawler 재시작: 교체 전에 stop -t 60 crawler로 checkpoint를 저장합니다. 재시작 뒤 E-Hentai·Hitomi pipeline은 checkpoint 재개 대기 상태가 됩니다.
    • rollback: backend·crawler·web을 5.22.0으로 고정합니다.

    5.22.0 대비 전체 변경

    검증

    • 릴리스 commit 4348b681(main 5ae7d07f과 같은 tree):
      • 개발 stack backend·web 재빌드 healthy
      • run-translation-coverage.ps1 통과
      • run-integration.ps1 통과
      • ops/update-base-images.ps1: 고정 digest 모두 최신
      • 문서 링크·anchor 0건, git diff --check 통과
    • 기능 branch(같은 tree):
      • run-unit.ps1 -Workspace all 통과(backend 755·crawler 925·web 2240 tests)
      • 사전 점검 통과: 중복 0, 빈 값 0, fixture와 diff 일치, 같은 뜻의 옛 표기 0
    • NOT RUN: 이번 변경의 Sol 독립 리뷰(diff·fixture·log 대조로 대신함), run-operations·run-compose-compat·run-schema(해당 영역 변경 없음), network runner, 격리 UI·실기기 확인.

    게시 확인

    • 릴리스 소스: 4348b681(annotated Git 태그 5.22.1 대상)
    • 이미지 digest:
      • backend 5.22.1·latest(APP_VERSION=5.22.1): sha256:6f044946c38685fcb0144a7413e225b93c234f702f12878ca78f8822dc8f42e8
      • crawler 5.22.1·latest: sha256:212a0aef0bb95310a931fc56ada503c28c97cf754644873c873d0f2dda73acca
      • web 5.22.1·latest: sha256:60ea77db138c95b573430555774f40ee471ddc93cdd570bc679996f4b8a3c133
      • nginx latest(5.22.1 태그 없음, 5.21.0 digest 유지): sha256:4e67d92a695b9cf723093ff8f2a706959d79c954a9a3d5e83c1242fccb832a87
      • byedpi latest(5.22.1 태그 없음, 5.21.0 digest 유지): sha256:f53d87d9aed48752b302242f042d5209f7cd3c5958c28126af2f017596c61e85
    • 게시 명령 ops/publish-images.ps1 -Version 5.22.1 -Publish -ChangedOnly는 첫 실행에서 완료됐습니다(Registry tags verified for 5.22.1.).
    Downloads 2
  • 5.22.0

    5.22.0 주요 변경사항

    태그 번역(shared)

    • 번역 사전 전체를 다시 검토했습니다. 원칙은 공식 한국어 표기를 우선하고, 보편적인 용어는 그대로 쓰되 너무 마이너한 용어는 뜻을 풀어 쓰는 것입니다. 기존 번역 127개를 교정했습니다.
      • 공식·게임 데이터 표기: 블루 아카이브 한국 서버 학생 이름(류우게 키사키, 마요이 시구레, 시로코*테러 등), FGO 한국 서버 서번트 이름(알트리아 펜드래곤(얼터), 슈텐도지, 무측천 등), 라프텔·닌텐도·더 위쳐 한국어 표기(코사카 레이나, 데이지, 예니퍼 등).
      • 뜻을 풀어 쓴 용어: 곳쿤 → 정액 삼키기, 페이스시팅 → 얼굴 위에 앉기, 시오후키 → 조수 분출, 사이하이 → 허벅지 스타킹, 스마타 → 비삽입 마찰, 헤어 번 → 똥머리, 케모노 → 수인 등.
      • 같은 뜻의 general·female·male 태그는 같은 번역을 씁니다.
    • 미번역 태그 23개(캐릭터 17·패러디 5·태그 1)에 번역을 추가했습니다(라퀴스 알베인 데일 아인드라, 히야죠 마호, 토가와 사키코, 트레이서 등).
    • 검토 근거(출처·등급·유지 판정 45건)는 apps/web/src/lib/__fixtures__/*-2026-10-23.json과 태그 번역 검토 근거에 기록했습니다.

    이미지 빌드

    • backend·crawler·web Dockerfile에서 node 기반 이미지의 @sha256 digest를 지우고 태그(node:26-alpine)만 기록합니다. 게시할 때 그 태그의 현재 digest를 조회해 게시 지문에 넣고, 같은 값을 NODE_BASE 빌드 인자로 넘겨 빌드합니다. 따라서 upstream node 이미지가 바뀌면 다음 게시에서 자동으로 다시 빌드됩니다(nginx와 같은 방식).
    • 개발 빌드(compose.build.yml)는 인자 기본값인 태그를 그대로 씁니다. byedpi의 alpine과 # syntax는 지금처럼 digest로 고정합니다.

    번역 추가는 지원 범위 추가이므로 minor 5.22.0으로 게시합니다. API·schema·Compose·환경 키 변경은 없습니다.

    이미지 게시 범위

    • 새로 빌드(5.22.0·latest): backend(번역 사전·Dockerfile·APP_VERSION), crawler(Dockerfile), web(번역 사전·Dockerfile). node 기반 digest는 5.21.1과 같습니다(node:26-alpine@sha256:40cd011b…).
    • 변경 없음(-ChangedOnly로 태그 생략): nginx·byedpi는 5.21.0 태그의 digest를 latest로 유지합니다.

    NAS 업데이트와 주의사항

    운영 반영은 운영 반영을 따릅니다.

    • schema·Compose 변경 없음: 반영할 SQL이 없고 compose.yml·환경 파일도 바뀌지 않았습니다.
    • 5.21.1에서 올리면 backend(와 같은 이미지를 쓰는 log-reader)·crawler·web이 교체됩니다. crawler가 교체되므로 먼저 stop -t 60 crawler로 checkpoint를 저장합니다. 재시작 뒤 E-Hentai·Hitomi pipeline은 checkpoint 재개 대기 상태가 되므로, 운영 화면에서 재개합니다.
    • rollback: backend·crawler·web을 5.21.1(crawler는 5.21.0)로 고정합니다. 다섯 서비스 모두 5.21.0 태그가 있으므로 IMAGE_TAG=5.21.0으로 일괄 고정할 수도 있습니다.

    5.21.1 대비 전체 변경

    검증

    • 릴리스 commit 9cd95f77(main ef019ea8과 같은 tree)에서 통과:
      • 개발 stack backend·crawler·web 재빌드 healthy
      • run-translation-coverage.ps1
      • run-unit.ps1 -Workspace all(backend 755·crawler 925·web 2171 tests)
      • run-integration.ps1
      • run-operations.ps1 -DeploymentOnly
      • ops/update-base-images.ps1: 고정 digest 모두 최신
      • 문서 링크·anchor 0건, Compose config·git diff --check
    • Sol(gpt-6.1-sol) 독립 리뷰 2건:
      • node 태그 고정: 승인
      • 번역: P2 1건 반영(모미지는 블루 아카이브 한국 서버 표기로 확정), P3 1건 반영(근거 문서 출처 필드)
    • NOT RUN: run-compose-compat.ps1(실행 사용자·Compose 설정 변경 없음), run-schema.ps1(schema 변경 없음), network runner, 격리 이미지 검색·북마크 UI, 실기기 수동 확인.

    게시 확인

    • 릴리스 소스: 9cd95f77(annotated Git 태그 5.22.0 대상).
    • backend 5.22.0·latest(APP_VERSION=5.22.0): sha256:29fe451e7269f1d248925c762738cc0601f9a590a0377e45576f536293cfd18b
    • crawler 5.22.0·latest: sha256:5b9455e5024fac1b6d01262709a408c871dbe3b266ef4b227cc488c185e817d0
    • web 5.22.0·latest: sha256:62cae28c24413ab9acffb53396a6c19bee6bd5d3a8460b267d7256341df983a8
    • nginx latest(5.22.0 태그 없음, 5.21.0 digest 유지): sha256:4e67d92a695b9cf723093ff8f2a706959d79c954a9a3d5e83c1242fccb832a87
    • byedpi latest(5.22.0 태그 없음, 5.21.0 digest 유지): sha256:f53d87d9aed48752b302242f042d5209f7cd3c5958c28126af2f017596c61e85
    • ops/publish-images.ps1 -Version 5.22.0 -Publish -ChangedOnly가 첫 실행에서 완료됐습니다(Registry tags verified for 5.22.0.).
    Downloads 2
  • 5.21.1

    5.21.1 주요 변경사항

    화면(web)

    • grid 갤러리 보기에서 화면을 넓힐 때 열 수가 줄던 문제를 고쳤습니다(632px 3열 → 640px 2열 → 656px 3열). sm(640px)에서 page 여백과 칸 간격이 함께 넓어져 3열에 필요한 폭이 늘어났기 때문이며, 이제 640px 미만은 항상 2열이고 640px부터는 이전과 같습니다. 홈·북마크 갤러리·모아보기에 같이 적용됩니다.
    • 북마크 작가·그룹 행의 미리보기 수가 1024px에서 5개 → 4개로 줄던 문제를 고쳤습니다(180px 미리보기를 xl부터 사용). 미리보기를 받는 중의 행도 받은 행과 같은 틀을 써서 받기 전후 개수가 같습니다.

    호환되는 UI 수정이라 patch 5.21.1로 게시합니다. API·schema·Compose·환경 키 변경은 없습니다.

    이미지 게시 범위

    • 새로 빌드(5.21.1·latest): web(grid 열 수 수정), backend(코드 변경 없이 APP_VERSION=5.21.1만 바뀜, 릴리스마다 재빌드 규칙).
    • 변경 없음(태그 생략, -ChangedOnly): crawler·nginx·byedpi는 5.21.0 태그의 digest를 latest로 유지합니다.

    NAS 업데이트와 주의사항

    운영은 운영 반영을 따릅니다.

    • schema·Compose 변경 없음: 반영 SQL이 없고 compose.yml·환경 파일 변경이 없습니다.
    • 5.21.0에서 올라오면 web과 backend(와 같은 이미지를 쓰는 log-reader)만 교체됩니다.
    • rollback: web·backend를 5.21.0으로 고정합니다(다섯 서비스 모두 5.21.0 태그가 있어 IMAGE_TAG=5.21.0 일괄 고정 가능).

    5.21.0 대비 전체 변경

    검증

    • 릴리스 commit 87504951(main 928cbd80과 같은 tree): run-integration.ps1 통과, 격리 북마크 UI(bookmarks-browser.mjs) 통과, 개발 stack web 재빌드 healthy, 문서 링크·anchor 0건, Compose config·git diff --check 통과.
    • 기능 branch(88aff7ae, 같은 앱 tree): run-unit.ps1 -Workspace web 통과(158 suites·2041 tests), production web 이미지로 320~1600px·5개 화면·scrollbar 3종 폭 sweep에서 열 수 감소 0건(수정 전 이미지는 같은 sweep에서 실패). Sol(gpt-6.1-sol) 독립 리뷰 1회(P2 1건 반영).
    • NOT RUN: backend·crawler 단위 검증, run-schema.ps1·run-operations.ps1·run-compose-compat.ps1·network runner(해당 영역 변경 없음), 격리 이미지 검색 UI(별도 grid), 실기기 수동 확인.

    게시 확인

    • 릴리스 소스: 87504951 (annotated Git 태그 5.21.1 대상).
    • backend 5.21.1·latest(새 빌드, APP_VERSION=5.21.1): sha256:daaade086128bfe4f0d45f32b242469c219a7824192e833895a539dd82a977b6
    • web 5.21.1·latest(새 빌드): sha256:e57fcba0ae6bfc4089a13dae6d9aa68d57cb73b79b60e975a6dd08a3f6246cb0
    • crawler latest(5.21.1 태그 없음, 5.21.0 digest 유지): sha256:56b8183fd9ede793287c650b12b033663e774f5f9710c704f03fecf99adde93b
    • nginx latest(5.21.1 태그 없음, 5.21.0 digest 유지): sha256:4e67d92a695b9cf723093ff8f2a706959d79c954a9a3d5e83c1242fccb832a87
    • byedpi latest(5.21.1 태그 없음, 5.21.0 digest 유지): sha256:f53d87d9aed48752b302242f042d5209f7cd3c5958c28126af2f017596c61e85
    • ops/publish-images.ps1 -Version 5.21.1 -Publish -ChangedOnly가 첫 실행에서 완료됐고(Registry tags verified for 5.21.1.), docker manifest inspect로 다섯 latest를 다시 확인했습니다.
    Downloads 2
  • 5.21.0

    5.21.0 주요 변경사항

    화면(web)

    • 홈에서 갤러리를 눌러 상세 창을 열 때 표지 썸네일이 깜빡이던 문제를 고쳤습니다. 원본을 받은 직후가 아니라 decode가 끝난 뒤 원본으로 바꾸며, decode가 거부되거나 원본이 실패하면 썸네일을 유지합니다.
    • 북마크 작가·그룹 탭에 갤러리 탭과 같은 필터 줄을 두었습니다. 작가·그룹 검색은 이름으로 행을 거르고, 전체·안 읽음·읽는 중·완독은 각 행의 작품을 그 상태로 거르며 맞는 작품이 없는 행은 숨깁니다. 읽기 상태는 세 탭이 함께 쓰고 검색어는 탭마다 따로 둡니다.
    • 북마크 모아보기의 작가·그룹 N명 · 갤러리 N개 · 작품 N개를 폭이 되면 읽기 상태 필터와 같은 줄 끝에 둡니다(좁으면 다음 줄). 숨긴 작품 보기는 읽기 상태 필터 바로 뒤로 옮겼습니다.

    API(backend)

    • POST /api/galleries/creator-previews에 선택 필드 status(로그인 사용자)와 guest 기록 ID 조건 onlyGalleryIds·excludeGalleryIds(각 500개 이하)를 더했습니다. 필드가 없으면 기존과 같고 cache도 그대로 씁니다. 실제로 좁히는 요청은 한 요청에 작가·그룹 25명까지이며 web이 나눠 보냅니다.

    기반 이미지

    • backend·crawler·web의 node:26-alpine, byedpi의 alpine:3.24 고정 digest를 갱신했습니다. nginx는 upstream mainline-alpine-slim digest가 바뀌어 다시 빌드됐습니다.

    새 기능과 하위 호환 API 필드 추가이고 schema·Compose·환경 키 변경이 없어 minor 5.21.0으로 게시합니다.

    이미지 게시 범위

    • 새로 빌드(5.21.0·latest): backend·crawler·web·nginx·byedpi 다섯 서비스 모두(앱 변경과 기반 이미지 갱신).
    • 다섯 서비스 모두 5.21.0 태그가 있어 IMAGE_TAG=5.21.0 일괄 고정이 가능합니다.

    NAS 업데이트와 주의사항

    운영은 운영 반영을 따릅니다.

    • schema·Compose 변경 없음: 반영 SQL이 없고 compose.yml·환경 파일 변경이 없습니다.
    • 다섯 서비스 이미지가 모두 바뀌어 backend·log-reader·crawler·web·nginx·byedpi가 교체됩니다. crawler를 먼저 멈춘 뒤 배포하고, 배포 뒤 수집 pipeline 재개 상태를 확인합니다.
    • 배포 전 레지스트리에 다섯 서비스의 latest가 모두 있는지 확인합니다.
    • rollback: 5.20.0은 web·backend만 5.20.0 태그가 있고 crawler·nginx·byedpi는 5.19.0 태그의 digest를 썼습니다. 되돌릴 때는 web·backend를 5.20.0, crawler·nginx·byedpi를 5.19.0으로 서비스별로 고정합니다(레지스트리에 해당 태그가 남아 있는지 먼저 확인).

    5.20.0 대비 전체 변경

    검증

    • 릴리스 commit 26b2eec2(앱 코드는 de4b7409와 같은 tree): run-operations.ps1 -DeploymentOnly 통과, run-unit.ps1 -Workspace all 통과(web 158 suites·2039 tests, backend 88·755, crawler 72·925), run-integration.ps1 첫 실행은 browser-flow.mjs의 상세 응답 전후 행 위치 1.04px(허용 1px 미만) 불안정으로 실패했고 재실행 통과, 개발 stack backend·crawler·web·byedpi 재빌드 healthy.
    • 기능 branch(앱 tree 동일): run-search-benchmark.ps1 통과(작가 25명 좁힌 미리보기 p95 24146ms, 썸네일 조회 포함), 격리 북마크 UI(bookmarks-browser.mjs) 1440320px 통과, 문서 링크·anchor 0건, Compose config·git diff --check 통과. Sol(gpt-6.1-sol) 독립 리뷰 3회(썸네일 1회, 북마크 2회) 지적 반영.
    • NOT RUN: run-schema.ps1(schema 변경 없음), run-compose-compat.ps1, network runner, run-passkey.ps1, 실기기(Safari·Chrome·Android) 수동 확인.

    게시 확인

    • 릴리스 소스: 26b2eec2 (annotated Git 태그 5.21.0 대상).
    • backend 5.21.0·latest(APP_VERSION=5.21.0): sha256:350789e171fa12b393c7f28a144980a760d0fc788d18cc8640edd2de78da503b
    • crawler 5.21.0·latest: sha256:56b8183fd9ede793287c650b12b033663e774f5f9710c704f03fecf99adde93b
    • web 5.21.0·latest: sha256:01e3b33ce45c687095d55b0119c96a248fa0f83b993b87629c42a1f5b611df06
    • nginx 5.21.0·latest: sha256:4e67d92a695b9cf723093ff8f2a706959d79c954a9a3d5e83c1242fccb832a87
    • byedpi 5.21.0·latest: sha256:f53d87d9aed48752b302242f042d5209f7cd3c5958c28126af2f017596c61e85
    • ops/publish-images.ps1 -Version 5.21.0 -Publish -ChangedOnly 첫 실행에서 byedpi만 올라가고 나머지는 레지스트리 일시 오류(error from registry: unknown)로 실패해, 남은 :5.21.0을 다시 push한 뒤 -PromoteOnly -ChangedOnly로 latest를 붙였습니다(Registry tags verified for 5.21.0.). -VerifyOnly -ChangedOnly -ServiceNames byedpi,nginx,backend,crawler,web과 docker manifest inspect로 다섯 latest를 다시 확인했습니다.
    Downloads 2
  • 5.20.0

    5.20.0 주요 변경사항

    화면(web)

    • 갤러리 상세 창의 metadata에 출처(Hitomi 또는 E-Hentai) 줄을 더했습니다. 순서는 출처 → 갤러리 ID → 원본 게시 시간입니다. 중복 관리 화면도 같은 출처 이름 표를 씁니다.

    새 표시 항목 추가이고 API·schema·Compose·환경 키 변경이 없어 minor 5.20.0으로 게시합니다.

    이미지 게시 범위

    • 새로 빌드(5.20.0·latest): web(갤러리 상세 출처 표시), backend(코드 변경 없이 APP_VERSION=5.20.0만 바뀜, 릴리스마다 재빌드 규칙).
    • 변경 없음(태그 생략, -ChangedOnly): crawler·nginx·byedpi는 5.19.0 태그의 digest를 latest로 유지합니다. nginx는 upstream mainline-alpine-slim digest가 5.19.0 게시 때와 같아 재빌드되지 않았습니다(지문 규칙 정상 동작 확인).
    • IMAGE_TAG=5.20.0 일괄 고정은 불가하며, 운영은 latest를 pull해 web·backend(+log-reader)만 교체됩니다.

    NAS 업데이트와 주의사항

    운영은 운영 반영을 따릅니다.

    • schema·Compose 변경 없음: 반영 SQL이 없고 compose.yml·환경 파일 변경이 없습니다.
    • 5.19.0에서 올라오면 web과 backend(와 같은 이미지를 쓰는 log-reader)만 교체됩니다. backend는 코드 변경 없이 APP_VERSION만 5.20.0으로 바뀝니다. 5.19.0을 아직 배포하지 않았다면 5.19.0의 Silo 업그레이드 절차(data/minio 보존 뒤 minio 재생성)를 먼저 따릅니다.
    • 배포 전 레지스트리에 다섯 서비스의 latest가 모두 있는지 확인합니다.
    • rollback: -ChangedOnly 게시라 web·backend만 5.20.0 태그가 있고 crawler·nginx·byedpi는 5.19.0 태그의 digest를 그대로 씁니다. 되돌릴 때는 web·backend를 5.19.0으로 고정합니다(다섯 서비스 모두 5.19.0 태그가 있어 IMAGE_TAG=5.19.0 일괄 고정 가능).

    5.19.0 대비 전체 변경

    검증

    • 릴리스 commit 0f2c0b29(앱 코드는 dad34c4e·main 29600e84와 같은 tree): run-unit.ps1 -Workspace web 통과(156 suites·2003 tests). Sol(gpt-6.1-sol) 독립 리뷰 1회(P2 문서 1건 반영). 개발 stack web 재빌드 healthy. 문서 링크·anchor 검사 0건, Compose config·git diff --check 통과.
    • NOT RUN: backend·crawler 단위 검증, run-integration.ps1·run-schema.ps1·run-operations.ps1·run-compose-compat.ps1·network runner(해당 영역 변경 없음), 실기기 수동 확인.

    게시 확인

    • 릴리스 소스: 0f2c0b29 (annotated Git 태그 5.20.0 대상).
    • backend 5.20.0·latest(새 빌드, APP_VERSION=5.20.0): sha256:96de780c7697388f00cd21ca9b3cbee1a88ff99db1add89a019e517e4e560ddb
    • web 5.20.0·latest(새 빌드): sha256:9fcebd8f28a704c5accc6999ca4dbfb11e47eeb57fecf67e5451579d4c332b6e
    • crawler latest(5.20.0 태그 없음, 5.19.0 digest 유지): sha256:7258b2561247f44e1ef0d1e5b2749259e906537f3f9eae25caeac71b86766c49
    • nginx latest(5.20.0 태그 없음, 5.19.0 digest 유지): sha256:a5b16f88ea2444cf1c7bfcdc9c2c2fe11f7452cef255ce10f55bf9b2565d1fc7
    • byedpi latest(5.20.0 태그 없음, 5.19.0 digest 유지): sha256:3346e1a4ad585965ea3cc68984a8f8e37f707a7cdceb036c6e299e4dea15e1cd
    • ops/publish-images.ps1 -Version 5.20.0 -Publish -ChangedOnly가 첫 실행에서 완료됐고(Registry tags verified for 5.20.0.), -VerifyOnly -ChangedOnly -ServiceNames web,backend와 docker manifest inspect로 다섯 latest를 다시 확인했습니다.
    Downloads 2
  • 5.19.0

    5.19.0 주요 변경사항

    화면(web)

    • 뷰어 모드 아이콘을 페이지=세로 네모, 두 페이지=펼친 책, 웹툰=가로 줄로 바꾸고 설정의 기본 뷰어 모드에도 같은 아이콘을 보입니다.
    • 대시보드 읽기 기록의 페이지 이동이 홈과 같은 번호 pager(« ‹ 1 2 3 … › »)로 바뀌고 페이지를 바꾸면 목록 맨 위로 이동합니다.
    • 북마크 갤러리 탭과 모아보기 탭의 끝에 홈과 같은 총 N개 · 끝 표시를 둡니다(새로고침 오류 중에는 숨김).

    런타임·의존성

    • backend·crawler·web 이미지가 Node 26(26.12.1, Alpine 3.24)으로 올라갑니다. 10월 21일 Node 보안 수정(Brotli 디코더 RCE, TLS 호스트명 검증 우회, keep-alive desync 등)을 포함합니다.
    • next 16.4.2(critical RCE 2건·DoS 1건 수정), react 19.3.1, NestJS 12.2.0, express 5.3.0, lucide-react 1.61, eslint 10.13, @aws-sdk/client-s3 3.1155 등 patch·minor 갱신. TypeScript 7·ioredis 6·npm 12는 보류.
    • MinIO(Silo) 이미지가 RELEASE.2026-10-18T00-00-00Z로 올라가고 태그만 고정합니다(digest 없음). nginx는 mainline-alpine-slim(1.31.7) 태그만 고정하며 게시 때 upstream digest를 지문에 넣어 바뀐 경우에만 다시 빌드합니다.

    새 기능과 런타임 교체가 섞였고 API·schema·환경 키 변경은 없어 minor 5.19.0으로 게시합니다.

    이미지 게시 범위

    • 새로 빌드(5.19.0·latest): backend·crawler·web(Node 26.12.1 base, 라이브러리 갱신), nginx(mainline-alpine-slim 1.31.7, 게시 때 지문에 넣은 upstream digest로 바인딩), byedpi(지문 규칙 변경으로 1회 재빌드, 내용 변화 없음). 다섯 서비스 모두 새 digest입니다.
    • -ChangedOnly 게시였지만 지문 계산 규칙 자체가 바뀌어 이번에는 다섯 서비스가 모두 "변경"으로 판정됐습니다. 다음 릴리스부터는 입력이 바뀐 서비스만 다시 빌드됩니다.
    • 다섯 이미지 모두 5.19.0 태그가 있으므로 IMAGE_TAG=5.19.0으로 일괄 고정할 수 있습니다.

    NAS 업데이트와 주의사항

    운영은 운영 반영을 따릅니다.

    • schema 변경 없음, Compose 변경 있음: compose.yml의 minio 이미지가 Silo 2026-10-18로 바뀝니다. 반영 SQL은 없습니다.
    • Silo 업그레이드: MinIO 이미지 절차대로 수집·GC·색인·썸네일을 멈춘 뒤 data/minio를 보존하고 minio를 재생성합니다. Silo는 역방향 교체를 지원하지 않으므로 되돌릴 때는 보존본을 복원합니다. 2026-10-18 릴리스는 Object Lock·IAM 권한 검사가 엄격해졌고 503 SlowDownWrite를 재시도 대상으로 돌려줍니다(앱의 S3 SDK가 재시도).
    • backend·crawler·web(+log-reader)·nginx·byedpi 다섯 이미지가 모두 교체됩니다(Node 26 base와 지문 규칙 변경).
    • 배포 전 레지스트리에 다섯 서비스의 latest가 모두 있는지 확인합니다.
    • rollback: 다섯 서비스 모두 5.19.0 태그가 있으므로 앱 이미지는 IMAGE_TAG=5.19.0으로 고정할 수 있고, 이전 상태는 IMAGE_TAG=5.18.0(web·backend)과 5.17.2(crawler·nginx·byedpi) 조합입니다. minio는 보존본 복원이 필요합니다.

    5.18.0 대비 전체 변경

    검증

    • 릴리스 commit 9c2597c6(앱 코드는 main c549f80b와 같은 tree): 개발 stack 전체 재빌드 뒤(backend·crawler·web Node v26.12.1, nginx 1.31.7 slim, Silo 2026-10-18 healthy) run-unit.ps1 -Workspace all 통과(backend 88·crawler 72·web 155 suites), run-integration.ps1 통과(api·browser), run-passkey.ps1 통과(등록·인증·재사용 거절·backend 재시작 복원).
    • 업그레이드 브랜치(같은 Dockerfile·ops·lockfile)에서 run-operations.ps1 -DeploymentOnly(실제 slim nginx, 모의 게시의 nginx-base-moved·mid-publish 시나리오 포함)·run-compose-compat.ps1·ops/update-base-images.ps1·npm ls 단일 버전 확인·npm audit 0건(root prod/all, integration api·browser, passkey) 통과.
    • web 변경 3건은 각각 Sol(gpt-6.1-sol) 독립 리뷰(P2 2건 반영: 북마크 새로고침 오류 중 끝 표시 숨김, nginx 지문-빌드 digest 바인딩). 문서 링크·anchor 검사 0건, Compose config(dev·prod)·git diff --check 통과.
    • NOT RUN: run-schema.ps1(schema 변경 없음), crawler-recovery·network runner, 실기기 수동 확인.

    게시 확인

    • 릴리스 소스: 9c2597c6 (annotated Git 태그 5.19.0 대상).
    • backend 5.19.0·latest(Node 26, APP_VERSION=5.19.0): sha256:b4eb4c0e6f8a3e0896dea2eac994dc5682ddc6b43da75d5b79e71b741b308e02
    • crawler 5.19.0·latest(Node 26): sha256:7258b2561247f44e1ef0d1e5b2749259e906537f3f9eae25caeac71b86766c49
    • web 5.19.0·latest(Node 26, next 16.4.2): sha256:40cf54016aeedea4cd087c3d2eb402038c63bcb95df4a295b20c9e45367e96d8
    • nginx 5.19.0·latest(mainline-alpine-slim 1.31.7): sha256:a5b16f88ea2444cf1c7bfcdc9c2c2fe11f7452cef255ce10f55bf9b2565d1fc7
    • byedpi 5.19.0·latest(재빌드, 내용 동일): sha256:3346e1a4ad585965ea3cc68984a8f8e37f707a7cdceb036c6e299e4dea15e1cd
    • ops/publish-images.ps1 -Version 5.19.0 -Publish -ChangedOnly 첫 실행은 버전 태그 push 중 프록시 연결 종료(use of closed network connection)로 byedpi만 올라간 채 실패했습니다. 로컬에 빌드된 backend·crawler·web·nginx 5.19.0을 docker push로 올린 뒤 -PromoteOnly -ChangedOnly -ServiceNames byedpi,nginx,backend,crawler,web로 latest를 승격했고(Registry tags verified for 5.19.0.), docker manifest inspect로 다섯 latest·5.19.0을 다시 확인했습니다.
    Downloads 2
  • 5.18.0

    5.18.0 주요 변경사항

    뷰어(web)

    • 뷰어 상단 오른쪽에 설정 버튼을 두어 뷰어를 떠나지 않고 읽기 설정을 바꿀 수 있습니다. 뷰어에서 연 설정 창은 읽기가 맨 위이고 이어서 표시, 작가·그룹 알림, 관리자에게는 번역 사전이 보입니다. 앱 설치·계정 삭제·브라우저 캐시 항목은 뷰어 설정 창에 두지 않습니다.
    • 뷰어 설정 창에서 바꾼 읽기 방향·페이지 맞춤·웹툰 폭·자동 숨김은 열린 뷰어에 바로 반영되고, 뷰어 모드를 바꾸면 열린 뷰어의 모드도 함께 바뀝니다(저장된 기본값도 갱신).
    • 설정 창이 열린 동안에는 뷰어 단축키·탭 넘김·조작 막대 자동 숨김·자동 전체 화면이 멈추고, Escape는 창만 닫습니다. 좁은 화면(sm 미만)의 관리자 header에서는 설정이 더보기 메뉴 항목으로 들어가 버튼이 겹치지 않습니다.

    새 기능 추가이고 API·schema·Compose·환경 키 변경이 없어 minor 5.18.0으로 게시합니다.

    이미지 게시 범위

    • 새로 빌드(5.18.0·latest): web(뷰어 설정 버튼·뷰어용 설정 창), backend(코드 변경 없이 APP_VERSION=5.18.0만 바뀜, 릴리스마다 재빌드 규칙).
    • 변경 없음(태그 생략, -ChangedOnly): crawler(latest=5.17.2 태그의 5.17.0 digest), nginx(latest=5.17.2 태그의 5.10.0 digest), byedpi(latest=5.17.2 태그의 5.15.0 digest). 이 세 서비스에는 5.18.0 태그가 없습니다.
    • IMAGE_TAG=5.18.0으로 다섯 서비스를 일괄 고정할 수 없습니다. 운영은 latest를 pull하며 digest가 바뀐 web·backend(+log-reader)만 교체됩니다.

    NAS 업데이트와 주의사항

    운영은 운영 반영을 따릅니다.

    • schema·Compose 변경 없음: 반영 SQL이 없고 compose.yml·환경 파일 변경이 없습니다.
    • 5.17.2에서 올라오면 web과 backend(와 같은 이미지를 쓰는 log-reader)만 교체됩니다. backend는 코드 변경 없이 APP_VERSION만 5.18.0으로 바뀝니다.
    • 배포 전 레지스트리에 다섯 서비스의 latest가 모두 있는지 확인합니다.
    • rollback: -ChangedOnly 게시라 서비스별 태그가 다릅니다. web·backend는 5.17.2, crawler는 5.17.2(5.17.0 digest), nginx는 5.17.2(5.10.0 digest), byedpi는 5.17.2(5.15.0 digest)로 되돌립니다. 5.17.2는 다섯 서비스 모두 태그가 있으므로 IMAGE_TAG=5.17.2로 일괄 되돌릴 수 있습니다.

    5.17.2 대비 전체 변경

    검증

    • 릴리스 commit 9d45b3f0(앱 코드는 65c22440·main 2dfe999b와 같은 tree): run-unit.ps1 -Workspace web 통과(155 suites·1998 tests), run-integration.ps1 통과(api·browser 포함). 개발 stack web 재빌드 뒤 격리 web 컨테이너에서 admin·user·guest × 320·390·1280px Playwright 캡처로 header 버튼 비겹침, 좁은 화면 더 보기 메뉴 순서(설정·전체 화면·페이지 제외), 설정 창 section 순서, 웹툰 선택의 즉시 반영, 창을 닫은 뒤 포커스 복귀를 확인했습니다. Sol(gpt-6.1-sol) 독립 리뷰 1회(P2 1건 반영). 문서 링크·anchor 검사 0건, Compose config·git diff --check 통과.
    • NOT RUN: backend·crawler 단위 검증, run-schema.ps1·run-compose-compat.ps1·run-operations.ps1(해당 영역 변경 없음), network runner, 실기기 수동 확인.

    게시 확인

    • 릴리스 소스: 9d45b3f0 (annotated Git 태그 5.18.0 대상).
    • backend 5.18.0·latest(새 빌드, APP_VERSION=5.18.0): sha256:c812a3c2ac27d61d58a9117a732137d1f7ef965cf9513efb727d5794759aca10
    • web 5.18.0·latest(새 빌드): sha256:8845999a131012e378797234f60cb8bbce49cccab8e11001b93e2137e5267e25
    • crawler latest(5.18.0 태그 없음, 5.17.0 digest 유지): sha256:1123e8eaf5fbb1596e840d353cebdccee7b827c3d1e27e3cdb8b17917b9e225e
    • nginx latest(5.18.0 태그 없음, 5.10.0 digest 유지): sha256:552b18eddb10c22b7dbfaee60a6e1bacd20f8b004892c8209f3b48f508c3a780
    • byedpi latest(5.18.0 태그 없음, 5.15.0 digest 유지): sha256:bc1a69ccfe5f0fc8185b43bd3ca4802a7f1f0bfd1487a141b7f052958d26dcc4
    • ops/publish-images.ps1 -Version 5.18.0 -Publish -ChangedOnly가 첫 실행에서 완료됐고(Registry tags verified for 5.18.0.), -VerifyOnly -ChangedOnly -ServiceNames web,backend와 docker manifest inspect로 다섯 latest가 모두 있는지 다시 확인했습니다.
    Downloads 2