2026-03-24
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 오전에 전날 연 브라우저 호환성 개선(#317)을 병합하고 번들러 스모크 테스트를 넓혔습니다. Node 서브패스 external과 cheerio 처리(#319), minimatch에서 드러난 JS 모드 구조 분해 기본값 파서 버그 4건(#320)을 고치면서 스모크 테스트를 101개, 브라우저 E2E를 40개로 늘렸고(#318, #321), barrel re-export 분류와 ESM external import를 esbuild 방식으로 처리하면서 zod v4 회귀를 바로잡았습니다(#322). 브라우저 스모크는 이 과정에서 107개 패키지까지 늘었습니다.
낮부터는 esbuild·SWC 출력과 비교하는 트랜스파일 적합성 테스트를 새로 넣고(#323) 9.5%에서 시작한 일치율을 끌어올렸습니다. TS 타입 파서 전면 보강(#324), 기본 쌍따옴표와 --quotes 옵션(#325), import type·export type 제거, 타입 단언과 JSX 제네릭 구분, 제네릭의 >·<< 토큰 분할, declare와 빈 namespace 제거, 키워드 공백·들여쓰기·빈 객체·JSX 서식 정리 같은 PR이 이어지며 50%를 넘었고(#345), 미사용 import 제거와 TSX 제네릭 화살표 함수 지원(#347)을 거쳐 밤에는 58.8%가 됐습니다(#358). ASI와 화살표 함수 괄호를 다루는 #359는 이날 PR이 열렸습니다.
그사이 Test262 범위를 넓혀 language 영역을 다시 100%로 돌리고(#352), built-ins/RegExp와 annexB의 블록 함수·HTML 주석 등을 처리해(#353, #354) 50,504개 전체 통과(#355)로 정리했습니다. CLI 옵션 전체도 문서화했습니다.
cheolsu-proxy는 밤에 upstream 인증서 검증 경고와 CA·leaf 인증서 유효기간 분리(#322), leaf 인증서 Serial Number 128비트 확대와 Subject DN 복제(#323), rand 0.10·rcgen 0.14·reqwest 0.13을 포함한 Rust 의존성 일괄 업데이트(#324), RcgenAuthority::from_pem 생성자 추가(#325)를 병합했습니다. 데스크톱 프런트엔드는 replay 대화상자 훅 분리와 설정 컴포넌트의 섹션별 분해 등 리팩터링(#326부터 #328까지)이 들어갔고, 설정 공통 래퍼를 뽑는 #329는 이날 PR이 열렸습니다. 블로그 저장소에는 맞춤법 크론의 상태 갱신 커밋만 올라왔습니다.
공개 커밋 136개, 해당일 생성 또는 병합된 PR 45개를 정리했습니다. PR 생성 44개·병합 43개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/cheolsu-proxy
- refactor(desktop): 설정 컴포넌트 섹션별 분해
- refactor(desktop): replay-dialog 훅 분리 및 린트 경고 정리
- refactor(desktop): 프론트엔드 코드 품질 개선
- refactor(proxyapi_v2): RcgenAuthority::from_pem 편의 생성자 추가로 보일러플레이트 제거
- fix: RcgenAuthority doc 예제 누락 인자 수정
- fix: rcgen 0.14 마이그레이션 누락 파일 수정 (tests, benches, examples, docs)
- chore: rand 0.10, rcgen 0.14, reqwest 0.13 마이그레이션
- chore: Rust 의존성 최신 버전으로 업데이트
- refactor(proxyapi_v2): Serial Number 생성 로직을 generate_serial_number 헬퍼로 추출
- feat(proxyapi_v2): 상류 인증서 Subject DN Country/State 복제 추가
- fix(proxyapi_v2): rcgen leaf 인증서 Serial Number를 128비트로 확대
- test(proxyapi_v2): 인증서 검증 및 TTL 관련 유닛 테스트 추가
- refactor(proxyapi_v2): 미사용 함수 및 import 정리
- feat(proxyapi_v2): 상류 인증서 검증 경고 기능 추가
- feat(proxyapi_v2): CA/Leaf 인증서 유효기간 분리 및 만료 자동 감지
ohah/ohah.github.io
- CRD: 2026-03-25 08:30 AM execution status
- docs(cron): update CRD status at 07:00 AM - all files already checked
- docs: update CRON_CRD_WRITE.md for 06:30 AM execution (340-i-jeong-cha-ga-bu-yeok-suk-cha-jeong-ja-96)
- docs: CRD cron 2026-03-25 06:00 AM - All files checked, no changes
- docs: update CRON daily check log - 2026-03-25 05:30 AM
- docs: update CRON_CRD_WRITE.md - 2026-03-25 05:00 AM run complete
- chore: CRD weekly run - no corrections needed
- 2026-03-25 03:32:34 Cron: CRD 주기적 실행 (03:31) - crd/development.mdx 점검 완료, 수정사항 없음
- chore: update CRON_CRD_WRITE.md - CRD schedule execution 2026-03-25 03:00 AM
- docs: update CRD schedule log - 2026-03-25 02:30
- ci: [blog-crd-write] CRD 주기적 실행 - 2026-03-25 02:00 AM (Asia/Seoul)
- chore: cron-crd-write - CRD 주기적 실행 상태 갱신 (340-i-jeong-cha-ga-bu-yeok-suk-cha-jeong-ja-84)
- docs: update CRD cron status (2026-03-25 01:00 AM)
- docs: CRD 주기적 맞춤법 점검 완료 - 2026-03-26 12:30
- feat: CRD write: hwpjs/development.mdx - fix informal tone at bottom
- docs(cron): update CRD execution record (11:00 PM)
- docs: update cron CRD write status - checked crd/development.mdx at 10:30 PM
- 2026-03-24 22:01 CRON: tech-stack.mdx checked, no changes needed
- chore(cron): update cron execution record #76
- 2026-03-24 CRD write
- docs: update CRON_CRD_WRITE.md - check docs/monthly-opensource/crd/development.mdx (8/30 PM)
- docs: update CRON_CRD_WRITE.md status after cron execution
- docs(crd-writer): check electron-mcp-server/development.mdx and update cron log
- docs: update CRD execution log for 07:00 PM check
- CRD: 6:30 PM check - hwpjs development.mdx reviewed, no changes needed
- chore: Update CRON execution log for 06:00 PM check
- CRON: Update status for 340-i-jeong-cha-ga-bu-yeok-suk-cha-jeong-ja-69 (05:30 PM)
- CRD 주기적 실행 (340-i-jeong-cha-ga-bu-yeok-suk-cha-jeong-ja-68): 모든 §7 파일 상태 확인, 수정사항 없음
- docs(cron): add CRD check entry for 04:30 PM (electron-mcp-server/tech-stack.mdx)
- chore: CRD write cron - docs/index.mdx check passed (340-...-66)
- docs: CRD execution log updated for 2026-03-24 15:30 (Asia/Seoul)
- docs: update CRON_CRD_WRITE.md for 03:00 PM CRD doc check
- docs: update CRON_CRD_WRITE.md - CRD doc check at 2:30 PM
- chore(cron): CRD 340-i-jeong-cha-ga-bu-yeok-suk-cha-jeong-ja-61 completed at 2026-03-24 02:00 PM
- doc(crond): update CRD cron execution log (340-i-jeong-cha-ga-bu-yeok-suk-cha-jeong-ja-60)
- feat(cron): CRD 주기적 실행 기록 - 2026-03-24 01:00 PM
- docs: CRD 주기적 실행 로그 2026-03-24 12:30 갱신
- docs: CRON status update - 11:30 AM run verified
- cron: blog-crd-write 11:30 AM status update
- cron: update CRON_CRD_WRITE status for 2026-03-24 11:00 AM run
- chore: update CRON_CRD_WRITE.md (2026-03-24 10:30 AM)
- CRD 주기적 실행: 2026-03-24 10:00 AM
- docs: update CRON_CRD_WRITE.md execution log (09:30 AM)
- docs: CRD cron - 2026-03-24 09:00 AM, all 27 MDX files checked complete
ohah/zntc
- fix(parser): /simplify — abstract/declare 감지 중복을 detectAbstractDeclare 헬퍼로 추출
- fix(transformer): abstract 멤버 + declare 필드 스트리핑 — 적합성 58.8%
- fix(parser): 적합성 파싱 에러 5건 추가 수정 — override param + index signature + 제네릭 타입
- fix(parser): 적합성 파싱 에러 7건 수정 — import attributes + named construct + 제네릭 메서드 + as assignment
- fix(parser,semantic): /simplify — modifier terminator 헬퍼 + canRedeclare var scope 통합
- feat(parser,semantic,regexp): Test262 100% — 50,504/50,504 전체 통과
- fix(scanner): /simplify — skip-to-EOL 중복 3곳을 skipLineAndRecordComment 헬퍼로 통합
- feat(parser,scanner,regexp): annexB/language 95.5% — block function + HTML 주석 + quantifiable assertion + for-in
- fix(regexp): built-ins/RegExp 100% — \b backspace + negated string property + \k identity escape
- fix(parser): /simplify — 중복 로직 추출 (checkDuplicateParamsCore + checkIdentifierKeywordUse)
- fix(parser,regexp): Test262 language 100% 복구 — regexp 검증 + yield 검증 + 중복 파라미터 + rest comma
- fix(parser): /simplify — 중복 제거, 불필요한 speculative parse 방지, 주석 정리
- feat(parser): TSX 제네릭 arrow + 중첩 제네릭 + 함수 타입 rest — 적합성 51.8%→55.9%
- fix(parser): /simplify — defer로 in_namespace/ctx 복원 (에러 복구 안전)
- feat(parser,transformer): 파서 증분 4건 + 미사용 import 제거 — 적합성 51.8%
- fix(parser): /simplify — Allman brace style 보호
- feat(parser,transformer): 50% 돌파 — 적합성 49.7%→50.9%
- fix(codegen): JSX text 공백만 텍스트 스킵
- feat(codegen): JSX text 공백 유지 — 적합성 49.5%→49.7%
- feat(transformer): as/satisfies 괄호 unwrap — 적합성 49.3%→49.5%
- refactor(parser): /simplify — extends newline 체크 유지 + 주석 개선
- feat(parser): 증분 수정 5건 — 적합성 48.2%→49.3%
- feat(parser,codegen): JSX 빈 expression container + 빈 객체 — 에러 181→172
- fix(parser): /simplify — 비표준 number! 제거
- feat(parser): 증분 수정 5건 — 적합성 47.3%→48.2%
- feat(codegen): 빈 객체 + 들여쓰기 정규화 — 적합성 41.2%→47.3%
- refactor(parser): /simplify — unique positive check + isAtOpeningAngleBracket
- feat(parser): << left angle 토큰 분할 — Array<<T>() => T> 지원
- feat(parser): 증분 수정 6건 — 적합성 40.5%→41.1%
- feat(parser): 증분 수정 4건 — definite assignment, type specifier, async arrow, this param
- feat(codegen): JSX createElement 포맷팅 개선 — 적합성 38.8%→40.5%
- fix(codegen,transformer): /simplify — do-while 공백 + namespace 태그 수정
- feat(codegen): 키워드 공백 + emitBracedList 구조 개선 — 적합성 33.4%→38.8%
- feat(parser,transformer): declare 스트리핑 + 빈 namespace 제거 — 적합성 33.4%
- refactor(parser): /simplify — 버그 수정 + dead code 제거
- feat(parser): 증분 수정 배치 — 적합성 28.4%→29.0%
- feat(parser): 제네릭 > 토큰 분할 — 적합성 27.2%→28.4%
- fix(codegen): emitBinary minify 시 키워드/+/- 연산자 공백 보존
- feat(codegen): 포맷팅 개선 — 적합성 22.0%→27.2%
- refactor(parser): /simplify — ts_type_assertion 태그 + 확장자 헬퍼 + e2eFull 통합
- feat(parser): TS type assertion + JSX/제네릭 분리 — 적합성 22.0%
- feat(parser): Phase 3 개선 — 적합성 21.1%→21.8%
- refactor(codegen,parser): /simplify — 성능 개선 + 버그 수정
- feat(parser): import type / export type 완전 제거 — 적합성 19.4%→20.9%
- docs: --quotes 옵션 문서 추가
- fix(codegen): writeStringLiteral UTF-8 멀티바이트 ascii_only 수정
- style: oxfmt 적용
- feat(codegen): 기본 따옴표 쌍따옴표로 변경 + --quotes 옵션 추가
- docs: CLAUDE.md 파서 적합성 보강 기록 업데이트
- refactor(parser): /simplify — 중복 제거 + dead code 정리
- style: oxfmt 적용
- style: zig fmt 적용
- feat(parser): 제네릭 arrow, 클래스 optional, import type 등 — 에러 332→242
- feat(parser): TS 타입 파서 전면 보강 — 적합성 14.2%→19.4%
- feat(parser): TS 타입 파서 전면 보강 — 적합성 9.5%→14.2%
- feat(test): esbuild+SWC 트랜스파일 적합성 테스트 추가
- fix(e2e): charset=utf-8 추가 + remeda 제외
- docs: ISSUES.md 정확하게 업데이트
- refactor(bundler): /simplify — 부정확한 주석 수정 + 빈 분기 정리
- feat(test): 브라우저 스모크 88→107개 (+19 패키지)
- fix(bundler): ESM external을 require() preamble로 처리 (esbuild 호환)
- fix(bundler): ESM external import를 번들 최상단에 출력 (esbuild 방식)
- fix(bundler): namespace barrel re-export regression 수정 (zod v4)
- docs: zx/zod 미해결 이슈 기록 + zx 스모크 다시 제외
- fix(test): browser-smoke 중복 제거 + 7개 추가 (88개)
- feat(test): 브라우저 스모크 40→67개 + zx 스모크 활성화 + sideEffects glob 완료 표시
- refactor(bundler): /simplify 리뷰 — 중복 enum 제거, 빈 분기 정리, HashMap 최적화
- fix(bundler): barrel re-export 정확한 분류 + ESM external import 유지
- docs: CLAUDE.md에 ZTS CLI 옵션 전체 문서화
- feat(bundler): 스모크 61→101개 + 브라우저 E2E 40개 + 글로벌 예약 확장
- fix(parser): JS 모드 destructuring default 파서 버그 4개 수정
- docs: ISSUES.md — minimatch 원인 정확히 기록 (JS 모드 destructuring default 파서 버그)
- docs: ISSUES.md 업데이트 — PR #317, #319 해결 표시
- fix(bundler): Node 서브패스 external + __copyProps var→let + cheerio/스모크 확장
- feat(smoke): 스모크 테스트 47→59개 + regex 검증을 경고로 격하
- refactor: /simplify 리뷰 반영 (#317)
- feat(bundler): 브라우저 호환성 3가지 개선
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.