-
hanyul released this
2026-10-21 20:16:23 +09:00 ARCA 0.1.23 변경 사항
이전 버전: 0.1.22. LINKS 요청 2건(2026-10-21,
start-focus-option·restart-fresh-backing) 대응 release다. native runtime(mkxp-z core JS·WASM)·Builder 동작·contracts schema는 0.1.22와 같다. player SDK만 바뀌었고 공개 API는 추가만 했다(기본값·기존 오류 code 불변). version 문자열과 SDK bundle 때문에 runtime ZIP·contracts tgz·Builder archive·npm tgz bytes와 release pin은 새로 고정된다.포함 변경 요약
SDK: 자동 canvas focus 끄기(
focus, T81-A 채택)focus?: boolean을launchRgss23Player·prepareRgss23Player옵션과prepared.start({ focus })에 추가했다(start 값이 그 start와 이후 재시작에 우선, 기본true= 이전 동작).false면 start 끝, 재시작 뒤 입력 해제, runtime video 초기화(선부팅 중 또는 start 직후)의 gesture 없는canvas.focus()를 모두 건너뛴다. canvaspointerdown·mousedown에 의한 focus는 유지한다. video 초기화 focus는 runtime 변경 없이 SDK가 첫 geometry 보고까지 canvas ownfocusshim으로 막는다.- 요청문이 인용한 Nostalgist
element.focus()(0.1.22rgss23-player.mjs6032·6372행)는respondToGlobalEvents: false일 때만 실행되며 SDK는 기본값true를 유지하므로 도달하지 않는다(단위 테스트로 고정).
SDK: 새 backing으로 재시작(
restart({ presentation: "fresh" }), T81-B 부분 채택)- host가 명시적으로 부르는
restart({ presentation: "fresh", canvas? })가 save commit 뒤 runtime instance를onExit·stopped없이 내리고 같은 handle에서 같은 launch 입력(storage·save adapter·지연 콘텐츠 reader·cache·presentation·focus·음량)으로 새 instance를 시작해 현재 CSS 크기 × DPR backing으로synced가 된다. 기본restart()는 그대로 fast restart(backing 유지)다. - runtime이 canvas를
transferControlToOffscreen으로 넘기고 되돌릴 수 없으므로 새 canvas element가 필요하다.canvas를 생략하면 SDK가cloneNode(false)로 같은 DOM 위치에서 교체하고 읽기 전용player.canvas가running통지 전에 새 element를 가리킨다. 기존 element의 host listener는 옮겨지지 않는다. - 숨김·분리 canvas는 teardown 전에
TypeError로 거부한다. commit 실패·취소는SAVE_FAILED/CANCELLED(recovery: "running"), teardown 뒤 실패는FAILED(recovery: "relaunch-required", 자동 재시도 없음)이며stop()은 진행 중인 fresh 재시작을 중단한다. 교체 중setVolume·setMuted는 기록만 하고 새 instance에 적용한다. - 가산 타입:
Rgss23RestartPhase에relaunching,Rgss23RestartResult에presentation: "retained" | "fresh",completion에native-started,Rgss23HostFileSystem.release?(). 리터럴 타입을 고정한 host 코드는 pin 갱신 때 컴파일 오류가 날 수 있다. - 실행 중 in-place backing 재할당(
display-quality-options3항)은 stale tile 위험으로 계속 보류다.
smoke·문서
runtime:smoke:dpr -- --scenario focus|resize-restart추가(fixturedpr-player.js가산 변경). 기존matrix·hidden-start는 그대로다.- player SDK README(입력과 focus, 빠른 재시작, 화면 표시, API 도입 버전), LINKS 가이드 0.1.23 절, 호환성 매트릭스 0.1.23 행, 로드맵 한 절. release bytes에 들어가는
packages/contracts/README.md·packages/packager-rgss/README.md·tools/release/npm/README.md는 바뀌지 않았다.
자동 근거(2026-10-21, 게시 전 로컬 SDK, native runtime 0.1.22 pin)
runtime:smoke:dpr --scenario focusChrome 155·Firefox 153:focus: false로 modal dialog 입력란이 focus를 가진 채 선부팅·gesture 없는 start → 입력란 focus 유지, 입력 키가 입력란에 남음, canvas 클릭 뒤 ArrowDown이 게임에 도달PASS. 기본값 cell은 canvas가 running·첫 presentation에서 activePASS(Firefox는 modal inert 때문에 이후 BODY로 떨어지는 현상을 LINKS 보고와 같게 관측).runtime:smoke:dpr --scenario resize-restartChrome·Firefox × DPR 1·2: 맞춤 시작 → CSS 544×416으로 변경(scaled) → fresh 재시작 → backing 544×416·1088×832synced, 사분면 표시, 재시작 전 save 읽기PASS.- 기존 matrix cell(Chrome DPR 2 390×844)
PASS로 fixture 변경이 기존 scenario를 바꾸지 않음을 확인. - host 제공 canvas 경로·지연 chunk cache 재사용은 단위 테스트만, LINKS 적용·실기·사용자 acceptance는
NOT RUN.
host 적용 순서
LINKS 적용 가이드 0.1.23 절을 따른다. 요약:
@rgss23/arca전체를 0.1.23 exact pin으로 올린다(runtime·SDK·Builder·contracts 함께).- 선부팅의 video 초기화 focus는
prepareRgss23Player()중에 일어나므로 frame은 prepare에focus: false를 주고player-start.focus를prepared.start({ userActivation: true, focus })로 넘긴다. - 설정
재시작은restart({ presentation: "fresh" })를 쓰고, frame의 focus·터치 pad listener를player.canvas로 다시 건다.FAILED뒤 전체 launch에는 새 canvas element가 필요하다. run-player-lazyfocus probe와run-player-dprresize→재시작 cell을 assert로 바꾼다.
NOT RUN
- LINKS opaque frame 적용, 실기 모바일·DPR, 사용자 acceptance(제공 VX/VX Ace acceptance 기준은 2026-08-05 그대로).
- 기존 browser smoke 행렬 재실행(native runtime 불변; SDK 변경은 단위 테스트·DPR smoke로 확인), Linux 재현.
배포 검증
- tag:
0.1.23(annotated, tag objectf6f980c883) - release source:
90274419f6(버전 커밋) - manifest SHA-256: 96044236f1a0d6dac8d1d24288846bc8bf7c73d85d9ffb0d0cc3976df05d626d
- Builder digest(pin): sha256:b634496385869a230b21b7c53870b041056f009f502e54f1efa2a58b97e32d42 · Builder config digest(pin
builderConfigDigest): sha256:cd2899b3e1574238e4838ae8beac6a6af8f59f3f4b159432f2fe258d31b076b2 - artifact SHA-256: builder 251559fe5c0f9f870a09a99aa9894d2c75ff8f266638238ee8d32cd57da0ebbc · contracts ee5528f2eb16de52e1cc11112a80a4cb7697c9d926eaadfd7f0fc63fca66bef1 · runtime 4aa1aadbc24d185857252ea608f7051ad7cbac7c96809c8d0ecfb14fe0555553
- npm: @rgss23/arca@0.1.23 (Forgejo registry),
rgss23-arca-0.1.23.tgzSHA-256 3b8b5b2aa9f59e6aada67532dd5239721c0afcec0b5603a8db795de798155ad0, integritysha512-C1WzYwFrBThQNElvFaFMmG58u63JAqpBiQanbx+5t0mrsiLJtsN0WJ+WcbrTxhpjj03Q4JTToSWFdz0w1Y44Pw== - 게이트(버전 커밋
90274419f6, 2026-10-21):install --frozen-lockfile, 단위 테스트 638개, 타입 검사, release 회귀 47개, browser 도구 회귀 125개,verify:locks, native 준비 recipe 검증,git diff --checkPASS release:build(Builder gate·source-free consumer gate)·release:verify·release:npm:test·release:reproduce: PASS(2026-10-21, source9027441;release:reproduceend-to-end pin·세 artifact·npm byte 동일). Windows·같은 Docker host만, Linux 재현NOT RUN.
asset 7개
파일 크기(B) SHA-256 release-manifest.json2,155 96044236f1a0d6dac8d1d24288846bc8bf7c73d85d9ffb0d0cc3976df05d626drelease-manifest.sha25688 d0d62e3d93f0804ab9adace609fa7b595f60b3c64194162a293f8fc25414c314release-pin.json537 d6b8fb480793574badb9645bd7f33f6fc6363bb470d71628dc813de292c83651rgss23-arca-0.1.23.tgz99,994,584 3b8b5b2aa9f59e6aada67532dd5239721c0afcec0b5603a8db795de798155ad0rgss23-builder-0.1.23.oci.tar61,884,928 251559fe5c0f9f870a09a99aa9894d2c75ff8f266638238ee8d32cd57da0ebbcrgss23-contracts-0.1.23.tgz38,247 ee5528f2eb16de52e1cc11112a80a4cb7697c9d926eaadfd7f0fc63fca66bef1rgss23-runtime-0.1.23.zip45,714,519 4aa1aadbc24d185857252ea608f7051ad7cbac7c96809c8d0ecfb14fe0555553로컬 경로:
dist/release/0.1.23/,dist/npm/0.1.23/rgss23-arca-0.1.23.tgz.artifacts.json·npm-package.json은 업로드하지 않는다.Downloads 9
-
release-manifest.json
2
2.1 KiB
2026-10-21 20:17:05 +09:00 -
release-manifest.sha256
2
88 B
2026-10-21 20:17:06 +09:00 -
release-pin.json
2
537 B
2026-10-21 20:17:06 +09:00 -
rgss23-arca-0.1.23.tgz
2
95 MiB
2026-10-21 20:17:08 +09:00 -
rgss23-builder-0.1.23.oci.tar
2
59 MiB
2026-10-21 20:17:11 +09:00 -
rgss23-contracts-0.1.23.tgz
2
37 KiB
2026-10-21 20:17:13 +09:00 -
rgss23-runtime-0.1.23.zip
2
44 MiB
2026-10-21 20:17:14 +09:00 -
Source code (zip)
0
2026-10-21 20:16:23 +09:00 -
Source code (tar.gz)
0
2026-10-21 20:16:23 +09:00