완료 일시: 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 메시지 분기와 회귀 여부를 검증했다.