2026-04-23
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 Expo Router에 필요한 require.context를 단계별로 구현했습니다. AST에서 호출을 찾아 리터럴 인자를 평가하고(#1770), 정규식 매칭은 호스트 런타임에 맡기는 플러그인 hook과 그래프 처리(#1772), 이를 JS 플러그인 onResolveContext로 여는 NAPI 브리지(#1773), process.env.X 인자를 define 표로 평가하는 처리(#1774)를 거쳐, Metro의 sync 모드를 따라 webpackContext IIFE로 출력합니다(#1775). __esm 래핑 모듈에서도 이 IIFE가 나오도록 import record를 넘기는 수정(#1777)이 뒤따랐고, 매칭 결과를 그래프 의존성으로 넣는 다음 단계 #1778은 닫혔습니다. TS 객체 타입 리터럴의 계산된 프로퍼티 키를 index signature와 구분하도록 TS 공식 파서 로직을 옮겼고(#1768), 식별자가 아닌 JSX 속성 이름은 문자열 키로 낮춥니다(#1776).
번들러 내부에서는 ModuleGraph의 모듈 저장소 접근을 단계 태그가 붙은 accessor로 감싸고 []Module 슬라이스 API를 없앤 뒤, 저장소를 std.SegmentedList로 바꿔 worker 경합에서도 주소가 안정되게 했습니다(#1780~#1784). 이렇게 정한 ModuleGraph 불변식은 문서로 남겼습니다(#1785).
bungae는 onResolveContext 플러그인과 Expo Router define 항목으로 require.context를 지원하고(#70), Expo 예제를 bungae:start:expo로 실행하게 설정하면서 dev 서버 포트를 ExampleApp과 같은 8081로 맞췄습니다(#71, #72). ohah.github.io에는 맞춤법 크론이 cheolsu-proxy 개발기와 craby 문서 등의 맞춤법을 고친 커밋과 4월 21일 오늘의 커밋 메타 갱신이 올라왔습니다.
공개 커밋 50개, 해당일 생성 또는 병합된 PR 18개를 정리했습니다. PR 생성 18개·병합 17개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/bungae
- chore(ExpoApp): dev server port 8082 → 8081
- chore(examples): ExpoApp 을 bungae:start:expo 로 실행 가능하도록 설정
- chore(zts): bump submodule to #1579 Phase 3 (require.context emit)
- feat(zts-bundler): require.context 지원 — onResolveContext plugin + Expo Router define entries
ohah/ohah.github.io
- docs(cron): add AI summary for 2026-04-23
- docs(cron): fix Korean punctuation in crd/background.mdx and update checklist
- docs(cron): mark crd/development.mdx as checked
- cron: mark craby/development-3.mdx as checked
- cron: mark craby/development-2.mdx as checked
- docs: mark craby/development.mdx as spell-checked
- docs: fix spelling in craby/background.mdx
- chore: mark docs/monthly-opensource/chromium/setup.mdx as checked (no edits)
- chore: mark chromium/merge.mdx as checked in CRON_CRD_WRITE.md
- chore: mark chromium/first-contribution.mdx as checked in crd-write cron
- docs(cron-crd): check chromium/background.mdx - no spelling/spacing/typos
- chore: mark chromium/code-review.mdx as checked in crd-write cron
- docs: add today-commit for 2026-04-21 to _meta.json
- cron: mark cheolsu-proxy/tech-stack.mdx checked (no corrections)
- cron: mark development-11.mdx as checked off
- cron: correct orthography in development-11.mdx (cheolsu-proxy)
- docs: 맞춤법 교정 - cheolsu-proxy/development-9.mdx
- fix: development-7.md - IPv6 bracket → 괄호 처리
- chore: CRON update - development-8.mdx checked
- docs: 맞춤법 교정 - development-8.mdx
- chore(crd): update CRON_CRD_WRITE.md - checked development-7.mdx
- chore(cron): mark development-6.mdx as checked
- crd-write: spell check development-2.mdx
- chore(cron): mark docs/monthly-opensource/cheolsu-proxy/development-1.mdx as checked
- cron: mark cheolsu-proxy/development.mdx as checked
- chore: mark background.mdx as checked in crd-write cron
- docs: mark docs/index.mdx as spell-checked (no Korean text)
ohah/zntc
- docs: #1779 ModuleGraph invariants 문서화
- refactor(bundler): ModuleGraph 의 SegmentedList 타입을 ModuleList 상수로 추출
- refactor(bundler): #1779 Phase 3 — ModuleGraph.modules 를 std.SegmentedList 로 교체
- refactor(bundler): #1779 Phase 2 /simplify 반영
- refactor(bundler): #1779 Phase 2b — Module.addDependency → ModuleGraph.linkDependency
- refactor(bundler): #1779 Phase 2a — Linker/TreeShaker/chunk/emitter 의 slice API 제거
- refactor(bundler): #1779 Phase 1b — test 코드 modules.items 를 accessor 경유로 교체
- refactor(bundler): #1779 Phase 1b — prod 코드 modules.items 를 accessor 경유로 교체
- refactor(bundler): #1779 Phase 1a — ModuleGraph phase-tagged accessor 뼈대
- fix(emitter): esm_wrap Codegen init 에 import_records 전파
- fix(transformer): JSX attribute 이름이 non-identifier 면 string_literal 로 lower
- feat(codegen): #1579 Phase 3 — require.context webpackContext IIFE emit
- feat(parser): #1579 Phase 2.6 — define table evaluator for require.context (process.env.X)
- feat(core): #1579 Phase 2.5 — NAPI bridge for onResolveContext plugin hook
- feat(bundler): #1579 Phase 2 — require.context host plugin hook + graph processing
- feat(bundler): #1579 Phase 1 — require.context AST detection + literal eval
- test(tsc): expectError → expectPass for type-checker-only fixtures
- refactor(parser): port TS isUnambiguouslyIndexSignature + diagnostics
- fix(parser): support computed property key in TS object type literal
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.