완료 일시: 2026-05-04 UTC

요약: `04_cli_persistent_cancel_reason` 작업을 1회 plan/code-review 루프로 완료했다.

루프 이력:

| plan log | code review log | verdict |
|----------|------------------|---------|
| `plan_local_G04_0.log` | `code_review_local_G04_0.log` | PASS |

최종 리뷰 요약:

- `apps/node/internal/adapters/cli/cli.go`에 `cancelEventForContext`를 추가해 `context.DeadlineExceeded`와 `context.Canceled`를 각각 `timeout`, `user-cancel`로 매핑했다.
- `apps/node/internal/adapters/cli/persistent.go`와 `apps/node/internal/adapters/cli/oneshot.go`가 cancel 이벤트를 base context로 emit하면서 동일 헬퍼를 사용하도록 맞췄다.
- `apps/node/internal/adapters/cli/cancel_reason_test.go`와 blackbox 테스트들로 timeout/user-cancel 메시지 분기와 회귀 여부를 검증했다.
