2026-05-27
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
zntc는 오전에 BoringSSL 빌드를 손봤습니다. 정적 라이브러리에 -fPIC를 켜 NAPI 교차 타깃 빌드를 되살리고(#3898), Linux에서 dlopen 시 __ubsan 심볼 문제를 sanitize_c 해제로 고쳤으며(#3899), windows-msvc ia32 빌드를 linkLibCpp 우회로 복구했습니다(#3910). 이어 NAPI에 BoringSSL 정적 링크 확인용 tlsSelfCheck(#3905), 프로세스 안에서 HTTPS dev 서버를 띄우는 startDevServer·stopDevServer(#3906), quiet 모드와 0번 포트 자동 할당·getDevServerPort(#3907)를 추가하고 일상 로그를 조용히 하되 중요한 진단은 항상 stderr로 내게 했습니다(#3908). MCP는 tap_element·get_network 도구와 eval_code의 async/await 지원, 도구 문서 MCP.md까지 들어갔지만(#3903, #3904, #3911), 낮에 최근 이틀 동안 추가한 MCP 코드 전체를 롤백했습니다(#3913). HTTPS dev 서버와 SSE 이벤트 API는 남기고 MCP 구현은 백로그로 미뤘습니다.
mangler에서는 자유 변수를 정밀하게 분석해 c2 경로를 안전하게 만드는 R1-a RFC를 쓰고(#3918) FreeVarMap 타입, SemanticAnalyzer의 자유 변수 수집, linker 연결을 출력에 영향 없는 형태로 병합했습니다(#3919, #3920, #3921). 그러나 로컬 측정에서 zod·effect·rxjs 번들 크기가 전혀 줄지 않아 NO-GO로 종결했고(#3922), 세 PR은 되돌렸습니다(#3923). RFC #3833의 남은 안들에도 폐기 표시를 했습니다. 오후부터는 성능 작업으로, samply 샘플링 프로파일러 워크플로와 -Dkeep-debug 옵션(#3925)을 추가하고 소스 길이에 맞춰 ast.nodes·ast.extra_data, transformer용 복제 AST, Scanner.line_offsets 용량을 미리 잡게 했습니다(#3926부터 #3930). typescript.js 9MB 기준 ast.nodes 사전 할당은 실행 시간을 약 2% 줄였습니다. 하루 끝에는 dev 서버 HMR 지연 재설계 RFC(#3931)와 NAPI dev_mode 옵션 연결로 lodash HMR을 398ms에서 307ms로 줄인 수정(#3932), 증분 빌드에서 ModuleGraph를 재사용하는 RFC와 첫 API(#3933, #3934, #3936)가 이어졌고, CI의 bun 버전을 1.3.11로 고정했습니다(#3916).
suji는 플러그인 네 개를 추가했습니다. 회전 파일 로거 @suji/plugin-log(#45), 파일 기반 설정 저장소 @suji/plugin-store(#46), URL 허용 목록을 둔 @suji/plugin-http(#47), Windows WinRT 토스트를 쓰는 @suji/plugin-notification-rich(#48)이며, 이후 http 플러그인의 스트리밍 응답 크기 제한과 허용 목록 기반 사용자 헤더, 알림 이미지 재활성화 등 후속 PR이 병합됐습니다(#49부터 #53). printToPDF·capturePage를 지연 응답으로 진짜 Promise처럼 동작하게 했고(#54), Linux·Windows에서 CEF GPU 가속을 켜고 e2e 검증을 더했습니다(#55, #56). PR 없이 Linux GTK 트레이·메뉴 팝업, X11 전역 단축키, CEF Views 창 옵션 맞춤도 커밋했습니다.
블로그 저장소 ohah.github.io의 커밋 19개는 크론의 맞춤법·CRD 점검 기록과 일일 요약 커밋입니다.
공개 커밋 81개, 해당일 생성 또는 병합된 PR 51개를 정리했습니다. PR 생성 51개·병합 51개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/ohah.github.io
- chore(cron): update CRON_CRD_WRITE.md - completed 2026-05-28 03:00 KST
- docs: update CRON_CRD_WRITE.md - 2026-05-28 02:30 KST completed
- docs: mark CRD write cron task complete for 2026-05-28 02:00 KST
- chore: add CRON task completion record for 2026-05-28 01:30 KST
- docs(cron): complete 2026-05-27 daily summary
- docs(cron): complete 2026-05-27 21:00 KST CRD verification
- cron: complete 18:00 KST CRD doc spelling check
- chore: complete cron verification for 17:00 KST and 17:30 KST
- chore: update CRON_CRD_WRITE.md - 2026-05-27 15:00 KST completed
- chore(cron): mark CRD write task complete (2026-05-27 14:00 KST)
- chore(cron): verify spelling - 2026-05-27 14:00 KST
- docs: mark 2026-05-27 14:00 KST CRD write check complete
- chore: mark CRON task completed for 2026-05-27 13:00 KST
- chore: cron-crd-write verify craby/development-3.mdx (2026-05-27 13:00 KST)
- cron: verify electron-mcp-server/development-2.mdx for spelling (2026-05-27)
- crd-write: verify development-3.mdx (2026-05-27 12:00 KST)
- docs: add CRON task completion for 2026-05-27 11:00 KST
- cron: mark hwpjs/tech-stack.mdx verified at 10:00 KST
- docs: complete 2026-05-27 09:30 KST cron task - verify crd/development-3.mdx
ohah/suji
- test(e2e): GPU acceleration verification (#12 regression guard)
- feat(cef): enable GPU acceleration on Linux/Windows (closes #12)
- Fix printToPDF e2e expectation
- Enhance tray icon and menu support
- feat(ipc): deferred response — printToPDF/capturePage true Promise pattern (closes #16)
- Add Linux GTK menu popup support
- Align planning docs with completed CLI distribution
- Fix Linux CEF Views parent branch compile
- Add Linux CEF Views window option parity
- fix: code-review max followup for PRs #49/#50/#51
- docs: notification-rich macOS/Linux + Windows action-callback limitations
- http plugin: custom headers with allowlist (Cookie/Authorization opt-in)
- notification-rich: re-enable image with plugin-side allowlist
- http plugin: streaming response bound (real DoS guard)
- Add Linux X11 global shortcuts
- Add Linux GTK tray backend
- Add @suji/plugin-notification-rich — Windows WinRT toast (action buttons + Action Center)
- Add @suji/plugin-http — renderer-safe fetch with URL allowlist
- Add @suji/plugin-store — file-backed persistent config store
- Add @suji/plugin-log — rotating file logger plugin
ohah/zntc
- feat(bundler): initWithGraph + IncrementalBundler enable_persistence opt-in (RFC #3933 Sub-PR-B.2)
- feat(lexer): Scanner.next cold path 분리 + RFC
- feat(graph): ModuleGraph.reset / invalidateModule API skeleton (RFC #3933 Sub-PR-B.1)
- docs(rfc): graph persistence — incremental build 의 ModuleGraph instance 재사용 RFC
- fix(dev-server): NAPI dev_mode 3-옵션 wire-up — lodash HMR 398→307ms (RFC #3931 PR-A)
- docs(rfc): dev_server HMR latency 재설계 RFC — incremental cache hit path 가 root
- fix(lexer): line_offsets prewarm follow-up — best-effort + comment fix
- feat(lexer): pre-warm Scanner.line_offsets capacity by source length
- feat(parser): pre-warm cloned AST nodes / extra_data in cloneForTransformer
- feat(parser): pre-warm ast.extra_data capacity by source length
- feat(parser): pre-warm ast.nodes capacity by source length
- feat(perf): add samply sampling profiler workflow + -Dkeep-debug
- docs(rfc): RFC #3833 axis 3 stale 도장 (옵션 A/B/C 폐기, dev-controller 의도 설계)
- chore(mangler): R1-a inert infra cleanup — revert #3919/#3920/#3921 (NO-GO 후속)
- docs(rfc): R1-a NO-GO 격하 (RFC #3918 §9, 8번째 NO-GO 경로)
- feat(mangler): R1-a PR-3-a — linker 가 free-var map 을 mangler input 에 연결 (inert)
- feat(mangler): R1-a PR-2-b — SemanticAnalyzer free-var build (env-gated, inert)
- feat(mangler): R1-a PR-2-a — FreeVarMap type + mangler input field (inert, byte-identical)
- docs(rfc): R1-a Mangler safe c2 — precise free-var 분석 RFC 드래프트
- docs(rfc): RFC #3833 v2-B 2026-05-27 stale 도장 (재타진 차단)
- chore(ci): pin bun-version to 1.3.11 across all workflows
- test(benchmark): mangler-property baseline regenerate (main 15b2866e)
- docs(rfc): RFC_MANGLER_SIZE_GAP_CLOSED 2026-05-27 재검증 도장 추가
- test(napi): NativeModule parity test + quiet-scope doc canonical 참조
- chore(mcp): /code-review max 후속 — docs 정리 + EventRing 제거 + SSE 회귀 가드
- chore(mcp): MCP epic 전체 롤백 — PR-E1~F7 + infra 제거
- revert(build): windows-msvc INCLUDE env 명시 add 제거 — Zig 자동 detection 만으로 충족
- fix(build): windows-msvc 헤더 탐지 보강 — INCLUDE env path 명시 add
- fix(build): BoringSSL windows-msvc 분기 — linkLibCpp 우회로 ia32 빌드 회복 시도
- docs(mcp): MCP.md 신규 — 11 tool reference + adb/idb 영역 분리
- test(napi): quiet stderr/stdout 분리 회귀 잠금 (PR-G4 post-fix)
- feat(server): DevServer routine log quiet 확장 — critical 진단은 항상 stderr (PR-G4)
- feat(napi): DevServer quiet + port 0 auto + getDevServerPort (PR-G3)
- feat(napi): startDevServer / stopDevServer — HTTPS dev server in-process (PR-G2)
- feat(napi): tlsSelfCheck export — BoringSSL static link runtime 검증
- feat(mcp): get_network tool — XHR intercept + ring buffer + cursor pagination (PR-F7)
- feat(mcp): tap_element tool — onPress invoke + ancestor walk (PR-F6)
- feat(mcp): eval_code async/await + dispatcher Promise handler (deferred)
- fix(server): mcp_app_channel test race — thread setup 직렬화
- fix(mcp): fiber cycle guard + missing-result fallback E2E (deferred)
- fix(build): BoringSSL sanitize_c=.off — Linux NAPI dlopen 의 __ubsan symbol fix
- fix(build): BoringSSL static lib 에 -fPIC — NAPI cross-target build 회복
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.