Skip to content

Releases: OpenSource03/harnss

v0.14.3 — Codex Utility Prompts, ACP Tasks & Browser Redesign

03 Mar 23:55

Choose a tag to compare

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-prompt system
  • 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.ts for 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 hasMeaningfulText check, 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 selectionselectUnifiedDiffText picks the best diff source, extracts file paths from diff headers
  • Step descriptions — subagent step summaries now include description field

🔧 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 seedingbuildDevExampleConversation generates realistic multi-tool conversations for UI testing
  • Space seedingseedDevExampleSpaceData creates 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

02 Mar 01:57

Choose a tag to compare

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_required events, surfacing a CodexAuthDialog to the user
  • Login event handling — responds to account/login/completed and account/updated notifications 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-env to ensure ELECTRON_ENABLE_LOGGING works on Windows

Full Changelog: v0.13.3...v0.14.2

v0.14.0 — Codex Engine Config, Auth Flow & Settings Refresh

02 Mar 01:55

Choose a tag to compare

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_required events, surfacing a CodexAuthDialog to the user
  • Login event handling — responds to account/login/completed and account/updated notifications 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-env to ensure ELECTRON_ENABLE_LOGGING works on Windows

Full Changelog: v0.13.3...v0.14.0

v0.13.3 - ACP Bash Binary Detection Hotfix

01 Mar 22:03

Choose a tag to compare

Changes

Windows ACP Compatibility

  • Bash-installed binary detection for ACP agents: Added Windows fallback detection through bash/sh so 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

01 Mar 21:54

Choose a tag to compare

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

01 Mar 21:35

Choose a tag to compare

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.cmd fails with EINVAL during Codex binary download. The installer now retries via cmd.exe /c as a fallback

Full Changelog: v0.13.0...v0.13.1

v0.13.0 — Browser Inspector, Image Annotations & Diff Highlighting

01 Mar 20:57

Choose a tag to compare

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.cmd on Windows, pure-JS listFilesRecursive replaces find command

🧩 Other Improvements

  • Agent registry — robust binary name extraction handling quoted paths, backslashes, and file extensions
  • Plan mode persistenceplanMode flag 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

01 Mar 19:01

Choose a tag to compare

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

01 Mar 03:01

Choose a tag to compare

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:read and files:read-multiple handlers
  • Git argument injection prevention via validateRef() helper
  • Shell injection fix: replaced execSync with execFileSync in Codex binary detection
  • Removed ToolUseResult index signature — added explicit typed fields instead
  • ~27 unsafe catch patterns fixed — replaced (err as Error).message with proper guards
  • SDK type imports: direct Query type import, ClientSideConnection typing 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:cancel now 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.arch to registry platform keys

🛠️ ACP Tool Mapping Improvements

  • Think/TodoWrite split: think kind now correctly maps to Think or TodoWrite based on content
  • Glob detection: read kind with pattern input maps to Glob instead of Read
  • rg/find routing: other kind with title rg/ripgrepGrep, find/fdGlob
  • Edit diff rendering: parses detailedContent from ACP agents for unified diff display
  • Content-to-stdout fallback: copies ACP content to stdout for ReadContent/SearchContent compatibility
  • file_path extraction: derives file path from locations even for non-object rawInput

✨ UI Polish

  • Compact TabBar: supports empty headerLabel for tool panel tabs without redundant text

Full Changelog: v0.11.2...v0.12.0

v0.11.2 — Background Agent Events & SDK Agent Tool Fix

01 Mar 00:39

Choose a tag to compare

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_progress events
  • 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 Task tool to Agent, breaking the parentToolMap routing that displays subagent steps inside task cards. All isTask checks now accept both "Task" and "Agent" names
  • Fixed across all layersuseClaude.ts, background-session-store.ts, and ToolCall.tsx all updated to handle the renamed tool

📊 Detailed Task Event Logging

  • Rich log output for task_started, task_progress, and task_notification events in the main process, showing task ID, token counts, tool counts, duration, and last tool name

Full Changelog: v0.11.1...v0.11.2