2026-06-15
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
maru는 chrome의 rich 테마를 GPU로 그리는 작업을 진행했습니다. rich 토큰셋과 chrome.theme 설정(#445), GpuQuad·GpuShadow ABI와 SDF quad 렌더 파이프라인(#447)을 깔고 사이드바 밴드를 quad로 그린 뒤, 모달 합성 레이어를 나눠 둥근 모달 배경(#457)과 테두리, 그림자 셰이더와 draw 패스(#464), 화면 경계를 넘지 않는 모달 패딩을 붙였습니다. 탭 바는 hit-test와 그리기가 같은 픽셀 경계를 쓰도록 정리하고 bottom·under·over 3단 draw로 둥근 활성 탭과 gradient를 넣었다가, 사용자 요청에 따라 평평한 배경에 앰버 언더바를 두는 방식으로 바꿨습니다(#496). 사이드바에는 활성 워크스페이스 앰버 막대와 카드 여백을 더했고, 탭 고정 폭과 세로 패딩, 넘칠 때의 가로 스크롤 버튼(#505)과 트랙패드 가로 스와이프(#514), 클릭 가능한 영역의 손가락 커서도 추가했습니다. 코드 주석의 외부 도구 이름을 maru 자체 용어로 바꿨고, metal_frame을 renderer 레이어로 옮겨 중립 frame 계약을 만들었습니다(#516).
후반에는 미구현 터미널 프로토콜을 점검해 채웠습니다. nvim 모드 표시가 지워지지 않던 문제를 고친 ECH(#519), 포커스 이벤트 DECSET 1004(#520), SGR·x10 마우스 리포팅과 그 연결(#521, #523), synchronized output DECSET 2026(#525), kitty keyboard protocol(#526, #527), kitty graphics APC 파서와 RGBA·RGB 이미지 디코드·저장(#528, #530)이 들어왔습니다. 이후 clean-room 기준에 맞춰 kitty FlagStack을 독립적으로 다시 쓰고 Ghostty 구조 인용을 지웠으며(#533), ESU가 오지 않으면 화면이 멈추던 synchronized output에 timeout을 넣었습니다(#534).
zntc는 import specifier 사용 여부 판정, wrapped 경로 메타데이터 생성, import record 병합을 O(N²)에서 O(N)으로 줄이고(#4408, #4409, #4410) export_map 키를 구조체로 바꿨습니다(#4427). Infinity·NaN 상수 폴딩 회귀(#4416)와 음수 리터럴 팽창(#4429), optional catch binding 섀도잉(#4417), 클래스 본문 strict mode 전파와 Annex B 게이트(#4418, #4435), config와 CLI의 머지 우선순위(#4419), \p{name=value}의 값 손실(#4420)을 고쳤습니다. 번들러 진단이 ZNTC 코드와 문서 URL을 내도록 하고 빠진 오류 문서와 동기화 CI 가드를 추가했으며(#4422, #4431, #4433, #4436), 설계 문서와 코드의 차이를 일괄 정정했습니다. RN 버전별 다운레벨 타깃 --rn-version #4437은 이날 PR이 열렸습니다.
suji는 Electron 패리티를 이어 flashFrame·about·login item·contentProtection 등 app·window 메서드 묶음(#159), setPath·로캘 등 경로·메타 API(#162), showMessageBox 아이콘(#163), will-quit·open-url 이벤트(#164), 인증서 오류·로그인·클라이언트 인증서 선택 이벤트(#168)를 추가하고, 인증 콜백의 IO 스레드 emit UAF를 바로 고쳤습니다(#169). Windows에서는 e2e를 별도 잡으로 분리하고 suji types, 레지스트리 Run 키 login item, FlashWindowEx 주의 요청(#165부터 #167까지)을 지원했습니다. multi 스캐폴딩에 node 백엔드를 넣고(#173) 패리티 감사·CLI 플래그·suji.schema.json 보안 섹션 문서를 정비했습니다. iris는 Android 런타임 벤치마크 lane을 넓히고 strict 엔진 체크섬 검증을 넣는 등 측정 경로를 정리했습니다(#40). 블로그 저장소에는 오늘의 커밋 요약과 크론 교정 커밋이 올라갔습니다.
공개 커밋 143개, 해당일 생성 또는 병합된 PR 127개를 정리했습니다. PR 생성 127개·병합 126개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/iris
- Iris HBC 스칼라 실행 측정 완료 처리
- Iris strict 측정 실패 로그 보강
- strict 엔진 벤치마크 체크섬 검증 추가
- 브리지 벤치마크 비교 분류 정리
- Android 런타임 벤치마크 lane 확장
ohah/maru
- docs: vm sync output 항목에 ESU-유실 timeout 보강 (audit HIGH fix)
- fix(platform): synchronized output(2026) ESU-유실 timeout — freeze 복구 (audit HIGH)
- refactor(terminal): kitty graphics 주석의 Ghostty 구조 인용 제거 — clean-room (audit 재검)
- refactor(terminal): kitty FlagStack을 독립 자료구조로 재작성 — clean-room (audit)
- docs(implementation-plan): kitty graphics 1단계(이미지 저장) 완료 반영 (#530/#531)
- fix(terminal): kitty graphics 치수 곱 오버플로 거부 — panic 방지 (code review)
- docs: sync verification-matrix with kitty graphics transmit 저장 (audit 5/5 1단계)
- feat(terminal): kitty graphics 이미지 디코드+저장 — RGBA/RGB transmit (audit 5/5 1단계)
- docs(implementation-plan): sync 미구현 프로토콜 audit 진행 (focus/mouse/sync/kitty)
- docs: sync verification-matrix with kitty graphics APC 파서/command 토대 (audit 5/5)
- feat(terminal): kitty graphics command 파싱 — control k=v 주요 key (audit 5/5b)
- feat(terminal): kitty graphics APC 파서 토대 — ESC_..ESC\ 수집 (audit 5/5a)
- fix(terminal): kitty Shift+Enter/Tab/Backspace는 legacy 바이트 대신 CSI u (code review)
- docs: sync verification-matrix with kitty keyboard protocol (audit 4/5)
- feat(terminal): kitty keyboard encodeKey CSI u 인코딩 — disambiguate (audit 4/5b-2)
- feat(terminal): kitty keyboard CSI u dispatch — push/pop/set/query (audit 4/5b-1)
- feat(terminal): kitty keyboard FlagStack 상태 토대 — KittyFlags/FlagStack/SetMode (audit 4/5a)
- feat(terminal): synchronized output (DECSET 2026) — sync 중 frame hold, ESU에 1 frame (audit 3/5)
- fix(platform): 휠 mouse reporting을 활성 pane 기준으로 정합 (focus·mouse max 리뷰)
- feat(platform): mouse reporting 연결 — 클릭/드래그/휠 → SGR/x10 PTY (audit 2/5, 8b-2)
- feat(platform): mouse ABI에 button/mods 추가 (mouse reporting 8b-1, 동작 무변화)
- feat(terminal): mouse reporting core — DECSET 모드 + reportMouse SGR/x10 (audit 2/5, 8a)
- feat(terminal): focus events (DECSET 1004) — CSI I/O 포커스 리포트 (미구현 프로토콜 audit 1/5)
- feat(terminal): ECH (CSI Ps X) — 커서부터 N칸 제자리 blank (nvim 모드 라벨 clear 버그)
- docs(layering): metal_frame을 L1 renderer 행으로 — L4 render projection stale 정합
- docs(implementation-plan): New Window·chrome 고급화 백로그 → 구현 완료 반영
- refactor(renderer): metal_frame을 platform/macos→renderer로 이주 — 중립 frame 계약 (B 완료, §8)
- test(boundary): neutrality 가드에 terminal(L1) 추가 + §5 B·§8 docs 정합 (B 가드 부분)
- feat(chrome): 트랙패드 가로 스와이프 → 탭 바 가로 스크롤 (ABI v44, #505 리뷰 2b)
- feat(chrome): ‹/› 스크롤 방향 affordance — 여지 있는 방향만 강조·경계 muted (#505 리뷰 #3)
- fix(chrome): 사이드바 커서 판정의 sidebarSlotAt 중복 호출 제거 (#511 리뷰)
- feat(chrome): 클릭 가능 영역 pointingHand 커서 — 탭 바·워크스페이스 슬롯 (#505 리뷰 #5c)
- feat(chrome): 가로 스크롤 ‹› hover 색 — hover 시 밝게(클릭 가능 표시) (#505 리뷰 #5b)
- feat(chrome): 가로 스크롤 ‹› 사각 버튼 + 사이 공백 (#505 리뷰 #5a)
- fix(chrome): 활성 탭 자동 스크롤-인 — focusTerm이 스크롤 밖 탭 보이게 (#505 리뷰 #2)
- docs(chrome): U3에 탭 고정폭·세로패딩·가로 스크롤 반영 — 중간 추가 기능 docs 동기화
- fix(chrome): 가로 스크롤 stale offset 복구 + tui 무스크롤 — #505 리뷰 (#1·#4)
- feat(chrome): 가로 탭 스크롤 ‹›버튼 — 넘칠 때 우측 스크롤 + 클리핑 (Step 2a-2)
- feat(chrome): 가로 탭 스크롤 배관 — Pane.tab_scroll_cols + Metrics.scroll_cols + segCols offset (Step 2a-1)
- fix(chrome): paneBarHeightPx undefined-session UB 가드 — #500 누락 리뷰 보충에서 발견
- refactor: 코드 주석의 외부 도구명 전수 제거 — maru 자체 용어·"멀티플렉서"로 (사용자 지시)
- refactor: 코드 주석·테스트 제목의 외부 도구 출처 표현 제거 — maru 자체 용어로 치환
- feat(chrome): 탭 바 세로 패딩 — 바 높이 cell+2*pad_y, 제목 세로 중앙 (사용자 요청)
- feat(chrome): 탭 고정 폭 레이아웃 — 균등 stretch 대신 고정폭(빈 영역 허용), tui 균등 유지 (Step 1/2)
- fix(chrome): 활성 탭 언더바 두께를 바 높이로 clamp — thin bar에서 바 위로 안 새게 (#496 리뷰)
- refactor(chrome): 활성 pane 사각 ring 제거 — 탭 하단 언더바로 일원화 (사용자 요청)
- feat(chrome): 활성 탭 VSCode식 — 평평 배경 + 하단 maru 앰버 언더바 (사용자 요청)
- refactor(chrome): Rect.outset(inset 대칭) 추가 + 모달 패딩 선언화 — 박스 유틸 통일
- refactor(chrome): solid 직각 GpuQuad 헬퍼 appendSolidQuad 추출 (#492 리뷰 cleanup)
- fix(chrome): 활성 탭 밴드 하단 직각화 — 둥근 하단 코너 divider 비침 제거 (#492 리뷰)
- feat(chrome): U3 가로 탭 납작화 — 탭 전용 곡률 토큰 분리(flat 밴드)
- fix(chrome): 탭바 구분선 두께 line_thickness_px 토큰화 — 1px GpuQuad SDF 흐림 해소 (#490 리뷰)
- feat(chrome): 탭바 하단 구분선 — 탭바와 터미널 콘텐츠 경계 (탭바 다듬기, 사용자 #1)
- fix(chrome): 모달 열림 시 활성 pane ring skip — ring이 모달 배경 가로지름 방지 (#488 리뷰)
- feat(chrome): full rich split 활성 pane 앰버 테두리(ring) — 포커스 강조 (사용자 요청 #1)
- fix(chrome): 사이드바 제목 우측 초과 방지 — indent+cols clamp (B2 리뷰 e)
- fix(chrome): 사이드바 제목을 content rect만큼 들여쓰기 — 좌측 막대 가림 해결 (B2, 사용자 피드백)
- refactor(chrome): Rect.inset(EdgeInsets) 선언적 패딩 유틸 + 사이드바 카드/막대 통일 (B1)
- feat(chrome): 사이드바 카드 레이아웃 — 워크스페이스 카드 사이 여백 (U2)
- feat(chrome): 사이드바 활성 워크스페이스 좌측 maru-accent 막대 (U1-2, 첫 시각)
- feat(chrome): maru 앰버 accent 색 토큰 + chrome 로드맵 docs 동기화 (U1-1)
- feat(platform): rich 활성 탭 vertical gradient — C4b-5 완결 (둥근 탭 + gradient)
- fix(platform): rich 탭 밴드 z-order — 바 배경에 가려 활성 탭 안 보이던 버그 (#479 리뷰 #1)
- feat(platform): rich 활성 탭 둥근 GpuQuad 밴드 — 첫 시각 (C4b-5②b)
- refactor(platform): 탭 밴드 quad 생명주기 토대 — dropQuadsByLayer 일반화 (C4b-5②a)
- docs(platform): GpuQuad.layer 주석에 2=bottom(탭 밴드) 동기 (#476 리뷰)
- feat(platform): chrome 탭 밴드 레이어 토대 — 3-way draw(bottom/under/over) (C4b-5①)
- feat(chrome): tabbar 제목·✕를 segCols 단일 소스로 — C4b-4 둘째-B 완결 (§6 seam 해소)
- feat(chrome): tabbar 활성 밴드를 segOf 셀 경계로 — view 단일 소스 시작 (C4b-4 둘째)
- fix(chrome): tabbar tabIndex overflow 회귀 — 안 보이는 탭 hit 방지 (#472 리뷰 #1)
- feat(chrome): tabbar segOf 픽셀 경계 단일 소스 — hit-test 재배선 (C4b-4 토대, §6 seam)
- docs(chrome): 모달 패딩 주석 정정 — avail_cols=0 floor regime 침범 명시 (패딩 리뷰 반영)
- feat(chrome): notice 모달 패딩 view depth — 패딩 작업 완결 (#468 리뷰 #1)
- feat(chrome): 모달 패딩을 view depth로 (find/palette) — 화면 경계 안전 (#468 리뷰 #1)
- feat(chrome): rich 모달 팝업 패딩 — 배경 박스를 텍스트보다 크게 (사용자 피드백)
- fix(platform): rich 모달 선택 행 강조 — 빈 칸까지 skip되던 버그 (사용자 피드백)
- refactor(chrome): shadow 파라미터를 Spacing 토큰으로 (모달-3 리뷰 cleanup)
- fix(platform): 모달 그림자 draw 순서 — 터미널에 가려 깜빡이던 버그 (모달-3 리뷰 #1)
- feat(chrome): 모달 그림자 lowering — 모달 첫 그림자 시각 (모달-3b-3)
- feat(platform): chrome 그림자 gpu_shadows 배관 (모달-3b-2)
- feat(platform): chrome 그림자 draw 패스 — fill_shadow_instance + 7-세그먼트 (모달-3b-1b-ii)
- feat(platform): shadow 정점 struct + 60B 가드 (모달-3b-1b-i)
- feat(platform): chrome 그림자 셰이더 + 파이프라인 (모달-3b-1a)
- feat(chrome): rich 모달 quad 테두리 — 직각 셀 테두리 정합 (모달-3a)
- fix(platform): rich 모달 둥근 배경이 셀에 가려 사각으로 보이던 버그 (모달-2c, 리뷰 #1)
- feat(chrome): 모달 팝업 배경 둥근 quad — 모달 첫 시각 (모달-2b-ii)
- feat(platform): 모달 quad 생명주기 — dropModalQuads + buildChromeOverlayFrame 머지 (모달-2b-i)
- feat(platform): 모달 배경 quad rasterize 수집 (모달-2a)
- fix(platform): 모달-1/1c 리뷰 반영 — modal_cells_start 불변 assert + MetalFrame ABI offsetOf
- feat(platform): 모달 over quad 텍스트 경계 분할 (모달-1c, ABI v43)
- feat(platform): chrome 모달 합성 레이어 토대 — GpuQuad.layer + draw under/over 분리 (모달-1, ABI v42)
- fix(platform): rich 사이드바 밴드 z-order + quad ABI 회귀 가드 (C4b-3 리뷰 반영)
- feat(chrome): sidebar 밴드 GPU quad 렌더 + gpu_quads 배관 (C4b-3)
- feat(chrome): ChromeDraw.quad Op + Spacing 모양 토큰 (C4b-2)
- feat(platform): chrome rich quad SDF 렌더 파이프라인 + draw 패스 (C4b-1b)
- feat(platform): chrome rich GPU 프리미티브 ABI 토대 — GpuQuad/GpuShadow (C4b-1a, ABI v41)
- test(config): C4a 리뷰 반영 — chrome.theme 파싱·전파 테스트 보강
- feat(chrome): rich 토큰셋 + config chrome.theme 분기 (C4a)
ohah/ohah.github.io
- docs(today-commit): update AI summary for 2026-06-15
- [CRON] Corrected minor phrasing on index.mdx
- Fix typos and improve wording in '/crd/background.mdx' per CRON_CRD_WRITE.md task
- [CRD] Updated index.mdx for typo/details adjustment
ohah/suji
- docs(schema): suji.schema.json 에 fs/shell/dialog/security 보안 4섹션 추가
- docs(cli): suji build 서명/공증/패키징 플래그를 usage·CLAUDE.md 에 문서화
- feat(init): multi 스캐폴딩에 node 백엔드 추가 — 6 backend(examples 동등)
- fix(cli): 네이티브 suji init 도움말/에러에 python backend 누락 보완
- docs(parity): audit 전수 점검 — 구현됐으나 미마킹이던 9개 ✅
- docs(parity): audit/CLAUDE.md/SDK 문서 동기화 — origin Windows stale + audit 마킹 누락
- fix(auth): IO-스레드 emit UAF + 구독 게이트 (PR #168 인증 콜백 hotfix)
- feat(parity): app:certificate-error / login / select-client-certificate 인증 이벤트 (B 묶음 4/4)
- feat(attention): Windows requestUserAttention via FlashWindowEx
- feat(login-item): Windows registry Run key (setLoginItemSettings parity)
- feat(cli): suji types on Windows + fix e2e-split test regression + doc currency
- feat(parity): app:will-quit / app:open-url 이벤트 (B 묶음 3/4)
- feat(parity): dialog.showMessageBox icon 옵션 + readFindText/accessibility 정직경계 (A 묶음 2/4)
- feat(parity): app 경로/메타 — setPath/getLocaleCountryCode/getRecentDocuments/getApplicationName·InfoForProtocol
- docs(python): mark Windows packaging done; narrow the remaining follow-up
- ci: split Windows e2e into its own job (decouple from Linux matrix)
- feat(parity): app/window Electron 저가치 메서드 일괄 — flashFrame/about/recentDocs/loginItem/contentProtection/skipTaskbar
- chore(review): address /code-review max findings on PRs #151-157
ohah/zntc
- fix(diagnostic): 번들러 진단 7개에 ZNTC 코드 할당 + app/wasm 출력 일관성
- fix(semantic): class body strict 의 if-body Annex B 게이트 누락 수정 (#4418 형제)
- fix(diagnostic): 번들러 진단이 ZNTCxxxx 코드 + docs URL 방출
- ci: error 문서 동기화 가드 추가 (#4421 후속 — 404 재발 방지)
- fix(minify): unary-minus fold 에 size 가드 추가 (음수 리터럴 팽창 방지)
- docs: 설계 문서-코드 괴리 일괄 정정 (전수조사 2026-06-15)
- docs(invariants): §1 StableSegmentedList 정정 + graph.zig 헤더 흡수 (docs PR 와 disjoint)
- refactor(bundler): 죽은 phase-accessor 계층 제거 + INVARIANTS 현실화
- docs(errors): ZNTC0623/0805 누락 페이지 생성 (docsUrl 404 수정)
- fix(regexp): \p{name=value} 의 =value 가 재출력 시 손실되는 회귀 수정
- fix(cli): zntc.config.json 머지 우선순위를 CLI > config 로 정정
- fix(semantic): class body strict mode 를 중첩 스코프로 전파
- fix(transformer): es2019 optional catch binding 이 외부 변수를 섀도잉하는 회귀 수정
- fix(minify): Infinity/NaN 상수 폴딩 차단 (inf/nan 식별자 방출 회귀)
- perf(linker): export_map 문자열 키 → (module_index, name) struct 키
- perf(graph): mergeImportRecords O(N²)→O(N) — import record identity 해시맵
- perf(linker): buildMetadataForAst wrapped 경로 O(N²)→O(N) — record별 binding 비트셋
- perf(transformer): isImportSpecifierUnused O(N²)→O(N) — value-use symbol 집합 캐시
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.