2026-04-26

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

요약 (AI 작성)

zntc는 ES5 다운레벨링에 쓰는 런타임 헬퍼를 가상 모듈로 바꿨습니다. __generator 같은 헬퍼를 모듈마다 인라인하지 않고 가상 모듈에서 import하도록 로더 인프라를 깔고(#1970), 미등록 헬퍼 매핑과 graph 파싱 단계의 transformer pre-pass, 코드 분할 모드의 헬퍼 import 분배, 소스맵 ID 정리를 묶어 병합했으며(#1971), 단일 번들 모드에서도 활성화했습니다(#1977). 흩어져 있던 transformer 옵션 사본 14개는 transform_options_base 하나로 모았습니다(#1974, #1975, #1979). ESM 출력의 external import를 require로 바꾸지 않고 보존하고(#1983), axios 번들링을 위해 try 블록 안 해석 실패 require를 optional로 처리하며 ESM external default import의 별칭을 냈습니다(#2026, #2028).

나머지는 다운레벨 의미 보존 수정이 대부분이었습니다. optional 메서드 호출의 this와 단락 평가, 논리·거듭제곱 대입의 멤버 참조, optional eval의 간접 호출(#1985~#1989), optional·static·논리 대입·괄호로 감싼 super와 파생 생성자 안 super 프로퍼티 receiver(#1991, #1992, #1994, #2001, #2029, #2032, #2035), 파생 생성자의 런타임 검사와 return 평가 순서, 여러 단계 super 체인의 new.target 보존(#2004, #2009, #2021, #2025), 클래스 메서드를 descriptor로 정의하기, 기본값 초기화의 TDZ, 배열 구조 분해의 iterable 읽기(#2005, #2007, #2008), tagged template의 잘못된 escape(#2014), Annex B sloppy 함수 호이스팅의 lexical 충돌(#2015)이 있었습니다. 번들러 쪽은 namespace 값 객체를 importer끼리 공유하고(#1990), 죽은 조건부 require를 건너뛰며(#2006), 래퍼 합성 심볼과 CJS require 래퍼 이름도 mangling하고(#2003, #2020), 플러그인 transform 결과를 캐시 키에 넣고 순수 클래스 식을 tree shaking합니다(#2041, #2043).

suji는 main에 직접 커밋 56개를 올렸습니다. Linux/Windows CI 빌드 회귀와 Rust SDK 테스트의 use-after-free를 고친 뒤, Electron 호환을 목표로 시스템 트레이, 알림, 애플리케이션 메뉴 커스터마이즈, 파일 시스템 API, 전역 단축키, 창 resize·focus·move 이벤트를 차례로 추가했습니다. 보안 쪽으로는 프런트엔드 경로 화이트리스트 기반 fs sandbox, 앱별 CEF cache 격리, IPC 유효성 검사와 CSP 기본 헤더, macOS App Sandbox entitlements 자동화, iframe sandbox와 origin allowlist를 넣었고, CEF locale 정리와 바이너리 strip으로 앱 크기를 약 38MB 줄였습니다. 마지막으로 WebContentsView에 해당하는 view 데이터 모델과 IPC, macOS NSView 합성, JS API와 E2E를 갖춘 Phase 17-A를 마무리했습니다.

bungae는 기본 번들러를 zts로 바꾸고 zts 서버 헬퍼를 정리했으며 서브모듈을 올렸습니다(#73). cheolsu-proxy에서는 자동 TLS passthrough를 보강하는 #339가 열렸습니다. ohah.github.io에는 2026년 4월 월간 타임라인과 4월 25·26일 오늘의 커밋 요약, ZTS 개발기 11편 맞춤법 수정이 올라왔습니다.

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

커밋

ohah/bungae

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/bungae#73생성 · 병합mergedmainchore: update zts submodule
ohah/cheolsu-proxy#339생성mergedmainHarden automatic TLS passthrough
ohah/zntc#2043생성 · 병합mergedmainfix(bundler): 순수 class expression 트리쉐이킹 적용
ohah/zntc#2042생성 · 병합mergedmainchore(simplify): /simplify followup — super wrapper-unwrap helper 공용화 (#2030/#2034)
ohah/zntc#2041생성 · 병합mergedmainfix(bundler): 플러그인 transform 결과를 캐시 키에 반영
ohah/zntc#2040생성 · 병합mergedmainfix(bundler): binding local name invariant 정리
ohah/zntc#2037생성 · 병합mergedmainfix(bundler): transformer 이후 분석 산출물 재생성
ohah/zntc#2036생성 · 병합mergedmainrefactor(semantic): record predeclare refs during predeclare
ohah/zntc#2035생성 · 병합mergedmainfix(transformer): optional chain 안의 wrapped super 도 super lowering (#2034)
ohah/zntc#2033생성 · 병합mergedmainfix(mangler): include generated temp bindings
ohah/zntc#2032생성 · 병합mergedmainfix(transformer): wrapped super 도 super lowering — (super)/(super as any) 등 (#2030)
ohah/zntc#2031생성closed기능 브랜치: fix/issue-2022-super-receiver-derived-ctorfix(transformer): wrapped super 도 super lowering — (super)/(super as any) 등 (#2030)
ohah/zntc#2029생성 · 병합mergedmainfix(transformer): derived ctor 안 super property receiver 를 _this 로 emit (#2022)
ohah/zntc#2028생성 · 병합mergedmainfix(bundler): ESM external default import 의 mangled local 에 alias var emit (axios fix)
ohah/zntc#2026생성 · 병합mergedmainfeat(bundler): try-block 안의 optional require/import 처리 (axios fix)
ohah/zntc#2025생성 · 병합mergedmainfix(transformer): capture NewTarget for multi-level super chains
ohah/zntc#2024생성 · 병합mergedmainfix(semantic): predeclare double declare-ref 회귀 해소
ohah/zntc#2021생성 · 병합mergedmainfix(transformer): preserve NewTarget for lowered super calls
ohah/zntc#2020생성 · 병합mergedmainfix(minify): CJS require 래퍼 이름도 망글링
ohah/zntc#2019생성 · 병합mergedmainfix(ci): integration test failures 일괄 해결
ohah/zntc#2018생성 · 병합mergedmainchore(simplify): /simplify followup — 최근 머지된 10 PR 정리
ohah/zntc#2017생성 · 병합mergedmain[codex] Minify guard helper name
ohah/zntc#2016생성 · 병합mergedmaintest(transformer): #2014 의 tagged template invalid escape 회귀 가드 복원
ohah/zntc#2015생성 · 병합mergedmainfix(semantic): Annex B B.3.3.1 sloppy function hoist 의 outer lexical 충돌 시 skip
ohah/zntc#2014생성 · 병합mergedmainfix(transformer): tagged template 의 invalid escape 를 cooked 에서 undefined 처리
ohah/zntc#2013생성 · 병합mergedmainfix(transformer): ES5 string-keyed method 의 defineProperty key 이중 quote
ohah/zntc#2012생성 · 병합mergedmaindocs(roadmap): 2026-04-26 실측 기반 비측정 정보 갱신
ohah/zntc#2011생성 · 병합mergedmainfix(test262): test262 repo root 입력 시 toolchain self-fixture 자동 제외
ohah/zntc#2009생성 · 병합mergedmainfix(transformer): derived constructor return 평가 순서 보존
ohah/zntc#2008생성 · 병합mergedmainfix: read array destructuring from iterables
ohah/zntc#2007생성 · 병합mergedmainfix: preserve default initializer TDZ
ohah/zntc#2006생성 · 병합mergedmainfix(bundler): skip dead conditional requires
ohah/zntc#2005생성 · 병합mergedmainfix: define class methods with descriptors
ohah/zntc#2004생성 · 병합mergedmainfix: preserve derived constructor runtime checks
ohah/zntc#2003생성 · 병합mergedmainfix(bundler): mangle wrapper synthetic symbols
ohah/zntc#2001생성 · 병합mergedmainfix(transformer): static super downlevel receiver
ohah/zntc#2000생성 · 병합mergedmainchore(transformer): /simplify followup — 최근 transformer fix PR 7개
ohah/zntc#1994생성 · 병합mergedmainfix(transformer): super property receiver downlevel
ohah/zntc#1993생성 · 병합mergedmainchore: format TypeScript test files
ohah/zntc#1992생성 · 병합mergedmainfix(transformer): super logical assignment receiver 보존
ohah/zntc#1991생성 · 병합mergedmainfix(transformer): optional super method call downlevel
ohah/zntc#1990생성 · 병합mergedmainfix: share namespace value objects across importers
ohah/zntc#1989생성 · 병합mergedmainfix(transformer): exponentiation assignment member reference 보존
ohah/zntc#1988생성 · 병합mergedmainfix(transformer): optional eval call indirect eval 보존
ohah/zntc#1987생성 · 병합mergedmainfix(transformer): logical assignment member reference 보존
ohah/zntc#1986생성 · 병합mergedmainfix(transformer): optional method call receiver 단락 평가 보존
ohah/zntc#1985생성 · 병합mergedmainfix(transformer): preserve this for optional method calls
ohah/zntc#1984생성 · 병합mergedmainfix(bundler): metafile JSON 의 control character escape (NUL byte)
ohah/zntc#1983생성 · 병합mergedmainfix(bundler): ESM external import을 require()로 변환하지 않고 보존 (#1962)
ohah/zntc#1982생성 · 병합mergedmainrefactor(transformer): BIT_DEFS field → HelperBit enum (#1961 후속)
ohah/zntc#1981생성 · 병합mergedmainrefactor(transformer): Transformer.initBorrow 팩토리 분리 (#1961 후속)
ohah/zntc#1980생성 · 병합mergedmainfeat(bundler): preserve-modules 의 chunk.rel_dir virtual ID sanitize (#1961 후속)
ohah/zntc#1979생성 · 병합mergedmainrefactor(bundler): EmitOptions transformer-mirror 를 base 에서 derived (#1961 후속)
ohah/zntc#1978생성 · 병합mergedmainrefactor: /simplify 사후 review fix (#1961 helper 후속)
ohah/zntc#1977생성 · 병합mergedmainfeat(bundler): single-bundle 모드 helper module 본격 활성 (#1961 PR 1h)
ohah/zntc#1976생성 · 병합mergedmainfix(emitter): runtime helper virtual module 의 used_export_names 강제 (#1961 PR 1g)
ohah/zntc#1975생성 · 병합mergedmainrefactor(bundler): emitter transformer.init 도 transform_options_base 통합 (#1961 PR 1f)
ohah/zntc#1974생성 · 병합mergedmainrefactor(graph): 14 transformer mirror options → transform_options_base 통합 (#1961 PR 1e)
ohah/zntc#1973생성 · 병합mergedmainperf(transformer): emit 단계 cloneForTransformer fast path (#1961 PR 1d)
ohah/zntc#1972생성 · 병합mergedmainrefactor(bundler): runtime_helper_modules → src/ root 으로 승격 (#1961 PR 1c)
ohah/zntc#1971생성 · 병합mergedmainfeat(bundler): runtime helper virtual module (#1961 PR 1b)
ohah/zntc#1970생성 · 병합mergedmainfeat(bundler): runtime helper virtual module loader 인프라 (#1961 PR 1a)
ohah/zntc#1968생성 · 병합mergedmainfix(transformer): ES5 destructuring 다운레벨 — 임시 var 중복 + async destructuring 잔존 (#1960)