2026-06-08

요약 (AI 작성)

ohah/maru는 Metal 렌더러 최적화, live PTY 수명 주기 라이프사이클 강화, 프레임 루프 계약 고정 등 여러 refactor와 테스트를 진행했습니다. macOS Swift 앱 호스트 경계 정의, 개발 세션 렌더링, CoreText 글리프 프레임 렌더링을 위한 테크니컬 인프라도 추가되었고, 렌더러 메모리 관리 및 파이프라인 흐름 관련 버그 수정을 포함합니다. ohah/suji는 전 5 SDK 플랫폼으로 확장된 API 집합을 추가했습니다. 클립보드, 전원 모니터, 알림, 웹 컨텐츠, 화면 이벤트, 웹 요청 헤더, quit 이벤트 훅, 기본 프로토콜 클라이언트 등 다양한 주제를 다뤘으며, SDK �wire 계약 검증과 행동 e2e 테스트, 문서 업데이트도 병행했습니다. ohah/zntc는 배포 패키지 README 문서를 추가하여 배포 절차를 명확히 했습니다.

커밋

ohah/maru

ohah/suji

PR (해당일 생성/머지)

repo#상태제목
ohah/maru#161mergedperf(platform): fill vertex buffer in place and skip idle metal-frame calls
ohah/maru#160mergedfix(platform): harden metal renderer bounds, drawable, and surface repaint
ohah/suji#135mergedfix(review): code-review max 후속 — before-quit 창닫기 누락 외 5건
ohah/maru#159mergedfeat(platform): draw the dev session in a Swift Metal terminal view
ohah/maru#158mergedfeat(platform): add a lean product Metal renderer and share the cell shader
ohah/suji#134mergedtest(app): before-quit behavioral e2e — 백엔드 마커로 종료 전 발화 검증
ohah/suji#133mergedtest(sdk): 백엔드 SDK wire-contract 보강 — Node behavioral + cross-SDK drift 가드
ohah/maru#157mergedfix(platform): correct metal-frame retention lifecycle and dirty-gate it
ohah/maru#156mergedfeat(platform): expose the dev session RenderFrame as a Metal-frame ABI
ohah/maru#155mergedfeat(platform): render real CoreText glyph frames in the dev session
ohah/suji#132mergedfeat(webContents): setWindowOpenHandler — popup 정책 + new-window 이벤트 (전 5 SDK)
ohah/maru#154mergedrefactor(app): share smoke termination and artifact-write helpers
ohah/suji#131mergedfeat(webRequest): setRequestHeaders (declarative onBeforeSendHeaders) — 전 5 SDK
ohah/maru#153mergedrefactor(platform): unify shell resolution and key codepoint conversion
ohah/maru#152mergedfix(platform): signal session end and stop fatal per-event app exits
ohah/suji#130mergedfeat(app): setAsDefaultProtocolClient 트리오 — 전 5 SDK (macOS LS)
ohah/suji#129mergedfeat(app): before-quit 이벤트 — quit chokepoint 훅
ohah/suji#128mergedfeat(webRequest): responseHeaders + statusText in completed (onHeadersReceived)
ohah/maru#151mergedfeat(platform): route Swift app dev events
ohah/suji#127mergedfeat(session): setDownloadPath + will-download 이벤트 — 전 5 SDK
ohah/maru#150mergedfeat(platform): attach Swift app dev session runtime
ohah/suji#126mergedfeat(webContents): stop + insertCSS + removeInsertedCSS — 전 5 SDK
ohah/maru#149mergedfeat(platform): add macOS app dev shell
ohah/maru#148mergedfeat(platform): define macOS Swift app host boundary
ohah/suji#125mergedfeat(WebContentsView): View.getBounds + setBackgroundColor + WebContentsView 클래스
ohah/maru#147mergedtest(platform): capture keyDown on Metal terminal window
ohah/maru#146mergedtest(platform): close live PTY from Metal window
ohah/maru#145mergedtest(app): pin repeated frame builder loop contract
ohah/suji#124mergedfeat(screen): display-added/removed/metrics-changed events
ohah/maru#144mergedtest(platform): add visible interactive shell PTY Metal smoke
ohah/suji#123mergedfeat(powerMonitor): shutdown + on-battery/on-ac events
ohah/maru#143mergedtest(app): bound PTY smoke drain waits
ohah/suji#122mergedfeat(notification): caller id + groupId/removeGroup + Notification class
ohah/suji#121mergedfeat(tray): setToolTip alias + getBounds — 전 5 SDK
ohah/maru#142mergedfix(app): reap live PTY child at close boundary and pin lifecycle invariants
ohah/suji#120mergedfeat(clipboard): writeBookmark + writeFindText + write(multi) — 전 5 SDK
ohah/suji#119mergedfeat(ipc,powerSaveBlocker): removeAllListeners + handleOnce + isStarted (+Zig SDK catch-up)
ohah/maru#141mergedtest(app): add interactive shell frame-loop smoke
ohah/maru#140mergedtest(pty): add interactive shell smoke
ohah/maru#139mergedfeat(platform): route native close smoke through app host
ohah/suji#118mergedfeat(globalShortcut): registerAll + setSuspended/isSuspended
ohah/maru#138mergedfeat(app): add live PTY registry close boundary
ohah/maru#137mergedfeat(app): route live PTY close through app host
ohah/suji#117mergedfeat(nativeTheme,nativeImage): high-contrast/reduced-transparency + isEmpty/isTemplateImage
ohah/maru#136mergedfeat(platform): gate app PTY Metal close lifecycle
ohah/suji#116mergeddocs(site): menu.mdx 전체 Menu API 표면 동기화 (배치 누락 catch-up)
ohah/maru#135mergedfeat(app): add live PTY close detach boundary
ohah/maru#134mergedrefactor(app): centralize live PTY session ownership
ohah/suji#115mergedfeat(menu): MenuItem.icon + Menu.insert + menu:will-show/will-close (Menu tail)
ohah/zntc#4197mergeddocs: 배포 패키지 release README (영어 기본 + 한국어 링크)