2026-05-11
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 0.1.0 공개를 앞두고 문서와 배포 준비에 많은 시간을 썼습니다. 퍼블리시 대상 16개 패키지에 저자·저장소·키워드·Node 엔진 메타데이터와 LICENSE를 넣고 오류 코드 문서를 한국어·영어 양쪽으로 생성하는 0.1.0 준비 커밋(#3058)과 lockstep 버전 전략 문서(#3060)가 병합됐습니다. 실제 퍼블리시나 태그 기록은 이날 목록에 없습니다. 문서 사이트에는 번들 성능 벤치마크 차트(#2992)와 10·1000·5000 모듈 재측정, native-transforms 가이드, JS·NAPI 플러그인 개발 가이드(#3019), 로드맵·Electron 가이드, React Native·Expo 레시피, zntc-init 모드별 가이드, HTTPS dev server·Web Worker 가이드가 추가됐고, 한국어 문서 종결어미를 합쇼체로 통일했습니다(#3020). 문서에만 있고 CLI에는 없던 --dev·--polyfill·--watch-folder 등 7개 플래그는 실제 CLI에 연결했습니다(#3080).
기능으로는 Vite plugin-react와 같은 경로 필터를 react-refresh에 넣었고(#3003), index.html 안의 EJS 스타일 ZNTC_* 환경 변수 토큰 치환(#3010), MetafileAnalyzer의 Treemap·Import graph 시각화(#3009), zntc-init의 vite·rspack overlay와 web scaffold 모드(#3018), vite plugin의 virtual module ID와 쿼리 파라미터 sub-import(#3023), esbuild와 같은 모양의 OutputFile(#3035), jsx: 'preserve' 모드(#3057), --external:pkg 별칭(#2995)이 추가됐습니다. e2e에는 라이브러리 39개를 9개 시나리오의 작은 앱으로 묶어 검증하는 호환성 매트릭스가 생겼습니다(#3065). 소스맵 names 배열 발행(#2989)과 전날 열린 가이드 보강 PR도 이날 병합됐습니다.
수정 사항은 manualChunks vendor 청크의 namespace가 entry preamble로 새던 문제(#2991), UMD·AMD globals 매핑 회귀(#2994, #3001), Node에서 WASM init() 기본 호출이 깨지던 문제(#3006), writer-edge 판정이 함수 본문 안의 쓰기까지 잡던 회귀(#3016), vite 4 이상 hook 객체 호환(#3017), import specifier 문자열 이스케이프(#3029), CSS 번들 같은 asset 출력이 dist에 써지지 않던 문제(#3030), return·throw 뒤 ASI 위험(#3059) 등입니다. JSX 런타임은 linker의 synthetic 우회를 없애고 transformer가 정식 AST 노드를 만들게 한 뒤 헬퍼 스코프를 격리했으며(#3067, #3071), 이어 ImportBinding.isSynthetic을 is_helper로 완전히 대체했습니다(#3084). 성능 쪽은 디렉터리 단위 realpath 캐시와 새 빌드의 fstat 생략(#3039, #3050)이 들어갔고, tree-shake 대형 테스트 파일도 주제별로 나눴습니다.
블로그 저장소 ohah.github.io에는 zntc 개발기 3-15부터 3-17까지(4월 24일부터 5월 12일 범위)를 추가하고 배경 타임라인을 늘린 뒤 커밋 수 수치를 정정한 커밋, 오늘의 커밋 _meta.json 누락 항목 보충, 요약 갱신과 맞춤법 교정, 크론 점검 표시 커밋이 있었습니다.
공개 커밋 109개, 해당일 생성 또는 병합된 PR 85개를 정리했습니다. PR 생성 82개·병합 85개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/ohah.github.io
- docs(zts): fix commit-count figures, update 3. 개발 과정 index for 3-9~3-17
- docs(zts): add chapters 3-15~3-17 (4/24~5/12) + extend background timeline
- docs: add missing today-commit entries to _meta.json (2026-04-29, 05-01, 05-02, 05-05)
- docs: update 2026-05-11 commit history summary (zntc test split, perf, docs)
- chore: update CRON_CRD_WRITE.md - verify spelling for development-3.mdx (2026-05-12 03:00 KST)
- docs: verify crd/development-3.mdx spelling (2026-05-11 cron)
- docs: add AI-written summary for 2026-05-11
- chore: complete daily activity report + lint verification
- fix: correct Korean spelling in development-14.mdx
- docs: update 2026-05-10 commit history summary
- docs: update 2026-05-10 commit history summary
- chore(cron): verify docs/index.mdx spelling (2026-05-11 11:30 KST)
ohah/zntc
- docs(pages): 3차 점검 정정 — watcher 백엔드 / RN 무시 플래그 / worker chunk 파일명 / loader 목록 (KO/EN)
- test(e2e): IIFE format + JSX automatic 회귀 시나리오 추가 (#3078)
- refactor(bundler): ImportBinding.isSynthetic 완전 제거 — is_helper 로 대체 (#3078)
- docs(pages): reference/cli.md RN bundle 표 --source-map-url 중복 행 제거
- refactor(bundler): external_imports 의 isSynthetic → is_helper (#3078)
- docs(pages): RN Metro-dropin 플래그 + --browserslist 문서화 (KO/EN)
- feat(cli): 문서에만 있던 7개 플래그를 실제 CLI 에 연결 + --mangle-report 문서 제거
- refactor(bundler): esm_wrap helper binding hoist + linker isSynthetic 정리 (#3078)
- refactor(bundler): isSynthetic() → is_helper 로 명확화 (안전 케이스 2곳)
- refactor(bundler): dead mergeImportBindings synthetic-only loop 제거
- test(e2e): JSX automatic callee 분기 회귀 테스트 추가 — static children / fragment
- docs(bundler): extractImportBindings 의 helper_ref_nodes sortedness invariant 명시
- docs(pages): 로드맵에 Rollup plugin context API / ESTree AST 예정 항목 추가 (KO/EN)
- docs(pages): 사용자 페이지에서 PR # / 성능 history / D-ID / 구현 비교 제거 (KO/EN)
- docs(pages): import.meta.glob / Web Worker stale 정정 (KO/EN)
- docs(pages): HTTPS dev server / Web Worker 사용자 가이드 추가 (KO/EN)
- fix(linker): JSX runtime helper scope 격리 — 사용자 식별자 충돌 회피 (#3068)
- docs(pages): dev-server proxy 섹션 추가 (KO/EN)
- docs: PostCSS/Tailwind/SVG/YAML 활용 가능성 명시 + dev-server proxy/middleware webpack 격차
- fix(linker): JSX runtime synthetic 우회 제거 — transformer 가 정식 AST 노드 생성
- feat(e2e): 외부 라이브러리 호환성 매트릭스 — 39개 lib / 9 시나리오 / 실제 앱 형태
- fix(e2e): port 충돌 해소 — 모든 fixed port 를 tests/e2e/tests/ports.ts 로 중앙화
- test(core): drop hand-rolled CLI sidecar list in bootstrap test
- docs: release / versioning strategy + lockstep 강제
- fix(codegen): throw 에도 ASI hazard fix 적용 + helper 추출
- feat(core+vite-plugin): jsx: 'preserve' mode + return ASI hazard fix (#3056)
- style: package.json oxfmt 정렬 적용
- chore(release): 0.1.0 publish 준비 (메타데이터/docs/banner)
- refactor(core): OutputFile post-processing 정리 (/simplify)
- feat(core): OutputFile shape esbuild 호환 — contents (Uint8Array) + lazy text getter
- refactor: split tree shake integration core tests
- refactor: split tree shake direct re-export tests
- fix(web): dev pipeline 이 SCSS/CSS Modules CSS 를 inject 한 경우 bundle CSS link skip
- refactor: split tree shake cjs tests
- refactor: split tree shake inner graph tests
- refactor: split tree shake integration barrel tests
- perf(fs): fresh build 의 fstat 생략 + dir-fd cache 통일 + webpack 비교 제외
- refactor: split tree shake side effects tests
- refactor: split tree shake annotation tests
- refactor: split tree shake rn esm tests
- refactor: split tree shake dead statement tests
- refactor: split tree shake writer tests
- refactor: split tree shake re-export tests
- refactor: split tree shake edge tests
- perf(fs): pm.setup.read.close profile scope 분리
- refactor: split tree shake lazy barrel tests
- perf(resolver): directory-level realpath cache + 사이트 벤치마크 수치 재반영
- refactor: split tree shake inner graph tests
- docs(site): 10/1000/5000 modules 벤치마크 재측정 + bench.ts fixture 개선
- refactor: split tree shake cjs tests
- docs(site): zntc-init 의 vite/rspack/web 모드 가이드 추가
- docs(site): zntc-init 도움말 출력 최신화 (RN 가이드)
- docs(site): React Native + Expo 레시피 페이지 통합
- fix(bundler+cli): asset_outputs (CSS bundle / worker chunk) 가 dist 에 write 되도록 (#3022 마무리)
- fix(parser): import specifier 의 string literal escape unescape 적용 (#3025)
- docs(site): 로드맵 + Electron 가이드 페이지 추가
- fix(bundler): plugin load 가 loader 안 주면 JS 가정 + test 회귀 정리 (#3024)
- feat(bundler): vite plugin virtual module ID + query parameter sub-import 지원 (#3022)
- fix(docs): EN 로케일 analyze/playground 페이지 라우팅 추가
- docs(plugins): 5단계 가이드 위치 이동 + 호환성 표 상태순 정렬 (P3 follow-up)
- docs(plugins): /simplify 적용 — anchor 정확성 + cross-link + 5단계 가이드 보강
- docs(plugins): JS/NAPI plugin 개발 가이드 + Vue/Svelte SFC 한계 + 네이티브 추후 명시
- docs(site): 한국어 문서 종결어미 합쇼체로 통일
- chore(init): oxfmt 적용
- feat(init): vite/rspack overlay + web scaffold 모드 추가
- fix(core): vitePlugin wrapper 가 vite 4+ hook object + sourcemap object 호환
- fix(bundler): writer-edge 가 함수 body 안 write 까지 over-fire 하던 회귀 (#3012)
- docs(site): sidebar 기본 닫힘 + Playground 분리 + bundler-deep-dive mermaid 적용
- fix(ci): integration job 에 @zntc/web 빌드 step 추가 — app 모드 테스트 회귀 가드
- refactor(test): /simplify 적용 — helpers.ts 재사용 + concurrent + no-op 가드
- test(integration): html-env EJS 토큰 치환 e2e 회귀 가드
- chore: oxfmt 적용
- refactor(html-env): /simplify 적용 — HTML escape, write-loop 방지, dev 캐시 + warning dedupe
- feat(html): index.html 안 EJS 스타일 ZNTC_* 환경변수 토큰 치환
- fix(init): zntcBundleScript 에 --minify default 추가 (Metro --dev false 와 parity)
- refactor(analyze): /simplify 적용 — perf 가드 + 도메인 분리 + 토픽 컴포넌트
- feat(analyze): MetafileAnalyzer 에 Treemap + Import graph 시각화 추가
- docs(pages): native-transforms 가이드 신설 + installation 탭 렌더링 fix + README 사용자 톤 재구성
- test(scripts): publish-install-test 에 entry function smoke step 추가
- fix(wasm): #3005 — Node 환경 init() default 호출이 url.fileURLToPath 누락으로 깨짐
- test(transformer): react-refresh Vite path filter 회귀 가드 추가
- feat(transformer): react-refresh 에 Vite plugin-react 호환 path filter 추가
- fix(docs): StatsStrip 수치를 실제 benchmark-data.json 과 정합
- feat(docs): 메인 차트 정리 + 설치 가이드 npm publish 가정 패키지 매니저 탭화
- fix(bundler): AMD/UMD external 의 PascalCase fallback 복원 (IIFE 만 매핑 필수)
- refactor(bundler): /simplify 반영 — declaration-only entry helper + 주석 정리
- fix(bundler): manualChunks 의 vendor 청크 정의 namespace 가 entry preamble 로 누출
- chore(scripts): 정밀 format × minify × runtime mode 매트릭스 점검 스크립트
- docs(cli): --help 에 누락된 핵심 옵션 표시 추가
- feat(cli): --external:pkg esbuild 호환 alias 추가
- fix(bundler): UMD/AMD globals 매핑 회귀 — IIFE 와 정책 통일
- docs(roadmap): outdated 한계/배포 상태 동기화
- feat(docs): 메인 페이지에 번들 성능 벤치마크 차트 추가
- refactor(codegen): /simplify 반영 — ESM wrap names 전파 + 주석 정리
- feat(codegen): sourcemap names 배열 + mapping name_index 발행
- feat(docs): dev-server 가이드에 import.meta.hot HMR API 섹션 추가
- feat(docs): expand bundling/plugins/config/transpile 가이드 — 사용자 함정/한계 보강
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.