2026-06-16
요약 (AI 작성)
ohah 프로젝트는 오늘 주로 maru 터미널 에뮬레이터의 kitty 그래픽 구현을 진행하고, 다양한 VT 기능과 버그 수정을 완료했다. maru는 kitty 그래픽 이미지에 대한 Metal 렌더, 텍스처 캐시, LRU eviction, PNG 디코딩, zlib 압축, chunked 전송 등의 기능을 구현했으며, SGR 장식선(overline/strikethrough/dim)과 OSC 색/클립보드/데스크톱 알림, DECOM 등 다수의 VT 갭을 추가했다. 동시에 zntc는 디스크 캐시 시스템을 구축했다 - AST, semantic HashMap 직렬화, codec-IO 결합 레이어, 무효화 키 등이 머지되어 퍼포먼스와 테스트를 강화했다. 전반적으로 maru의 kitty 그래픽 파이프라인을 완성하고 zntc의 캐시 계층을 구현하는 데 집중했다.
커밋
ohah/maru
- fix(terminal): DECSET 1016(SGR-Pixels) mouse가 픽셀 대신 셀 좌표를 리포트하던 버그 (audit #14 MEDIUM)
- fix(terminal): kitty Ctrl+Shift+printable이 shifted codepoint를 보내던 버그 — base-layout key로 (audit #14 MEDIUM)
- feat(terminal): kitty graphics LRU evict (K4b)
- feat(terminal): kitty graphics 세분화된 delete (K4a, a=d d= 타깃)
- feat(platform): kitty graphics 텍스처 eviction (K4c, ABI v49)
- fix(terminal): autowrap이 scroll-bottom에서 soft-wrap flag를 잃던 버그 (audit HIGH)
- fix(terminal): kitty query가 미구현 flag를 거짓 광고하던 버그 (audit HIGH)
- fix(terminal): HT(tab)가 지나는 셀을 덮어쓰던 버그 — 커서만 이동 (audit MEDIUM)
- feat(renderer): kitty graphics placement→GpuImage 환산 (K2b)
- feat(platform): kitty graphics 이미지 Metal 렌더 (K2d) — textured quad + 텍스처 캐시
- feat(terminal): kitty graphics chunked 전송 (K3a, m=1)
- refactor(renderer): 텍스트 장식선 overlay 통합(LineOverlay) + dim 일관성 (code-review)
- feat(terminal): SGR 9/29 strikethrough (VT 갭 G1a, ABI 무변경)
- fix(terminal): restoreFromSlot이 줄 끝 pending_wrap 복원을 무효화하던 버그
- perf(tools): kitty 이미지 파이프라인 벤치 추가 — 캐시화 불필요 확정 (code-review #10)
- feat(terminal): SGR 53/55 overline (VT 갭 G1b, ABI 무변경)
- feat(terminal): SGR 2/22 dim/faint (VT 갭 G1c, ABI 무변경)
- fix(terminal): kitty chunked 전송 중 독립 명령 처리 — chunk 버리고 실행 (code-review)
- fix(terminal): kitty APC 버퍼 동적화 — 큰 단일 transmit 수용 (code-review)
- test(platform): CellMetricsResult ABI @sizeOf/@offsetOf 가드 — coretext native 계약 (audit #14 MEDIUM)
- docs(pty): shutdownChild의 SIGKILL reap 주석을 실제 동작에 맞게 정정 (audit MEDIUM)
- test(platform): ABI 정합 가드 보강 — GlobalHotkey @sizeOf + CommandEntry @offsetOf (audit MEDIUM)
- fix(platform): mouse reporting 진입이 드래그 autoscroll을 stuck시키던 버그 (audit MEDIUM)
- feat(terminal): kitty 자동 크기 이미지 커서 advance (접근 B, code-review #2)
- docs(implementation-plan): W5 atlas 공유 + #5~7 이미지 캐시 설계 분해·측정
- fix(perf): core_resize_loop budget을 2s로 — CI runner 변동 흡수
- feat(terminal): OSC 10/11 전경/배경색 질의 응답 (VT 갭 G2a)
- feat(terminal): ICH/DCH (CSI @ / CSI P) — insert/delete characters (VT 갭)
- feat(terminal): kitty graphics 이미지 노출 + upload generation (K2a) + K2 설계
- feat(platform): kitty graphics 이미지 ABI 채널 + 업로드 플래너 (K2c, ABI v48)
- feat(terminal): DECOM (origin mode, DECSET ?6) — CUP/HVP/VPA를 scroll region 상대로 (VT 갭)
- feat(terminal): kitty graphics placement 코어 (K1) — display a=p/T 저장·노출·생애주기
- feat(terminal): kitty graphics zlib 압축 (K3b, o=z)
- feat(terminal): kitty graphics PNG 디코드 (K3c, f=100 8-bit truecolor)
- fix(terminal): SGR colon sub-parameter가 별도 SGR로 새던 버그 (audit HIGH)
- fix(terminal): CSI s/u (SCOSC/SCORC) 커서 저장/복원 — brew progress 줄쌓임 수정
- refactor(terminal): kitty inflate 통합 + over-read 대칭 + placement doc 정정 (code-review)
- fix(terminal): kitty 자원 정합 — placement orphan 정리 + used 이미지 evict 보호 (code-review)
- perf(platform): kitty 이미지 렌더 pipeline/vertex 재바인딩 hoisting (code-review #11)
- feat(terminal): OSC 52 클립보드 코어 파싱 (VT 갭 G2b — platform wiring 후속)
- fix(test): imeCursorRect 테스트 undefined-memory enum switch 하드닝
- feat(platform): OSC 52 클립보드 platform wiring (G2b-w, ABI v50)
- feat(terminal): OSC 4/104 256색 팔레트 set/reset/query (VT 갭 G2c)
- feat(terminal): OSC 9/777 데스크톱 알림 코어 파싱 (VT 갭 G2e)
- feat(terminal): G3 charset 지정 — DEC 라인드로잉 (ESC ( 0, SI/SO)
- feat(terminal): OSC 10/11 색 set + 110/111 reset, clear color까지 (VT 갭 G2d, ABI v51)
- feat(platform): OSC 9/777 데스크톱 알림 platform wiring (G2e-w, ABI v52)
- feat(terminal): G4 동적 탭스톱 — CBT/HTS/TBC
- feat(terminal): G12 BEL·NEL·VT/FF (시스템 벨, ABI v53)