2026-09-24

한국 시간(KST) 기준으로 하루를 나눴습니다. 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 조회: 2026-10-06 KST. 공개 저장소에서 조회한 활동만 포함합니다.

요약 (AI 작성)

maru 편집기는 자정 무렵 sticky scroll을 병합했습니다(#3899). 화면 맨 위 줄이 속한 스코프의 머리줄을 본문 위에 고정하고, 비교 뷰로 바꾸면 옛 머리줄이 클릭을 가로채던 결함과 같은 낱말 강조가 막대를 자르던 결함도 함께 고쳤습니다. 오후에는 현재 줄 강조와 짝 괄호 강조가 들어왔고, 괄호 점프도 같은 판정을 쓰게 됐습니다(#3911). 들여쓰기 안내선 #3922와 구문 접힘 승격 중 해제된 줄 표를 그리던 문제의 수정 #3933은 이날 PR만 열렸습니다.

렌더러는 안 보이는 탭의 출력이 사이드바만 갱신하고 사이드바가 그대로면 아무것도 올리지 않게 했으며(커밋 기준 활성 32세션 조건에서 앱 CPU −31%), 안 보이는 탭의 kitty 애니메이션이 화면을 다시 그리게 하지 않도록 했습니다. 재부팅 부활은 keep-alive를 끈 칸에서도 에이전트 대화를 잇고, 코드 리뷰에서 나온 두 번 부활·대화 파일 탐색·spawn 실패 처리를 반영했습니다. 밑줄·한글이 들어간 경로에서 사이드바 대화 줄이 비던 문제, 죽은 tmux pane 행이 남던 문제도 고쳤습니다. CI는 ReleaseFast 잡 상한을 45분으로 올리고 AppKit 스모크 잡 셋을 하나로 합쳤고, 재접속 계열을 중심으로 판정자 이름 정리가 계속됐습니다.

Chromium 웹 패널은 sidecar 제어 채널 codec(W1a), CEF sidecar 뼈대(W1b), 실제 브라우저 실행(W1c), 픽셀 링(W2), WKWebView 로그인 유지(W3a), 앱의 sidecar 실행(W3b), Metal 표시(W3c), 마우스·키·IME 입력(W4a), 포인터 라우팅(W4b) PR이 병합됐습니다. 모두 docs/web-panel-osr-backend와 그 하위 기능 브랜치에 들어간 것이며, main 통합 PR #3867은 열려 있습니다.

hwpjs는 새벽에 HWPX 섹션 텍스트 스트리밍, 문단·런 경계, 섹션·헤더 XML 트리 색인과 지원하지 않는 네임스페이스 거부를 넣었고, 오전부터는 선언된 모든 XML 파트와 패키지 바이트 검사, 설정 값, 바탕쪽, 런의 변경 추적 속성과 인라인 태그, 조건부 분기에 따른 바이너리·차트·텍스트·스타일 참조 선택, 표 격자·셀 크기·여백·테두리 참조 검사로 범위를 넓혔습니다. zntc는 네이티브 node 결과와 타깃별 번들 결과를 비교하는 다운레벨 런타임 오라클 스위트를 추가하고, for-of·for-in·for-await를 공통 AST 풀이로 옮기는 3단계 리팩터링과 심볼 ID 누락 검사기, es5 경로의 심볼 전달 수정을 이어갔습니다. es5 상태 기계의 catch 파라미터 스코프, 루프 캡처의 반복별 바인딩, 구조 분해 대입의 rest도 고쳤고, minify 이름 줄이기를 다시 분석한 뒤 하도록 바꾸는 #4775가 열렸습니다.

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

커밋

ohah/hwpjs

ohah/maru

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#3935생성mergedmainrefactor(naming): P5c3c external attach 경계 셋·센티넬 다섯을 주제 이름으로 — 원장이 18 에서 10 으로
ohah/maru#3934생성 · 병합mergedmainrefactor(naming): CR3a-2d·2e 세대 해제 판정자 넷을 주제 이름으로 — 원장이 22 에서 18 로
ohah/maru#3933생성mergedmainfix(editor): 구문 접힘 승격이 프레임이 잡아 둔 보이는 줄 표를 놓던 것 — 해제된 메모리를 그렸다
ohah/maru#3932생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfeat(web-panel): W4b — Chromium 탭 포인터(클릭·끌기·hover·휠·커서·뒤로/앞으로 버튼)를 Zig 가 라우팅한다
ohah/maru#3931생성 · 병합mergedmainperf(renderer): 안 보이는 탭의 kitty 애니메이션은 프레임만 넘기고 화면을 다시 그리게 하지 않는다
ohah/maru#3930생성 · 병합mergedmainrefactor(naming): CR3c 세대 승격 · Client 회수 판정자 둘을 주제 이름으로 — 원장이 24 에서 22 로
ohah/maru#3929생성 · 병합mergedmainrefactor(naming): CR6f output wake · idle soak 판정자 둘을 주제 이름으로 — 원장이 26 에서 24 로
ohah/maru#3928생성 · 병합mergedmainrefactor(naming): CR6a·b 복구된 세션 판정자 셋을 주제 이름으로 — 원장이 29 에서 26 으로
ohah/maru#3927생성mergedmaindocs(editor): draw 저장소의 몫은 방출하는 컴포넌트가 센다 — 비교 뷰 줄 번호가 통째로 사라진 원인(run 640 한도)과 이관 순서
ohah/maru#3926생성 · 병합mergedmainfix(remote-agent): 죽은 tmux pane 행이 앱이 사는 동안 안 사라지던 것 (RA7)
ohah/maru#3925생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfeat(web-panel): W4a — 입력 메시지와 sidecar 의 CEF 입력(마우스·휠·키·IME·편집 명령·커서·우클릭 메뉴 억제)
ohah/maru#3924생성 · 병합mergedmainrefactor(naming): CR5 호스트 전체 재접속 판정자 여덟을 주제 이름으로 — 원장이 37 에서 29 로
ohah/maru#3923생성 · 병합mergedmainrefactor(naming): CR4 재접속 Client 교체 판정자 넷을 주제 이름으로 — 원장이 41 에서 37 로
ohah/maru#3922생성mergedmainfeat(editor): 들여쓰기 안내선 — VS Code 기본 켬, 간격은 파일에서 추정 (§5.1c)
ohah/maru#3921생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfeat(web-panel): W3c — Chromium 탭 본문을 Metal 로 그린다(IOSurface 텍스처·보일 링 고르기·GPU 소비자 규칙)
ohah/maru#3920생성 · 병합mergedmainrefactor(naming): P5c3d 호환성·attach 제품 E2E 셋을 주제 이름으로 — 원장이 44 에서 41 로
ohah/maru#3919생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfeat(web-panel): W3b — 앱이 Chromium sidecar 를 띄워 browser 탭을 맡긴다(개발용 환경변수)
ohah/maru#3918생성 · 병합mergedmainperf(renderer): 안 보이는 탭의 출력은 사이드바만, 사이드바가 그대로면 아무것도 안 올린다 — 활성 32 세션 앱 CPU −31 %
ohah/maru#3917생성 · 병합mergedmainrefactor(naming): CR2e 재접속 단위 테스트 셋을 제품 모듈 이름으로 — 원장이 47 에서 44 로
ohah/maru#3916생성 · 병합mergedmaindocs(osc): OSC 66·5522 의 「Ghostty 패리티」 전제가 틀렸다 — 둘 다 업스트림도 미완성
ohah/maru#3915생성 · 병합mergedmainrefactor(naming): P4 관측·유휴 비용 판정자 여섯(E2·E3)을 주제 이름으로 — 원장이 53 에서 47 로
ohah/maru#3914생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfeat(web-panel): W3a — WKWebView 로그인 유지(macOS 14+)와 쿠키 권한을 허용한 사이트에 묶기
ohah/maru#3913생성 · 병합mergedmainrefactor(naming): CR6e 재접속 판정자 다섯을 주제 이름으로 — 원장이 58 에서 53 으로
ohah/maru#3912생성 · 병합mergedmaintest(session-host): gh 권한 판정자가 하드링크 경로를 realpath 로 얻지 않는다 — F_GETPATH 가 다른 링크 이름을 돌려준다
ohah/maru#3911생성 · 병합mergedmainfeat(editor): 현재 줄 강조 · 짝 괄호 강조 — VS Code 기본 켬 둘 (§5.1b), 괄호 점프도 같은 판정(§3.9c VS Code 실측 정정)
ohah/maru#3910생성 · 병합mergedmainfix(agent): 사이드바 대화 줄이 claude 대화 파일을 세션 id 로 찾는다 — 폴더 이름 규칙을 흉내 내다 밑줄·한글 경로에서 조용히 비었다
ohah/maru#3909생성 · 병합merged기능 브랜치: feat/web-osr-w1c-browsersfeat(web-panel): W2 — 픽셀 링(IOSurface 세 장·mailbox 원자 워드)과 mach port 전달, 토큰 인증·적대 메시지 방어
ohah/maru#3908생성 · 병합merged기능 브랜치: feat/web-osr-w1b-sidecarfeat(web-panel): W1c — 실제 브라우저·N 개·재시작 로그인 유지, 재실행 Chrome 창 차단, 크래시 원인 제거
ohah/maru#3907생성 · 병합mergedmaintest(session-host): clear·reset 판정자의 자식이 마지막 명령 전에 끝나지 않게 한다 — WriteFailed flake
ohah/maru#3906생성 · 병합mergedmainci(session-host): ReleaseFast 상한 45분을 좁히지 않는다 — 콜드 38분·웜 3분 실측과 7일 캐시 만료
ohah/maru#3905생성 · 병합merged기능 브랜치: feat/web-osr-w1a-protocolfeat(web-panel): W1b — CEF sidecar 뼈대(maru-web-host·helper), 샌드박스·부모 사망 판정자, opt-in SDK
ohah/maru#3904생성 · 병합mergedmainfix(workspace): 재부팅 부활 코드 리뷰 반영 — 두 번 부활·대화 파일 못 찾음·신원 수명·spawn 실패·알림 (RB)
ohah/maru#3903생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfeat(web-panel): W1a — 웹 OSR sidecar 제어 채널 wire codec(순수 Zig, CEF 없음)
ohah/maru#3902생성 · 병합mergedmainfix(workspace): keep-alive 를 끈 칸도 재부팅 뒤 에이전트 대화를 이어간다 — 계약의 「한 규칙」대로 (RB2)
ohah/maru#3901생성 · 병합mergedmainci(macos): AppKit 스모크 잡 셋을 하나로 합친다 — 같은 앱을 세 번 콜드 빌드하며 macOS 러너 5개 중 셋을 잡고 있었다
ohah/maru#3900생성 · 병합mergedmainci(session-host): ReleaseFast 잡 상한을 45분으로 올린다 — 20분으로는 콜드가 끝나지 못해 캐시가 영영 안 선다
ohah/maru#3899생성 · 병합mergedmainfeat(editor): sticky scroll — 화면 맨 위 줄이 속한 스코프의 머리줄을 본문 위에 고정한다(심볼 2층 → 1층 → 접힘); 같은 낱말 강조가 막대를 자르던 결함 수정 (§4.1i)
ohah/zntc#4775생성mergedmainfix(transpile): minify 이름 줄이기를 낮춘 뒤 코드를 다시 분석해서 한다 (#4759)
ohah/zntc#4774생성 · 병합mergedmainfix(transformer): es5 루프 캡처 _loop 매개변수·인자·끌어올린 var 에 심볼 전달 (#4760 2단계)
ohah/zntc#4773생성 · 병합mergedmainfix(transformer): es5 상태 기계가 접은 선언·호이스트 var 에 심볼 전달 (#4760 2단계)
ohah/zntc#4772생성 · 병합mergedmainfix(transformer): es5 기본값 매개변수 검사 참조에 심볼 전달 (#4760 2단계)
ohah/zntc#4771생성 · 병합mergedmainchore(integration): 오라클 fixture 디렉토리에 잘못 커밋된 작업 파일 제거
ohah/zntc#4770생성 · 병합mergedmaintest(integration): 다운레벨 오라클에 단일 파일 변환 경로와 긴 변수 이름
ohah/zntc#4769생성 · 병합mergedmainfix(transformer): 블록 스코핑 이름 조각을 string_table 재할당에서 보호
ohah/zntc#4761생성 · 병합mergedmainfeat(transformer): 심볼 ID 누락 검사기 (#4760 1단계)
ohah/zntc#4757생성 · 병합mergedmainrefactor(transformer): for-await 를 방문 없는 AST 풀이로 (#4746 3단계)
ohah/zntc#4755생성 · 병합mergedmainrefactor(transformer): 상태 기계 for-in 을 AST 풀이로 (#4746 2단계)
ohah/zntc#4754생성 · 병합mergedmainrefactor(transformer): for-of 를 일반 경로·상태 기계 공통 AST 풀이로 (#4746 1단계)
ohah/zntc#4753생성 · 병합mergedmaindocs(claude): PR 전 /code-review max 필수 규칙 제거
ohah/zntc#4752생성 · 병합mergedmainfix(transformer): 상태 기계 구조분해 대입이 rest 를 채운다
ohah/zntc#4751생성 · 병합mergedmaintest(integration): 다운레벨 런타임 오라클 스위트 추가
ohah/zntc#4748생성 · 병합mergedmainfix(transformer): es5 루프 본문 선언을 클로저가 캡처하면 반복별 바인딩을 만든다
ohah/zntc#4745생성 · 병합mergedmainfix(transformer): es5 상태 기계에서 catch 파라미터·블록 바인딩의 스코프를 지킨다
ohah/zntc#4742생성 · 병합mergedmainfix(lint): object_super 서브트리 순회를 walkPreorderIterative 로 옮긴다