2026-06-07
요약 (AI 작성)
maru의 CoreText→Metal 글리프 파이프라인을 완성한 날입니다(40커밋). CoreText 셰이퍼·rasterizer·font adapter 경계를 추출하고, DrawList를 CoreText로 셰이핑해 Metal 스모크로 렌더하며, shaped glyph record 어댑터와 render frame이 glyph quad를 소유하는 구조, font identity registry를 세워 제품 atlas 샘플링까지 검증했습니다.
suji는 세션·단일 인스턴스 계열을 채웠습니다 — BrowserWindow.destroy(강제 파괴), session.setPermissionRequestHandler(CEF)·setProxy, second-instance 이벤트(두 번째 인스턴스 argv를 primary로 전달, Windows named pipe).
커밋
ohah/maru
- refactor(platform): drop redundant CoreText probe record copy
- fix(platform): keep CoreText probe font names stable
- refactor(platform): clarify CoreText smoke shaper probe
- feat(platform): add CoreText shaper boundary
- feat(platform): shape DrawList with CoreText
- feat(platform): render DrawList through Metal smoke
- fix(renderer): classify missing atlas samples
- fix(renderer): sample atlas ink texels in Metal smoke
- fix(platform): align Metal atlas readback row pitch to 256
- feat(renderer): verify Metal atlas raster upload
- fix(platform): align native Metal smoke status gate with atlas-sample rule
- fix(renderer): gate Metal smoke on atlas samples
- refactor(renderer): reuse rasterStyleFlags in shaped record adapter
- feat(renderer): add shaped glyph record adapter
- docs(platform): correct overclaim on required CoreText drawable field
- refactor(platform): extract CoreText probe boundary
- feat(platform): extract CoreText rasterizer boundary
- feat(platform): render CoreText glyphs in Metal smoke
- feat(renderer): sample product atlas in Metal smoke
- fix(platform): thread rasterizer name and drop dead zero-ink branch in CoreText probe
- feat(platform): rasterize CoreText smoke glyph runs
- fix(platform): align CoreText probe surface bounds
- refactor(platform): reuse renderer frame stats in CoreText probe
- feat(platform): route CoreText smoke through renderer state
- feat(renderer): make render frame own glyph quads
- refactor(renderer): drop redundant glyph raster buffer clear
- feat(renderer): add glyph raster upload frame
- fix(renderer): treat rasterizer-failed glyphs as not-ready and share slot bounds check
- Align glyph raster skips with atlas bounds
- feat(renderer): preserve surface metadata for shaped records
- refactor(renderer): drop unused RendererState method re-exports
- feat(renderer): accept shaped glyph runs in renderer state
- fix(platform): require explicit CoreText drawable intent
- refactor(platform): keep CoreText font intern policy private to the adapter
- feat(platform): extract CoreText font adapter boundary
- test(renderer): cover font identity trim dedup and unknown-id lookup
- feat(renderer): add font identity registry
- fix(platform): harden CoreText font identity bridge
- test(platform): lock font-id to PostScript-name lookup in CoreText probe
- feat(platform): route CoreText smoke through font identity
ohah/suji
- docs(session): setProxy API 문서화 + audit done 마킹 (#99)
- feat(window): BrowserWindow.destroy() — 강제 파괴 (window:close 스킵)
- docs(window): BrowserWindow.destroy() 문서화 + audit done 마킹 (#101)
- feat(session): setPermissionRequestHandler (CEF cef_permission_handler_t)
- chore: 실수로 커밋된 빈 아티팩트 test_intcast 제거
- docs: session.setSSLConfig / cookies.changed — CEF 본질적 제약으로 보류 명시
- feat(session): setProxy — Electron session.setProxy (Chromium proxy preference)
- docs(audit): electron-parity-audit 재동기화 — 구현 완료 25항목 done 마킹 + false 4건 정정
- docs(app): single-instance / second-instance API 문서화 (#94~96)
- feat(app): second-instance 이벤트 — 두 번째 인스턴스 argv 를 primary 로 전달
- feat(app): second-instance Windows named pipe (PR-B2)
- feat(windows): setResizable/Minimizable/Maximizable/Closable (capability flags)
- feat(windows): setMovable/Focusable/Enabled/FullScreenable/Kiosk (mode toggles)
- feat(windows): setSize/setPosition + min/max size (Geometry batch)
ohah/zntc
- chore(release): v0.1.2
- fix(release): bun.lock 동기화 — v0.1.2 platform/optionalDeps/root manual bump 반영