• 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