기획 정본: meta/four-environments-fidelity.md (umbrella) §1.1·§1.2 환경 2 (AITC Sandbox App / PWA).
M-track: M1 (fidelity 트랙 — 환경 2 = 실기기 WebKit 엔진 fidelity 겹) · Station: 3-debug · Blocker: none (폰 필요하나 토스 dogfood deploy·relay 불필요 — BLOCK-phone보다 낮은 마찰)
배경
환경 모델이 3종→4겹으로 확장되면서 **환경 2(AITC Sandbox App / PWA)**가 fidelity 사다리의 독립 겹으로 명시됐다 — 환경 1(로컬 브라우저)이 구조적으로 못 하는 실기기 Safari/WebKit 엔진·실 터치/뷰포트를 토스 검수·WebView 없이 채운다.
인프라는 GREEN이다: launcher PWA(e2e/fixture/launcher/), devtools.aitc.dev/launcher/ 배포(.github/workflows/deploy-fixture.yml), e2e/launcher.test.ts(5개 테스트), e2e/fixture/vite.config.ts MPA 엔트리, cloudflared 터널(AIT_TUNNEL=1 pnpm dev:phone), agent-plugin /ait setup-phone-preview 진입점.
하지만 fidelity 겹으로서의 acceptance가 없다 — "메인테이너가 dev 앱을 AITC Sandbox PWA로 실기기에 올려, 환경 1(브라우저)에서 안 보이던 WebKit 엔진 거동을 실제로 관측했다"는 검증이 한 번도 기록되지 않았다. 인프라가 도는 것과, 그 겹이 디버깅에 쓸모 있는 fidelity를 실제로 제공한다는 것은 다르다(#233이 환경 3 relay 루프에 대해 묻는 것과 같은 질문을, 환경 2 PWA 겹에 대해 묻는다).
목표
/ait setup-phone-preview → pnpm dev:phone(터널+QR) → 폰 PWA 설치 → dev 앱 로드 → 환경 1에서 못 보던 실기기 WebKit 거동 1건을 관측하는 루프를 메인테이너가 완주.
환경 1 대비 환경 2가 메우는 fidelity 후보(관측 대상 예):
- CSS
env(safe-area-inset-*) 실값 — 데스크톱 브라우저는 0, 실기기 Safari는 노치/홈 인디케이터 반영.
- 실 터치 이벤트·제스처(
touchstart/touchmove, 100vh 동적 뷰포트 — iOS Safari 주소창 collapse).
- 실 DPR·뷰포트 width(데스크톱 시뮬과 어긋나는 지점).
- WebKit 한정 렌더 quirk(스크롤 바운스,
-webkit- 동작).
Acceptance
경계 (out of scope)
기획 정본:
meta/four-environments-fidelity.md (umbrella)§1.1·§1.2 환경 2 (AITC Sandbox App / PWA).배경
환경 모델이 3종→4겹으로 확장되면서 **환경 2(AITC Sandbox App / PWA)**가 fidelity 사다리의 독립 겹으로 명시됐다 — 환경 1(로컬 브라우저)이 구조적으로 못 하는 실기기 Safari/WebKit 엔진·실 터치/뷰포트를 토스 검수·WebView 없이 채운다.
인프라는 GREEN이다: launcher PWA(
e2e/fixture/launcher/),devtools.aitc.dev/launcher/배포(.github/workflows/deploy-fixture.yml),e2e/launcher.test.ts(5개 테스트),e2e/fixture/vite.config.tsMPA 엔트리, cloudflared 터널(AIT_TUNNEL=1 pnpm dev:phone), agent-plugin/ait setup-phone-preview진입점.하지만 fidelity 겹으로서의 acceptance가 없다 — "메인테이너가 dev 앱을 AITC Sandbox PWA로 실기기에 올려, 환경 1(브라우저)에서 안 보이던 WebKit 엔진 거동을 실제로 관측했다"는 검증이 한 번도 기록되지 않았다. 인프라가 도는 것과, 그 겹이 디버깅에 쓸모 있는 fidelity를 실제로 제공한다는 것은 다르다(#233이 환경 3 relay 루프에 대해 묻는 것과 같은 질문을, 환경 2 PWA 겹에 대해 묻는다).
목표
/ait setup-phone-preview→pnpm dev:phone(터널+QR) → 폰 PWA 설치 → dev 앱 로드 → 환경 1에서 못 보던 실기기 WebKit 거동 1건을 관측하는 루프를 메인테이너가 완주.환경 1 대비 환경 2가 메우는 fidelity 후보(관측 대상 예):
env(safe-area-inset-*)실값 — 데스크톱 브라우저는 0, 실기기 Safari는 노치/홈 인디케이터 반영.touchstart/touchmove, 100vh 동적 뷰포트 — iOS Safari 주소창 collapse).-webkit-동작).Acceptance
/ait setup-phone-preview안내만으로 폰 PWA에 dev 앱을 올려 실기기 Safari/WebKit에서 띄움. 근거: transcript.경계 (out of scope)