2026-08-13

요약 (AI 작성)

편집기를 하나의 Term 종류로 승격한 날입니다. SurfaceKind 에 editor 를 더해 타입 자리를 만들고 kind == .web 로 뭉뚱그려 있던 8곳을 분류한 뒤, 편집기 Term 을 만들어 파일을 붙이고 훅이 파일을 편집기 Term 으로 열어 렌더 블록까지 잇도록 했습니다. 프레임 조립은 chrome 컴포넌트로 올렸고, 사이드바 아이콘에서 편집기가 빠져 있던 것도 채웠습니다. 렌더 쪽에서는 배경 quad 가 자기 본문을 덮고 있던 것을 layer 3 → 2 로 고치면서 합성 층에 이름을 줘 Lab 과 제품이 갈리던 자리를 없앴고, 배경이 텍스트를 덮는 것을 Lab 게이트가 잡도록 했습니다. 편집기 배경은 terminal_bg 토큰으로 터미널과 같은 색을 쓰되 창 투명도는 그 역할에만 걸고, 본문에는 창 padding 을 적용하지 않도록(grid → body) 정리했습니다.

터미널에서는 wrap 이음의 유령 공백 문제를 뿌리부터 팠습니다. 안 쓴 칸과 쓴 공백을 구분하는 것에서 시작해(동작 무변) soft-wrap 이음이 wrap 채움을 내용으로 삼지 않게 하고, BCE 로 칠한 화면에서도 같은 규칙이 서도록 했으며, 중립 렌더 계층도 안 쓴 칸을 빈 칸으로 보게 맞췄습니다. 이어 화면을 지워도 스크롤백에서 줄이 계속 이어지던 문제를 잡아 홈에서의 ED 0·ED 1 과 0행을 비우거나 덮는 연산도 스크롤백 wrap 을 끊도록 했습니다. 폰트는 셰이핑을 run 단위로 묶고 합자를 설정으로 빼 성능을 손봤습니다.

모바일은 실제로 쓸 수 있는 수준까지 올라왔습니다. 스크롤로 화면 밖 출력을 보게 하고(M4b1), 길게 누르면 잡고 끌면 스크롤되는 선택(M4a·M4b2)과 키바 옆 copy 로 꺼내는 복사(M4b3), 소프트 키보드에 없는 키를 만드는 보조 키바(M4b4)를 붙였으며, 이모지를 컬러 아틀라스로 굽고 그리도록 했습니다(M4a6). 선택 중 화면이 흐르던 것, iOS 포인터, iOS 에서 셸 따옴표와 -- 플래그를 못 치던 것, 번들 폰트에 없는 기호가 영구 공백이던 것도 고쳤습니다. session-host 는 CR0b incident writer 를 부트스트랩해 artifact 를 안전하게 영속시키고 managed client publication 을 봉인했으며, incident process 권위를 격리하고 CR0b 의 크로스플랫폼 경계를 맞췄습니다. 앱 종료는 단계를 계측하고 정리 전에 창을 내리도록 바꿨고, SSH 는 로컬 셸이 OSC 7 authority 를 비워 자기 세션을 원격으로 오판하지 않게 고쳤습니다.

커밋

ohah/maru

PR (해당일 생성/머지)

repo#상태제목
ohah/maru#2165mergedfix(mobile): 번들 폰트에 없는 기호가 영구 공백이던 것을 채운다
ohah/maru#2164mergedfeat(session-host): CR0b incident publication 기반 구축
ohah/maru#2163mergedfix(ssh): 로컬 셸이 OSC 7 authority를 비워 자기 세션을 원격으로 오판하지 않는다
ohah/maru#2162mergeddocs(mobile): 계약 문서가 구현보다 뒤처진 두 자리를 맞춘다
ohah/maru#2161mergedtest(chrome): 헤더 고정 quad 가 scissor 를 견디는지 골든이 본다
ohah/maru#2160mergedfix(session-host): 테스트 임시 디렉터리를 열 때 잔여물을 걷는다
ohah/maru#2159mergedfeat(mobile): 이모지를 컬러 아틀라스로 굽고 그린다 (M4a6)
ohah/maru#2158mergedfix(editor): 배경 quad가 자기 본문을 덮고 있었다 — 합성 층을 잡고 Lab 게이트를 세운다
ohah/maru#2157mergedfix(sidebar): 카드 호버 밴드가 상태바를 덮지 않게 뷰포트 바닥에서 자른다
ohah/maru#2156mergedfix(terminal): 안 쓴 칸과 쓴 공백을 구분해 wrap 이음의 유령 공백을 없앤다
ohah/maru#2155closedfix(terminal): 넓힌 뒤 커서 줄을 복사할 때 패딩 공백이 안 끼게 한다
ohah/maru#2154mergedfix(sidebar): 에이전트 행의 상태 마커를 두 형태 모두 선두에 둔다
ohah/maru#2153mergedfix(terminal): 화면을 지워도 스크롤백에서 이어지던 줄이 안 끊겼다
ohah/maru#2152mergedfeat(mobile): 복사 — 키바 옆 copy 로 잡은 것을 꺼낸다 (M4b3)
ohah/maru#2151mergedperf(font): 셰이핑을 run 단위로 묶고 합자를 설정으로 뺀다
ohah/maru#2150mergedfix(mobile): 선택 중에 화면이 흐르던 것 + 여러 줄 확인 + iOS 포인터
ohah/maru#2149mergedfeat(session-host): seal managed client publication
ohah/maru#2148mergedfeat(mobile): 선택 — 길게 누르면 잡고 끌면 스크롤이다 (M4a + M4b2)
ohah/maru#2147mergedfix(sidebar): 토글 행에서 같은 파형을 두 번 그리지 않는다
ohah/maru#2146mergedfeat(mobile): 보조 키바 — 소프트 키보드에 없는 키를 만든다 (M4b4)
ohah/maru#2145mergedfix(mobile): iOS 에서 셸 따옴표도 -- 플래그도 못 치고 있었다
ohah/maru#2144mergedrefactor(editor): 프레임 조립을 chrome 컴포넌트로 올린다
ohah/maru#2143mergedfeat(session-host): bootstrap CR0b incident writer
ohah/maru#2142mergedfeat(mobile): 스크롤 — 화면 밖으로 나간 출력을 볼 수 있게 한다 (M4b1)
ohah/maru#2141mergeddocs(trace-replay): 셸 이벤트 스트림의 드레인 제약을 단일 출처에 적는다