Project
Changelog
Track the evolution of Krnl Code. All notable changes are documented here in chronological order.
Cross-encoder reranker, tool output filtering, diff viewer, and session management overhaul.
✦ New features
- Cross-Encoder Reranker — neural reranking of retrieval results using query-document pairs for significantly improved relevance ranking and context quality
- Tool Output Filtering — prevents tool execution output from leaking into assistant messages, keeping responses clean and focused
- Diff Viewer — side-by-side diff comparison with line numbers, markers, and syntax highlighting for reviewing file changes
- Sidebar File Tree — integrated file explorer in the sidebar for quick workspace navigation
- Todo Panel — task tracking panel with checklist management for multi-step workflows
- Worktree Panel — visual worktree management for branch-based development workflows
◈ Improvements
- Session Handling Refactor — consolidated session management with unified session API and simplified cache synchronization
- Reranker Model Preloading — cross-encoder model preloads in background and checks cache status before first use
- Sidebar Recent Sessions — improved recent sessions display with better metadata and relative timestamps
- Schedules Enhancement — expanded scheduler functionality with improved job management and SSH remote execution support
- Server API Expansion — enhanced WebSocket server with additional endpoints for session management and retrieval operations
- Extension Auth Refactor — simplified authentication module using shared library for credential management
◎ Bug fixes
- Fixed retrieval chunker dropping short chunks that contained important context
- Fixed embeddings database not properly handling concurrent access during indexing
- Fixed session cache synchronization leaving stale entries after profile switches
- Fixed extension not properly detecting workspace changes during active sessions
Memory provider plugins, multi-agent coordination, and release pipeline migration to GitHub Releases.
✦ New features
- Memory Provider Plugin System — pluggable memory backends (SQLite, JSON, custom registries) with automatic discovery, runtime switching, and per-profile isolation
- Multi-Agent Task Coordination — coordinate multiple agent profiles working simultaneously on interdependent tasks with structured handoff protocol and status tracking
- MCP Tool Categories — organized tool catalog with search, favorites, recently-used tracking, and per-server environment variable configuration
- Custom Slash Commands — define project-specific slash commands via .krnl/commands/*.md with $ARGUMENT substitution and inline execution
- Kanban Board Enhancement — drag-and-drop columns, task assignment, priority levels, tenant isolation, and triage queue support
◈ Improvements
- Release Pipeline Migration — replaced actions/upload-artifact with direct GitHub Releases uploads to eliminate artifact storage quota limits
- Extension Icon — updated extension marketplace and activity bar icon to new KrnlCode branding
- README Accuracy — fixed desktop download filenames to match actual electron-builder output
◎ Bug fixes
- Fixed TypeScript build errors in desktop app (undo_file, undo_hunk message types missing from KrnlOutgoingMessage)
- Fixed KrnlAPI.onFilesChanged missing from preload type definitions
- Fixed useChatIPC test missing required setStatusMessage property
- Fixed HistoryRow useEffect not returning on all code paths
Prewarm reliability and extension connection fixes.
◈ Improvements
- Proactive Prewarm — workspace loads in the background on startup; chat input shows a loading indicator during prewarm so the first message is never blocked by cold-start latency
- Extension Pre-warming — extension now starts backend and loads workspace before you send your first message
◎ Bug fixes
- Fixed extension not connecting to backend after desktop app restart
- Fixed prewarm request failing silently when backend process was not yet ready
- Fixed chat input remaining blocked during workspace initialization
Minor bug fixes and stability improvements.
◎ Bug fixes
- Fixed scheduler cron parsing failing on short-form intervals ('5m', '1h') — now correctly parses minute/hour/second shorthand
- Fixed Kanban IPC handlers throwing when Python CLI is unavailable — now gracefully falls back to local JSON storage
- Fixed cron job IPC handlers returning raw objects instead of structured { success, error } responses
- Fixed chat UI showing raw internal status messages (graph DB info, thinking step labels) as text — now shows loading spinner instead
- Fixed scheduler executeJobFn hijacking the main chat WebSocket connection — now uses direct HTTP API calls to the backend
- Fixed extension and CLI showing different provider lists than desktop — all surfaces now share the same 22 providers with consistent KrnlCode labeling
Desktop app native installer with progress UI, SSH tunnel manager, profile system, and kanban task board.
✦ New features
- Native Installer UI — in-app backend installer with real-time download progress bar, step tracking, speed display, and automatic version checking
- SSH Tunnel Configuration — configure and manage SSH tunnels to remote backends with auto-reconnect, key management, and health checks
- Profile Management System — named profiles with independent provider configs, memory settings, session lists, and per-profile .krnl state isolation
- Kanban Task Board — visual task kanban with drag-and-drop columns, task assignment, priority levels, and triage queue support
- Soul Records — structured per-profile agent personality configuration (behavior model, response style, verbosity level, and custom instructions)
◈ Improvements
- Memory Provider Architecture — abstracted memory storage with pluggable provider system: legacy (direct read/write), JSON file, and custom registry providers
- MCP Server UI Redesign — enhanced management with connection testing, tool listing, environment variable editor, and status indicators
- Windows Build — NSIS one-click installer and portable .exe both published to GitHub Releases
- Background Graph Build — initial code graph construction on large projects no longer blocks the first agent task
◎ Bug fixes
- Fixed MCP server tools not refreshing after config changes without full restart
- Fixed session continuation not preserving context folder path across app restarts
- Fixed memory provider switching leaving stale cache entries in active session
- Fixed SSH tunnel cleanup not running on app quit leaving orphaned processes
Backend stability, Memory V2 provider interface standardization, skills system, and extension performance improvements.
✦ New features
- Memory Provider Interface — standardized backend API for memory storage with SQLite, JSON file, and custom provider backends selectable at runtime
- Skills System — packaged capabilities in .krnl/skills/<name>/SKILL.md with on-demand loading via use_skill, listing, and discovery
- Schedules Module — recurring agent task execution with cron-like scheduling, persistence across restarts, and execution history
- Gateway Dashboard Integration — real-time session monitoring, message streaming via Gateway protocol, and remote backend status
◈ Improvements
- Extension Performance — deferred dependency loading reduces cold-start time by 40% and idle memory footprint
- Backend CLI Polish — colored output, structured error messages with line numbers, and suggested fixes
- Provider Auto-Detection — all 14+ supported providers auto-detected from environment variables at startup
- Python 3.9 Backward Compatibility — conditional slots wrapper enables __slots__ on 3.10+ while falling back gracefully on 3.9
◎ Bug fixes
- Fixed extension not detecting provider environment variable changes without manual restart
- Fixed backend OAuth token refresh failing after extended idle periods (>1 hour)
- Fixed session history truncation on conversations exceeding 200k context tokens
- Fixed Gateway WebSocket reconnection not retrying on transient network failures
Gateway dashboard protocol, multi-profile architecture, SSH remote tunnels, real-time session monitoring, and soul configuration.
✦ New features
- Gateway Dashboard — full-duplex real-time session monitoring with message streaming via Gateway protocol and remote backend status
- Multi-Profile Architecture — independent agent profiles with per-profile provider configs, session lists, memory stores, and .krnl state directories
- SSH Remote Tunnels — connect to a remote Krnl backend over SSH with automatic port forwarding, key-based auth, and reconnection
- Remote Session Sync — browse, load, and resume sessions from remote backends with full message history and metadata synchronization
- Soul — per-profile agent personality traits, response style adjustments, and behavior presets stored as structured JSON records
◈ Improvements
- Session Continuation Record — sessions seamlessly continue across app restarts preserving context folder, model override, and attachment stage
- Chat Transport Fallback — automatic fallback between Dashboard Gateway and legacy WebSocket transports with health-based switching
- Model Override Persistence — per-session model selections persist across messages and survive app restart
- Landing Page Refinements — recent workspaces list with relative timestamps, session card previews, and activity sparkline bars
◎ Bug fixes
- Fixed remote session list not populating when backend gateway was unreachable
- Fixed session continuation items not being recorded for assistant-only turns without tool calls
- Fixed profile switching leaving stale session caches from previous profile
- Fixed SSH tunnel hanging on remote disconnect without proper local cleanup
Session context folder persistence, model overrides, MCP catalog UI, and workspace pre-warming improvements in the desktop app.
✦ New features
- Session Context Folder Persistence — each session remembers its associated workspace folder; resume automatically loads the correct context path
- Session Model Override — pick a different model mid-session via the model picker; override persists per-session across restarts
- Session Continuation Recording — detailed continuation records (tool calls, results, user messages) for debugging and audit of multi-session tasks
- Recent Workspace Tracking — desktop app remembers recently opened workspaces in order with relative timestamps for quick access
◈ Improvements
- MCP Server Catalog UI — browse pre-defined MCP servers from the catalog with search filtering and one-click installation
- Workspace Pre-Warming — code graph and embedding models preload in the background when workspace context changes, reducing first-task latency by ~60%
- Theme Sync Polish — extension toolbar colors, thinking card styling, and command highlight colors match desktop KRNL Void theme
- Send Button Spinner — visual feedback during pre-warming with rotating indicator and 'Krnl is onboarding...' tooltip
◎ Bug fixes
- Fixed session context folder being lost when switching workspaces mid-conversation
- Fixed MCP catalog entries not displaying description and tool metadata
- Fixed model override not applying to the first user message in a resumed session
- Fixed workspace pre-warming failing silently when backend process was occupied
- Fixed extension toolbar not reflecting active Razor mode state after theme change
Complete visual redesign with KRNL Void theme — landing page, sidebar workspace shell, session cards, and cohesive color system across desktop and extension.
✦ New features
- KRNL Void Theme — new default dark theme with void #121316, panel #17181C, teal accent #7DD3C0, and warm gold #D9B26F, applied consistently across all surfaces
- Landing Page Redesign — sidebar + workspace shell layout with directory tree, activity sparkline bars, and expandable session cards grid
- Session Cards Grid — auto-fill grid of session cards with title, preview, message count, and relative timestamps, hoverable with accent border
- Landing Page Default — landing page now shows on every startup regardless of saved workspace; user explicitly selects a directory to enter chat
- Workspace Auto-Loading — selected workspace from landing page automatically populates the context folder chip in the chat view
- Extension Theme Sync — extension CSS variables updated to match desktop theme (krnl-primary, thinking, command, and tool colors)
◈ Improvements
- Theme Cohesion — landing page CSS migrated from custom tokens to main theme variables, ensuring consistent look across all themes
- Nord Aurora Palette — status colors updated to Nord-inspired values: success green #A3BE8C, error red #BF616A, warning yellow #EBCB8B
- Font Stack — landing page uses IBM Plex Sans for headings and IBM Plex Mono for paths/timestamps
- Responsive Layout — landing page collapses to single-column on screens under 720px
⚠ Migration notes
- Default theme changed to KRNL Void — existing dark theme users will see the new colors automatically
- Landing page now shown on every startup — select a directory to reach the chat view
Pre-warming, approval flow fixes, landing page foundation, and release pipeline hardening.
✦ New features
- Backend Pre-Warming — desktop and extension now send a prewarm message on context folder change, loading the code graph and embedding model before the first task
- Landing Page Foundation — initial landing page with recent directories list, session expand/collapse, and Open Folder button
- Approval Flow Fix — added respondApproval IPC channel through preload → main → krnlClient.approve(), replacing the non-functional stub
- Approval Scope — web_search and web_fetch tools added to read-only auto-approve list, eliminating unnecessary approval prompts
◈ Improvements
- Send Button Spinner — chat send button shows a spinning indicator with 'Krnl is onboarding…' tooltip during pre-warming
- Loading GIF — reduced from 150×150 to 32×32 with transparent background for cleaner UI
- Release Workflow — removed github-release job that uploaded binaries to main repo (causing storage limits); releases now go only to the dedicated releases repository
- Repo Migration — all backend repository references migrated from Saurabh7Goku to saurabhgk7tech
- Extension Pre-Warm — prewarmWorkspace() method called after ensureConnected() in runTask() for faster cold starts
◎ Bug fixes
- Fixed respondClarify being a stub that did nothing — replaced with proper IPC bridge to backend approve()
- Fixed old approval bar never resolving — disabled in MessageRow in favor of ClarifyCard (approval_request events)
- Fixed build error in LandingPage — replaced require() with ES import for loading.gif
Future roadmap
- →Multi-language code graph — extend AST analysis beyond Python to TypeScript, Go, and Rust
- →Advanced analytics — per-task cost forecasting, model recommendations, and usage trends
- →Team collaboration — shared workspaces, session handoff, and team-level agent memory
- →Mobile support — iOS and Android companion apps for reviewing and approving agent tasks
- →Enhanced MCP — expanded Model Context Protocol with server discovery and sandboxed execution
- →Custom model training — fine-tuning capabilities for domain-specific coding tasks
