2026-06-06

요약 (AI 작성)

maru의 macOS 렌더링 스모크 테스트를 촘촘히 쌓은 날입니다(46커밋). Metal 스모크와 CoreText 셰이핑 스모크, glyph texture·glyph text 스모크를 추가하고, appearance 색 해석·glyph frame 계약·프레임 probe·스크린샷 캡처로 렌더 파이프라인을 실측 검증했습니다.

suji는 Electron API 패리티를 대거 확장해 BrowserWindow의 bounds/size/position·content bounds·focus, screen.getDisplayMatching(멀티모니터), powerMonitor·nativeTheme·Notification, go/rust SDK의 창 생명주기 메서드를 맞췄고, init 스캐폴딩에 lua·python 백엔드를 추가했습니다.

커밋

ohah/maru

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

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