Skip to content

[Epic 953][Stage I][cloud-api] Make Responses API stateless (no-store only) #936

Description

@hanakannzashi

Parent/tracking issue: #934

Implementation: #943

Goal

Retain POST /v1/responses as a stateless, no-store compatibility endpoint without platform-side response or conversation persistence.

Scope

  • Default an omitted store field to false and reject store: true.
  • Reject state-dependent request fields and flows: conversation, previous_response_id, background: true, file input/search, response-history endpoints, code interpreter, computer, and all server-executed Responses tools. Omitted background and background: false remain valid stateless values.
  • Accept only custom client-managed function tools. Cloud returns a function_call; the caller executes it and replays that call plus a matching function_call_output with caller-managed history in a fresh request.
  • Reject web_search, web_context_search, remote mcp, MCP approval/list continuation input, and image-generation/editing output models. The separate root POST /mcp endpoint remains independent of Responses.
  • Build response and output items in request-scoped memory. Do not create, read, or update rows in responses or response_items, and do not pass a database response ID into CompletionRequest.
  • Retire response-history HTTP endpoints: response GET, DELETE, cancel, and input_items.
  • Return Cache-Control: no-store across the Responses router, including early rejections.
  • Preserve existing completed-response gateway attestation compatibility as described in [Epic 953][Stage I][cloud-api] Restrict stateful APIs and retain stateless Responses #934; it is not response-history persistence.

Acceptance criteria

  • Streaming and non-streaming store: false requests complete without persisting response or item content.
  • Each successful inference makes one Chat Completions call with no server-side agent loop or tool execution.
  • Client-managed custom function replay works without previous_response_id, conversation, or response history.
  • Unsupported stateful fields and server-executed tool types return a clear 4xx error.
  • Supported inference, billing, rate limiting, and completed-response attestation remain functional.
  • Tests cover no-store behavior, client-managed function replay, rejected stateful options, response-history retirement, and the stateless public signature path.

Out of scope

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions