Repository navigation
[FEATURE]: Removal of zero-data-retention policy #39861
Description
Activity
github-actions commented
on Jul 31, 2026 on Jul 31, 2026 – with GitHub ActionsContributorMore actionsThis issue might be a duplicate of existing issues. Please check:
- Clarification on data usage for model training — Go and Zen #35102: Clarification on data usage for model training — Go and Zen (asks specifically about OpenCode's own data usage and the zero-retention policy)
- OpenCode Go: clarify which models are self-hosted vs. proxied through third-party providers #24649: OpenCode Go: clarify which models are self-hosted vs. proxied through third-party providers (asks about what zero-retention actually covers and privacy implications)
Both issues cover very similar ground regarding data retention/privacy policy clarity for Go.
Reacted by Thomas Germer, Alastair Lundy, bacca87, Lev Sylin, Robert, RedTea and JakeThe issues mentioned by the bot can not possibly be relevant since they took place well before the removal of the ZDR policy.
Reacted by Alastair Lundy, Giang Nguyen, R. Currie, bacca87, Juan Caivano, Lev Sylin, Robert, spenserlee, Timu, MiningInMySleep and 1 moreThat change is wrong and the OpenCode team did it silently.
I'm voting with my wallet and I'm cancelling at end of cycle. Neither commit had a changelog entry, nor a privacy policy update.
No kind of announcement at all, and that's not acceptable from a vendor that took my money.
For anyone landing here from the bot: this is the ZDR-removal filing. I expanded on the same problem in #39875. The short version of the findings is below.The two commits:
-
On 2026-07-16, @fwang shipped 5121352 "go: grok 4.5 and kimi k3" and deleted the per-model provider column from
packages/console/app/src/routes/go/index.tsx. The page used to show e.g.GLM-5.2 -> DeepInfra, Fireworks AI, Z.ai. It's a plainstring[]now. The public API/zen/go/v1/modelsstopped returning a provider field at the same time. I rancurl https://opencode.ai/zen/go/v1/models | jq '.data[0]'and got{"id":"minimax-m3","object":"model","created":1785502284,"owned_by":"opencode"}. Nothing tells me which upstream serves the model. -
On 2026-07-31, @fwang shipped 2df47ee "deepseek v4 flash" and softened
go.faq.a5.bodyfrom "Our providers follow a zero-retention policy and do not use your data for model training" to "Your data will not be used for model training". The replacement is strictly weaker. Thego.faq.a5.beforeExceptionsparagraph right below it still says "Providers follow a zero-retention policy". Same FAQ contradicts itself in 17 locales now. -
The 2026-03-29 OpenCode tweet "we've signed Zero Data Retention agreements with all providers for Go" is still up (512K views). Reverting it quietly with no changelog is much worse than reverting loudly.
-
The deployed model catalog lives in 30 separate SST secrets (
ZEN_MODELS1..30). The internalconsole-go.*/inf-go.*provider IDs are referenced only byhandler.tsand defined nowhere in the public repo. ThestoreModelschema field is unread anywhere I can grep. After thedataDumper.tsfile's last touch on 2026-05-21 (commit6de584f), the maintainers' 2026-02-19 statement that "storeModel is only set for free models" is unverifiable from public artifacts. -
The server-side proxy also forwards per-request metadata to Honeycomb and SST Lake (Firehose, Iceberg S3 Tables via Glue, Athena, fronted by an ECS Fargate service at
packages/stats/server). The fields per request: IP, /32 prefix for IPv4, /64 for IPv6, cf.continent / cf.country / cf.city / cf.region / cf.latitude / cf.longitude / cf.timezone, workspace, user_id, API key, model, real upstream provider (via thex-opencode-endpoint-idpass-through athandler.ts:256-265), token counts, cost, latency. Basically all the data about the user. Not in the privacy policy.
Why do you need my lat+long, my /32 IP, my precise request metadata, for Zen pay-as-you-go, Zen subscription, Go subscription, free trial users, and anonymous rate-limited calls, and why is none of it in the privacy policy? Why is there no opt-out?
Three of the relevant Go providers, DeepSeek, Moonshot, MiniMax, were caught by Anthropic in February 2026 running TOS-violating distillation attacks against Claude with 16M+ exchanges, 24,000 fraudulent accounts. The implicit trust assumption behind "custom data retention agreements" with these labs is weak.
The ZDR wording has to be either restored, or we should get a public explanation of why it is gone. The per-model provider column has to be back in the API and the UI. There should also be a published confirmation that no Go or Zen paid provider has prompt-content storage. The Honeycomb and SST Lake destinations have to be named in the privacy policy. A binding retention statement has to be in the privacy policy.
Reacted by Jamie Isaacs, RedTea, Lev Sylin, Vitor, Curtis-Fletcher, white-joh, Robert, Kim Ebert, Timu, tamasys and 3 more-
Just as I suspected, ZDR mentioned only in the marketing copy isn’t trustworthy. It’s not in the terms of service, so it can be changed at will or even misrepresented, without any accountability.
I asked the admins on Discord whether ZDR was part of the GO plan’s service, and they always gave vague answers.
If ZDR weren’t part of the GO plan, I would never have subscribed.
Reacted by Robert, MiningInMySleep and JakeJust as I suspected, ZDR mentioned only in the marketing copy isn’t trustworthy. It’s not in the terms of service, so it can be changed at will or even misrepresented, without any accountability.
The OpenCode Go site seems to have been recently updated to clarify the lack of ZDR applies to the new DeepSeek V4 Flash version 0731 (No retention agreement, data used for training by DeepSeek), GPT 5.6 Luna (30 Day retention, data not used for training), and Grok 4.5 (30 day retention, data not used for training).
It seems likely that the future refresh of DeepSeek V4 Pro will follow the same pattern as Flash V4 0731.
It seems likely that the future refresh of DeepSeek V4 Pro will follow the same pattern as Flash V4 0731.
A spokesperson on X said this was because they had not yet signed a specific hosting agreement for the Flash V4 0731 model, so their privacy policy remained aligned with DeepSeek’s official policy.
But I’m wondering: if the preview version was already covered by a dedicated hosting agreement, why did they suddenly switch to the 0731 version on July 31? Wasn’t there supposed to be a service continuity clause to ensure uninterrupted service? Or did DeepSeek simply force the deployment in overseas data centers to be shut down?Reacted by tamasysIt appears the page has been updated again in #40120 as they're now on a month-to-month ZDR agreement with DeepSeek: "DeepSeek V4 Flash - Not used - 0 days" and "DeepSeek V4 Flash: ZDR agreement is renewed monthly. The current agreement is valid through August 31, 2026."
https://opencode.ai/docs/go/#privacyIt appears the page has been updated again in #40120 as they're now on a month-to-month ZDR agreement with DeepSeek: "DeepSeek V4 Flash - Not used - 0 days" and "DeepSeek V4 Flash: ZDR agreement is renewed monthly. The current agreement is valid through August 31, 2026." https://opencode.ai/docs/go/#privacy
But in the Go plan, you still need to turn on the China server option to use Flash, so:
DeepSeek V4 Flash (Zen) — not China server
DeepSeek V4 Pro (Zen) — not China server
DeepSeek V4 Pro (Go) — not China server
DeepSeek V4 Flash (Go) — China serverThis is really strange, why not route it to the same servers as Zen? Also, Chinese law requires data to be retained for auditing, so it seems unlikely that ZDR service could be allowed on China servers.
Reacted by Robert, Martin Chrástek and 0xa7973908I appreciate the increased level of detail on a per-model level, but I am also a bit suspicious, since prompt caching also requires data retention. I do not believe that all providers are implementing privacy-preserving caching (e.g. build a prefix tree based on partial hashes of the conversation and encrypt the KV cache with a key derived from the conversation or provided by the client), so a note about maximum cache duration should be included.
Reacted by Robert and Jacob TianTo stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.
Feature hasn't been suggested before.
Describe the enhancement you want to request
The mention of "zero-retention policy" from the OpenCode Go docs has been removed.
Old:
New
Question
Could you please clarify what exactly is happening with our data now? Who exactly gets our data and what do they do with it? And does this affect all models, or only some of them? (Which?)