2026-06-10

요약 (AI 작성)

오늘 주요 활동은 ohah/maru의 IME 통합 구현과 여러 플랫폼/터미널 개선이 중심이었습니다. maru는 IME 작성 단계 1과 2를 완성하며 macOS 입력 방식의 문법 기반 단축키, 편집 중 커서 깜빡임 방지, 편집 중 선택 영역 표시, URL 하이퍼링크(OSC 8), 드래그 선택 가독성 개선 등을 구현했습니다. 또한 PTY의 비차단 처리, 배치 큐 개선, 마스터 파일 디스크립터 논블로킹화 등의 핵심 안정성 개선 작업이 이어졌습니다. ohah/suji에서는 터미널용 PTY 플러그인과 로컬 Node 앱용 libnode 포함, dylib 서명과 종료 시 크래시 수정 등을 진행했습니다. ohah/zntc는 ES2025의 duplicate named capture groups 기능과 관련한 다운레벨링 구현과 템플릿 escape 처리, 그룹명 canonical 정규화, template lowering의 CRLF 정규화 등의 정규표현식 및 트랜스포머 개선 작업에 집중했습니다. 이들 변경은 이미 여러 PR로 머지되었으며, zntc에서는 여전히 병목 해결과 escape-aware 처리 개선 PR가 오픈되어 있습니다.

커밋

ohah/maru

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

repo#상태제목
ohah/zntc#4234openfix(transformer): const-enum 멤버 lookup 을 cooked(escape 디코드) 비교로
ohah/zntc#4233mergedfix(transformer): const-enum string 인라인의 escape-aware 재인용 + brace lowering
ohah/zntc#4230mergedfix(transformer): replace 재작성 합성 string literal 의 \u{...} brace escape 다운레벨
ohah/zntc#4227mergedfix(transformer): es5 template lowering 의 TV/TRV CR·CRLF→LF 정규화 + LineContinuation
ohah/maru#250mergedfix(platform): show preedit when scrolled, normalize committed newlines, stop autoscroll on bad coords, cover new ABI exports
ohah/maru#249mergedfix(pty): make the master fd non-blocking so paste flush never blocks the UI tick
ohah/maru#248mergedfix(terminal): reset OSC 8 pen_link on screen switch and RIS; add a real RIS hard reset
ohah/maru#247mergedfix(platform): always close the IME transaction; replay arrows after candidate commit; fail closed on OOM
ohah/maru#246mergedfix(terminal): hide the block cursor during IME composition (no double cursor)
ohah/maru#245mergedfix(platform): cancel insertText+deleteBackward so last-jamo backspace deletes in one press (ABI v21)
ohah/zntc#4226mergedfix(regexp): transform 이 inline modifier 영역의 유효 플래그 존중 — (?-s:) dot 오재작성 / (?-i:) iu fold 오확장
ohah/maru#244mergeddiag(platform): add MARU_IME_DEBUG callback trace for the macOS input method
ohah/maru#243mergedrefactor(platform): move the IME decision logic into Zig (ABI v20); fix last-jamo backspace
ohah/zntc#4224mergedfeat(compat): ES2025 regex_duplicate_named_groups feature gate
ohah/zntc#4222mergedfix(semantic): 식별자 이름 해석을 string_ref 정본으로 — bundle+minify 합성 temp 선언 오삭제/반쪽 rename
ohah/zntc#4219mergedfix(transformer): proto 그룹명의 groups map 키를 computed key / JSON.parse 로 emit
ohah/maru#242mergedfix(platform): freeze the cursor blink during composition; commit preedit on focus loss
ohah/maru#241mergedfix(terminal,platform): BS moves exactly one column; IME-consumed keys stop reaching the PTY
ohah/maru#240mergedfeat(terminal,platform): IME stage 2 — render the in-progress composition (preedit) at the cursor (ABI v19)
ohah/maru#239mergedfix(platform): remove the IME fallback double-send and bypass the IME for Option chords
ohah/zntc#4217mergedfix(regexp): 그룹 이름 비교를 canonical (escape 디코드) 코드포인트 시퀀스로 통일
ohah/maru#238mergedfeat(platform): IME stage 1 — NSTextInputClient composition + layout-independent shortcuts (ABI v18)
ohah/zntc#4215mergedfix(transformer): replace template replacement 의 unsafe 문자 시 정적 재작성 bail
ohah/maru#237mergedfeat(terminal): OSC 8 explicit hyperlinks (cell link ids + interned URI store)
ohah/maru#236mergedfix(pty): add writeInputNonBlocking to the non-macOS stub (Linux CI build break)
ohah/maru#235mergedfix(platform,pty): non-blocking paste queue, anchored-rewrap perf coverage, deflaked blink probe
ohah/zntc#4212mergedfix(regex_lower): extractNamedGroupMap 이 ES2025 inline modifier 그룹 (?i:...) 을 capturing 으로 오집계
ohah/zntc#4209mergedfix(runtime): __wrapRegExp buildGroups 의 groups map 부재 가드 — cloneRegExp 패턴 크래시
ohah/maru#234mergedfix(terminal,platform): drag autoscroll after word-select, no-rebuild cursor blink, pre-rewrap on selection start
ohah/maru#233mergedfix(terminal,platform): strip ESC from pastes (injection), exact Cmd chord, valid hover coords on flagsChanged
ohah/maru#232mergedfix(platform,terminal): crash-safe mouse coords, content-following hover underline, URL paren balance
ohah/maru#231mergedfix(terminal): invalidate selection on every row-relocating op (single chokepoint)
ohah/maru#230mergedtest(platform): headless integration probe for cursor blink
ohah/zntc#4208mergedfix(runtime): __wrapRegExp constructor-side prototype 설정 — matchAll/split species 우회로 .groups 유실
ohah/maru#229closedfeat(platform): cursor blink driven by the 30Hz tick, plus a Swift paste warning fix
ohah/zntc#4206mergedfix(transformer): ES2025 duplicate named capture group 다운레벨 silent miscompile
ohah/maru#228mergedfeat(platform): drag-selection autoscroll at the viewport edges
ohah/maru#227mergedfeat(terminal,platform): Cmd+hover underlines URLs and switches to a pointing-hand cursor (ABI v17)