- Rename PermissionNext → Permission across all remaining src/test files
(drain.ts, routes.ts, remote-sender.ts, task.ts, and 5 test files)
- Fix Effect Layer type resolution for makeRunPromise by accepting
Layer<I, E, any> (Effect 4.x beta type inference limitation)
- Add missing imports: Bus/BusEvent in server.ts, useToast in sync.tsx
- Fix OPENCODE_ → KILO_ flag renames missed by merge transforms
(DISABLE_EXTERNAL_SKILLS in skill/index.ts)
- Fix isCodex → isOpenaiOauth rename in session/llm.ts
- Fix PasteEvent.bytes decoding (decodePasteBytes removed from @opentui/core)
- Fix ProviderID branded type indexing with ProviderID.kilo
- Remove redundant windowsHide from pr.ts (handled by Process.spawn)
- Update Skill import paths after skill.ts → index.ts rename
- Restore Skill.remove and Skill.BUILTIN_LOCATION lost during merge
* fix(vscode): handle network offline events to prevent session hangs
When the CLI backend detects a network failure it pauses the session and
waits for a network.reply() call that never came from the VS Code
extension. This caused sessions to hang indefinitely showing
"Considering next steps..." with no way to recover.
Auto-reply to session.network.restored events (matching kilo run
behavior), show "Network disconnected — reconnecting..." status in the
webview, and drain pending network waits on SSE reconnect.
* fix(vscode): scope network wait cleanup to tracked sessions
Clear only network waits belonging to the disposing provider's sessions
instead of clearing all waits globally. This prevents one provider's
disposal from inadvertently cancelling network waits for other active
sessions.
* refactor(network): introduce reference counting for pending network waits
Replace plain session ID tracking with a refcount-based entry so that
multiple providers can independently register interest in the same
network wait. On disposal, each provider decrements the counter and the
wait entry is only removed once no providers reference it.
---------
Co-authored-by: Imanol Maiztegui <imanol.mzd@gmail.com>
- Regenerate openapi.json, types.gen.ts, and sdk.gen.ts to include
branded type patterns (^ses.*, ^msg.*, ^pty.*, ^prt.*, ^wrk.*)
added upstream in v1.2.25, while preserving Kilo Remote/Network routes
- Keep "auth" as primary CLI command name (upstream renamed to "providers"),
added kilocode_change markers with "providers" as alias
- Regenerate CLI docs reflecting new upstream commands (config, completion)
and session list flags (--all, --search)
- Fix RemoteStatusService typecheck: SDK Remote methods now take
optional (directory, workspace) params from global query middleware
Models fetched via the OpenAI-compatible /v1/models endpoint had image
support hardcoded to false because the endpoint provides no capability
metadata. This matches the legacy extension behavior (supportsImages:
true) for custom providers while leaving all other provider defaults
untouched.
The @ mention dropdown showed directories instead of files on empty query, limited
results to 10, and only reordered (not injected) open tabs. Now requests files-only
with a higher limit, injects open editor tabs at the top (active file first), and
filters by query. Closes#8709
* docs(kilo-docs): document asking the agent to configure kilo.json
* Apply suggestion from @lambertjosh
* docs: restore original intro line on settings page
slimPatch and slimMultiedit used `...meta` spreads that leaked heavy
fields (metadata.diff up to 158KB, files[].before/after ~128KB each)
through to the VS Code webview on every session switch. Replace with
explicit allowlist construction matching the pattern slimEdit/slimWrite
already used.
Add size-based guardrail tests that inject unknown heavy fields into
each tool's metadata and assert the slimmed output stays under 10KB.
This catches future upstream changes regardless of field names.
Add a runtime warning in slimPart (non-production) when slimmed state
exceeds 50KB so regressions surface during development.
The New Worktree dialog prompt input now mirrors the sidebar chat
exactly: mode selector, model selector, thinking effort (reasoning),
and a reset button — in the same order with the same defaults.
- Extract ThinkingSelectorBase from ThinkingSelector for reuse outside
session context (same pattern as ModelSelectorBase/ModeSwitcherBase)
- Initialize model/variant/agent from session defaults instead of null
- Show reset button only when model differs from config default
- Hide model/thinking/reset pills in compare mode (each session uses
its model's default variant)
- Extract message-files and continue-worktree helpers from
KiloProvider to fix pre-existing lint cap violations
- Extract onRequestState from AgentManagerProvider.onMessage to fix
pre-existing complexity violation
- Remove orphaned open-sessions.ts (dead code flagged by knip)