2026-06-20

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

요약 (AI 작성)

maru는 원격·터미널 식별 작업을 이어 갔습니다. maru ssh의 호스트별 설치 캐시(#713), terminfo 없이 캡을 질의하는 XTGETTCAP(#714), maru install-cli(#716), 버튼 없는 마우스 이동을 알리는 DECSET 1003(#717)이 들어왔고, 기본 TERM을 내장 terminfo를 자동 캐시하는 xterm-maru로 바꾸고(#719) bracketed paste·OSC 52·커서 모양·focus 캡을 추가했습니다(#722). OSC 52 클립보드 쓰기는 사용자 결정에 따라 기본 허용으로 바꿨고(#718), 통합 zsh에서 평범한 ssh를 maru ssh로 돌리는 opt-in 옵션, ssh가 비정상 종료된 뒤 남은 입력 모드 복구(#729), 일반 ssh에서는 TERM을 xterm-256color로 낮추는 기본값도 더했습니다. 스레딩 3단계로는 코어 변경을 I/O 스레드에 맡기는 CoreCommandQueue(#723)를 만들고 IME preedit, focus·config, scroll·선택·마우스 리포트를 차례로 위임해(#725, #728) 재진입 데드락을 구조적으로 없앴으며, 측정으로 더블 버퍼가 필요 없다는 결론과 리뷰 통과를 문서에 남겼습니다.

오후부터는 창 chrome을 다시 짰습니다. 사이드바 상단에 검색바와 view options·새 워크스페이스 아이콘을 둔 헤더(#738), 이름·브랜치·폴더로 카드를 거르는 검색(#741), 브랜치·폴더 표시 토글 메뉴(#745), 사이드바 접기 토글(#749)과 타이틀바 띠, 헤더 영역 창 드래그·더블클릭 확대가 들어왔고, 에이전트 세션 카드 색을 상태 기반으로 바꿨습니다. 실행 중인 명령이 있는 터미널이나 창을 닫기 전에 확인 모달을 띄우고(#755, #757), 이 대화상자를 테두리 패널과 accent 버튼, Y·N 단축키, 화살표 포커스 이동을 갖춘 재사용 컴포넌트로 다시 만들었습니다(#768). 시작·새 surface의 작업 디렉터리 설정(#746), Shift+Enter·IME Enter 개행 옵션(#742), EAW Ambiguous 폭 선택 text.ambiguous-width(#767), ⌘F 오버레이의 pane 우상단 배치도 추가했습니다. 렌더링은 glyph 가로 배치를 advance 기준으로 바꿔 숫자 겹침을 고치고, 밑줄을 절반 두께로 얇게 하며, 셀보다 넓은 동그라미 번호를 축소하거나 두 칸으로 그리게 했습니다. IME 확정 경로의 데드락과 탭 전환 시 잘못된 surface로 가던 입력도 고쳤습니다. 모달 버튼 클릭 #781과 접기 토글 정렬 #782는 이날 PR이 열렸습니다.

zntc는 디스크 캐시(이슈 #4438) 리뷰 후속(#4448) 뒤 그래프에 캐시 키 캡처, store 호출, 캐시된 AST로 재구성하는 load 경로, 캐시를 켜도 결과가 같은 load hit 배선을 연결하고(#4449부터 #4452까지) --disk-cache·--cache-dir CLI opt-in(#4453)을 병합했습니다. npm 쪽 노출 #4454는 이날 PR이 열렸습니다. suji는 코어·보안과 플랫폼·CEF 전수 조사에서 찾은 버그를 고치고 리뷰에서 나온 회귀까지 바로잡은 #176을 병합했습니다.

iris는 JS 계산의 sqrt 조회와 닫힌 식, Uint8Array set·fill 복사, JSON 파싱 tail과 stringify·parse 왕복, 체크섬 융합 같은 빠른 경로(#82부터)를 더한 뒤, strict HBC에서 객체 materialization 비용 절감, 작은 배열 inline 저장소, 객체 순회와 JSON payload compact layout, 벤치 프로그램별 닫힌 실행 경로와 준비된 실행 계획 재사용, 실행당 통계와 fast path 토글까지 이어 갔습니다(#112까지 병합). 블로그 저장소에는 오늘의 커밋 요약과 크론 교정 커밋이 올라갔습니다.

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

커밋

ohah/iris

ohah/maru

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/iris#112생성 · 병합mergedmainperf: scalar global read cache hit 단순화
ohah/iris#111생성 · 병합mergedmainperf: scalar 숫자 산술 직접 경로 추가
ohah/iris#110생성 · 병합mergedmainbench: strict HBC Iris fast path 토글 추가
ohah/iris#109생성 · 병합mergedmainbench: strict HBC 실행당 통계 추가
ohah/iris#108생성 · 병합mergedmaindocs: strict HBC 벤치 상태 재사용 설명 수정
ohah/iris#107생성 · 병합mergedmainperf: strict HBC exact 프로그램 상태 재사용
ohah/iris#106생성 · 병합mergedmainperf: strict HBC 준비된 함수 실행 계획 재사용
ohah/iris#105생성 · 병합mergedmainperf: strict HBC 프로그램 직접 반환 경로 추가
ohah/iris#104생성 · 병합mergedmainperf: strict HBC 프로그램 후보 할당 제거
ohah/iris#103생성 · 병합mergedmainperf: strict HBC 닫힌 프로그램 경로 확장
ohah/iris#102생성 · 병합mergedmainperf: strict HBC object-traversal 닫힌 프로그램 경로 추가
ohah/iris#101생성 · 병합mergedmainperf: strict HBC json-round-trip 닫힌 프로그램 경로 추가
ohah/iris#100생성 · 병합mergedmainperf: strict HBC property-loop 닫힌 프로그램 경로 추가
ohah/iris#99생성 · 병합mergedmainperf: strict HBC Uint8Array lazy layout 개선
ohah/iris#98생성 · 병합mergedmainperf: strict HBC 객체 순회 checksum 닫힌 합 적용
ohah/iris#97생성 · 병합mergedmainperf: strict HBC JSON과 Uint8Array fast path 개선
ohah/iris#96생성 · 병합mergedmainperf: strict HBC JSON payload compact layout 추가
ohah/iris#95생성 · 병합mergedmainperf: strict HBC 객체 순회 compact layout 추가
ohah/iris#94생성 · 병합mergedmainperf: strict HBC 작은 배열 inline 저장소 추가
ohah/iris#93생성 · 병합mergedmainperf: strict HBC 객체 materialization 비용 절감
ohah/iris#92생성 · 병합mergedmainperf: strict HBC 진단 루프 fast path 추가
ohah/iris#91생성 · 병합mergedmainperf: lexical 레지스터 fast path 추가
ohah/iris#90생성 · 병합mergedmainperf: strict HBC object/JSON checksum 융합
ohah/iris#89생성 · 병합mergedmainJSON stringify/parse 라운드트립 fast path 추가
ohah/iris#88생성 · 병합mergedmain반복 modulo 합산 주기 최적화
ohah/iris#87생성 · 병합mergedmainUint8Array fill 패턴 복사 최적화
ohah/iris#86생성 · 병합mergedmainJSON payload 프로퍼티 기록 최적화
ohah/iris#85생성 · 병합mergedmainUint8Array set 복사 경로 최적화
ohah/iris#84생성 · 병합mergedmainJS 계산 닫힌식 최적화
ohah/iris#83생성 · 병합mergedmainJSON parse tail fused fast path 최적화
ohah/iris#82생성 · 병합mergedmainJS 계산 sqrt lookup 최적화
ohah/maru#782생성mergedmainfix(sidebar): 접힘 펼치기 토글(◧) 호버·신호등 가로 간격·세로 정렬
ohah/maru#781생성mergedmainfix(confirm): 확인 모달 버튼 마우스 클릭 — 확인/취소 hit-test
ohah/maru#780생성 · 병합mergedmaindocs(io-render): §10 미래 논의(미확정) — present cadence / 프레임 페이싱
ohah/maru#779생성 · 병합mergedmaindocs(io-render): Phase 3 closeout — /code-review max 통과(확정 결함 0) 기록
ohah/maru#778생성 · 병합mergedmainfix: per-tab 틴트 이중 premultiply + 확인 버튼 좁은 창 오버플로 (code-review 후속)
ohah/maru#777생성 · 병합mergedmainfix(sidebar): 헤더 호버 quad 이중 premultiply — 하이라이트 ~4배 흐림 (code-review max)
ohah/maru#776생성 · 병합mergedmaindocs(io-render): Phase 3 시퀀싱 상태 동기화 — P3-1~P3-4 ✅ 반영, 헤더 '구현 예정' 정정
ohah/maru#775생성 · 병합mergedmainfeat(modal): 확인 다이얼로그 ←/→ 버튼 포커스 이동 + Enter 실행
ohah/maru#774생성 · 병합mergedmainfeat(modal): 확인 버튼에 TUI식 [Y]/[N] 단축키 통합, 영어 키 줄 제거
ohah/maru#773생성 · 병합mergedmainfix(modal): 글자 뒤 배경 떠보임 제거 + 취소도 버튼화
ohah/maru#772생성 · 병합mergedmainfix(sidebar): 워크스페이스 카드 텍스트 우측 패딩 — 말줄임(…)이 경계에 붙던 문제
ohah/maru#771생성 · 병합mergedmainfix(sidebar): 헤더 아이콘 호버 어두워짐 제거 + 검색 🔍 좌측 패딩
ohah/maru#770생성 · 병합mergedmainfix(core): ambiguous-width 코드리뷰 결함 — preedit 폭 일치·reload 재적용·스킨톤 오병합
ohah/maru#769생성 · 병합mergedmainfix(sidebar): 헤더 아이콘 호버가 아이콘을 덮던 문제 + 호버 버튼 좌우 패딩
ohah/maru#768생성 · 병합mergedmainfeat(modal): 확인 다이얼로그 재설계 — 경계선 패널 + accent 버튼, 재사용 컴포넌트화
ohah/maru#767생성 · 병합mergedmainfeat(config): text.ambiguous-width (narrow|wide) — EAW Ambiguous 폭 선택
ohah/maru#766생성 · 병합mergedmaintest(modal): cross-layer 가드레일 — 한글 오버레이 메시지가 셀에 안 잘리는지 검증
ohah/maru#765생성 · 병합mergedmainfix(modal): 확인/알림 모달 박스 폭을 EAW 표시폭으로 — 한글 문구가 잘려 안 보이던 버그
ohah/maru#764생성 · 병합mergedmainfix(renderer): 동그란 번호를 여유 있으면 2칸으로 렌더 — Ghostty constraintWidth (③ 크기)
ohah/maru#763생성 · 병합mergedmainfeat(chrome): 헤더 아이콘 hover 배경 — 웹 버튼식 호버 효과
ohah/maru#762생성 · 병합mergedmainfix(renderer): 헤더 아이콘 심볼(◧·⚙) ink-center 정렬 — 3개 아이콘 수평 맞춤
ohah/maru#761생성 · 병합mergedmainfix(chrome): 펼침 타이틀바 띠를 네이티브 높이(~28pt)로 — 상단 드래그 영역 확대
ohah/maru#760생성 · 병합mergedmainrefactor(close): 닫기 확인 중복·병렬 출처 일원화 (code-review max 품질 4건)
ohah/maru#759생성 · 병합mergedmainfix(renderer): 셀보다 넓은 글리프 축소-맞춤 — 동그란 번호(③) 잘림 해결
ohah/maru#758생성 · 병합mergedmainfix(chrome): 헤더 아이콘 crisp 되돌림 + 간격 2칸→3칸
ohah/maru#757생성 · 병합mergedmainfix(close): 확인 모달 중 reap이 보류 닫기를 stale시키는 버그 + notice 배타성 비대칭
ohah/maru#756생성 · 병합mergedmainfeat(renderer): 헤더 아이콘 crisp — per-glyph 배율 직접 래스터화
ohah/maru#755생성 · 병합mergedmainfeat(close): 실행 중 명령 있는 터미널/창 닫기 전 확인 모달
ohah/maru#754생성 · 병합mergedmainfix(chrome): /code-review max 결함 — 접힘 버튼 데드존·검색 갇힘·blink·더블클릭
ohah/maru#753생성 · 병합mergedmaindocs: 창 chrome 동기화 — 타이틀바 띠·드래그/확대 영역·검색 커서·접기
ohah/maru#752생성 · 병합mergedmainfix(chrome): 접힘 타이틀바 띠 높이(신호등 확보) + 접힘 ◧ 확대
ohah/maru#751생성 · 병합mergedmainfix(chrome): 상단 타이틀바 띠 — 탭/서페이스를 한 줄 아래로(접힘 겹침 해소)
ohah/maru#750생성 · 병합mergedmainfix(scroll): 휠을 커서 아래 surface가 소유 — 트래킹 판정·리포트도 그 surface 기준
ohah/maru#749생성 · 병합mergedmainfeat(sidebar): 접기 토글 아이콘(◧) — 완전 숨김 + 좌상단 펼치기 버튼 + 3아이콘
ohah/maru#748생성 · 병합mergedmainfix(chrome): 헤더 영역 기반 창 드래그/더블클릭 확대 + 검색 커서 표시
ohah/maru#747생성 · 병합mergedmainfix(sidebar): /code-review max 결함 수정 — 렌더 오프셋·헤더 hit-test·config 중복키
ohah/maru#746생성 · 병합mergedmainfeat(workspace): 시작/새 surface cwd를 config로 커스텀 (Ghostty working-directory 모델)
ohah/maru#745생성 · 병합mergedmainfeat(sidebar): view options(⚙) 메뉴 — 브랜치·폴더 표시 토글 + config 양방향 (P4)
ohah/maru#744생성 · 병합mergedmainfeat(sidebar): 사이드바 헤더 재설계 — 타이틀바 숨김·신호등 옆 아이콘·검색 별도 줄 + 검색 blur 보존
ohah/maru#743생성 · 병합mergedmaindocs(input): Shift+Enter newline의 kitty 인코딩·keybind 충돌 명시 + 종합 테스트 보강
ohah/maru#742생성 · 병합mergedmainfeat(input): Shift+Enter·IME Enter 개행을 config 옵션으로 (기본 브라우저 동작)
ohah/maru#741생성 · 병합mergedmainfeat(chrome): 사이드바 검색바 — 카드를 이름·브랜치·폴더로 필터링 (P3)
ohah/maru#740생성 · 병합mergedmainfeat(shell): plain ssh의 TERM을 xterm-256color로 다운그레이드(기본)
ohah/maru#739생성 · 병합mergedmainfix(chrome): 사이드바 accent bar·rich 밴드·배경 tint도 헤더 높이만큼 시프트
ohah/maru#738생성 · 병합mergedmainfeat(chrome): 사이드바 상단 헤더(검색바 + view options·새 워크스페이스 아이콘), 하단 + 제거 (P2)
ohah/maru#737생성 · 병합mergedmainfix(app): paste/IME 확정 잔여를 enqueue 시점 surface로 라우팅 (탭 전환 오라우팅)
ohah/maru#736생성 · 병합mergedmainfeat(app): 에이전트 세션 카드 색을 상태 기반 보편 관례로 (#7)
ohah/maru#735생성 · 병합mergedmainfix(build): SDK 프레임워크 경로 명시 — framework 탐지 복구(우회 제거)
ohah/maru#734생성 · 병합mergedmainfix: IME 포커스 데드락(#10) + 숫자 글리프 겹침(#6)
ohah/maru#733생성 · 병합mergedmainfeat(config): 사이드바 카드 표시 토글 + config 양방향 동기 메커니즘 (P1)
ohah/maru#732생성 · 병합mergedmainfeat(find): ⌘F 오버레이를 활성 pane 우상단에 배치
ohah/maru#731생성 · 병합mergedmainfeat(renderer): 텍스트·링크 밑줄을 커서·테두리와 분리해 절반 두께로 — Ghostty 수준 가는 밑줄
ohah/maru#730생성 · 병합mergedmaindocs: 보류 후속 기록 — bash/fish ssh 통합 + .app 메뉴 'Install command'
ohah/maru#729생성 · 병합mergedmainfeat(terminal): ssh 비정상 종료 후 잔류 입력 모드 자동·수동 복구
ohah/maru#728생성 · 병합mergedmainfeat(app): scroll·선택·reportMouse를 I/O 스레드로 위임 — full (a) 단일책임 완성 (P3-4)
ohah/maru#727생성 · 병합mergedmainfeat(terminfo): terminfo 캐시도 $XDG_CACHE_HOME 따르게 — maru 캐시 경로 규칙 통일
ohah/maru#726생성 · 병합mergedmainfeat(app): reportFocus·config mutate를 I/O 스레드로 위임 (P3-3)
ohah/maru#725생성 · 병합mergedmainfeat(app): IME setPreedit를 I/O 스레드로 위임 — 재진입 데드락 구조적 제거 (P3-2)
ohah/maru#724생성 · 병합mergedmainfeat(terminfo): maru terminfo 캐시 관리 서브커맨드 + 자동 staleness 재컴파일
ohah/maru#723생성 · 병합mergedmainfeat(app): CoreCommandQueue — 메인발 코어 mutate 위임 프리미티브 (P3-1)
ohah/maru#722생성 · 병합mergedmainfeat(terminfo): xterm-maru 캡 확장 — bracketed paste·OSC52·커서 스타일·focus
ohah/maru#721생성 · 병합mergedmaindocs(io-render): Phase 3 위임 모델을 (a) 단일책임으로 확정 + 측정/디버그 설계 (P3-0)
ohah/maru#720생성 · 병합mergedmainfeat(shell): opt-in shell-integration.ssh — 평범한 ssh를 maru ssh로 라우팅
ohah/maru#719생성 · 병합mergedmainfeat(pty): 기본 TERM을 xterm-maru로 전환 — embed 자동 캐시 + TERMINFO + 폴백
ohah/maru#718생성 · 병합mergedmainfeat(security): OSC52 클립보드 write를 기본 allow로 — env opt-in 게이트 제거
ohah/maru#717생성 · 병합mergedmainfeat(input): 버튼 없는 마우스 hover를 DECSET 1003 motion으로 리포트 — ABI v59
ohah/maru#716생성 · 병합mergedmainfeat(cli): maru install-cli — maru 바이너리를 ~/.local/bin에 symlink(PATH 진입점)
ohah/maru#715생성 · 병합mergedmainperf(render): I/O–렌더 락-보유 구간 실측 — 더블버퍼 불필요 결론 (io-render-threading §5)
ohah/maru#714생성 · 병합mergedmainfeat(terminal): XTGETTCAP(DCS + q) — terminfo 없이 캡 런타임 질의(자기식별 2번째 채널)
ohah/maru#713생성 · 병합mergedmainfeat(cli): maru ssh 호스트 설치 캐시 — 재접속 시 설치 건너뜀(Ghostty +ssh-cache식)
ohah/suji#176생성 · 병합mergedmainfix(audit): 전수조사 버그 수정 — 코어/보안/플랫폼 + 코드리뷰 발견 교정
ohah/zntc#4454생성mergedmainfeat(cache): 디스크 캐시 npm 표면 (NAPI/JS/config) + experimentalCodeCache 정리 (#4438 graph 통합 3 PR3-2)
ohah/zntc#4453생성 · 병합mergedmainfeat(cache): 디스크 캐시 CLI opt-in (--disk-cache/--cache-dir) (#4438 graph 통합 3 PR3-1)
ohah/zntc#4452생성 · 병합mergedmainfeat(cache): 디스크 캐시 load hit 배선 + ON==OFF (#4438 graph 통합 3 PR2)
ohah/zntc#4451생성 · 병합mergedmainfeat(cache): load 경로 재구성 헬퍼 materializeFromCachedAst (#4438 graph 통합 3 PR1)
ohah/zntc#4450생성 · 병합mergedmainfeat(cache): graph 디스크 캐시 store 호출 배선 (#4438 graph 통합 2)
ohah/zntc#4449생성 · 병합mergedmainfeat(cache): graph 디스크 캐시 키 배선·캡처 (#4438 graph 통합 1)
ohah/zntc#4448생성 · 병합mergedmainfix(cache): #4438 epic 종합 리뷰 후속 — fail-safe 상한 + ast_codec 가드 + 주석