2026-06-24
요약 (AI 작성)
session core 추출 리팩터링에 집중한 날입니다. S2 단계에서 세션 모델(Term/Pane/Tab)을 OS-중립 src/session/으로 옮기고, Term을 TermGeneric(Rt)로 분리해 런타임 타입을 은닉했으며(TermRuntime inner struct), workspace 트리 변환과 pane hit-test·방향 탐색을 session 모델 연산으로 내렸습니다. 이어 3차 추출로 split_tree·workspace·surface·window·core_command를 session으로 옮기고 session→app 의존을 0으로 막는 가드를 세웠으며, app_session 분해(E0/E1/b1)로 스크롤백 Find(⌘F)를 find.zig, 순수 레이아웃 기하를 session/layout_math.zig로 떼어냈습니다. 4차 C(src/runtime 개명)는 runtime/runtime 중복과 직관성 문제로 보류했습니다.
리팩터링 사이사이 실사용 기능도 손봤습니다. claude/codex 세션 자동 resume 복원(opt-in)을 넣고, 컬러 프리셋 6종과 light-pink를 추가하며 프리셋 파싱을 단일 출처로 정리했고, 알림 카드 호버 강조·구분선을 다듬었습니다. 세팅 GUI 토글이 런타임 폰트 줌(⌘+/−)을 리셋하던 버그와 비-macOS captureAgentArgv 스텁(Linux 빌드 복구)도 함께 처리했습니다.
커밋
ohah/maru
- 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 추출 설계 명문화(보류→재개)
- docs(layering): S2 단계표를 실제 구현과 동기화 + 3차 추출(app 분해) 계획
- refactor(session): pane hit-test·방향 탐색을 session 모델 연산으로 (S2 후속)
- fix(settings): 세팅 GUI 토글이 런타임 폰트 줌(⌘+/−)을 리셋하던 문제
- fix(pty): 비-macOS captureAgentArgv 스텁 추가 (Linux 빌드 복구)
- feat(workspace-restore): claude/codex 세션 자동 resume 복원 (opt-in)
- feat(notifications): 알림 카드 호버 강조·항목별 구분선·점 간격 + 리뷰 정합성 수정
- feat(theme): 컬러 프리셋 6종 추가 + 프리셋 파싱/진단 단일 출처 리팩토링
- feat(theme): light-pink 컬러 프리셋 추가 (VS Code light-pink-theme)
- test(chrome): dropdown 표시 토큰 '_'→'-' 변환 회귀 테스트
- docs(layering): 3차 선결 결정 확정(A) + L4 2단 명문화(D0)
- docs(layering): 3차 추출(app 레이어 분해) 실행 플랜 + 선결 결정
- refactor(session): split_tree·workspace를 session core로 이동 (3차 D1)
- docs(layering): D1 분류 기준을 의존자 레이어로 정정(빌드가 잡음)
- refactor(app-session): 스크롤백 Find(⌘F) 본문을 app_session/find.zig로 분리(E1)
- docs(refactor): app_session 분해 문서 동기화 정정(b1)
- refactor(app-session): 순수 레이아웃 기하를 session/layout_math.zig로 분리(b1)
- refactor(session): surface·window·core_command → session + session→app 가드 (3차 D2·D3)
- fix(session): test-pty 컴파일 회귀 + 3차 이동 후 stale 주석 정정
- docs(roadmap): 미완 표시를 코드 현실과 정합화
- docs(layering): 4차 C(src/runtime 개명) 보류 — runtime/runtime 중복·app 직관성
- docs(refactor): app_session.zig 분해 실행 플랜(E0, doc-first)