Skip to content

fix(opencode): ignore unknown config fields - #41312

Merged
kitlangton merged 1 commit into
devfrom
forgiving-config
Aug 8, 2026
Merged

fix(opencode): ignore unknown config fields#41312
kitlangton merged 1 commit into
devfrom
forgiving-config

Conversation

@opencode-agent

@opencode-agent opencode-agent Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • let V1 ignore config fields it does not recognize instead of refusing to start
  • preserve schema validation for recognized fields and values
  • cover the V2 plugins field in the V1 parser regression test

This allows V1 and V2 to share an opencode.json while their config schemas differ. Unknown values are discarded rather than passed into V1.

Testing

  • bun test test/config/config.test.ts (96 passed)
  • bun x prettier --check src/config/parse.ts test/config/config.test.ts
  • bun typecheck attempted but did not complete within the 5-minute local timeout

Requested by: @kitlangton (Kit via Slack)

@kitlangton
kitlangton merged commit 38e10eb into dev Aug 8, 2026
11 checks passed
@kitlangton
kitlangton deleted the forgiving-config branch August 8, 2026 18:53
HQ123-BOOP pushed a commit to HQ123-BOOP/LibreCode that referenced this pull request Aug 9, 2026
charlesverge pushed a commit to charlesverge/opencode that referenced this pull request Aug 11, 2026
Qiiks added a commit to Qiiks/opencode that referenced this pull request Aug 15, 2026
…hydration-fix

Sync 86 upstream commits (Aug 6-14) including:
- ID-wrap/chronological message ordering fixes (anomalyco#40987-anomalyco#41006) — upstream
  independently fixed the same bug class as our 07889a1/21964da41;
  adopted upstream versions (parentID === user.id for prompt exit, same
  findIndex boundaries for revert/session, isAfter helper in latest())
- v1.18.18 release (4 releases: v1.18.15-18)
- v1 database compatibility preservation (anomalyco#42444)
- ignore unknown config fields (anomalyco#41312)
- session retry cap with jitter (anomalyco#41939)
- compaction instructions for smaller models (anomalyco#42045)
- DeepSeek V4 Flash sampling defaults (anomalyco#41620)
- Copilot PDF input support detection (anomalyco#41522)
- web search for opencode-go (anomalyco#42630)
- compaction plugin hooks (experimental.session.compacting, messages.transform)
- New models: GLM 5.3, Gemini 3.7 Flash, Grok 4.6, Zen updates

Fork-only changes preserved:
- Synthetic web search backend (synthetic flag in webSearchEnabled)
- Config npm propagation to inherited models
- Tool-result media extraction for models without attachment capability
- packageManager pin to bun 1.4.-canary.1 (Rust runtime)

Conflicts resolved: message-v2, prompt, revert, session, server-session
(adopted upstream), compaction (adopted upstream), registry + websearch
test (merged both synthetic + opencode-go).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant