2026-04-09
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 HMR과 소스맵을 RN DevTools에서 제대로 보이게 하는 데 집중했습니다. dev 모드의 모듈 간 참조를 __zts_modules 레지스트리 조회로 바꾸고 업데이트 때 팩토리를 실제로 실행하게 했으며(#937, #938), react-refresh는 Bun symlink 경로 해석과 require 노출을 거쳐 $RefreshReg$ 첫 호출 때 lazy하게 찾는 방식으로 정리했습니다(#941~#943). 이어 HMR을 롤리팝 패턴으로 재설계해 eval 기반 실행, 모듈별 $RefreshReg$ 저장·복원, 50ms debounce 갱신을 도입했고(#944, #947), WS 프로토콜에 update-start/update-done 메시지를 더했으며(#946), 두 번째 변경부터 full reload가 나던 그래프 변경 감지를 경로 집합 비교로 고쳤습니다(#952).
소스맵은 가상 모듈 ID의 null byte가 JSON을 깨던 문제(#948), __esm 래핑 모듈의 매핑 누락(#949), 파서 lookahead 복원 때 줄 오프셋이 남아 줄 번호가 밀리던 문제(#955)를 고쳤습니다. sources 경로는 상대 경로로 바꾼 뒤 RN용 절대 경로 출력을 넣었다 되돌리는 과정을 거쳤고(#950, #958, #959, #960), 들여쓰기된 줄의 column 0 매핑(#957)과 banner·폴리필·런타임 prologue 전체를 하나의 가상 소스로 매핑하고 x_google_ignoreList에 올리는 처리(#961, #962)로 콘솔이 폴리필 줄을 가리키던 문제를 없앴습니다.
그 밖에 진단에 에러 코드 120개를 등록하고(#934) 문서 사이트에 에러 코드 125개 페이지와 Playground 재현 링크를 붙였습니다(#935, #936). 플러그인 transform 훅은 Rolldown처럼 codegen 뒤가 아니라 파싱 전 그래프 단계에서 돌게 옮기고 응답의 code 필드도 받도록 했습니다(#965~#968). ROADMAP과 벤치마크 데이터도 새 실측값으로 갱신했습니다(#963).
bungae는 ZTS dev 서버를 Metro에 가깝게 다듬었습니다. multipart/mixed 응답과 진행률로 "Loading from Metro" 표시와 사라지지 않던 Downloading 100% 바를 정리했고(#44, #50, #51), Metro 호환 sourceMappingURL·sourceURL과 jscSafeUrl 인코딩, /symbolicate 라우트 우선 처리(#46, #53), node_modules 에셋 경로와 AssetRegistry 이중 specifier로 이미지가 안 보이던 문제(#47~#49)를 고쳤습니다. Metro 스타일 터미널 출력(#55), 빌드 시간 표시, 에러 오버레이와 앱 콘솔의 터미널 전달, bundle 명령 별칭, dev 서버 네트워크 통합 테스트(#52)도 추가했습니다.
공개 커밋 75개, 해당일 생성 또는 병합된 PR 42개를 정리했습니다. PR 생성 41개·병합 42개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/bungae
- refactor(zts-server): remove CDP blackbox injection
- fix(zts-server): auto-blackbox bundle via CDP Debugger.setBlackboxPatterns
- fix(zts-server): merge x_google_ignoreList instead of overwriting
- fix(zts-server): simplify sourcemap post-processing to only add x_google_ignoreList
- fix(zts-server): add x_google_ignoreList + prologue mapping to sourcemap
- debug(zts-server): enhance /debug-sourcemap with mapping range info
- debug(zts-server): add /debug-sourcemap diagnostic endpoint
- fix(zts-server): add jscSafeUrl encoding for sourceURL (console line mapping)
- debug(symbolicate): add logging to diagnose console line mapping issue
- docs: remove OXC and Bun bundler references from CLAUDE.md
- docs: update CLAUDE.md with ZTS bundler status and current architecture
- feat(cli): add bundle command alias matching RN ecosystem convention
- refactor: simplify console output to Metro-style badges
- feat: box-style console output and object/array test
- feat(zts-hmr): intercept console methods for terminal forwarding
- feat(example): add error/sourcemap and console level test cards
- feat(zts-server): error overlay, console forwarding, multi-platform
- feat(zts-server): show build duration in terminal output
- fix(zts): buffer stderr to prevent split warning lines
- fix(devtools): remove enableNetworkInspector to match Metro defaults
- fix(zts): inject BUNGAE_BUNDLER and BUNGAE_VERSION in prelude
- fix(banner): restore original ASCII art box banner
- fix(types): resolve TypeScript errors in test and build files
- style: apply oxfmt formatting
- fix(lint): remove unused imports and fix unused variable
- Merge pull request #55 from ohah/refactor/metro-style-terminal-output
- refactor: Metro-style terminal output and network test app
- fix(zts-server): symbolicate 라우트를 dev middleware보다 먼저 처리
- test(zts-server): ZTS dev server 네트워크 통합 테스트 추가
- fix(zts-bundler): Downloading 100% 로딩 바가 사라지지 않는 문제 수정
- fix(zts-server): Downloading 100% 로딩 바가 사라지지 않는 문제 수정
- fix(asset-plugin): AssetRegistry 이중 specifier 통합 — 이미지 미표시 수정
- test(asset-plugin): httpServerLocation 계산 로직 단위 테스트 추가
- fix(asset-plugin): httpServerLocation에서 leading ../ 제거
- fix(zts-server): Metro 호환 sourceMappingURL + sourceURL 삽입
- fix(zts-server): 파일 수정 없이 저장 시 불필요한 full reload 제거
- fix(zts-server): multipart/mixed 응답으로 Loading from Metro 타이틀 제거
ohah/zntc
- fix(plugin): transform 훅 응답에서 code 필드도 인식 (#966)
- refactor(plugin): parseModule 내 PluginRunner 초기화 통합 + 통합 테스트 수정
- feat(plugin): transform 훅을 파싱 전 graph 레벨로 이동 (#964)
- docs: ROADMAP + 벤치마크 데이터 2026-04-10 실측 반영
- fix(sourcemap): prologue 소스명을 node_modules 경로로 변경
- fix(sourcemap): prologue 전체를 <runtime> 소스로 매핑 + x_google_ignoreList
- test(sourcemap): polyfill identity mapping + x_google_ignoreList 테스트 3개 추가
- fix(sourcemap): polyfill identity mapping + x_google_ignoreList 추가
- Reapply "fix(sourcemap): RN 번들 소스맵 경로 + 매핑 수정"
- Revert "fix(sourcemap): RN 번들 소스맵 경로 + 매핑 수정"
- fix(sourcemap): RN 번들 소스맵 경로 + 매핑 수정
- fix(sourcemap): ESM 래핑 모듈의 column 0 매핑 추가 (RN DevTools 콘솔)
- test(sourcemap): 줄 번호 정확도 통합 테스트 3개 추가
- fix(sourcemap): lookahead 시 line_offsets 중복으로 줄 번호 밀림 수정 (#954)
- refactor(sourcemap): merge 루프 최적화 + RN 소스맵 통합 테스트 추가
- fix(sourcemap): RN 번들 소스맵 경로 + 매핑 수정
- fix(hmr): graph_changed 감지를 경로 SET 비교로 개선 (#951)
- fix(sourcemap): sources 경로를 프로젝트 루트 기준 상대 경로로 변환
- fix(sourcemap): ESM 래핑 모듈의 소스맵 매핑 생성
- fix(sourcemap): sources 배열의 제어 문자 JSON 이스케이프 누락 수정
- fix(hmr): eval 후 __esm factory 미실행 버그 수정 + 테스트 추가
- feat(hmr): WS 프로토콜에 update-start/update-done 메시지 추가
- style(hmr): 코드 주석에서 내부 레퍼런스 코드네임 제거
- refactor(hmr): 롤리팝 패턴 기반 HMR 재설계
- fix(hmr): react-refresh를 $RefreshReg$ 첫 호출 시 lazy resolve
- fix(hmr): RN에서 react-refresh를 require()로 글로벌 노출
- fix(hmr): react-refresh symlink 경로 해석 수정
- debug(hmr): react-refresh 탐색 경로 디버깅 로그 추가
- style(hmr): /simplify 리뷰 반영 — InitializeCore 주석 갱신
- fix(hmr): RN dev mode에서 __ReactRefresh 글로벌 설정 + 팩토리 실행
- fix(hmr): __zts_apply_update에서 모듈 팩토리 실제 실행 추가
- fix(codegen): export/import named specifier 공백 포맷 수정
- style(hmr): /simplify 리뷰 반영
- fix(hmr): dev 모드 모듈 참조를 __zts_modules 레지스트리 lookup으로 변경
- docs: 73개 에러 코드 Playground 재현 링크 + 사이드바 중복 제거
- docs: 125개 에러 코드 문서 + Playground 옵션 공유
- fix(diagnostic): /simplify 리뷰 반영
- feat(diagnostic): 120개 에러 코드 전수 등록
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.