2026-03-28

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

요약 (AI 작성)

zntc는 모듈 간 BFS로 트리 셰이킹을 다시 짜 svelte 번들을 22KB에서 3KB로, three를 790KB에서 21KB로 줄였습니다(#467). 이어 lodash-es에서 나던 SIGSEGV를 재귀 깊이 제한으로 막고, emitter의 span 매칭을 최상위 문장으로 한정했으며(#468), 순수 식별자를 extends하는 클래스와 static block·계산된 키 같은 클래스 본문의 부수 효과 분석(#470, #471), namespace barrel re-export와 ESM에서 CJS로 이어지는 re-export 체인의 default 해석, export * as ns DCE를 고쳤습니다. effect 패키지 대응으로 넣은 #478은 svelte 회귀를 일으켜 #480에서 되돌렸고, rolldown 방식의 심볼 기반 BFS 시드(#481)로 다시 해결했습니다.

오후에는 스모크 테스트를 미리 설치한 의존성으로 돌려 1분 45초에서 30초로 줄이고(#483), CJS의 module["exports"]에서 나던 패닉을 고쳤습니다(#486). 밤에는 generator의 try·catch·finally 안 yield(#487), bun·pnpm의 중첩 node_modules를 위한 symlink 실제 경로 해석(#490)을 넣고 스모크 비교 대상에 rspack을 추가했으며, for 루프 본문 세미콜론 누락(#492)과 템플릿 리터럴 안 식별자 리네임(#495)을 고친 뒤 oxc의 liveness BitSet 방식 mangler를 통합했습니다(#496). minify 옵션을 공백·식별자·구문으로 나누는 #497은 이날 PR이 열렸습니다.

agent-devtools는 --debug 모드가 API 요청만 보이도록 하고, Windows 지원과 GitHub Actions CI, npm·GitHub Releases·Claude 플러그인 배포 구조를 갖췄습니다. 오후에는 trace·profiler·annotate와 proxy·확장 프로그램·설정·인증·도메인 제한 기능을 한꺼번에 넣은 뒤 도메인 우회와 인증 저장소 경로 순회를 막는 보안 수정을 했고, FFmpeg 파이프 방식 비디오 녹화와 자체 PNG 인코더·디코더로 만든 diff-screenshot, 템플릿 3개, README 전면 재작성, agent-browser와 같은 CLI 명령 체계 정리가 이어졌습니다. 밤에는 실행 중인 Chrome·Electron을 찾는 --auto-connect, curl 한 줄 설치, Electron 연결 수정을 넣고 버전을 0.1.1로 올렸으며, Playwright 호환 Enter 키 이벤트와 CLI 출력 형식도 고쳤습니다.

블로그 저장소에는 맞춤법 크론의 상태 갱신 커밋만 올라왔습니다.

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

커밋

ohah/agent-devtools

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/zntc#497생성mergedmainfeat(cli): --minify-whitespace/identifiers/syntax 옵션 분리
ohah/zntc#496생성 · 병합mergedmainfeat(minifier): oxc liveness BitSet 기반 mangler 통합
ohah/zntc#495생성 · 병합mergedmainfix(minifier): template literal 식별자 rename + nested scope 충돌 방지
ohah/zntc#492생성 · 병합mergedmainfix(codegen): for 루프 body 내 변수 선언 세미콜론 누락 수정
ohah/zntc#490생성 · 병합mergedmainfix(resolver): symlink realpath 해석 — bun/pnpm 중첩 node_modules 수정
ohah/zntc#487생성 · 병합mergedmainfeat(transformer): generator try/catch/finally yield 지원
ohah/zntc#486생성 · 병합mergedmainfix(parser): module 키워드 판별 강화 — CJS module["exports"] panic 수정
ohah/zntc#485생성 · 병합mergedmainchore: bun.lock 업데이트 (smoke pre-install)
ohah/zntc#483생성 · 병합mergedmainperf(smoke): pre-install로 1m45s → 30s (75% 단축)
ohah/zntc#482생성 · 병합mergedmaintest(tree-shaking): symbol-based BFS 시드 회귀 테스트 3개
ohah/zntc#481생성 · 병합mergedmainfix(tree-shaking): rolldown 방식 symbol-based BFS 시드 — effect 패키지 해결
ohah/zntc#480생성 · 병합mergedmainfix(smoke): cookie named import + revert #478 (svelte 회귀)
ohah/zntc#478생성 · 병합mergedmainfix(tree-shaking): namespace import used_properties BFS 직접 시드 — effect 패키지
ohah/zntc#476생성 · 병합mergedmainfix(tree-shaking): export * as ns DCE + 회귀 테스트 6개
ohah/zntc#475생성 · 병합mergedmainrefactor: /simplify 리뷰 — 중복 제거 + 안전성 개선
ohah/zntc#474생성 · 병합mergedmainfix(codegen,tree-shaking): smoke FAIL 6개 수정 — unary DCE + else 누락 + re-export 전파
ohah/zntc#473생성 · 병합mergedmainfix(bundler): ESM→CJS re-export 체인 default export 해석 실패 수정
ohah/zntc#472생성 · 병합mergedmainfix(tree-shaking): namespace barrel re-export 소스 모듈 시드 누락 수정
ohah/zntc#471생성 · 병합mergedmainfix(tree-shaking): class body side-effect 분석 — static block, computed key, impure static field
ohah/zntc#470생성 · 병합mergedmainfix(tree-shaking): class extends 순수 식별자 side-effect-free 처리
ohah/zntc#468생성 · 병합mergedmainrefactor(bundler): emitter span 매칭 최적화 — O(stmts²) → top-level only
ohah/zntc#467생성 · 병합mergedmainfeat(bundler): 크로스-모듈 BFS tree-shaking — svelte 3KB, three 21KB, ❌ 0