chore: update dev-corp skill and smoke tests

This commit is contained in:
leedongmyung 2026-06-29 13:21:09 +09:00
parent 7e7c7e989c
commit 1c11339905
9 changed files with 47 additions and 47 deletions

View file

@ -32,7 +32,7 @@ dev-corp provider pool을 현재 dev-runtime과 같은 구조로 배포한다.
- [ ] mac-mini에 `/Users/fe/agent-work/iop-dev-corp` checkout이 없으면 배포를 시작하지 말고 checkout 생성과 source sync를 setup blocker로 보고한다.
- [ ] mac-mini에서 `192.168.2.2:8002`, `192.168.2.4:8004`, `192.168.2.3:8004``/health``/v1/models`가 성공하는지 확인한다.
- [ ] Edge config의 OpenAI-compatible adapter endpoint는 각 Node process 기준으로 평가된다. direct preflight는 `192.168.2.x` 주소로 하되, Edge가 Node에 내려주는 provider endpoint는 node-local `127.0.0.1:<provider-port>`를 우선한다.
- [ ] DGX Spark 02가 mac-mini `172.23.78.70:18085/18086/18087`에 직접 접근하지 못하면 mac-mini에서 reverse SSH tunnel을 유지하고 node02 Edge addr을 tunnel local port로 설정한다.
- [ ] DGX Spark 02가 mac-mini `172.24.63.178:18085/18086/18087`에 직접 접근하지 못하면 mac-mini에서 reverse SSH tunnel을 유지하고 node02 Edge addr을 tunnel local port로 설정한다.
- [ ] `gemma4:26b` alias와 총 capacity `13`은 target 후보이다. Edge config 반영과 capacity smoke가 통과하기 전에는 확정값으로 보고하지 않는다.
- [ ] DGX Spark vLLM provider는 capacity `4`, 호출당 최대 context window `262144`, requested KV `262144x2` 이상을 기준으로 한다. vLLM에는 vLLM-MLX식 `--max-kv-size`가 없으므로 실제 KV cache는 `gpu_memory_utilization` 적용 후 startup log의 `GPU KV cache size``Maximum concurrency for 262,144 tokens per request`로 검증한다. DGX01/02 검증 기준은 `--max-num-seqs 4`, `--max-model-len 262144`, `--gpu-memory-utilization 0.40`이고, FP4 MoE 커널 한계 보정을 위해 `VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE=4194304`도 함께 둔다.
- [ ] DGX Spark 02 endpoint는 Docker publish 때문에 `192.168.2.4:8004`이다. `8000`, `8001`, `8002`를 기본 endpoint로 쓰지 않는다.
@ -50,7 +50,7 @@ dev-corp provider pool을 현재 dev-runtime과 같은 구조로 배포한다.
- DGX Spark 01은 FlashInfer FP4 JIT가 first compile 중 `ninja` 실행 파일을 PATH에서 찾는다. `ninja`는 venv에 있으므로 `/home/digitalcommerce_dgx_spark_01/vllm_env/bin`을 PATH 앞에 둔다.
- DGX Spark 02 Docker image `vllm/vllm-openai:latest`의 entrypoint는 이미 `vllm serve`이다. container command에는 `serve`를 중복으로 넣지 말고 positional model `/models/gemma-4-26B-A4B-it-NVFP4`부터 둔다. 현재 Docker publish는 host `8004` -> container `8004` 기준이다.
- Mac Studio는 `DYLD_LIBRARY_PATH=/opt/homebrew/opt/expat/lib` 없이 Python `pyexpat` import가 실패할 수 있다. `screen` session `vllm_mlx_8004` 안에서 이 환경변수를 export한 뒤 시작한다.
- 2026-06-25 재확인 기준 DGX Spark 01은 `--gpu-memory-utilization 0.40`로 재기동 후 mac-mini public forward `http://172.23.78.70:8002`에서 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했고 startup log에서 GPU KV cache `804,421` tokens, full-context concurrency `3.07x`를 확인했다.
- 2026-06-25 재확인 기준 DGX Spark 01은 `--gpu-memory-utilization 0.40`로 재기동 후 mac-mini public forward `http://172.24.63.178:8002`에서 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했고 startup log에서 GPU KV cache `804,421` tokens, full-context concurrency `3.07x`를 확인했다.
- 2026-06-25 재확인 기준 DGX Spark 02는 Docker `vllm-gemma4` host/container `8004`, `--gpu-memory-utilization 0.40`, `--max-model-len 262144`, `--max-num-seqs 4`로 동작하며 mac-mini와 node-local `/health`, `/v1/models`, 직접 동시성 `1..4` chat completion benchmark를 통과했다. startup log에서 GPU KV cache `860,222` tokens, full-context concurrency `3.28x`를 확인했다.
- 2026-06-25 재확인 기준 Mac Studio provider는 새 설정으로 `/health`와 직접 동시성 `1..5` benchmark를 통과했다. provider-pool 전체 Edge OpenAI-compatible capacity smoke는 별도로 검증해야 한다.

View file

@ -3,7 +3,7 @@ test_env: dev-corp
test_profile: client-smoke
domain: client
verification_type: smoke
last_rule_updated_at: 2026-06-25
last_rule_updated_at: 2026-06-29
---
# client-smoke dev-corp 테스트
@ -28,7 +28,7 @@ last_rule_updated_at: 2026-06-25
## 환경
- host: Flutter client 또는 `packages/flutter/iop_console`가 포함된 runtime evidence는 mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다.
- host: Flutter client 또는 `packages/flutter/iop_console`가 포함된 runtime evidence는 mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다.
- port: web/dev preview `13002`, Control Plane HTTP `18002`, Client WS `19004`, Edge-Node TCP transport `19006`.
- runtime: Flutter/Dart
- package manager: Flutter pub
@ -47,9 +47,9 @@ last_rule_updated_at: 2026-06-25
- package-unit: `cd packages/flutter/iop_console && flutter test`
- lint: `cd apps/client && flutter analyze --no-fatal-infos`
- smoke: `cd apps/client && flutter test`
- e2e: `IOP_WEB_PORT=13002 IOP_CONTROL_PLANE_HTTP_URL=http://172.23.78.70:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://172.23.78.70:19004/client ./scripts/dev/web.sh`
- e2e: `IOP_WEB_PORT=13002 IOP_CONTROL_PLANE_HTTP_URL=http://172.24.63.178:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://172.24.63.178:19004/client ./scripts/dev/web.sh`
- compose-e2e: mac-mini 환경에서 `IOP_EDGE_NODE_TOKEN`을 안전하게 주입한 뒤 `docker compose --env-file .env.dev-corp.example up --build`
- web-build: `make client-build-web IOP_CONTROL_PLANE_HTTP_URL=http://172.23.78.70:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://172.23.78.70:19004/client`
- web-build: `make client-build-web IOP_CONTROL_PLANE_HTTP_URL=http://172.24.63.178:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://172.24.63.178:19004/client`
- model:
- full-cycle:
@ -58,7 +58,7 @@ last_rule_updated_at: 2026-06-25
- client 또는 `packages/flutter/iop_console` 변경은 최소 `cd apps/client && flutter test`로 확인한다.
- `packages/flutter/iop_console` 자체 API나 widget 구조가 바뀌면 `cd packages/flutter/iop_console && flutter test` 실행 가능 여부를 확인한다.
- analyzer 영향이 있는 dependency, app shell, generated import 변경이면 `cd apps/client && flutter analyze --no-fatal-infos`를 함께 확인한다.
- Web build/deploy, `apps/client/Dockerfile`, `docker-compose.yml`, `scripts/dev/web.sh`, `Makefile client-build-web` 변경은 mac-mini에서 dev-server 기동 또는 compose build 중 변경 범위에 맞는 경로를 확인하고, 외부 브라우저 확인 URL이 `http://172.23.78.70:13002` 계열인지 보고한다.
- Web build/deploy, `apps/client/Dockerfile`, `docker-compose.yml`, `scripts/dev/web.sh`, `Makefile client-build-web` 변경은 mac-mini에서 dev-server 기동 또는 compose build 중 변경 범위에 맞는 경로를 확인하고, 외부 브라우저 확인 URL이 `http://172.24.63.178:13002` 계열인지 보고한다.
- compose 경로를 확인할 때는 `IOP_EDGE_NODE_TOKEN`을 mac-mini 환경에서 주입하고, token 원문은 tracked 파일에 기록하지 않는다.
## 보조 검증

View file

@ -3,7 +3,7 @@ test_env: dev-corp
test_profile: control-plane-smoke
domain: control-plane
verification_type: smoke
last_rule_updated_at: 2026-06-25
last_rule_updated_at: 2026-06-29
---
# control-plane-smoke dev-corp 테스트
@ -29,7 +29,7 @@ last_rule_updated_at: 2026-06-25
## 환경
- host: Docker compose 또는 Flutter client가 포함된 runtime evidence는 mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다.
- host: Docker compose 또는 Flutter client가 포함된 runtime evidence는 mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다.
- port: Control Plane HTTP `18002`, Client WS `19004`, CP-Edge wire `19005`, Edge-Node TCP transport `19006`, web/dev preview `13002`.
- runtime: Go `1.24`, Docker compose
- package manager: Go modules / Makefile

View file

@ -3,7 +3,7 @@ test_env: dev-corp
test_profile: edge-smoke
domain: edge
verification_type: smoke
last_rule_updated_at: 2026-06-25
last_rule_updated_at: 2026-06-29
---
# edge-smoke dev-corp 테스트
@ -33,26 +33,26 @@ last_rule_updated_at: 2026-06-25
## 환경
- host: local checkout. dev-corp runtime, provider pool, shared port evidence가 필요하면 mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` checkout을 사용한다.
- host: local checkout. dev-corp runtime, provider pool, shared port evidence가 필요하면 mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` checkout을 사용한다.
- port: compose Edge-Node TCP transport `19006`; native provider-pool Edge-Node TCP 후보 `18087`; artifact/bootstrap HTTP 후보 `18085`; Edge OpenAI-compatible HTTP 후보 `18086`; Edge metrics 후보 `19102`; admin 후보 `19094`.
- runtime: Go `1.24`
- package manager: Go modules / Makefile
- docker: unit/smoke quick check는 Docker를 요구하지 않는다. compose dev-corp 검증은 mac-mini에서 `.env.dev-corp.example` 기준으로 수행한다.
- external service: dev-corp artifact/base URL 후보 `http://172.23.78.70:18085`, dev-corp Edge runtime 후보 `172.23.78.70:18087`
- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.23.78.70:18086/v1`
- external service: dev-corp artifact/base URL 후보 `http://172.24.63.178:18085`, dev-corp Edge runtime 후보 `172.24.63.178:18087`
- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.24.63.178:18086/v1`
- credential: token/secret/API key 원문은 문서에 기록하지 않는다.
## dev-corp provider pool 인벤토리
dev-corp provider pool과 3-node 연결 상태를 점검할 때는 `agent-test/dev-corp/inventory.yaml`의 machine-readable 값을 우선하고, mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` checkout을 기준으로 한다.
dev-corp provider pool과 3-node 연결 상태를 점검할 때는 `agent-test/dev-corp/inventory.yaml`의 machine-readable 값을 우선하고, mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` checkout을 기준으로 한다.
- Edge host: `Mac-mini.local`, `fe@172.23.78.70`, Apple M2 Pro / 16GB
- Edge host: `Mac-mini.local`, `fe@172.24.63.178`, Apple M2 Pro / 16GB
- Edge config: `build/dev-corp-runtime/edge.yaml`
- Edge id: `edge-dev-corp`
- Control Plane HTTP 후보: `http://127.0.0.1:18002`
- bootstrap HTTP 후보: `http://172.23.78.70:18085`
- Edge OpenAI-compatible base URL 후보: `http://172.23.78.70:18086/v1`
- Edge-Node TCP transport 후보: `172.23.78.70:18087`
- bootstrap HTTP 후보: `http://172.24.63.178:18085`
- Edge OpenAI-compatible base URL 후보: `http://172.24.63.178:18086/v1`
- Edge-Node TCP transport 후보: `172.24.63.178:18087`
- model alias 후보: `gemma4:26b`
노드 후보:
@ -68,7 +68,7 @@ dev-corp provider pool과 3-node 연결 상태를 점검할 때는 `agent-test/d
- SSH/user: mac-mini에서 `ssh dplab@192.168.2.4`
- provider endpoint: `http://192.168.2.4:8004/v1`
- Edge adapter endpoint: node-local `http://127.0.0.1:8004/v1`
- Edge connectivity: node02는 mac-mini `172.23.78.70:18085/18086` 직접 접근이 timeout이므로 mac-mini의 reverse SSH tunnel `127.0.0.1:28085/28087`을 사용한다.
- Edge connectivity: node02는 mac-mini `172.24.63.178:18085/18086` 직접 접근이 timeout이므로 mac-mini의 reverse SSH tunnel `127.0.0.1:28085/28087`을 사용한다.
- served model: `gemma-4-26B-A4B-it-NVFP4`
- capacity baseline 후보: `4`
- runtime: Docker container `vllm-gemma4`, start script `/home/dplab/start_vllm_gemma4_8004.sh`, host `8004` -> container `8004`, `vllm=0.23.0`, `--max-num-seqs 4`, `--max-model-len 262144`, `--gpu-memory-utilization 0.40`, startup log GPU KV cache `860,222` tokens / full-context concurrency `3.28x`, `VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE=4194304`
@ -89,7 +89,7 @@ Mac Studio의 `http://192.168.2.3:8005/v1` mlx-vlm DiffusionGemma endpoint는
- DGX Spark 02 provider runtime은 capacity `4`, context window `262144`, requested KV `262144x2` 이상의 기준으로 설정됐다. Docker `vllm-gemma4`는 host/container `8004` 기준으로 동작하며 startup log에서 GPU KV cache `860,222` tokens와 `262144` tokens/request concurrency `3.28x`를 확인했다.
- DGX Spark 01은 FlashInfer FP4 JIT가 `ninja`를 PATH에서 호출하므로 start script에 `PATH=/home/digitalcommerce_dgx_spark_01/vllm_env/bin:$PATH`를 둔다.
- Mac Studio provider runtime은 capacity `5`, context window `262144`, requested KV `262144x3` 기준으로 `--continuous-batching`, `--max-num-seqs 5`, `--prefill-batch-size 5`, `--completion-batch-size 5`, `--chunked-prefill-tokens 1024`, `--max-request-tokens 262144`, `--max-kv-size 786432`, `--reasoning-parser gemma4`을 적용했고 `/health`, `/v1/models`, 직접 동시성 `1..5` chat completion benchmark 통과를 확인했다.
- 2026-06-25 재확인 기준 DGX Spark 01은 mac-mini public forward `http://172.23.78.70:8002`에서 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했다. DGX Spark 02는 mac-mini에서 SSH, provider `/health`, `/v1/models`가 회복됐고 직접 provider benchmark를 통과했다. Edge OpenAI-compatible capacity smoke는 별도로 재검증해야 한다.
- 2026-06-25 재확인 기준 DGX Spark 01은 mac-mini public forward `http://172.24.63.178:8002`에서 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했다. DGX Spark 02는 mac-mini에서 SSH, provider `/health`, `/v1/models`가 회복됐고 직접 provider benchmark를 통과했다. Edge OpenAI-compatible capacity smoke는 별도로 재검증해야 한다.
## 명령

View file

@ -1,10 +1,10 @@
test_env: dev-corp
profile: dev-corp-provider-pool
last_updated_at: "2026-06-25"
last_updated_at: "2026-06-29"
source:
remote_runner:
ssh: fe@172.23.78.70
ssh: fe@172.24.63.178
repo_root: /Users/fe/agent-work/iop-dev-corp
setup_required: true
setup_status: deployed
@ -18,20 +18,20 @@ source:
edge:
id: edge-dev-corp
host: mac-mini
ssh: fe@172.23.78.70
ssh: fe@172.24.63.178
os: macOS 26.2
hardware: Apple M2 Pro / 16GB
config_path: build/dev-corp-runtime/edge.yaml
control_plane_enabled_current_runtime: false
control_plane_http: http://127.0.0.1:18002
control_plane_status_url: http://127.0.0.1:18002/edges/edge-dev-corp/status
bootstrap_http_public: http://172.23.78.70:18085
openai_base_url_public: http://172.23.78.70:18086/v1
bootstrap_http_public: http://172.24.63.178:18085
openai_base_url_public: http://172.24.63.178:18086/v1
openai_base_url_runner: http://127.0.0.1:18086/v1
openai_api_key_required_current_runtime: true
openai_api_key_secret_path_remote: build/dev-corp-runtime/.secrets/openai_api_key
openai_api_key_value_tracked: false
edge_node_tcp_public: 172.23.78.70:18087
edge_node_tcp_public: 172.24.63.178:18087
admin_addr_runner: 127.0.0.1:19094
build:
@ -98,7 +98,7 @@ model:
dgx01_health: passed
dgx02_health: passed
direct_health_observation:
dgx01: public forward http://172.23.78.70:8002 returned /health 200, /v1/models exposed gemma-4-26B-A4B-it-NVFP4, and /v1/chat/completions returned OK after gpu_memory_utilization 0.40 restart
dgx01: public forward http://172.24.63.178:8002 returned /health 200, /v1/models exposed gemma-4-26B-A4B-it-NVFP4, and /v1/chat/completions returned OK after gpu_memory_utilization 0.40 restart
dgx02: node-local http://127.0.0.1:8004 and mac-mini http://192.168.2.4:8004 returned /health 200, /v1/models exposed gemma-4-26B-A4B-it-NVFP4, and direct concurrency 1..4 chat completion benchmark passed
mac_studio: node-local http://127.0.0.1:8004 and mac-mini http://192.168.2.3:8004 returned /health 200, /v1/models exposed mlx-community/gemma-4-26b-a4b-it-nvfp4, and direct concurrency 1..5 chat completion benchmark passed
edge_openai_smoke: target_unverified_until_edge_provider_pool_capacity_smoke
@ -120,7 +120,7 @@ nodes:
served_model: gemma-4-26B-A4B-it-NVFP4
capacity: 4
capacity_status: configured_health_passed_direct_smoke
last_runtime_observation: restarted with gpu_memory_utilization 0.40; public forward http://172.23.78.70:8002 returned /health 200, /v1/models, and a chat completion; startup log reported GPU KV cache size 804,421 tokens and 3.07x concurrency for 262,144-token requests
last_runtime_observation: restarted with gpu_memory_utilization 0.40; public forward http://172.24.63.178:8002 returned /health 200, /v1/models, and a chat completion; startup log reported GPU KV cache size 804,421 tokens and 3.07x concurrency for 262,144-token requests
capacity_basis: dev-corp target baseline; vLLM --max-num-seqs 4, --max-model-len 262144, --gpu-memory-utilization 0.40; observed KV cache satisfies requested 262144x2 minimum
runtime:
host: spark-0b30
@ -174,7 +174,7 @@ nodes:
capacity_basis: dev-corp target baseline; Docker publishes host 8004 to container 8004; vLLM --max-num-seqs 4, --max-model-len 262144, --gpu-memory-utilization 0.40; observed KV cache satisfies requested 262144x2 minimum
edge_connectivity:
mode: reverse_ssh_tunnel
reason: node02 cannot reach mac-mini 172.23.78.70:18085/18086 directly from 192.168.2.4
reason: node02 cannot reach mac-mini 172.24.63.178:18085/18086 directly from 192.168.2.4
tunnel_pid_file: /Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime/node02-tunnel.pid
remote_forwards:
artifact: 127.0.0.1:28085 -> mac-mini 127.0.0.1:18085

View file

@ -3,7 +3,7 @@ test_env: dev-corp
test_profile: node-smoke
domain: node
verification_type: smoke
last_rule_updated_at: 2026-06-25
last_rule_updated_at: 2026-06-29
---
# node-smoke dev-corp 테스트
@ -32,18 +32,18 @@ last_rule_updated_at: 2026-06-25
## 환경
- host: local checkout. dev-corp host, provider, shared Edge runtime evidence가 필요하면 mac-mini `ssh fe@172.23.78.70`을 사용한다.
- host: local checkout. dev-corp host, provider, shared Edge runtime evidence가 필요하면 mac-mini `ssh fe@172.24.63.178`을 사용한다.
- port: compose Edge-Node TCP transport `19006`, native provider-pool Edge-Node TCP 후보 `18087`
- runtime: Go `1.24`
- package manager: Go modules / Makefile
- docker: unit/smoke quick check는 Docker를 요구하지 않는다. compose dev-corp 검증은 mac-mini에서 수행한다.
- external service: dev-corp Edge runtime 후보 `172.23.78.70:18087`
- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.23.78.70:18086/v1`
- external service: dev-corp Edge runtime 후보 `172.24.63.178:18087`
- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.24.63.178:18086/v1`
- credential: token/secret/API key 원문은 문서에 기록하지 않는다.
## dev-corp Node 접속 기준
dev-corp의 실제 3-node 연결을 점검할 때는 mac-mini `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` checkout과 `build/dev-corp-runtime/edge.yaml`을 기준으로 한다. Node는 provider pool 기준에서 Edge-Node TCP `172.23.78.70:18087`로 붙는다.
dev-corp의 실제 3-node 연결을 점검할 때는 mac-mini `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` checkout과 `build/dev-corp-runtime/edge.yaml`을 기준으로 한다. Node는 provider pool 기준에서 Edge-Node TCP `172.24.63.178:18087`로 붙는다.
단, DGX Spark 02는 2026-06-25 기준 mac-mini Edge port 직접 접근이 timeout이므로 `127.0.0.1:28087 -> mac-mini 127.0.0.1:18087` reverse SSH tunnel로 붙는다.
- DGX Spark 01 vLLM node: `corp-dgx-spark-01-vllm-node` / `corp-dgx-spark-01-vllm`
@ -85,7 +85,7 @@ Mac Studio의 secondary `http://192.168.2.3:8005/v1` endpoint는 기본 Node/pro
## 2026-06-25 런타임 설정 반영 상태
- DGX Spark 01에는 capacity `4`, context window `262144`, requested KV `262144x2` 이상의 기준을 반영했다. vLLM에는 vLLM-MLX식 `--max-kv-size`가 없으므로 DGX01은 `--max-num-seqs 4`, `--max-model-len 262144`, `--gpu-memory-utilization 0.40`로 운용하고, 실제 KV cache는 startup log의 `GPU KV cache size`로 검증한다.
- DGX Spark 01은 2026-06-25 재기동 후 mac-mini public forward `http://172.23.78.70:8002` 기준 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했다. 같은 로그에서 GPU KV cache `804,421` tokens, `262144` tokens/request concurrency `3.07x`가 확인됐다.
- DGX Spark 01은 2026-06-25 재기동 후 mac-mini public forward `http://172.24.63.178:8002` 기준 `/health` 200, `/v1/models`, `/v1/chat/completions` 단문 smoke를 통과했다. 같은 로그에서 GPU KV cache `804,421` tokens, `262144` tokens/request concurrency `3.07x`가 확인됐다.
- DGX Spark 02에는 capacity `4`, context window `262144`, requested KV `262144x2` 이상의 기준을 반영했다. Docker `vllm-gemma4`는 host/container `8004` 기준으로 동작하며, node-local과 mac-mini 경유 `/health`, `/v1/models`, 직접 동시성 `1..4` chat completion benchmark를 통과했다.
- DGX Spark에서 explicit `--max-num-batched-tokens 524288`를 사용하는 경우 first profile 중 FP4 MoE 커널 한계에 걸릴 수 있어 `VLLM_MAX_TOKENS_PER_EXPERT_FP4_MOE=4194304` 보정이 필요하다.
- DGX Spark 01은 FlashInfer FP4 JIT가 first compile 중 `ninja`를 PATH에서 찾으므로 `/home/digitalcommerce_dgx_spark_01/vllm_env/bin` PATH prefix가 필요하다.

View file

@ -3,7 +3,7 @@ test_env: dev-corp
test_profile: platform-common-smoke
domain: platform-common
verification_type: smoke
last_rule_updated_at: 2026-06-25
last_rule_updated_at: 2026-06-29
---
# platform-common-smoke dev-corp 테스트
@ -34,8 +34,8 @@ last_rule_updated_at: 2026-06-25
- runtime: Go `1.24`
- package manager: Go modules / Makefile
- docker: unit/codegen quick check는 Docker를 요구하지 않는다. compose dev-corp 검증은 mac-mini에서 수행한다.
- external service: dev-corp artifact/base URL 후보 `http://172.23.78.70:18085`
- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.23.78.70:18086/v1`
- external service: dev-corp artifact/base URL 후보 `http://172.24.63.178:18085`
- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.24.63.178:18086/v1`
- credential: token/secret/API key 원문은 문서에 기록하지 않는다.
## 명령

View file

@ -1,6 +1,6 @@
---
test_env: dev-corp
last_rule_updated_at: 2026-06-25
last_rule_updated_at: 2026-06-29
---
# dev-corp 테스트 규칙
@ -21,7 +21,7 @@ last_rule_updated_at: 2026-06-25
## 기본 환경
- host: Edge runner 후보는 `ssh fe@172.23.78.70` mac-mini이다.
- host: Edge runner 후보는 `ssh fe@172.24.63.178` mac-mini이다.
- repo root: 목표 checkout은 `/Users/fe/agent-work/iop-dev-corp`이다. 2026-06-25 확인 기준 해당 checkout은 없고 `/Users/fe/iop-field`만 있으므로 최초 배포 전 repo root 생성이 필요하다.
- sync 기준: dev-corp 배포 전 mac-mini checkout은 배포 기준 ref로 clean sync하고 dirty 변경은 보존 대상으로 보지 않는다.
- env file: compose stack을 만들면 `.env.dev-corp.example`로 분리한다. 파일 생성 전에는 native/provider-pool profile만 기준으로 삼는다.
@ -31,8 +31,8 @@ last_rule_updated_at: 2026-06-25
- runtime: Go quick check는 local toolchain을 우선한다. Docker/Flutter/client/field/bootstrap/provider-pool evidence는 mac-mini와 내부 provider nodes를 사용한다.
- package manager: Go modules / Makefile / Flutter pub
- docker: 현재 작업 컨테이너에서는 Docker-in-Docker를 사용하지 않는다. Docker compose 검증은 mac-mini checkout에서 수행한다.
- external service: dev-corp Control Plane 후보 `http://172.23.78.70:18002`, Client wire 후보 `ws://172.23.78.70:19004/client`.
- model endpoint: Edge 배포 후 후보 `http://172.23.78.70:18086/v1`; 직접 provider 확인은 `agent-test/dev-corp/inventory.yaml`의 provider endpoint를 따른다.
- external service: dev-corp Control Plane 후보 `http://172.24.63.178:18002`, Client wire 후보 `ws://172.24.63.178:19004/client`.
- model endpoint: Edge 배포 후 후보 `http://172.24.63.178:18086/v1`; 직접 provider 확인은 `agent-test/dev-corp/inventory.yaml`의 provider endpoint를 따른다.
- credential: secret/token/API key 원문은 문서에 기록하지 않는다.
## 포트 매핑
@ -55,10 +55,10 @@ dev-corp native/provider-pool profile은 compose Edge-Node TCP `19006`이 아니
## 런타임 프로필
- local quick check: 현재 checkout에서 Go quick check를 우선 실행한다.
- remote runner: dev-corp runtime evidence, Flutter client, Docker compose, field/bootstrap, provider-pool evidence는 `ssh fe@172.23.78.70`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다.
- remote runner: dev-corp runtime evidence, Flutter client, Docker compose, field/bootstrap, provider-pool evidence는 `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다.
- compose dev-corp stack: `.env.dev-corp.example`, `COMPOSE_PROJECT_NAME=iop-dev-corp-agent`, `IOP_COMPOSE_NETWORK=iop-dev-corp-agent-net`, Edge-Node TCP `19006`을 사용한다.
- Edge direct dev-corp profile: artifact/bootstrap `18085`, OpenAI-compatible `18086`, metrics `19102`, admin `19094`를 사용한다.
- dev-corp provider pool: `/Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime/edge.yaml`과 Edge-Node TCP `172.23.78.70:18087`을 사용한다. 3-node/provider 세부는 `agent-test/dev-corp/edge-smoke.md``agent-test/dev-corp/node-smoke.md`를 따른다.
- dev-corp provider pool: `/Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime/edge.yaml`과 Edge-Node TCP `172.24.63.178:18087`을 사용한다. 3-node/provider 세부는 `agent-test/dev-corp/edge-smoke.md``agent-test/dev-corp/node-smoke.md`를 따른다.
- external provider field: DGX Spark 01/02와 Mac Studio는 mac-mini에서 내부 SSH로 접속한다. 직접 접속 경로와 provider endpoint는 `agent-test/dev-corp/inventory.yaml`을 따른다.
## 프리플라이트

View file

@ -3,7 +3,7 @@ test_env: dev-corp
test_profile: testing-smoke
domain: testing
verification_type: smoke
last_rule_updated_at: 2026-06-25
last_rule_updated_at: 2026-06-29
---
# testing-smoke dev-corp 테스트
@ -37,8 +37,8 @@ last_rule_updated_at: 2026-06-25
- runtime: Go `1.24`
- package manager: Go modules / Makefile
- docker: quick check는 Docker를 요구하지 않는다. 현재 작업 컨테이너에서는 Docker-in-Docker를 사용하지 않으며, Docker compose 검증은 mac-mini 환경에서 수행한다.
- external service: dev-corp Control Plane 후보 `http://172.23.78.70:18002`, dev-corp Client wire 후보 `ws://172.23.78.70:19004/client`, dev-corp Edge runtime 후보 `172.23.78.70:18087`
- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.23.78.70:18086/v1`
- external service: dev-corp Control Plane 후보 `http://172.24.63.178:18002`, dev-corp Client wire 후보 `ws://172.24.63.178:19004/client`, dev-corp Edge runtime 후보 `172.24.63.178:18087`
- model endpoint: dev-corp OpenAI-compatible base URL 후보 `http://172.24.63.178:18086/v1`
- credential: token/secret/API key 원문은 문서에 기록하지 않는다.
## 명령