2026-06-12
요약 (AI 작성)
오늘 ohah/maru 프로젝트에서 Stage 8 멀티탭 분할 레이아웃 구현을 대규모로 진행했다. PTY 다중 탭 지원(약 12개 PR), cmux 스타일 세로 사이드바(약 9개 PR), OSC 133 시멘틱 프롬프트 및 옵저버빌리티 기반(약 14개 PR), 그리고 SplitTree 기반 멀티 패널 레이아웃(약 9개 PR)이 포함되었다. ohah/zntc에서는 객체 rest 할당 및 default params 지원 관련 두 가지 트랜스포머 패치를 머지했다.
커밋
ohah/maru
- fix(shell): OSC 133 B marker survives prompt-framework PS1 rebuilds
- docs(rules): require documenting the de-facto base + decision for non-standard terminal behavior
- feat(terminal): OSC 7 cwd reporting (VTE de-facto standard, core + ABI + zsh emit)
- feat(macos): window title from OSC 0/2 title, falling back to OSC 7 cwd basename
- feat(shell): zsh emits OSC 133 semantic prompt markers + MARU_DEBUG dump
- feat(terminal): carry OSC 133 tags through reflow and scrollback re-wrap
- feat(macos): Cmd+T opens a new tab through the key path (stage 8 PR2)
- refactor(macos): route DevSession seam through app_window.active() (stage 8 PR1c)
- refactor(app): AppWindow.tabs holds *Surface so surfaces never move (stage 8 PR1b)
- docs(tabs): tabs/split/layout strategy — cmux-style vertical sidebar, model-vs-driver split
- refactor(macos): DevSession tabs as ArrayList(*Tab) dynamic container (stage 8 PR1d-2a)
- feat(macos): multi-tab PTY drain + createTab/switchTab, verified with 2-tab smoke (stage 8 PR1d-2b)
- refactor(macos): extract per-tab state into a Tab struct (stage 8 PR1d-1)
- feat(renderer): OSC 133 exit-status gutter marks (green/red bar)
- fix(terminal): OSC 133 code-review fixes — gutter exit carry + scroll tags
- fix(config): default input.page-keys to scroll (Mac-native, avoids shell misparse)
- fix(macos): commit IME composition before special/shortcut keys bypass it
- refactor(macos): route DevSession through activeSurface() seam for multi-tab (stage 8 PR1a)
- feat(observability): maru.trace.v1 writer for shell semantic events (B2)
- docs(pr): require Mermaid diagrams to use GitHub-renderable syntax
- feat(terminal): structured shell semantic-event stream (OSC 133/7 observability foundation)
- feat(terminal): OSC 133 semantic prompt parsing + per-row classification
- feat(app): OSC 133 prompt jump navigation (Cmd+Up/Down)
- feat(macos): vertical sidebar layout via surface-to-rect render mechanism (stage 8 PR3a)
- feat(macos): cmux-style tall tab slots (~2.5x cell height) via pixel slot height
- feat(macos): sidebar second cell array + active-tab highlight band (stage 8 PR3b-1)
- feat(config): theme-configurable sidebar colors (derive from background by default)
- fix(macos): account for sidebar offset in pointer/IME coordinate transforms
- feat(macos): sidebar glyph pipeline seam + tab-title DrawList synthesizer (stage 8 PR3b-2a)
- feat(macos): render tab titles in the sidebar via shared-atlas second pass + upload merge (stage 8 PR3b-2b)
- feat(macos): tab close with active reselect and Cmd+W (stage 8 PR4)
- feat(macos): hover-to-close X icon on sidebar tabs (stage 8)
- [feat(config): Cmd+Shift+]/ to cycle next/previous tab (stage 8)
- feat(macos): drag-to-reorder sidebar tabs (stage 8 PR3d)
- feat(app): SplitTree model + recursive layout (stage 8 split PR1)
- feat(macos): Tab holds a single-leaf SplitTree (stage 8 split PR2a)
- feat(macos): sidebar click-to-switch and hover hit-test (stage 8 PR3c)
- feat(macos): per-cell panel origin render primitive (stage 8 split PR2b)
- refactor(macos): extract Pane from Tab for multi-pane splits (stage 8 split PR3a)
ohah/zntc
- [fix(transformer): 중첩 object rest assignment-target 을 es2017 에서 lowering — for (b, {a,...r}] of) (#4261)
- fix(transformer): rest param(ES2015)을 default_params 지원 타겟에서 native 유지 — arrow object+array-rest 조합 (#4251 후속)