2026-08-16

날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.

요약 (AI 작성)

maru의 UI 문자열 국제화를 doc-first로 열고 하루 만에 문자열 이관까지 민 날입니다. 로컬라이제이션 전략과 구현 계획을 문서로 세운 뒤(#2264), 표시 문자열 테이블·조회·보간의 중립 leaf를 세우고 platform 문자열 40건을 키로 옮겼으며(I3-0, #2275), notice 토스트 97건(#2281)과 분기·보간형 notice 13건(#2288)을 차례로 옮겼습니다. 전환한 문자열이 영어로 나오던 회귀를 고치고 확인 대화상자를 키 타입으로 바꿨으며(#2289), 두 언어 테이블의 정합을 테스트로 잠갔습니다. 옮긴 문자열이 아무도 보지 않는 테이블에 쌓이고 있다는 것을 발견해 ui.language를 배선하는 #2292는 이날 PR이 열렸습니다.

Windows는 헤드리스 세로 슬라이스가 서는 데까지 갔습니다. OS별 config 값과 Windows 기본 셸 선택을 넣고(#2238), SpawnRequest를 중립화해 경로를 입구에서 정규화했으며(W3, #2245), ConPTY 자식 attach를 실측으로 닫고 ConPTY 백엔드를 붙였습니다(W4, #2255). 셸 통합 주입은 "갈리는 축은 OS가 아니라 메커니즘"으로 seam을 정한 뒤 cmd PROMPT와 PowerShell 인라인 -Command로 갈랐고(W5, #2280), 상대 경로 링크 감지의 접두 갈래 둘을 열었습니다(W5.5, #2271). hover 밑줄도 클릭과 같은 존재 검증을 거치게 했고(#2285), 한글·일본어 이름이 든 경로를 여는 #2294는 이날 열렸습니다. main.zig는 얇은 디스패처로 되돌리고 "cli/는 순수"를 게이트로 옮겼습니다.

파일 패널은 커밋을 실제로 실행하는 데까지 갔습니다. 전날 열린 커밋 입력·버튼 배치 #2235를 병합하고, 커밋 메시지 입력(P3c-1, #2249)과 실행·저장소별 초안 보관·워크트리 감시(P3c-2, #2260)를 올린 뒤, 목록의 첫 층을 저장소·워크트리로 만들고(#2277) 비활성 저장소의 머리 줄을 하나씩 읽어 채웠습니다(#2283). 편집기는 랩을 끄면 긴 줄의 오른쪽을 볼 수 없던 문제를 가로 스크롤로 풀면서(#2239) 첫 가로 휠에 5만 줄에서 501ms 멈추던 것과 프레임당 498ms를 쓰던 것을 고쳤고, 랩을 켜면 한 줄짜리 문서를 못 보던 문제를 조각 단위 세로 스크롤로 풀며 긴 한글 줄의 조각 수를 21배 적게 세던 오류를 잡았습니다(#2272). 비교도 열마다 가로로 미는 #2287은 이날 열렸습니다.

모바일은 main에서 계속 진행됐습니다. config를 실제로 읽어 화면에 닿게 하고(#2237, #2242), 설정 화면을 스키마에서 만들어 값을 저장하며(M10c, #2246) 숫자 칸을 입력 대상으로 만들었습니다(M10e). 죽은 chrome을 걷어내고 세션 목록을 뿌리로 세웠으며(#2279), 터치 계약을 정한 뒤 포인터에 손가락 id를 싣고 소유권을 코어가 들게 했고(T1, #2282) Android가 손가락 전부를 보내게 했습니다(T2, #2286). iOS 쪽 T3 #2293은 이날 열렸습니다. session-host는 CR4a observer candidate와 화면 frontier를 고정하고, catch-up barrier wire 계약과 host 상태 계약, admission, host frontier barrier, client barrier demux, receipt 봉인을 거쳐 CR4b controller takeover를 봉인했습니다(#2291).

공개 커밋 137개, 해당일 생성 또는 병합된 PR 59개를 정리했습니다. PR 생성 58개·병합 54개는 같은 PR이 양쪽에 포함될 수 있습니다.

커밋

ohah/maru

PR (해당일 생성/머지)

상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#2294생성mergedmainfix(link): 한글·日本·café 이름이 든 경로도 열린다 — CRT 코드페이지를 벗어난다
ohah/maru#2293생성mergedmainfeat(mobile): iOS 도 손가락 전부를 받는다 (T3)
ohah/maru#2292생성mergedmainfeat(i18n): ui.language 를 배선한다 — 옮긴 문자열이 아무도 안 보는 테이블에 쌓이고 있었다 (I4a)
ohah/maru#2291생성 · 병합mergedmainfeat(session-host): CR4b controller takeover를 봉인한다
ohah/maru#2290생성 · 병합mergedmainfeat(session-host): CR4 actual candidate stage를 완료한다
ohah/maru#2289생성 · 병합mergedmainfix(i18n): 전환한 문자열이 영어로 나오던 회귀를 고치고 확인 대화상자를 옮긴다 (I3a 슬라이스 5)
ohah/maru#2288생성 · 병합mergedmainfeat(i18n): 분기·보간형 notice 13건을 키로 옮긴다 (I3a 슬라이스 4)
ohah/maru#2287생성mergedmainfeat(editor): 비교도 열마다 가로로 민다 — 그리고 editor.wrap 기본값을 방침대로 되돌린다
ohah/maru#2286생성 · 병합mergedmainfeat(mobile): Android 가 손가락 전부를 보내고 브리지가 소유자로 가른다 (T2)
ohah/maru#2285생성 · 병합mergedmainfeat(link): hover 밑줄도 클릭과 같은 존재검증을 통과한다 (§8)
ohah/maru#2284생성 · 병합mergedmainfeat(session-host): CR4 same-adapter Client replacement를 게시한다
ohah/maru#2283생성 · 병합mergedmainfeat(file-panel): 비활성 저장소의 머리 줄을 하나씩 읽어 채운다 (P3d-③)
ohah/maru#2282생성 · 병합mergedmainfeat(mobile): 포인터에 손가락 id 를 싣고 소유권을 코어가 든다 (T1)
ohah/maru#2281생성 · 병합mergedmainfeat(i18n): notice 토스트 97건을 키로 옮긴다 (I3a 슬라이스 3)
ohah/maru#2280생성 · 병합mergedmainfeat(windows): 셸 통합 주입 (W5) — cmd PROMPT와 PowerShell 인라인 -Command
ohah/maru#2279생성 · 병합mergedmainfeat(mobile): 죽은 chrome 을 걷어내고 세션 목록을 뿌리로 세운다 (U3a·U3b·U3c)
ohah/maru#2278생성 · 병합mergedmainfeat(session-host): CR4 actual issuer Client를 backend job에 봉인한다
ohah/maru#2277생성 · 병합mergedmainfeat(file-panel): 목록의 첫 층을 저장소·워크트리로 만든다 (P3d-②)
ohah/maru#2276생성 · 병합mergedmainfix(input): W5.5 적대적 검증 — 이스케이프 판정을 목록에서 규칙으로
ohah/maru#2275생성 · 병합mergedmainfeat(i18n): 표시 문자열 leaf 를 세우고 platform 문자열 40건을 키로 옮긴다 (I3-0, I3a 1~2)
ohah/maru#2274생성closed기능 브랜치: docs/mobile-touch-planfeat(mobile): 죽은 chrome 을 걷어내고 세션 목록을 뿌리로 세운다 (U3a·U3b)
ohah/maru#2273생성 · 병합mergedmaindocs(mobile): 터치 계약 — 손가락 id·소유권과 다음 순서(U3 → T → R)
ohah/maru#2272생성 · 병합mergedmainfeat(editor): 랩을 켜면 한 줄짜리 문서를 못 봤다 — 조각 단위 세로 스크롤
ohah/maru#2271생성 · 병합mergedmainfeat(input): Windows 상대 경로 링크 감지 — 접두 갈래 둘 (W5.5)
ohah/maru#2270생성 · 병합mergedmainfeat(session-host): CR4 catch-up receipt를 final-address에 봉인한다
ohah/maru#2269생성 · 병합mergedmainchore(mobile): 하네스 폴더 이름에서 poc 를 뗀다
ohah/maru#2268생성 · 병합mergedmaindocs(windows): 통합 주입 seam을 정한다 — 갈리는 축은 OS가 아니라 메커니즘 (§4.2a)
ohah/maru#2267생성 · 병합mergedmainfeat(file-panel): 저장소·워크트리 목록 모델 (P3d-①)
ohah/maru#2266생성 · 병합mergedmainfix(windows): cmd fixture의 따옴표 함정을 막고 한글 실측을 기록한다
ohah/maru#2265생성 · 병합mergedmaindocs(windows): W5·W5.5 선행 실측을 기록하고 §3.3↔§4.2 모순을 닫는다
ohah/maru#2264생성 · 병합mergedmaindocs(i18n): UI 문자열 로컬라이제이션 전략과 구현 계획 (doc-first)
ohah/maru#2263생성 · 병합mergedmainfeat(session-host): CR4 client barrier demux를 추가한다
ohah/maru#2262생성 · 병합mergedmaindocs(windows): W4·W6을 계약·계획 밖 문서와도 맞춘다
ohah/maru#2261생성 · 병합mergedmainfix(windows): W4 코드리뷰 + 적대적 검증 8라운드 후속
ohah/maru#2260생성 · 병합mergedmainfeat(file-panel): 커밋을 실행하고, 초안을 저장소별로 들고, 워크트리 감시를 고친다 (P3c-2)
ohah/maru#2259생성 · 병합mergedmaintest(cli): "cli/는 순수" 를 주석에서 게이트로 옮긴다
ohah/maru#2258생성 · 병합mergedmainfeat(session-host): CR4 host frontier barrier를 게시한다
ohah/maru#2257생성 · 병합mergedmainfeat(mobile): 설정의 숫자 칸을 입력 대상으로 만든다 (M10e)
ohah/maru#2256생성 · 병합mergedmainrefactor(cli): main.zig 를 얇은 디스패처로 되돌린다
ohah/maru#2255생성 · 병합mergedmainfeat(windows): ConPTY 백엔드 (W4) — 헤드리스 세로 슬라이스가 선다
ohah/maru#2254생성 · 병합mergedmaindocs(structure): 소스 트리 문서를 실제 구조에 맞춘다
ohah/maru#2253생성 · 병합mergedmaindocs(chrome): chrome doc comment 를 저장소 언어로 되돌린다
ohah/maru#2252생성 · 병합mergedmaindocs(windows): ConPTY 자식 attach를 실측으로 닫는다
ohah/maru#2251생성 · 병합mergedmainfeat(session-host): CR4 catch-up admission을 연결한다
ohah/maru#2250생성 · 병합mergedmainrefactor(path): 후행 구분자 다듬기를 path_shape로 모은다
ohah/maru#2249생성 · 병합mergedmainfeat(file-panel): 커밋 메시지를 실제로 입력한다 (P3c-1)
ohah/maru#2248생성 · 병합mergedmainfix(windows): W3 적대적 검증 후속 — 경로 조립기 불일치
ohah/maru#2247생성 · 병합mergedmainfeat(session-host): CR4 catch-up host 상태 계약을 고정한다
ohah/maru#2246생성 · 병합mergedmainfeat(mobile): 설정 화면을 스키마에서 만들고 바꾼 값을 저장한다 (M10c)
ohah/maru#2245생성 · 병합mergedmainfeat(windows): SpawnRequest 중립화 + 입구 경로 정규화 (W3)
ohah/maru#2244생성 · 병합mergedmainfeat(session-host): CR4 catch-up barrier wire 계약을 고정한다
ohah/maru#2243생성 · 병합mergedmainfeat(session-host): CR4a 화면 frontier를 단조 증가로 고정한다
ohah/maru#2242생성 · 병합mergedmainfeat(ios): config 파일을 읽어 브리지에 넘긴다
ohah/maru#2241생성 · 병합mergedmainfeat(session-host): CR4a observer candidate 준비
ohah/maru#2240생성 · 병합mergedmaindocs(mobile): 엔진 공유의 경계를 적대적 검증으로 긋는다
ohah/maru#2239생성 · 병합mergedmainfeat(editor): 랩을 끄면 긴 줄의 오른쪽을 볼 수 없었다 — 가로 스크롤
ohah/maru#2238생성 · 병합mergedmainfeat(config): OS별 값과 Windows 기본 셸 선택 (W2.5)
ohah/maru#2237생성 · 병합mergedmainfeat(mobile): config 를 실제로 읽어 화면에 닿게 한다 (M10b0·M10b)
ohah/maru#2235병합mergedmainfeat(file-panel): 커밋 입력·버튼을 도크에 배치한다 (P3b)