2026-04-07

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

요약 (AI 작성)

zntc는 이날 PR 70여 개를 병합하며 여러 갈래로 나아갔습니다. 먼저 커진 파일을 나눴습니다. emitter.zig, bundler_test.zig, codegen_test.zig를 폴더로 쪼개고(#825), React Fast Refresh와 클래스·데코레이터 변환, linker 메타데이터 빌드를 별도 파일로 옮겼습니다(#826, #827). 기능으로는 --outbase·--packages=external·--drop-labels 등 CLI 옵션 13개(#829), SWC 호환 emitDecoratorMetadata(#832, #833), 모듈 하나를 출력 파일 하나로 내는 --preserve-modules(#835), 설정 파일 옵션 확장과 JS Build API(#837)가 들어왔고, 모든 에러 경로가 0이 아닌 종료 코드를 돌려주게 했습니다(#838). 시맨틱 에러가 있어도 tsc처럼 출력을 내고(#842), private name의 읽기·쓰기 검사를 정밀하게 다듬었습니다(#857).

wasm32-wasi 트랜스파일 모듈과 @zts/wasm 패키지를 만들고(#839), CLI 트랜스파일 옵션 전체를 WASM에 바인딩했습니다(#849). 이를 바탕으로 Astro Starlight 문서 사이트와 WASM Playground를 세웠고(#841), 한국어·영어 i18n과 SWC 스타일 풀스크린 Playground(#845), Tailwind 기반 커스텀 페이지로 옮긴 Playground v3(#854), ECharts 성능 벤치마크 페이지와 TypeDoc API 레퍼런스(#858), Monaco 에러 마커와 Plugin Context API(#863)가 이어졌습니다. Starlight CSS가 Monaco 커서·드래그를 깨뜨리던 문제는 여러 PR에 걸쳐 고쳤고, WASM 에러 메시지에는 줄·열과 소스 코드를 함께 보여 줍니다(#864, #865).

후반에는 bungae dev 서버와 연동하는 dev 모드와 HMR에 매달렸습니다. --dev 플래그와 RN에 맞춘 HMR 런타임(#867)에서 출발해 자체 모듈 레지스트리에 CJS 호환 factory 인자, 의존성 맵, lazy evaluation 등을 차례로 붙였다가, CJS/ESM 상호 운용과 순환 참조 문제 때문에 dev 모드를 프로덕션 파이프라인으로 옮겼습니다(#884). 이어 모든 ESM 모듈을 __esm으로 감싸고 HMR hook과 import.meta.hot 변환을 넣었으며(#885, #886), React 컴포넌트 모듈의 hot.accept() 자동 삽입, 바뀐 모듈만 보내는 --watch-json diff, direct eval로 흰 화면을 없앤 수정, react-refresh 런타임 자동 주입과 Metro의 __ReactRefresh 호환(#888~#898)까지 이어졌습니다.

bungae는 이에 맞춰 Metro HMRClient 인터페이스를 구현한 ZTS 전용 HMR 클라이언트를 만들고, RN 내부의 상대 경로 require까지 바꾸도록 HMRClient 교체를 플러그인 onLoad hook으로 옮겼습니다.

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

커밋

ohah/bungae

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/zntc#898생성 · 병합mergedmainfix(core): HMR Metro 호환 — __ReactRefresh + RN 중복 주입 방지
ohah/zntc#897생성 · 병합mergedmainfix(core): react-refresh 미설치 시 경고 출력
ohah/zntc#896생성 · 병합mergedmainfeat(core): dev mode react-refresh/runtime 자동 주입
ohah/zntc#895생성 · 병합mergedmainfix(core): 첫 rebuild부터 HMR — full reload 제거
ohah/zntc#894생성 · 병합mergedmainfix(ci): .claude/worktrees 서브모듈 제거
ohah/zntc#893생성 · 병합mergedmainfix(core): HMR 전역 노출 + 중복 저장 reload 방지 + 통합 테스트
ohah/zntc#892생성 · 병합mergedmainfix(core): HMR direct eval + configurable exports
ohah/zntc#891생성 · 병합mergedmainfix(core): HMR 흰화면 깜빡임 수정 — eval-only + React Refresh
ohah/zntc#890생성 · 병합mergedmainfix(core): HMR 첫 rebuild 캐시 초기화 — full reload 방지
ohah/zntc#889생성 · 병합mergedmainfix(core): --watch-json HMR diff — 변경된 모듈만 전송
ohah/zntc#888생성 · 병합mergedmainfix(core): React 컴포넌트 HMR — hot.accept() 자동 삽입
ohah/zntc#887생성 · 병합mergedmainfix(core): /simplify Phase 3-6 — 중복 제거 + 독스트링 수정
ohah/zntc#886생성 · 병합mergedmainfeat(core): HMR hook + dev_id + import.meta.hot (Phase 4-6)
ohah/zntc#885생성 · 병합mergedmainfeat(core): dev mode HMR 인프라 (Phase 3)
ohah/zntc#884생성 · 병합mergedmainrefactor(core): dev mode를 프로덕션 파이프라인으로 전환 (Phase 2)
ohah/zntc#883생성 · 병합mergedmainfix(core): dev mode 누락 ES5 헬퍼 전체 주입
ohah/zntc#882생성 · 병합mergedmainfix(core): dev mode run-before-main 실행 누락
ohah/zntc#881생성 · 병합mergedmainfix(core): dev mode named import binding 혼합 버그
ohah/zntc#880생성 · 병합mergedmainfix(core): node_modules에 React Refresh 미적용
ohah/zntc#879생성 · 병합mergedmainfix(core): dev mode 에러에 모듈 ID 표시
ohah/zntc#878생성 · 병합mergedmainrefactor(core): dev mode 모듈 ID 일원화 — dev_id 필드
ohah/zntc#877생성 · 병합mergedmainfix(core): dev mode 모듈 ID 불일치 — preamble에 root_dir 적용
ohah/zntc#876생성 · 병합mergedmainfix(core): HMR factory 강제 실행 + entry point 감지
ohah/zntc#875생성 · 병합mergedmainfeat(core): dev mode lazy evaluation — 순환 참조 해결
ohah/zntc#874생성 · 병합mergedmainfeat(core): dev mode CJS/ESM interop — __toESM 래핑
ohah/zntc#873생성 · 병합mergedmainfix(core): dev mode ES5 런타임 헬퍼 글로벌 주입 + 테스트
ohah/zntc#872생성 · 병합mergedmainfix(core): dev mode dependency map — CJS require() resolve
ohah/zntc#871생성 · 병합mergedmainfix(core): dev mode factory에 require 파라미터 추가
ohah/zntc#870생성 · 병합mergedmainchore: 주석의 __zts_exports → exports 정리
ohah/zntc#869생성 · 병합mergedmainfix(core): dev mode factory 파라미터 module/exports — CJS 호환
ohah/zntc#868생성 · 병합mergedmainfix(core): dev mode OOM — $RefreshSig$ 스캔 제거 + collect_module_codes
ohah/zntc#867생성 · 병합mergedmainfeat(core): --dev 모드 + HMR 런타임 RN 적응
ohah/zntc#866생성 · 병합mergedmainfix(ci): src/** 변경 시에도 문서 사이트 재배포
ohah/zntc#865생성 · 병합mergedmainfix(wasm): 첫 번째 에러만 표시
ohah/zntc#864생성 · 병합mergedmainfix(wasm): 에러 메시지에 줄번호/컬럼/소스 코드 표시
ohah/zntc#863생성 · 병합mergedmainfeat(playground,core): Monaco 에러 마커/자동완성 + Plugin Context API
ohah/zntc#862생성 · 병합mergedmaindocs(core): add English JSDoc to all public API exports
ohah/zntc#861생성 · 병합mergedmainfix(docs): API Reference 사이드바 분리
ohah/zntc#860생성 · 병합mergedmainfix(docs): CI에서 TypeDoc 빌드 실패 수정
ohah/zntc#859생성 · 병합mergedmainfix(playground): Monaco 에디터 드래그 문제 근본 수정
ohah/zntc#858생성 · 병합mergedmainfeat(docs): 성능 벤치마크 페이지 + API 레퍼런스 자동 생성
ohah/zntc#857생성 · 병합mergedmainfeat(semantic): private names 시맨틱 체크 정확도 향상
ohah/zntc#856생성 · 병합mergedmainfix(docs): 오른쪽 TOC 좌우 패딩 추가
ohah/zntc#855생성 · 병합mergedmainfix(playground): 사이드바 유지 + ES2024/ES2025 타겟 추가
ohah/zntc#854생성 · 병합mergedmainfeat(docs): Playground v3 — 커스텀 페이지 + Tailwind + links-validator
ohah/zntc#853생성 · 병합mergedmainfix(playground): 네거티브 마진 제거
ohah/zntc#852생성 · 병합mergedmainfix(playground): content-panel/right-sidebar 완전 제거
ohah/zntc#851생성 · 병합mergedmainfix(playground): 오른쪽 TOC 숨김
ohah/zntc#850생성 · 병합mergedmainfix(playground): 타이틀 숨김
ohah/zntc#849생성 · 병합mergedmainfeat(wasm): CLI 트랜스파일 옵션 전체 WASM 바인딩 + Playground target/platform
ohah/zntc#848생성 · 병합mergedmainfix(docs): content 영역 폭 제한 강화 해제
ohah/zntc#847생성 · 병합mergedmainfix(docs): 모든 페이지 content 풀사이즈
ohah/zntc#846생성 · 병합mergedmainfix(playground): Monaco 커서 깨짐 + content 폭 전체 사용
ohah/zntc#845생성 · 병합mergedmainfeat(playground): SWC 스타일 UI + i18n + Monaco 수정
ohah/zntc#844생성 · 병합mergedmainfix(docs): WASM 경로 수정 + zts-core.wasm 리네이밍
ohah/zntc#842생성 · 병합mergedmainfix(semantic): tsc 호환 — 시맨틱 에러 시에도 output 생성 + constructor overloads 허용
ohah/zntc#841생성 · 병합mergedmainfeat(docs): Starlight 문서 사이트 + WASM Playground
ohah/zntc#840생성 · 병합mergedmainfix(core): build() API outfile readFile 미정의 버그 수정
ohah/zntc#839생성 · 병합mergedmainfeat(wasm): wasm32-wasi 트랜스파일 모듈 구현
ohah/zntc#838생성 · 병합mergedmainrefactor(cli): 전체 에러 경로에 non-zero exit code 적용
ohah/zntc#837생성 · 병합mergedmainfeat(config): 설정 파일 옵션 확장 + JS Build API
ohah/zntc#835생성 · 병합mergedmainfeat(bundler): --preserve-modules 구현 (Rollup/Rolldown 호환)
ohah/zntc#834생성 · 병합mergedmainfix(class): super 없는 class field에서 this→_this 잘못 치환 버그 수정
ohah/zntc#833생성 · 병합mergedmaintest(decorator): emitDecoratorMetadata 테스트 12개 추가 (SWC 기준)
ohah/zntc#832생성 · 병합mergedmainfeat(decorator): emitDecoratorMetadata 구현 (SWC 호환)
ohah/zntc#831생성 · 병합mergedmainfeat(decorator): emitDecoratorMetadata 기반 구현 (WIP)
ohah/zntc#830생성 · 병합mergedmaintest(decorator): 레거시 데코레이터 e2e 테스트 15개 + ROADMAP 업데이트
ohah/zntc#829생성 · 병합mergedmainfeat(cli): 배치 E — CLI 옵션 13개 일괄 추가
ohah/zntc#828생성 · 병합mergedmaindocs(STRUCTURE): 리팩토링 반영
ohah/zntc#827생성 · 병합mergedmainrefactor: transformer class/decorator + linker metadata 분리
ohah/zntc#826생성 · 병합mergedmainrefactor(transformer): React Fast Refresh → transformer/refresh.zig 분리
ohah/zntc#825생성 · 병합mergedmainrefactor: 대형 파일 폴더 분리 (bundler_test, codegen_test, emitter)