2026-06-14

날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.

요약 (AI 작성)

maru는 ⌘N 새 창을 위한 세션 컬렉션 정리와 창 팩토리(#396, #397)로 멀티 창을 열고, 한 창을 닫을 때 나던 over-release 크래시를 고쳤습니다. 이어 maru.workspace.v1 직렬화 writer·reader(#399), 라이브 세션 캡처, 정상 종료 시 저장, 시작 시 여러 창을 되살리는 복원(#404), 민감 데이터 가드와 없는 cwd 처리(#405)까지 워크스페이스 복원 R1–R6을 마쳤고, 리뷰에서 나온 stale 포인터·손상 트리 처리 등을 바로잡았습니다. 오후부터는 레이어링·이식성 전략과 chrome 디자인 시스템 설계를 문서로 정한 뒤, src/chrome 타입 계약과 Notice 모달(#409, #411), 세션 구조 무효화 계약과 순수 입력·IME 로직의 src/session 추출(#412), 레이어 import 방향을 검사하는 경계 테스트(#418)를 넣었습니다. 스크롤백 찾기와 커맨드 팝업을 chrome 컴포넌트로 옮기면서(#420, #427) 오버레이 입력 커서와 IME 조합 표시, caret 깜빡임을 붙였고, 한글이 잘리던 문제를 EAW 셀 폭, 오버레이 폰트 실측, atlas 캐시 키의 셀 폭 포함으로 차례로 고쳤습니다. 오버레이 글자 1.3배 확대는 넣었다 되돌리고 다시 넣은 끝에 터미널과 같은 크기로 돌아갔고, chrome의 config import 금지 가드도 추가했다가 되돌렸습니다(#438, #439). 마지막으로 divider, sidebar, tabbar의 마우스 hit-test를 chrome 컴포넌트로 옮겼습니다(#440, #441, #443).

zntc는 전날 열린 진단 게이트 #4264를 병합하고 ES2025 정규식 (?s:…), (?i:…), (?m:…) modifier 다운레벨(#4265부터 #4267까지)을 완성했습니다. 이후 70개 가까운 커밋으로 저장소 전반의 결함을 정리했는데, 번들러의 ModuleKey 스택 버퍼 오버플로와 minify·bundler의 UAF, napi 오류 경로의 자원 누수, dev 서버 WS writer 데이터 경합과 프록시 바디 미전달, generator 라벨 continue와 for-in 의미 위반, v 플래그 집합 연산을 합집합으로 바꾸던 정규식 문제(#4308), mangler가 eval을 이름으로 배정하던 문제(#4313), lexer의 BOM·UTF-8 검증, sourcemap VLQ의 정수 오버플로, React Native open-url 입력 검증, CLI 플래그와 BuildOptions 스키마 불일치(#4310) 등이 포함됐습니다. 성능 쪽에서는 기본 worker 풀을 8개로 제한하고(#4359), 의존 export 요청과 top-level 이름 순회를 O(N²)에서 O(N)으로 줄였습니다(#4406, #4407). 같은 주제의 #4300, #4336은 병합되지 않고 닫혔습니다.

cheolsu-proxy는 의존성 전체 버전업(#340) 뒤 심각도별로 버그를 정리했습니다. 백엔드 패닉·요청 무결성·압축 폭탄, 인증서 SAN 불일치와 mTLS fail-open 보안 문제(#342), 스크립팅 엔진의 무한 루프·메모리 폭주 방어, throttle 프리셋 유실, 프론트엔드 이미지 손상과 규칙 페이지 크래시를 High로 고쳤고, 데이터 모델·ops·daemon·proxyapi·프론트엔드의 Medium·Low 항목(#346부터 #361까지)과 리뷰 후속 하드닝이 이어졌습니다. MCP 도구 48개, CLI, 스크립팅·SSE, 설치 문서를 실제 구현과 맞추고 테스트 가이드를 쓴 뒤 v0.1.2 릴리스 커밋(#374)을 넣었고, 릴리스 빌드 실패를 일으킨 미사용 필드를 지웠습니다(#375).

suji는 Node 24 type stripping으로 main.ts 진입점을 지원하고, macOS 전용이던 네이티브 기능 4종을 Windows·Linux로 넓혔으며(#142), Electron 백로그 메서드 9종(#143), 권한 핸들러의 카메라·마이크 통합(#144), app.getFileIcon·app.relaunch()(#146, #147)를 추가했습니다. Android에 libnode NDK 크로스빌드와 내장 Node.js 백엔드 예제를 넣었고(#145), Windows 내장 CPython을 dev와 패키지 양쪽에서 지원하며 CI e2e 가드를 달았습니다(#150, #151). Rust·Go SDK의 autoUpdater(#155), Windows 업로드 경로 unescape(#156)도 들어왔습니다. iris는 Android 벤치마크 비교 측정 경로(#38)와 엔진 호환성 정책 갱신(#39)을 병합했습니다.

블로그 저장소(ohah.github.io)에는 이날의 오늘의 커밋 요약을 올린 커밋 1개가 있었습니다.

공개 커밋 191개, 해당일 생성 또는 병합된 PR 181개를 정리했습니다. PR 생성 180개·병합 179개는 같은 PR이 양쪽에 포함될 수 있습니다.

커밋

ohah/cheolsu-proxy

ohah/iris

ohah/maru

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.

저장소PR해당일 활동상태대상 브랜치제목
ohah/cheolsu-proxy#375생성 · 병합mergedmainfix: MCP tool_router 데드코드 제거 (릴리스 빌드 실패 수정)
ohah/cheolsu-proxy#374생성 · 병합mergedmainchore: release v0.1.2
ohah/cheolsu-proxy#373생성 · 병합mergedmaindocs: 테스트 가이드 본문 작성
ohah/cheolsu-proxy#372생성 · 병합mergedmaindocs: 고아 TLS 노트 제거 및 테스트 가이드 작성
ohah/cheolsu-proxy#371생성 · 병합mergedmaindocs: 설치 가이드를 실제 빌드/아티팩트와 동기화
ohah/cheolsu-proxy#370생성 · 병합mergedmaindocs: 스크립팅·SSE 문서를 실제 API와 동기화
ohah/cheolsu-proxy#369생성 · 병합mergedmaindocs: CLI 문서를 실제 clap 정의와 동기화
ohah/cheolsu-proxy#368생성 · 병합mergedmaindocs: MCP 도구 문서를 실제 구현(48개)과 동기화
ohah/cheolsu-proxy#367생성 · 병합mergedmainfix: 필터 값의 큰따옴표를 escape해 round-trip 보존
ohah/cheolsu-proxy#366생성 · 병합mergedmainfix: WebSocket 메시지 상세/목록의 UUID 노출 회귀 수정 (표시용 URL 운반)
ohah/cheolsu-proxy#365생성 · 병합mergedmainfix: 시스템 프록시 해제 시 활성화 당시 서비스로 복원
ohah/cheolsu-proxy#364생성 · 병합mergedmainfix: 스크립트 바디 교체 시 stale content-length/encoding 헤더 제거
ohah/cheolsu-proxy#363생성 · 병합mergedmainfix: 코드리뷰 발견 스크립트/규칙 하드닝 (오버플로·watcher·terminate race·로더 회귀)
ohah/cheolsu-proxy#362생성 · 병합mergedmainfix: 평문 GET-over-CONNECT ClientHello 읽기 무한 블록 회귀 수정
ohah/cheolsu-proxy#361생성 · 병합mergedmainTLS: get_learned_tls_strategies request-response 구현 (L16)
ohah/cheolsu-proxy#360생성 · 병합mergedmainWebSocket: 연결별 고유 conn_id로 동시 연결 충돌 해결 (L2)
ohah/cheolsu-proxy#359생성 · 병합mergedmainscripting: load_script 홈 디렉터리 경계 추가 (경로 탐색 방어심층, L12)
ohah/cheolsu-proxy#358생성 · 병합mergedmain프론트엔드: multipart 바이너리 파트 size 정확화 (바이트 단위 파서, FE-L1)
ohah/cheolsu-proxy#357생성 · 병합mergedmain프론트엔드 Low 수정: 분석 count/N+1 오탐/GraphQL 탭 (3건)
ohah/cheolsu-proxy#356생성 · 병합mergedmainsrc-tauri Low 수정: 로그 경로 탐색/advanced_repeat 지연 (2건)
ohah/cheolsu-proxy#355생성 · 병합mergedmaincheolsu_ops Low 수정: load_session extend MAX 상한 우회 (L14)
ohah/cheolsu-proxy#354생성 · 병합mergedmainscripting Low 수정: shutdown 무한 블로킹 방지 (L11)
ohah/cheolsu-proxy#353생성 · 병합mergedmainproxy_daemon Low 수정: 블로킹IO/누수/WS/gRPC (6건)
ohah/cheolsu-proxy#352생성 · 병합mergedmainproxyapi_v2 Low 수정: ClientHello read/eager abort/메트릭 (3건)
ohah/cheolsu-proxy#351생성 · 병합mergedmain프론트엔드 Medium 수정: cURL/취소가드/누수/필터/동기화/Waterfall (8건)
ohah/cheolsu-proxy#350생성 · 병합mergedmainsrc-tauri Medium 수정: start_proxy_v2 동시 호출 DaemonConnection 누수 (M14)
ohah/cheolsu-proxy#349생성 · 병합mergedmainproxyapi_v2 Medium 수정: Upstream CONNECT over-read, IPv6 SOCKS5 (2건)
ohah/cheolsu-proxy#348생성 · 병합mergedmainproxy_daemon Medium 수정: curl/SSE/브레이크포인트/시스템프록시/분석 (5건)
ohah/cheolsu-proxy#347생성 · 병합mergedmainops Medium 수정: SSE UTF-8 패닉/ID 충돌/세션 규칙 동기화 (3건)
ohah/cheolsu-proxy#346생성 · 병합mergedmain데이터 모델 Medium 수정: UTF-8 패닉/손상, HAR Set-Cookie (3건)
ohah/cheolsu-proxy#345생성 · 병합mergedmain프론트엔드 High 수정: 8KB+ 이미지 손상/Intercept Rules 페이지 크래시
ohah/cheolsu-proxy#344생성 · 병합mergedmain백엔드 High 수정: throttle 프리셋(gprs/3g/lte/wifi) 유실
ohah/cheolsu-proxy#343생성 · 병합mergedmain백엔드 High 수정: 스크립팅 엔진 안정성 (무한 루프/메모리 폭주 DoS 방지)
ohah/cheolsu-proxy#342생성 · 병합mergedmain백엔드 High 보안 수정: 인증서 SAN 불일치/mTLS fail-open (2건)
ohah/cheolsu-proxy#341생성 · 병합mergedmain백엔드 High 버그 수정: 패닉/요청 무결성/압축 폭탄 (4건)
ohah/cheolsu-proxy#340생성 · 병합mergedmain의존성 전체 버전업 (deno_core/v8/oxc·rmcp·tauri 등)
ohah/iris#39생성 · 병합mergedmain[codex] Iris 엔진 호환성 정책 갱신
ohah/iris#38생성 · 병합mergedmainAndroid Iris 벤치마크 비교 측정 경로 추가
ohah/maru#444생성 · 병합mergedmaintest(chrome): C3b 리뷰 반영 — tabbar/barMetrics 커버리지 + dividerAtPoint borrow 주석
ohah/maru#443생성 · 병합mergedmainfeat(chrome): tabbar hit-test를 chrome 컴포넌트로 이주 (C3b — 마지막 hit-test 컴포넌트)
ohah/maru#442생성 · 병합mergedmainrefactor(chrome): C3a 리뷰 반영 — props seam·dividerAtPoint 단순화·sidebar 일관성
ohah/maru#441생성 · 병합mergedmainfeat(chrome): sidebar를 chrome 컴포넌트로 이주 (C3a — 마우스 hit-test 패턴 확장)
ohah/maru#440생성 · 병합mergedmainfeat(chrome): divider를 chrome 컴포넌트로 이주 (C2 — 마우스 hit-test 첫 선례)
ohah/maru#439생성 · 병합mergedmainRevert "test(boundary): chrome config import 가드" (선제 방어 회피)
ohah/maru#438생성 · 병합mergedmaintest(boundary): chrome 레이어가 config를 import하지 못하게 가드 추가(/code-review max neutrality gap)
ohah/maru#437생성 · 병합mergedmainrefactor(chrome): find·palette 입력 오버레이 중복을 overlay_input 공유 모듈로(/code-review max cleanup)
ohah/maru#436생성 · 병합mergedmainfix(platform): 오버레이 배타·notice IME 라우팅·오버레이 프레임 소유권 정정(/code-review max 후속)
ohah/maru#435생성 · 병합mergedmainfix(chrome): 오버레이 IME 조합 중 커서가 조합 글자를 덮도록 — 터미널과 일치
ohah/maru#434생성 · 병합mergedmainrefactor(app): IME 입력 라우팅을 단일 출처(inputFocus)로 — 조합 상태 안 보이던 버그 수정
ohah/maru#433생성 · 병합mergedmainfix(app): 오버레이 wide 글리프 continuation 칸 배경 덮어쓰기 — 한글 ㄱ 잘림 수정
ohah/maru#432생성 · 병합mergedmainfix(renderer): atlas 캐시 키에 span(cell_width) 포함 — 한글 ㄱ 잘림(공유 atlas) 수정
ohah/maru#431생성 · 병합mergedmainfix(app): 오버레이 caret이 안 보이던 버그 — cursor를 overlays에 넣어야 그려진다
ohah/maru#430생성 · 병합mergedmainrefactor(app): 오버레이 1.3× 확대 제거 — 터미널과 같은 셀 크기(1×)
ohah/maru#429생성 · 병합mergedmainfeat(chrome): 오버레이 caret 깜빡임 — 터미널 커서 메커니즘 재활용(PaneFrame.cursor + suffix-trim)
ohah/maru#428생성 · 병합mergedmainfix(app): 오버레이 cell을 오버레이 font의 CoreText 실측으로 — 한글 약간 잘림 수정
ohah/maru#427생성 · 병합mergedmainfeat(chrome): C1b — 커맨드 팝업을 chrome 컴포넌트로 이주(레거시 완전 제거)
ohah/maru#426생성 · 병합mergedmainfix(app): 커맨드 팝업 텍스트도 EAW 폭으로 — 한글 ㄱㄴㄷ 잘림 수정
ohah/maru#425생성 · 병합mergedmainfix(chrome): 오버레이 텍스트·caret을 EAW 셀 폭으로 — 한글 잘림 수정
ohah/maru#424생성 · 병합mergedmainfix(chrome): 오버레이 1.3× 확대 재수정 — 폰트 크기까지 함께 스케일(루트커즈)
ohah/maru#423생성 · 병합mergedmainrevert(chrome): 오버레이 1.3× 스케일 되돌림 — 글자 작아짐·atlas 오염
ohah/maru#422생성 · 병합mergedmainfeat(chrome): 오버레이 글자 1.3× 확대 — 가독성
ohah/maru#421생성 · 병합mergedmainfeat(chrome): find 오버레이 입력 UX — 입력 커서 + IME 조합(preedit) 표시
ohah/maru#420생성 · 병합mergedmainfeat(chrome): C1a — 스크롤백 Find를 chrome 컴포넌트로 이주
ohah/maru#419생성 · 병합mergedmainrefactor(platform): C1-prep — 일반 오버레이 ChromeDraw→cells rasterizer
ohah/maru#418생성 · 병합mergedmaintest(boundary): B 중립성 가드 — L1~L3 import-방향 완성 + OS-타입 by-name 금지
ohah/maru#417생성 · 병합mergedmainfix(session): /code-review max 수정 3/3 — S1 표적 divider + per-window 알림 + 경계 doc
ohah/maru#416생성 · 병합mergedmainfix(chrome): /code-review max 수정 2/3 — 오버레이 frame dedup + Notice 테두리 렌더링
ohah/maru#415생성 · 병합mergedmainfix(chrome): /code-review max 수정 1/3 — 모달 correctness·정책·토큰 seam
ohah/maru#414생성 · 병합mergedmainrefactor(session): S2 슬라이스 2 — IME 순수 판정을 src/session/ime(L2)으로 추출
ohah/maru#413생성 · 병합mergedmainrefactor(session): S2 슬라이스 1 — 순수 입력/재정렬 수학을 src/session(L2)으로 추출
ohah/maru#412생성 · 병합mergedmainrefactor(session): S1 구조-무효화 계약 — destroyPane chokepoint로 라이브-트리 포인터 표적 무효화
ohah/maru#411생성 · 병합mergedmainfeat(chrome): C0 Notice 모달 wiring — ChromeDraw→CoreText lower + ABI show_notice + 손상 알림
ohah/maru#410생성 · 병합mergedmainfix(chrome): C0 /code-review max — 모달 박스 clamp + stale 중복 토큰 제거(계획-기반 유지)
ohah/maru#409생성 · 병합mergedmainfeat(chrome): C0 타입 계약 — src/chrome 스켈레톤 + Notice
ohah/maru#408생성 · 병합mergedmaindocs: 레이어링·이식성 전략 + chrome 디자인 시스템 구조 설계
ohah/maru#407생성 · 병합mergedmaindocs(pr-checklist): PR Mermaid 다이어그램은 가능하면 세로(좁고 긴)로
ohah/maru#406생성 · 병합mergedmainfix(workspace): restore 2-pass /code-review max 루트코즈 수정 (ABI 39)
ohah/maru#405생성 · 병합mergedmainfeat(workspace): restore R6 — 민감 데이터 가드 + 없는 cwd graceful (R1~R6 완성)
ohah/maru#404생성 · 병합mergedmainfeat(workspace): restore R4b — 시작 시 로드 + 멀티 창 복원 (ABI 38, end-to-end)
ohah/maru#403생성 · 병합mergedmainfeat(workspace): restore R4a — applyWorkspaceWindow (모델 → 라이브 트리 재생성)
ohah/maru#402생성 · 병합mergedmainfeat(workspace): restore R5 — 정상 종료 시 멀티 창 workspace 저장 (ABI 37)
ohah/maru#401생성 · 병합mergedmainfeat(workspace): restore R3 — 라이브 DevSession → workspace.Window 캡처
ohah/maru#400생성 · 병합mergedmainfeat(workspace): restore R2 — maru.workspace.v1 reader + round-trip
ohah/maru#399생성 · 병합mergedmainfeat(workspace): restore R1 — maru.workspace.v1 직렬화 writer + 모델
ohah/maru#398생성 · 병합mergedmainfix(app): 멀티 창에서 한 창 닫을 때 over-release 크래시(isReleasedWhenClosed)
ohah/maru#397생성 · 병합mergedmainfeat(app): New Window W2 — ⌘N으로 새 창(팩토리 + per-window tick/lifecycle)
ohah/maru#396생성 · 병합mergedmainfeat(app): New Window W1 — 세션 컬렉션 seam (primary → windows, 동작 불변)
ohah/suji#157생성 · 병합mergedmainfeat(sdk): add Request.stringUnescaped() + fix latent JSON-unescape path bugs
ohah/suji#156생성 · 병합mergedmainfix(upload): Windows "forbidden path" — unescape filePath to match allowlist
ohah/suji#155생성 · 병합mergedmainfeat(sdk): add autoUpdater to Rust + Go SDKs (parity with JS/Node)
ohah/suji#154생성 · 병합mergedmaindocs(cef-refactor): reconcile status table with current modules
ohah/suji#153생성 · 병합mergedmainrefactor(cef): split cef_single_instance into state + platform submodules
ohah/suji#152생성 · 병합mergedmainfix(test): repair python unit tests broken by version-constant refactor
ohah/suji#151생성 · 병합mergedmainci(windows): Python staging + dev/packaged embedded-CPython e2e guards
ohah/suji#150생성 · 병합mergedmainfeat(python): Windows embedded CPython support (dev) + version single-source consts
ohah/suji#149생성 · 병합mergedmainfix(review): Rust permission clear listener 누수 + getFileIcon rep autorelease
ohah/suji#148생성 · 병합mergedmainfix(win): relaunchSelf Windows build break + run-cef-ipc -Dlua
ohah/suji#147생성 · 병합mergedmainfeat(app): app.relaunch() — quit 후 재시작 (Electron parity)
ohah/suji#146생성 · 병합mergedmainfeat(app): app.getFileIcon — 파일 시스템 아이콘 PNG (Electron parity)
ohah/suji#145생성 · 병합mergedmainfeat(mobile): Android Node.js 백엔드 예제 + libnode NDK 크로스빌드
ohah/suji#144생성 · 병합mergedmainfeat(session): setPermissionRequestHandler 에 camera/mic(media-access) 통합
ohah/suji#143생성 · 병합mergedmainfeat(parity): Electron 백로그 메서드 9종 — 코어 + 전 SDK
ohah/suji#142생성 · 병합mergedmainfeat(platform): macOS-only 네이티브 기능 4종 → Windows/Linux 확장
ohah/zntc#4407생성 · 병합mergedmainperf(linker): forEachTopLevelOwnerName O(N²)→O(N) — 대형 fan-out local_name 인덱스
ohah/zntc#4406생성 · 병합mergedmainperf(graph): requestDependencyExports O(N²)→O(N) — record→bindings CSR 인덱스
ohah/zntc#4405생성 · 병합mergedmainfix(semantic): addUnresolvedReference OOM 삼킴 표면화 (#40 sweep)
ohah/zntc#4403생성 · 병합mergedmainfix(transformer): 잔여 template data.none==0 alias 사이트 5곳 (#47 sweep)
ohah/zntc#4401생성 · 병합mergedmainfix(semantic): analyzer OOM 을 alloc_failed 로 표면화 (silent swallow 제거)
ohah/zntc#4399생성 · 병합mergedmainfix(semantic): checkExportBinding 을 module-scope 조회로 한정
ohah/zntc#4397생성 · 병합mergedmainfix(transformer): 치환 template expression 변환이 list.start==0 에서 누락
ohah/zntc#4395생성 · 병합mergedmainfix(transformer): emotion interp label/sourceMap 재작성 결합 해제
ohah/zntc#4393생성 · 병합mergedmainfix(transformer): buildRefreshSigCall 긴 signature 가짜 OOM 중단 제거
ohah/zntc#4391생성 · 병합mergedmainfix(transformer): _s(Component, "sig") 가 mangler rename 따라가도록 symbol_id 전파
ohah/zntc#4389생성 · 병합mergedmainfix(transformer): buildRefreshRegCall 긴 컴포넌트명에서 가짜 OOM 중단 제거
ohah/zntc#4387생성 · 병합mergedmainfix(parser): tryReinterpretAsTypedArrow 의 죽은 is_empty_paren 분기 제거
ohah/zntc#4385생성 · 병합mergedmainfix(parser): Flow conditional type span 이 check type 에서 잘려 false branch 미포함
ohah/zntc#4383생성 · 병합mergedmainfix(parser): import attribute 비-string value 가 진단 없이 silent 수용 (+ dead 조건)
ohah/zntc#4381생성 · 병합mergedmainfix(bundler): matchGlob brace 확장이 4096 초과 alternative 를 silent skip → 매치 누락
ohah/zntc#4379생성 · 병합mergedmainfix(codegen): export-default 합성 placeholder 판별을 이름 prefix 추론 → linker flag
ohah/zntc#4377생성 · 병합mergedmainfix(regexp): legacy octal escape 가 3 digit 초과 소비 → byte 범위 넘어 round-trip 깨짐
ohah/zntc#4375생성 · 병합mergedmainfix(regexp): 빈 character class(negated full range) 가 (?:)(빈 매치)로 다운레벨 — never-match 여야
ohah/zntc#4373생성 · 병합mergedmainfix(codegen): import.meta.glob 객체가 minify_whitespace 무시 (하드코딩 newline/indent/space)
ohah/zntc#4371생성 · 병합mergedmainfix(core): loadEnv 가 경로를 문자열 연결로 만들어 Windows separator 혼합
ohah/zntc#4369생성 · 병합mergedmainfix(parser): directive prologue 가 .none(stripped) 문 뒤 string literal 을 directive 로 오인
ohah/zntc#4367생성 · 병합mergedmainfix(parser): parseImportDeclaration 의 도달 불가 dynamic-import 블록 제거 (dead + 잠재 divergence)
ohah/zntc#4365생성 · 병합mergedmainfix(parser): containsLoneSurrogate 의 도달 불가 보조 loop 제거 (dead code)
ohah/zntc#4363생성 · 병합mergedmainfix(core): serializeFunctionInfo 가 OOM 시 buf backing leak (errdefer 누락)
ohah/zntc#4361생성 · 병합mergedmainfix(config): tsconfig extends + 양쪽 paths 시 base paths 컨테이너 leak
ohah/zntc#4359생성 · 병합mergedmainperf(bundler): 기본 worker 풀을 8 로 cap — 동일-dir openat vnode 경합 해소
ohah/zntc#4358생성 · 병합mergedmainfix(bundler): buildEntrySet symlink arm 이 put 실패 시 entry.name leak
ohah/zntc#4356생성 · 병합mergedmainfix(parser): generic-arrow speculation 실패 경로가 AST 노드 미복원 → orphan 잔존
ohah/zntc#4354생성 · 병합mergedmainfix(bundler): buildPlaceholder 가 chunk index-hash 를 u32 절단 → placeholder 충돌 시 silent mislink
ohah/zntc#4352생성 · 병합mergedmainfix(codegen): sourcemap encodeVLQ 가 i32 minInt 에서 overflow panic
ohah/zntc#4350생성 · 병합mergedmainfix(transformer): worklet makeI32Literal 이 i32 minInt 에서 overflow panic
ohah/zntc#4348생성 · 병합mergedmainfix(semantic): visitVariableDeclaration declarator 슬라이스 바운드 가드 누락 — OOB panic
ohah/zntc#4346생성 · 병합mergedmainfix(lexer): decodeUtf8 continuation byte 미검증 → overlong/후속바이트 오소비
ohah/zntc#4344생성 · 병합mergedmainfix(lexer): getLineColumn 이 BOM 영역 offset 에서 u32 underflow + OOB panic
ohah/zntc#4342생성 · 병합mergedmainfix(server): dev proxy 가 POST/PUT 바디 미전달 + Host 무조건 :port
ohah/zntc#4340생성 · 병합mergedmainfix(transformer): top-level-await wrap 이 styled-components css-prop 추출 decl 소실
ohah/zntc#4338생성 · 병합mergedmainfix(transformer): generator for-in 이 Object.keys(own-only/shadow) snapshot → for-in 의미 위반
ohah/zntc#4336생성closedmainfix(parser): #4328 break/continue/debugger 종결을 expectSemicolon 으로 — ASI 강제
ohah/zntc#4335생성 · 병합mergedmainfix(core): writeOutputFiles 가 모든 .map 을 outfile.map 으로 broad-match — 다중 map 충돌(잠재)
ohah/zntc#4333생성 · 병합mergedmainfix(core): readFileOrThrowNotFound 가 workspace 부재도 'config file not found' 로 오안내
ohah/zntc#4331생성 · 병합mergedmainfix(cli): bench worker 가 transpile 에러를 swallow → 무의미한 측정값 + 신호 없음
ohah/zntc#4329생성 · 병합mergedmainfix(parser): break/continue 가 expectSemicolon 대신 eat(.semicolon) — ASI 종결 미강제
ohah/zntc#4327생성 · 병합mergedmainfix(codegen): sourcemap addMapping dedup 이 name_index 무시 → 명명 매핑 소실
ohah/zntc#4325생성 · 병합mergedmainfix(react-native): metro-resolve 가 빈 assetFiles 시 bare specifier 를 경로로 반환
ohah/zntc#4323생성 · 병합mergedmainfix(vite-plugin): Vite 버전 게이트가 ESM require 실패 + parseInt 취약 → Vite 5 이중변환
ohah/zntc#4321생성 · 병합mergedmainfix(core): transpile/tokenize 가 빈 소스('')를 거부 — 빈 파일은 유효 입력
ohah/zntc#4319생성 · 병합mergedmainfix(server): resolveLazySeedPath 가 대문자 hex 청크 요청 404 — case-insensitive 비교
ohah/zntc#4317생성 · 병합mergedmainfix(cli): --proxy https 대상 기본 포트 443 + 파싱 중복 제거
ohah/zntc#4315생성 · 병합mergedmainfix(server): mime lookup 이 대문자 확장자(.JS/.PNG) 미매칭 → 잘못된 Content-Type
ohah/zntc#4313생성 · 병합mergedmainfix(mangler): isReservedOrGlobal 에 strict 예약어 eval 추가 — base54 eval 배정 SyntaxError 방지
ohah/zntc#4311생성 · 병합mergedmainfix(parser): decodeStringKey 가 비-ASCII import-attr 키 byte 누락 → 거짓 중복 에러
ohah/zntc#4310생성 · 병합mergedmainfix(schema): #4223 CLI flag ↔ BuildOptions schema sync drift 4건 해소
ohah/zntc#4308생성 · 병합mergedmainfix(regexp): collectClassSet 이 v-flag intersection/subtraction 을 union 으로 miscompile
ohah/zntc#4306생성 · 병합mergedmainfix(rn): in-flight refreshBundle 완료가 새 staleness 마스킹 방지 — generation guard
ohah/zntc#4304생성 · 병합mergedmainfix(bundler): dynamic import attributes specifier 미교체 회귀 — 닫는 quote 뒤 ',' 허용
ohah/zntc#4303생성 · 병합mergedmainfix(server): WS 초기 write + 등록을 한 ws_clients.mutex 임계영역으로 — 공유 writer data race
ohah/zntc#4301생성 · 병합mergedmainfix(server): watchLoop changed_set/paths 가 watcher event path alias — intake dupe
ohah/zntc#4300생성closedmainfix(bundler): #4295 dynamic import specifier 재작성 경계 검증 — prefix 충돌/문자열 오재작성 해소
ohah/zntc#4298생성 · 병합mergedmainfix(bundler): clearCanonicalNames 가 ns_export_cache 미무효화 — canonical_strings borrow UAF
ohah/zntc#4296생성 · 병합mergedmainfix(bundler): dynamic import specifier 재작성이 substring first-match — opener 게이트 + walk
ohah/zntc#4294생성 · 병합mergedmainfix(flow): 리터럴 타입이 binary/octal/exponential 숫자 누락 — isNumericLiteral() 일반화
ohah/zntc#4292생성 · 병합mergedmainfix(core): 플러그인 filter g/y 플래그 stateful lastIndex — 파일 격번 skip
ohah/zntc#4290생성 · 병합mergedmainfix(codegen): export default sequence 괄호 drop — emitExpr(.comma) 로 wrap
ohah/zntc#4288생성 · 병합mergedmainfix(config): tsconfig target case-sensitive 매칭 — PascalCase(ESNext/ES2020) 다운레벨 비활성화
ohah/zntc#4286생성 · 병합mergedmainfix(core): identifyWorkspaceEntries 가 다중 inline 워크스페이스를 cwd-dedup 으로 누락
ohah/zntc#4284생성 · 병합mergedmainfix(codegen): private mangler 가 생존 원본 이름과 충돌하는 generated 이름 할당 (중복 #a SyntaxError)
ohah/zntc#4282생성 · 병합mergedmainfix(transformer): generator 라벨 continue 가 for-of/for-in/do-while 에서 잘못된 타겟 점프(무한 루프)
ohah/zntc#4280생성 · 병합mergedmainfix(transformer): ES2015 class 식 IIFE 재빌드가 _this alias 누락 — 재빌드 제거
ohah/zntc#4278생성 · 병합mergedmainfix(napi): build/watch async 에러 경로 자원 누수 — full cleanup 통일
ohah/zntc#4276생성 · 병합mergedmainfix(react-native): open-url 미검증 입력 — scheme allowlist + win32 non-shell opener
ohah/zntc#4274생성 · 병합mergedmainfix(minify): simplifySequence raw-slice realloc use-after-free — iterateExtraList 전환
ohah/zntc#4272생성 · 병합mergedmainfix(semantic): checkImportMutation member-target OOB panic 가드
ohah/zntc#4270생성 · 병합mergedmainfix(bundler): makeModuleKeyBuf 스택 버퍼 오버플로 — ModuleKey heap-spill로 교체
ohah/zntc#4268생성 · 병합mergedmainfix(transformer): ES2025 (?i:[…]) 비-ASCII class fold bail 시 중첩 class miscompile (#4210)
ohah/zntc#4267생성 · 병합mergedmainfeat(transformer): ES2025 regex (?m:…) multiline 앵커 다운레벨 — i/s/m 트리오 완성 (#4210)
ohah/zntc#4266생성 · 병합mergedmainfeat(transformer): ES2025 regex (?i:…) modifier ASCII non-u 다운레벨 + transform-driven 진단 (#4210)
ohah/zntc#4265생성 · 병합mergedmainfeat(transformer): ES2025 regex (?s:…) modifier 다운레벨 + effective-flag 컨텍스트 (#4210)
ohah/zntc#4264병합mergedmainfeat(compat): ES2025 regex inline modifier (?i:...) 미지원 타겟 진단 게이트 (#4210)