Skip to content

feat: 对齐单次提交接口与结果协议(第二批) - #12

Merged
LING71671 merged 1 commit into
mainfrom
codex/align-python-submit
Nov 11, 2026
Merged

LING71671 merged 1 commit into
mainfrom
codex/align-python-submit

Conversation

@LING71671

Copy link
Copy Markdown
Collaborator

此前,高层 Go SDK 只能运行任务并返回汇总结果,无法直接获取一次提交的状态和耗时。本 PR 增加 client.Submit()、包级 surveycore.Submit() 和同步接口 POST /api/v1/submissions,对齐 Python 的单次提交请求与结果结构。

本批内容

  • 新增高层 SubmissionRequest,接收运行配置和可选问卷快照;复用现有三平台执行逻辑。
  • 固定执行一次,关闭任务级并发、提交间隔和自动重试;省略题目策略时自动生成默认策略,保留调用方原始配置与快照。
  • 返回 attempt、provider、success、elapsed_seconds 和可为 null 的 error,独立调用的 attempt 为 0。
  • Go 执行失败时同时返回失败结果及带分类的错误,提供 ClassifySubmissionError(),保留 context 取消和超时原因。
  • 同步 HTTP 接口接受 Go 配置或第一批支持的 Python v1 配置。请求错误返回 400/422;执行阶段失败返回 200 和 success: false,不创建持久化任务。
  • 补充三平台模拟提交、失败不重试、取消、快照、配置不变性、HTTP 参数校验和外部 SDK 测试;使用 Python 实际生成的结果样例检查 JSON 契约,同步 OpenAPI 与 SDK 文档。

验证

  • go test ./...
  • go vet ./...
  • go build ./...
  • go test -race ./pkg/surveycore ./pkg/surveycore/runtime ./pkg/restapi
  • tests/consumer 外部 SDK 测试
  • OpenAPI schema、Python 配置请求样例和实际 Python 结果样例校验
  • git diff --check

后续范围

这是 #10 的第二批。任务运行的逐次结果、重试和间隔语义,以及完整解析字段对齐,留到后续两批。

关联 #10。

@LING71671
LING71671 merged commit a30d82c into main Nov 11, 2026
10 checks passed
@LING71671
LING71671 deleted the codex/align-python-submit branch November 11, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant