# WSL 代码验证 > **只做一件事**:在 WSL 里确认代码能启动、单测通过、关键 HTTP 行为正确。 > **不做**:密钥/git 核对、生产部署清单、浏览器手测、Agent、CRUD 全量 E2E。 环境:WSL + MySQL + Redis + Python 3.12 + 本地 `.env`(内容由 install 生成即可,WSL 不审 key)。 --- ## 三步 **终端 1 — 依赖(首次)** ```bash cd <项目根> bash scripts/wsl_ensure_venv.sh ``` **终端 1 — 启动** ```bash bash scripts/wsl_start_dev.sh ``` **终端 2 — 验证** ```bash bash scripts/wsl_integration_smoke.sh ``` 默认即 `--code-only`,检查项: | 项 | 预期 | |----|------| | `tests/test_security_unit.py` | 15 passed | | `GET /health` | 200,`redis`/`mysql` 为 ok | | `GET /api/servers/` | 401(JWT 中间件) | 全绿 = **WSL 代码验证通过**。 --- ## 环境未就绪时 ```bash sudo service redis-server start # redis-cli ping → PONG bash scripts/wsl_ensure_venv.sh # PEP 668 用 .venv ``` 无 `.env`:先 `bash scripts/wsl_start_dev.sh`,浏览器走 `http://127.0.0.1:8600/app/install.html` 生成 `.env` 后再跑 smoke。 --- ## 启动报错(代码层已修) | 现象 | 说明 | |------|------| | Redis `unexpected keyword argument 'url'` | 需 `BlockingConnectionPool.from_url()` | | MySQL `ping() missing reconnect` | 需 `engine_compat.patch_aiomysql_do_ping()` + venv 内 SQLAlchemy 2.0.49 | --- ## 脚本 | 脚本 | 作用 | |------|------| | `scripts/wsl_ensure_venv.sh` | 创建 `.venv` 并安装依赖 | | `scripts/wsl_start_dev.sh` | 启动 uvicorn | | `scripts/wsl_integration_smoke.sh` | 代码验证(默认) | | `scripts/wsl_integration_smoke.sh --start` | 检查环境后前台启动 | 上线与业务验收见 [`production-verification-checklist.md`](production-verification-checklist.md)(与 WSL 无关)。