Skip to content

feat: macOS PTY 및 Windows ConPTY 실제 터미널 - #96

Merged
soyuo merged 14 commits into
devfrom
feature/native-terminal
Oct 14, 2026
Merged

soyuo merged 14 commits into
devfrom
feature/native-terminal

Conversation

@soyuo

@soyuo soyuo commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

변경 목적

출력창과 별도 명령 입력창으로 구성된 기존 실행기를 실제 대화형 터미널로 변경합니다. macOS와 Windows에서 같은 화면 안의 프롬프트·입력·출력을 처리합니다.

변경 사항

  • 공통 libvterm 기반 VT 화면·키 입력·스크롤백 모델
  • macOS: controlling PTY에 zsh 연결
  • Windows: ConPTY에 기존 기본 셸 cmd.exe 연결
  • 별도 입력창·전송 버튼 제거, 터미널 화면에서 직접 입력
  • 방향키·Tab·Ctrl+C/D, ANSI 색상·커서·대체 화면, 리사이즈·선택·복사/붙여넣기
  • 셸 세션과 빌드·Git·디버거 로그/프로세스 분리
  • 세션 시작·입출력·종료 및 화면 처리 회귀 테스트
  • 고정 libvterm 배포 파일 및 MIT 라이선스 패키징

관련 이슈

사용자 요청: macOS zsh 기반 실제 터미널과 Windows 실제 터미널 연결.

구현 범위

  • C17 코어
  • Windows / Win32
  • macOS / AppKit
  • 웹 프론트엔드
  • 백엔드
  • 플러그인 / 마켓플레이스
  • 빌드 / 배포
  • 테스트
  • 문서
  • 기타:

검증

  • 빌드 확인
  • 자동화 테스트 통과
  • 수동 동작 확인
  • 검증 내용: 로컬 macOS CTest 40/40 통과. CI 38557912814에서 macOS 빌드·CTest·패키징과 Windows 빌드·CTest·패키징 모두 통과했습니다. Windows 테스트 38/38, macOS 테스트 40/40이며, 독립 최종 리뷰에서 actionable finding이 없었습니다. 별도 GUI 수동 검증은 수행하지 않았습니다.

영향 및 호환성

  • 사용자에게 보이는 변경: 터미널 화면에서 직접 입력하며 별도 입력창이 없어짐
  • API 또는 데이터 호환성 영향: 터미널 전용 API 추가, 기존 프로세스 API 유지
  • 성능 / 메모리 영향: 제한된 화면·스크롤백·입력 큐, 비동기 입출력과 변경 알림
  • 마이그레이션 또는 배포 시 주의사항: Windows ConPTY 미지원 환경은 오류로 안내하며 파이프 입력창으로 대체하지 않음

리뷰어 참고사항

GRANT에 따라 정한 초기 동작: macOS zsh 로그인 대화형 셸, Windows 기존 cmd.exe 유지, 터미널 첫 활성화 시 지연 시작, 창당 한 셸 세션, 시작 시 작업 폴더 사용(없으면 홈), 스크롤백 2,000줄·입력 큐 1MiB. 빌드·Git·디버거 로그는 출력 패널에 유지합니다. 자동 병합은 요청되지 않았습니다.

설계 참고: libvterm, Microsoft ConPTY 세션.

체크리스트

  • 변경 범위가 PR 목적에 맞습니다.
  • 기존 기능을 불필요하게 변경하지 않았습니다.
  • 필요한 테스트와 문서를 추가하거나 업데이트했습니다.
  • 민감정보, 디버그 코드, 불필요한 파일이 포함되지 않았습니다.
  • 관련 Notion 명세 및 API 문서와 충돌하지 않습니다.

@soyuo soyuo added the Feature label Oct 13, 2026
@soyuo
soyuo marked this pull request as ready for review October 14, 2026 11:51
@soyuo
soyuo merged commit 6017c9f into dev Oct 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant