설치하기 전에

컴패니언 / macOS Apple Silicon

OpenMake Companion 0.2.1

데스크톱 앱이 정말 필요한 이유는 하나입니다. 내 컴퓨터의 폴더 안에서 에이전트 작업이 일하게 하되, 우회할 수 없는 확인을 한 번 거치게 하는 것. 메뉴바에 상주하는 이 앱은 그 일만 합니다. 채팅을 비롯한 나머지는 브라우저가 맡습니다. 이미 돌고 있는 OpenMake 서비스에 붙기만 할 뿐, 서버나 데이터베이스, GPU 백엔드까지 들고 있지는 않습니다.

설치하기 전에

macOS 14 이상, Apple Silicon용이고 서명되지 않은(ad-hoc) 빌드입니다. 그래서 처음 열면 Gatekeeper가 막아서며 “손상되어 열 수 없습니다”라고 뜹니다. 정말 손상된 게 아니라 macOS가 만든 사람을 모른다는 뜻입니다.

OpenMake Companion.app을 /Applications로 옮긴 다음 격리 속성만 한 번 풀어 주면 됩니다. 이 앱은 일부러 Dock에 뜨지 않습니다. 실행한 뒤에는 메뉴바의 폴더 아이콘을 찾으세요.

shell
xattr -dr com.apple.quarantine '/Applications/OpenMake Companion.app'
다음하는 일, 그리고 일부러 하지 않는 일

하는 일, 그리고 일부러 하지 않는 일

Companion은 두 번째 OpenMake 클라이언트가 아니라 실행 노드입니다. 에이전트 작업이 닿을 수 있는 기계 역할 하나만 맡고, 나머지는 전부 브라우저로 넘깁니다. 이 경계가 핵심입니다. 웹에 새 기능이 붙을 때마다 같은 것을 두 번 만들지 않아도 되기 때문입니다.

  • 작업 폴더를 연결하고 해제하며, 각 폴더의 현재 상태를 확인합니다
  • 셸 명령이 우회할 수 없는 실행 확인 다이얼로그에 답합니다
  • 작업이 끝나면 알림을 받고, 눌러서 웹의 해당 작업 화면으로 바로 이동합니다
  • 채팅 화면은 없습니다. “웹에서 열기”가 대화를 브라우저로 넘깁니다
다음로컬 폴더 연결

로컬 폴더 연결

메뉴바에서 폴더를 고르면 됩니다. 서버로는 폴더 이름만 가고 전체 경로는 가지 않으며, 그다음부터 에이전트 작업이 브리지를 통해 그 안에서 일을 요청할 수 있습니다. 여러 루트를 동시에 연결할 수도 있습니다. 루트마다 파생 deviceId로 독립된 브리지 연결을 갖기 때문에 범위와 샌드박스, 일괄 승인이 폴더별로 따로 놉니다. 한 사용자가 연결할 수 있는 디바이스는 기본 3개까지입니다.

  • RPC 허용 목록과 realpath 검사로 범위를 묶어 두어, 심볼릭 링크로 폴더 밖을 빠져나갈 수 없습니다
  • 명백히 위험한 명령은 즉시 거부됩니다
  • 그 밖의 셸 명령은 하나도 빠짐없이 사용자 확인을 거칩니다
  • sandbox-exec가 연결 폴더 밖 쓰기와 비밀 경로 읽기를 차단합니다
다음인증과 백엔드

인증과 백엔드

웹 설정의 API 키 화면에서 bridge 스코프 키를 발급해 붙여넣으면 됩니다. 키는 macOS 키체인에 저장되고, 헬퍼 프로세스에는 명령줄이 아니라 환경변수로 건네집니다. 프로세스 목록에 노출되지 않게 하기 위해서입니다. 백엔드는 호스팅 서비스와 52416 포트의 로컬 인스턴스 중에서 고를 수 있습니다.

다음검증된 업데이트

검증된 업데이트

업데이터는 서버 매니페스트의 native 채널을 읽습니다. HTTPS나 루프백 주소만 받아들이고, 내려받은 파일의 SHA-256까지 맞춰 본 뒤에야 실행 중인 앱을 바꿉니다.

다음Desktop 1.10.0을 이미 쓰고 있다면

Desktop 1.10.0을 이미 쓰고 있다면

Electron 데스크톱 앱은 동결을 거쳐, 브리지가 공용 코어로 옮겨간 뒤 소스 트리에서 내려갔습니다. 이미 설치해 쓰던 쪽은 달라지는 게 없습니다. 업데이트 매니페스트에 채널이 그대로 있고 마지막 빌드도 계속 받을 수 있습니다. 멈춘 것은 신규 게시뿐이며, 로컬 에이전트 작업은 이제 Companion의 몫입니다.

Companion이 대신하지 않는 것이 하나 있습니다. 앱 안의 채팅 창인데, 그건 이제 브라우저가 할 일입니다. 그 창이 필요하다면 마지막 Electron 빌드를 지금도 받을 수 있습니다.

Electron 앱은 워크스페이스를 네이티브 창으로 열었습니다. Desktop 1.10.0이 그 계보의 마지막 빌드이고, Companion은 그중 로컬 작업 쪽을 이어받고 채팅 쪽은 브라우저에 남깁니다.