2026-06-15

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

요약 (AI 작성)

maru는 chrome의 rich 테마를 GPU로 그리는 작업을 진행했습니다. rich 토큰셋과 chrome.theme 설정(#445), GpuQuad·GpuShadow ABI와 SDF quad 렌더 파이프라인(#447)을 깔고 사이드바 밴드를 quad로 그린 뒤, 모달 합성 레이어를 나눠 둥근 모달 배경(#457)과 테두리, 그림자 셰이더와 draw 패스(#464), 화면 경계를 넘지 않는 모달 패딩을 붙였습니다. 탭 바는 hit-test와 그리기가 같은 픽셀 경계를 쓰도록 정리하고 bottom·under·over 3단 draw로 둥근 활성 탭과 gradient를 넣었다가, 사용자 요청에 따라 평평한 배경에 앰버 언더바를 두는 방식으로 바꿨습니다(#496). 사이드바에는 활성 워크스페이스 앰버 막대와 카드 여백을 더했고, 탭 고정 폭과 세로 패딩, 넘칠 때의 가로 스크롤 버튼(#505)과 트랙패드 가로 스와이프(#514), 클릭 가능한 영역의 손가락 커서도 추가했습니다. 코드 주석의 외부 도구 이름을 maru 자체 용어로 바꿨고, metal_frame을 renderer 레이어로 옮겨 중립 frame 계약을 만들었습니다(#516).

후반에는 미구현 터미널 프로토콜을 점검해 채웠습니다. nvim 모드 표시가 지워지지 않던 문제를 고친 ECH(#519), 포커스 이벤트 DECSET 1004(#520), SGR·x10 마우스 리포팅과 그 연결(#521, #523), synchronized output DECSET 2026(#525), kitty keyboard protocol(#526, #527), kitty graphics APC 파서와 RGBA·RGB 이미지 디코드·저장(#528, #530)이 들어왔습니다. 이후 clean-room 기준에 맞춰 kitty FlagStack을 독립적으로 다시 쓰고 Ghostty 구조 인용을 지웠으며(#533), ESU가 오지 않으면 화면이 멈추던 synchronized output에 timeout을 넣었습니다(#534).

zntc는 import specifier 사용 여부 판정, wrapped 경로 메타데이터 생성, import record 병합을 O(N²)에서 O(N)으로 줄이고(#4408, #4409, #4410) export_map 키를 구조체로 바꿨습니다(#4427). Infinity·NaN 상수 폴딩 회귀(#4416)와 음수 리터럴 팽창(#4429), optional catch binding 섀도잉(#4417), 클래스 본문 strict mode 전파와 Annex B 게이트(#4418, #4435), config와 CLI의 머지 우선순위(#4419), \p{name=value}의 값 손실(#4420)을 고쳤습니다. 번들러 진단이 ZNTC 코드와 문서 URL을 내도록 하고 빠진 오류 문서와 동기화 CI 가드를 추가했으며(#4422, #4431, #4433, #4436), 설계 문서와 코드의 차이를 일괄 정정했습니다. RN 버전별 다운레벨 타깃 --rn-version #4437은 이날 PR이 열렸습니다.

suji는 Electron 패리티를 이어 flashFrame·about·login item·contentProtection 등 app·window 메서드 묶음(#159), setPath·로캘 등 경로·메타 API(#162), showMessageBox 아이콘(#163), will-quit·open-url 이벤트(#164), 인증서 오류·로그인·클라이언트 인증서 선택 이벤트(#168)를 추가하고, 인증 콜백의 IO 스레드 emit UAF를 바로 고쳤습니다(#169). Windows에서는 e2e를 별도 잡으로 분리하고 suji types, 레지스트리 Run 키 login item, FlashWindowEx 주의 요청(#165부터 #167까지)을 지원했습니다. multi 스캐폴딩에 node 백엔드를 넣고(#173) 패리티 감사·CLI 플래그·suji.schema.json 보안 섹션 문서를 정비했습니다. iris는 Android 런타임 벤치마크 lane을 넓히고 strict 엔진 체크섬 검증을 넣는 등 측정 경로를 정리했습니다(#40). 블로그 저장소에는 오늘의 커밋 요약과 크론 교정 커밋이 올라갔습니다.

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

커밋

ohah/iris

ohah/maru

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/iris#40생성 · 병합mergedmainIris Android 런타임 벤치마크 측정 경로 정리
ohah/maru#534생성 · 병합mergedmainfix(platform): synchronized output(2026) ESU-유실 timeout — freeze 복구 (audit HIGH)
ohah/maru#533생성 · 병합mergedmainrefactor(terminal): kitty clean-room — FlagStack 독립 재작성 + Ghostty 인용 제거 (audit)
ohah/maru#532생성 · 병합mergedmaindocs(implementation-plan): kitty graphics 1단계(이미지 저장) 완료 반영 (#530/#531)
ohah/maru#531생성 · 병합mergedmainfix(terminal): kitty graphics 치수 곱 오버플로 거부 — panic 방지 (code review)
ohah/maru#530생성 · 병합mergedmainfeat(terminal): kitty graphics 이미지 디코드+저장 — RGBA/RGB transmit (audit 5/5 1단계)
ohah/maru#529생성 · 병합mergedmaindocs(implementation-plan): sync 미구현 프로토콜 audit 진행 (focus/mouse/sync/kitty)
ohah/maru#528생성 · 병합mergedmainfeat(terminal): kitty graphics APC 파서 + command 파싱 토대 (audit 5/5)
ohah/maru#527생성 · 병합mergedmainfix(terminal): kitty Shift+Enter/Tab/Backspace는 legacy 바이트 대신 CSI u (code review)
ohah/maru#526생성 · 병합mergedmainfeat(terminal): kitty keyboard protocol — FlagStack + CSI u dispatch + disambiguate 인코딩 (audit 4/5)
ohah/maru#525생성 · 병합mergedmainfeat(terminal): synchronized output (DECSET 2026) — sync 중 frame hold, ESU에 1 frame (audit 3/5)
ohah/maru#524생성 · 병합mergedmainfix(platform): 휠 mouse reporting을 활성 pane 기준으로 정합 (focus·mouse max 리뷰)
ohah/maru#523생성 · 병합mergedmainfeat(platform): mouse reporting 연결 — 클릭/드래그/휠 → SGR/x10 PTY (audit 2/5, 8b-2)
ohah/maru#522생성 · 병합mergedmainfeat(platform): mouse ABI에 button/mods 추가 (mouse reporting 8b-1, 동작 무변화)
ohah/maru#521생성 · 병합mergedmainfeat(terminal): mouse reporting core — DECSET 모드 + reportMouse SGR/x10 (audit 2/5, 8a)
ohah/maru#520생성 · 병합mergedmainfeat(terminal): focus events (DECSET 1004) — CSI I/O 포커스 리포트 (미구현 프로토콜 audit 1/5)
ohah/maru#519생성 · 병합mergedmainfeat(terminal): ECH (CSI Ps X) — 커서부터 N칸 제자리 blank (nvim 모드 라벨 clear 버그)
ohah/maru#518생성 · 병합mergedmaindocs(layering): metal_frame을 L1 renderer 행으로 — L4 render projection stale 정합
ohah/maru#517생성 · 병합mergedmaindocs(implementation-plan): New Window·chrome 고급화 백로그 → 구현 완료 반영
ohah/maru#516생성 · 병합mergedmainrefactor(renderer): metal_frame을 platform/macos→renderer로 이주 — 중립 frame 계약 (B 완료, §8)
ohah/maru#515생성 · 병합mergedmaintest(boundary): neutrality 가드에 terminal(L1) 추가 + §5 B·§8 docs 정합 (B 가드 부분)
ohah/maru#514생성 · 병합mergedmainfeat(chrome): 트랙패드 가로 스와이프 → 탭 바 가로 스크롤 (ABI v44, #505 리뷰 2b)
ohah/maru#513생성 · 병합mergedmainfeat(chrome): ‹/› 스크롤 방향 affordance — 여지 있는 방향만 강조·경계 muted (#505 리뷰 #3)
ohah/maru#512생성 · 병합mergedmainfix(chrome): 사이드바 커서 판정의 sidebarSlotAt 중복 호출 제거 (#511 리뷰)
ohah/maru#511생성 · 병합mergedmainfeat(chrome): 클릭 가능 영역 pointingHand 커서 — 탭 바·워크스페이스 슬롯 (#505 리뷰 #5c)
ohah/maru#510생성 · 병합mergedmainfeat(chrome): 가로 스크롤 ‹› hover 색 — hover 시 밝게(클릭 가능 표시) (#505 리뷰 #5b)
ohah/maru#509생성 · 병합mergedmainfeat(chrome): 가로 스크롤 ‹› 사각 버튼 + 사이 공백 (#505 리뷰 #5a)
ohah/maru#508생성 · 병합mergedmainfix(chrome): 활성 탭 자동 스크롤-인 — focusTerm이 스크롤 밖 탭 보이게 (#505 리뷰 #2)
ohah/maru#507생성 · 병합mergedmaindocs(chrome): U3에 탭 고정폭·세로패딩·가로 스크롤 반영 — 중간 추가 기능 docs 동기화
ohah/maru#506생성 · 병합mergedmainfix(chrome): 가로 스크롤 stale offset 복구 + tui 무스크롤 — #505 리뷰 (#1·#4)
ohah/maru#505생성 · 병합mergedmainfeat(chrome): 가로 탭 스크롤 ‹›버튼 — 넘칠 때 우측 스크롤 + 클리핑 (Step 2a-2)
ohah/maru#504생성 · 병합mergedmainfeat(chrome): 가로 탭 스크롤 배관 — segCols scroll offset (Step 2a-1, offset 0 무변화)
ohah/maru#503생성 · 병합mergedmainfix(chrome): paneBarHeightPx undefined-session UB 가드 — #500 누락 리뷰 보충에서 발견
ohah/maru#502생성 · 병합mergedmainrefactor: 코드 주석의 외부 도구명 전수 제거 — maru 자체 용어·멀티플렉서로 (사용자 지시)
ohah/maru#501생성 · 병합mergedmainrefactor: 코드 주석·테스트 제목의 외부 도구 출처 표현 제거 — maru 자체 용어로 치환
ohah/maru#500생성 · 병합mergedmainfeat(chrome): 탭 바 세로 패딩 — 바 높이 cell+2*pad_y, 제목 세로 중앙 (사용자 요청)
ohah/maru#499생성 · 병합mergedmainfeat(chrome): 탭 고정 폭 레이아웃 — 균등 stretch 대신 고정폭(빈 영역 허용), tui 균등 유지 (Step 1/2)
ohah/maru#498생성 · 병합mergedmainfix(chrome): 활성 탭 언더바 두께를 바 높이로 clamp — thin bar에서 바 위로 안 새게 (#496 리뷰)
ohah/maru#497생성 · 병합mergedmainrefactor(chrome): 활성 pane 사각 ring 제거 — 탭 하단 언더바로 일원화 (사용자 요청)
ohah/maru#496생성 · 병합mergedmainfeat(chrome): 활성 탭 VSCode식 — 평평 배경 + 하단 maru 앰버 언더바 (사용자 요청)
ohah/maru#495생성 · 병합mergedmainrefactor(chrome): Rect.outset(inset 대칭) 추가 + 모달 패딩 선언화 — 박스 유틸 통일
ohah/maru#494생성 · 병합mergedmainrefactor(chrome): solid 직각 GpuQuad 헬퍼 appendSolidQuad 추출 (#492 리뷰 cleanup)
ohah/maru#493생성 · 병합mergedmainfix(chrome): 활성 탭 밴드 하단 직각화 — 둥근 하단 코너 divider 비침 제거 (#492 리뷰)
ohah/maru#492생성 · 병합mergedmainfeat(chrome): U3 가로 탭 납작화 — 탭 전용 곡률 토큰 분리(flat 밴드)
ohah/maru#491생성 · 병합mergedmainfix(chrome): 탭바 구분선 두께 line_thickness_px 토큰화 — 1px GpuQuad SDF 흐림 해소 (#490 리뷰)
ohah/maru#490생성 · 병합mergedmainfeat(chrome): 탭바 하단 구분선 — 탭바와 터미널 콘텐츠 경계 (탭바 다듬기, 사용자 #1)
ohah/maru#489생성 · 병합mergedmainfix(chrome): 모달 열림 시 활성 pane ring skip — ring이 모달 배경 가로지름 방지 (#488 리뷰)
ohah/maru#488생성 · 병합mergedmainfeat(chrome): full rich split 활성 pane 앰버 테두리(ring) — 포커스 강조 (사용자 요청 #1)
ohah/maru#487생성 · 병합mergedmainfix(chrome): 사이드바 제목 우측 초과 방지 — indent+cols clamp (B2 리뷰 e)
ohah/maru#486생성 · 병합mergedmainfix(chrome): 사이드바 제목을 content rect만큼 들여쓰기 — 좌측 막대 가림 해결 (B2, 사용자 피드백)
ohah/maru#485생성 · 병합mergedmainrefactor(chrome): Rect.inset(EdgeInsets) 선언적 패딩 유틸 + 사이드바 카드/막대 통일 (B1)
ohah/maru#484생성 · 병합mergedmainfeat(chrome): 사이드바 카드 레이아웃 — 워크스페이스 카드 사이 여백 (U2)
ohah/maru#483생성 · 병합mergedmainfeat(chrome): 사이드바 활성 워크스페이스 좌측 maru-accent 막대 (U1-2, 첫 시각)
ohah/maru#482생성 · 병합mergedmainfeat(chrome): maru 앰버 accent 색 토큰 + chrome 로드맵 docs 동기화 (U1-1)
ohah/maru#481생성 · 병합mergedmainfeat(platform): rich 활성 탭 vertical gradient — C4b-5 완결 (둥근 탭 + gradient)
ohah/maru#480생성 · 병합mergedmainfix(platform): rich 탭 밴드 z-order — 바 배경에 가려 활성 탭 안 보이던 버그 (#479 리뷰 #1)
ohah/maru#479생성 · 병합mergedmainfeat(platform): rich 활성 탭 둥근 GpuQuad 밴드 — 첫 시각 (C4b-5②b)
ohah/maru#478생성 · 병합mergedmainrefactor(platform): 탭 밴드 quad 생명주기 토대 — dropQuadsByLayer 일반화 (C4b-5②a)
ohah/maru#477생성 · 병합mergedmaindocs(platform): GpuQuad.layer 주석에 2=bottom(탭 밴드) 동기 (#476 리뷰)
ohah/maru#476생성 · 병합mergedmainfeat(platform): chrome 탭 밴드 레이어 토대 — 3-way draw(bottom/under/over) (C4b-5①)
ohah/maru#475생성 · 병합mergedmainfeat(chrome): tabbar 제목·✕를 segCols 단일 소스로 — C4b-4 둘째-B 완결 (§6 seam 해소)
ohah/maru#474생성 · 병합mergedmainfeat(chrome): tabbar 활성 밴드를 segOf 셀 경계로 — view 단일 소스 시작 (C4b-4 둘째)
ohah/maru#473생성 · 병합mergedmainfix(chrome): tabbar tabIndex overflow 회귀 — 안 보이는 탭 hit 방지 (#472 리뷰 #1)
ohah/maru#472생성 · 병합mergedmainfeat(chrome): tabbar segOf 픽셀 경계 단일 소스 — hit-test 재배선 (C4b-4 토대, §6 seam)
ohah/maru#471생성 · 병합mergedmaindocs(chrome): 모달 패딩 주석 정정 — avail_cols=0 floor regime 침범 명시 (패딩 리뷰 반영)
ohah/maru#470생성 · 병합mergedmainfeat(chrome): notice 모달 패딩 view depth — 패딩 작업 완결 (#468 리뷰 #1)
ohah/maru#469생성 · 병합mergedmainfeat(chrome): 모달 패딩을 view depth로 (find/palette) — 화면 경계 안전 (#468 리뷰 #1)
ohah/maru#468생성 · 병합mergedmainfeat(chrome): rich 모달 팝업 패딩 — 배경 박스를 텍스트보다 크게 (사용자 피드백)
ohah/maru#467생성 · 병합mergedmainfix(platform): rich 모달 선택 행 강조 — 빈 칸까지 skip되던 버그 (사용자 피드백)
ohah/maru#466생성 · 병합mergedmainrefactor(chrome): shadow 파라미터를 Spacing 토큰으로 (모달-3 리뷰 cleanup)
ohah/maru#465생성 · 병합mergedmainfix(platform): 모달 그림자 draw 순서 — 터미널에 가려 깜빡이던 버그 (모달-3 리뷰 #1)
ohah/maru#464생성 · 병합mergedmainfeat(chrome): 모달 그림자 lowering — 모달 첫 그림자 시각 (모달-3b-3)
ohah/maru#463생성 · 병합mergedmainfeat(platform): chrome 그림자 gpu_shadows 배관 (모달-3b-2)
ohah/maru#462생성 · 병합mergedmainfeat(platform): chrome 그림자 draw 패스 — fill_shadow_instance + 7-세그먼트 (모달-3b-1b-ii)
ohah/maru#461생성 · 병합mergedmainfeat(platform): shadow 정점 struct + 60B 가드 (모달-3b-1b-i)
ohah/maru#460생성 · 병합mergedmainfeat(platform): chrome 그림자 셰이더 + 파이프라인 (모달-3b-1a)
ohah/maru#459생성 · 병합mergedmainfeat(chrome): rich 모달 quad 테두리 — 직각 셀 테두리 정합 (모달-3a)
ohah/maru#458생성 · 병합mergedmainfix(platform): rich 모달 둥근 배경이 셀에 가려 사각으로 보이던 버그 (모달-2c, 리뷰 #1)
ohah/maru#457생성 · 병합mergedmainfeat(chrome): 모달 팝업 배경 둥근 quad — 모달 첫 시각 (모달-2b-ii)
ohah/maru#456생성 · 병합mergedmainfeat(platform): 모달 quad 생명주기 — dropModalQuads + 머지 (모달-2b-i)
ohah/maru#455생성 · 병합mergedmainfeat(platform): 모달 배경 quad rasterize 수집 (모달-2a)
ohah/maru#454생성 · 병합mergedmainfix(platform): 모달-1/1c 리뷰 반영 — modal_cells_start 불변 assert + MetalFrame ABI offsetOf
ohah/maru#453생성 · 병합mergedmainfeat(platform): 모달 over quad 텍스트 경계 분할 (모달-1c, ABI v43)
ohah/maru#452생성 · 병합mergedmainfeat(platform): chrome 모달 합성 레이어 토대 — GpuQuad.layer + draw under/over 분리 (모달-1, ABI v42)
ohah/maru#451생성 · 병합mergedmainfix(platform): rich 사이드바 밴드 z-order + quad ABI 회귀 가드 (C4b-3 리뷰 반영)
ohah/maru#450생성 · 병합mergedmainfeat(chrome): sidebar 밴드 GPU quad 렌더 + gpu_quads 배관 (C4b-3)
ohah/maru#449생성 · 병합mergedmainfeat(chrome): ChromeDraw.quad Op + Spacing 모양 토큰 (C4b-2)
ohah/maru#448생성 · 병합mergedmainfeat(platform): chrome rich quad SDF 렌더 파이프라인 + draw 패스 (C4b-1b)
ohah/maru#447생성 · 병합mergedmainfeat(platform): chrome rich GPU 프리미티브 ABI 토대 — GpuQuad/GpuShadow (C4b-1a, ABI v41)
ohah/maru#446생성 · 병합mergedmaintest(config): C4a 리뷰 반영 — chrome.theme 파싱·전파 테스트 보강
ohah/maru#445생성 · 병합mergedmainfeat(chrome): rich 토큰셋 + config chrome.theme 분기 (C4a)
ohah/suji#175생성 · 병합mergedmaindocs(schema): suji.schema.json 에 fs/shell/dialog/security 보안 4섹션 추가
ohah/suji#174생성 · 병합mergedmaindocs(cli): suji build 서명/공증/패키징 플래그를 usage·CLAUDE.md 에 문서화
ohah/suji#173생성 · 병합mergedmainfeat(init): multi 스캐폴딩에 node 백엔드 추가 — 6 backend(examples 동등)
ohah/suji#172생성 · 병합mergedmainfix(cli): 네이티브 suji init 도움말/에러에 python backend 누락 보완
ohah/suji#171생성 · 병합mergedmaindocs(parity): audit 전수 점검 — 구현됐으나 미마킹이던 9개 ✅
ohah/suji#170생성 · 병합mergedmaindocs(parity): audit/CLAUDE.md/SDK 문서 동기화 (Windows stale + audit 마킹 누락)
ohah/suji#169생성 · 병합mergedmainfix(auth): IO-스레드 emit UAF + 구독 게이트 (PR #168 인증 콜백 hotfix)
ohah/suji#168생성 · 병합mergedmainfeat(parity): app:certificate-error / login / select-client-certificate 인증 이벤트 (B 묶음 4/4)
ohah/suji#167생성 · 병합mergedmainfeat(attention): Windows requestUserAttention via FlashWindowEx
ohah/suji#166생성 · 병합mergedmainfeat(login-item): Windows registry Run key (setLoginItemSettings parity)
ohah/suji#165생성 · 병합mergedmainfeat(cli): suji types on Windows + fix e2e-split test regression + doc currency
ohah/suji#164생성 · 병합mergedmainfeat(parity): app:will-quit / app:open-url 이벤트 (B 묶음 3/4)
ohah/suji#163생성 · 병합mergedmainfeat(parity): dialog.showMessageBox icon + readFindText/accessibility 정직경계 (A 묶음 2/4)
ohah/suji#162생성 · 병합mergedmainfeat(parity): app 경로/메타 — setPath/getLocaleCountryCode/getRecentDocuments/getApplicationName·InfoForProtocol (A 묶음 1/4)
ohah/suji#161생성 · 병합mergedmaindocs(python): mark Windows packaging done; narrow the remaining follow-up
ohah/suji#160생성 · 병합mergedmainci: split Windows e2e into its own job (decouple from Linux matrix)
ohah/suji#159생성 · 병합mergedmainfeat(parity): app/window Electron 저가치 메서드 일괄 (flashFrame/about/recentDocs/loginItem/contentProtection/skipTaskbar)
ohah/suji#158생성 · 병합mergedmainchore(review): address /code-review max findings on PRs #151-157
ohah/zntc#4437생성mergedmainfeat(compat): --rn-version 타겟 — RN 문서 기준 버전별 다운레벨
ohah/zntc#4436생성 · 병합mergedmainfix(diagnostic): 번들러 진단 7개 ZNTC 코드 할당 + app/wasm 출력 일관성 (#4423 후속)
ohah/zntc#4435생성 · 병합mergedmainfix(semantic): class body strict if-body Annex B 게이트 누락 (#4418 형제) + /code-review 후속
ohah/zntc#4433생성 · 병합mergedmainfix(diagnostic): 번들러 진단이 ZNTCxxxx 코드 + docs URL 방출 (dead fromBundlerDiagnostic 정리)
ohah/zntc#4431생성 · 병합mergedmainci: error 문서 동기화 가드 추가 (404 재발 방지, #4421 후속)
ohah/zntc#4429생성 · 병합mergedmainfix(minify): unary-minus fold size 가드 추가 (-1e21 등 음수 리터럴 팽창 방지)
ohah/zntc#4427생성 · 병합mergedmainperf(linker): export_map 문자열 키 → (module_index, name) struct 키
ohah/zntc#4426생성 · 병합mergedmainrefactor(bundler): 죽은 phase-accessor 계층 제거 + INVARIANTS 현실화
ohah/zntc#4424생성 · 병합mergedmaindocs: 설계 문서-코드 괴리 일괄 정정 (전수조사 2026-06-15)
ohah/zntc#4422생성 · 병합mergedmaindocs(errors): ZNTC0623/0805 누락 페이지 생성 (docsUrl 404 수정)
ohah/zntc#4420생성 · 병합mergedmainfix(regexp): \p{name=value}의 =value 손실로 인한 런타임 SyntaxError 수정
ohah/zntc#4419생성 · 병합mergedmainfix(cli): zntc.config.json 머지 우선순위 정정 (CLI > config — define/배열 옵션)
ohah/zntc#4418생성 · 병합mergedmainfix(semantic): class body strict mode 중첩 스코프 전파 (중복선언 early-error 누락)
ohah/zntc#4417생성 · 병합mergedmainfix(transformer): es2019 optional catch binding의 _unused 섀도잉 miscompile 수정
ohah/zntc#4416생성 · 병합mergedmainfix(minify): Infinity/NaN 상수 폴딩이 inf/nan 식별자를 방출하는 회귀 수정
ohah/zntc#4410생성 · 병합mergedmainperf(graph): mergeImportRecords O(N²)→O(N) — import record identity 해시맵
ohah/zntc#4409생성 · 병합mergedmainperf(linker): buildMetadataForAst wrapped 경로 O(N²)→O(N) — record별 binding 비트셋
ohah/zntc#4408생성 · 병합mergedmainperf(transformer): isImportSpecifierUnused O(N²)→O(N) — value-use symbol 집합 캐시