* feat: support Kilo-hosted indexing embeddings
* fix: format indexing settings
* fix: serialize local model persistence
* fix: annotate local model persistence
* fix: stabilize MCP OAuth browser test
* fix: annotate MCP OAuth test wait
* fix: keep KiloProvider under line cap
* fix: align Kilo indexing auth defaults
* fix(vscode): add missing indexing translations
* feat(indexing): fetch Kilo embedding model catalog
* fix(indexing): align Kilo embedding metadata fallback
* fix(gateway): remove unused indexing dependency
* fix(indexing): keep fallback catalog webview safe
* fix(agent-manager): include embedding model provider
* fix(vscode): provide embedding models in stories
* refactor(indexing): rely on Cloud embedding catalog
* fix(indexing): hydrate Kilo model metadata from Cloud
* fix(indexing): clear model when switching provider
Resolve conflicts after main's config.ts refactor to @effect/schema and
the messages.ts → messages/ directory split:
- Port AgentConfig nullable fields + default_agent nullable to the new
packages/opencode/src/config/agent.ts and config.ts Effect schemas.
The null delete sentinel for steps is already preserved by main's
normalize() (steps excluded from spread when undefined).
- Move AgentConfig nullable fields and Config.default_agent nullable to
the new messages/agents.ts and messages/config.ts.
- Re-apply the core fix to ModeEditView.tsx hidden/disable toggles:
send explicit false instead of val || undefined so deepMerge
overwrites a previously-saved true. Keep default_agent clear via
null delete sentinel when hiding/disabling the current default.
- Drop configSaved/configSaveFailed messages; main's retry + optimistic
fallback in KiloProvider and configUpdateFailed + saveError signal in
ConfigProvider subsume the PR's save-outcome split.
The permission configuration previously used a generic record type that didn't offer editor completions. Updated the schema to explicitly list all tool permission keys (read, edit, glob, grep, list, bash, task, external_directory, lsp, skill, todowrite, question, webfetch, websearch, codesearch, doom_loop) with proper types, enabling autocomplete when editing permission files.
Emit suggestions as non-blocking so the main CLI input stays focused and submittable while the picker is visible, matching the VS Code extension. Submitting a new message auto-dismisses the pending suggestion.
Add optional `labelKey`/`descriptionKey` to Question.Option and `questionKey`/`headerKey` to Question.Info, annotated with `kilocode_change` markers. Populate these keys from the plan follow-up so the "Ready to implement?" question, "Start new session", and "Continue here" buttons render in the sidebar language while the canonical English labels remain on the reply wire (unchanged server-side matching).
Add experimental workspace adaptor list and status endpoints to the
OpenAPI spec. Add --sanitize flag to CLI export command for redacting
sensitive data. Update SDK types to reorder session status types before
suggestion types. Remove deprecated /global/sync-event endpoint.
Includes formatting fixes across i18n files, opencode source, and
tests, plus a warpgrep import path correction.