-
hanyul released this
2026-10-18 19:41:31 +09:00 5.11.0 주요 변경사항
인증 · 세션
- 세션 토큰의
auth_timeclaim이 필수가 되었습니다.auth_time이 없거나 유효하지 않은 토큰(5.4.0 이전에 발급된 토큰)은 첫 요청에서 세션 만료로 거절되고 해당 session이 삭제되므로, 그 사용자는 배포 뒤 한 번 다시 로그인해야 합니다. 정상auth_time토큰은 영향이 없습니다. - session metadata가 Redis eviction으로 비어 있어도 인증은 유지됩니다. 세션 목록에서는 현재 session의
createdAt을 토큰의auth_time으로 보여주고, metadata가 없는 다른 session은createdAt·lastUsedAt을null로 돌려줍니다. 옛 session의createdAt을 touch·renewal 때 다시 채우던 보정은 제거했습니다.
web · 화면 수정
- 운영 관리
이미지 색인패널 상단의 "기존 이미지 등록 · 지문 생성 누적" 문장을 두 줄로 고정해, 누적 수가 길어져도 버튼 줄과 통계 칸이 밀리지 않습니다(390px에서 재현되던 20px 밀림). - 중복 검토 그룹의 판정 라벨은 저장된
detection값으로만 정합니다. 값이 없거나 알 수 없는 그룹은검사 방식 미기록으로 표시하고 더는 파일 목록 일치로 추정하지 않습니다. - 홈 마지막 검색 조건 저장값의 옛
useAdvancedSearch읽기 변환을 제거했습니다. 저장값은 version과 관계없이 검색어·태그·정렬을 함께 읽습니다.
테스트
- 이미지 검색·운영 UI 격리 검증에 운영 패널 숫자가 바뀌어도(999→1,000→12,345, 진행률 0→100%) heading·버튼 줄·통계 칸 좌표가 유지되는지 1440·768·390·320px에서 검사하는 시나리오를 더했습니다.
- 요청 제한(request budget) integration 검증이 고정 시각으로 창 경계를 검사해 호스트 부하에 따른 flake를 없앴습니다. 운영 코드는 Redis 시각을 그대로 씁니다.
- session integration 검사가
auth_time필수·metadata 없는 session 계약과 renewal 뒤createdAt미복원을 고정합니다.
5.10.0 대비 새 기능은 없지만 5.4.0 이전 토큰의 지원을 끝내는 호환 범위 변경이 섞여 있어 minor 5.11.0으로 게시합니다(5.9.0·5.10.0의 호출처 없는 API 제거를 minor로 본 전례를 따릅니다). 필수 환경 키·DB migration·
compose.yml변경은 없습니다.이미지 게시 범위
- 새로 빌드(5.11.0·latest): backend·web. backend는 auth 모듈·request budget service, web은 운영 패널·중복 검토·홈 검색 저장값 코드가 바뀌었습니다. shared·lockfile·Dockerfile은 바뀌지 않았습니다.
- digest 재사용: crawler·nginx(5.10.0 digest), byedpi(5.4.0 digest). 빌드 입력이 같아 기존 digest에
5.11.0·latest태그만 붙였습니다. - 다섯 이미지 모두 5.11.0 태그가 있으므로
IMAGE_TAG=5.11.0으로 고정할 수 있습니다.
NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- backend 배포 뒤
auth_time이 없는 5.4.0 이전 발급 토큰 사용자는 한 번 다시 로그인해야 합니다. 인증 장애가 아니라 의도된 세션 만료입니다. - backend 교체 전 crawler를 정지하는 배포 절차 때문에 실행 중인 E-Hentai 수집 job은 운영 화면에서 수동 재개가 필요합니다.
compose.yml·.env.example·sql/init-db.sql은 5.10.0과 같습니다. 운영이 이미 5.10.0 Compose라면 이미지만 바뀝니다.- rollback: 5.10.0 이미지로 되돌릴 수 있습니다(DB 변경 없음).
검증
- 병합 main
5cbbab47(앱 코드는 릴리스 commit과 같음)에서 개발 stack 재빌드(backend·web·log-reader, 9개 컨테이너 healthy,/api/health/ready200),run-unit.ps1 -Workspace all(backend 80 suites·614 tests, crawler 71·923, web 140·1,738, lint·typecheck 포함),run-integration.ps1전체,run-passkey.ps1, 이미지 검색·운영 UI 격리 검증(1440·768·390·320px, 숫자 변동 시나리오 포함), 북마크 UI 격리 검증(1440·768·390·450·320px), 문서 검증(개발·운영 Compose config,git diff --check, Markdown 링크·anchor 23개 파일 0건)이 통과했습니다. - 릴리스 commit에서
run-compose-compat.ps1(5.10.0d8ad4758대비 세 조합)이 통과했습니다(new-image-old-compose·new-image-new-compose·old-image-new-compose). - 세 브랜치(budget-flake·auth-compat·web-compat)는 각각 gpt-6.1-sol 읽기 전용 리뷰를 거쳤고, 리뷰 P2 2건(운영 가이드의 옛 토큰 재로그인 안내, detection 누락 그룹의 라벨)은 수정 뒤 코디네이터 판정으로 병합했습니다.
- NOT RUN:
run-crawler-recovery.ps1(crawler 코드 변경 없음)과 그 밖의 전용 runner, 실제 Hitomi·E-Hentai 통신 runner, 실브라우저 확인(320px에서 다섯 자리 페이지 번호의 진행 label 줄바꿈 후보), 운영 배포.
게시 확인
- 릴리스 소스:
7e9f1e7e(annotated Git 태그5.11.0대상, 앱 코드는5cbbab47과 같음). - backend
5.11.0·latest(새 빌드):sha256:4909f241bb8dcf3841558362d7e71e937e77b70b96c5f7ba7fe949679a0cbd87- linux/amd64 manifest:
sha256:a38aa8f2e232bc39d08c40e872bb0c803a4b0d8c957b289a30abcad3219aee78
- linux/amd64 manifest:
- web
5.11.0·latest(새 빌드):sha256:ba76de419b39c4580a4f1f09031d6aa88132c9c9c9c06e263a945dac4d6856e7- linux/amd64 manifest:
sha256:bb93e0db02e0b16de4a78f6c0554a3877b8da99df85474cf72a94a56573d094f
- linux/amd64 manifest:
- crawler
5.11.0·latest(5.10.0 digest 재사용):sha256:f6db86d6da3cc66b88f199df24de3ec815ba1fe1989db245ddeffdc0c6ba08e2 - nginx
5.11.0·latest(5.10.0 digest 재사용):sha256:552b18eddb10c22b7dbfaee60a6e1bacd20f8b004892c8209f3b48f508c3a780 - byedpi
5.11.0·latest(5.4.0 digest 재사용):sha256:04cf2838499d67a033a3c3101913563bf983e551fee27b891dab0d2f75a4233a ops/publish-images.ps1 -Version 5.11.0 -Publish가 첫 실행에서 완료됐고 다섯 서비스의5.11.0·latest일치를 확인했습니다(Registry tags verified for 5.11.0.).
Downloads 2
-
Source code (zip)
0
2026-10-18 19:41:31 +09:00 -
Source code (tar.gz)
0
2026-10-18 19:41:31 +09:00
- 세션 토큰의