-
hanyul released this
2026-10-19 15:23:51 +09:00 LINKS 1.0.15
이 릴리스는 이전 릴리스 1.0.14(
ee9e5a6877) 위에 문서 정리(T77), 미뤄 두었던 사용자 결정 15건 적용(T78), schema migration 0005를 더했습니다. 최종 소스는37f9ca3af3, 루트 패키지는 1.0.15, ARCA pin은 exact 0.1.21(변경 없음)입니다. schema가 바뀌어 migration 1개가 적용되며, 적용 뒤에는 이전 image(1.0.14)로 되돌릴 수 없습니다.업그레이드: 1.0.14 → 1.0.15는
sh update.sh만 실행합니다- 갱신 방법: 배포 디렉터리에서
sh update.sh만 실행합니다.reset.sh는 실행하지 않습니다. - migration 0005 적용:
update.sh가[4/6] Checking the database schema version뒤에Pending migrations: 1한 줄을 출력하고,[5/6]의up때migrationservice가0005_edition_notes_sidecar_method를 적용합니다(schemaaa95c192…→d37d2c2e…). 이 migration은 viewinstallation_localized_text_values하나를CREATE OR REPLACE로 바꿉니다. table·column·권한·행은 바뀌지 않습니다. 성공하면Updated to 1.0.15 (catalog <image id>), runtime.package ready.로 끝납니다. - 이전 image로 복귀 불가: migration이 적용된 DB는 1.0.14 image의 사슬 밖(
mismatch)입니다. 1.0.14를 rollback pin으로 지정하면update.sh가[4/6]에서Run: sh reset.sh로 멈추고 아무것도 바꾸지 않습니다. 이 안내를 따르지 마십시오(데이터를 지우는 초기화입니다). pin을 비우고sh update.sh를 다시 실행하면 1.0.15로 돌아옵니다. LINKS는 backup을 제공하지 않습니다. - 배포 파일 변경:
update.sh가 받는 5개 파일 중ops/deploy-registry.sh(update.sh자신),compose.yaml, **infra/docker/Caddyfile**이 바뀌었고update.sh가 셋을 설치합니다. 실행 중인 1.0.14update.sh는 새update.sh를 받아 한 번 이어 실행합니다. 새update.sh는 0.x schema 상태legacy-migrations를 더 이상 구분하지 않습니다(그런 DB는unversioned로 같은 초기화 안내).compose.yaml은runtime-package-coordinatorimagedocker:24.0.9-cli를 digest로 고정합니다(다른 구성은 동일).Caddyfile은 Permissions-Policy를 site 공통 header에서 catalog handle로 옮겨/player/*응답에 Player 자신의 값(clipboard 차단 포함)이 그대로 나가게 합니다.reset.sh,ops/runtime-package-coordinator.sh는 1.0.14와 byte 단위로 같고.env.example도 바뀌지 않아.env.production에 할 일은 없습니다.
cd /volume1/docker/links sh update.sh운영자 작업은 없습니다. 기존 MV/MZ·VX/VX Ace 실행 버전, 세이브, RTP, 설정은 그대로입니다. 원본 game library는 읽기 전용으로 유지합니다. 관리자가 1.0.14에서 열어 둔 match 후보 검토 페이지의 cursor는 갱신 뒤 거부되므로 화면을 새로 고칩니다.
변경 내용
문서 정리(T77)
docs/,.agents/,README.md,AGENTS.md를 현재 코드·설정·실행 방식에 맞게 다시 썼습니다. 날짜별 일지, ARCA 버전별 적용 변경 절, 제거된 표면의 중복 목록, 참고 조사 문서를 지웠고 개발 계획은 주제별로, 완료 기준선은 현재 제공 범위와 최신 검증만 남기도록 재구성했습니다. 깨진 anchor는 저장소 전체 대조로 0건입니다.
API·web(사용자 결정 2026-10-19)
- match 후보 cursor는 모든 filter와 정렬을 query key에 넣습니다. 이전 key 배치로 발급된 cursor는 다른 조건의 cursor와 같은
400 CURSOR_INVALID로 거부됩니다. - Player session 응답의
expiresInSeconds는 필수이고 부모 화면의expiresAt·browser 시계 fallback을 지웠습니다. - 버그 신고의 같은 key·다른 내용 응답을 다른 route와 같은
409 IDEMPOTENCY_CONFLICT로 통일했습니다(REPORT_CONFLICT제거). - 상세 행동 영역의 도달 불가 guest 분기(
로그인하고 저장)를 지웠습니다./installations의missing·stabilityfilter와 cursor 페이지는 관리자 진단용으로 유지합니다.
Schema migration 0005·DB 상태
0005_edition_notes_sidecar_method: 판본 메모의 local sidecar 값이 제목과 같이 methodfolder-derived가 되어, 한국어 후보가 없을 때 manual 판본 메모가 sidecar 값보다 앞섭니다. 기준 schema도 같은 변경을 담습니다.- 0.x DB 감지 상태
legacy-migrations를 코드·update.sh·기록기·문서에서 지웠습니다.
Infra·scanner
- gateway는 Permissions-Policy를 catalog 응답에만 붙이고
/player/*응답에는 Player 값이 한 줄로 나갑니다. runtime-package-coordinatorimage를 digest로 고정했습니다.- local sidecar 경계 표시가 reader와 같은 정확한 이름
.links.json비교를 씁니다. 대소문자만 다른 이름은 경계도 sidecar도 아닙니다(합성 fixture 결과 변화 없음).
검증과 남은 범위
- PASS(릴리스 소스
37f9ca3, 코디네이터 실행): static(Prettier·ESLint·typecheck·docs-static), 전체 unit 183 files·1,588 tests, schema 39 files·277 tests(빈 DB fresh 적용과 baseline+0001~0005 사슬 적용의 구조 등가 포함), 문서 검사,git diff --check,run-catalog-browser(Chromium), no-cache frozen install image build(Lockfile is up to date, 이미지 안 root 1.0.15·migration 5개·자동 갱신 표식), foundation,run-browsermatrix(MZ·MV × Chromium·Firefox browser-acceptance 4개와 guest-play-acceptance 4개 모두 PASS). - PASS(브랜치별 작업자·독립 리뷰어 실행): 배포 기록기
check-deploy-registry91 case, 격리 scanner gate, develop stack의 catalog·/player/*header 관찰(전후 비교), image index digest 대조, 이전 cursor 거부 변이 검증, 로그인 사용자 상세 markup 동일성, 독립 리뷰 R1~R4 병합 가능. - 알려진 제한·NOT RUN: 실제 모바일 기기·실제 망, 실제 VX/VX Ace 게임과 RTP, 실제 오디오 출력. 격리 dind의 1.0.14→1.0.15
update.sh리허설은 실행하지 않았습니다(update.sh변경은 분기 문자열 한 줄이며 기록기 91 case와 독립 리뷰로 확인).
배포 이미지와 파일
- Git annotated tag는 1.0.15이고 최종 소스는
37f9ca3af3(branchmain)입니다. - 단일 linux/amd64 이미지:
git.2ex.dev/hanyul/links:1.0.15=git.2ex.dev/hanyul/links:latest(index digestsha256:9aaba46591f0995703e7d8c244d53961e0c292a0b6bd7eb9a133c227da4c5182, 로컬 image ID와 동일). - release asset은 없습니다. 배포 파일은
update.sh가 tag에서 HTTPS로 받습니다.
Downloads 2
-
Source code (zip)
0
2026-10-19 15:23:51 +09:00 -
Source code (tar.gz)
0
2026-10-19 15:23:51 +09:00
- 갱신 방법: 배포 디렉터리에서