Releases: YASSER-27/Bowow
Releases · YASSER-27/Bowow
Release list
v1.5.2
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
handleRevertdata loss — read the original file from disk when no timeline entry exists- Permission checks —
assert()beforecreate_file(overwrite) andedit_file - System prompt — added "ask before modifying" to
buildSystemPrompt - Permission modal styling — removed the 🔐 icon, single line, centered
#888buttons, no overlay/border, shimmer effect similar to "Thinking" - Permission scope — every
BuildAgentnow filters events bydetail.sessionID !== String(buildId) - Multi-build persistence —
scheduleBuildSavesaves all builds underbuild-agent-conv-all;loadAllSavedConversations()restores all of them - Per-pane model picker —
localModelstate (instead of the globalsetApiModel) - Diff preview — increased slice limits from 2000/4000 to 100,000 characters;
ColoredDiffmaxLinesraised from 16 to 50 - Azure streaming — changed
streamAzure()fromres.json()(single blob) to an SSE line-by-line reader - Electron-only fallbacks —
LSP.start()andMCP.connectStdio()now useconsole.warn+returninstead of throwing - Google
maxTokens— increased default from 4096 to 8192 - Loop detection threshold —
repeatSigCountraised from 3 to 5 selectElementsstub — addedselectedElements: string[]and made() => {}a real functionuseCommandPermissionstub —requestPermissionnow actually waits for the user (realPromise)
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 staticTOOL_DEFSwith generation fromtoolRegistry.toToolDefs()+ a fallback map registerBuiltins()— moved to module level- Removed broken
AbsFileimport — the file didn't actually exist - Bridge at the top of
execTool— passesbuildId+apiSettingsin 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
processInlinewithreact-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_commandonly —read_filenow has arrows (needed for HTML iframes) - HTML iframe display —
fullContentnow includesread_filein addition tocreate_fileandedit_file - Auto-scroll fix —
setUserScrolledUp(false)when a user message is added;setTimeout(0)inhandleClear (+n)/(-n)stat indicators — enlarged fromvar(--font-xxs)tovar(--font-sm)- Unified background — all backgrounds now
#121212 - Custom fonts —
AR.otfandEN.otfadded underpublic/font/, loaded via@font-faceinindex.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 topackage.json - 16 tests across 3 files (permission, tools, registry)
Current Session
- Long text handling —
wordBreak: 'break-word',overflowWrap: 'anywhere', inline code set todisplay: 'inline'+whiteSpace: 'nowrap' - Silent editing — stopped explaining each step out loud
- Per-split-screen effort —
localEffortstate (independent per pane) - Babel fix — added parentheses around
(globalApiSettings.thinkingEffort || 'default')
v1.5.1
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
New Additions
- Added an agent
- Added
localEffort
All additions made so far (since the beginning)
Critical Fixes
handleRevertdata loss — read the original file from disk when no timeline entry exists- Permission checks —
assert()beforecreate_file(overwrite) andedit_file - System prompt — added "ask before modifying" to
buildSystemPrompt - Permission modal styling — removed the 🔐 icon, single line, centered
#888buttons, no overlay/border, shimmer effect similar to "Thinking" - Permission scope — every
BuildAgentnow filters events bydetail.sessionID !== String(buildId) - Multi-build persistence —
scheduleBuildSavesaves all builds underbuild-agent-conv-all;loadAllSavedConversations()restores all of them - Per-pane model picker —
localModelstate (instead of the globalsetApiModel) - Diff preview — increased slice limits from 2000/4000 to 100,000 characters;
ColoredDiffmaxLinesraised from 16 to 50 - Azure streaming — changed
streamAzure()fromres.json()(single blob) to an SSE line-by-line reader - Electron-only fallbacks —
LSP.start()andMCP.connectStdio()now useconsole.warn+returninstead of throwing - Google
maxTokens— increased default from 4096 to 8192 - Loop detection threshold —
repeatSigCountraised from 3 to 5 selectElementsstub — addedselectedElements: string[]and made() => {}a real functionuseCommandPermissionstub —requestPermissionnow actually waits for the user (realPromise)
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 staticTOOL_DEFSwith generation fromtoolRegistry.toToolDefs()+ a fallback map registerBuiltins()— moved to module level- Removed broken
AbsFileimport — the file didn't actually exist - Bridge at the top of
execTool— passesbuildId+apiSettingsin 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
processInlinewithreact-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_commandonly —read_filenow has arrows (needed for HTML iframes) - HTML iframe display —
fullContentnow includesread_filein addition tocreate_fileandedit_file - Auto-scroll fix —
setUserScrolledUp(false)when a user message is added;setTimeout(0)inhandleClear (+n)/(-n)stat indicators — enlarged fromvar(--font-xxs)tovar(--font-sm)- Unified background — all backgrounds now
#121212 - Custom fonts —
AR.otfandEN.otfadded underpublic/font/, loaded via@font-faceinindex.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 topackage.json - 16 tests across 3 files (permission, tools, registry)
Current Session
- Long text handling —
wordBreak: 'break-word',overflowWrap: 'anywhere', inline code set todisplay: 'inline'+whiteSpace: 'nowrap' - Silent editing — stopped explaining each step out loud
- Per-split-screen effort —
localEffortstate (independent per pane) - Babel fix — added parentheses around
(globalApiSettings.thinkingEffort || 'default')
Important Note (Beta)
The program has full permissions and executes commands without asking for approval.
v1.5.0
Bowow - BETA stable version
Bugfixes
- Fixed writeBuildFile
- Fixed persist middleware.
- Fixed localStorage & localStorage.setItem
- Fixed useAppStore(s => s.builds)
- Fixed MarkdownContent
- Fixed contentLoaded
Important Note (Beta):
The program has full permissions and executes commands without asking for approval.
v1.0.0
Bowow - BETA
Important: This build is currently unstable. There is a known issue with the persist middleware. A fix is underway; please avoid downloading this version for now."
open source AI coding agent
Usage
- Launch the app and open the Settings panel to configure your AI provider and API key, and click done.
- Connect to a model (Gemini, OpenAI, Ollama, etc.).
- Open a project folder ( /new ) or start a new session.
- Describe what you want to build — the agent will generate files, edit code, and run commands.
- Use F10 to toggle split-screen mode for multi-session management.
- For close split-screen Use F10 not (X)
Full support for sending and receiving all file types and images
Important Note (Beta):
The program has full permissions and executes commands without asking for approval.
Be careful with your input: Files may be deleted if you ask for it, or if the context suggests