Releases
v1.5.2
Compare
Sorry, something went wrong.
No results found
Bowow — BETA Stable Version
Bug Fixes
Fixed the settings window
Fixed persistent auto-scroll to bottom
Fixed an API error
Fixed the HTML browser
Fixed Markdown rendering
Fixed the OpenRouter API
Fixed MCP Tools
Fixed the chat appearing centered on screen
Fixed the Scroll indicators
Fixed the electron-updater
New Additions
Added an agent
Added localEffort
All additions made so far (since the beginning)
Critical Fixes
handleRevert data loss — read the original file from disk when no timeline entry exists
Permission checks — assert() before create_file (overwrite) and edit_file
System prompt — added "ask before modifying" to buildSystemPrompt
Permission modal styling — removed the 🔐 icon, single line, centered #888 buttons, no overlay/border, shimmer effect similar to "Thinking"
Permission scope — every BuildAgent now filters events by detail.sessionID !== String(buildId)
Multi-build persistence — scheduleBuildSave saves all builds under build-agent-conv-all; loadAllSavedConversations() restores all of them
Per-pane model picker — localModel state (instead of the global setApiModel)
Diff preview — increased slice limits from 2000/4000 to 100,000 characters; ColoredDiff maxLines raised from 16 to 50
Azure streaming — changed streamAzure() from res.json() (single blob) to an SSE line-by-line reader
Electron-only fallbacks — LSP.start() and MCP.connectStdio() now use console.warn + return instead of throwing
Google maxTokens — increased default from 4096 to 8192
Loop detection threshold — repeatSigCount raised from 3 to 5
selectElements stub — added selectedElements: string[] and made () => {} a real function
useCommandPermission stub — requestPermission now actually waits for the user (real Promise)
Tool System Unification
Registry tools renamed — read → read_file, edit → edit_file, write → create_file, bash → run_command, glob → glob_search, grep → grep_search
Dynamic getToolDefs() — replaced the 480-line static TOOL_DEFS with generation from toolRegistry.toToolDefs() + a fallback map
registerBuiltins() — moved to module level
Removed broken AbsFile import — the file didn't actually exist
Bridge at the top of execTool — passes buildId + apiSettings in context; removed duplicated inline handlers (task, glob_search, grep_search, create_file, read_file, run_command, edit_file)
Removed dead code — validatePath, ALLOWED_NO_EXT, processInline, withFileMutationQueue, applyEditsToNormalizedContent, stripBom, detectLineEnding, normalizeToLF, restoreLineEndings
UI & Markdown
Full Markdown support — replaced the custom processInline with react-markdown (headers, lists, code blocks, bold, italic)
Collapse arrows — all elements collapsed by default; user messages expanded by default (the one exception)
Arrow hidden for run_command only — read_file now has arrows (needed for HTML iframes)
HTML iframe display — fullContent now includes read_file in addition to create_file and edit_file
Auto-scroll fix — setUserScrolledUp(false) when a user message is added; setTimeout(0) in handleClear
(+n)/(-n) stat indicators — enlarged from var(--font-xxs) to var(--font-sm)
Unified background — all backgrounds now #121212
Custom fonts — AR.otf and EN.otf added under public/font/, loaded via @font-face in index.css
Inline code colors — background: '#121212', color: '#00adb5'
Removed whiteSpace: 'pre-wrap' from the wrapper to fix vertically-broken text
Testing
Vitest setup — vitest.config.ts + scripts added to package.json
16 tests across 3 files (permission, tools, registry)
Current Session
Long text handling — wordBreak: 'break-word', overflowWrap: 'anywhere', inline code set to display: 'inline' + whiteSpace: 'nowrap'
Silent editing — stopped explaining each step out loud
Per-split-screen effort — localEffort state (independent per pane)
Babel fix — added parentheses around (globalApiSettings.thinkingEffort || 'default')
You can’t perform that action at this time.