2026-06-18
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
maru는 사이드바에 claude·codex 에이전트 세션 카드를 띄우는 #653을 병합하고, 에이전트 세션 감지 설계 문서를 먼저 쓴 뒤 claude 트랜스크립트 상태 파싱 코어, codex 어댑터, 사이드바 상태 표시, 완료 알림을 차례로 넣었습니다. codex 어댑터를 기능 브랜치로 보낸 #656은 병합되지 않고 닫혔고, 같은 내용의 커밋은 main에 들어 있습니다. 이어 I/O와 렌더 스레드를 나누는 설계 문서와 함께 코어 락을 도입하고, 렌더 palette를 소유 복사로 바꾼 뒤 활성·비활성 pane 렌더, kitty 이미지, blink·스크롤바, 입력 리포트, 찾기 등 코어를 읽는 경로마다 락을 걸었습니다. 그 위에서 reader 스레드가 출력을 직접 코어에 적용하고 OSC 10·11, CPR, DA 응답을 렌더 tick과 무관하게 바로 돌려주게 해, 출력이 몰리는 codex 시작 중 응답이 늦어지던 문제를 풀었습니다. 키 입력 직후 크래시는 frame 조립의 락 io를 FrameLoop가 소유하도록 해 고쳤습니다.
codex 입력창이 회색으로 그려지지 않던 다른 원인은 빌드 환경의 CLICOLOR_FORCE·FORCE_COLOR가 자식 셸로 상속된 것이어서, 자식 env에서 이를 지우고 정책을 문서로 남겼습니다. box 선과 둥근 모서리의 중앙 정렬 계산도 통일했습니다. 스레딩 2단계로는 렌더 tick 없이 OSC 11 응답이 전달되는지, 출력 폭주 중 응답 지연 상한, 동시성 스트레스와 close 경합을 보는 회귀 테스트를 넣은 뒤, 입력 방향 bounded FIFO PtyWriteQueue와 통합 poll 루프로 reader 스레드를 PTY의 유일한 writer로 만들었고, 리뷰에서 나온 큐 간 데드락과 write 오류 누락을 고쳤습니다. 줄 가운데에서 한글을 조합할 때 뒤 글자를 가리던 문제는 조합 중 글자를 삽입형으로 미리 보여 주도록 바꿨습니다(#674).
iris는 strict HBC 엔진 비교 POC를 넓히고(#41) global 접근 진단 벤치마크를 더한 뒤, 전역·객체 프로퍼티 operand 캐시(#43, #44), 객체 프로퍼티 쓰기 조회 최적화(#48), 숫자 equality jump와 NativeMath Call2 fast path(#49, #51), Math 조회 페어, 전역·객체 숫자 갱신, 나머지 누적, 체크섬, Uint8 인덱스 쓰기 시퀀스의 빠른 경로(#54부터 #63까지)를 추가했습니다. 효과가 없던 후보들은 제외 결과로 기록해 두었고, 이날 연 iris PR 28개는 모두 병합됐습니다. 블로그 저장소에는 오늘의 커밋 요약과 크론 교정 커밋이 올라갔습니다.
공개 커밋 73개, 해당일 생성 또는 병합된 PR 50개를 정리했습니다. PR 생성 50개·병합 49개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/iris
- 객체 생성 시퀀스 제외 결과 문서화
- 분기 후보 재측정 제외 결과 문서화
- JSON 객체 시퀀스 제외 결과 문서화
- Math 전역 호출 시퀀스 제외 결과 문서화
- 분기 조건 빠른 경로 제외 결과 문서화
- Uint8 전역 인덱스 나머지 쓰기 빠른 경로 추가
- 전역 숫자 체크섬 시퀀스 빠른 경로 추가
- 전역 숫자 나머지 누적 시퀀스 빠른 경로 추가
- 객체 시퀀스 레지스터 후보 결과 기록
- 객체 숫자 업데이트 시퀀스 빠른 경로 추가
- 실패한 HBC 성능 후보 기록
- 전역 숫자 갱신 시퀀스 빠른 경로 추가
- 네이티브 Math Call2 시퀀스 빠른 경로 추가
- Call2 값 레지스터 후보 제외 기록
- Math 조회 페어 빠른 경로 추가
- Math GetByIdShort 후보 제외 기록
- NativeMath Call2 this 후보 제외 기록
- NativeMath Call2 숫자 fast path 추가
- Boolean 조건 분기 후보 제외 기록
- 숫자 equality jump fast path 추가
- 객체 프로퍼티 write lookup 최적화
- global write cache hit 후보 제외 기록
- 최신 strict HBC 전체 측정 기록
- Math intrinsic 캐시 후보 제외 기록
- 객체 프로퍼티 operand 캐시 적용
- 전역 프로퍼티 operand 캐시 적용
- global 접근 진단 벤치마크 추가
- strict HBC 엔진 비교 POC 확장
ohah/maru
- docs(key-input): IME preedit 렌더를 삽입형 미리보기로 규약 갱신
- fix(terminal): IME 조합을 삽입형 미리보기로 — 줄 가운데 한글이 뒤 글자를 가리지 않게
- fix(pty): /code-review max 결함 수정 — 교차-큐 데드락 + write 에러 삼킴 (P2-5)
- docs(pty): 운영 모델을 단일 writer 최종형으로 갱신 (P2-5)
- test(pty): close-with-pending-write 회귀 고정 (P2-4)
- feat(pty): 메인 입력을 write_queue로 라우팅 — reader가 유일한 PTY writer (P2-3b)
- fix(pty): 비-macOS 스텁에 waitIo/readChunk/reapAfterEof 동기화
- feat(pty): reader-processing을 통합 poll 루프로 + 응답 비차단 outbound (P2-3a)
- refactor(pty): readEvent를 waitIo/readChunk/reapAfterEof 프리미티브로 분리 (P2-2, 동작 보존)
- feat(pty): PtyWriteQueue — 입력 방향 단일-writer bounded FIFO (P2-1)
- docs(io-render-threading): Phase 2 단일 writer I/O 스레드 설계 (P2-0, doc-first)
- test(pty): I/O–렌더 동시성 스트레스(§6-3)·close race(§6-4) 회귀 테스트
- test(pty): 출력 폭주 중 OSC 11 응답 지연 상한 회귀 테스트 (io-render-threading §6-2)
- test(pty): "렌더 틱 없이 OSC 11 응답 전달" 결정론 통합 테스트 (io-render-threading §6-1)
- fix(renderer): box 선·둥근 모서리 중앙 정렬을 Ghostty (치수-두께)/2로 통일
- docs(terminal-compat): 런처 색-강제 override 제거 정책 문서화
- fix(pty): 색-강제 override(CLICOLOR_FORCE/FORCE_COLOR) 자식 env에서 제거
- fix(app): frame 조립 코어 락 io를 FrameLoop가 소유 — 키 입력 직후 크래시 수정
- fix(app-session): 입력 핸들러 코어 접근 락 (code-review max — 리더 경합)
- fix(app-host): render-tick Find/sync_output 코어 읽기 락 (code-review max #1,2,5)
- docs: I/O–렌더 스레딩 구현 상태 반영 (PR3 PR5-docs)
- test(app): setProcessing 게이트 결정론 단위 테스트 (PR3 3b-3)
- feat(app): 리더 스레드 코어-처리 활성화 (interactive) — codex 회색 결함 해소 (PR3 3b-2)
- feat(app): 리더 스레드 코어-처리 인프라 (PR3 3b-1, 미활성)
- feat(app-host): cell_colors·click report·find scroll 코어 접근 락 — 3a 완료 (PR3 3a-2 step7)
- feat(app-host): scroll·휠/포커스 입력 리포트 코어 접근 락 (PR3 3a-2 step6)
- feat(app-host): blink 셀스캔·스크롤바 코어 읽기/스크롤 락 (PR3 3a-2 step5)
- feat(app-host): kitty 이미지·셀 메트릭 코어 접근 락 (PR3 3a-2 step4)
- feat(app-host): 비활성 split pane 렌더-읽기 락 (PR3 3a-2 step3)
- feat(app-host): 활성 프레임 렌더-읽기 락 (PR3 3a-2 step2)
- refactor(renderer): buildFrameFromDrawList 분리 헬퍼 (PR3 3a-2 step1)
- feat(app-host): 렌더 palette를 코어 alias 대신 소유 복사로 (PR3 3a-1)
- feat(app): 코어 락 도입 + 질의 응답 write를 락 밖으로 (PR1)
- docs: I/O–렌더 스레딩 분리 설계 (PR0, doc-first)
- fix(app-host): /code-review max 결함 수정 (에이전트 세션 기능)
- feat(app-host,config): 에이전트 세션 완료 알림 (PR4)
- feat(app-host,session): 에이전트 세션 상태 사이드바 표시 (PR3)
- feat(session): codex 트랜스크립트 어댑터 (PR2)
- feat(session): claude 트랜스크립트 상태 파싱 순수 코어 (PR1)
- docs: 에이전트 세션 감지(JSONL) 설계 plan (PR0, doc-first)
- feat(renderer,pty): 사이드바 에이전트-세션 카드 + claude/codex 감지
ohah/ohah.github.io
- docs: add AI summary for 2026-06-18
- fix(typo): corrected spelling and added date to today-commit metadata.
- Corrected spelling and phrasing in CRD background.mdx file
- Fix minor pending text for Chromium first contribution guide
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.