# TaskStop

런타임 핸들로 실행 중인 백그라운드 작업 — 셸 명령, 디스패치된 에이전트, 또는 원격 세션 — 을 중지합니다. 리소스를 회수하고, 더 이상 유용하지 않은 작업을 취소하거나, 작업이 멈춘 경우 복구하는 데 사용합니다.

## 사용 시점

- 백그라운드 셸 명령이 예상보다 오래 실행되었고 더 이상 결과가 필요하지 않습니다.
- 로컬 에이전트가 반복되거나 정체되어 있고 단절해야 합니다.
- 사용자가 방향을 바꾸었고 이전 방향에 대한 백그라운드 작업을 버려야 합니다.
- 원격 세션이 곧 타임아웃되거나 필요한 리소스를 보유하고 있습니다.
- 동일한 작업의 새 실행을 시작하기 전에 깨끗한 상태가 필요합니다.

단기 백그라운드 작업은 스스로 완료되도록 두는 것을 선호하십시오. `TaskStop`은 계속 실행이 가치가 없거나 적극적으로 해로운 경우를 위한 것입니다.

## 매개변수

- `task_id` (string, 필수): 백그라운드 작업이 시작되었을 때 반환된 런타임 핸들. 이것은 `TaskOutput`에 의해 수락되는 동일한 식별자이며, 작업 목록 `taskId`가 아닙니다.

## 예시

### 예시 1

폭주하는 백그라운드 셸 명령을 중지합니다.

```
TaskStop(task_id: "bash_01HXYZ...")
```

명령은 종료 신호를 받습니다. 지금까지 작성된 버퍼링된 출력은 출력 경로에서 읽을 수 있는 상태로 남아 있습니다.

### 예시 2

사용자의 경로 수정 후 디스패치된 에이전트를 취소합니다.

```
TaskStop(task_id: "agent_01ABCD...")
```

## 참고사항

- `TaskStop`은 종료를 요청합니다. 즉각적인 종료를 보장하지 않습니다. 잘 동작하는 작업은 신속하게 종료되지만, 차단 I/O를 수행하는 프로세스는 풀리는 데 시간이 걸릴 수 있습니다.
- 작업 중지는 출력을 삭제하지 않습니다. 백그라운드 셸 작업의 경우 디스크의 출력 파일이 보존되며 `Read`로 여전히 읽을 수 있습니다. 에이전트와 세션의 경우 중지 전에 캡처된 모든 출력은 `TaskOutput`을 통해 여전히 접근 가능합니다.
- 알 수 없는 `task_id`, 또는 이미 완료된 작업은 오류나 no-op를 반환합니다. 이것은 안전합니다 — 상태를 먼저 확인하지 않고도 방어적으로 `TaskStop`을 호출할 수 있습니다.
- 동일한 작업을 다시 시작하려는 경우, 공유 리소스 (파일, 포트, 데이터베이스 행)에서 경쟁하는 두 병렬 실행을 피하기 위해 새 것을 디스패치하기 전에 이전 작업을 중지하십시오.
- `TaskStop`은 팀 작업 목록의 항목에 영향을 미치지 않습니다. 추적된 작업을 취소하려면 `TaskUpdate`로 상태를 `deleted`로 업데이트하십시오.
