iop/agent-task/10_bin_e2e_smoke/plan_cloud_G07_0.log
toki 6e2a1fc2f2 feat: edge runtime, opsconsole, CLI target terminology, and e2e validation updates
- Add edge runtime config and opsconsole package
- Refactor edge console to use new runtime config
- Add service source metadata support
- Update CLI adapter with target terminology
- Add edge operation contract and event bus replay
- Update node label and command ops surface
- Add E2E smoke tests and full validation
- Update proto runtime definitions
- Update documentation and agent-ops rules
2026-05-17 14:57:49 +09:00

132 lines
3.5 KiB
Text

<!-- task=10_bin_e2e_smoke plan=0 tag=BES -->
# 10 Bin E2E Smoke Plan - BES
## 이 파일을 읽는 구현 에이전트에게
**필수: 구현 마지막에는 반드시 `CODE_REVIEW-*-G??.md`의 모든 섹션을 실제 구현 내용과 명령 출력으로 채운다.**
이 task는 `bin/edge.sh`와 `bin/node.sh` 실제 entrypoint 기반 smoke를 공식화한다.
## 배경
CLI/ops console을 유지한다면 수동 경험과 같은 bin pipeline을 테스트로 계속 살려야 한다. 현재 `Makefile`에는 `test`만 있고 `test-e2e`가 없다.
## 분석 결과
### 읽은 파일
- `agent-ops/skills/common/plan/SKILL.md`
- `agent-ops/skills/project/e2e-smoke/SKILL.md`
- `agent-ops/rules/project/domain/testing/rules.md`
- `Makefile`
- `bin/edge.sh`
- `bin/node.sh`
- `configs/edge.yaml`
- `configs/node.yaml`
- `apps/edge/README.md`
### 테스트 커버리지 공백
- 공식 `make test-e2e` target이 없다.
- 현재 smoke는 수동/임시 절차에 의존한다.
- 실제 bin entrypoint로 register/message/session/background/status를 검증하는 고정 스크립트가 없다.
### 심볼 참조
- `test`: `Makefile:16`.
- `bin/edge.sh`: executes `go run ./apps/edge/cmd/edge console`.
- `bin/node.sh`: waits for edge then executes `go run ./apps/node/cmd/node serve`.
- `make test-e2e`: no existing target.
### 범위 결정 근거
- 기본 smoke는 mock adapter를 사용한다.
- Real CLI profile 검증은 env opt-in으로 둔다.
- 기본 `configs/*.yaml`은 수정하지 않는다.
### 빌드 등급
- Build `cloud-G07`: terminal/bin orchestration and stdout/stderr contract.
- Review `cloud-G07`: 실제 bin 실행 증거 검증 필요.
### [BES-1] `make test-e2e` target 추가
#### 문제
Testing rule은 bin smoke를 요구하지만 Makefile target이 없다.
#### 해결 방법
- `Makefile`에 `test-e2e` phony target을 추가한다.
- target은 smoke script를 실행한다.
#### 수정 파일 및 체크리스트
- [ ] `Makefile`
#### 테스트 작성
- Make target 자체가 검증 대상이다.
#### 중간 검증
```bash
make test-e2e
```
### [BES-2] bin 기반 smoke script 추가
#### 문제
수동 smoke는 재현성이 낮고 mock/real CLI 경계가 흐릴 수 있다.
#### 해결 방법
- `scripts/e2e-smoke.sh`를 추가한다.
- 임시 edge/node config와 random free port를 사용한다.
- 실제 `bin/edge.sh`, `bin/node.sh`를 실행한다.
- `/nodes`, message x2, `/session`, `/background on/off`, `/terminate-session`, `/status`, `/exit` 흐름을 확인한다.
- mock profile이 default다.
- `IOP_E2E_PROFILE=gemini` 같은 env가 있으면 real CLI profile을 opt-in으로 검증하되 blocker를 명시한다.
#### 수정 파일 및 체크리스트
- [ ] `scripts/e2e-smoke.sh`
- [ ] `apps/edge/README.md`
#### 테스트 작성
- Script 내부 assertion으로 stdout/stderr contract를 확인한다.
- Shellcheck는 있으면 실행하고, 없으면 `command -v shellcheck` 결과를 기록한다.
#### 중간 검증
```bash
command -v shellcheck || true
make test-e2e
```
## 수정 파일 요약
| 파일 | 항목 |
|---|---|
| `Makefile` | BES-1 |
| `scripts/e2e-smoke.sh` | BES-2 |
| `apps/edge/README.md` | BES-2 |
## 최종 검증
```bash
go test -count=1 ./...
make test-e2e
```
If real CLI validation is requested or available:
```bash
IOP_E2E_PROFILE=gemini make test-e2e
```
All results must report whether real profile passed, failed, or was blocked by command/login/provider state.
모든 코드 변경 완료 후 반드시 `CODE_REVIEW-*-G??.md`의 전체 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.