2026-08-15

요약 (AI 작성)

두 달 가까이 별도 라인에서 굴리던 모바일 작업을 main 에 합친 날입니다(161커밋). iOS·Android 이식 가능성을 PoC 로 실측하는 데서 출발해 PoC 를 제품 구조로 옮기고(M0), draw-list 를 인스턴스 드로우 한 번으로 모으고(M1), 빌드를 build.zig 가 소유하게 한 뒤(M1.5) Android IME 를 자체 Java shim 으로 받았습니다(M2). 그 위에 셀 속성·합성 글리프·글자 상자 정렬(M4a3·M4a4), 키를 코어 인코더에 태우는 경로(M4a2), 스크롤·선택·복사·보조 키바(M4b1~M4b4), 컬러 아틀라스 이모지(M4a6)를 차례로 얹었습니다. 한글 IME 는 iOS 를 UITextInput 으로 올려 실측한 뒤 보류로 적었고, 프레임 페이싱은 vsync 세기에서 경과 시간 기준으로 바꿨습니다. 합류 뒤에도 코드 리뷰와 적대적 검증이 낸 결함을 재현해 고치는 작업이 하루 종일 이어졌습니다.

Windows 지원도 문서부터 열었습니다. 플랫폼 계약과 구현 계획을 세우고 적대적 검증 12라운드를 반영해 기본 셸을 PowerShell 로, OSC 9;9 authority 를 확정한 뒤, 절대경로 판정을 [0]=='/' 에서 떼어내고(W1.5) main.zig 가 Windows 에서 빌드·실행되게 했습니다(W2). 곁들여 테스트의 POSIX 전제를 경계에서 명시하고 PosixWalker 복제 23개를 정본 하나로 줄였습니다.

소스 컨트롤 도크는 쓰기까지 이었습니다. argv 조립과 안전 술어(P2a), 실행 경로와 교착·EPIPE 방지(P2b), 도크 스테이징 배선(P2c), 멀티라인 TextArea 층(P3a)을 순서대로 올렸고 스테이징을 낙관적으로 반영했습니다. 편집기는 N1.5 d·e 로 비교 본문에 추가·삭제 색을 얹고 세로 스크롤을 붙인 뒤 바뀐 글자만 한 겹 더 진하게 그렸으며, 그 과정에서 강조 배열의 이중 해제 셋과 200 KB 줄 하나에 12.3 MB 를 쓰던 토큰 생성을 잡았습니다. session-host 는 CR2e generation slot 과 재접속 reducer 를 놓고 CR3 세대 교체 브리지·retiring 정산 순서까지 이었습니다.

커밋

ohah/maru

ohah/ohah.github.io

PR (해당일 생성/머지)

repo#상태제목
ohah/maru#2236mergedfeat(session-host): retiring generation 정산 순서 고정
ohah/maru#2235mergedfeat(file-panel): 커밋 입력·버튼을 도크에 배치한다 (P3b)
ohah/maru#2234mergedfix(windows): 적대적 검증이 W2에서 찾은 것을 닫는다
ohah/maru#2233mergedfeat(session-host): CR3c 세대 교체 브리지를 추가한다
ohah/maru#2232mergedfeat(session-host): retired Client 회수 권위를 추가한다
ohah/maru#2231mergedfeat(session-host): CR3b R2c current 세대 게시 추가
ohah/maru#2230mergedfeat(windows): main.zig가 Windows에서 빌드·실행되게 한다 (W2)
ohah/maru#2229mergedfeat(session-host): CR3b R2b cleanup handle 추가
ohah/maru#2228mergedfeat(file-panel): 멀티라인 TextArea 층과 목록 각진 모서리 (P3a)
ohah/maru#2227mergedfeat(session-host): CR3b R2a detach placeholder 게시
ohah/maru#2226mergedtest(file-panel): 소스 컨트롤 도크에 Chrome Lab 시나리오와 골든 셋을 둔다
ohah/maru#2225mergeddocs(mobile): 모바일 config 계약을 세운다 — 스키마·자리·읽고 쓰는 길
ohah/maru#2224mergedfeat(file-panel): 스테이징을 낙관적으로 반영한다 (§7)
ohah/maru#2223mergedfeat(windows): 절대경로 판정을 [0]=='/'에서 떼어낸다 (W1.5)
ohah/maru#2222mergedci(mobile): 계약 판정자를 ubuntu 게이트에 건다
ohah/maru#2221mergedfeat(session-host): e3c3 close event receipt를 봉인
ohah/maru#2220mergedtest(mobile): 키 미러가 "알아본다" 대신 "어디로 가는가" 를 재게 한다
ohah/maru#2219mergedfeat(terminal-core): OSC 9;9(ConEmu cwd)을 받아 cwd 축에 태운다
ohah/maru#2218mergedfeat(session-host): e3c2 typed external receipt로 direct-release 경계를 봉인
ohah/maru#2217mergedfeat(session-host): reconnect drain coordinator를 설치한다
ohah/maru#2216mergedfix(mobile): 리뷰가 낸 여섯을 재현해 고치고 하나를 반증한다
ohah/maru#2215mergedfeat(session-host): reconnect admission을 stable runtime에 결속한다
ohah/maru#2214mergedfeat(session-host): reconnect admission 예산 정책을 고정한다
ohah/maru#2213mergedfeat(editor): 바뀐 글자만 진하게(N1.5 e) + 헤더 밴드 겹침 수정 + 경로 breadcrumb
ohah/maru#2212mergedtest(session-host): reconnect resident RSS 측정 경계를 고정한다
ohah/maru#2211mergedfix(android): 창이 부서져도 이모지가 남게 컬러 아틀라스 원본을 든다
ohah/maru#2210mergedfix(mobile): 코드 리뷰 상위 3건을 재현하고 고친다 — 글자 경계를 host 경계에서 지킨다
ohah/maru#2209mergedfeat(file-panel): 도크에서 스테이징을 배선한다 (P2c)
ohah/maru#2208mergedtest(session-host): reconnect resident base를 고정한다
ohah/maru#2207mergedfeat(session-host): reconnect generation executor를 제품 runtime에 결속한다
ohah/maru#2206mergeddocs(windows): Windows 플랫폼 계약과 구현 계획
ohah/maru#2205mergedfeat(mobile): 모바일 라인을 main 에 합친다 (161커밋)
ohah/maru#2204mergedfeat(file-panel): 소스 컨트롤 쓰기 argv 조립과 안전 술어 (P2a)
ohah/maru#2203mergedfeat(session-host): 제품 generation slot 저장소를 활성화한다
ohah/maru#2202mergedfix: non-macOS 호스트에서 중립 레이어 테스트가 돌게 한다
ohah/maru#2201mergedrefactor(session-host): CR2e generation 접근을 단일 facade로 모은다
ohah/maru#2200mergedfeat(session-host): add CR2e prepared reconnect owner
ohah/maru#2199mergedfeat(session-host): add CR2e generation slot substrate
ohah/maru#2198mergedfeat(session-host): add CR2e reconnect reducer and sealing substrate