Skip to content

Koda v26.1.5

Latest

Choose a tag to compare

@antojunimaia-ui antojunimaia-ui released this 01 May 15:18

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-800 background 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 boxrounded-2xl rounded-b-none border-b-0 -mb-4 — visually fused with the input field.
  • Fix: handleInputChange is now correctly called in the ModernUI textarea's onChange (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 OnboardingTour component 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 /taskwait Field

  • New optional wait: true field — 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:update events now include the correct workspaceId — 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-bit
    • Koda-Setup-X.X.X-ia32.exe — Windows 32-bit (still in development)
  • Native modules (node-pty) recompiled for each architecture via electron-builder install-app-deps --arch=X.

macOS — Compatibility Without Code Signing

  • Configuration: "type": "development", "hardenedRuntime": false, "gatekeeperAssess": false.
  • afterSign script that runs xattr -cr on the .app before packaging into the DMG.
  • User instruction: run xattr -cr /Applications/Koda.app if Gatekeeper blocks the app.

ICO with Multiple Sizes

  • icon.ico now contains 4 sizes (16x16, 32x32, 48x48, 256x256), fixing the invalid icon file size NSIS error on Windows builds.

Sessions Migrated to localStorage

  • SessionManager (disk) replaced by useSessionStorage (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.webm video centered on a #0a0a0b background.

🚀 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 thoughtSignature fix for Gemini 3 models — the signature is now correctly preserved and returned in multi-step tool calls, eliminating the 400 Bad Request error in function calling.

Thank you for using Koda.