2026-06-24
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
maru는 전날 열린 #1014로 세팅 토글이 ⌘+ / ⌘−로 바꾼 폰트 줌을 되돌리던 문제를 고치고, 종료 시 각 pane의 claude·codex 세션을 저장했다가 재시작 때 같은 session id로 이어 가는 opt-in 복원(#1015)과 그 Linux 빌드 스텁을 넣었습니다. 알림 카드 호버 강조와 구분선(#1016), light-pink 프리셋(#1017)과 rose-pine·tokyo-night·nord·one-dark 등 6종 추가 및 프리셋 파싱 단일화(#1019)도 들어왔고, 문서의 미완 표시를 코드 현실에 맞게 정리했습니다(#1018).
오후부터는 레이어 정리를 진행했습니다. Term의 런타임 핸들을 inner struct로 격리하고 TermGeneric(Rt)로 일반화해 Term·Pane·Tab 세션 모델을 OS 중립 src/session/으로 옮겼고(#1022), pane hit-test와 방향 이동을 모델 연산으로 내렸습니다(#1024). #1021과 기능 브랜치 대상 #1023은 병합되지 않고 닫혔지만, 같은 내용의 커밋은 main에 들어 있습니다. 3차 추출로 split_tree·workspace(#1026)와 surface·window·core_command를 session으로 옮기고 session이 app을 참조하지 못하게 하는 가드를 세웠으며(#1027), src/runtime으로 이름을 바꾸는 4차 안은 이름 중복 문제로 보류했습니다(#1029). 2만 줄짜리 app_session.zig는 분해 계획(#1030)을 세운 뒤 ⌘F 찾기를 find.zig로(#1031), 순수 레이아웃 기하와 픽셀·셀 hit-test를 session/layout_math.zig로(#1032, #1038) 떼어 냈습니다.
렌더링에서는 여러 pane이 한 atlas를 순서대로 쓸 때 뒤 pane의 무효화가 앞 pane 슬롯을 깨던 문제를, shape와 place를 나누는 인프라(#1033)를 거쳐 모든 pane을 한 번에 배치하는 통합 빌드(#1034)로 근본 수정했고 단위 테스트를 보탰습니다. 배경색이 칠해진 공백도 단어·URL 경계로 보게 해 URL 뒤 글자가 함께 선택되던 문제(#1035), 키패드 Enter가 확인 모달을 닫지 못하던 문제(#1041)도 고쳤습니다.
공개 커밋 37개, 해당일 생성 또는 병합된 PR 28개를 정리했습니다. PR 생성 27개·병합 26개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/maru
- fix(macos-input): 키패드 Enter를 메인 Return처럼 .enter로 매핑 — 확인 모달·터미널 CR 정정
- docs(verification): split 멀티 surface GPU 텍셀 검증 전략 명문화
- docs(refactor): (b) layout_math 일단락 — E4·E5 실측 orchestration 반영
- refactor(app-session): 픽셀↔셀 hit-test 기하를 layout_math.pxToCell로 분리(b2)
- docs: cross-pane 통합 빌드 반영 + selection/app-session stale 정정
- test(app-session): placeAndDistribute 통합 경로 단위 테스트 — dest 분배·collected 소진·소유권
- fix(selection): bce 배경색 칠한 공백도 단어/URL 경계로 — URL 뒤 텍스트 안 빨려듦
- refactor(app-session): 테스트 전용 wrapper 3종 제거 — production에서 분리
- fix(renderer): code-review max(#1034) 반영 — 활성 실패 frame 포기·dead state/중복 정리
- feat(renderer): 멀티 페인 cross-pane 근본 수정 발효 — app_session 통합 빌드(활성 panel 합류)
- refactor(renderer): 멀티 페인 cross-pane 수정 인프라 — prepareMultiPaneGlyphFrame + shape/place 분리
- docs(layering): 4차 C(src/runtime 개명) 보류 — runtime/runtime 중복·app 직관성
- docs(refactor): app_session 분해 문서 동기화 정정(b1)
- refactor(app-session): 순수 레이아웃 기하를 session/layout_math.zig로 분리(b1)
- refactor(app-session): 스크롤백 Find(⌘F) 본문을 app_session/find.zig로 분리(E1)
- docs(refactor): app_session.zig 분해 실행 플랜(E0, doc-first)
- fix(session): test-pty 컴파일 회귀 + 3차 이동 후 stale 주석 정정
- docs(roadmap): 미완 표시를 코드 현실과 정합화
- refactor(session): surface·window·core_command → session + session→app 가드 (3차 D2·D3)
- refactor(session): split_tree·workspace를 session core로 이동 (3차 D1)
- docs(layering): D1 분류 기준을 의존자 레이어로 정정(빌드가 잡음)
- docs(layering): 3차 선결 결정 확정(A) + L4 2단 명문화(D0)
- docs(layering): 3차 추출(app 레이어 분해) 실행 플랜 + 선결 결정
- docs(layering): S2 단계표를 실제 구현과 동기화 + 3차 추출(app 분해) 계획
- refactor(session): pane hit-test·방향 탐색을 session 모델 연산으로 (S2 후속)
- refactor(session): workspace 트리 변환을 session core로 이동 (S2-5)
- refactor(session): 세션 모델(Term/Pane/Tab)을 src/session/로 generic 이동 (S2-4)
- refactor(session): Term을 generic TermGeneric(Rt)로 분리해 런타임 타입 은닉 (S2-3b)
- refactor(session): Term 런타임 핸들을 TermRuntime inner struct로 격리 (S2-3a)
- docs(layering): S2 session core 추출 설계 명문화(보류→재개)
- test(chrome): dropdown 표시 토큰 '_'→'-' 변환 회귀 테스트
- feat(theme): 컬러 프리셋 6종 추가 + 프리셋 파싱/진단 단일 출처 리팩토링
- feat(theme): light-pink 컬러 프리셋 추가 (VS Code light-pink-theme)
- feat(notifications): 알림 카드 호버 강조·항목별 구분선·점 간격 + 리뷰 정합성 수정
- fix(pty): 비-macOS captureAgentArgv 스텁 추가 (Linux 빌드 복구)
- feat(workspace-restore): claude/codex 세션 자동 resume 복원 (opt-in)
- fix(settings): 세팅 GUI 토글이 런타임 폰트 줌(⌘+/−)을 리셋하던 문제
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.