Repository navigation
v0.60.0: Names That Make Sense
Changed
-
Breaking: renamed options. Seventeen option names were confusing, so they now say what they do. There are no aliases: an old name is refused at load as an unknown option, with the usual error that lists the known ones. Rename these in your config:
Old New models: "connected"(global, andapps.<name>.models: "connected")models: "all"apps.<name>.modelsapps.<name>.allowedModelsapps.<name>.modelapps.<name>.pinnedModelcacheresponseCacheapps.<name>.serverToolsapps.<name>.opencodeToolsapps.<name>.maxServerToolStepsapps.<name>.maxToolStepsapps.<name>.maxServerToolCallsapps.<name>.maxToolCallsapps.<name>.hostedToolsapps.<name>.onHostedTools(valuesdropandrefuse)history(global and per app)sessionshistory.hiddensessions.hideFromListhistoryUrl(global and per app)sessionUrlmaxN(global and per app)maxChoicesfallbackAfterMsfirstEventTimeoutMsfallbackCooldowncircuitBreakerfallbackCooldown.failureThresholdcircuitBreaker.failuresfallbackCooldown.windowMscircuitBreaker.failureWindowMsfallbackCooldown.cooldownMskeeps its name insidecircuitBreaker, and the globalmodelslist keeps its name. TheGET /plugboard/statusfieldfallbackCooldownis nowcircuitBreaker, and the warning log linehistory.hidden_parent_unavailableis nowsessions.hide_from_list_parent_unavailable.plugboard initwrites"models": "all".
The full story
1 commit since v0.59.0, grouped by type and oldest first. Each entry is the commit message as written.
Other (1)
refactor(config)!: rename the most confusing options (a946eca)
Seventeen option names said little about what they do (history is the pruning limits of request sessions, serverTools are tools OpenCode runs, cache is the response cache, models: "connected" allows every model). The owner picked new names and chose no aliases and no deprecation code, since nobody else uses the options yet. An old name now fails at load as an unknown option, with the existing error that lists the known ones.
Renamed: models: "connected" -> "all" (global and apps.<name>.allowedModels), apps.<name>.models -> allowedModels, apps.<name>.model -> pinnedModel, cache -> responseCache, serverTools -> opencodeTools, maxServerToolSteps -> maxToolSteps, maxServerToolCalls -> maxToolCalls, hostedTools -> onHostedTools, history -> sessions (hidden -> hideFromList), historyUrl -> sessionUrl, maxN -> maxChoices, fallbackAfterMs -> firstEventTimeoutMs, fallbackCooldown -> circuitBreaker (failureThreshold -> failures, windowMs -> failureWindowMs). The global models list keeps its name.
Internal identifiers follow (AppPolicy and PlugboardOptions fields, maxChoicesFor, ALL_MODELS, CircuitBreaker). The GET /plugboard/status field fallbackCooldown is now circuitBreaker, and the warn log line history.hidden_parent_unavailable is now sessions.hide_from_list_parent_unavailable. Left alone on purpose: the breaker log events fallback.cooldown.*, the x-plugboard-* headers, the error codes and the runtime history port, which are not options.
Updated every usage: src, tests, the mutation catalogue anchors, the docs site, README, STRUCTURE, SECURITY and the docs full-config helper, which now adds "models": "all". The CHANGELOG has a breaking "Renamed options" table under Unreleased.
Validation: typecheck, lint, format, bun test and bun run docs:build pass; see the PR for the full validate run and the live check.
Full diff: v0.59.0...v0.60.0