2026-04-28

요약 (AI 작성)

suji는 Electron 호환 API 표면을 넓히는 작업이 하루 종일 집중적으로 진행되었습니다. window의 Phase 5 라이프사이클 이벤트(minimize/maximize/fullscreen, ready-to-show, page-title-updated, show/hide, 취소 가능한 will-resize, quitOnAllWindowsClosed 정책)가 구현되었고, maximize 직접 emit과 fullscreen collectionBehavior 등 후속 fix가 이어졌습니다. 시스템 영역에서는 macOS 기반으로 app.getPath, shell.trashItem, safeStorage(Keychain), powerMonitor, app.requestUserAttention(dock bounce), screen.getAllDisplays/dock badge/powerSaveBlocker 등이 추가되었고, webRequest는 URL glob blocklist와 before-request/completed 이벤트, dynamic listener(RV_CONTINUE_ASYNC) 지원으로 확장되었습니다. 이 네이티브 기능들은 @suji/api와 zig-sdk를 통해 노출되었고 Rust/Go/Node SDK에도 screen/powerSaveBlocker/safeStorage/dock/attention이 반영되었으며, TypeScript type-safe invoke(SujiHandlers module augmentation)와 clipboard HTML, app.getName/getVersion 등도 함께 들어갔습니다. 아울러 zig-sdk에 process.run, http.fetch 백엔드 wrap이 추가되고 e2e 테스트가 다수 정비되었으며(13 pass / 4 skip / 0 fail 등), Phase 17-B CEF Views API 마이그레이션(Option F) 계획 문서가 작성되었습니다.

zts에서는 config 시스템이 크게 확충되었습니다. zts.config.{ts,mjs,js,cjs,json} 자동 탐색과 self-compile loader(#2113, #2114), 함수형 config와 --config/--mode 플래그(#2119, #2128), .env 자동 로드 및 import.meta.env 정적 치환(#2120), extends 상속과 순환 참조 감지(#2129), Levenshtein 기반 "did you mean?" typo 검출(#2130), 그리고 zts.workspace.ts 모노레포(#2134)가 머지되었습니다. CLI/schema 측면에서는 누락 BuildOptions 키 5개 노출(#2138), --banner/--footer 정식 형태(#2137), outdir/outfile silent drop 수정(#2135), TS BuildOptions ↔ Zig DTO 양방향 schema sync(#2132) 등이 반영되었습니다. innerGraph 계열 dead-store/DCE 작업도 entry pure local DCE(#2121), overwritten declaration/dead write 제거(#2125, #2127), block/function body dead store 제거(#2131) 등으로 꾸준히 진행되었고, Reference 기반 dead-store 판정 전환(#2133)은 open 상태입니다. CJS interop과 codegen 쪽에서는 module.exports object member value DCE(#2093), defineProperty getter/value export DCE(#2076, #2082, #2084, #2085), staticKeyName API 통합(#2083, #2086), string escape decoder 공유(#2078, #2081), internName UAF 방지(#2089) 등 다수가 머지되었고, TypeScript 6.0.3 업그레이드(#2117)도 포함되었습니다.

ohah.github.io에서는 블로그 운영성 작업이 이루어졌습니다. CRON_CRD_WRITE.md 체크리스트에서 CRD 문서들을 완료 처리하고 모든 .mdx 파일을 checked로 표시했으며, today-commit index에 2026-04-24, 2026-04-26 항목을 추가하고 development-2.mdx를 CRD-checked로 정리했습니다.

커밋

ohah/ohah.github.io

ohah/suji

PR (해당일 생성/머지)

repo#상태제목
ohah/zts#2138mergedfeat(cli): 누락된 BuildOptions 키 5개 CLI flag 노출
ohah/zts#2137mergedfix(cli): --banner / --footer 정식 형태 추가 + esbuild alias 정리
ohah/zts#2136mergedchore(schema): CLI flag ↔ BuildOptions ↔ WASM schema sync 검증
ohah/zts#2135mergedfix(cli): zts.config.outdir/outfile 단일 build silent drop 수정
ohah/zts#2134mergedfeat(workspace): zts.workspace.ts (Vitest 식 모노레포)
ohah/zts#2133openinnerGraph dead-store 판정을 Reference 기반으로 전환
ohah/zts#2132mergedchore(schema): TS BuildOptions ↔ Zig DTO 양방향 schema sync
ohah/zts#2131mergedinnerGraph: block/function body dead store 제거
ohah/zts#2130mergedfeat(config): Levenshtein "did you mean?" typo 검출
ohah/zts#2129mergedfeat(config): extends 상속 + 순환 참조 감지
ohah/zts#2128mergedfeat(config): --mode + zts.config.{mode}.* 자동 머지
ohah/zts#2127mergedinnerGraph: overwritten declaration initializer 제거
ohah/zts#2126mergedFix docs build for TypeDoc config imports
ohah/zts#2125mergedinnerGraph: overwritten dead write 제거
ohah/zts#2124mergeddocs(config): tsconfig vs zts.config vs CLI 우선순위 문서화
ohah/zts#2123mergedfeat(watch): config / .env 변경 시 자동 process restart + Phase 1/2 test 백필
ohah/zts#2121mergedinnerGraph: entry pure local DCE
ohah/zts#2120mergedfeat(config): .env 자동 로드 + import.meta.env 정적 치환
ohah/zts#2119mergedfeat(config): 함수형 config + --config + --mode flag
ohah/zts#2118mergedlocal re-export barrel도 lazy emit 스킵
ohah/zts#2117mergedchore(deps): TypeScript 5.9.3 → 6.0.3 업그레이드
ohah/zts#2116merged순수 lazy barrel emit 스킵
ohah/zts#2115mergedfeat(cli): JS config 의 BuildOptions 전체 머지
ohah/zts#2114mergedfeat(cli): zts.config.{ts,mjs,js,cjs,json} 자동 탐색
ohah/zts#2113mergedfeat(config): .ts/.js config self-compile loader
ohah/zts#2098mergedminified __toESM 런타임 크기 축소
ohah/zts#2097mergedfeat: 직접 module.exports CJS default import에서 interop 생략
ohah/zts#2096mergedfeat(emitter): use //#region markers for module/polyfill boundaries
ohah/zts#2095mergedfix(benchmark): size-gap CJS export count disjoint + 테스트 stdout 캡처
ohah/zts#2094mergedfix(docs): hero mobile overflow — grid items min-w-0 + break-words
ohah/zts#2093mergedmodule.exports object member value DCE 추가
ohah/zts#2092mergedrefactor(codegen): fn_name_stack borrows builder-owned name slices
ohah/zts#2091mergedfix(ci): docs deploy queue instead of cancel-in-progress
ohah/zts#2090mergedObject.freeze known pure call DCE 추가
ohah/zts#2089mergedfix(function_map): prevent UAF on names.append OOM in internName
ohah/zts#2088mergedCJS pruning audit fixture 고정
ohah/zts#2087mergedrefactor(codegen): remove residual local dispatch helpers
ohah/zts#2086mergedrefactor(codegen): unify staticKeyName with ast API (Phase 2)
ohah/zts#2085mergedCJS defineProperty member value export DCE 추가
ohah/zts#2084mergedCJS defineProperty getter export DCE 추가
ohah/zts#2083mergedrefactor(ast): unify staticKeyName API with escape decode (Phase 1)
ohah/zts#2082mergedCJS defineProperty getter export DCE 추가
ohah/zts#2081mergedrefactor(string_escape): share unicode hex escape decoder
ohah/zts#2080mergedrefactor(stmt_info): extract deinitCjsExportFactsBuf helper
ohah/zts#2079mergedCJS export fact 충돌 보존
ohah/zts#2078mergedfix(bundler): decode JS string-literal escapes for CJS export name matching
ohah/zts#2076mergedCJS defineProperty value export DCE 추가