2026-05-24
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 데코레이터·클래스 변환 이슈의 후속 수정으로 시작했습니다. private method 안의 super.x를 __superGet으로 낮추는 수정(#3722)이 리뷰에서 나온 사각지대 15건 처리와 함께 병합됐고, 병합 뒤 effect-ts와 static block에서 회귀가 나오자 일부를 되돌렸다가 원래 의도를 살린 정밀 수정을 두 차례 다시 넣었습니다(#3724, #3725, #3726). useDefineForClassFields=false에서 private field 선언 보존(#3727), 쓰이지 않는 super_proto_alias가 var _a;를 남기던 문제(#3739)도 고쳤습니다. NAPI 누수 덤프는 atexit 대신 napi_add_env_cleanup_hook을 쓰도록 바꾸고, 전날 만든 누수 게이트 워크플로는 비활성화했습니다(#3723).
번들러에서는 namespace getter가 지워진 바인딩을 가리키는 문제를 여러 단계로 좁혀 갔습니다. isLocalBindingAlive의 rename 접미사 폴백과 모듈 포함 여부 확인, tree shaker 판정 동기화(#3729, #3730, #3731)를 거쳐 링커 namespace 분석기의 빈 결과 폴백(#3732)과 텍스트 기반 폴백, 3단 안전망(#3735)을 넣었고, 마지막에 binding scanner와 링커 분석기를 하나로 합쳤습니다(#3736). 이어 namespace 접근 색인 공유와 registerNamespaceRewrites 경로 최적화로 링크 단계를 줄였고(#3740, #3741, #3742), 파서의 문장·화살표 함수 판별에 첫 바이트 사전 필터를 넣었습니다(#3743, #3744). 경로 resolve 결과를 intern하는 변경(#3748)은 PR 제목 기준 측정에서 1320ms를 95ms로 줄였고, 이후 PathRef enum으로 수명 규칙을 컴파일러가 강제하게 하고 intern 풀을 16개 shard mutex로 나눴습니다(#3753, #3754). CSS는 외부 @import URL 보존(#3746)과 파일 맨 앞 @charset·bare @layer 선언 보존(#3752), manualChunks 흡수 뒤 빈 entry chunk의 placeholder 치환 누락 수정(#3728)이 병합됐습니다.
suji는 오후부터 WebContentsView를 CEF Views 기반으로 옮겼습니다. 자식 창 프로브, 순서 변경 시 숨긴 자식 뷰 보존, 창 생명주기 이벤트 복원, 자식 뷰 제거 안정화를 거쳐 CEF Views를 WebContentsView의 기본 경로로 삼고 API를 배선했습니다. 이후 macOS·Linux·Windows에서 도는 WebContentsView E2E를 추가하고, CI용 CEF 프로세스 플래그와 런타임 에셋 패키징, 렌더러 IPC를 브라우저 메인 프레임으로 보내는 처리, 초기 내비게이션 재시도 등 수십 개 커밋으로 E2E를 안정화해 17-B 단계 완료를 문서에 적었습니다. 새벽에는 Windows·Linux safeStorage, 크로스 플랫폼 powerMonitor 유휴 시간과 이벤트, powerSaveBlocker, crashReporter 첫 구현, 앱 배지 카운트 API, 내장 Node 실행 CLI, Rust용 TypeScript 핸들러 헬퍼, types CLI E2E를 추가했습니다.
외부 저장소 warpdotdev/warp에는 한국어 IME 조합이 분할 커밋과 Backspace에서 유지되도록 하는 PR #11624를 열었으나 병합되지 않고 닫혔습니다. 블로그 저장소 ohah.github.io의 커밋 17개는 크론의 문서 점검 표시와 요약 갱신 커밋입니다.
공개 커밋 113개, 해당일 생성 또는 병합된 PR 28개를 정리했습니다. PR 생성 27개·병합 27개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/ohah.github.io
- chore(cron): complete CRON_CRD_WRITE.md task for 2026-05-25 08:00 KST
- docs: verify spelling for tech-stack.mdx (2026-05-25 11:30 KST)
- docs: Add 2026-05-25 09:00 KST cron task record - verified docs/monthly-opensource/crd/development-4.mdx
- chore: crd-write cron task completed (2026-05-25 07:00 KST)
- docs: Update CRON_CRD_WRITE.md - verify development-3.mdx (2026-05-25 05:30 KST)
- docs: add cron task record for CRD spelling check (2026-05-25 03:30 KST)
- docs: complete CRON CRD_WRITE verification (development-7.mdx)
- docs: update 2026-05-24 commit summary
- docs: update CRON_CRD_WRITE.md - verified hwpjs/development-6.mdx spelling (2026-05-24 22:30 KST)
- cron: document completed verification for development-4.mdx (2026-05-24 18:00 KST)
- docs: add cron completion log (2026-05-24 16:30 KST)
- cron: verify crd/development-1.mdx spelling (2026-05-24 15:00 KST)
- docs: Update CRON_CRD_WRITE.md - 2026-05-24 13:00 KST cron task completed
- docs: update CRON_CRD_WRITE.md with 2026-05-24 12:00 KST verification
- docs: update CRON_CRD_WRITE.md - verified electron-mcp-server/development-1.mdx
- cron: verify docs/monthly-opensource/crd/development-3.mdx
- chore: update cron verification log (2026-05-24 09:30 KST)
ohah/suji
- Add Rust TypeScript handlers helper
- Stabilize CEF E2E CDP attach timeout
- Add types CLI E2E coverage
- Limit Node run E2E to macOS
- Stabilize Node run E2E fixture
- Fix Node run CI coverage
- Add embedded Node run CLI
- Add cross-platform badge count backend
- Add app badge count API
- Add crashReporter first pass
- Add cross-platform powerMonitor events
- Add cross-platform powerSaveBlocker
- Add cross-platform powerMonitor idle time
- Avoid Chromium Secret Service prompt on Linux
- Add Linux safeStorage support
- Fix Windows safeStorage BOOL handling
- Add Windows safeStorage support
- Harden 17-B docs test on Windows
- Document 17-B runtime E2E completion
- Retry CEF Views initial navigation
- Stop forcing CEF network service in CI
- Force CEF Views initial navigation
- Bound E2E page probe timeouts
- Use page location for E2E app target
- Require app URL for E2E main page
- Prefer app target in E2E page discovery
- Route CEF renderer IPC via browser main frame
- Stabilize CEF network service in CI
- Wait for stable Suji bridge in E2E
- Fallback CEF IPC responses to main frame
- Harden CEF renderer IPC dispatch
- Poll E2E core results with timeout diagnostics
- Keep E2E core invoke in active V8 context
- Wait for Suji bridge in E2E page lookup
- Avoid awaiting core IPC inside E2E evaluate
- Stabilize CEF E2E runtime paths
- Capture Linux E2E CEF init diagnostics
- Handle early CEF IPC responses
- Harden E2E page selection and CEF cache paths
- Raise E2E Bun timeout for startup hooks
- Select main E2E page by localhost target
- Initialize CEF before dev subprocesses
- Harden Linux WebContentsView E2E runtime
- Harden macOS WebContentsView E2E window query
- Use normal CEF subprocess path on Linux CI
- Fix Windows CEF runtime install step
- Package CEF runtime assets for cross-platform E2E
- Use CI-safe Linux CEF process flags
- Fix cross-platform CEF runtime startup
- Harden cross-platform WebContentsView E2E
- Harden Node SDK prepare and E2E logs
- Harden WebContentsView E2E diagnostics
- Add cross-platform WebContentsView E2E
- Document and test CEF Views view path policy
- Wire CEF Views WebContentsView APIs
- Make CEF Views default for WebContentsView
- Stabilize CEF Views child view destroy
- Harden CEF Views window option coverage
- Restore CEF Views window lifecycle events
- Preserve hidden child views during CEF Views reorder
- Implement CEF Views child window probe
- docs: sync WebContentsView status
ohah/zntc
- fix(bundler): #3750 sweep review — Shard 캡슐화 + allocator 보관 + 명시 mask
- fix(bundler): #3750 5-angle review 후속 — Shard 타입 강화 + 32-bit cast
- perf(bundler): #3750 PathInternPool 16-shard mutex (single-mutex 회귀 회복)
- fix(bundler): CSS @charset / bare @layer top-of-file 선언 보존 (#3747, 루트커즈)
- refactor(bundler): #3749 Phase 3 (C) — PathRef enum 으로 lifetime 컴파일러 강제
- feat(bundler): external @import URL preserve (CSS cross-chunk @import, #3321 P0-3)
- perf(bundler): resolve interning — wall -93% (1320ms → 95ms), esbuild 추월
- perf(parser): parseAssignmentExpression arrow lookahead byte prefilter
- perf(parser): parseStatement contextual keyword first-byte prefilter
- perf(bundler): #3680 C7 F3 — nested_bindings per-importer cache (-36% register.ns)
- perf(bundler): #3680 C7 — registerNamespaceRewrites hot path 최적화 (-31%)
- perf(bundler): #3680 namespace access index share — link.populate -55%, wall -20%
- fix(transformer): V8 super_proto_alias 가 unused 일 때
var _a;leak 차단 (루트커즈 fix) - perf(bundler): #3680 namespace local set gating — text 색인 메모리 절감
- refactor(bundler): #3680 binding_scanner ↔ linker analyzer 통합 — single source of truth
- fix(bundler): #3680 통합 안전망 — 옵션 B revert + escape 색인 (3-layer)
- cleanup(bundler): #3680 옵션 B — 보수 fallback 제거 (옵션 A 후속)
- fix(bundler): #3680 옵션 A — analyzer text fallback (transformer rebind 회복)
- fix(bundler): linker namespace analyzer empty 결과 fallback (counter$4 진짜 root fix)
- fix(bundler): code-review max — infos[0..out_idx] 슬라이스 + stale comment
- fix(bundler): manualChunks 흡수 후 빈 entry chunk 가 placeholder 치환 누락
- fix(bundler): tree_shaker_active mirror — isStatementAliveBySym/isLocalBindingAlive 정확 판정
- fix(bundler): isLocalBindingAlive 가 module is_included 도 체크 (counter$4 부분 fix)
- fix(bundler): isLocalBindingAlive 에 rename suffix fallback (namespace getter dangling 부분 fix)
- fix(transformer): useDefineForClassFields=false 에서 private field declaration 보존
- fix(transformer): #3680 V1/V8 정밀 fix follow-up (6건 추가 정밀 fix)
- fix(transformer): #3680 V1/V8 정밀 fix (revert PR 후속 — 원본 의도 복구)
- fix(transformer): #3680 post-merge — V1 descriptor reorder + V8 extends hoist revert
- docs: atexit → NAPI env cleanup hook 표현 일관화 (#dev-leak-investigation follow-up)
- fix(napi): atexit → napi_add_env_cleanup_hook (Linux dlopen 호환) + leak-gate workflow 비활성
- style: zig fmt — V5 회귀 테스트 multi-line expect 정리
- fix(transformer): #3680 2nd post-review — 8건 사각지대 일괄 처리
- fix(transformer): #3680 post-review — 7건 사각지대 일괄 처리
- fix(transformer): private method 내 super.x → __superGet lowering (#3680)
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.