--- test_env: dev test_profile: node-smoke domain: node verification_type: smoke last_rule_updated_at: 2026-06-12 --- # node-smoke dev 테스트 ## 읽기 조건 - `apps/node/**` 변경 또는 node 실행, adapter, transport, router, store dev 검증 판단이 필요한 경우 ## 적용 범위 - `apps/node/cmd/node/**` - `apps/node/internal/bootstrap/**` - `apps/node/internal/node/**` - `apps/node/internal/runtime/**` - `apps/node/internal/router/**` - `apps/node/internal/transport/**` - `apps/node/internal/adapters/**` - `apps/node/internal/store/**` ## 분류 - domain: node - verification_type: smoke - scope: node 실행 파이프라인과 edge 연결 baseline ## 환경 - host: local checkout. dev host, external CLI profile, shared Edge runtime evidence가 필요하면 원격 runner를 사용한다. - port: dev Edge-Node TCP transport `19003` - runtime: Go `1.24` - package manager: Go modules / Makefile - docker: unit/smoke quick check는 Docker를 요구하지 않는다. compose dev 검증은 `docker compose --env-file .env.dev.example ...`로 수행한다. - external service: dev Edge runtime 주소 후보 `toki-labs.com:19003` - model endpoint: dev OpenAI-compatible base URL 후보 `http://toki-labs.com:18083/v1` - credential: token/secret 원문은 문서에 기록하지 않는다. ## 명령 - setup: - lint: - unit: `go test ./apps/node/...` - smoke: `./scripts/e2e-smoke.sh`는 기본 포트 임시 설정을 쓰는 보조 smoke이므로 dev 포트 override 필요 여부를 먼저 확인한다. - e2e: `make test-e2e` - model: - full-cycle: repo 내부 edge-node 진단과 사용자 실행 cycle 수동 검증 ## 필수 검증 - 변경한 node 패키지 또는 `go test ./apps/node/...`를 실행한다. - 실행 요청, stream, cancel, status, session, adapter registry 경로를 바꾼 경우 repo 내부 edge-node 진단과 full-cycle 실제 구동 기준을 함께 적용한다. - CLI profile 변경 시 `/capabilities`, `/transport`, `/sessions`, persistent profile이면 `/terminate-session`을 확인한다. - dev Edge runtime으로 연결하는 경우 Node가 `19003`을 사용하고 local/test `19090` field baseline으로 붙지 않는지 확인한다. ## 보조 검증 - `./scripts/e2e-smoke.sh`는 mock adapter 기반 보조 smoke로 사용한다. - `make test-e2e`는 보조 smoke이며 full-cycle 실제 구동을 대체하지 않는다. ## 판정 기준 - node 등록 후 edge console에서 node가 조회된다. - 같은 session에서 메시지 2회가 start, 기대 payload를 포함한 `[node-*-message]`, 같은 run의 complete 순서로 edge 화면에 도착한다. - node 로컬 `[node-message]` payload 라인 목록과 edge `[node-*-message]` payload 라인 목록이 run별로 내용/순서까지 동일해야 한다. - edge complete는 같은 run의 마지막 `[node-*-message]` 이후에만 정상이다. - command 결과가 `[node-*-]` 또는 명확한 성공/unsupported/error 출력으로 edge 화면에 표시된다. ## 기준 출력 예시 ```text edge> /nodes edge> Convert token iop_manual_one and reply only with converted token [node-*-event] start [node-*-message] IOP_MANUAL_ONE_OK [node-*-event] complete ``` ## 차단 기준 - dev host 또는 Edge-Node TCP port 접근이 불가능하다. - 외부 CLI profile 검증에 필요한 CLI 설치, 계정, provider 상태가 없다. ## 보고 항목 - 실행한 명령: - 성공한 검증: - 실패/차단된 검증: - 생략 사유: - 남은 위험: ## 금지 사항 - 사용자 실행 파이프라인 변경을 unit test만으로 완료 처리하지 않는다. - `proto/gen/iop/*.pb.go` 생성 파일을 직접 수정하지 않는다. - secret, token, 개인 endpoint 원문은 tracked 파일에 기록하지 않는다.