2026-06-06

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

요약 (AI 작성)

maru는 macOS 렌더링 경로를 smoke 테스트로 한 단계씩 쌓았습니다. 전날 열린 Metal smoke #63을 병합한 뒤 placeholder 셀 그리기와 readback 검증(#65, #66)을 붙였고, CoreText shaping smoke(#67)에서 나온 glyph를 atlas 키로 넘기고 래스터·texture·text smoke(#69, #71, #72)와 스크린샷 캡처까지 이어 갔습니다. glyph frame 계약(#74)을 세워 CoreText smoke와 앱 호스트가 이를 거치게 했고, appearance 설정 해석(#77)과 공용 color.Rgb 분리(#78)로 해석된 폰트·테마 색을 smoke에 적용했습니다. 창 backing scale에 맞춘 probe 준비(#88), font size·device scale 상하한 고정, RenderFrame 통계 직렬화 단일화(#92, #93), atlas 슬롯 배치(#91, #94), glyph quad UV frame(#95)이 뒤를 이었고, 런타임·외부 프로파일러 전략 문서(#85)와 PR metadata 체크 중복 실행 정리(#70)도 들어왔습니다. render frame이 glyph quad를 소유하게 하는 #96은 이날 PR이 열렸습니다.

suji는 Electron API 맞추기를 이어 갔습니다. BrowserWindow에 focus·isNormal(#81), bounds·size·position 조회(#82), 가시성·포커스·always-on-top(#83), 전체 창과 포커스 창 조회(#84), 콘텐츠 영역 bounds(#92)를 더했고, Rust·Go SDK에도 창 생명주기·상태 메서드 21종을 넣었습니다(#85, #86). screen.getDisplayMatching은 JS SDK로 추가한 뒤 코어 명령으로 옮겨 6개 언어에서 쓰게 했고(#89), powerMonitor.isOnBatteryPower·nativeTheme.themeSource·Notification.removeAll(#91)과 그 Linux 빌드 수정(#93), single-instance 락(#94)도 들어왔습니다. suji init은 multi 스캐폴딩에 lua·python 백엔드를 추가하고(#79) CLI의 python 스캐폴딩 e2e를 갖췄습니다.

zntc는 dev HMR과 cold 빌드 성능을 다듬었습니다. computeRenames의 중첩 바인딩 판정을 모듈별로 캐시하고(#4186), 보존 경로에서 import·re-export 분석을 변경 모듈과 importer로 한정했으며(#4190), 위상이 같으면 renumber를 건너뛰게 했습니다(#4192). RN dev HMR의 watch 디바운스 기본값을 50ms에서 16ms로 낮추고(#4193), dev cold 빌드가 병렬 scan을 타도록 바꿨습니다(#4194). 포맷 체크 실패를 계기로 저장소에 자동 포매팅 pre-commit 훅을 두고(#4188) 그 안전성도 보강했습니다(#4191).

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

커밋

ohah/maru

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#96생성mergedmainfeat(renderer): make render frame own glyph quads
ohah/maru#95생성 · 병합mergedmainfeat(renderer): prepare glyph quad uv frame
ohah/maru#94생성 · 병합mergedmainfeat(platform): pass atlas placement to metal smoke
ohah/maru#93생성 · 병합mergedmainrefactor(app): emit app host frame stats via shared renderer serializer
ohah/maru#92생성 · 병합mergedmainrefactor(renderer): own RenderFrame probe stats in a single source
ohah/maru#91생성 · 병합mergedmainfeat(renderer): assign atlas slot placement
ohah/maru#90생성 · 병합mergedmainfix(renderer): clamp device_scale upper bound symmetric with font size
ohah/maru#89생성 · 병합mergedmainfeat(platform): feed Metal smoke from glyph frame
ohah/maru#88생성 · 병합mergedmainfix(platform): prepare glyph text probe at the window backing scale
ohah/maru#87생성 · 병합mergedmaindocs(platform): expose fake shaper in glyph text probe
ohah/maru#86생성 · 병합mergedmaintest(renderer): cover render frame consistency failures
ohah/maru#85생성 · 병합mergedmaindocs(profiling): add runtime/external profiler strategy
ohah/maru#84생성 · 병합mergedmainfeat(platform): report renderer frame probe in glyph text smoke
ohah/maru#83생성 · 병합mergedmainfix(renderer): clamp text config device scale
ohah/maru#82생성 · 병합mergedmainfeat(platform): apply resolved appearance colors in glyph text smoke
ohah/maru#81생성 · 병합mergedmainfeat(renderer): prepare app host glyph frames
ohah/maru#80생성 · 병합mergedmainrefactor(config): consume shared color.Rgb in appearance resolver
ohah/maru#79생성 · 병합mergedmaintest(platform): feed resolved font config into CoreText smoke
ohah/maru#78생성 · 병합mergedmainrefactor(color): extract shared Rgb into backend-neutral module
ohah/maru#77생성 · 병합mergedmainfeat(config): resolve appearance settings
ohah/maru#76생성 · 병합mergedmaintest(platform): route CoreText smoke through glyph frame
ohah/maru#75생성 · 병합mergedmainrefactor(platform): single-pass glyph text readback counting
ohah/maru#74생성 · 병합mergedmainfeat(renderer): prepare glyph frame contract
ohah/maru#73생성 · 병합mergedmainfeat(renderer): capture glyph text smoke screenshot
ohah/maru#72생성 · 병합mergedmainfeat(renderer): add macOS glyph text smoke
ohah/maru#71생성 · 병합mergedmainfeat(renderer): add macOS glyph texture smoke
ohah/maru#70생성 · 병합mergedmainci(pr-metadata): collapse redundant runs to unblock required check
ohah/maru#69생성 · 병합mergedmainfeat(renderer): add CoreText glyph raster smoke
ohah/maru#68생성 · 병합mergedmainfeat(renderer): feed CoreText smoke glyphs into atlas keys
ohah/maru#67생성 · 병합mergedmainfeat(platform): add macOS CoreText shaping smoke
ohah/maru#66생성 · 병합mergedmainfix(platform): require Metal readback for terminal grid smoke
ohah/maru#65생성 · 병합mergedmainfeat(platform): draw placeholder cells in Metal smoke
ohah/maru#64생성 · 병합mergedmainfix(platform): harden macOS Metal smoke guards
ohah/maru#63병합mergedmainfeat(platform): add macOS Metal smoke
ohah/suji#94생성 · 병합mergedmainfeat(app): requestSingleInstanceLock / hasSingleInstanceLock / releaseSingleInstanceLock
ohah/suji#93생성 · 병합mergedmainfix(power-monitor): Linux 빌드 깨짐 수정 — std.posix.openZ → extern c open
ohah/suji#92생성 · 병합mergedmainfeat(window): getContentBounds/setContentBounds/getContentSize (Electron 패리티)
ohah/suji#91생성 · 병합mergedmainfeat: powerMonitor.isOnBatteryPower + nativeTheme.themeSource(getter) + Notification.removeAll
ohah/suji#90생성 · 병합mergedmainfix(screen): getDisplayMatching index 정합 가드 (/code-review max --fix)
ohah/suji#89생성 · 병합mergedmainrefactor(screen): getDisplayMatching 을 코어 cmd 로 — 6개 언어 전부 지원
ohah/suji#88생성 · 병합mergedmainfeat(screen): screen.getDisplayMatching(rect) — 듀얼/멀티모니터 (Electron 패리티)
ohah/suji#87생성 · 병합mergedmaintest(rust-sdk): window 리네임 트랩 cmd 가드 (restore_window/destroy_window)
ohah/suji#86생성 · 병합mergedmainfeat(go-sdk): windows 생명주기/상태 메서드 21종 (JS 패리티)
ohah/suji#85생성 · 병합mergedmainfeat(rust-sdk): windows 생명주기/상태 메서드 21종 (JS 패리티)
ohah/suji#84생성 · 병합mergedmainfeat(window): BrowserWindow.getAllWindows() + getFocusedWindow() (Electron 패리티)
ohah/suji#83생성 · 병합mergedmainfeat(window): isVisible/isFocused/blur/setAlwaysOnTop/isAlwaysOnTop (Electron 패리티)
ohah/suji#82생성 · 병합mergedmainfeat(window): BrowserWindow.getBounds()/getSize()/getPosition() (Electron 패리티)
ohah/suji#81생성 · 병합mergedmainfeat(window): BrowserWindow.focus() + isNormal() (Electron 패리티)
ohah/suji#80생성 · 병합mergedmaindocs: init 백엔드 목록에 python 누락 보정 (doc drift)
ohah/suji#79생성 · 병합mergedmainfeat(init): multi 스캐폴딩에 lua + python 백엔드 추가
ohah/suji#78생성 · 병합mergedmaintest(init): @suji/cli python 백엔드 스캐폴딩 e2e 추가 (lua 동형 갭)
ohah/suji#77생성 · 병합mergedmaindocs: 모바일 python CI 자동 커버리지 반영 + run.sh 하니스 65→68/68 동기화
ohah/zntc#4194생성 · 병합mergedmainperf(graph): dev cold build 병렬 scan — preserve 경로 cold 를 build() 로 라우팅
ohah/zntc#4193생성 · 병합mergedmainperf(rn): dev HMR watch 디바운스 기본 50→16ms + --watch-delay 플러밍
ohah/zntc#4192생성 · 병합mergedmainperf(graph): renumber identity fast-path — 위상 보존-hit 시 realloc/remap skip (#4175)
ohah/zntc#4191생성 · 병합mergedmainfix(hooks): pre-commit 안전성 — 공백 파일명/포매터 실패/부분 stage (#4188 후속)
ohah/zntc#4190생성 · 병합mergedmainperf(linker): lImp/lReExp 를 변경∪importer 한정 partial-skip (#4189)
ohah/zntc#4188생성 · 병합mergedmainchore(hooks): repo-tracked .githooks (자동 포매팅 pre-commit) — CI fmt 깨짐 방지
ohah/zntc#4187생성 · 병합mergedmainfix(test): hmr-wait.ts oxfmt 포매팅 (CI fmt:check 복구)
ohah/zntc#4186생성 · 병합mergedmainperf(linker): computeRenames hasNestedBinding 모듈당 union set 캐시 — cold lRen −47%