feat(api): 统一官方兼容接口响应协议 #24

Merged
easyai merged 2 commits from codex/official-compat-errors into main 2026-07-22 15:38:57 +08:00
Owner

变更说明

  • 兼容入口按 OpenAI、Gemini、火山方舟、可灵目标协议返回官方成功、任务状态和错误结构
  • 同协议保留官方 Wire 响应与允许转发的响应头,跨协议基于内部标准结果转换
  • 拆分提交确认与轮询状态,持久化兼容公开任务 ID、官方提交状态、响应头和响应体
  • 新增 0075 迁移、协议契约、流式响应和提交边界测试,并更新 OpenAPI 产物

风险与兼容性

  • Gateway 原生接口继续使用原有 ErrorEnvelope
  • 迁移只新增列与索引,不修改历史迁移
  • 兼容响应移除 Gateway 扩展字段,账单与诊断仍从原生任务接口获取

验证

  • go vet ./...
  • go test ./...
  • govulncheck ./...
  • gofmt 检查
  • pnpm install --frozen-lockfile
  • pnpm lint
  • pnpm test
  • pnpm build
  • pnpm audit --audit-level high(仅 1 个 low)
  • pnpm openapi
  • docker compose config --quiet
  • ci-build-images-test.sh
  • migrations-test.sh
  • pipeline-test.sh
  • semver-test.sh
## 变更说明 - 兼容入口按 OpenAI、Gemini、火山方舟、可灵目标协议返回官方成功、任务状态和错误结构 - 同协议保留官方 Wire 响应与允许转发的响应头,跨协议基于内部标准结果转换 - 拆分提交确认与轮询状态,持久化兼容公开任务 ID、官方提交状态、响应头和响应体 - 新增 0075 迁移、协议契约、流式响应和提交边界测试,并更新 OpenAPI 产物 ## 风险与兼容性 - Gateway 原生接口继续使用原有 ErrorEnvelope - 迁移只新增列与索引,不修改历史迁移 - 兼容响应移除 Gateway 扩展字段,账单与诊断仍从原生任务接口获取 ## 验证 - go vet ./... - go test ./... - govulncheck ./... - gofmt 检查 - pnpm install --frozen-lockfile - pnpm lint - pnpm test - pnpm build - pnpm audit --audit-level high(仅 1 个 low) - pnpm openapi - docker compose config --quiet - ci-build-images-test.sh - migrations-test.sh - pipeline-test.sh - semver-test.sh
easyai added 2 commits 2026-07-22 15:38:04 +08:00
兼容接口现在以入口协议作为最终响应协议,同协议保留官方 Wire 响应,跨协议统一转换成功、任务状态与错误结构。

同时修正异步提交状态边界,持久化兼容公开任务标识和官方提交响应,并新增迁移、流式响应及协议契约测试。

验证:go vet ./...;go test ./...;govulncheck ./...;pnpm lint;pnpm test;pnpm build;pnpm audit --audit-level high;pnpm openapi;全部 CI 脚本。
生产迁移安全策略禁止在已有任务表上直接新增非空列。兼容提交响应读取已使用 COALESCE,因此将 JSONB 元数据列改为可空,不改变接口行为。

验证:ci-validate-migrations.mjs;migrations-test.sh;go test ./internal/store ./internal/httpapi。
easyai force-pushed codex/official-compat-errors from b7e0da283b to e00851d7e6 2026-07-22 15:38:04 +08:00 Compare
easyai merged commit 0b7c46cca9 into main 2026-07-22 15:38:57 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: BCAI/easyai-ai-gateway#24