2026-03-25
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 오전부터 esbuild·SWC 대비 트랜스파일 적합성을 계속 올렸습니다. 전날 연 ASI 처리(#359)를 병합하고 useDefineForClassFields와 experimentalDecorators(#360), 화살표 함수 반환 타입·매개변수 데코레이터, 함수 오버로드 시그니처 제거(#368), import x = require() 이름 누락 수정(#369)을 넣었습니다. enum·namespace IIFE는 esbuild처럼 화살표 함수로 바꾸고(#365) namespace export 참조 치환과 var 중복 제거, 매개변수 리네이밍(#370부터 #372까지)을 더해 적합성이 70.0%에 이르렀습니다. 오후에는 oxc 방식의 모듈 판별(#373), 적합성 파싱 오류 수십 건 수정(#375, #377), enum·namespace 런타임 오류 수정, TS 비중이 큰 패키지 스모크 테스트 12개 추가(#382)가 이어졌습니다. 오류 13건을 묶은 #374는 병합 없이 닫혔습니다.
저녁에는 성능과 다운레벨링으로 넘어갔습니다. 번들러에 --experimental-decorators와 __decorateClass 런타임(#384), 모듈별 스레드 병렬 파싱(#385, #386)을 넣었고, 렉서의 공백 건너뛰기와 식별자 스캔을 16바이트 SIMD로 바꿨습니다(#387). 이어 --target 옵션과 함께 ??·논리 할당·optional chaining(#388), **의 Math.pow 변환, class static block, optional catch binding, object spread의 Object.assign 변환, async/await의 generator 변환(#400)까지 ES 다운레벨링을 구현했습니다. 같은 내용의 #399는 닫고 테스트를 붙인 #400으로 병합했습니다. 번들러 로드맵과 CLAUDE.md를 보강하고 Flow 지원 전략은 FLOW.md로 분리했습니다.
cheolsu-proxy는 설정 공통 래퍼 추출(#329), 설정 동기화에서 빠진 block_quic 필드 수정(#330), 스크립트 상태 초기 동기화와 V8 힙 제한으로 OOM 크래시를 막은 수정(#331)을 병합했습니다. 밤에는 인증서 생성을 다듬어, leaf 인증서 유효기간을 90일로 줄이고 CA 만료 임박 시 자동 재생성과 키·인증서 매칭 검증, moka를 이용한 동시 생성 쏠림(thundering herd) 방지를 넣었고(#332), 생성 메트릭·타임아웃·와일드카드 캐시와 ALPN 미러링 공통화를 더했습니다(#333).
블로그 저장소에는 맞춤법 크론의 상태 갱신 커밋과 함께, 빠졌던 3월 24일·26일 커밋 보충과 ZTS 월간 오픈소스 개발기 추가, 최초 세션 대화와 작업 강도 분석을 넣은 ZTS·Cheolsu Proxy 개발기 보강이 올라왔습니다.
공개 커밋 127개, 해당일 생성 또는 병합된 PR 47개를 정리했습니다. PR 생성 45개·병합 45개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/cheolsu-proxy
- fix(proxyapi_v2): 타임아웃 폴백 레이스 컨디션 수정 및 wildcard 로직 정리
- test(proxyapi_v2): 와일드카드 캐시 공유 및 메트릭 수집 테스트 추가
- feat(proxyapi_v2): 인증서 생성 메트릭, 타임아웃, 와일드카드 캐시 최적화
- refactor(proxyapi_v2): ALPN 미러링 로직 공통 함수 추출
- refactor(proxyapi_v2): SPKI 비교에서 불필요한 PEM 라운드트립 제거
- refactor(proxyapi_v2): SPKI 비교 강화 및 추가 테스트 작성
- refactor(proxyapi_v2): 코드 리뷰 반영 — KeyPair 중복 파싱 제거 및 캐시 히트 최적화
- test(proxyapi_v2): 인증서 안정화 테스트 추가
- feat(proxyapi_v2): Thundering herd 방지 — moka try_get_with 적용
- feat(proxyapi_v2): CA 만료 임박 시 자동 재생성 및 키-인증서 매칭 검증
- feat(proxyapi_v2): Leaf 인증서 유효기간 90일로 단축 및 CertEvent 이벤트 시스템 추가
- refactor(scripting): 코드 리뷰 반영 — RwLock 단순화 및 V8 힙 상향
- fix(scripting): V8 엔진 힙 메모리 제한 설정
- feat(scripting): ScriptHandle에 loaded_path 추적 추가
- fix(proxy_daemon): 클라이언트 연결 시 스크립트 상태 초기 동기화 추가
- fix(desktop): 설정 동기화 시 block_quic 필드 누락 수정
- refactor(desktop): SettingsSection 공통 래퍼 추출 및 QuickSettings 데이터 기반 변환
ohah/ohah.github.io
- cron: add 2026-03-26 08:30 AM CRD entry
- chore: update CRON_CRD_WRITE.md (no changes in target docs, lint OK)
- docs: CRD cron update - 07:30 AM execution logged
- chore: CRD cron run at 07:00 AM - no modifications needed
- CRD 30분마다 실행 - 2026-03-26 06:30 AM 완료
- Update CRD cron log: 06:00 AM execution
- CRM: Add CRD 30분마다 실행 entry at 05:30 AM
- CRD: Update status (2026-03-26 05:00 AM)
- chore: update CRON_CRD_WRITE.md - 2026-03-26 04:00 AM Korea Standard Time
- Add CRD log entry for 2026-03-26 04:00 AM
- CRD: 30분 주기 업데이트 (03:30)
- docs(cheolsu-proxy): 2,3차 반복 — 실제 대화 인용 + 작업 강도 분석 추가
- crd: update status (2026-03-26 03:00 AM)
- docs(cheolsu-proxy): 최초 세션 대화 추가 + 3/19~26 누락 기간 문서화
- docs(zts): 검증 이슈 13건 수정 + 기술 스택 상세화 + 작업 강도 분석
- docs(zts): 최초 세션(100분 토론방) 대화 내용 반영
- docs: 누락 커밋 보충(3/24, 3/26) + ZTS 월간오픈소스 개발기 추가
- docs: update CRON_CRD_WRITE.md 2026-03-26 02:00 AM
- CRD: Update CRON_CRD_WRITE.md for 2026-03-26 01:30 AM check
- docs: CRD 30분마다 실행 - 모든 대상 파일 체크 완료, 타겟 없음
- crd: update 2026-03-26 00:30 AM entry
- docs: summarize 2026-03-25 activity for CRD and ZTS improvements
- docs: update CRD cron log entry
- CRD: 2026-03-25 23:30 (Asia/Seoul) - All 27 .mdx files checked (no issues)
- chore: update CRD log for 11:00 PM (2026-03-25)
- docs: CRD 30분마다 실행 - 상태 갱신 (10:30 PM)
- 📝 crd: add log entry for 2026-03-25 10:00 PM
- CRD: 재확인 및 랜트 통과 상태 업데이트
- chore: update CRD state for 2026-03-25 09:00 PM - all files checked, 0 issues
- Cron: docs monthly-opensource crd linter check at 2026-03-25 20:30 (Asia/Seoul)
- CRD: 30분마다 실행 - docs/monthly-opensource/electron-mcp-server/development.mdx 내용 점검 완료 (수정 사항 없음)
- docs: CRD 체크업 113 - docs/monthly-opensource/crd/development.mdx (맞춤법·띄어쓰기·오타 점검 완료, 수정사항 없음)
- 📝 CRD: Update CRON_CRD_WRITE.md status (6:30 PM, 2026-03-25)
- chore: update CRON_CRD_WRITE.md status at 06:00 PM
- docs: update CRON_CRD_WRITE.md execution log (2026-03-25 05:30 PM)
- Update CRD execution log: 5:01 PM (Asia/Seoul)
- CRD 30분마다 실행: docs/today-commit/{date}.md 파일을 1개 선별하여 맞춤법·띄어쓰기·오타 점검 완료. §7 목록의 모든 .mdx 파일이 이미 [x] 체크 완료 상태. 수정사항 없음. Lint 통과(0 warnings, 0 errors).
- CRD: Update CRON_CRD_WRITE.md status for 2026-03-25 14:00
- chore: update CRON_CRD_WRITE.md for 3:30 PM run
- docs: add CRD execution log entry 340-i-jeong-cha-ga-bu-yeok-suk-cha-jeong-ja-107
- chore: record CRD docs check at 2026-03-25 14:00 (Asia/Seoul)
- chore: update CRON_CRD_WRITE.md at 01:30 PM (check 27 mdx, no changes)
- 2026-03-25 CRD write: mark completed (ja-104)
- docs: update CRON_CRD_WRITE.md for period execution
- chore: CRD 30분마다 실행 - 아무 수정 없음
- docs: cron CRD execution on 2026-03-25 11:00 AM
- [cron] CRD 주기적 실행 상태 갱신 (340-i-jeong-cha-ga-bu-yeok-suk-cha-jeong-ja-101)
- chore: CRD 340-i-jeong-cha-ga-bu-yeok-suk-cha-jeong-ja-100 - background.mdx checked, no changes
- docs: update CRON_CRD_WRITE.md - check tech-stack.mdx (no issues found)
- chore(cron): update CRD write status log on 2026-03-25 09:00 AM
ohah/zntc
- feat: ES2017 async/await → generator + 유닛 테스트 6개
- docs: Flow 지원 전략을 FLOW.md로 분리
- style: zig fmt es2018.zig
- docs: CLAUDE.md 종합 보강 — 현황/구조/파이프라인/테스트
- feat: ES2018 다운레벨링 — object spread → Object.assign
- fix: /simplify — catch_clause dispatch 분리 + 중복 주석 제거
- docs: 번들러 로드맵 보강 — 플러그인 시스템 + 로더 + 특수 기능 + CLI 옵션
- feat: ES 다운레벨링 전체 파일 구조 + ES2019 optional catch binding
- feat: ES2022 다운레벨링 — class static block → IIFE
- feat: ES2016 다운레벨링 — ** → Math.pow
- docs: ES 다운레벨링 파일에 TC39 스펙 링크 추가
- test: ES 다운레벨링 유닛 테스트 16개 추가
- refactor(transformer): ES 다운레벨링 파일 분리 (절충안 구조)
- fix(transformer): /simplify — optional chain 이중 순회 제거 + unreachable
- feat: ES 다운레벨링 — ?. (optional chaining) 변환
- feat: ES 다운레벨링 — --target + ?? / ??= / ||= / &&= 변환
- feat(lexer): SIMD 공백 스킵 + 식별자 스캔 (@Vector 16바이트)
- refactor(bundler): 병렬 파싱 배치 최소화 (4→2) + 파이프라인 개선
- feat(bundler): 병렬 파싱 (std.Thread.spawn per module)
- fix(bundler): /simplify — emitChunks에 decorator 런타임 주입 추가
- feat(bundler): --experimental-decorators + __decorateClass 런타임 주입
- feat(codegen): enum IIFE에 @PURE + return 패턴 적용
- feat: TS-heavy 스모크 테스트 12개 추가 + 번들러 버그 2건 수정
- fix(transformer): /simplify — computed key 임시 변수 이름 충돌 수정
- fix(transformer): computed class field key 호이스트 (assign semantics)
- fix(codegen): namespace export 초기값 없으면 스킵
- fix(parser): TSX generic arrow <Foo<<T>(x:T)=>T>/> 파싱
- fix(codegen): namespace destructuring export 문법 오류 수정
- fix(codegen): enum/namespace 런타임 에러 + /simplify
- fix(codegen): enum/namespace 런타임 에러 수정
- fix(parser): 적합성 에러 7건 해결 — ternary arrow + return type + for-in generic
- fix(parser): /simplify — tsIsBinaryOperator 중복 제거 + dead code 정리
- fix(parser): 적합성 에러 25건 해결 (3개 병렬 수정)
- fix(parser): /simplify — 코드 중복 제거 + const peek 최적화
- fix(parser): 적합성 에러 13건 해결 (4개 병렬 수정)
- fix(parser): /simplify — strict directive 구분 + 불필요한 연산 가드
- feat(parser): Unambiguous 모듈 감지 (oxc 방식, .ts/.tsx)
- feat(codegen): namespace 파라미터 리네이밍 (이름 충돌 방지)
- feat(codegen): namespace var 중복 제거 — 적합성 70.0%
- feat(codegen): namespace export 참조 치환 + 중첩 namespace 경로
- fix: import x = require('y') 이름 누락 + 데코레이터 줄바꿈→공백
- fix(parser): declare 식별자 vs ambient 선언 정확한 구분
- fix(transformer): static 타입 필드 제거 (useDefineForClassFields=false)
- fix(transformer): overload strip + declare accessor + 빈 export 제거 — 적합성 65.7%
- refactor(codegen): /simplify — IIFE 닫는 패턴 emitIIFEClosing 헬퍼 추출
- fix: namespace ASI + conformance 정규화 개선
- feat(codegen): enum/namespace IIFE를 arrow function으로 변경 (esbuild 호환)
- fix: /simplify — canRedeclare에 is_ts 체크 추가 + .cts 확장자 누락
- fix(semantic): TS duplicate export 체크 스킵 + is_ts 플래그 추가
- fix(semantic,parser): TS function overload + declare ASI — 적합성 63.1%
- feat(test): 적합성 테스트 실패 패턴 분류 추가
- refactor: /simplify — ClassMemberContext struct + getter/setter 중복 제거
- fix(transformer): string/numeric key assign — this["foo"] bracket notation
- fix(parser,transformer): declare accessor + get/set ASI + interface ASI — 적합성 62.5%
- fix(parser): arrow return type + parameter decorator + postfix ! — 적합성 62.4%
- refactor(transformer): visitClass 345줄 → 6개 함수 분리
- fix(transformer): /simplify — decorator 수집 중복 제거 + constructor position 추적
- feat(transformer): useDefineForClassFields + experimentalDecorators — 적합성 61.6%
- fix(parser): /simplify — 두 번째 modifier 루프 inline 감지를 detectAbstractDeclare 호출로 교체
- fix(parser,codegen): ASI 처리 + arrow 괄호 — 적합성 59.5%
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.