Skip to content

harden: explicitly disable opencode share, autoupdate, and OpenTelemetry#2

Open
figitaki wants to merge 1 commit into
mainfrom
harden/opencode-privacy-defaults
Open

harden: explicitly disable opencode share, autoupdate, and OpenTelemetry#2
figitaki wants to merge 1 commit into
mainfrom
harden/opencode-privacy-defaults

Conversation

@figitaki
Copy link
Copy Markdown
Collaborator

@figitaki figitaki commented May 7, 2026

Summary

Defense-in-depth for the sandbox opencode.json. None of these flags change current behavior — they pin already-safe defaults so an upstream default flip can't silently send data off-box.

  • share: \"disabled\" — prevents /share from uploading conversations to opencode.ai (upstream default is \"manual\", i.e. user-initiated only).
  • autoupdate: false — image versions are pinned via the Modal sandbox image, so the upstream version-check ping is unnecessary.
  • experimental.openTelemetry: false — explicit opt-out (default is off, but the experimental section is documented as unstable).

Code and prompts continue to flow directly from opencode to the configured LLM provider (Anthropic / OpenAI / Google) via API keys — no data routes through opencode.ai servers either before or after this change.

Context

Triggered by a question about whether opencode could read our data without us being on their enterprise plan. Short answer: no, given our config. This PR makes that posture explicit in the file rather than implicit in the defaults.

References:

Test plan

  • CI typecheck passes
  • After deploy, spin up a fresh sandbox and confirm opencode starts cleanly with the new config (no schema warnings in start.sh logs)
  • Confirm /share is rejected / disabled when invoked from inside a session

Defense-in-depth for the sandbox opencode config. None of these are
enabled by default in our setup, but making them explicit prevents an
upstream default flip from silently sending data off-box:

- share: disabled — prevents /share from uploading conversations to
  opencode.ai (default is 'manual', i.e. user-initiated only)
- autoupdate: false — image versions are pinned via Modal, so the
  upstream version-check ping is unnecessary
- experimental.openTelemetry: false — explicit opt-out (default off)

Code and prompts continue to flow directly from opencode to the
configured LLM provider (Anthropic/OpenAI/Google) via API keys; no
data routes through opencode.ai servers.
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