2026-08-19

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

요약 (AI 작성)

maru의 모바일 SSH를 기기에서 끝까지 이은 날입니다. 전날 열린 #2408이 병합돼 두 host가 함께 쓸 SSH 소켓 펌프와 안드로이드 포그라운드 서비스가 들어왔고, 친 입력이 원격으로 가도록 입력 목적지를 세션과 함께 옮겼습니다. 이어 iOS host도 같은 펌프로 붙고 유예 뒤 정직하게 끊으며(S9-3c, #2411), 기기에서 키를 만들어 그 키로 실서버에 붙어 증명하고(S9c-1, #2423), 안드로이드는 개인키를 Keystore로 봉인해 키 파일 경로를 없앴습니다(S9c-3, #2426). 접속 정보를 config가 들게 하며 ssh.conf를 제거하고(#2436), 서버 목록에서 골라 붙고(#2441) 등록·수정·삭제하는 화면(#2444), 공개키를 보여 주고 복사하는 화면(#2446)을 붙였습니다. 비밀번호 인증(#2452)과 키가 없을 때 none으로 방법 목록을 묻는 경로(#2456)도 들어갔고, 처음 붙는 서버의 지문을 승인받는 #2459는 이날 PR이 열렸습니다.

편집기는 텍스트 파일을 네이티브 편집기로 여는 것을 기본으로 전환했습니다(#2420). 선택의 좌표계를 먼저 정하고(§4.1g, #2430) 계약을 거듭 두들긴 뒤, 행마다 조각 시작을 싣고 픽셀을 원본 byte로 옮기며(#2432) 이어진 조각에도 글자 강조가 서게 했습니다(#2435). 저하·읽기 전용·줄바꿈을 보여 주는 pane 상태바 셋(#2428)과 전날 열린 비교 뷰 막대 드래그 #2406도 들어왔습니다. chrome은 tui 룩과 chrome.preset을 제거해 rich 하나로 좁혔고(#2418), 라벨을 코드포인트 중간에서 자르던 문제를 고쳤습니다. 소스 컨트롤은 비교 기준을 고르고 workspace에 기억하며(#2437, #2447), 히스토리 ref 칩을 +N으로 접고(#2412) 미푸시가 있으면 브랜치 이름 뒤에 점을 켜며(#2422), 목록 스크롤바를 끌 수 있게 했습니다.

Windows는 config가 고른 셸을 실제로 띄우고 wide 환경에서 경로 환경변수를 읽게 했으며(#2414), 크로스 타깃 게이트가 중립 표면을 실제로 보게 했습니다(W8.0, #2438). 파일 트리 백엔드(#2445)와 데이터 경로(#2455)가 Windows에서 끝까지 흐르게 하면서 항목별 stat이 145배 느리던 것을 배치 읽기로 바꿨고, shell.args 기본값을 OS별로 갈라 PowerShell을 pwsh·powershell로 나눴습니다(#2450). 가드가 무엇을 지키는지 돌연변이로 가른 적대적 검증(#2457)도 이어졌습니다. 그 밖에 CLI help를 영어로 옮기고(#2449), "규율의 값싼 절반만 돌고 확인했다고 적었다"는 자기 정정 문서(#2431)와 중간 커밋도 경계 게이트를 통과하는지 보는 CI(#2434)가 들어갔습니다.

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

커밋

ohah/maru

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#2459생성mergedmainfeat(ssh): 처음 붙는 서버의 지문을 보여 주고 승인받는다 (S9b-3)
ohah/maru#2458생성 · 병합mergedmainfix(windows): 이름 바꾸기가 만든 경로가 중립 층에서 "루트 밖" 으로 답하던 것을 고친다 (W8.2 ⒝-0)
ohah/maru#2457생성 · 병합mergedmaintest(windows): 가드가 무엇을 지키는지 돌연변이로 가른다 (W8.2 적대적 검증)
ohah/maru#2456생성 · 병합mergedmainfeat(ssh): 키가 없어도 붙는다 — none 으로 방법 목록을 묻는다
ohah/maru#2455생성 · 병합mergedmainfeat(windows): 파일 트리 데이터 경로가 Windows 에서 끝까지 흐른다 (W8.2 ⒜)
ohah/maru#2454생성mergedmainfix(tools): digest 갱신 출력이 새 해시를 잘라 보여 주고 있었다
ohah/maru#2453생성 · 병합mergedmainfix(scm): 오른쪽 빈 자리를 걷고 가져오기를 아이콘으로 바꾼다
ohah/maru#2452생성 · 병합mergedmainfeat(ssh): 비밀번호로도 붙는다 + 보조 키바 두 줄 격자
ohah/maru#2451생성 · 병합mergedmainfix(scm): 세대만 오른 프레임도 표가 따라오게 한다 — 히스토리 클릭이 죽었다
ohah/maru#2450생성 · 병합mergedmainfeat(windows): shell.args 기본값을 OS 별로 가르고, PowerShell 을 pwsh·powershell 로 나눈다 (W8.1b·c)
ohah/maru#2449생성 · 병합mergedmainfix(cli): CLI help 를 영어로 옮긴다 — 계약이 금지한 것이 코드에 있었다
ohah/maru#2448생성 · 병합mergedmaindocs(windows): 되돌림은 계약을 뒤집은 것이 아니라 다른 층이다 (§5 재기술)
ohah/maru#2447생성 · 병합mergedmainfeat(scm): 고른 비교 기준을 workspace에 기억한다 (§3.5 P7b)
ohah/maru#2446생성 · 병합mergedmainfeat(mobile): 이 기기의 공개키를 보여 주고 복사한다 (S9c-4)
ohah/maru#2445생성 · 병합mergedmainfeat(windows): 파일 트리 백엔드가 Windows 에서 실제로 돈다 (W8.1)
ohah/maru#2444생성 · 병합mergedmainfeat(mobile): 서버를 화면에서 등록·수정·삭제한다 (S9b-2b-2)
ohah/maru#2443생성 · 병합mergedmainfix(scm): 저장소 머리 줄의 가로 자리 셋을 고친다
ohah/maru#2442생성 · 병합mergedmainfix(chrome): 라벨을 코드포인트 중간에서 자르고 있었다 + 스키마 문서가 실제와 갈렸다
ohah/maru#2441생성 · 병합mergedmainfeat(mobile): 서버 목록 화면에서 골라 붙는다 (S9b-2b-1)
ohah/maru#2440생성 · 병합mergedmaindocs: 값 드리프트 하나를 고치고 그 재발을 막는 규율을 적는다
ohah/maru#2439생성 · 병합mergedmainrefactor(app-session): 아무도 안 쓰는 pub 19개를 닫는다
ohah/maru#2438생성 · 병합mergedmainfeat(windows): 크로스 타깃 게이트가 중립 표면을 실제로 본다 (W8.0)
ohah/maru#2437생성 · 병합mergedmainfeat(scm): 비교 기준을 고를 수 있게 한다 (§3.5 P7a)
ohah/maru#2436생성 · 병합mergedmainfeat(mobile): 접속 정보를 config 가 든다 — ssh.conf 제거 (S9b-2a)
ohah/maru#2435생성 · 병합mergedmainfeat(editor): 이어진 조각에도 글자 강조가 선다 (§4.1g ②a)
ohah/maru#2434생성 · 병합mergedmainci: 중간 커밋도 경계 게이트를 통과하는지 본다 — 규율의 기계 절반
ohah/maru#2433생성 · 병합mergedmainfeat(mobile): 설정의 글자 칸을 칠 수 있다 (S9b-1)
ohah/maru#2432생성 · 병합mergedmainfeat(editor): 행마다 조각 시작을 싣고, 픽셀을 원본 byte로 옮긴다 (§4.1g ①)
ohah/maru#2431생성 · 병합mergedmaindocs: 규율의 값싼 절반만 돌고 "확인했다"고 적었다 — 규칙을 고친다
ohah/maru#2430생성 · 병합mergedmaindocs(editor): 선택의 좌표계를 먼저 정한다 — 방향이 둘이고 성질이 다르다 (§4.1g)
ohah/maru#2429생성 · 병합mergedmainrefactor(chrome): 도달할 수 없게 된 셀 밴드 갈래를 지운다
ohah/maru#2428생성 · 병합mergedmainfeat(editor): 편집기 pane 상태바 셋을 낸다 — 저하·읽기 전용·줄바꿈
ohah/maru#2427생성closedmainfix(tools): digest 갱신 도구가 python 3.9 에서 죽던 것을 고친다
ohah/maru#2426생성 · 병합mergedmainfeat(android): 개인키를 Keystore 로 봉인한다 — 키 파일 경로를 없앤다 (S9c-3)
ohah/maru#2425생성 · 병합mergedmainfix(build): SSH 스모크 드라이버도 POSIX 호스트로 가르고, 빠지는 것을 조용하지 않게 한다
ohah/maru#2424생성 · 병합mergedmainfix(build): SSH 펌프 스모크를 POSIX 호스트로 가른다 — Windows 에서 zig build test 가 통째로 죽었다
ohah/maru#2423생성 · 병합mergedmainfeat(mobile): 기기에서 키를 만든다 — 만든 키로 실서버에 붙어 증명한다 (S9c-1)
ohah/maru#2422생성 · 병합mergedmainfeat(scm): 아직 안 보낸 것이 있으면 브랜치 이름 뒤에 점을 켠다
ohah/maru#2421생성 · 병합mergedmaintest(mobile): 펌프가 재키잉을 지나는지 세고, 개인키가 남는 시간을 줄인다
ohah/maru#2420생성 · 병합mergedmainfeat(editor): 텍스트 파일을 네이티브 편집기로 연다 — 기본 전환
ohah/maru#2419생성 · 병합mergedmainfix(mobile): 같은 사실은 같은 이름으로 — 적대적 검증 3회에서 나온 것들
ohah/maru#2418생성 · 병합mergedmainrefactor(chrome): tui 룩과 chrome.preset을 제거하고 rich 하나로 좁힌다
ohah/maru#2417생성 · 병합mergedmainchore: Claude Code 런타임 산물을 무시하고, 실수로 커밋된 lock 을 뺀다
ohah/maru#2416생성 · 병합mergedmainfix(settings): 검색 필터가 화면 언어를 안 보게 한다 — 흔들릴 것을 없앤다
ohah/maru#2415생성 · 병합mergedmainfeat(scm): 목록 스크롤바를 끌 수 있게 한다 — 보이는데 안 잡히는 컨트롤이었다
ohah/maru#2414생성 · 병합mergedmainfix(windows): 검토가 남긴 것 중 재현되는 셋을 닫는다 — config 셸 배선·wide 환경·경로 헬퍼
ohah/maru#2413생성 · 병합mergedmaindocs(editor): "CM6 대비 유일한 후퇴"가 틀렸다 — 선택·복사가 남았다
ohah/maru#2412생성 · 병합mergedmainfeat(scm): 히스토리 ref 칩을 +N으로 접는다 — 나머지를 조용히 버리고 있었다
ohah/maru#2411생성 · 병합mergedmainfeat(ios): iOS host 가 같은 펌프로 붙는다 — 유예 뒤 정직하게 끊는다 (S9-3c)
ohah/maru#2410병합mergedmainfix(gate): 충돌 마커 게이트가 중첩된 생성물 디렉터리도 거르게 한다
ohah/maru#2408병합mergedmainfeat(mobile): SSH 소켓 펌프 + 안드로이드 포그라운드 서비스 — 기기에서 붙고 배경에서도 산다 (S9-3a·b)
ohah/maru#2406병합mergedmainfeat(editor): 비교 뷰의 막대도 잡아 끌 수 있다 — 세로는 공유, 가로는 각자 (§3.5)