2026-04-01

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

요약 (AI 작성)

zntc(당시 이름 ZTS)는 Flow 파서를 React Native 실제 파일 50개를 모두 통과하는 수준까지 끌어올렸습니다. Flow와 JSX를 별도 옵션으로 나누고 --jsx-in-js와 --platform=react-native 프리셋을 두었으며(#594), component/hook 문법·indexed access type(#595), 함수 타입 파라미터와 extends 바운드(#596), 중첩 괄호 함수 타입·conditional type·type guard·infer·keyof·JSX 안 주석(#597)을 차례로 지원했습니다. JSX 변환은 React.createElement 고정에서 classic/automatic/automatic-dev 3모드로 확장됐고(#591), 이중 순회와 memmove를 없애는 emit 최적화가 뒤따랐습니다.

번들러에서는 JSON 모듈을 파싱 시점에 export default ESM AST로 바꿔 JSON 전용 경로를 없앴고(#589), Flow 타입 전용 노드가 지워진 자리의 빈 인덱스로 죽던 문제(#592), declare module 안의 export와 JSX 속성 뒤 정규식 오인식(#593)도 고쳤습니다. 코드 생성 쪽은 CJS re-export에서 default 예약어를 식별자로 내보내던 버그(#602), 구조 분해의 하이픈 포함 문자열 키를 점 표기로 내던 버그(#601), ES5 다운레벨링 시 템플릿 리터럴 줄바꿈과 U+2028/U+2029 이스케이프 누락(#600)을 수정했습니다. --watch-json 초기 빌드가 NDJSON 프로토콜을 깨던 문제(#598)를 고치고, 테스트 패키지를 packages/에서 tests/로 옮겼으며(#599), 로드맵에 상용 번들러 대비 미지원 기능 목록을 보탰습니다(#590).

suji는 이날 CEF 146 통합을 시작했습니다. CEF POC와 플랫폼 추상화, V8Handler·프로세스 메시지 기반 IPC 계층을 넣고 JS API를 기존 webview 브리지(invoke·emit·chain·fanout·core)와 맞췄으며, Promise 관리를 JS 쪽으로 옮기고 JSON 주입을 퍼센트 인코딩으로 막았습니다. dlopen 기반 플러그인 시스템과 State 플러그인, 바이너리 데이터용 로컬 HTTP 에셋 서버, Electron 스타일 macOS 메뉴 막대와 단축키, 앱 안 DevTools 토글, Puppeteer CDP로 붙는 E2E 테스트 24개, suji build --cef의 macOS .app 번들링도 추가했습니다. DevTools는 ALLOY 모드 충돌 때문에 CDP 외부 브라우저 방식을 거쳤다가 전용 클라이언트로 앱 안에서 여는 방식으로 돌아왔습니다.

bungae는 Rolldown 기반(oxc)과 Bun.Transpiler 기반 번들러 구현을 지우고 Babel 그래프 번들러만 남겼으며(#40), rolldown 서브모듈과 CI의 Rust·pnpm 빌드 단계를 걷어 낸 뒤 포맷 검사와 벤치마크 실행 경로를 바로잡았습니다.

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

커밋

ohah/bungae

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/bungae#40생성 · 병합mergedmainchore: remove oxc-bundler and bun-bundler
ohah/zntc#602생성 · 병합mergedmainfix(codegen): CJS re-export에서 default 예약어 식별자 출력 버그 수정
ohah/zntc#601생성 · 병합mergedmainfix(codegen): destructuring 문자열 키를 bracket notation으로 출력
ohah/zntc#600생성 · 병합mergedmainfix(codegen): 템플릿 리터럴 줄바꿈 이스케이프 누락 수정
ohah/zntc#599생성 · 병합mergedmainrefactor: 테스트 패키지를 packages/ → tests/로 이동
ohah/zntc#598생성 · 병합mergedmainfix(watch): --watch-json 초기 빌드 NDJSON 프로토콜 준수
ohah/zntc#597생성 · 병합mergedmainfeat(flow): RN 50/50 전체 통과 — 중첩 함수 타입 + conditional + type guard + infer + keyof + JSX 주석
ohah/zntc#596생성 · 병합mergedmainfeat(flow): 함수 타입 파라미터 + extends 바운드 + shorthand 함수 타입
ohah/zntc#595생성 · 병합mergedmainfeat(flow): component/hook syntax + indexed access type + JSX spread 수정
ohah/zntc#594생성 · 병합mergedmainfeat(parser): Flow/JSX 분리 + --jsx-in-js 옵션 + RN 프리셋 개선
ohah/zntc#593생성 · 병합mergedmainfix(parser): ambient module export 허용 + JSX 속성 regex 오스캔 수정
ohah/zntc#592생성 · 병합mergedmainfix(bundler): prevent crash on .none NodeIndex in transformer/codegen
ohah/zntc#591생성 · 병합mergedmainfeat(codegen): JSX 런타임 3모드 지원 (classic/automatic/automatic-dev)
ohah/zntc#590생성 · 병합mergedmaindocs(roadmap): 상용 번들러 대비 미지원 기능 목록 확장
ohah/zntc#589생성 · 병합mergedmainrefactor(bundler): JSON → ESM AST 변환으로 JSON 특수 경로 제거