• ARCA 0.1.17

    ARCA 0.1.17 변경 사항

    이전 버전: 0.1.16. host가 그린 터치 컨트롤을 게임에 연결하는 player SDK 가상 입력 API를 추가하고, 게임패드를 Xbox·PlayStation 관례(하단=결정)로 정책화하며, reference app에 터치 기기 전용 on-screen pad와 gamepad·touch-pad Edge 자동 smoke를 더한 release다. native runtime(mkxp-z core JS·WASM)은 0.1.16과 같다. 삭제된 공개 API는 없고 새 공개 export는 player SDK의 player.input(Rgss23PlayerInput, Rgss23InputButton)뿐이다. rgss23-runtime-status-v1, 오류 code enum, inspection v1/fingerprint ABI, contracts schema, Builder subcommand·기본 출력·exit code는 그대로다.

    업그레이드 시 확인할 동작 변경

    • 게임패드 배치(관측 동작 변경): SDK가 RetroArch user-1 joypad bind를 명시해 W3C standard 배치의 하단 버튼(A/×)=결정(RGSS C), 오른쪽(B/○)=취소(RGSS B), 왼쪽(X/□)=RGSS X, 상단(Y/△)=RGSS A, LB/RB=L/R, LT/RT=CTRL/SHIFT, Start=ALT, D-pad=방향으로 둔다. 0.1.16까지는 RetroArch 기본(오른쪽=결정)이었다. 왼쪽 스틱은 D-pad로 변환되고, input_max_users=1로 두 번째 pad가 cursor patch의 mouse 버튼으로 해석되지 않으며, gamepad 메뉴 combo는 없다. 게임패드는 항상 활성이고 끄거나 배치를 바꾸는 host option은 없다. opaque iframe host는 allow에 gamepad * 위임을 추가한다. 키보드·mouse 별칭은 바뀌지 않았다.
    • 입력 공유 참조 카운트(관측 동작 동일, 경계 사례 변경): 물리 키 별칭·canvas mouse fallback·가상 입력이 같은 RetroPad 버튼을 출처별로 세어 모든 출처가 뗐을 때만 뗀다. 늦게 도착한 물리 keyup은 이미 해제한 입력을 다시 떼지 않고, 다른 출처가 누르고 있으면 그 누름을 복원한다. 기존 installRuntimeInputBridge 콜백 타입은 그대로다.
    • artifact identity: runtime ZIP은 SDK module(dist/rgss23-player.mjs)·provenance.json·SHA256SUMS만 0.1.16과 다르고 core JS·WASM·license는 같다. contracts tgz는 package.json만 다르다. Builder OCI digest는 producer version·pnpm 12.10.1 corepack 입력으로 바뀐다. host는 release pin·Builder digest를 함께 적용한다.

    추가된 API·계약

    • @rgss23/player-sdk Rgss23PlayerHandle.input: setButton(button, pressed): boolean, releaseAll(): void. 버튼 up·down·left·right·a(RGSS C 결정)·b(RGSS B 취소)·x(RGSS A)·y(RGSS X)·l·r. 재시작 중·stop() 이후·종료·runtime 오류 상태에서는 누름을 무시하고 false를 반환하며, hidden·pagehide·재시작·정지에서 가상 입력을 해제한다. SDK는 UI를 그리지 않으며 host가 Pointer Events·touch-action: none으로 컨트롤을 그려 호출한다. 세부는 player SDK README의 Host 가상 입력·게임패드 절이 소유한다.

    저장소·도구 정리

    • reference app: 주 포인터가 coarse이고 navigator.maxTouchPoints > 0인 기기에서만 보이는 최소 on-screen pad(방향 4개·결정·취소), ?touch-pad=on|off 재정의, canvas touch-action: none, dvh(+vh fallback). ARCA SDK가 아니라 reference consumer의 UI다.
    • browser smoke: browser:smoke:edge:vx-ace:gamepad(표준 gamepad stub)·browser:smoke:edge:vx-ace:touch-pad(CDP touch emulation)가 title→새 게임→이동→action event→취소 메뉴를 pad만으로 수행하고 launch 경계 뒤 다른 입력 0건·화면 기준 대비 열림/복귀 관계를 계약한다. 두 시나리오는 route·화면 계약 helper를 공유한다. 기존 gold·시나리오는 바뀌지 않았다.
    • 도구·의존성: vite 8.3.3, pnpm 12.10.1(packageManager·SDK 검증 image). release:reproduce가 pnpm 12 corepack native 실행 파일을 node로 실행하던 결함을 고쳤다. VX standalone native 진단은 실행 환경이 사라져 BLOCKED로 동결했다(lock은 2026-07-17 근거 유지).

    검증 범위와 알려진 제한

    합성·단위 검증, 제공 fixture 자동화와 사람의 입력·실제 청취·완전 종료 저장 acceptance는 별도 판정한다. 이번 release는 새 사용자 acceptance를 포함하지 않는다.

    • 게임패드·터치: Edge 154 자동 smoke(gamepad stub·CDP touch emulation)만 PASS다. 실물 게임패드, 실기 터치, 브라우저의 실제 Gamepad API 노출·첫 제스처·Permissions-Policy·visibility 게이트, iOS Safari는 NOT RUN이다. binding 키의 늦은 keyup 직후 게임이 한 frame 뗌을 관찰할 수 있는지는 브라우저에서 검증하지 않았다.
    • native runtime clean rebuild 재현: 0.1.16과 같은 export(JS 2f71fcaa…·WASM d527ce81…)를 사용하며 2026-10-07 판정을 유지한다.
    • Linux release 재현, LINKS 적용은 NOT RUN이다.

    게시 identity와 registry 검증은 현재 상태, 상세 값은 해당 release manifest/pin을 따른다.

    배포 검증

    • release source: e242bcc5ea
    • manifest SHA-256: 1b2ec4aef85e30a1360e7e644441b4164b89e246f2601afd428164c578900696
    • Builder digest: sha256:4db91924116d2ceb025a281f70a035324af446a040b3d1a7af5bd3f29f81396b
    • native runtime: rgss23-core.js 2f71fcaa…, rgss23-core.wasm d527ce81…(0.1.16과 동일).
    • 단위 테스트 469개, 타입 검사, release 회귀 37개, browser 도구 회귀 117개, runtime lock·native 진단 lock·native 준비 recipe 검증, git diff --check: PASS(2026-10-09, host Node 24.18.0·pnpm 12.10.1).
    • release build·verify, npm 생성, source-free SDK/types/contracts/runtime 결속/Builder/CLI 소비: PASS(2026-10-09, release:build·release:verify·release:npm:test).
    • release 재현(release:reproduce, clean detached worktree): PASS(2026-10-09, 수정된 script로 처음 end-to-end 실행: frozen install·같은 volume의 runtime:export·release:build 뒤 pin·manifest·세 artifact·Builder digest·npm tgz byte 동일. 같은 Docker host·Windows만).
    • npm: @rgss23/arca@0.1.17 (Forgejo registry).

    0.1.16 대비 전체 변경

    Downloads 9