2026-08-05
요약 (AI 작성)
CIM 이관을 divider·scrollbar·탭 드래그까지 넓혀 마무리한 날입니다. CIM2c·2d 로 divider 드래그를 실제 AppKit 경로로 끌어 coalescing 을 증명하고 웹 패널이 덮은 divider 도 잡히는지 확인했고, CIM3a~3d 로 scrollbar 를 capture 대상으로 발행한 뒤 drag capture 를 chrome 으로 옮겨 스크롤을 tick 으로 모으고, 네 개의 스크롤 입구가 같은 상태를 움직이는지·그 상태를 이어받는지까지 단언해 닫았습니다. CIM4a 로 탭 순서 preview 를 model 밖 transaction 으로 꺼내 터미널 탭 드래그를 model 을 건드리지 않고 끌도록 했고, 복원 트리거를 각각 고정하며 끄는 도중의 실제 프레임을 스모크에 남겼습니다. 진행 중인 제스처를 오버레이보다 먼저 라우팅하고 primary 버튼으로 한정하는 수정, 탭 hit-test 를 버튼 무관하게 고치고 preview 가 영속 스크롤로 새지 않게 한 수정도 함께 들어갔습니다.
렌더링에서는 클리핑 책임을 backend 로 넘겼습니다. chrome quad 클리핑을 GPU per-quad 로 옮기고(ABI v95) 컴포넌트가 지고 있던 책임을 걷어냈으며, 제품 Metal 셰이더 컴파일을 CI 가 검증하도록 했습니다. 셀 경로 텍스트도 published clip 을 소비하게 하고 모달 scissor 의 원점을 좌상단으로 정정했으며, 배지 geometry 를 ui 프리미티브로 추출하면서 모든 컴포넌트를 ui 프리미티브로 구현한다는 방향을 문서에 명시했습니다. 시각 회귀는 골든 이미지로 자동 검증하도록 바꿔 — 도크 시각 계약을 골든으로 고정하고, 골든을 Chrome Lab 캡처로 옮기고, 스모크가 배선된 곳에서 캡처 부재를 실패로 만들고, radius 도형의 잘린 변까지 고정했습니다. Lab 은 제품과 같은 measured text 경로로 이관하고 두 텍스트 패스를 한 atlas 세대에 배치했으며, Lab 과 제품의 text artifact 차이를 문서로 명시했습니다.
세션 도크는 플리커와 기하 문제를 뿌리부터 잡았습니다. 텍스트를 같은 tick 에서 셰이핑해 빈 프레임을 없애고, 클리핑을 emit 시점 판정에서 픽셀 단위로 옮겼으며, 목록이 viewport 에 맞춰 줄어들던 것이 스크롤 플리커·글자 넘침·빈 액션 버튼의 공통 원인이었음을 찾아 고쳤습니다. 드래그 가능한 스크롤바를 내고 스크롤 겹침을 없앴으며, 도크가 터미널 키(Enter, /)를 뺏지 않도록 했습니다. 텍스트 크기는 터미널 글자에 맞춰 한 단계 낮추고 카드 높이 하한이 그 typography 를 가리지 않게 조정했으며, 카드 텍스트 폭 예산에서 disclosure 슬롯을 예약했습니다. 적대적 검증에서 나온 도크 결함 다섯 개도 함께 정리했습니다. 그 밖에 릴리스 서명 주체(조직명·Team ID)를 저장소에서 빼고 관련 테스트·픽스처의 조직명을 synthetic 값으로 바꿨습니다.
커밋
ohah/maru
- test(boundary): 도크 결함 묶음 뒤 app_session reflection inventory를 다시 검토한다
- test(golden): 카드 disclosure chevron이 옮겨간 만큼 도크 골든을 갱신한다
- fix(chrome): 적대적 검증에서 나온 도크 결함 다섯 개를 고친다
- feat(chrome): 세션 도크에 드래그 가능한 스크롤바를 낸다
- fix(chrome): 카드 텍스트 폭 예산에서 disclosure slot을 예약한다
- fix(chrome): 세션 도크 텍스트를 같은 tick에서 셰이핑해 빈 프레임을 없앤다
- docs(chrome): 모든 컴포넌트를 ui 프리미티브로 구현하는 방향을 명시한다
- fix(macos): 모달 scissor를 좌상단 원점으로 정정한다
- refactor(chrome): 배지 geometry를 ui 프리미티브로 추출한다
- fix(chrome-lab): 두 텍스트 패스를 한 atlas 세대로 배치한다
- refactor(chrome-lab): 제품과 같은 measured text 경로로 이관한다
- docs(golden): Lab과 제품의 text artifact 차이를 명시한다
- fix(chrome): 셀 경로 텍스트도 published clip을 소비하게 한다
- chore(release): 서명 주체(조직명·Team ID)를 저장소에서 뺀다
- test(session-host): 코드 서명 파서 테스트의 조직명을 바꾼다
- fix(chrome-lab): fixture의 실제 조직명을 synthetic 값으로 바꾼다
- test(golden): radius 있는 도형의 잘린 변을 골든으로 고정한다
- docs(chrome): continuous drag의 소비 지점이 tick임을 계약에 명시한다
- fix(chrome): 파일 트리 스크롤바 드래그를 tick이 소비하게 한다
- fix(chrome): 토스트 예외를 걷어내고 Escape 판정을 제스처 존재로 되돌린다
- test(chrome): 탭 드래그 스모크가 끄는 도중의 실제 프레임을 남긴다
- test(chrome): 탭 드래그 복원 트리거를 각각 고정하고 실제 AppKit 경로로 닫는다
- test(golden): 시각 골든을 Chrome Lab 캡처로 옮긴다
- test(golden): 스모크를 배선한 곳에서는 캡처 부재를 실패로 만든다
- test(golden): 도크 시각 계약을 골든 이미지로 자동 검증한다
- fix(chrome): 진행 중인 제스처를 오버레이보다 먼저 라우팅하고 primary 버튼으로 한정한다
- fix(chrome): 탭 hit-test를 버튼 무관하게 고치고 preview가 영속 스크롤로 새지 않게 한다
- fix(chrome): 탭 드래그 preview를 읽어야 할 자리를 마저 옮기고 commit 권위를 up 좌표로 되돌린다
- test(chrome): app_session reflection 인벤토리 digest를 CIM4b 기준으로 갱신한다
- feat(chrome): 터미널 탭 드래그를 model 밖 preview로 끈다
- feat(renderer): chrome quad 클리핑을 GPU per-quad로 옮긴다 (ABI v95)
- refactor(chrome): quad 클리핑 책임을 컴포넌트에서 backend로 옮긴다
- test(macos): 제품 Metal 셰이더 컴파일을 CI가 검증하게 한다
- fix(session-dock): 카드 높이 하한이 낮아진 typography를 가리지 않게 한다
- test(boundary): app_session reflection 인벤토리 digest를 갱신한다
- feat(session-dock): 도크 텍스트를 터미널 글자에 맞춰 한 단계 낮춘다
- fix(session-dock): 코드리뷰·적대적 검증에서 나온 결함을 고친다
- docs(session-dock): 클리핑·축소·스크롤 캐시 계약을 코드와 맞춘다
- fix(session-dock): 클리핑을 emit 시점 판정에서 픽셀 단위로 옮긴다
- fix(session-dock): 스크롤이 도크 글자를 지우지 않게 한다
- fix(session-dock): 목록이 viewport에 맞춰 줄어들지 않게 한다
- feat(chrome): 탭 순서 preview를 model 밖 transaction으로 꺼낸다
- fix(session-dock): 스크롤 겹침을 없애고 도크가 터미널 키를 뺏지 않게 한다
- test(chrome): scrollbar 드래그를 실제 AppKit 경로로 끌어 CIM3를 닫는다
- test(chrome): 스크롤 입구들이 하나의 상태를 이어받는지까지 단언한다
- test(chrome): scrollbar의 네 입구가 같은 스크롤 상태를 움직이는지 고정한다
- feat(chrome): scrollbar drag capture를 chrome으로 옮기고 스크롤을 tick으로 모은다
- feat(chrome): scrollbar를 capture 대상으로 발행한다
- test(chrome): 웹 패널이 덮은 divider도 잡히는지 실제 AppKit 경로로 닫는다
- test(chrome): divider 드래그를 실제 AppKit 경로로 끌어 coalescing을 증명한다