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
- perf: scalar global read cache hit 단순화
- perf: scalar 숫자 산술 직접 경로 추가
- bench: strict HBC Iris fast path 토글 추가
- bench: strict HBC 실행당 통계 추가
- docs: strict HBC 벤치 상태 재사용 설명 수정
- perf: strict HBC exact 프로그램 상태 재사용
- perf: strict HBC 준비된 함수 실행 계획 재사용
- perf: strict HBC 프로그램 직접 반환 경로 추가
- perf: strict HBC 프로그램 후보 할당 제거
- perf: strict HBC 닫힌 프로그램 경로 확장
- perf: strict HBC object-traversal 닫힌 프로그램 경로 추가
- perf: strict HBC json-round-trip 닫힌 프로그램 경로 추가
- perf: strict HBC property-loop 닫힌 프로그램 경로 추가
- perf: strict HBC Uint8Array lazy layout 개선
- perf: strict HBC 객체 순회 checksum 닫힌 합 적용
- perf: strict HBC JSON과 Uint8Array fast path 개선
- perf: strict HBC JSON payload compact layout 추가
- perf: strict HBC 객체 순회 compact layout 추가
- perf: strict HBC 작은 배열 inline 저장소 추가
- perf: strict HBC 객체 materialization 비용 절감
- perf: strict HBC 진단 루프 fast path 추가
- perf: lexical 레지스터 fast path 추가
- perf: JSON payload checksum 융합
- perf: object-traversal checksum pass 융합
- perf: JSON stringify/parse 라운드트립 fast path 추가
- 반복 modulo 합산 주기 최적화
- Uint8Array fill 패턴 복사 최적화
- JSON payload 프로퍼티 기록 최적화
- Uint8Array set 복사 경로 최적화
- JS 계산 닫힌식 최적화
- JSON parse tail fused fast path 최적화
- JS 계산 sqrt lookup 최적화
ohah/maru
- docs(io-render): §10 미래 논의(미확정) — present cadence / 프레임 페이싱
- fix: per-tab 틴트 이중 premultiply + 확인 버튼 좁은 창 패널 오버플로 (code-review 후속)
- docs(io-render): Phase 3 closeout — /code-review max 통과(확정 결함 0) 기록
- fix(sidebar): 헤더 호버 quad 이중 premultiply — 하이라이트가 ~4배 흐리던 버그 (code-review max)
- docs(io-render): Phase 3 시퀀싱 상태 동기화 — P3-1~P3-4 ✅ 반영, 헤더 '구현 예정' 정정
- feat(modal): 확인 다이얼로그 ←/→ 버튼 포커스 이동 + Enter로 포커스 버튼 실행
- feat(modal): 확인 버튼에 TUI식 [Y]/[N] 단축키 통합, 영어 키 줄 제거
- fix(modal): 글자 뒤 배경 떠보임 제거 + 취소도 버튼화 (재사용 confirm 컴포넌트)
- fix(sidebar): 워크스페이스 카드 텍스트 우측 패딩 — 말줄임(…)이 경계에 붙던 문제
- fix(sidebar): 헤더 아이콘 호버 어두워짐 제거 + 검색 🔍 좌측 패딩
- fix(core): ambiguous-width 코드리뷰 결함 — preedit 폭 일치·reload 재적용·스킨톤 오병합
- fix(sidebar): 헤더 아이콘 호버가 아이콘을 덮던 문제 + 호버 버튼 좌우 패딩
- feat(modal): 확인 다이얼로그 재설계 — 경계선 패널 + accent 버튼, 재사용 컴포넌트화
- feat(config): text.ambiguous-width (narrow|wide) — EAW Ambiguous 폭 선택
- test(modal): cross-layer 가드레일 — 한글 오버레이 메시지가 셀에 안 잘리는지 검증
- fix(modal): 확인/알림 모달 박스 폭을 EAW 표시폭으로 — 한글 문구가 잘려 안 보이던 버그
- fix(renderer): 동그란 번호를 여유 있으면 2칸으로 렌더 — Ghostty constraintWidth (③ 크기)
- fix(renderer): 헤더 아이콘 심볼(◧·⚙) ink-center 정렬 — 3개 아이콘 수평 맞춤
- feat(chrome): 헤더 아이콘 hover 배경 — 웹 버튼식 호버 효과
- fix(close): code-review max 후속 — 문서 잔여 참조·다줄 박스 커버리지
- refactor(close): 닫기 확인 중복·병렬 출처 일원화 (code-review max 품질 4건)
- fix(chrome): 펼침 타이틀바 띠를 네이티브 높이(~28pt)로 — 상단 드래그 영역 확대
- docs: 창 chrome 최근 작업 동기화 — 타이틀바 띠·창 드래그/확대 영역·검색 커서·접기
- fix(renderer): 셀보다 넓은 글리프 축소-맞춤 — 동그란 번호(③) 잘림 해결
- fix(chrome): 헤더 아이콘 간격 2칸→3칸 — 1.7× 아이콘이 안 붙게(사용자 피드백)
- Revert "feat(renderer): 헤더 아이콘 crisp — per-glyph 배율로 큰 크기 직접 래스터화"
- fix(close): 확인 모달 중 reap이 보류 닫기를 stale시키는 버그 + notice 배타성 비대칭
- feat(renderer): 헤더 아이콘 crisp — per-glyph 배율로 큰 크기 직접 래스터화
- fix(pty): 비-macOS UnsupportedPtySession에 hasForegroundJob 스텁 추가
- feat(close): 실행 중 명령 있는 터미널/창 닫기 전 확인 모달
- fix(chrome): /code-review max 결함 수정 — 접힘 버튼 데드존·검색 갇힘·blink 낭비·더블클릭 동작
- fix(chrome): 접힘 시 타이틀바 띠 높이(신호등 확보) + 접힘 ◧ 버튼 확대
- fix(chrome): 상단 타이틀바 띠 — 탭/서페이스를 한 줄 아래로(접힘 시 신호등·아이콘 겹침 해소)
- fix(scroll): 휠을 커서 아래 surface가 소유 — 트래킹 판정·리포트도 그 surface 기준
- feat(sidebar): 접기 토글 아이콘(◧) — 완전 숨김 + 좌상단 펼치기 버튼 + 3아이콘 정렬
- fix(chrome): 헤더 영역 기반 창 드래그/더블클릭 확대 + 검색 커서 표시
- fix(sidebar): /code-review max 결함 수정 — 렌더 오프셋·헤더 hit-test·config 중복키 등
- refactor(workspace): cwd 형식 필터 단일출처화 + spawn cwd funnel 정리 (code-review #7/#8)
- docs(workspace): 퀵 터미널도 workspace.root에서 연다 명시 (code-review #4)
- test(workspace): 설정된 root의 세션 배선 검증 보강 (code-review #5)
- fix(workspace): code-review max 지적 4건 수정 (레이스·진단·빈 HOME·getcwd 캐시)
- feat(workspace): 시작/새 surface cwd를 config로 커스텀 (Ghostty working-directory 모델)
- feat(sidebar): view options(⚙) 메뉴 — 브랜치·폴더 표시 토글 + config 양방향 (P4)
- fix(sidebar): 검색 blur 검색어 보존 + 헤더 아이콘 크기·정렬·언더바 + 창 제목 제거
- feat(sidebar): 헤더 2줄 재설계(타이틀바 숨김·신호등 옆 아이콘 확대) + 검색 blur 수정
- docs(input): Shift+Enter newline의 kitty 인코딩·keybind 충돌 명시 + 종합 테스트 보강
- feat(input): Shift+Enter·IME Enter 개행을 config 옵션으로 (기본 브라우저 동작)
- fix(chrome): 사이드바 헤더 glyph가 배경 quad에 가려지던 렌더 순서 수정 (P2 후속)
- feat(chrome): 사이드바 검색바 — 카드를 이름·브랜치·폴더로 필터링 (P3)
- feat(shell): plain ssh의 TERM을 xterm-256color로 다운그레이드(기본) — 원격 mux 커서 깨짐 수정
- fix(chrome): 사이드바 accent bar·rich 밴드·배경 tint도 헤더 높이만큼 시프트
- feat(renderer): 텍스트·링크 밑줄을 커서·테두리와 분리해 절반 두께로 — Ghostty 수준 가는 밑줄
- feat(chrome): 사이드바 상단 헤더(검색바 + view options·새 워크스페이스 아이콘), 하단 + 제거 (P2)
- fix(app): paste/IME 확정 잔여를 enqueue 시점 surface로 라우팅 (탭 전환 오라우팅)
- docs(tabs): 에이전트 카드 색 계약을 상태 기반으로 갱신 (#7)
- fix(app): IME 확정-텍스트 잔여 blocking 경로 2곳도 non-blocking 라우팅 (#10 후속)
- feat(app): 에이전트 세션 카드 색을 상태 기반 보편 관례로 (#7)
- feat(config): 사이드바 카드 표시 토글 + config 양방향 동기 메커니즘 (P1)
- fix(build): SDK 프레임워크 경로 명시 — os_version_min 유지하며 framework 탐지 복구
- fix(app): IME 확정-on-포커스상실 데드락 — non-blocking 전송 (#10)
- fix(renderer): 글리프 가로 배치를 ink 가운데→advance 기준으로 (숫자 겹침)
- feat(find): ⌘F 오버레이를 활성 pane 우상단에 배치(창-중앙→pane 우상단)
- docs: 보류 후속 기록 — bash/fish ssh 통합 + .app 메뉴 'Install command'
- feat(terminal): ssh 비정상 종료 후 잔류 입력 모드 자동·수동 복구
- feat(app): scroll·선택·reportMouse를 I/O 스레드로 위임 — full (a) 단일책임 완성 (P3-4)
- feat(terminfo): terminfo 캐시도 $XDG_CACHE_HOME 따르게 — maru 캐시 경로 규칙 통일
- feat(app): reportFocus·config mutate를 I/O 스레드로 위임 (P3-3)
- feat(app): IME setPreedit를 I/O 스레드로 위임 — 재진입 데드락 구조적 제거 (P3-2)
- feat(terminfo): maru terminfo 캐시 관리 서브커맨드 + 자동 staleness 재컴파일
- feat(app): CoreCommandQueue — 메인발 코어 mutate 위임 프리미티브 (P3-1)
- feat(terminfo): xterm-maru에 검증된 캡 확장 — bracketed paste·OSC52·커서 스타일·focus
- docs(io-render): Phase 3 위임 모델을 (a) 단일책임으로 확정 + 측정/디버그 설계 (P3-0)
- feat(shell): opt-in shell-integration.ssh — 통합 zsh에서 평범한 ssh를 maru ssh로 라우팅
- feat(security): OSC52 클립보드 write를 기본 allow로 — env opt-in 게이트 제거 (사용자 결정 2026-06-20)
- feat(pty): 기본 TERM을 xterm-maru로 전환 — embed terminfo 자동 캐시 + TERMINFO env + 폴백
- feat(input): 버튼 없는 마우스 hover를 DECSET 1003 motion으로 리포트 — ABI v59
- feat(cli): maru install-cli — maru 바이너리를 ~/.local/bin에 symlink(PATH 진입점)
- perf(render): I/O–렌더 락-보유 구간 실측 — 더블버퍼 불필요 결론 (io-render-threading §5)
- feat(terminal): XTGETTCAP(DCS + q) — terminfo 없이 캡 런타임 질의(자기식별 2번째 채널)
- feat(cli): maru ssh 호스트 설치 캐시 — 재접속 시 설치 건너뜀(Ghostty +ssh-cache식)
ohah/ohah.github.io
- fix: Correct typos and improve wording in Electron MCP background doc
- [CRON] Update today-commit summary for 2026-06-20
- [CRON] Fixed typos and adjusted language in index.mdx
- Fix spelling and formatting in CRD file
ohah/suji
- fix(audit): 재리뷰 발견 수정 — canonicalizePath root 회귀 + pool-full emit 정리
- fix(audit): /code-review max 발견 수정 — 1차/2차 수정에서 도입한 버그 교정
- fix(audit): 플랫폼/CEF 전수조사 2차 — session/clipboard/tray/page-output/auth/packaging
- fix(audit): 코어/보안 전수조사 1차 — loader/events/config/updater/util/fs게이트
ohah/zntc
- feat(cache): 디스크 캐시 CLI opt-in (--disk-cache/--cache-dir) (#4438 graph 통합 3 PR3-1)
- feat(cache): 디스크 캐시 load hit 배선 + ON==OFF (#4438 graph 통합 3 PR2)
- feat(cache): load 경로 재구성 헬퍼 materializeFromCachedAst (#4438 graph 통합 3 PR1)
- feat(cache): graph 디스크 캐시 store 호출 배선 (#4438 graph 통합 2)
- feat(cache): graph 디스크 캐시 키 배선·캡처 (#4438 graph 통합 1)
- fix(cache): #4438 epic 종합 리뷰 후속 — fail-safe 상한 + ast_codec 가드 + 주석
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.