Release v26.1.5
This release makes Modern UI the default experience, brings per-project chat history stored entirely in the browser, gives you fine-grained control over what the agent can see with .kodaignore, and turns the Remote Control API into a first-class integration layer — complete with real-time SSE streaming, a wait mode for synchronous responses, and a new /cd endpoint for remote directory switching.
🎨 Modern UI — Default Interface
ModernUI is now the default interface when installing Koda for the first time. ClassicUI remains available via Settings.
Right-Aligned User Messages
- User messages displayed as chat bubbles on the right side, messenger-style.
neutral-800background with subtle borders, consistent with the ModernUI dark theme.- Actions (rollback) appear below the message on hover, with a smooth transition.
- Classic mode keeps the original layout with the
❯prefix.
Active Model in the Input
- The field that previously showed the provider name now displays the active model.
- For Koda Cloud: displays
model / Koda Cloud.
Slash Menu and @ Mentions Fused with the Input
- The
/menu and@file suggestions now appear above the input box —rounded-2xl rounded-b-none border-b-0 -mb-4— visually fused with the input field. - Fix:
handleInputChangeis now correctly called in the ModernUI textarea'sonChange(previously the slash menu was never triggered in Modern mode). - Slash menu regex updated to detect
/at the start without requiring it to be the only content.
📜 Chat History — Per-Project History
New conversation history panel per project, accessible by hovering over the Iconbar.
- localStorage storage — no IPC, no disk files, no race conditions.
- Debounced auto-save — saves 1 second after any change, always to the same session file (no duplicates).
- SessionId via ref — the session ID is generated once via
useRef, preventing re-renders that caused multiple files per conversation. - New session — "New session" button clears the chat and generates a new ID.
- Delete session — three-dot menu on each history item with a red "Delete" option.
- 50-session limit per project (oldest sessions are automatically discarded).
🧭 Onboarding Tour
Interactive first-launch tour for new users.
- 5 steps pointing to: CWD selector, input, mode selector, workspace split button, and Iconbar.
- Settings tour — opens automatically the first time the user accesses settings, explaining each tab (API & Models, Themes, Koda Settings, Remote Control, Skills).
- Both tours live in the same
OnboardingTourcomponent with a'settings'mode. - Arrow automatically flips when the target element is near the top of the screen.
- Automatic repositioning on window resize.
- Saved in localStorage — appears only once.
🔒 .kodaignore — File Access Control
New .kodaignore configuration file at the project root (same syntax as .gitignore) that restricts the agent's access to sensitive files and folders.
| Tool | Behavior when blocked |
|---|---|
file_read |
🚫 Access denied: "path" exists but is restricted by .kodaignore |
file_edit / file_write |
Same message, no modification |
list_dir |
Blocked entries silently omitted from the listing |
file_find |
Blocked files filtered out of results |
search |
Results from blocked files removed |
Supports glob patterns: *.env, secrets/, **/*.key, etc.
🌐 Remote Control API — Advanced
The HTTP remote control server has been significantly expanded.
New Endpoints
| Method | Path | Description |
|---|---|---|
GET |
/stream?messageId=X |
SSE — receive agent response in real time |
GET |
/result?messageId=X |
Polling — result of a completed task (expires in 10min) |
POST |
/cd |
{ path } — change the working directory |
POST /task — wait Field
- New optional
wait: truefield — holds the HTTP response until the agent finishes and returns the full result in the body. - Ideal for bots that need the response before replying to the user.
Real-Time SSE
- Events:
text,tool_start,tool_end,done,error. - If the task has already finished when the client connects, the result is sent immediately.
workspaceId Fix
- All
agent:updateevents now include the correctworkspaceId— remote task responses appear in the active workspace UI.
Code Examples
- New examples tab in the Remote Control UI with 3 tabs: cURL, Discord Bot, and SSE Stream — dynamically generated with the configured token and port.
🔧 Infrastructure
Windows 32-bit Support (ia32)
- GitHub Actions now generates two completely separate installers in independent jobs:
Koda-Setup-X.X.X-x64.exe— Windows 64-bitKoda-Setup-X.X.X-ia32.exe— Windows 32-bit (still in development)
- Native modules (
node-pty) recompiled for each architecture viaelectron-builder install-app-deps --arch=X.
macOS — Compatibility Without Code Signing
- Configuration:
"type": "development","hardenedRuntime": false,"gatekeeperAssess": false. afterSignscript that runsxattr -cron the.appbefore packaging into the DMG.- User instruction: run
xattr -cr /Applications/Koda.appif Gatekeeper blocks the app.
ICO with Multiple Sizes
icon.iconow contains 4 sizes (16x16, 32x32, 48x48, 256x256), fixing theinvalid icon file sizeNSIS error on Windows builds.
Sessions Migrated to localStorage
SessionManager(disk) replaced byuseSessionStorage(localStorage).- Eliminates the entire IPC session layer — synchronous operations, no latency, no race conditions.
New Icon
- Koda icon updated: white background with rounded corners and two black eyes, generated as PNG 512x512 + multi-size ICO.
Loading Screen
- Initialization splash screen replaced by a
Loading.webmvideo centered on a#0a0a0bbackground.
🚀 Intelligence
Koda Cloud — Mistral AI + Gemini 3 Fix
- Koda Cloud updated with Mistral AI support:
mistral-large-2411,codestral-2501,devstral-small/medium,magistral-small/medium,pixtral-large-2411,ministral-8b/3b, and more. - Critical
thoughtSignaturefix for Gemini 3 models — the signature is now correctly preserved and returned in multi-step tool calls, eliminating the400 Bad Requesterror in function calling.
Thank you for using Koda.