2026-05-01

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

요약 (AI 작성)

zntc는 소스 타입 정리로 하루를 시작했습니다. JS 계열 source type을 ModuleType으로 통일하고(#2321), 파서의 is_ts와 reject_ts_syntax_in_js를 SourceMode enum으로 합쳤으며(#2322), es2017 대상에서 for-await-of를 다운레벨하도록 고쳤습니다(#2323). 이어 CLI 옵션을 차례로 붙여 --packages=external(#2344), --drop-labels(#2345), pure call DCE 힌트(#2346), 소스맵 매핑 보정과 함께 --line-limit 줄바꿈(#2347), allow-overwrite(#2349), --tsconfig-raw(#2350)를 지원했습니다. tsconfig는 raw 값과 jsx 병합을 Zig 한 곳에서 처리하도록 옮기고(#2356) NAPI transpile의 자동 탐색을 연결했으며, NAPI에 잘못된 jsx 옵션을 주면 조용히 classic으로 떨어지지 않고 오류를 던지게 바꿨습니다(#2370). 플러그인 closeBundle을 watch()에 연결하는 watch lifecycle hook(#2326)과 현재 CLI·config 기준의 문서 정합성 보정(#2328)도 들어갔습니다.

같은 날 zntc에는 React Native 컴포넌트 codegen이 새로 쌓였습니다. 스키마 자료구조(#2357), 타입 별칭·인터페이스 인덱서(#2361), ComponentShape를 만드는 schema_builder(#2372)와 이를 JS 문자열로 내는 view_config_emitter(#2374), 검증기와 ZTS 오류 코드 1400-1499(#2376)를 거쳐 codegen 플러그인을 파이프라인과 RN preset에 연결했습니다(#2377). 이후 codegenTransform NAPI 옵션을 노출하고(#2378) WithDefault, Array·ReadonlyArray, Flow nullable, UnsafeMixed, union, DirectEventHandler·BubblingEventHandler 인식을 하나씩 더했으며, 파일명 접미사 대신 AST 수준 감지로 대상을 고르게 했습니다(#2391). 파서는 TS property signature와 Flow 객체 본문 멤버를 보존하게 됐고(#2365, #2369), 타입 전용 export 선언이 프로그램에서 빠져 codegen 타입 인덱스가 놓치던 문제를 고쳤습니다(#2384). 저녁에는 Flow enum 문법 인식과 변환(#2405, #2406)이 들어왔습니다.

그 밖에 zntc는 binding-lite semantic 경로(#2389), module_specifier_map cherry-pick 분할과 moduleSpecifierMap NAPI 옵션(#2394, #2395)을 추가했습니다. build/watch deinit에서 typed entries·alias·fallback·loader_overrides를 해제하지 않던 문제(#2399, #2400, #2408), es2015 generator 변환의 switch 문 접근 UB(#2404), fs.watch 오류로 dev 서버가 멈추던 문제(#2387)도 고쳤고, dev 서버 테스트는 빈 포트를 동적으로 잡도록 바꿨습니다(#2373).

bungae는 BUNGAE_CODEGEN_NATIVE 토글로 네이티브 codegen 플러그인을 켜는 경로를 만든 뒤 하이브리드 모드로 바꾸고 BUNGAE_CODEGEN_FALLBACK=js 탈출구를 두었습니다(#74, #75, #76). babel decorators와 root-import 플러그인을 ZTS 네이티브로 매핑하고(#77) BUNGAE_BABEL_NATIVE·BUNGAE_BABEL_FALLBACK 토글(#82)과 공용 parseToggleEnv 헬퍼(#83)로 정리했으며, CI의 서브모듈 체크아웃 수정, 예제 앱의 lodash-es 전환, zts 서브모듈 갱신도 병합했습니다. suji는 Electron과 같은 형태의 session.cookies set/get/remove API를 추가했습니다. 외부 저장소 warpdotdev/warp에는 한국어 IME에서 마지막 음절이 사라지는 문제를 고치는 PR #9713을 열었지만 병합되지 않고 닫혔습니다. 블로그 저장소 ohah.github.io의 커밋 18개는 크론이 CRON_CRD_WRITE.md 점검 완료를 표시한 커밋 17개와 요약 갱신 커밋 1개입니다.

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

커밋

ohah/bungae

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/bungae#83생성 · 병합mergedmainchore(zts): extract parseToggleEnv helper for codegen/babel toggles
ohah/bungae#82생성 · 병합mergedmainfeat(zts): BUNGAE_BABEL_NATIVE / FALLBACK toggles (#2393 § 5)
ohah/bungae#81생성 · 병합mergedmainchore: bump zts submodule to main HEAD
ohah/bungae#80생성 · 병합mergedmainchore(example): migrate ExampleApp to lodash-es (ohah/zts#2398 fixture)
ohah/bungae#79생성 · 병합mergedmainchore(zts): tidy babel plugin mapping helpers (#77 simplify)
ohah/bungae#78생성 · 병합mergedmainfix(ci): checkout submodules so @zts/core resolves
ohah/bungae#77생성 · 병합mergedmainfeat(zts): map babel decorators + root-import to ZTS native (#2393 1+2단계)
ohah/bungae#76생성 · 병합mergedmainfeat(zts): add BUNGAE_CODEGEN_FALLBACK=js escape hatch
ohah/bungae#75생성 · 병합mergedmainfeat(zts): switch BUNGAE_CODEGEN_NATIVE to hybrid mode
ohah/bungae#74생성 · 병합mergedmainfeat(zts): add BUNGAE_CODEGEN_NATIVE toggle for native codegen
ohah/zntc#2408생성 · 병합mergedmainfix(napi): free fallback/loader_overrides in build/watch deinit (#2396)
ohah/zntc#2407생성 · 병합mergedmainchore(codegen): use FlowEnumBaseType enum for Flow enum default value (#2406 simplify)
ohah/zntc#2406생성 · 병합mergedmainfeat(transformer/codegen): Flow enum transformer (#2401 part 2)
ohah/zntc#2405생성 · 병합mergedmainfeat(parser): Flow enum syntax recognition (#2401 part 1)
ohah/zntc#2404생성 · 병합mergedmainfix(transformer/es2015_generator): switch_statement access via .extra (UB fix)
ohah/zntc#2403생성 · 병합mergedmainchore(napi): extract freeOptionsTypedSlices helper (#2400 simplify)
ohah/zntc#2400생성 · 병합mergedmainfix(napi): also free options.alias in build/watch deinit (#2396)
ohah/zntc#2399생성 · 병합mergedmainfix(napi): free typed entries arrays in build/watch deinit (#2396)
ohah/zntc#2397생성 · 병합mergedmainfix(napi): rename msm entries to avoid shadow in ReleaseFast
ohah/zntc#2395생성 · 병합mergedmainfeat(napi): expose moduleSpecifierMap option (#2393 3c)
ohah/zntc#2394생성 · 병합mergedmainfeat(transformer): module_specifier_map cherry-pick split (#2393 3a+3b)
ohah/zntc#2392생성 · 병합mergedmainfix(napi): codegenTransform 사용자 명시값 우선 (root-cause)
ohah/zntc#2391생성 · 병합mergedmainrefactor(codegen): drop filename suffix gating, rely on AST-level detection
ohah/zntc#2390생성 · 병합mergedmainchore(codegen): unify wrapper / event handler dispatch via StaticStringMap
ohah/zntc#2389생성 · 병합mergedmainfeat(transpile): binding-lite semantic 경로 추가
ohah/zntc#2388생성 · 병합mergedmainfeat(codegen): recognize DirectEventHandler<T> / BubblingEventHandler<T>
ohah/zntc#2387생성 · 병합mergedmainfix(dev): handle fs.watch error to keep dev server alive
ohah/zntc#2386생성 · 병합mergedmainfeat(codegen): map union types to string_enum or mixed
ohah/zntc#2385생성 · 병합mergedmainfeat(codegen): unwrap UnsafeMixed<T> identity wrapper
ohah/zntc#2384생성 · 병합mergedmainfix(parser): keep type-only export decl in program
ohah/zntc#2383생성 · 병합mergedmainfix(napi): hydrate codegen_transform from JS options
ohah/zntc#2382생성 · 병합mergedmainfeat(codegen): unwrap Flow nullable type (?T)
ohah/zntc#2381생성 · 병합mergedmainfeat(codegen): support Array<T> / ReadonlyArray<T>
ohah/zntc#2380생성 · 병합mergedmaintest(config): codegenTransform schema drift 허용
ohah/zntc#2379생성 · 병합mergedmainfeat(codegen): recognize WithDefault<T, D> wrapper
ohah/zntc#2378생성 · 병합mergedmainfeat(napi): expose codegenTransform option
ohah/zntc#2377생성 · 병합mergedmainfeat(codegen): integrate codegen plugin — pipeline + RN preset wiring
ohah/zntc#2376생성 · 병합mergedmainfeat(codegen): add validator + ZTS error codes (1400-1499)
ohah/zntc#2374생성 · 병합mergedmainfeat(codegen): add view_config_emitter — ComponentShape → JS string
ohah/zntc#2373생성 · 병합mergedmainfix(test): dynamic free port allocation for dev server tests
ohah/zntc#2372생성 · 병합mergedmainfeat(codegen): add schema_builder for ComponentShape construction
ohah/zntc#2371생성 · 병합mergedmainrefactor(compat): extract hasAny helper for packed-struct bitmaps
ohah/zntc#2370생성 · 병합mergedmainfix(napi)!: strict throw on invalid 'jsx' option (was silent classic fallback)
ohah/zntc#2369생성 · 병합mergedmainfeat(parser): preserve Flow object body members
ohah/zntc#2368생성 · 병합mergedmainrefactor(cli): consolidate manual tsconfig merge into tsconfig_merge + wire --tsconfig-raw
ohah/zntc#2366생성 · 병합mergedmainrefactor(config): extract autodiscoverFromEntry helper
ohah/zntc#2365생성 · 병합mergedmainfeat(parser): preserve TS property signature key/type/flags
ohah/zntc#2364생성 · 병합mergedmainfix(cli): drop tsconfig vocab from --jsx CLI arg parser
ohah/zntc#2363생성 · 병합mergedmainrefactor(tsconfig): wire NAPI transpile autodiscovery + drop JS-side helper
ohah/zntc#2362생성 · 병합mergedmainrefactor(shared): extract isPlainObject helper from 3 inline guards
ohah/zntc#2361생성 · 병합mergedmainfeat(codegen): add type alias / interface indexer
ohah/zntc#2360생성 · 병합mergedmainrefactor(config): extract applyJsonBool helper for tsconfig boolean fields
ohah/zntc#2359생성closedmainrefactor(shared): extract isPlainObject helper from 3 inline guards
ohah/zntc#2357생성 · 병합mergedmainfeat(codegen): add schema data structures
ohah/zntc#2356생성 · 병합mergedmainfeat(tsconfig): merge raw + jsx in Zig (esbuild-style single source of truth)
ohah/zntc#2350생성 · 병합mergedmainfeat(cli): support --tsconfig-raw inline compiler options
ohah/zntc#2349생성 · 병합mergedmainfeat(cli): expose allow-overwrite safely
ohah/zntc#2347생성 · 병합mergedmainfeat(cli): support --line-limit output wrapping
ohah/zntc#2346생성 · 병합mergedmainfeat(cli): support pure call dce hints
ohah/zntc#2345생성 · 병합mergedmainfeat(cli): --drop-labels 옵션 지원
ohah/zntc#2344생성 · 병합mergedmainfeat(cli): support --packages=external
ohah/zntc#2328생성 · 병합mergedmaindocs: 현재 CLI/config 기준 문서 정합성 보정
ohah/zntc#2327생성 · 병합mergedmaindocs(plugin): watch lifecycle 문서 보강
ohah/zntc#2326생성 · 병합mergedmainfeat(plugin): watch lifecycle hook 연결
ohah/zntc#2325생성 · 병합mergedmainrefactor(tests): add runFixture helper to dedupe fixture+runZts boilerplate
ohah/zntc#2324생성 · 병합mergedmainrefactor(transformer): extract await/yield expression builders
ohah/zntc#2323생성 · 병합mergedmainfix(transformer): downlevel for-await-of for es2017
ohah/zntc#2322생성 · 병합mergedmainrefactor(parser): unify is_ts + reject_ts_syntax_in_js into SourceMode enum
ohah/zntc#2321생성 · 병합mergedmainrefactor(bundler): JS 계열 source type을 ModuleType으로 통일
warpdotdev/warp#9713생성closedmasterfix(ime): preserve Korean IME last syllable across commits (#8919)