2026-04-28

날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.

요약 (AI 작성)

zntc는 PR 70개 가까이를 병합하며 CJS tree shaking과 설정 시스템 두 갈래로 나아갔습니다. CJS 쪽은 Object.defineProperty로 정의한 value·getter·멤버 값 export(#2076, #2082, #2085), module.exports 객체 멤버 값(#2093), CJS default 멤버 export(#2150)의 미사용 부분을 지우고, 안전한 __esModule 마커와 새 객체를 만드는 Object.assign·Object.freeze 호출을 순수로 다룹니다(#2090). export 이름 비교 때 문자열 escape를 디코드하고 충돌하는 export 정보는 보존하며(#2078, #2079), 직접 module.exports를 쓰는 CJS의 default import interop을 생략하고 축약 __toESM 런타임을 줄였습니다(#2097, #2098). inner graph는 순수 lazy barrel과 로컬 재수출 barrel의 emit을 건너뛰고, 엔트리의 순수 로컬과 덮어쓰인 쓰기·선언 초기값, 블록·함수 본문의 dead store를 참조 기반으로 지웁니다(#2116~#2133). 모듈 경계 주석은 //#region 마커로 바꿨습니다(#2096).

설정은 zts.config.ts/.js self-compile 로더와 zts.config.{ts,mjs,js,cjs,json} 자동 탐색, BuildOptions 전체 머지에서 시작해(#2113~#2115), 함수형 config와 --config·--mode(#2119), .env 자동 로드와 import.meta.env 정적 치환(#2120), 설정·.env 변경 시 watch 프로세스 재시작(#2123), 모드별 config 병합과 extends 상속, 오타 제안(#2128, #2129, #2130), Vitest식 zts.workspace.ts 모노레포 빌드(#2134)까지 하루 안에 들어왔습니다. TS·Zig·CLI·WASM 사이 옵션 스키마 동기화 검증을 붙여 빠진 CLI 플래그 다섯 개를 노출했고(#2132, #2136, #2138), CLI 플래그 파싱을 registry로 통합했습니다(#2149). 이 밖에 Rollup식 buildStart/buildEnd/closeBundle 플러그인 hook(#2161), base64 로더(#2163), preserveSymlinks(#2165), inline·external·linked 소스맵 모드(#2167), 번들 모드의 console·debugger 제거(#2168), Vite식 배열 alias(#2170), worker URL 치환의 AST 단계 이전(#2145)이 병합됐고, TypeScript를 6.0.3으로 올렸습니다(#2117).

suji는 main에 직접 커밋 69개를 올렸습니다. WebContentsView 작업(Phase 17-A)을 마무리하고 CEF Views API로 옮기는 17-B 계획을 정했으며, minimize·maximize·fullscreen, ready-to-show, show/hide, 취소 가능한 will-resize 같은 창 수명 주기 이벤트와 quitOnAllWindowsClosed 정책을 넣고 E2E를 13개 통과·4개 skip 상태로 맞췄습니다. Electron API 대응으로 screen, dock badge·진행률, powerSaveBlocker, macOS Keychain 기반 safeStorage, requestUserAttention, shell.trashItem·openPath, app.getPath, powerMonitor, webRequest URL 차단과 동적 listener, nativeTheme, clipboard HTML·RTF·이미지·버퍼, nativeImage, 창 투명도·그림자 등을 추가했고, Zig SDK에는 process.run과 http.fetch를 넣었습니다. TypeScript 타입 안전 invoke를 위해 SujiHandlers 모듈 augmentation과 Zig comptime 타입 추출, Rust specta 연동도 1차로 붙였습니다.

bungae는 Metro 호환 JS hook을 추가했습니다. cheolsu-proxy는 자동 TLS passthrough 보강 #339를 병합하고, OpenSSL 번들링 CI의 Rust 캐시와 JS 워크플로의 Node 24 전환 등 CI를 손봤습니다. ohah.github.io에는 오늘의 커밋 목록과 메타 갱신, 4월 28일 요약이 올라왔습니다.

공개 커밋 195개, 해당일 생성 또는 병합된 PR 71개를 정리했습니다. PR 생성 70개·병합 71개는 같은 PR이 양쪽에 포함될 수 있습니다.

커밋

ohah/bungae

ohah/cheolsu-proxy

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.

저장소PR해당일 활동상태대상 브랜치제목
ohah/cheolsu-proxy#339병합mergedmainHarden automatic TLS passthrough
ohah/zntc#2174생성 · 병합mergedmainfix(docs): make markdown tables responsive
ohah/zntc#2173생성 · 병합mergedmainrefactor(bundler): consolidate computed key purity helper, sharpen tests
ohah/zntc#2172생성 · 병합mergedmainfeat(napi): logLevel / logLimit 옵션 NAPI 연결
ohah/zntc#2171생성 · 병합mergedmainfix(bundler): reduce dotenv and toolkit bundle output
ohah/zntc#2170생성 · 병합mergedmainfeat(resolve): alias 의 array (Vite 식 RegExp) 지원
ohah/zntc#2168생성 · 병합mergedmainfeat(bundle): drop console / debugger 를 bundle 모드에 적용
ohah/zntc#2167생성 · 병합mergedmainfeat(sourcemap): inline / external / linked 3-mode 지원
ohah/zntc#2166생성 · 병합mergedmainchore(benchmark): align rolldown output format
ohah/zntc#2165생성 · 병합mergedmainfeat(resolver): preserveSymlinks CLI/config flag 활성화
ohah/zntc#2164생성 · 병합mergedmainfeat(bundler): narrow export-star source fallback
ohah/zntc#2163생성 · 병합mergedmainfeat(loader): base64 loader + 각 loader codegen 검증
ohah/zntc#2161생성 · 병합mergedmainfeat(plugin): buildStart / buildEnd / closeBundle lifecycle hook
ohah/zntc#2150생성 · 병합mergedmainfeat(bundler): prune CJS default member exports
ohah/zntc#2149생성 · 병합mergedmainchore(cli): zts.mjs flag parsing 을 registry 기반으로 통합
ohah/zntc#2147생성 · 병합mergedmaindocs: add AGENTS guide link
ohah/zntc#2146생성 · 병합mergedmainfix(bundler): ESM export write 보존 및 함수 body dead-store 제거
ohah/zntc#2145생성 · 병합mergedmainrefactor(bundler): worker URL 치환을 codegen AST 단계로 재설계
ohah/zntc#2144생성 · 병합mergedmainchore(schema): 핵심 키 coarse type drift 검증 추가
ohah/zntc#2143생성 · 병합mergedmainrefactor(cli): dispatchBuild 추출 — runWorkspace ↔ main dispatch 중복 제거
ohah/zntc#2142생성 · 병합mergedmainchore(workspace): resolveWorkspaceEntries / ResolvedWorkspace export 제거
ohah/zntc#2141생성 · 병합mergedmainchore(schema): 두 TS schema sync allowlist 를 NAPI_INTERNAL_ONLY_KEYS 로 통합
ohah/zntc#2140생성 · 병합mergedmainchore(workspace): resolveWorkspaceEntries @deprecated — 권장 패턴 명시
ohah/zntc#2139생성 · 병합mergedmainchore(simplify): outbase silent drop + globalIdentifiers 중복 + opts default sync
ohah/zntc#2138생성 · 병합mergedmainfeat(cli): 누락된 BuildOptions 키 5개 CLI flag 노출
ohah/zntc#2137생성 · 병합mergedmainfix(cli): --banner / --footer 정식 형태 추가 + esbuild alias 정리
ohah/zntc#2136생성 · 병합mergedmainchore(schema): CLI flag ↔ BuildOptions ↔ WASM schema sync 검증
ohah/zntc#2135생성 · 병합mergedmainfix(cli): zts.config.outdir/outfile 단일 build silent drop 수정
ohah/zntc#2134생성 · 병합mergedmainfeat(workspace): zts.workspace.ts (Vitest 식 모노레포)
ohah/zntc#2133생성 · 병합mergedmaininnerGraph dead-store 판정을 Reference 기반으로 전환
ohah/zntc#2132생성 · 병합mergedmainchore(schema): TS BuildOptions ↔ Zig DTO 양방향 schema sync
ohah/zntc#2131생성 · 병합mergedmaininnerGraph: block/function body dead store 제거
ohah/zntc#2130생성 · 병합mergedmainfeat(config): Levenshtein "did you mean?" typo 검출
ohah/zntc#2129생성 · 병합mergedmainfeat(config): extends 상속 + 순환 참조 감지
ohah/zntc#2128생성 · 병합mergedmainfeat(config): --mode + zts.config.{mode}.* 자동 머지
ohah/zntc#2127생성 · 병합mergedmaininnerGraph: overwritten declaration initializer 제거
ohah/zntc#2126생성 · 병합mergedmainFix docs build for TypeDoc config imports
ohah/zntc#2125생성 · 병합mergedmaininnerGraph: overwritten dead write 제거
ohah/zntc#2124생성 · 병합mergedmaindocs(config): tsconfig vs zts.config vs CLI 우선순위 문서화
ohah/zntc#2123생성 · 병합mergedmainfeat(watch): config / .env 변경 시 자동 process restart + Phase 1/2 test 백필
ohah/zntc#2121생성 · 병합mergedmaininnerGraph: entry pure local DCE
ohah/zntc#2120생성 · 병합mergedmainfeat(config): .env 자동 로드 + import.meta.env 정적 치환
ohah/zntc#2119생성 · 병합mergedmainfeat(config): 함수형 config + --config <path> + --mode flag
ohah/zntc#2118생성 · 병합mergedmainlocal re-export barrel도 lazy emit 스킵
ohah/zntc#2117생성 · 병합mergedmainchore(deps): TypeScript 5.9.3 → 6.0.3 업그레이드
ohah/zntc#2116생성 · 병합mergedmain순수 lazy barrel emit 스킵
ohah/zntc#2115생성 · 병합mergedmainfeat(cli): JS config 의 BuildOptions 전체 머지
ohah/zntc#2114생성 · 병합mergedmainfeat(cli): zts.config.{ts,mjs,js,cjs,json} 자동 탐색
ohah/zntc#2113생성 · 병합mergedmainfeat(config): .ts/.js config self-compile loader
ohah/zntc#2098생성 · 병합mergedmainminified __toESM 런타임 크기 축소
ohah/zntc#2097생성 · 병합mergedmainfeat: 직접 module.exports CJS default import에서 interop 생략
ohah/zntc#2096생성 · 병합mergedmainfeat(emitter): use //#region markers for module/polyfill boundaries
ohah/zntc#2095생성 · 병합mergedmainfix(benchmark): size-gap CJS export count disjoint + 테스트 stdout 캡처
ohah/zntc#2094생성 · 병합mergedmainfix(docs): hero mobile overflow — grid items min-w-0 + break-words
ohah/zntc#2093생성 · 병합mergedmainmodule.exports object member value DCE 추가
ohah/zntc#2092생성 · 병합mergedmainrefactor(codegen): fn_name_stack borrows builder-owned name slices
ohah/zntc#2091생성 · 병합mergedmainfix(ci): docs deploy queue instead of cancel-in-progress
ohah/zntc#2090생성 · 병합mergedmainObject.freeze known pure call DCE 추가
ohah/zntc#2089생성 · 병합mergedmainfix(function_map): prevent UAF on names.append OOM in internName
ohah/zntc#2088생성 · 병합mergedmainCJS pruning audit fixture 고정
ohah/zntc#2087생성 · 병합mergedmainrefactor(codegen): remove residual local dispatch helpers
ohah/zntc#2086생성 · 병합mergedmainrefactor(codegen): unify staticKeyName with ast API (Phase 2)
ohah/zntc#2085생성 · 병합mergedmainCJS defineProperty member value export DCE 추가
ohah/zntc#2084생성 · 병합mergedmainCJS defineProperty getter export DCE 추가
ohah/zntc#2083생성 · 병합mergedmainrefactor(ast): unify staticKeyName API with escape decode (Phase 1)
ohah/zntc#2082생성 · 병합mergedmainCJS defineProperty getter export DCE 추가
ohah/zntc#2081생성 · 병합mergedmainrefactor(string_escape): share unicode hex escape decoder
ohah/zntc#2080생성 · 병합mergedmainrefactor(stmt_info): extract deinitCjsExportFactsBuf helper
ohah/zntc#2079생성 · 병합mergedmainCJS export fact 충돌 보존
ohah/zntc#2078생성 · 병합mergedmainfix(bundler): decode JS string-literal escapes for CJS export name matching
ohah/zntc#2076생성 · 병합mergedmainCJS defineProperty value export DCE 추가