2026-03-20
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 오전에 break·continue 레이블 검증(#144)에 이어 정규식 검증 모듈을 새로 만들었습니다. 플래그 검사와 패턴 파서, 이름 있는 그룹과 역참조 검증(#145부터 #148까지)을 넣은 뒤, 정규식 AST와 유니코드 속성 검사, v 플래그 집합 연산, ES2025 중복 그룹 이름 허용까지 네 단계 PR(#158부터 #161까지)로 확장했습니다. 렉서에서는 숫자 구분자·hex 이스케이프·유니코드 식별자·legacy octal·bigint 리터럴 검증을 강화했고, 파서는 식을 패턴으로 다시 해석하는 cover grammar로 검증 경로를 옮기고(#155부터 #157까지, #173) Context를 u32에서 u8로 줄였습니다(#171). 같은 제목의 #170은 기능 브랜치에 병합된 것입니다. #field in obj 검사(#181), 클래스 식 데코레이터(#183), 식 뒤 /를 나눗셈으로 읽도록 한 토큰화 수정(#185)도 이 무렵 들어갔습니다.
저녁에는 남은 Test262 실패를 80개, 50개씩 고친 뒤(#189, #190) 23,384개 전부를 통과시켰고(#191), 오류 메시지를 oxc·swc 수준으로 다듬고(#192) CI에서 Test262 실패를 실패로 처리하게 했습니다(#194). 번들러 설계 문서와 테스트 전략도 함께 추가됐습니다. 밤에는 parser.zig를 oxc 구조의 모듈로 나누고(#195) 파싱·의미 분석 오류를 Diagnostic 하나로 합쳤으며(#196), 트리 셰이킹을 위한 심볼 참조 추적(#198)과 AST 문자열 테이블(#199)을 넣고 문서를 Phase 1부터 5까지 완료 상태로 갱신했습니다. 마지막으로 transpileFile에 Arena allocator를 도입한 #202가 main에 병합됐고, @panic("OOM")을 오류 전파로 바꾸는 #203, #204와 OOM 스트레스 테스트 #205는 이어지는 기능 브랜치에 병합돼 이날 main 커밋에는 들어오지 않았습니다.
hwpjs는 전날 연 CLI의 HWPX 자동 감지(#220)를 clippy 경고 전체 정리와 함께 병합하고, HWPX 데모 페이지와 데모 컴포넌트의 자동 감지(#221)를 추가했습니다. 오후에는 WASM 브라우저 빌드에 빠진 함수 export를 넣고(#222) 새 함수가 들어간 WASM 바이너리로 교체했으며(#224), 문서 빌드가 로컬 WASM 빌드물을 직접 참조하게 하려던 #223은 닫혔습니다.
cheolsu-proxy는 로드맵 문서를 내부 docs/로 옮기고(#302), next-themes의 InvalidCharacterError로 화면이 비던 문제(#303)와 트래픽 분석 응답 시간이 나노초 값을 밀리초로 표시하던 문제(#304)를 고쳤습니다. react-native-mcp에는 Snapshot과 Refs 패턴을 쓰는 rn-mcp CLI PR #125가 열렸습니다. 블로그 저장소에는 맞춤법 크론의 상태 갱신 커밋과 3월 20일 오늘의 커밋 요약 갱신이 올라왔습니다.
공개 커밋 142개, 해당일 생성 또는 병합된 PR 71개를 정리했습니다. PR 생성 70개·병합 68개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/cheolsu-proxy
- fix(desktop): 트래픽 분석 duration이 나노초를 밀리초로 잘못 표시하는 버그 수정
- fix(desktop): next-themes classList.add() InvalidCharacterError 수정
- docs: 로드맵 문서를 rspress에서 내부 문서(docs/)로 이동
ohah/hwpjs
- fix: WASM 바이너리 업데이트 (새 함수 포함)
- fix: WASM 브라우저 빌드에 누락된 함수 export 추가
- feat: HWPX 데모 페이지 추가 + HwpDemo HWPX 자동 감지
- fix: clippy --all-targets --all-features -D warnings 전체 수정
- fix: clippy -D warnings 미사용 변수/import 수정
- style: oxfmt TS 포맷 적용
- style: cargo fmt 적용
- feat: CLI에 HWPX 자동 감지 지원 추가
ohah/ohah.github.io
- CRD: docs/index.mdx spell check verification (no changes needed)
- CRD: 8:00 AM status confirmation - all .mdx files already checked
- docs(CRON_CRD_WRITE.md): 339f-g-g-g - 2026-03-21 7:00 AM MDX 맞춤법 검사 재확인
- CRD: 전체 mdx 파일 검사 완료 상태 확인 (339f-g-g 2026-03-21 5:30 AM)
- crd-write: 2026-03-21 5:00 AM docs/index.mdx 검사 완료
- 2026-03-21 03:06 CRD 단독 실행: docs/index.mdx 맞춤법 검사 완료 (변경 없음)
- CRD: docs/index.mdx 재확인 완료 - 맞춤법 교정 필요 사항 없음
- CRD: daily check - all 26 mdx files already checked
- docs: Update summary for 2026-03-20 commit activity
- CRD(339c): 2026-03-20 23:30 PM - 전체 대상 26개 mdx 파일 재확인. 추가 검사·수정할 파일 없음. Lint 통과, CRON_CRD_WRITE.md 상태만 갱신하여 커밋。
- docs: CRD status update - all 26 mdx files checked complete ([x])
- cron: CRD completed - all 26 mdx files checked (no changes needed)
- CRD: Spell check iteration completed - all files already checked
- CRD: 2026-03-20 7:00 PM — all 26 mdx files already checked [x]
- docs: CRD - docs/index.mdx 검사 완료, 상태 갱신
- CRD: Update check status for all mdx files (2026-03-20 18:00 KST)
- CRD: 모든 .mdx 파일 맞춤법 검사 완료 상태 확인 (2026-03-20 4:30 PM)
- docs(CRON_CRD_WRITE.md): update state log for 2026-03-20 4:00 PM CRD check
- docs(CRON_CRD_WRITE.md): update state log for 2026-03-20 3:00 PM CRD check
- chore(cron): reconfirm all .mdx files checked ✓ (CRD_WRITE.md only)
- docs: CRD daily check update (2026-03-20 2:00 PM)
- CRD: 맞춤법 교정 재확인 (1:30 PM)
- CRD: 전체 대상 27개 파일 체크 상태 재확인 - 모든 .mdx 파일이 이미 [x] 체크 완료 상태, 추가 검사·수정 필요 없음
- Add checkpoint: 2026-03-20 10:30 AM CRD run - all files already checked, no corrections needed
- CRD: 전체 대상 파일 맞춤법 검사 완료 상태 재확인 (2026-03-20 10:00)
ohah/zntc
- feat(core): add Arena allocator to transpileFile
- docs: BACKLOG.md 정리 — 해결된 27개 항목 제거, 미해결만 유지
- Revert "docs: BACKLOG.md 전체 재정리 — 해결/미해결 분류"
- docs: BACKLOG.md 전체 재정리 — 해결/미해결 분류
- docs: Phase 1~5 전체 완료 상태 반영 + Test262 100% 기록
- docs: Phase 2 완료 상태 반영 + 추천 구현 순서 1번 완료 표시
- docs: update CLAUDE.md — 번들러 선행 인프라 완료 상태 기록
- fix: simplify review — getText safety, pending_nodes nesting, codegen getText
- feat: add Ast string_table + Transformer pending_nodes infra
- fix: simplify review — remove references array, fix conditional_expression bug
- feat(semantic): add symbol reference tracking for tree-shaking
- fix: annotate silent catch {} + unify @panic("OOM") messages
- refactor: extract checkRestParameterLast helper + fix delete message
- fix: simplify review — JSX 5-field encoding, legal helper, bool return
- fix: legal comment single-line detection + silent catch + @panic doc
- fix: JSX codegen bug + error message consistency + config dedup + semantic tests
- fix: simplify review — duplicate comment, double error, semantic context
- refactor: unify ParseError/SemanticError into Diagnostic + reserved word validation
- fix: zig fmt formatting in expression.zig
- refactor(parser): simplify review — remove dead wrappers, fix visibility
- refactor(parser): extract object.zig and binding.zig from expression.zig
- refactor(parser): split monolithic parser.zig into modules (oxc structure)
- fix(ci): enforce test262 failures and enable parser conformance
- fix: zig fmt formatting issues
- feat: test quality infrastructure + BACKLOG fixes
- docs: update CLAUDE.md - error messages done, Diagnostic unification TODO
- refactor(parser): extract test helpers for error message tests
- fix(parser): simplify review - bracket stack correctness + code cleanup
- feat(parser): improve error messages to oxc/swc quality level
- fix: /simplify - accessor codegen keyword + parse order
- feat(parser): fix remaining 34 Test262 failures (34 → 0, 100%)
- fix(parser): restore in_static_initializer in arrow body
- docs: bundler test strategy + validation roadmap + decisions D062-D063
- feat(parser): fix 50 Test262 failures (84 → 34)
- fix: /simplify codepoint bounds check + Metro docs update
- feat: fix 80 Test262 failures + bundler architecture docs
- fix(semantic): revert toOwnedSlice to dupe in resolvePrivateName
- fix(parser): miscellaneous expression validation fixes (re-applied)
- fix(parser): strengthen arrow function validation
- fix(parser): correctly tokenize
/as division after expression} - fix(parser): validate escaped keywords in class names
- fix(parser): /simplify - validate class keyword after decorator in expression
- fix(parser): improve decorator validation
- fix(semantic): /simplify - toOwnedSlice, OOM panic, codepoint bounds
- fix(semantic): resolve escape sequences in private name comparison
- feat(parser): support #field in obj private field presence check
- fix(parser): /simplify fixes - await order + new.target in static/field
- fix(parser): new.target in arrow + await in static initializer
- feat(parser): strengthen for-in/of LHS validation
- fix(lexer): reject invalid bigint literals and identifier-after-number
- refactor(parser): extract parseImportCallArgs to eliminate duplication
- fix(parser): reject import.UNKNOWN and allow
ininside import() - fix(lexer): reject invalid numeric literals per ECMAScript 12.8.3
- fix(parser): reject meta_property as assignment target
- docs: update CLAUDE.md with Context u8 split and cover grammar progress
- fix(parser): /simplify fixes for C2 cover grammar edge cases
- feat(parser): cover grammar edge case validation
- style(semantic): fix zig fmt formatting in checker.zig
- feat(parser): implement cover grammar AST node transformation
- fix(parser): /simplify review fixes for B3 context flags
- feat(parser): add context flags for static initializer and class heritage
- fix(parser): /simplify review fixes for Context u8 split
- refactor(parser): split Context from u32 to u8
- refactor(parser): move unused Context flags to Parser fields
- feat(codegen,transformer): add handlers for new assignment target tags
- feat(parser): add assignment target AST tags and setTag method
- refactor(parser): remove redundant getNode call in ?? mixing check
- docs: update CLAUDE.md semantic analysis progress
- fix(parser): detect ?? mixed with && when && is in right operand
- refactor(semantic): /simplify review fixes for duplicate params
- feat(semantic): duplicate parameter detection for functions and arrows
- fix(lexer/parser): reset has_legacy_octal flag + retroactive prologue check
- feat(lexer/parser): strict mode legacy octal detection
- refactor(semantic): /simplify review fixes for checker.zig
- feat(semantic): add checker.zig with class + object early error checks
- refactor(semantic): /simplify review fixes
- feat(semantic): expand visitor coverage for private name detection
- docs(regexp): clarify parse() flag error limitation in mod.zig
- fix(regexp): zig fmt formatting fix
- refactor(regexp): resolve remaining /simplify issues
- refactor(regexp): full module /simplify review fixes
- refactor(regexp): /simplify review fixes for PR 4
- feat(regexp): 2-pass pre-parse + ES2025 duplicate named groups (PR 4/4)
- refactor(regexp): /simplify review fixes for PR 3
- feat(regexp): v-flag set operations + nested classes (PR 3/4)
- refactor(regexp): /simplify review fixes for PR 2
- feat(regexp): unicode property validation + codepoint/range checks (PR 2/4)
- refactor(regexp): /simplify review fixes
- feat(regexp): add AST types and emit_ast activation (PR 1/4)
- refactor(parser): remove 6 dead validation functions after cover grammar migration
- feat(parser): switch call sites to cover grammar functions (PR 2/3)
- refactor(parser): simplify cover grammar after review
- feat(parser): add cover grammar functions for expression→pattern reinterpretation
- feat: parallel — unicode tables + tagged template + module-code (+126건)
- feat(lexer,parser): Unicode ID tables + tagged template escape handling
- feat(semantic,parser): duplicate private method + arguments in class field
- fix(lexer): validate unicode escape codepoint in identifier (ID_Continue)
- fix(lexer): validate hex escape length in string literals
- fix(lexer): reject numeric separator after leading zero (0_7n)
- feat(regexp): \k named back reference validation + forward ref check
- feat(regexp): named group name validation + modifier duplicate check
- fix(regexp): named group overflow error + back reference saturating arithmetic
- feat(regexp): pattern parser — full validation with comptime design
- feat(regexp): add regexp validator module + flags validation
- fix(semantic): static_block label boundary + /simplify review
- feat(semantic): label validation for break/continue
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.