Releases: OpenSource03/harnss
Releases · OpenSource03/harnss
v0.14.3 — Codex Utility Prompts, ACP Tasks & Browser Redesign
What's New
🤖 Codex Utility Prompts
- One-shot Codex queries — title generation and commit message generation now work with the Codex engine via a dedicated
codex-utility-promptsystem - Enhanced SDK queries — better logging with stderr capture, configurable timeouts, and model selection for
oneShotSdkQuery - Codex sandbox mode — permission modes now map to Codex sandbox settings (
workspace-write/danger-full-access)
🧩 ACP Task & Agent Rendering
- Task/Agent subagent steps — ACP sessions now extract and render subagent steps from Task and Agent tool results
- Tool name normalization — case-insensitive matching for Task/Agent tool detection across all engines
- ACP content extraction — improved text and file path extraction from ACP tool results
🌐 Browser Panel Redesign
- New start page — ambient glow effect, redesigned search bar with gradient focus ring and Tab-completion hints
- Letter avatars — recent sites now display domain letter avatars with hover arrows
- Feature indicators — minimal horizontal Preview / Inspect / Use in chat strip
📐 Layout & Polish
- Centralized layout constants — extracted
layout-constants.tsfor min widths, picker and handle dimensions - Flat layout improvements — tool picker dividers via CSS pseudo-elements, wider minimum window width (1408→1600px)
- InputBar optimizations — fast
hasMeaningfulTextcheck, disabled spellcheck/autocorrect/autocapitalize, wider max-width in flat layout
🛠 Tool Formatting & Diffs
- Result file path extraction — compact summaries now derive file names from tool results when input lacks
file_path - Task result wrapper stripping — removes
<task_result>wrapper from Agent tool output - Better diff selection —
selectUnifiedDiffTextpicks the best diff source, extracts file paths from diff headers - Step descriptions — subagent step summaries now include
descriptionfield
🔧 Codex Plan Streaming Fix
- Per-turn plan IDs — plan stream messages now use
codex-plan-stream-{N}instead of a singleton ID, fixing multi-plan sessions
🧪 Dev Seeding (Dev-Only)
- Chat seeding —
buildDevExampleConversationgenerates realistic multi-tool conversations for UI testing - Space seeding —
seedDevExampleSpaceDatacreates 3 dev projects with 10 seeded chats - Dev Fill toggle — advanced settings toggle + dropdown in chat title bar (dev builds only)
Full Changelog: v0.14.2...v0.14.3
v0.14.2 — Codex Engine Config, Auth Flow & Settings Refresh
What's New
⚙️ Codex Binary Source Configuration
- Configurable binary resolution — choose between auto-detect, managed download, or a custom binary path in the new Engines settings tab
- Managed binary auto-refresh — Harnss tracks download metadata and refreshes the managed Codex binary every 24h
- Vendor target triple resolution — improved platform detection for packaged Codex binaries across macOS, Windows, and Linux (arm64 + x64)
🔐 Codex Auth Flow
- Auth state management — detects 401/Unauthorized errors and
auth_requiredevents, surfacing a CodexAuthDialog to the user - Login event handling — responds to
account/login/completedandaccount/updatednotifications to dismiss the dialog automatically - Lazy thread start — if a Codex session loses its thread, Harnss now auto-starts a new one on send instead of rejecting the message
🎨 Settings Restructure
- Engines tab — moved Codex-specific settings out of Advanced into a dedicated Engines section
- Skills & Agents tabs — placeholder tabs with "Coming Soon" badges for upcoming features
- About page — new dedicated About section with version info, links, credits, and tech acknowledgments
- Left-aligned settings nav — tighter sidebar layout with labels hugging the left edge
🛠️ Cross-Platform Fix
- cross-env for dev script — added
cross-envto ensureELECTRON_ENABLE_LOGGINGworks on Windows
Full Changelog: v0.13.3...v0.14.2
v0.14.0 — Codex Engine Config, Auth Flow & Settings Refresh
What's New
⚙️ Codex Binary Source Configuration
- Configurable binary resolution — choose between auto-detect, managed download, or a custom binary path in the new Engines settings tab
- Managed binary auto-refresh — Harnss tracks download metadata and refreshes the managed Codex binary every 24h
- Vendor target triple resolution — improved platform detection for packaged Codex binaries across macOS, Windows, and Linux (arm64 + x64)
🔐 Codex Auth Flow
- Auth state management — detects 401/Unauthorized errors and
auth_requiredevents, surfacing a CodexAuthDialog to the user - Login event handling — responds to
account/login/completedandaccount/updatednotifications to dismiss the dialog automatically - Lazy thread start — if a Codex session loses its thread, Harnss now auto-starts a new one on send instead of rejecting the message
🎨 Settings Restructure
- Engines tab — moved Codex-specific settings out of Advanced into a dedicated Engines section
- Skills & Agents tabs — placeholder tabs with "Coming Soon" badges for upcoming features
- About page — new dedicated About section with version info, links, credits, and tech acknowledgments
🛠️ Cross-Platform Fix
- cross-env for dev script — added
cross-envto ensureELECTRON_ENABLE_LOGGINGworks on Windows
Full Changelog: v0.13.3...v0.14.0
v0.13.3 - ACP Bash Binary Detection Hotfix
Changes
Windows ACP Compatibility
- Bash-installed binary detection for ACP agents: Added Windows fallback detection through
bash/shso ACP binaries installed via bash-managed paths are detected and can be launched from Agent Store installs.
Full Changelog: v0.13.2...v0.13.3
v0.13.2 - Windows Codex Download Hotfix
Changes
Windows Reliability
- Codex npm pack fallback quoting fix: Fixed Windows fallback execution so cmd no longer mangles package arguments during npm pack retry, resolving EINVALIDPACKAGENAME when Codex is auto-downloaded.
Full Changelog: v0.13.1...v0.13.2
v0.13.1 — Windows Compatibility Fixes
Fixes
🪟 Windows ARM64 Binary Detection
- Agent registry fallback — Windows ARM64 now falls back to x86_64 binaries when native ARM64 builds aren't available, matching how Windows on ARM runs x86_64 apps under emulation
🔧 Codex Binary Download Fix
- npm pack EINVAL workaround — on some Windows environments,
npm.cmdfails withEINVALduring Codex binary download. The installer now retries viacmd.exe /cas a fallback
Full Changelog: v0.13.0...v0.13.1
v0.13.0 — Browser Inspector, Image Annotations & Diff Highlighting
What's New
🔍 Browser Element Inspector
- Grab elements from any webpage directly into your chat context — click the crosshair button in the browser toolbar, hover to highlight, click to capture
- Start page with search/URL bar, browsing history with autocomplete, and recent websites grid
- URL autocomplete with Tab completion from browsing history
🎨 Image Annotation Editor
- Full annotation toolkit — freehand drawing, rectangles, circles, arrows, text labels, highlighter, and eraser
- Konva-based canvas with select/move/resize via transformer handles
- Undo/redo support with keyboard shortcuts (⌘Z / ⌘⇧Z)
- Color picker & stroke width controls with preset palette
✨ Diff Viewer Syntax Highlighting
- Pre-highlighted syntax with full-file context so multi-line constructs (block comments, template literals) render correctly across diff chunks
- Contiguous runs are tokenized independently for accurate Prism highlighting
🔄 Updater Hardening
- Platform-specific install paths — macOS uses Squirrel when signed, manual .app swap when unsigned; Windows/Linux use standard quitAndInstall
- Comprehensive test suite — 850+ lines of vitest tests covering all updater flows, IPC handlers, and edge cases
- Exported test helpers and
__resetForTesting()for clean test isolation
⚙️ Codex Binary Improvements
- Concurrent download guard — prevents duplicate npm downloads when multiple sessions request Codex simultaneously
- Binary status endpoint (
codex:binary-status) — exposes installed/downloading state to the renderer - Cross-platform fixes — uses
npm.cmdon Windows, pure-JSlistFilesRecursivereplacesfindcommand
🧩 Other Improvements
- Agent registry — robust binary name extraction handling quoted paths, backslashes, and file extensions
- Plan mode persistence —
planModeflag saved in session metadata for sidebar display - Layout cleanup — unified titlebar gradient logic across island and flat modes
Full Changelog: v0.12.1...v0.13.0
0.12.1
chore: update app icon with macOS Tahoe .icon support Add native macOS Tahoe dynamic icon (.icon) with light/dark/clear/tinted variants via Icon Composer. Use light variant for Windows (.ico), Linux (.png), DMG (.icns), and pre-Tahoe macOS fallback. electron-builder compiles .icon → Assets.car via actool on macOS 26+ CI runner. Bump version to 0.12.1. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.12.0 — Codebase Overhaul, ACP Error Surfacing & Binary Agent Detection
What's New
🏗️ Comprehensive Codebase Decomposition
- AppLayout decomposed from 1,401 → 496 lines via
useAppOrchestrator,useSpaceTheme,usePanelResize - useSessionManager decomposed from 2,532 → 407 lines via 6 focused sub-hooks
- ToolCall decomposed from 1,192 → 120 lines with 12 dedicated tool renderers
- McpToolContent decomposed from 1,017 → 140 lines with 4 MCP renderer modules
- GitPanel split into 9 focused files, AppSidebar split into sidebar/ components
- Shared hook infrastructure:
useEngineBase,SimpleStreamingBuffer,message-factory.ts - Shared types:
shared/types/with@shared/*path alias across both electron and renderer
🔒 Security & Type Safety Hardening
- Path traversal fix in
file:readandfiles:read-multiplehandlers - Git argument injection prevention via
validateRef()helper - Shell injection fix: replaced
execSyncwithexecFileSyncin Codex binary detection - Removed ToolUseResult index signature — added explicit typed fields instead
- ~27 unsafe catch patterns fixed — replaced
(err as Error).messagewith proper guards - SDK type imports: direct
Querytype import,ClientSideConnectiontyping for ACP
🚨 ACP Error Surfacing
- Stderr error capture: parses actionable error lines from ACP agent stderr and surfaces them in the UI when prompts fail with generic "Internal error"
- Error handling for prompt/cancel: ACP send and interrupt flows now catch errors and display system error messages in chat
- Cancel result propagation:
acp:cancelnow returns{ error }on failure instead of always{ ok: true }
🔍 Binary Agent Auto-Detection
- System PATH detection: automatically checks if binary-only agents are installed via
which/where - One-click install: binary agents detected on the system can now be installed from the Agent Store with a single click (previously showed "Manual" only)
- Platform-aware resolution: maps
process.platform+process.archto registry platform keys
🛠️ ACP Tool Mapping Improvements
- Think/TodoWrite split:
thinkkind now correctly maps toThinkorTodoWritebased on content - Glob detection:
readkind withpatterninput maps toGlobinstead ofRead - rg/find routing:
otherkind with titlerg/ripgrep→Grep,find/fd→Glob - Edit diff rendering: parses
detailedContentfrom ACP agents for unified diff display - Content-to-stdout fallback: copies ACP
contenttostdoutfor ReadContent/SearchContent compatibility - file_path extraction: derives file path from locations even for non-object rawInput
✨ UI Polish
- Compact TabBar: supports empty
headerLabelfor tool panel tabs without redundant text
Full Changelog: v0.11.2...v0.12.0
v0.11.2 — Background Agent Events & SDK Agent Tool Fix
What's New
🔄 Event-Driven Background Agent Monitoring
- Live usage metrics — background agents now show real-time token count, tool use count, and duration via SDK
task_progressevents - Instant completion detection — task completion parsed from
<task-notification>XML in user messages, replacing the old 6-second file stability heuristic - No more file polling — background agent progress is fully event-driven through the existing SDK event stream
- Scrollable activity log — agent activity list is no longer capped and scrolls within a max-height container
🔧 SDK 0.2.63 Agent Tool Fix
- Fixed subagent step rendering — SDK 0.2.63 renamed the
Tasktool toAgent, breaking theparentToolMaprouting that displays subagent steps inside task cards. AllisTaskchecks now accept both"Task"and"Agent"names - Fixed across all layers —
useClaude.ts,background-session-store.ts, andToolCall.tsxall updated to handle the renamed tool
📊 Detailed Task Event Logging
- Rich log output for
task_started,task_progress, andtask_notificationevents in the main process, showing task ID, token counts, tool counts, duration, and last tool name
Full Changelog: v0.11.1...v0.11.2