The gateway wraps @openrouter/ai-sdk-provider internally, so the same
openrouter SDK-side reasoning handling applies. Without this, users
routing through api.kilo.ai still see DeepSeek 400 'reasoning_content
must be passed back' errors.
The command writes to .opencode/opencode.jsonc and .opencode/tui.jsonc
(or ~/.config/kilo/* for --global), not kilo.json. See #9503 for the
underlying bug — when fixed, this doc must be updated in the same PR.
Remove explanatory block comments and intermediate variable assignment
(`__oc_cwd`) that were left over from the previous iteration. Use
`cd -- "$1"` directly instead of the two-step capture-then-cd pattern,
and rename the argv[0] placeholder from `_opencode` to `opencode`.
Replace the `pwd -P` approach with an explicit positional argument (`$1`)
for zsh and bash login shell invocations. Login shells source profile
scripts (`/etc/profile`, `~/.profile`, `~/.bashrc`) before the `-c`
script executes, and those scripts may change the working directory
(e.g. nvm, direnv), making both `$PWD` and `pwd -P` unreliable at
script evaluation time. By passing `ctx.directory` as `$1` and falling
back to `$PWD` when unset, the shell script always receives the correct
session directory regardless of profile side effects.
Simplify the corresponding integration test by removing verbose CI
debug probes and replacing them with a straightforward `pwd` assertion.
Replace `$PWD` with `$(pwd -P)` when capturing the working directory
in zsh and bash login shell invocations. When the child shell inherits
a stale PWD environment variable — common in CI where the spawner's
cwd differs from the session directory — `$PWD` can point to the wrong
location, causing `cd "$__oc_cwd"` to silently escape the intended
directory. `pwd -P` queries the kernel via getcwd(), ensuring the
correct physical path is always used.
The corresponding test is updated with richer cwd diagnostics to
validate the fix and surface root-cause information on failure.
Skip "glob tool keeps instance context during prompt runs" and
"prompt submitted during an active run" tests tracked in #9958.
Replace "build" agent assertion with "code" to align with Kilo
agent naming conventions.
Remove mistral from the provider reasoning variant detection list
and update bare repo test assertions to use "kilo" cache directory
naming instead of "opencode".
Re-run code generation to emit the SnapshotSummaryFileDiff named type
and replace inline anonymous diff objects across Session,
SyncEventSessionUpdated, and GlobalSession. Alphabetically sort
dependency entries in the opencode package.json and add previously
appended Kilo-specific packages into their correct positions.
Add a lightweight SummaryFileDiff derived from FileDiff via
Struct.omit(["patch"]) to keep session summary DB payloads small.
Replace inline anonymous object types in session.sql.ts, revert.ts,
and session.ts with the new schema. Cast SessionPrompt input in
remote-sender to satisfy narrowed PromptInput type, guard against
null in permission normalizeInput, and switch remaining bare .parse
calls to .zod.parse for Effect Schema compatibility.
Include unit tests verifying SummaryFileDiff field exclusion and
round-trip parsing behavior.
Per @lambertjosh's review, duplicate the delegation-override block for the
current VSCode extension and slot it between CLI and VSCode (Legacy).
The new tab mirrors his suggested text: inherits parent model from the
chat selector, override via Settings -> Providers -> Model per Mode or
by editing kilo.jsonc. Notes that the Settings UI and the JSON file
write the same `agent.<name>.model` entry so either path works.
Document how to spawn the local main-branch backend with bun dev serve
and drive it via curl for HTTP-level testing. Contrasts against the
installed kilo binary and the SDK's createKiloServer helper, both of
which spawn the prod CLI. AGENTS.md gets a one-line pointer.
The InstallationBuildKind gate already strips dev-setup/dev-alias from
release builds, but the regenerated docs and the changeset still
advertised the launcher as a shipped feature. Filter the dev commands
in generate-cli-docs.ts so the user-facing table and reference match
the release binary, drop the stale changeset, and add a `bun run
dev-setup` shortcut for contributors running from source.