2026-03-30

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

요약 (AI 작성)

zntc는 번들 --watch 모드와 플러그인 재사용(#531)으로 하루를 시작해, dev server에서도 플러그인을 쓰게 하고(#535) 플러그인 API를 Vite·Rollup 스타일로 바꿨습니다(#537). dev server는 기본 포트 12300과 host·open 옵션, API 프록시 --proxy(#538, #539)와 통합 테스트 8개를 갖췄고, CI에서 불안정한 --serve --plugin 테스트는 건너뛰도록 했습니다. 이어 zts.config 파일 자동 감지(#545), renderChunk·generateBundle 훅과 설정 변경 시 재시작(#547), @zts/core의 TypeScript 전환(#548), load 훅의 loader 필드(#550), Vite·esbuild 호환 defineConfig 빌드 옵션(#551)이 들어왔습니다. 오후에는 소스맵 정확도 개선과 네이티브 파일 감시, 증분 빌드(#553)를 넣고, Linux의 inotify 감시를 CLOSE_WRITE와 디렉터리 감시로 바꿔 HMR을 안정화했습니다(#554, #556).

저녁부터는 Flow 지원을 시작했습니다. @flow pragma 감지와 --flow 옵션(#558), 기본 타입 파싱과 타입 제거(#561), opaque type과 variance(#562), import typeof, declare·interface, as 식을 차례로 병합했고, Metro의 @flow 파일 410개를 통과하는 스모크 테스트를 추가했습니다(#567). 기능 브랜치에 쌓았던 #559, #560은 닫고 같은 내용을 main 대상 PR로 다시 올린 것입니다. 밤에는 주석 형식의 Flow 타입, TypeCast·exact object·%checks(#568, #570)와 React Native용 --resolve-extensions·--main-fields 옵션(#573)을 넣고 문서에 Flow 완료를 반영했습니다.

멀티 백엔드 데스크톱 프레임워크 suji가 이날 첫 커밋을 올렸습니다. 설정 파서와 dev·build·run CLI, 프로젝트를 만드는 suji init을 만들고, 설정은 TOML을 빼고 JSON만 쓰기로 했습니다. #[suji::command] 매크로를 쓰는 Rust SDK, 구조체 바인딩 방식의 Go SDK, comptime 빌더와 dlopen으로 붙는 Zig 백엔드, 코어의 이벤트 pub/sub과 JS 브리지를 추가했으며, 백엔드 간 호출과 부하 데모를 거쳐 API를 Electron식 handle·invoke·on·send로 정리했습니다. 세 SDK 모두에 on·off를 구현하고 Go는 C 브리지로 이벤트 버스에 연결해 Phase 1을 완료로 표시했습니다. 이 저장소는 PR 없이 커밋으로 진행됐습니다.

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

커밋

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/zntc#575생성 · 병합mergedmaindocs: Flow 완료 + RN resolve 옵션 문서 반영
ohah/zntc#574생성 · 병합mergedmainfix: /simplify — getStr 중복 제거 + deinit 누락 + main_fields 헬퍼
ohah/zntc#573생성 · 병합mergedmainfeat(bundler): add --resolve-extensions + --main-fields CLI options
ohah/zntc#572생성 · 병합mergedmainfix: flow comment — has_flow_pragma 동기화 + /*:: */ 블록 스킵
ohah/zntc#571생성 · 병합mergedmainfix: /simplify — %checks 텍스트 검증 + exact object 루프 가드
ohah/zntc#570생성 · 병합mergedmainfeat(parser): add Flow TypeCast, exact object, %checks
ohah/zntc#569생성 · 병합mergedmainfix: /simplify — flow comment */ 종료 단일화 + 데드 코드 제거
ohah/zntc#568생성 · 병합mergedmainfeat(lexer): add Flow comment types — /*:: / block and /: */ inline
ohah/zntc#567생성 · 병합mergedmaintest: add Flow Metro smoke test — 410 @flow files pass
ohah/zntc#566생성 · 병합mergedmainfeat(parser): add Flow as expression — flow_as_expression 독립 태그
ohah/zntc#565생성 · 병합mergedmainfeat(parser): add Flow declare + interface — flow.zig 독립 구현
ohah/zntc#564생성 · 병합mergedmainfix: /simplify — import typeof named 테스트 추가
ohah/zntc#563생성 · 병합mergedmainfeat(parser): add Flow import typeof support
ohah/zntc#562생성 · 병합mergedmainfeat(parser): add Flow opaque type + variance support
ohah/zntc#561생성 · 병합mergedmainfeat(parser): add Flow basic type parsing — flow.zig, flow_ AST tags, type stripping
ohah/zntc#560생성closed기능 브랜치: feature/flow-basic-typesfeat(parser): add Flow opaque type + variance support
ohah/zntc#559생성closed기능 브랜치: feature/flow-infrastructurefeat(parser): add Flow basic type parsing — flow.zig + flow_ AST tags
ohah/zntc#558생성 · 병합mergedmainfeat(parser): add Flow infrastructure — is_flow flag + @flow pragma + --flow CLI
ohah/zntc#557생성 · 병합mergedmainfix: /simplify 리뷰 반영 — 해시 이중 조회, absPath 중복, catch unreachable
ohah/zntc#556생성 · 병합mergedmainfix: inotify 디렉토리 감시로 전환 — Linux HMR 안정화
ohah/zntc#555생성 · 병합mergedmaintest: 테스트 커버리지 보강 — 16개 추가
ohah/zntc#554생성 · 병합mergedmainfix: inotify CLOSE_WRITE + atomic write 재등록
ohah/zntc#553생성 · 병합mergedmainfeat: 소스맵 정확도 + 네이티브 파일 감시 + 증분 빌드
ohah/zntc#552생성 · 병합mergedmainfix: /simplify config 옵션 — 중복 제거, server config 적용, leak 수정
ohah/zntc#551생성 · 병합mergedmainfeat: defineConfig 빌드 옵션 — loader, define, alias, external, sourcemap, minify
ohah/zntc#550생성 · 병합mergedmainfeat: load 훅 loader 필드 — text/css/json 자동 래핑 (esbuild 호환)
ohah/zntc#549생성 · 병합mergedmainfix: CSS load 예시 수정 — export default 래핑
ohah/zntc#548생성 · 병합mergedmainrefactor: @zts/core를 TypeScript로 변환
ohah/zntc#547생성 · 병합mergedmainfeat: renderChunk/generateBundle subprocess 훅 + config watch 재시작
ohah/zntc#546생성 · 병합mergedmaintest+fix: config 자동 감지 테스트 + /simplify 반영
ohah/zntc#545생성 · 병합mergedmainfeat: zts.config.{ts,js,mts,mjs,cts,cjs} 자동 감지
ohah/zntc#544생성 · 병합mergedmainfix(ci): skip flaky --serve --plugin 테스트 on CI
ohah/zntc#543생성 · 병합mergedmainfix(ci): dev server --plugin 테스트 bun 타임아웃 15s
ohah/zntc#542생성 · 병합mergedmainfix(ci): dev server --plugin 테스트 타임아웃 + retry
ohah/zntc#541생성 · 병합mergedmaintest(server): dev server 통합 테스트 8개
ohah/zntc#540생성 · 병합mergedmainfix: /simplify dev server 프록시 — 스택오버플로, 헤더/바디 전달, CLI 파싱
ohah/zntc#539생성 · 병합mergedmainfeat(server): --proxy 옵션 — API 프록시 지원
ohah/zntc#538생성 · 병합mergedmainfeat(server): dev server 옵션 확장 — 기본포트 12300, host, open
ohah/zntc#537생성 · 병합mergedmainrefactor: 플러그인 API를 Vite/Rollup 스타일로 변경
ohah/zntc#536생성 · 병합mergedmaintest(bundler): 플러그인 테스트 커버리지 2차 확대
ohah/zntc#535생성 · 병합mergedmainfeat: --serve + --plugin 연동 — dev server 플러그인 지원
ohah/zntc#534생성 · 병합mergedmaintest(bundler): 플러그인 테스트 커버리지 확대
ohah/zntc#533생성 · 병합mergedmainfix: /simplify 미검토 PR 통합 리뷰 반영
ohah/zntc#532생성 · 병합mergedmainfix: /simplify 리뷰 반영 — watch 모드 중복 제거 + unbounded growth 수정
ohah/zntc#531생성 · 병합mergedmainfeat: --bundle --watch 모드 + 플러그인 watch 재사용