Skip to content

docs: correct DevPass data retention copy - #3383

Merged
steebchen merged 2 commits into
mainfrom
docs/devpass-retention-copy
Aug 2, 2026
Merged

steebchen merged 2 commits into
mainfrom
docs/devpass-retention-copy

Conversation

@steebchen

@steebchen steebchen commented Aug 2, 2026 •

Copy link
Copy Markdown
Member

Problem

A support-chat conversation had the assistant confidently tell a DevPass user that "Data Retention settings apply to DevPass too", complete with a Metadata Only / Retain All Data table, "default on Lite, Pro, Max", and "you can purge stored payloads at any time from settings".

None of that is true since #3296 (Jul 29, 2026), which removed the DevPass retention toggle entirely: PATCH /organizations/{id} now rejects retentionLevel for any org whose kind is not default, getOrCreatePersonalOrg/getOrCreateChatOrg create orgs as retentionLevel: "none", and a migration forced existing devpass/chat orgs to none.

The assistant wasn't hallucinating from nothing — it was reading stale public copy. Its knowledge set is built from the live sitemaps of llmgateway.io, devpass.llmgateway.io, docs.llmgateway.io and chat.llmgateway.io (apps/api/src/utils/chat-support-knowledge.ts), and devpass.llmgateway.io/legal/privacy still described exactly that retention setting, phrase for phrase. Nothing in the docs stated the carve-out either, so the generic /features/data-retention page ("configured per organization") read as applying everywhere.

The Responses API caveat

"Metadata only" is not the same as "nothing is ever stored", and the copy has to say so. /v1/responses is stateful by design: storeResponse() writes the input and output items to dedicated storage with a 30-day TTL whenever store !== false (apps/gateway/src/responses/tools/response-state.ts), independently of the org's retention level and org kind. DevPass users reach this through Codex CLI, which we document as a DevPass guide — so their payloads are held for up to 30 days on that endpoint. The pages now state this exception, and that store: false opts out.

Changes

Fixed the sources rather than patching the bot's prompt:

  • DevPass privacy policy (apps/code/.../legal/privacy) — §1b now says DevPass is metadata only with no setting to enable payload storage, followed by an explicit Responses API exception (30-day dedicated storage, store: false to opt out, transient in-flight caching). §5 drops the removed retain/metadata choice and the "purge from settings" flow that doesn't exist.
  • DevPass terms (apps/code/.../legal/terms) — §5 no longer claims payloads are stored "subject to the retention options available in your account settings"; notes the Responses API exception.
  • DevPass FAQ — the PAYG answer attached the retention add-on to "both modes"; retention is now scoped to pay-as-you-go, with DevPass called out as metadata only with no retention option.
  • Docs — features/data-retention gains a callout that the levels are configurable on standard pay-as-you-go orgs only, and its existing Responses API callout now spells out that the 30-day storage applies to metadata-only orgs including DevPass and chat; learn/policies gets the same note. This gives the assistant a positive source for both facts, not just the absence of a claim.

Both DevPass legal pages got their "Last Updated" dates bumped since the substance changed.

Verification

pnpm format and a full pnpm build pass. No behavior change — the enforcement already exists in the API; this is public copy catching up to it.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Clarified that DevPass and chat subscriptions retain metadata only; request payloads and responses are not stored.
    • Documented that configurable data-retention settings are available only for standard pay-as-you-go plans.
    • Noted that Responses API items may be retained for up to 30 days, with an opt-out option.
    • Updated privacy policy and terms last-updated dates to August 2, 2026.
    • Updated FAQ and data-retention guidance to reflect these policies.

Copilot AI review requested due to automatic review settings August 2, 2026 16:44
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

The PR updates legal pages, the FAQ, and documentation to define metadata-only retention for DevPass and chat subscriptions. Standard pay-as-you-go organizations retain configurable settings. Stateful Responses API items can be retained for up to 30 days unless store: false is used.

Changes

Retention policy documentation

Layer / File(s) Summary
Legal retention policy
apps/code/src/app/legal/privacy/page.tsx, apps/code/src/app/legal/terms/page.tsx
Updates the legal-page dates and defines metadata-only retention. Request and response payloads are not generally retained. Stateful Responses API items can be retained for up to 30 days.
FAQ and documentation alignment
apps/code/src/components/Faq.tsx, apps/docs/content/features/data-retention.mdx, apps/docs/content/learn/policies.mdx
Limits configurable retention to standard pay-as-you-go organizations and documents metadata-only retention for DevPass and chat subscriptions.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: smakosh

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: correcting DevPass data-retention documentation and legal copy.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/devpass-retention-copy

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates public DevPass and documentation copy to reflect the post-#3296 reality: DevPass/chat never store request/response payloads and do not expose a retention-level setting, while standard PAYG orgs can configure retention.

Changes:

  • Add explicit “PAYG-only” retention caveats to docs pages that describe data retention behavior.
  • Update DevPass legal terms/privacy language to remove references to a retention toggle and payload storage.
  • Adjust DevPass FAQ copy to scope full retention to PAYG and clarify DevPass’s metadata-only behavior.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
apps/docs/content/learn/policies.mdx Adds a note that retention level configuration applies only to standard PAYG orgs; DevPass/chat are metadata-only.
apps/docs/content/features/data-retention.mdx Adds a warning callout and clarifies configuration scope as PAYG-only.
apps/code/src/components/Faq.tsx Updates FAQ answer to scope optional retention to PAYG and mention DevPass metadata-only behavior.
apps/code/src/app/legal/terms/page.tsx Updates DevPass terms to state only metadata is stored; payloads/responses are never stored.
apps/code/src/app/legal/privacy/page.tsx Updates DevPass privacy policy to state payloads are never stored; removes retention-toggle language and bumps last-updated date.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +81 to +82
completes. There is no setting to turn payload storage on, on any
DevPass plan. The configurable data retention available on pay-as-you-go
Comment thread apps/code/src/components/Faq.tsx Outdated
{
question: "Do I need a subscription, or is there pay-as-you-go?",
answer: `Both work. DevPass plans turn every dollar into $3 of model usage. If you'd rather not subscribe, LLM Gateway offers pay-as-you-go: top up credits and pay per token at provider rates with a flat ${MARKETING_STATS.platformFee} platform fee, or bring your own provider keys for free. In both modes, optional full data retention is billed at ${MARKETING_STATS.dataStoragePrice}.`,
answer: `Both work. DevPass plans turn every dollar into $3 of model usage. If you'd rather not subscribe, LLM Gateway offers pay-as-you-go: top up credits and pay per token at provider rates with a flat ${MARKETING_STATS.platformFee} platform fee, or bring your own provider keys for free. Pay-as-you-go organizations can optionally enable full data retention, billed at ${MARKETING_STATS.dataStoragePrice}; DevPass never stores request payloads.`,

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/code/src/app/legal/privacy/page.tsx`:
- Around line 77-84: Update the privacy policy paragraph text around the “There
is no setting” sentence to replace “turn payload storage on, on any DevPass
plan” with “enable payload storage on any DevPass plan,” preserving the
surrounding policy wording.

In `@apps/docs/content/features/data-retention.mdx`:
- Around line 27-33: Scope the retention claims to standard pay-as-you-go
organizations and explicitly exclude DevPass and chat subscriptions, which
remain metadata-only. Update the retention statements near the referenced
sections in apps/docs/content/features/data-retention.mdx and the policy
statement at apps/docs/content/learn/policies.mdx lines 24-25 to clarify that
payloads are never stored for those subscriptions and cannot be enabled through
organization settings.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b95b2de9-74e7-4d7e-ab6a-cb8e9ee35835

📥 Commits

Reviewing files that changed from the base of the PR and between 23ce48a and 2427988.

📒 Files selected for processing (5)
  • apps/code/src/app/legal/privacy/page.tsx
  • apps/code/src/app/legal/terms/page.tsx
  • apps/code/src/components/Faq.tsx
  • apps/docs/content/features/data-retention.mdx
  • apps/docs/content/learn/policies.mdx

Comment on lines 77 to 84
Full request and response <strong>payloads</strong> (your prompts and
the model output) are <strong>never stored</strong> on DevPass. DevPass
is metadata only: the counts, costs, and routing information listed
above are kept, and prompts and responses are discarded once the request
completes. There is no setting to turn payload storage on, on any
DevPass plan. The configurable data retention available on pay-as-you-go
LLM Gateway organizations does not apply to DevPass.
</p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove the duplicated preposition in the policy text.

Line 81 reads “turn payload storage on, on any DevPass plan.” Use “enable payload storage on any DevPass plan” for clearer legal text.

Suggested wording
-				There is no setting to turn payload storage on, on any
-				DevPass plan.
+				There is no setting to enable payload storage on any DevPass
+				plan.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Full request and response <strong>payloads</strong> (your prompts and
the model output) are <strong>never stored</strong> on DevPass. DevPass
is metadata only: the counts, costs, and routing information listed
above are kept, and prompts and responses are discarded once the request
completes. There is no setting to turn payload storage on, on any
DevPass plan. The configurable data retention available on pay-as-you-go
LLM Gateway organizations does not apply to DevPass.
</p>
Full request and response <strong>payloads</strong> (your prompts and
the model output) are <strong>never stored</strong> on DevPass. DevPass
is metadata only: the counts, costs, and routing information listed
above are kept, and prompts and responses are discarded once the request
completes. There is no setting to enable payload storage on any DevPass
plan. The configurable data retention available on pay-as-you-go
LLM Gateway organizations does not apply to DevPass.
</p>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/code/src/app/legal/privacy/page.tsx` around lines 77 - 84, Update the
privacy policy paragraph text around the “There is no setting” sentence to
replace “turn payload storage on, on any DevPass plan” with “enable payload
storage on any DevPass plan,” preserving the surrounding policy wording.

Comment thread apps/docs/content/features/data-retention.mdx
@steebchen
steebchen enabled auto-merge August 2, 2026 16:52

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/code/src/app/legal/privacy/page.tsx`:
- Around line 86-93: Update the Responses API privacy text near the “Exception —
the Responses API” section to remove the claim that the 30-day automatic
deletion behavior matches OpenAI’s retention. Keep the stated storage and
deletion policy unchanged unless it is supported by an explicit provider
contract.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fed53fc2-0eba-46f4-bba7-a9a03f183efe

📥 Commits

Reviewing files that changed from the base of the PR and between 2427988 and e244448.

📒 Files selected for processing (5)
  • apps/code/src/app/legal/privacy/page.tsx
  • apps/code/src/app/legal/terms/page.tsx
  • apps/code/src/components/Faq.tsx
  • apps/docs/content/features/data-retention.mdx
  • apps/docs/content/learn/policies.mdx
🚧 Files skipped from review as they are similar to previous changes (4)
  • apps/docs/content/learn/policies.mdx
  • apps/code/src/app/legal/terms/page.tsx
  • apps/docs/content/features/data-retention.mdx
  • apps/code/src/components/Faq.tsx

Comment on lines +86 to +93
<strong>Exception — the Responses API.</strong> Requests to{" "}
<code>/v1/responses</code> (used by tools such as Codex CLI) are
stateful by design: so that <code>previous_response_id</code> chaining
and <code>GET /v1/responses/&#123;id&#125;</code> work, the input and
output items of those requests are held in dedicated storage for up to{" "}
<strong>30 days</strong>, after which they are automatically deleted.
This applies regardless of retention settings and matches OpenAI&rsquo;s
own Responses API retention. Send <code>store: false</code> with the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

OpenAI Responses API response data stored for at least 30 days deleted after 30 days

💡 Result:

OpenAI's standard data retention policy for API usage, specifically regarding abuse monitoring logs, is that customer content (including prompts and responses) is retained for up to 30 days [1][2]. After this 30-day period, these logs are automatically removed from OpenAI's systems, unless retention is required by law or necessary for the protection of services or third parties [1][2]. It is important to distinguish between different types of data and retention controls: 1. Abuse Monitoring Logs: By default, API requests and responses are stored in logs for up to 30 days for abuse monitoring [1]. 2. Zero Data Retention (ZDR): Customers eligible for and approved for Zero Data Retention or modified abuse monitoring controls can exclude their content from these standard logs [1][2]. For ZDR-eligible endpoints, inputs and outputs are not retained for application state and are not logged for abuse monitoring [1][2]. 3. Other Endpoints: Some endpoints or features have different retention behaviors. For example, data sent to certain endpoints like /v1/conversations may be retained "until deleted," rather than being subject to a 30-day expiration [1]. 4. Developer Controls: For specific features that support it, developers may have options (such as a store parameter) to explicitly manage whether certain response objects are persisted [3]. In summary, while the default behavior for standard API abuse monitoring logs is to delete data after 30 days, actual retention behavior depends on the specific endpoint, the user's configured data retention settings (such as ZDR), and the nature of the service being used [1][2]. Official OpenAI documentation on data controls provides a breakdown of retention by endpoint [1].

Citations:


🌐 Web query:

site:platform.openai.com/docs Responses API response data stored for at least 30 days

💡 Result:

There is no publicly available authoritative documentation or standard technical specification for an API specifically named Responses API that mandates the storage of response data for at least 30 days. The term Responses API is generic and may refer to various proprietary internal systems or third-party services that do not share a common data retention policy. Because there are no specific results regarding an API by this name with a 30-day retention requirement, it is not possible to verify such a policy.

Citations:


🌐 Web query:

site:platform.openai.com/docs/ responses API response data retention 30 days

💡 Result:

There is no standardized or universal 30-day data retention policy for API responses across the industry. Data retention practices are specific to each service provider, the type of data being handled, and the terms of service for the particular API. Technical documentation for specific APIs, such as the OpenAI API, does not cite a general 30-day retention policy for all response data [1]. When using services that store data, such as threads or run steps, you should consult the specific data retention and privacy policies provided by the platform developer [1]. If you are developing an application that uses an API, you are generally responsible for defining and implementing your own data retention policy for any response data you choose to store in your own systems. If you have a specific API in mind, please check its official documentation under sections typically labeled Data Retention, Privacy, or Compliance.

Citations:


🌐 Web query:

"Responses API" "stored for at least 30 days" OpenAI

💡 Result:

OpenAI retains data processed through its API services based on the specific endpoint used and organizational configurations [1][2]. Regarding the Responses API and general API usage, OpenAI's retention policies are as follows: Abuse Monitoring By default, OpenAI retains API inputs and responses for up to 30 days for the purpose of monitoring for abuse and ensuring the safety of its services [1][2][3]. This retention is standard unless otherwise required by law or necessary to protect services from harm [1]. Application State and the 'store' Parameter For specific endpoints, such as the Responses API, OpenAI provides a 30-day retention period for application state, which occurs by default or when the 'store' parameter is set to 'true' [1]. When 'store' is enabled, the data is persisted, allowing it to be visible in the Logs tab of the dashboard and accessible for features like evals or distillation [4]. If the 'store' parameter is set to 'false' (which is the default for most API calls), the data is generally not retained for application state [1][4]. Zero Data Retention (ZDR) Organizations can apply for a Zero Data Retention (ZDR) program [1][3][5]. When ZDR is enabled for an organization, the 'store' parameter is effectively disabled (always treated as 'false'), and API request and response bodies are not persisted to logging mechanisms, existing only in memory to serve the request [1][3]. Summary of Retention In summary, unless an organization is enrolled in a Zero Data Retention program, API data (including responses) is typically stored for up to 30 days for abuse monitoring [1][2]. Data specifically flagged with 'store=true' or used in endpoints that retain application state is also held for at least 30 days [1].

Citations:


🌐 Web query:

platform.openai.com/docs/models/default-usage-policies-by-endpoint Responses API store false

💡 Result:

Regarding the behavior of the store parameter in the OpenAI API, when you set store=false, you are instructing OpenAI not to retain the request and response data for purposes such as fine-tuning, analysis, or display in the usage dashboard logs [1][2]. Key points regarding this behavior include: 1. Default Behavior: By default, many API endpoints (such as /v1/chat/completions and the Responses API) may have data retention enabled, but this is distinct from training usage [1][3]. When store=false is explicitly set in your API call, the content is not retained for future use in distillation, evaluation, or dashboard logging [2]. 2. Zero Data Retention (ZDR): If your organization has Zero Data Retention (ZDR) enabled, the store parameter is effectively overridden; OpenAI will treat the request as store=false regardless of whether you attempt to set it to true [1]. In this configuration, input and output data are not logged or retained for application state [1][4]. 3. Abuse Monitoring: It is important to note that even when store=false is used, OpenAI retains abuse monitoring logs for up to 30 days to protect its services and comply with safety requirements [1]. These logs are processed separately from the application state data controlled by the store parameter [1]. In summary, setting store=false prevents the retention of data for your dashboard logs and model refinement processes, but it does not bypass the standard, limited-duration abuse monitoring logs maintained by OpenAI [1][2].

Citations:


🌐 Web query:

"your-data" "Responses API" "response data" "OpenAI"

💡 Result:

In the context of OpenAI's API documentation, "your data" typically refers to the information and inputs you provide to the models [1][2]. OpenAI has clear policies regarding how this data is handled, stored, and used [2][3]. Key points regarding "your data" and OpenAI's API include: Data Usage and Training: By default, data sent to the OpenAI API is not used to train or improve OpenAI's models [2][3]. This applies to both the Chat Completions API and the Responses API [2]. Data Retention: - For the Responses API and Chat Completions API, data is typically retained for up to 30 days for abuse monitoring purposes [2]. - The Responses API may store data for longer periods if the store parameter is set to true (which is the default behavior in some contexts) [2]. - For customers with sensitive applications, a Zero Data Retention (ZDR) policy may be available, which prevents the persistence of request and response bodies to logging mechanisms [2][3]. Data Controls: You can manage data retention and storage through the store parameter in relevant API endpoints [4][2]. For further control, enterprise users can inquire about ZDR policies via OpenAI's sales team or dedicated support channels [5]. Distinction from "On Your Data": It is important to distinguish the general concept of "your data" from specific features like "Azure OpenAI On Your Data" or other RAG (Retrieval-Augmented Generation) implementations [6]. If you are using platforms like Azure OpenAI, "On Your Data" is a specific feature that integrates your custom data sources, often returning specific fields like context or citations in the API response to indicate which documents were retrieved and used [6]. If you are encountering a specific field or error message referencing "your-data" in an API response, please verify if you are using a third-party wrapper, an Azure-specific integration, or a custom implementation, as "your-data" is not a standard, top-level field in the official OpenAI Chat Completions or Responses API JSON schemas [7][8][9][6].

Citations:


Correct the OpenAI retention comparison.

OpenAI documents Responses API response data as stored for at least 30 days. It does not promise deletion at 30 days. Remove the “matches OpenAI’s own Responses API retention” statement, or back it with a provider contract that explicitly supports the same deletion behavior.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/code/src/app/legal/privacy/page.tsx` around lines 86 - 93, Update the
Responses API privacy text near the “Exception — the Responses API” section to
remove the claim that the 30-day automatic deletion behavior matches OpenAI’s
retention. Keep the stated storage and deletion policy unchanged unless it is
supported by an explicit provider contract.

@steebchen
steebchen added this pull request to the merge queue Aug 2, 2026
Merged via the queue into main with commit f880e0a Aug 2, 2026
12 checks passed
@steebchen
steebchen deleted the docs/devpass-retention-copy branch August 2, 2026 17:30
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.

2 participants