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
- fix(app): reap live PTY child at close boundary and pin lifecycle invariants
- feat(app): add live pty close detach boundary
- feat(platform): gate app pty metal close lifecycle
- test(pty): add interactive shell smoke
- test(app): add interactive shell frame-loop smoke
- test(app): bound PTY smoke drain waits
- refactor(app): centralize live PTY session ownership
- feat(app): add live PTY registry close boundary
- feat(app): route live pty close through app host
- feat(platform): route native close smoke through app host
- refactor(platform): project Metal smoke fixtures from render frames
- refactor(app): route live PTY Metal smoke through frame loop
- refactor(platform): extract CoreText frame builder
- test(platform): capture keyDown on Metal terminal window
- test(app): pin repeated frame builder loop contract
- feat(platform): define macOS Swift app host boundary
- feat(app): add frame loop smoke contract
- feat(app): add live pty frame loop smoke
- test(platform): add visible interactive shell PTY Metal smoke
- test(platform): close live PTY from Metal window
- feat(platform): add macOS app dev shell
- feat(platform): attach Swift app dev session runtime
- feat(platform): render real CoreText glyph frames in the dev session
- feat(platform): expose the dev session RenderFrame as a Metal-frame ABI
- fix(platform): correct metal-frame retention lifecycle and dirty-gate it
- feat(platform): route Swift app dev events
- refactor(platform): unify shell resolution and key codepoint conversion
- refactor(app): share smoke termination and artifact-write helpers
- fix(platform): signal session end and stop fatal per-event app exits
- feat(platform): add a lean product Metal renderer and share the cell shader
- feat(platform): draw the dev session in a Swift Metal terminal view
ohah/suji
- feat(clipboard): writeBookmark + writeFindText + write(multi) — 전 5 SDK
- feat(tray): setToolTip alias + getBounds — 전 5 SDK
- feat(powerMonitor): shutdown + on-battery/on-ac events
- feat(notification): caller id + groupId/removeGroup + Notification class
- feat(WebContentsView): View.getBounds + setBackgroundColor + WebContentsView 클래스
- feat(session): setDownloadPath + will-download 이벤트 — 전 5 SDK
- feat(screen): display-added/removed/metrics-changed events
- feat(webContents): stop + insertCSS + removeInsertedCSS — 전 5 SDK
- feat(webContents): setWindowOpenHandler — popup 정책 + new-window 이벤트 (전 5 SDK)
- feat(webRequest): setRequestHeaders (declarative onBeforeSendHeaders) — 전 5 SDK
- feat(app): setAsDefaultProtocolClient 트리오 — 전 5 SDK (macOS LS)
- feat(webRequest): responseHeaders + statusText in completed (onHeadersReceived)
- feat(app): before-quit 이벤트 — quit chokepoint 훅
- test(sdk): 백엔드 SDK wire-contract 보강 — Node behavioral + cross-SDK drift 가드
- test(app): before-quit behavioral e2e — 백엔드 마커로 종료 전 발화 검증
- fix(review): code-review max 후속 — before-quit 창닫기 누락 외 5건 수정
- docs(site): menu.mdx 를 전체 Menu API 표면으로 동기화 (배치 누락분 catch-up)