Files
carlandCursor 0136c15274 Initial commit: Plane 自部署与 gptproto AI 集成
包含本地/远程部署脚本、AI Agent 服务、Dashboard 与 QA 验证。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-21 11:37:41 +08:00

2.2 KiB
Raw Permalink Blame History

QA 验证清单

自动化(在 Stage A 完成后跑 bash qa/verify-local.sh)

  • 所有容器 Up (healthy)
  • curl -I http://localhost:8090 → 200
  • pytest ai-agent/tests/ -v 全绿
  • curl :8100/healthz 返回 {"status":"ok"}
  • docker-compose 无 :latest 镜像
  • .env 权限 600

人工

  • 浏览器访问 http://localhost:8090,可注册并登录
  • god-mode → General → Telemetry = off
  • tcpdump -i any host plausible.io(10 分钟)→ 0 包
  • AI 创建任务端到端走通(curl + 浏览器看 issue 出现)
  • docker compose down && docker compose up -d 后数据仍在

Worker 完成签名

(Worker 完成后追加在此处)

WORKER A 完成 @2026-04-28T08:59:30Z

  • deploy/local/pull-plane.sh (chmod +x,bash -n OK,幂等 git clone v1.3.0)
  • deploy/local/.env.template (POSTGRES/SECRET_KEY/MINIO_*/GPTPROTO_API_KEY 占位符,无明文)
  • deploy/local/docker-compose.override.yml (YAML 校验通过;web 8090:80;plane-ai 8100;db/redis/minio 不暴露;全部镜像锁 v1.3.0)
  • deploy/local/README.md (包含 'cp .env.template .env first',含启停/排障)
  • deploy/remote/install.sh + .env.template + README.md (脚本不会自动 ssh,由人类运维手动跑)
  • qa/verify-local.sh (6 项检查:compose ps healthy / curl :8090 / curl :8100/healthz / .env perm 600 / 无 :latest / 汇总;未启动栈时 exit=1,正确)

WORKER B 完成 @2026-04-28T17:01:20+0800

  • ai-agent/requirements.txt(fastapi/httpx/openai/pytest/pytest-asyncio/respx/uvicorn 全部 pin 大版本)
  • ai-agent/ai_agent/main.py(4 端点:/healthz、/ai/create-issue、/ai/summarize、/ai/search)
  • TDD 流程严格执行:每个端点先写 test → pytest RED(404/422,非 import error)→ 实现 → GREEN
  • ai-agent/tests/ 4 个测试文件,pytest -v 7 passed in 0.23s(healthz×1 / create_issue×2 / summarize×2 / search×2)
  • 所有外部调用 respx mock(gptproto.com/v1 + http://api:8000),单测无真实联网
  • ai-agent/Dockerfile(python:3.11-slim,EXPOSE 8100,uvicorn ai_agent.main:app,含 healthcheck)
  • 无任何 API key 实值入文件;ai-agent/.venv 仅本地用,不入交付