# Milestone: 원격 터미널/CLI 터널링 POC (2차)

## 위치

- Roadmap: [ROADMAP.md](../../../../ROADMAP.md)
- Phase: [PHASE.md](../../../../phase/automation-runtime-bridge/PHASE.md)

## 목표

Agent를 설치하기 어려운 host/device를 위해 원격 터미널 브리지 POC를 만든다.
Edge는 terminal session broker가 되고, 대상에 도달 가능한 Node가 SSH/WinRM/serial/local shell 같은 terminal transport를 실행해 relay한다.
특정 Node의 CLI agent를 Socket 경유로 다른 원격지에 연결하는 터널링 제어는 MVP 이후 2차 후보로 함께 검토한다.

## 상태

[폐기]

## 구현 잠금

- 상태: 잠금
- 결정 필요: 아래 체크리스트
  - [ ] POC에서 우선 지원할 terminal transport를 local shell만으로 둘지, SSH/WinRM/serial 후보 중 일부를 포함할지 결정한다.
    - [ ] target allowlist, credential 주입, session audit의 최소 보안 기준을 결정한다.
  - [ ] 운영 CLI, Client, Control Plane 중 어느 입력 표면을 POC에 포함할지 결정한다.

## 범위

- CLI persistent terminal profile 기반 remote shell POC
- 특정 Node의 CLI agent를 Socket 기반으로 다른 원격지에 연결하는 터널링 후보
- terminal session open/input/output/resize/signal/close event 모델 초안
- Edge가 session broker, Node가 terminal transport 실행자라는 책임 경계 검증
- 대상 접근 경로와 credential이 있는 경우만 제어할 수 있다는 전제 명시
- target allowlist, timeout, 동시 실행 제한, session audit 요구사항 초안

## 기능

### Epic: [bridge-boundary] Remote Terminal Bridge Boundary

agentless 범위, Edge broker 책임과 외부 API surface 경계를 묶는다.

- [ ] [agentless-boundary] 원격 터미널 브리지는 완전 agentless 제어가 아니라 target device에 IOP agent를 설치하지 않는 운영 경로로 정의한다.
- [ ] [edge-broker] Control Plane/Client/운영 CLI는 Edge에 terminal session을 요청하고, Node에 직접 붙지 않는다.
- [ ] [surface-boundary] OpenAI-compatible API나 A2A task payload에 terminal 제어 기능을 억지로 싣지 않는다.

### Epic: [terminal-runtime] Terminal Transport Runtime

Node transport, terminal event lifecycle과 session 보안 경계를 묶는다.

- [ ] [node-transport] Node terminal transport는 adapter/profile 또는 별도 adapter 경계에서 실행된다.
- [ ] [terminal-events] stdin/stdout/stderr, resize, signal, close lifecycle과 adapter execution stream 경계를 IOP native protocol에서 표현한다. 검증: 허용된 target profile로 Edge remote shell session을 열고 입출력 relay가 되는지 확인한다.
- [ ] [security-boundary] target allowlist, credential, timeout, audit 보안 전제를 milestone 산출물에 포함한다.

## 완료 리뷰

- 상태: 폐기
- 요청일: 2026-08-01
- 완료 근거: terminal/PTY와 원격 호스트 제어는 IOP Edge/Node bridge가 아니라 독립 Chronos Node 책임이라는 사용자 결정으로 IOP POC를 종료했다.
- 폐기·archive 확인:
  - [x] 2026-08-01 사용자 결정으로 IOP 후보 폐기를 확인했다.
  - [x] 같은 결정에 따라 archive 이동을 승인했다.
- 리뷰 코멘트: Chronos Server가 canonical session/control을, IOP Node와 별개인 Chronos Node가 terminal transport와 원격 host 실행을 소유하는 방식으로 후속 설계한다.

## 범위 제외

- 접근 경로가 없는 target device의 제어 보장
- Control Plane이 Node 또는 target terminal에 직접 연결
- 모든 terminal transport 구현을 한 번에 지원
- 정책/audit 상세 schema 확정

## 작업 컨텍스트

- 관련 경로: `apps/edge`, `apps/node`, [README.md](../../../../../README.md), [edge-smoke.md](../../../../../agent-test/local/edge-smoke.md), [node-smoke.md](../../../../../agent-test/local/node-smoke.md)
- 표준선(선택): Control Plane/Client/운영 CLI는 Edge에 terminal session을 요청하고, Edge가 Node terminal transport로 중계한다. OpenAI-compatible/A2A payload에 terminal 제어를 싣지 않는다.
- 선행 작업: Edge-Node 실행 스켈레톤, CLI Automation Runtime 안정화
- 후속 작업: 정책, 이력, 감사; Control Plane과 Client의 terminal session 운영 표면
- 보류 사유: 2026-06-14 사용자 지시에 따라 원격 터미널 지원은 현재 활성 작업에서 제외하고 로드맵 후순위로 미룬다. provider 상태/capacity queue와 추가 provider 검증 등 운영 품질 확장을 먼저 진행한다.
- 폐기 사유: 2026-08-01 사용자 결정에 따라 IOP 후속 후보로 재개하지 않고 Chronos Server/Node 책임으로 이관한다.
- 2차 표기: Outline의 특정 Node CLI agent 원격 터널링 요구를 이 Milestone의 후속 후보로 묶되, MVP 구현 범위에서는 제외한다.
- 확인 필요: 없음. 대상 분류와 transport/security 상세는 IOP에서 결정하지 않고 Chronos Server/Node 설계에서 새로 검토한다.
