2026-06-11

요약 (AI 작성)

오늘은 ohah/maru, ohah/zntc, ohah/suji, ohah/ohah.github.io 프로젝트에 대해 주로 리팩토링과 버그 수정에 집중했습니다. ohah/maru에서는 이모지 렌더링과 터미널 모드 2027, 키 바인딩 및 기능 키 지원 등 다양한 기능을 개선했고 VT 표준 준수를 위한 테스트를 추가했습니다. ohah/zntc는 ES5/ES2017에서의 코드 생성 개선에 집중하여 object rest, computed properties, identifier escape 등의 변환 문제를 수정했습니다. ohah/suji에서는 macOS DMG notarization 과정의 읽기 검증 로직 이슈를 처리했고 ohah/ohah.github.io는 CRD 문서의 섹션 레벨을 일관성 있게 조정했습니다.

커밋

ohah/maru

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

repo#상태제목
ohah/zntc#4259mergedfix(transformer): for-of/for-in binding object rest LHS 의 es2015~17 코드깨짐 + per-iteration 보존
ohah/zntc#4258mergedfix(transformer): super prop 이 destructuring assignment target 일 때 __superSet write 로
ohah/maru#282mergedfix(pty): wrap the interactive shell in login(1) for a full login session (macOS)
ohah/zntc#4257mergedfix(transformer): es5 computed object-literal 의 string/numeric 키를 computed member 로
ohah/maru#281mergedfix(pty): run the interactive shell as a login shell (+ configurable TERM)
ohah/zntc#4256mergedfix(codegen): identifier 위치 \u{...} brace escape 를 es5 에서 다운레벨
ohah/maru#280mergedfeat(keybinding): built-in macOS line-editing bindings (Cmd+Backspace etc.)
ohah/maru#279mergedchore(macos): log modifier flags in keyDown trace (MARU_IME_DEBUG)
ohah/maru#278mergedchore(runtime): log outgoing key bytes (core->pty) under MARU_DEBUG
ohah/zntc#4255mergedfix(transformer): 함수/arrow 파라미터·assignment-target object rest 를 es2017 에서 lowering
ohah/maru#277mergedfeat(config): input.page-keys (default passthrough = xterm/Ghostty)
ohah/maru#276mergedfix(platform): PageUp/PageDown scroll on main screen, page the app on alt screen
ohah/maru#275mergedfix(platform): route special keys straight to the encoder, not through the IME
ohah/maru#274mergedfeat(platform): wire physical function keys to the encoder (ABI KeyCode + Swift keyCode map)
ohah/maru#273mergedfix(terminal): keep soft-wrap flag when mode-2027 emoji wraps at the scroll bottom (re-check HIGH)
ohah/maru#272mergedfix(render): restore 0x1F000-block color emoji + honor VS15 (re-check)
ohah/maru#271mergedfix(platform): guard loaded_config deinit + isolate config from unit tests (re-check HIGH)
ohah/maru#270mergedfeat(terminal): function-key encoding + bindings (Home/End/Insert/Delete/Page/F1-F12) — terminal side
ohah/maru#269mergedfeat(config): parse keybindings into a validated KeyBindingResolver
ohah/maru#268mergedfeat(config): user config file loading for appearance (font/theme/cursor)
ohah/maru#267mergeddocs(test): VT conformance testing — vttest local + self-owned response conformance
ohah/zntc#4253mergedtest(e2e): vue 설치를 3.5.35 로 고정 (2곳) — broken latest publish 회피
ohah/maru#266mergedfix(terminal): mode 2027 edge cases + RIS alternate_scroll (code-review MEDIUM)
ohah/maru#265mergedfix(render): single-source emoji color predicate + cursor color + font-based scale
ohah/zntc#4252mergedfix(bundler): object rest 의 graph prepass 게이트에 object_spread 추가
ohah/maru#264mergedfix(platform): scale-fit only emoji (text baseline) + fill slot like Ghostty .cover
ohah/maru#263mergedfeat(terminal): DEC mode 2027 (grapheme cluster width) for opt-in full-size emoji
ohah/zntc#4250mergedfix(transformer): object rest exclusion 키의 quote/escape/numeric 처리
ohah/maru#262mergedfeat(platform): scale oversized glyphs to fit their cell instead of clipping (Ghostty model)
ohah/maru#261mergedfix(terminal): keep VS16 emoji at EAW width 1 so zsh recolor redraw doesn't garble paste
ohah/maru#260mergedfix(terminal): render regional indicators as separate EAW cells (paste agreement)
ohah/maru#259mergedfix(terminal): keep skin-tone modifier at EAW width 2 (paste no longer garbles)
ohah/maru#258mergedfeat(terminal): cluster skin-tone and flag emoji into one wide cell (grapheme stage 1)
ohah/maru#257mergedfix(terminal): promote a VS16-marked base cell to width 2 (heart no longer half-cut)
ohah/maru#256mergedfix(terminal): emoji presentation — VS16 zero-width attach + default-emoji width 2 (no half-cut, color)