Skip to content

v0.60.0: Names That Make Sense

Choose a tag to compare

@github-actions github-actions released this 20 Oct 06:31
· 235 commits to main since this release
b797b64

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, and apps.<name>.models: "connected") models: "all"
    apps.<name>.models apps.<name>.allowedModels
    apps.<name>.model apps.<name>.pinnedModel
    cache responseCache
    apps.<name>.serverTools apps.<name>.opencodeTools
    apps.<name>.maxServerToolSteps apps.<name>.maxToolSteps
    apps.<name>.maxServerToolCalls apps.<name>.maxToolCalls
    apps.<name>.hostedTools apps.<name>.onHostedTools (values drop and refuse)
    history (global and per app) sessions
    history.hidden sessions.hideFromList
    historyUrl (global and per app) sessionUrl
    maxN (global and per app) maxChoices
    fallbackAfterMs firstEventTimeoutMs
    fallbackCooldown circuitBreaker
    fallbackCooldown.failureThreshold circuitBreaker.failures
    fallbackCooldown.windowMs circuitBreaker.failureWindowMs

    fallbackCooldown.cooldownMs keeps its name inside circuitBreaker, and the global models list keeps its name. The GET /plugboard/status field fallbackCooldown is now circuitBreaker, and the warning log line history.hidden_parent_unavailable is now sessions.hide_from_list_parent_unavailable. plugboard init writes "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