Skip to content

[FEATURE]: Removal of zero-data-retention policy #39861

Description

@99991

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request 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:

Image

New

Image

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?)

Activity

  1. github-actions commented on Jul 31, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    Both issues cover very similar ground regarding data retention/privacy policy clarity for Go.

  2. 99991 commented on Jul 31, 2026

    @99991
    Author

    The issues mentioned by the bot can not possibly be relevant since they took place well before the removal of the ZDR policy.

  3. Levosilimo commented on Jul 31, 2026

    @Levosilimo

    That 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:

    1. 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 plain string[] now. The public API /zen/go/v1/models stopped returning a provider field at the same time. I ran curl 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.

    2. On 2026-07-31, @fwang shipped 2df47ee "deepseek v4 flash" and softened go.faq.a5.body from "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. The go.faq.a5.beforeExceptions paragraph right below it still says "Providers follow a zero-retention policy". Same FAQ contradicts itself in 17 locales now.

    3. 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.

    4. The deployed model catalog lives in 30 separate SST secrets (ZEN_MODELS1..30). The internal console-go.* / inf-go.* provider IDs are referenced only by handler.ts and defined nowhere in the public repo. The storeModel schema field is unread anywhere I can grep. After the dataDumper.ts file's last touch on 2026-05-21 (commit 6de584f), the maintainers' 2026-02-19 statement that "storeModel is only set for free models" is unverifiable from public artifacts.

    5. 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 the x-opencode-endpoint-id pass-through at handler.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.

  4. white-joh commented on Aug 1, 2026

    @white-joh

    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.

  5. alastairlundy commented on Aug 1, 2026

    @alastairlundy

    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.

    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.

  6. white-joh commented on Aug 1, 2026

    @white-joh

    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?

  7. tamasys commented on Aug 2, 2026

    @tamasys

    It 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

  8. white-joh commented on Aug 3, 2026

    @white-joh

    It 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 server

    This 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.

  9. 99991 commented on Aug 3, 2026

    @99991
    Author

    https://opencode.ai/docs/go/#privacy

    I 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.

  10. github-actions commented on Oct 3, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

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