2026-05-14

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

요약 (AI 작성)

zntc는 전날 열린 RN 런타임 회귀 수정 #3156을 병합했습니다. 비동기 다운레벨에서 지연 분기를 보존하고, 루프 클로저 호출의 this를 지키며, module.exports에 defineProperty를 쓰는 모듈을 CJS로 감지하고, RN 로그 전달을 Metro와 맞추고, RN codegen의 nullable 이벤트 핸들러 분류와 이벤트 속성 감싸기를 고친 내용입니다. Rozenite serializer 폴리필 지원(#3172)과 Rozenite·Metro 설정 문서, RN 런타임 지원 범위 문서(#3188, #3191), Metro resolver.platforms를 검증하는 extra.platforms(#3183)도 들어왔고, 콜드 빌드 성능 측정용 react-native-large 예제를 추가했습니다(#3160).

하루의 대부분은 TypeScript·Flow 파서 정합성 작업이었습니다. 문맥 키워드를 Flow 함수 타입·TS 매개변수 프로퍼티·타입 서술어 이름으로 받아들이고, 기본값이나 끝 쉼표가 있는 화살표 함수의 타입 판별, 인터페이스 getter/setter 시그니처, non-null 단언 대입 대상, 모든 숫자 리터럴 타입, 타입 없는 this 매개변수, get·set·async라는 이름의 메서드를 처리하게 했습니다. .d.ts와 declare global을 ambient로 다루고 .d.ts 변환 결과를 빈 출력으로 내며(#3176, #3182), TS 파일을 암묵적 strict 모듈로 취급하되 script 모드에서는 await를 식별자로 허용했습니다(#3180, #3186). 자동 type-only export 제거는 선언 병합과 최상위 declare 바인딩을 존중하게 됐습니다(#3173, #3177). 리터럴 왼쪽 피연산자에서 제네릭 인자 추측이 지수적으로 늘어나 멈추던 문제도 고쳤습니다(#3192, #3193).

이런 수정을 체계적으로 찾기 위해 TSC conformance 감사 스크립트를 추가하고(#3187), 판정 오라클이 TSC matrix baseline과 TS18xxx·TS17xxx 같은 구문 오류 코드, @strict:false 지시를 인식하도록 이어서 다듬었습니다. tsc 통합 테스트에서 실패를 조용히 건너뛰던 expectPass 경로도 없앴습니다(#3181). 그 밖에 linker는 namespace 멤버 초기화 감싸기를 dev 모드로 한정하고 export마다 반복하던 작업을 루프 밖으로 옮겼으며(#3163, #3169), resolver의 preserveSymlinks는 esbuild 방식의 식별과 새 resolveSymlinkSiblings 대체 경로로 나눴습니다(#3174).

블로그 저장소 ohah.github.io의 커밋 19개는 대부분 크론이 남긴 CRON_CRD_WRITE.md 점검 기록이고, zts 개발기 development-1.mdx 문구 수정과 요약 갱신이 섞여 있습니다.

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

커밋

ohah/ohah.github.io

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/zntc#3201생성 · 병합mergedmainchore(scripts): audit adds TS2369/TS2462 + Duplicate parameter keyword
ohah/zntc#3200생성 · 병합mergedmainfix(parser): accept TS bare this parameter without type annotation
ohah/zntc#3199생성 · 병합mergedmainchore(scripts): audit oracle adds OK_spec_strict outcome
ohah/zntc#3198생성 · 병합mergedmainchore(scripts): audit oracle adds TS2466/2523/2528 + TS17xxx syntax codes
ohah/zntc#3197생성 · 병합mergedmainchore(scripts): audit detects @strict:false directive as policy divergence
ohah/zntc#3196생성 · 병합mergedmainchore(scripts): audit oracle treats syntax-equivalent TS2xxx as reject
ohah/zntc#3195생성 · 병합mergedmainchore(scripts): audit oracle treats syntax-level TS18xxx as reject
ohah/zntc#3194생성 · 병합mergedmainchore(scripts): audit oracle picks up TSC matrix-baselines
ohah/zntc#3193생성 · 병합mergedmainrefactor(parser): isolate type-args speculation from expression-mode re-entry
ohah/zntc#3192생성 · 병합mergedmainfix(parser): bail generic-args speculation for literal LHS (parserRealSource2.ts HANG)
ohah/zntc#3191생성 · 병합mergedmaindocs: React Native 런타임 지원 범위 명확화
ohah/zntc#3190생성 · 병합mergedmainfix(parser): handle computed property key in stage3 decorator transform
ohah/zntc#3188생성 · 병합mergedmaindocs: Rozenite 및 Metro 설정 문서 추가
ohah/zntc#3187생성 · 병합mergedmainfeat(scripts): add TSC conformance audit (parser D-series infra)
ohah/zntc#3186생성 · 병합mergedmainfix(parser): allow await as identifier in script-mode TS files (D16.1)
ohah/zntc#3185생성 · 병합mergedmainfix(parser): allow object/class method named get/set/async + generic params
ohah/zntc#3184생성 · 병합mergedmaintest(tsc): flip readonlyInConstructorParameters to expectPass
ohah/zntc#3183생성 · 병합mergedmainfeat(rn): extra.platforms validation sugar for Metro resolver.platforms
ohah/zntc#3182생성 · 병합mergedmainfix(transpile): emit empty output for .d.ts declaration files (D12.5)
ohah/zntc#3181생성 · 병합mergedmainchore(integration): remove tsc expectPass silent-skip, migrate sloppy fixtures
ohah/zntc#3180생성 · 병합mergedmainfix(parser): treat TS files as implicit strict module (5-tool consensus)
ohah/zntc#3179생성 · 병합mergedmainfix(parser): accept all numeric kinds as TS literal type
ohah/zntc#3178생성 · 병합mergedmainfix(parser): accept contextual keyword as type predicate subject
ohah/zntc#3177생성 · 병합mergedmainfix(parser): auto type-only export elision for top-level declare bindings
ohah/zntc#3176생성 · 병합mergedmainfix(parser): treat .d.ts files and declare global blocks as ambient
ohah/zntc#3175생성 · 병합mergedmainfix(parser): detect typed arrow when params end with trailing comma
ohah/zntc#3174생성 · 병합mergedmainfix(resolver): split preserveSymlinks into esbuild identity + new resolveSymlinkSiblings fallback
ohah/zntc#3173생성 · 병합mergedmainfix(transpile): auto type-only export elision honors declaration merging
ohah/zntc#3172생성 · 병합mergedmainfix(rn-dev): support Rozenite serializer polyfills
ohah/zntc#3171생성 · 병합mergedmainrefactor(linker): share esm init expr body between writer & alloc paths
ohah/zntc#3170생성 · 병합mergedmainfix(parser): accept TS non-null assertion as assignment target
ohah/zntc#3169생성 · 병합mergedmainperf(linker): memoize source_init in registerNamespaceRewrites
ohah/zntc#3167생성 · 병합mergedmainrefactor(parser): promote canBeBindingName helper to Token.Kind, dedup 9 sites
ohah/zntc#3166생성 · 병합mergedmainrefactor(linker): dedupe allocEsmInitExpr into shared_namespace
ohah/zntc#3165생성 · 병합mergedmainfix(parser): accept contextual keywords as TS parameter property names
ohah/zntc#3164생성 · 병합mergedmainfix(parser): preserve type-only import AST so semantic export check sees bindings
ohah/zntc#3163생성 · 병합mergedmainperf(linker): hoist namespace member init wrap out of per-export loop
ohah/zntc#3162생성 · 병합mergedmainfix(parser): recognize TS interface getter/setter signatures
ohah/zntc#3161생성 · 병합mergedmainfix(parser): detect typed arrow when first param has default value
ohah/zntc#3160생성 · 병합mergedmainchore(examples): add react-native-large fixture for cold-build perf testing
ohah/zntc#3159생성 · 병합mergedmainfix(parser): accept contextual keywords as Flow function-type param names
ohah/zntc#3156병합mergedmainfix(transformer): zntc RN 런타임 회귀 수정