2026-04-16
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 bungae 연동에서 나온 RN 문제를 주로 고쳤습니다. AssetRegistry 모듈의 require가 번들 내부 require로 바뀌지 않던 문제(#1420)와 에셋 코드의 JSON 이스케이프(#1421)를 고치고, 에셋 httpServerLocation을 projectRoot 기준 /assets/ 상대 경로로 바꾸면서 해시를 MD5로 맞추고 단순 화살표 매개변수 파싱 회귀도 함께 정리했습니다(#1430). 플러그인 onResolve가 { disabled: true }를 돌려주면 빈 모듈로 처리해 Metro의 empty 해석에 대응하게 했고(#1424), 래핑된 소스 모듈을 named re-export할 때 getter가 소스의 exports를 직접 참조하도록 고친 뒤 자기 자신으로 순환하는 re-export는 진단으로 거부합니다(#1426, #1427).
번들 모드는 에러 진단이 있으면 esbuild·rolldown처럼 종료 코드 1을 내게 됐고, 이로 드러난 통합 테스트 실패 8건에 stub fixture와 devDependency를 보탰으며(#1432), browser 기본 main_fields와 깨진 symlink 처리로 CI를 복구했습니다(#1434). 시맨틱 에러를 TranspileResult로 노출해 Playground와 NAPI에서도 보이게 하고(#1437), 진단에 여러 위치 라벨과 재선언 시 이전 선언 위치 힌트를 더했습니다(#1438). 에러 코드 문서 126개를 영문으로 옮겼고(#1429), NAPI 바이너리를 자동 복사하는 postinstall과 package.json 필드명 상수화(#1433, #1436)도 들어갔습니다.
bungae는 extraNodeModules·resolveRequest·blockList 같은 Metro resolver hook을 ZTS 옵션으로 연결했고(#58), 에셋 처리를 ZTS 코어에 맡기며 IPC dead code 약 800줄을 정리했습니다(#59). ZTS 서브모듈을 210커밋 앞으로 올리고(#60), resolveRequest 어댑터가 모든 모듈을 빈 export로 만들어 번들이 28KB가 되던 버그를 ZTS의 disabled 플래그로 고쳤으며(#61), AssetRegistry alias를 없앴습니다(#62). ohah.github.io에는 맞춤법 크론이 수정 없이 상태 파일만 갱신한 커밋 20개가 쌓였습니다.
공개 커밋 47개, 해당일 생성 또는 병합된 PR 19개를 정리했습니다. PR 생성 19개·병합 19개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/bungae
- fix(zts-bundler): AssetRegistry alias 제거 + ZTS submodule update
- fix(zts-bundler): Metro empty 매핑을 ZTS disabled flag로 — 28KB 버그 fix
- chore: bump zts submodule (3f1fe63 → 2fcb8ef, 210 commits)
- feat(zts-bundler): asset 처리 ZTS 코어 위임 + IPC dead code 정리
- feat(config): Metro 호환 resolver hook 추가 — extraNodeModules, resolveRequest, blockList 매핑
ohah/ohah.github.io
- cron: 30분마다 맞춤법 교정 CRD - 2026-04-17 08:00 AM (Asia/Seoul)
- docs: CRON_CRD_WRITE.md log for 2026-04-17 07:00 AM
- CRD 30분마다 실행: 모든 .mdx 파일 체크 완료, 수정사항 없음
- CRON_CRD_WRITE.md: update timestamp for 2026-04-17 05:30 AM
- CRON_CRD_WRITE.md: 05:00 completed, no changes needed
- crd: add run log for 2026-04-17 04:30 (all .mdx files already checked)
- cron: update CRON_CRD_WRITE.md - all .mdx files checked, no changes
- CRON: update CRON_CRD_WRITE.md - status 271
- docs: update CRON_CRD_WRITE.md - 2026-04-17 02:00 AM (Asia/Seoul)
- cron: update CRON_CRD_WRITE.md
- 2026-04-16 16:01:14 - CRD: CRON_CRD_WRITE.md timestamp updated (all files checked)
- cron: update CRON_CRD_WRITE.md status for 2026-04-16 23:30
- chore: mark docs/test.mdx as complete (file does not exist)
- CRON: mark blog-crd-write as complete (2026-04-16)
- docs: CRD 30분마다 실행 (현재) - 체크 완료, 수정사항 없음
- CRD: update run timestamp
- crd: mark today's run (all .mdx files checked)
- 2026-04-16 10:31:04 UTC - CRD 30분마다 실행 (현재) - CRON_CRD_WRITE.md 상태만 갱신 후 커밋 및 푸시
- chore: CRD 30분마다 실행 상태 갱신 - 2026-04-16 10:00 PM (Asia/Seoul)
- chore(cron): mark all mdx files as checked in CRON_CRD_WRITE.md
ohah/zntc
- feat(diagnostic): multi-span labels + redeclaration previously-here hint
- chore(wasm): apply oxfmt formatting to index.ts
- feat(diagnostic): expose semantic errors through TranspileResult
- docs(CLAUDE.md): /simplify는 PR 전, label/assignee 필수, Test262 규칙 제거
- refactor(package_json): 필드명/conditions 리터럴 → 네임스페이스 상수
- chore(simplify): #1434 후속 — RN main_fields 중복 제거 + statSync async화
- fix(resolver, test): CI 복구 — browser main_fields 기본값 + linkNodeModules broken symlink
- chore(core): add postinstall script to auto-copy NAPI binary
- chore(simplify): #1432 후속 — hasPackage/REACT_STUB 통합, 병렬화
- test(integration): 8 fail에 stub fixture/devDep 추가 (#1431)
- fix(asset, parser): RN 통합 fix — projectRoot, hash MD5, simple arrow params (#1428)
- docs(en): 모든 에러 페이지 영문 마이그레이션 + index 전체 카탈로그
- docs(en): ZTS0104 영문 페이지 + en/reference/errors/index 신규
- feat(cli, docs): #1427 후속 — 에러 진단 시 exit 1 + ZTS0104 페이지
- chore(simplify): #1427 후속 — addDiag 멀티라인, 주석 정리
- fix(linker): self-cycle named re-export 진단으로 거부 (#1425 follow-up)
- fix(linker): named re-export getter가 source의 exports를 직접 참조 (#1425)
- feat(plugin): onResolve에 { disabled: true } 반환 허용
- fix(asset/test): /simplify 후속 — JSON escape, syscall opt, 테스트 확장, JSDoc
- refactor(asset): parseAssetModule dispatch 단순화 — bool 제거
- chore(fixtures): RN snapshot 재생성 — asset_registry require 변환 후속
- fix(asset): asset_registry 모듈에 require → require_xxx 변환 적용
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.