* fix(tui): show progress indicators while subagent is initializing
Show '↳ Starting...' in the parent session's Task entry when the
subagent is running but has not yet made any tool calls, and show
'↳ Initializing...' in the subagent session view when it has no
messages yet. Prevents the UI from appearing frozen during the
LLM thinking phase on startup.
Closes#8422
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(tui): annotate kilocode changes for CI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(webview): show progress indicators while subagent is initializing
Mirror the TUI fix for the VS Code extension webview:
- TaskToolExpanded: show "Starting..." when the task tool is running
but the child session has no tool calls yet (previously the expanded
body was empty/blank).
- MessageList/ChatView: propagate the readonly flag so the subagent
viewer shows "Initializing..." instead of the generic welcome screen
when the session has no messages yet.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: add i18n translations for Initializing and Starting strings
Replace hardcoded 'Initializing...' and 'Starting...' strings in
webview components with language.t() calls. Add
session.messages.initializing and session.messages.taskStarting keys
to all 19 locale files.
Note: The TUI (packages/opencode) has no i18n framework — all strings
are hardcoded throughout the codebase, so the 'Initializing...' string
in the TUI session view remains as-is.
* fix: localize Initializing/Starting strings in all locale files
Replace English placeholder strings with proper translations in all
19 non-English locale files.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(cli): invalidate provider state after auth changes
After the Effect migration in #8870, provider state is cached via
InstanceState/ScopedCache. The hasKey check that determines which
models are available ran once at init and was never re-evaluated.
When auth changed (login, logout, org switch), only ModelCache was
cleared but the provider state retained the stale hasKey decision,
causing authenticated users to be stuck on the free model.
* chore: add changeset
* fix(gateway): scope disposeAll to KiloRoutesDeps, not ImportDeps
Align test fixtures with the agent naming convention change
where the "build" agent identifier was replaced by "code"
across all prompt and session interactions.
- Update `@kilocode/sdk` imports to use `@kilocode/sdk/v2` path
- Replace `@opencode-ai/sdk/v2` import with `@kilocode/sdk/v2`
- Change theme color types from `string` to `RGBA` in renderApiDescription
- Fix `build` return type in KiloToolRegistry to `Effect.Effect<T, never, any>`
Resolve merge conflicts across e2e tests, UI components, and core
packages. Clean up conflict markers in test specs by adopting the
upstream `project` fixture pattern over the legacy `withProject`
approach. Alphabetically sort package.json dependencies, apply
consistent code formatting across i18n files, flag declarations,
and TSX components. Update internal API calls to use current
signatures (Permission.defaultLayer, MessageV2.parts, Git.run).
Key changes:
- Remove Windows-specific test.skip guards and conflict markers
- Replace deprecated `git` util import with `Git.run` in worktree-family
- Drop unused SDK type import from share-next
- Add lib entries to kilo-gateway and kilo-telemetry tsconfigs
- Regenerate models-snapshot.js and SDK types with reordered events
- Fix SDK openapi.json code sample to reference @kilocode/sdk
- Add onCleanup import to popover component
Rename agent identity from "OpenCode" to "Kilo" in the kimi system
prompt and delete the large models-api.json test fixture file that is
no longer needed.
* fix: pass resourceName to Azure provider from env or config
The azure custom loader was returning empty options, causing the
@ai-sdk/azure SDK to fail with 'Azure OpenAI resource name setting is
missing' when AZURE_RESOURCE_NAME is set in the environment.
Read resourceName from provider config options, AZURE_RESOURCE_NAME, or
AZURE_OPENAI_RESOURCE_NAME env vars (in that order of precedence) and
pass it explicitly to the SDK options, consistent with how
azure-cognitive-services handles its resource name.
Fixes#8273
* fix: also support baseURL for azure provider to avoid resourceName requirement
Users with a full endpoint URL (e.g. https://resource.openai.azure.com/openai/v1)
can now set baseURL in provider options or AZURE_OPENAI_ENDPOINT env var.
Per @ai-sdk/azure docs, baseURL takes precedence over resourceName and makes
it optional, fixing the 'resource name setting is missing' error for both
configuration styles.
* fix: add xhigh reasoning effort to Azure provider for GPT-5.4+
Azure variant logic was missing xhigh even though @ai-sdk/openai adds it
for models with release_date >= 2025-12-04. Azure GPT-5.4 now exposes
the same xhigh effort level as OpenAI/Kilo Gateway.
* fix(cli): annotate Azure reasoning changes
---------
Co-authored-by: marius-kilocode <marius@kilocode.ai>
Propagate recommendedIndex, prompt, isFree, and ai_sdk_provider
properties when merging model configurations, and simplify the
changelog generation script.
Move Kilo TUI customizations (session effects, error handling,
command registration, permission helpers, and constants) from the
shared upstream app.tsx into a new kilocode/cli/cmd/tui/app.tsx
module. The upstream file now delegates to thin integration points,
keeping the fork diff minimal and improving separation of concerns.
Replace Session.CloseReason and Session.getPlatformOverride references
with KiloSession equivalents from @/kilocode/session, remove duplicate
waitForDependencies export introduced by merge, and update SDK client
to pass URL string instead of URL object to Request constructor.