2026-06-14

요약 (AI 작성)

오늘(2026-06-14)은 ohah/maru, ohah/suji, ohah/zntc, ohah/iris 프로젝트에 걸쳐 상당한 확장과 버그 수정이 이루어졌습니다. maru에서는 멀티 창 관리, chrome 컴포넌트 재구조화(C0-C1 시리즈), find 오버레이 UX 개선, 세션 구조 리팩토링(S1-S2), 워크스페이스 복원 구현(R1-R6), 그리고 경계 계층 테스트(B)에 집중했습니다. suji는 Electron 정합성 개선을 위해 main.ts 진입점 지원, camera/mic 권한 통합, getFileIcon, app.relaunch() 등의 기능을 구현하고, Android 크로스빌드 준비와 백로그 메서드 9종 구현을 진행했습니다. zntc는 파서 엣지케이스, napi 리소스 누수, sourcemap 인코딩 오버플로우, 렉서 검증 문제 등 다양한 버그 수정을 통해 안정성을 높였습니다. iris는 호환성 정책 갱신과 Android 벤치마크 경로 추가로 Android 지원을 강화했습니다.

커밋

ohah/maru

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

repo#상태제목
ohah/zntc#4369mergedfix(parser): directive prologue 가 .none(stripped) 문 뒤 string literal 을 directive 로 오인
ohah/zntc#4367mergedfix(parser): parseImportDeclaration 의 도달 불가 dynamic-import 블록 제거 (dead + 잠재 divergence)
ohah/zntc#4365mergedfix(parser): containsLoneSurrogate 의 도달 불가 보조 loop 제거 (dead code)
ohah/zntc#4363mergedfix(core): serializeFunctionInfo 가 OOM 시 buf backing leak (errdefer 누락)
ohah/zntc#4361mergedfix(config): tsconfig extends + 양쪽 paths 시 base paths 컨테이너 leak
ohah/maru#428mergedfix(app): 오버레이 cell을 오버레이 font의 CoreText 실측으로 — 한글 약간 잘림 수정
ohah/zntc#4359mergedperf(bundler): 기본 worker 풀을 8 로 cap — 동일-dir openat vnode 경합 해소
ohah/zntc#4358mergedfix(bundler): buildEntrySet symlink arm 이 put 실패 시 entry.name leak
ohah/maru#427mergedfeat(chrome): C1b — 커맨드 팝업을 chrome 컴포넌트로 이주(레거시 완전 제거)
ohah/zntc#4356mergedfix(parser): generic-arrow speculation 실패 경로가 AST 노드 미복원 → orphan 잔존
ohah/suji#147mergedfeat(app): app.relaunch() — quit 후 재시작 (Electron parity)
ohah/zntc#4354mergedfix(bundler): buildPlaceholder 가 chunk index-hash 를 u32 절단 → placeholder 충돌 시 silent mislink
ohah/zntc#4352mergedfix(codegen): sourcemap encodeVLQ 가 i32 minInt 에서 overflow panic
ohah/zntc#4350mergedfix(transformer): worklet makeI32Literal 이 i32 minInt 에서 overflow panic
ohah/zntc#4348mergedfix(semantic): visitVariableDeclaration declarator 슬라이스 바운드 가드 누락 — OOB panic
ohah/maru#426mergedfix(app): 커맨드 팝업 텍스트도 EAW 폭으로 — 한글 ㄱㄴㄷ 잘림 수정
ohah/zntc#4346mergedfix(lexer): decodeUtf8 continuation byte 미검증 → overlong/후속바이트 오소비
ohah/suji#146mergedfeat(app): app.getFileIcon — 파일 시스템 아이콘 PNG (Electron parity)
ohah/zntc#4344mergedfix(lexer): getLineColumn 이 BOM 영역 offset 에서 u32 underflow + OOB panic
ohah/iris#39merged[codex] Iris 엔진 호환성 정책 갱신
ohah/zntc#4342mergedfix(server): dev proxy 가 POST/PUT 바디 미전달 + Host 무조건 :port
ohah/maru#425mergedfix(chrome): 오버레이 텍스트·caret을 EAW 셀 폭으로 — 한글 잘림 수정
ohah/zntc#4340mergedfix(transformer): top-level-await wrap 이 styled-components css-prop 추출 decl 소실
ohah/zntc#4338mergedfix(transformer): generator for-in 이 Object.keys(own-only/shadow) snapshot → for-in 의미 위반
ohah/maru#424mergedfix(chrome): 오버레이 1.3× 확대 재수정 — 폰트 크기까지 함께 스케일(루트커즈)
ohah/zntc#4336closedfix(parser): #4328 break/continue/debugger 종결을 expectSemicolon 으로 — ASI 강제
ohah/maru#423mergedrevert(chrome): 오버레이 1.3× 스케일 되돌림 — 글자 작아짐·atlas 오염
ohah/zntc#4335mergedfix(core): writeOutputFiles 가 모든 .map 을 outfile.map 으로 broad-match — 다중 map 충돌(잠재)
ohah/maru#422mergedfeat(chrome): 오버레이 글자 1.3× 확대 — 가독성
ohah/maru#421mergedfeat(chrome): find 오버레이 입력 UX — 입력 커서 + IME 조합(preedit) 표시
ohah/zntc#4333mergedfix(core): readFileOrThrowNotFound 가 workspace 부재도 'config file not found' 로 오안내
ohah/zntc#4331mergedfix(cli): bench worker 가 transpile 에러를 swallow → 무의미한 측정값 + 신호 없음
ohah/zntc#4329mergedfix(parser): break/continue 가 expectSemicolon 대신 eat(.semicolon) — ASI 종결 미강제
ohah/iris#38mergedAndroid Iris 벤치마크 비교 측정 경로 추가
ohah/maru#420mergedfeat(chrome): C1a — 스크롤백 Find를 chrome 컴포넌트로 이주
ohah/zntc#4327mergedfix(codegen): sourcemap addMapping dedup 이 name_index 무시 → 명명 매핑 소실
ohah/zntc#4325mergedfix(react-native): metro-resolve 가 빈 assetFiles 시 bare specifier 를 경로로 반환
ohah/zntc#4323mergedfix(vite-plugin): Vite 버전 게이트가 ESM require 실패 + parseInt 취약 → Vite 5 이중변환
ohah/zntc#4321mergedfix(core): transpile/tokenize 가 빈 소스('')를 거부 — 빈 파일은 유효 입력
ohah/zntc#4319mergedfix(server): resolveLazySeedPath 가 대문자 hex 청크 요청 404 — case-insensitive 비교
ohah/maru#419mergedrefactor(platform): C1-prep — 일반 오버레이 ChromeDraw→cells rasterizer
ohah/zntc#4317mergedfix(cli): --proxy https 대상 기본 포트 443 + 파싱 중복 제거
ohah/zntc#4315mergedfix(server): mime lookup 이 대문자 확장자(.JS/.PNG) 미매칭 → 잘못된 Content-Type
ohah/zntc#4313mergedfix(mangler): isReservedOrGlobal 에 strict 예약어 eval 추가 — base54 eval 배정 SyntaxError 방지
ohah/zntc#4311mergedfix(parser): decodeStringKey 가 비-ASCII import-attr 키 byte 누락 → 거짓 중복 에러
ohah/zntc#4310mergedfix(schema): #4223 CLI flag ↔ BuildOptions schema sync drift 4건 해소
ohah/maru#418mergedtest(boundary): B 중립성 가드 — L1~L3 import-방향 완성 + OS-타입 by-name 금지
ohah/maru#417mergedfix(session): /code-review max 수정 3/3 — S1 표적 divider + per-window 알림 + 경계 doc
ohah/zntc#4308mergedfix(regexp): collectClassSet 이 v-flag intersection/subtraction 을 union 으로 miscompile
ohah/maru#416mergedfix(chrome): /code-review max 수정 2/3 — 오버레이 frame dedup + Notice 테두리 렌더링