2026-05-05
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 오전에 전날의 tree-shaking·번들러 성능 작업을 마무리했습니다. 직접 export seed 빠른 경로(#2559), const-materialize 캐시 무효화 범위 축소와 ConstPassPolicy enum 정리(#2561, #2562), 작은 graph 배치에서 스레드 풀 시작 생략(#2565), 소스 디렉터리 핸들 캐시(#2570)가 들어갔고, 벤치마크는 wall 측정과 프로파일 진단을 나누고 resolve·graph read·prepass 단계를 따로 보이게 했으며 xlarge 번들 fixture를 추가했습니다(#2563, #2564, #2568, #2571). 사용자에게 보이는 옵션·플래그·API 문서 누락과 오래된 JSDoc도 일괄 보강했습니다(#2566, #2567).
오후에는 패키지 분리를 11단계로 진행했습니다. @zts/web과 @zts/server 패키지를 비공개로 만들고 zts 자체 빌드로 빌드하게 한 뒤(#2572, #2573), @zts/server에 HMR·WebSocket·watcher를 구현하고(#2574) HMR 클라이언트 런타임, CSS 스캐너, loader, PostCSS, Sass, CSS Modules 파이프라인을 @zts/web으로 옮겼습니다(#2577, #2580, #2582부터 #2585까지). 이후 core의 HMR 채널, CSS 파이프라인 중복, app dev 컨트롤러를 새 패키지로 넘기고(#2587, #2588, #2589) 분리 문서를 썼습니다(#2592). 이 과정에서 ESM 출력에 export * 재export가 빠지던 번들러 버그를 찾아 고쳤고(#2578), CLI·E2E 테스트 전에 새 패키지를 빌드하고 @zts/core 타입 선언을 내보내도록 CI를 손봤습니다(#2586, #2593, #2596).
저녁부터는 @zts/react-native 패키지를 세웠습니다. 서버 프로토콜에 RN HMR 메시지를 추가하고(#2598) RN 런타임과 Metro HMR 어댑터, asset·babel·codegen·require-context 플러그인 팩토리, RN preset을 만든 뒤(#2600부터 #2603까지) zts bundle --platform=react-native를 연결했습니다(#2604). 이어 RN dev server를 HTTP 기본 라우트, asset, bundle·map 라우트와 sourcemap 캐시, HMR 연결, symbolicate, cli-server-api·dev-middleware 연동, 터미널 단축키, 단일 WS upgrade 체인 순서로 쌓고(#2606부터 #2614까지) zts dev --platform=react-native로 묶었습니다(#2615). 예제 앱은 examples/react-native-bare(RN 0.85)와 examples/react-native-expo(Expo 55, RN 0.83)로 옮겼고, RN dev server 가이드(#2618), 테스트 범위 점검과 버그 수정, bungae와 같은 index 페이지와 HMR 수신 처리(#2621), zts.config.ts의 RN 영역 인식과 Metro 스타일 터미널 UI(#2625, #2626), babel 플러그인을 프로젝트 기준으로 찾도록 한 수정(#2627)이 이어졌습니다. 이날 열린 oxfmt 0.48 업그레이드 #2628와 zts.config.ts의 transformer·serializer·server 영역 매핑 #2630은 5월 6일에 병합됐습니다.
블로그 저장소 ohah.github.io의 커밋 14개는 크론의 CRON_CRD_WRITE.md 점검 기록 13개와 요약 추가 1개입니다.
공개 커밋 78개, 해당일 생성 또는 병합된 PR 68개를 정리했습니다. PR 생성 68개·병합 66개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/ohah.github.io
- CRON: Mark cron task completed at 07:00 KST — all mdx files already checked
- docs: mark CRON_CRD_WRITE.md check complete (2026-05-06 05:30 KST)
- cron: mark final task completion (2026-05-06 05:00 KST)
- cron: mark CRD write task as complete (2026-05-06 03:00 KST)
- cron: Update checklist status for CRON_CRD_WRITE.md (2026-05-06 00:00 KST)
- docs: add AI summary for 2026-05-05
- cron: confirm all mdx files checked (2026-05-05)
- cron: mark final checkpoint (2026-05-05 22:30 KST)
- Cron task completed - all .mdx files checked (2026-05-05 22:00 KST)
- docs: mark CRON_CRD_WRITE.md final status (2026-05-05 21:30 KST)
- docs: cron-crd-write — all .mdx files checked (2026-05-05 20:00 KST)
- cron: mark current run as completed
- docs: CRON_CRD_WRITE.md — update status (2026-05-05 12:30 KST)
- cron: mark all mdx files completed - 2026-05-05 09:30 KST
ohah/zntc
- fix(react-native): babel plugin resolve 를 project 기준 require 로 (#2605 audit)
- feat(react-native): terminal UI — banner + Metro-style logs (#2605 audit)
- feat(core): runRnDev 가 zts.config.ts 의 RN 영역 인식 (#2605 audit)
- chore(examples): 누락된 babel devDeps 추가 (RN 0.85 bare)
- feat(react-native, server): bungae parity — index page + HMR incoming handlers
- chore(react-native): #2605 epic test coverage audit + 2 bug fixes
- docs(documents): RN dev server 가이드 (Closes #2605)
- chore(examples): move ExpoApp → examples/react-native-expo (Expo 55 / RN 0.83)
- chore(examples): move ExampleApp → examples/react-native-bare (RN 0.85)
- feat(core): zts dev --platform=react-native dispatch (#2605 PR #J)
- feat(react-native): serveRn entry + 단일 WS upgrade chain
- feat(react-native): terminal actions (r/d/?/c/i/a/j 키보드)
- feat(react-native): cli-server-api + dev-middleware lazy integration
- feat(react-native): symbolicate endpoint + customizeFrame hook
- feat(react-native): HMR bridge — HmrChannel + watchRn 연결
- feat(react-native): bundle/map routes + per-platform state + lazy sourcemap cache
- feat(react-native): asset registry handler + /assets/*
- feat(react-native): HTTP server bootstrap + base routes (status/reload/devmenu/open-url)
- feat(react-native): scaffold dev-server module + RnDevServerOptions
- feat(core): zts bundle --platform=react-native dispatch (lazy import @zts/react-native)
- feat(react-native): RN preset (buildRnBundleOptions / bundleRn / watchRn)
- feat(react-native): plugin factories (asset/babel/codegen/require-context/metro-resolve-request)
- feat(react-native): Metro HMR adapter on @zts/server.HmrChannel
- feat(react-native): RN runtime (zts-hmr-client.js) + runtime-loader
- feat(react-native): rn-constants and metro-resolver-types
- feat(packages): scaffold @zts/react-native + extend server protocol with HMR_RN_MSG
- ci: trigger Integration & E2E on workflow + setup-zts changes
- fix(ci): build @zts/web + @zts/server before E2E tests
- ci(packages): remove redundant vite-plugin-zts grep guard
- chore(packages): apply /simplify follow-ups for #2539 PR #7-#10
- fix(ci): emit @zts/core dts so @zts/web tsc can resolve imports
- docs(packages): document @zts/web + @zts/server split
- ci(packages): verify vite-plugin-zts integrity post-split
- chore(packages): rebalance optional CSS deps + expose @zts/server watcher
- refactor(core,web): cut over createAppDevController + plumbing to @zts/web
- refactor(core): cut over CSS pipeline duplicates from zts.mjs to @zts/web
- refactor(core,web): cut over HMR channel + WS frame to @zts/server
- fix(ci): build @zts/web + @zts/server before CLI tests
- feat(web): extract css-modules.ts pipeline to @zts/web/src/style/
- feat(web): extract sass.ts pipeline + requireFromAppRoot helper
- feat(web): extract postcss.ts pipeline + url.ts to @zts/web/src/
- feat(web): extract loader.ts (requireFromAppOrFallback + collectAppFiles)
- chore(bundler,web): /simplify follow-ups for #2578 / #2580
- feat(web): extract css-parser.ts (low-level CSS scanner) to @zts/web/src/style/
- chore(packages): restore @zts/server private + zts self-build (post #2576)
- fix(bundler): emit
export *re-export in ESM output (root cause) - refactor(web): extract APP_DEV_HMR_CLIENT runtime + inject helpers to @zts/web
- perf(benchmark): add xlarge bundle fixture
- feat(server): full implementation of @zts/server (HMR + WS + Watcher + types)
- chore(web,server): adopt zts self-build (dogfooding)
- chore(packages): apply oxfmt formatting to new package.json files
- feat(packages): scaffold @zts/web and @zts/server private
- perf(bundler): cache source directory handles
- perf(benchmark): split graph read and prepass profile phases
- docs(core): refresh stale JSDoc on CompilerOptions / cssProp / phaseDurations
- docs(audit): 사용자 표면 옵션/플래그/API 문서 누락 일괄 보강
- perf(bundler): scan tiny graph batches before pool startup
- perf(benchmark): expose resolve subphase profiling
- perf(benchmark): split zts wall and profile runs
- refactor(bundler): collapse paired const-materialize booleans into ConstPassPolicy enum
- refactor(bundler): /simplify R2 — narrow const-materialize cache invalidation + dedup postpass guards
- perf(tree-shake): fast-path direct export seeding
- style: oxfmt — collapse import groups in benchmark runners
- refactor: /simplify follow-up — dedupe tree-shaker + benchmark helpers
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.