Repository navigation
v2026.08.29 (v1.18.25)
What's New
A fork-side fix this time, found by the multi-model review that runs over every
rebase integration.
- A broken legacy
compaction.tail_tokensvalue no longer takes the whole
config file down. The fork carries a shim that maps that deprecated key onto
preserve_recent_tokens, which upstream renamed it to.preserve_recent_tokens
is validated as a non-negative integer, so the shim was promoting a key the
schema ignores today into one it checks — and a config holdingtail_tokens: -1
(or1.5, or"20000") was rejected outright. For the global config that meant
falling back to defaults with one line in the log. Without the shim the same
value is simply an unknown key and is ignored, so the migration was leaving
legacy users worse off than not migrating at all. The value is now migrated only
when it is a non-negative integer, and otherwise dropped with a warning naming
the file and the value.
Fixes
-
Upstream rebase to v1.18.25 (18 commits on top of the 17 already carried
since v1.18.23). What reaches the CLI:- v2-shaped config files load under v1. Upstream added a compatibility
layer that projects supported v2 keys down to v1 and reports unsupported
ones as diagnostics instead of failing. Config load and both global-update
paths now run through one shared decode step. - Global config updates preserve the file's original shape. A settings
write no longer rewrites a v2-shaped file into v1 form. A side effect worth
knowing: a deprecated key stays on disk and is migrated again on every load
rather than being rewritten once. - Azure CLI authentication is supported, and Azure auth no longer depends
on Bun being present. - Bedrock reasoning that cannot be replayed is filtered before caching.
The rest are console, stats and docs changes that do not affect the CLI.
- v2-shaped config files load under v1. Upstream added a compatibility
-
All 172 local patches replayed. One conflict, in the config layer, where
upstream's new decode step and the fork's legacy-key migration touched the same
three call sites; upstream's structure was adopted and the fork's file-path
argument threaded through it. The fork's diff against its base came out
byte-identical before and after the rebase for 520 of the 523 files it touches,
including the session and tool hot paths, so nothing was silently dropped. -
The load-path migration and the deprecation warning's file path are now pinned
by tests. That argument is the point this fork has to re-resolve on every
upstream rebase, and a wrong resolution passed both the type check and the
suite before.
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.25.