Skip to content

Latest commit

 

History

History
546 lines (323 loc) · 57.8 KB

File metadata and controls

546 lines (323 loc) · 57.8 KB

Changelog

0.12.2

Patch Changes

  • #309 8a88fdb Thanks @natllian! - Add DeepSeek as a built-in Claude Code custom provider with DeepSeek V4 Pro 1M and DeepSeek V4 Flash model options.

  • #312 ee123bd Thanks @natllian! - Fix chat shortcuts (new session, close session, prev/next session) being misrouted to the terminal after clicking from the terminal into the chat column.

0.12.1

Patch Changes

  • #299 7025e5a Thanks @natllian! - Fix the Intel macOS build shipping arm64 vendor binaries — gh auth login, glab, codex, and bun now match the bundle architecture instead of failing with "bad CPU type in executable".

  • #295 4029ca5 Thanks @dohooo! - Adjust the macOS app icon spacing so Helmor appears at a normal size in Finder, Dock, and Launchpad.

  • #300 36b2fcf Thanks @natllian! - Polish the composer in two places:

    • Add a customizable ⌘Enter shortcut that sends one message with the opposite follow-up behavior (queue ↔ steer).
    • Drop the leading $ from Codex credits in the context-usage ring.
    • Thanks to @robinebers for the feedback that prompted both.

0.12.0

Minor Changes

  • #288 0b97558 Thanks @natllian! - Add Claude Code custom provider support:

    • Configure built-in third-party providers or a custom Claude-compatible endpoint from Settings with API key shortcuts.
    • Use configured third-party models alongside official Claude Code models in the composer and default model picker.
    • Prefer configured Claude-compatible models for automatic session title generation before falling back to official Claude and Codex.
  • #263 1fb7c6a Thanks @aidxun! - Add repository-specific branch prefix overrides and clean up the repository settings layout:

    • Let each repository set a custom branch prefix, with empty values inheriting the global default.
    • Use the matching GitHub or GitLab account when Helmor generates provider-based branch prefixes for new workspaces.
    • Show repository settings as divided rows instead of separate cards for a cleaner settings panel.

0.11.4

Patch Changes

  • #284 8e5b731 Thanks @natllian! - Restore the Conductor migration path during onboarding and keep its import screen matched to the current app theme.

0.11.3

Patch Changes

  • #282 9f2a514 Thanks @natllian! - Improve shortcut behavior:
    • Add an optional global hotkey that can show Helmor from anywhere and hide it when focused.
    • Let the Run / Stop script shortcut work app-wide.

0.11.2

Patch Changes

  • #279 d1f68d5 Thanks @natllian! - Loosen up keyboard shortcuts and the inspector tabs panel:

    • Make global shortcuts (Cmd+R run script, sidebar/zen toggles, workspace navigation, commit/PR actions) fire from anywhere in the window instead of silently doing nothing when focus is in the file editor.
    • Cmd+T while looking at script output now opens a new terminal instead of a new chat session.
    • Any inspector tab — Setup, Run, a terminal tab, or the "+" button — now opens the tabs panel when clicked, and collapses it when you click the already-active tab.
  • #281 56a308c Thanks @natllian! - A round of CLI auth and UI polish:

    • Pin Settings → Account CLI rows to a fixed height so they stop jumping between Connect / Ready / Error.
    • Edge-detect forge Unauthenticated in the backend so the 60s poll stops republishing on every tick, and fan it out to the Account CLI cache so it can't go stale.
    • Reflect external GitHub sign-in / sign-out in Settings → Account via the shared identity hook.
    • Surface CLI command errors (e.g. gh not on PATH) immediately during auth instead of waiting out the full poll budget.
    • Make the inspector Connect button actually re-authenticate when the remote disagrees with the local CLI snapshot, instead of toasting a misleading "connected".
    • Replace the editor close-button tooltip with an inline Esc shortcut next to the X.
    • Fall back to logo.svg / public/logo.svg when picking a workspace repo icon.

0.11.1

Patch Changes

  • 5f57067 Thanks @natllian! - Fix a regression on macOS 26 (Tahoe) where scrollbar backgrounds stayed permanently visible in the workspace sidebar, conversation thread, and inspector panels.

0.11.0

Minor Changes

  • 378b521 Thanks @natllian! - Add a Terminal tab to each workspace's inspector for running interactive shells

  • #274 bb5432d Thanks @natllian! - Add a sidebar workspace hover card that surfaces a workspace's repo, branch, git status, and recent activity at a glance, with a live markdown preview of the AI's current output and an elapsed timer for workspaces that are actively running.

Patch Changes

  • #269 f3643b8 Thanks @natllian! - Fix the experimental Install CLI action on macOS so it pops the standard administrator authorization prompt (password or Touch ID) when /usr/local/bin needs root, instead of silently failing with a permission-denied error.

  • #273 b50af02 Thanks @natllian! - Polish how Helmor sends prompts to the agent on your behalf:

    • Stop showing your "general preferences" preamble inside your own chat bubbles. The preamble is still delivered to the agent on the wire, but it no longer appears in the visible message or gets persisted with the user prompt — so reloading a session shows only what you actually typed.
    • Substitute the workspace's real git remote name into the Create PR / Commit and push / Resolve conflicts prompts (e.g. git push -u origin HEAD instead of git push -u <remote> HEAD) so the agent gets a concrete command instead of a placeholder.
  • #270 7d70131 Thanks @natllian! - Collapse all tool calls in the chat thread by default.

  • #271 2709b07 Thanks @natllian! - A couple of small polish fixes:

    • Stop the GitHub "Connect" prompt from flickering on flaky networks: the gh / glab status check now tolerates transient blips for up to 10 minutes and no longer mistakes upstream "401 Service Unavailable" / "unauthenticated upstream" responses for a real logout.
    • Slightly darken the composer placeholder and the auto/plan-mode pill at rest so they stay legible instead of fading into the background.

0.10.0

Minor Changes

  • #264 07c8ce9 Thanks @natllian! - Add a guided first-run onboarding flow that walks new users from agent login to a workable workspace:

    • Animated multi-step intro with previews of the Helmor UI, per-step spotlights, and Back / Next navigation between steps.
    • Agent login step that detects active Claude and Codex installations and highlights the provider you're signed into.
    • A "Power up Helmor" step that installs the Helmor CLI and Helmor Skills (Beta) from inside the app, with a live helmor --help preview — setup failures don't block onboarding, you can resolve them later from inside Helmor.
    • Repository import step that lets you clone from a URL or add a local path before reaching the main workspace.
  • #261 24be4a4 Thanks @natllian! - Add three new keyboard shortcuts with matching settings rows and in-app hints:

    • Reopen closed session — ⌘⇧T (LIFO history of recently hidden sessions)
    • Open PR in browser — ⌘⇧G (forge-aware: tooltip says "Open pull request" on GitHub, "Open merge request" on GitLab)
    • Open model picker — ⌥P (opens the composer's model dropdown; tooltip on the trigger shows the binding)

Patch Changes

  • #262 dad03a8 Thanks @natllian! - Fix the Create MR button on GitLab repos so it opens the merge request against the workspace's configured target branch instead of falling back to the repository's default branch.

  • #259 2c05f79 Thanks @natllian! - Keep Helmor's startup cache healthy as your workspace history grows:

    • The on-disk query cache no longer balloons with workspace diff and file-list snapshots — they reload on focus when you actually need them, instead of getting saved on every state change and pushing the cache toward the browser's storage quota.
    • Composer drafts are now cleaned up when their session is deleted, so they don't accumulate over time.
    • Storage write failures (quota exceeded, security errors) now log to the console instead of being silently swallowed, making it easier to diagnose persistence issues.

0.9.1

Patch Changes

  • #257 33c056b Thanks @natllian! - Make the inspector's PR header feel instant on workspace switch:

    • Render the PR badge from the persisted snapshot the moment a workspace opens, before the live forge query returns — no more shimmer flash on cold start.
    • Stop the shimmer from flashing on background PR refreshes; it now only appears on the very first fetch for a workspace.
    • Hover the PR badge to see the PR title in a tooltip.
    • The sidebar workspace name now reflects the live PR title once a PR has been opened.
  • #250 ddeb6e4 Thanks @natllian! - Fix a one-frame white flash when toggling the composer's Plan button — the muted off-state now fades smoothly to and from the green on-state instead of briefly brightening at the start of the animation.

  • #255 1d22cbb Thanks @natllian! - Show thinking blocks in full instead of clipping them to an inner scroll container, so scrolling the chat thread no longer gets stuck when the cursor passes over a thinking block.

  • #256 75993c2 Thanks @natllian! - Make switching into large sessions snappier and reduce database contention during heavy streaming.

  • #254 7a229a8 Thanks @natllian! - Make in-app updates land faster and feel more transparent

  • #253 a804bb2 Thanks @natllian! - Polish the keyboard shortcut settings:

    • Right-click anywhere on a shortcut row to open its menu, not just the keybinding chip, and the row picks up a subtle border highlight while the menu is open.
    • Customized shortcuts now show a small reset button next to the chip so a single click reverts that shortcut to its default.
    • Change the default Navigation shortcuts to Option+Command+Up/Down for previous/next workspace and Option+Command+Left/Right for previous/next session (replacing Option+H/L and Option+K/J).

0.9.0

Minor Changes

  • #248 3ecf923 Thanks @natllian! - Streamline GitHub and GitLab onboarding so users no longer have to install the forge CLIs themselves:

    • Ship gh and glab bundled inside Helmor so Connect GitHub / Connect GitLab works on a fresh install — no Homebrew step required.
    • Add an Account section in Settings that shows your GitHub identity and the connection status of each forge CLI, with a one-click Connect button that opens a terminal to finish signing in.
    • Update the inspector's Connect button tooltip to clarify that authentication happens locally in a terminal you control.
  • #249 8253908 Thanks @natllian! - Ship a customizable shortcut system across the app:

    • Add a Shortcuts settings page where users can search, record, clear, reset, and detect conflicts for supported shortcuts.
    • Show compact shortcut hints in tooltips, buttons, the composer, and editor/diff close controls.
    • Add shortcuts for workspace/session navigation, repository actions, sidebars, zen mode, zoom, theme switching, composer focus, and common Git actions.

Patch Changes

  • #247 fb6710b Thanks @natllian! - Stop the Claude rate-limit indicator from re-triggering the macOS keychain prompt on every Helmor upgrade, and let Claude CLI handle expired-token refresh so its saved login is no longer invalidated by Anthropic's refresh-token rotation.

  • #243 7a7d6c4 Thanks @dohooo! - Use a bundled Claude and Codex model catalog so the model picker always has stable options without depending on SDK model-list loading or cached results.

0.8.0

Minor Changes

  • #242 04c6bb2 Thanks @natllian! - Add a Usage Stats indicator next to the composer:

    • Show live 5h and 7d rate-limit windows for the active Claude or Codex account, with a hover popover for the full breakdown (per-model windows, Designs, Daily Routines, plan, credits balance).
    • Pull data directly from each provider's OAuth usage endpoint so usage stays visible even when the agent hasn't run yet, and Codex still surfaces plan and credit balance after the rate limit is exhausted.
    • Turn the Usage Stats indicator and the context-usage ring on by default for new users.
  • #240 0a458af Thanks @natllian! - Improve workspace PR lifecycle handling:

    • Move workspaces to review or done only when their PR lifecycle changes, so manual status moves stay in place until the next PR transition.
    • Add Continue for merged PR workspaces to detach from the old PR branch and start fresh from the target branch.
    • Polish the Git header controls so PR, Continue, merge status, and editor actions stay readable in narrow layouts.

Patch Changes

  • #239 7522fc5 Thanks @natllian! - Keep GitHub CLI connection status stable when a transient auth check fails, so connected workspaces no longer briefly fall back to Connect before recovering.

0.7.0

Minor Changes

  • #235 0bca4a5 Thanks @natllian! - Add GitLab support across workspace forge workflows:

    • Detect GitLab remotes and show merge request status, checks, pipelines, reviews, and actions alongside existing GitHub pull request workflows.
    • Add GitLab CLI onboarding for installing and connecting glab, including authenticated status refresh after setup.
    • Update commit, inspector, and settings surfaces to use provider-aware GitHub/GitLab labels and actions.
  • #204 f5c5643 Thanks @gxxgcn! - Surface downloaded app updates as a sidebar/header button so users can install them directly from the app.

  • #213 a388af8 Thanks @gxxgcn! - Add Open in Finder actions for workspaces so you can reveal a workspace directly from the sidebar context menu or the workspace header menu.

  • #233 e43bdde Thanks @natllian! - Add first-class Codex image output support in chat:

    • Render Codex-generated images inline in assistant messages.
    • Store generated images as managed files instead of large base64 payloads in the session database.
    • Add a chat image context menu for copying images and revealing generated image files in Finder.

Patch Changes

  • #208 043d5ee Thanks @gxxgcn! - Keep the GitHub identity gate drag region above surrounding content so the window title bar stays draggable.

  • #209 0f5b56d Thanks @gxxgcn! - Stop Helmor's embedded Codex app-server from inheriting global native notification hooks that can crash new Codex chats on some macOS setups.

  • #207 a01f0d9 Thanks @gxxgcn! - Fail workspace archive cleanly when the source repository is missing, instead of leaving the archive flow half-finished.

  • #230 52a07ce Thanks @natllian! - Fix Claude context usage so Helmor uses the latest per-message SDK token totals instead of inflated cumulative usage when updating the composer meter.

  • #234 b63e1ab Thanks @natllian! - Make Create PR and conflict-resolution agent actions use the workspace target branch explicitly instead of relying on repository default branch assumptions.

0.6.3

Patch Changes

  • #220 46b35ab Thanks @natllian! - Fix session tab closing so Helmor activates the tab to the right, falls back to the left, and keeps the current tab active when closing a background session.

  • #222 1e2c19c Thanks @natllian! - Improve recovery when a workspace directory disappears outside Helmor:

    • Preserve chat history by moving missing workspaces to the archive instead of deleting their records.
    • Let archived workspaces without an archive snapshot restore from their target branch, with an in-app notice explaining the fallback.
    • Reduce repeated git, file, and inspector errors for missing worktrees while still offering an explicit permanent delete action when recovery is needed.
  • #218 978f979 Thanks @natllian! - Fix the composer's context-usage ring pinning at 100% after a single tool-heavy turn on Claude — the ring now reflects the actual end-of-turn context fill instead of cumulative per-call token usage.

  • #223 dedc9ca Thanks @natllian! - Make the composer context-usage percentage model-aware so it does not show stale or misleading window percentages after model switches or mixed Claude model usage.

  • #224 af04884 Thanks @natllian! - Add Codex context compaction support so Codex chats can run /compact from the composer and show a context-compacted notice when the provider finishes.

  • #221 7fea750 Thanks @natllian! - Hide duplicate Claude local command completion notices so finished shell tasks no longer appear as top-level subagent messages.

  • #226 20a922e Thanks @natllian! - Show relative timestamps only on the turn-end row in the chat thread so errors and other system notices no longer carry a redundant "N minutes ago".

  • #227 cfa0ee5 Thanks @natllian! - Tighten up a handful of transient failure paths so they stop surfacing as errors:

    • Retry the slash-command popup once when the Claude SDK tears down its query mid-request, so the / menu loads instead of flashing an error.
    • Retry GitHub PR actions (show / merge / close) once on transient TLS and connect errors with a short backoff, so a flaky network doesn't bounce the user out of a commit flow.
    • Stop raising an error when a session is deleted while its title is still being generated in the background.
  • #225 090c1a0 Thanks @natllian! - Fix the Create PR button getting stuck on "Creating…" after aborting the PR-creation session; it now returns to idle so the action can be retried.

0.6.2

Patch Changes

  • #215 561b4de Thanks @natllian! - Upgrade the bundled Codex CLI to 0.124.0 so the Codex model picker picks up newer OpenAI models, including GPT-5.5.

  • #210 d49f63a Thanks @natllian! - Fix Claude's AskUserQuestion so the answer you pick in the UI actually reaches the assistant when you submit.

  • #211 92193b5 Thanks @natllian! - Stop rendering mislabeled "Subagent started / completed" rows next to long-running Bash commands — those came from Claude's per-bash lifecycle notices and duplicated the Bash tool call itself.

  • #214 cebac7b Thanks @natllian! - Fix the composer's context-usage ring so it updates immediately after every turn instead of appearing stuck until the user switched sessions or refocused the window.

  • #216 06e3cdd Thanks @natllian! - Remove the unused workspace .context scaffold and stop preserving it during archive, restore, and import flows.

  • #217 3f8d37d Thanks @natllian! - Keep pinned workspaces in the pinned section and place unarchived workspaces directly into their final newest-first position so the sidebar no longer jumps when the list refreshes.

0.6.1

Patch Changes

  • #203 4b9cf2e Thanks @dohooo! - Enable the WebView devtools panel in production builds, so you can right-click → Inspect Element inside Helmor to help diagnose rendering issues like scrollbar glitches.

0.6.0

Minor Changes

  • #190 ba14555 Thanks @dohooo! - Ship a sidebar clone flow and a couple of readability polish fixes:

    • Add "Clone from URL" to the Workspaces add-repository menu so you can paste a Git URL, pick a clone location, and have Helmor clone and import the repository as a new workspace in one step.
    • Fix sidebar workspace titles clipping descenders (g / j / p / q / y) at the bottom edge when the app is zoomed out.
    • Restore vertical rhythm around assistant markdown headings and add a touch of horizontal breathing room to inline code in chat messages.
  • #197 1f0e5e7 Thanks @natllian! - Add a context-usage ring next to the composer's send button that shows current token usage with a hover popover; the ring auto-reveals once usage crosses 70% of the model context window, or can be set to always show via a new "Always show context usage" toggle in Settings.

  • #200 4bb9fd6 Thanks @natllian! - Add a per-repository Auto-run toggle for setup scripts so new workspaces can either run setup immediately on creation or stay ready for manual setup from the Setup tab.

Patch Changes

  • #194 cfe8f67 Thanks @natllian! - Drop unused database tables and columns.

  • #195 25cfefc Thanks @natllian! - Improve error visibility and file navigation in chat responses:

    • Let local file references in assistant messages open directly in Helmor's in-app editor at the referenced line when the file is inside the current workspace.
    • Preserve specific Claude API errors like unexpected socket disconnects instead of collapsing them into a generic "unknown error" notice.
  • #187 9e41cd7 Thanks @natllian! - Keep queued follow-up prompts overlaying the composer instead of shrinking the thread, and show a proper icon for streamed Skill entries.

  • #196 34ce8a4 Thanks @natllian! - Fix Codex sessions so sandbox mode changes apply on later turns and Git worktree metadata directories stay writable for commit and push operations.

  • #193 6e77a94 Thanks @natllian! - Refresh the inspector's Actions panel immediately after switching target branch, so the sync-with-remote row shows the new ahead/behind numbers right away instead of lagging up to ten seconds behind.

  • #198 0ce21bb Thanks @natllian! - Fix Cmd+Q on macOS so quitting while a task is running now shows the same confirmation dialog as the window close button instead of exiting immediately.

  • #199 e5abd9c Thanks @dohooo! - Stop the workspace sidebar and command palette from showing a stray scrollbar in production builds.

  • #199 0d0050b Thanks @dohooo! - Fix multiple chat viewport scrolling glitches during streaming:

    • Eliminate the near-bottom flicker, the mid-stream auto-scroll stall, and the first-chunk overshoot that could leave the view stranded mid-reply.
    • Keep the streaming logo and timer reliably pinned to the end of the assistant output instead of briefly covering text or snapping back into place a moment later.
    • Stop the viewport from bouncing up and down by about one line once a single reply grows taller than the screen on fast models.
  • #191 c582325 Thanks @natllian! - Fix stuck sessions caused by SQLite contention and unresponsive sidecars:

    • Eliminate the "database is locked" failures that could interrupt session actions (marking read, pinning, renaming) while an AI turn was actively writing to the DB.
    • Detect a frozen or disconnected sidecar via heartbeat and surface a retry-able error instead of leaving the session stuck in a streaming state.
  • #196 12f3749 Thanks @natllian! - Add a hover-only copy button for user chat bubbles and remove the copy button fade animation so message actions appear immediately.

0.5.0

Minor Changes

  • #173 dc620cd Thanks @dohooo! - Ship a fuller Helmor companion CLI and keep the desktop app in sync with terminal-driven changes:
    • Expand the CLI with workspace, session, repo, files, settings, GitHub, models, send, MCP, and shell completion commands so you can manage Helmor workflows from the terminal.
    • Bundle the CLI with the desktop app and install it from Settings as helmor in release builds or helmor-dev in development builds so it stays version-matched with the app.
    • Reflect CLI-triggered workspace, session, files, settings, GitHub, and queued-send changes in the desktop UI immediately instead of waiting for focus-based refreshes.

0.4.2

Patch Changes

  • #180 b4882cd Thanks @natllian! - Append custom repository preferences after Helmor's built-in prompts, and tighten the preferences editor so placeholders and prompt previews better match what agents actually receive.

0.4.1

Patch Changes

  • #176 8536c7b Thanks @natllian! - Keep the model picker populated from the last good startup cache and only overwrite that cache after a successful model refresh, so reopening Helmor no longer flashes an empty "Select model" state before the catalog loads.

  • #177 b7d2de2 Thanks @natllian! - Fix fast Claude thinking blocks that were collapsing themselves and showing a generic "Thinking" label — they now stay expanded and show "Thought for Ns" as soon as reasoning finishes, even when the block completes too quickly for the streaming UI to observe it mid-flight.

  • #174 48bc8b1 Thanks @natllian! - Make the workspace unread dot behave the way you'd expect:

    • Clicking a workspace you just marked as unread now actually clears the green dot. Previously the click was silently ignored when the workspace was already the currently selected one.
    • "Mark as unread" only flips the workspace flag itself — it no longer flips a random session's unread state as a side effect, and your manual workspace-level mark is preserved as long as any session in that workspace is still unread.

0.4.0

Minor Changes

  • #163 623c66b Thanks @natllian! - Add a follow-up queue for messages sent while the AI is still responding:
    • New Settings toggle (Follow-up behavior) picks between Queue and Steer — Queue stashes the next message and auto-sends it once the current turn finishes; Steer keeps the existing mid-turn interrupt.
    • Queued messages appear as stacked rows above the composer with Steer-now / remove actions, and survive session and workspace switches.
    • Pull-on-conflict and dirty-worktree resolution prompts now queue onto the active chat automatically instead of blocking with a toast when the AI is busy.

Patch Changes

  • #172 7120573 Thanks @natllian! - Fix approval prompts so Allow and Deny stay clickable while the agent is waiting, and remove the unused optional reason field from that approval UI.

  • #171 e8969e1 Thanks @natllian! - Warn before closing a session while its chat is still running, and stop the in-flight response if you choose to close it anyway.

  • #168 bcf68c2 Thanks @natllian! - Polish the Settings UI for clearer navigation:

    • Reorganize app settings into General, Appearance, Model, and Git sections with matching section titles.
    • Remove the empty top-left gap in the Settings dialog so the sidebar aligns cleanly with the header.
    • Remove the placeholder text from General preferences because that field no longer has a built-in prompt.
  • #170 c8bcd61 Thanks @natllian! - Make Claude's /add-dir behavior match Codex more closely by reloading slash commands after linked directories change and consistently using linked-directory context for Claude prompts and command discovery.

  • #167 2b5bd0a Thanks @natllian! - Fix the macOS dock badge and sidebar unread indicators so they accurately track per-session unread state: opening a session marks it read, the workspace stays flagged while any of its sessions is still unread, and sessions waiting on a prompt only clear once the interaction is completed.

  • #169 4ef8640 Thanks @natllian! - Fix the streaming loading/timer footer so it stays below the live assistant output while long tool groups expand, and add a regression test for the overlap case.

0.3.0

Minor Changes

  • #159 fd8f6cb Thanks @natllian! - Add repo-level AI prompt preferences with markdown preview so each repository can customize create-PR, fix-errors, conflict-resolution, branch-naming, and first-chat instructions.

Patch Changes

  • #157 e46889e Thanks @natllian! - Keep the inspector's Setup/Run hover-zoom expanded until the pointer actually leaves the zoomed panel, and stop triggering blur pulses when no zoom animation is happening.

  • #160 adc9c1a Thanks @natllian! - Fix an intermittent flicker where the Chinese IME candidate popup briefly went blank for a frame before closing when switching from a Chinese IME to English mid-composition.

0.2.1

Patch Changes

  • #152 405c634 Thanks @natllian! - Fix the sidebar workspace row so the green status dot on the avatar no longer gets clipped when you hover the row.

  • #153 b05d39f Thanks @natllian! - Tighten the scripts terminal hover-zoom so it only engages when there's real output to read:

    • The Setup/Run tab header no longer triggers the zoom, so moving the cursor between tabs or to the collapse chevron keeps the panel at its resting size.
    • The empty placeholder states (no script configured, or script configured but not yet run) no longer trigger the zoom — it now only engages once a script has actually produced terminal output.
    • The Stop/Rerun button in the bottom-right corner only appears once the panel has enlarged, so it's no longer clipped and unclickable at the resting size.

0.2.0

Minor Changes

  • #150 c1116d9 Thanks @natllian! - Add /add-dir to link extra directories into a workspace so agents can read and edit them alongside the main worktree. Linked directories persist per workspace and appear as chips in a new "context" strip inside the composer, above the input.

    • Picker: selecting /add-dir inserts a purple pill into the editor and opens a cmdk popup above the composer. The popup suggests every ready workspace across all repos and a "Browse folder…" escape hatch. Type after the pill to filter, Enter to pick, Backspace once to exit.
    • Context bar: chips show each linked directory's name + branch, hover tooltip reveals the full path. Tab / ←/→ / Home / End navigate; Backspace or Delete removes with a collapse animation; Escape blurs.
    • Claude: paths are merged with the workspace's git worktree metadata directories and sent as additionalDirectories.
    • Codex: in plan mode the current cwd plus linked paths become sandboxPolicy.writableRoots so edits outside cwd aren't rejected.
  • #148 1e0d07b Thanks @natllian! - Add a mid-turn Steer button to the composer — type a new instruction while the agent is still streaming and click Steer to inject it into the running turn without stopping; works on both Claude and Codex.

  • #137 d8ed77b Thanks @dohooo! - The macOS Dock icon now shows a red badge with the total number of sessions that have unread activity across your workspaces, clearing as you open each workspace.

  • #125 fcad25d Thanks @dohooo! - Make the Run and Setup inspector terminals behave like a real interactive terminal:

    • Fix the Stop button so it actually terminates the running script — it was previously a silent no-op that left the process running until it completed on its own.
    • Accept keyboard input in the terminal so Ctrl+C now interrupts the foreground process, and interactive tools can prompt you for input the way they would in a normal shell.
    • Propagate inspector panel resizes to the script's PTY so vim, htop, and other full-screen tools re-layout correctly when you change the panel size.
  • #118 a25c2a8 Thanks @dohooo! - Add a one-click shortcut to open your running dev server from the Run panel:

    • While the Run script is active, a new "Open" button in the Run tab header auto-detects localhost URLs printed by frameworks like Vite and Next.js, showing Open:PORT for a single service or a hover picker when the script exposes multiple at once.
  • #136 469a53f Thanks @natllian! - Stable part IDs across the streaming pipeline — thinking blocks no longer auto-collapse at block boundaries:

    • Every message part (Text, Reasoning, Image, TodoList, etc.) now carries a stable id minted at first sight and preserved through streaming deltas, turn commit, DB persistence, and historical reload. React keys use this id instead of array position, eliminating remounts caused by pipeline reordering (collapse grouping, tool-call folding, message merging).
    • Message-level IDs are pre-assigned as DB UUIDs at turn start instead of using temporary stream-partial:N identifiers that flip to a different UUID on commit. The entire sync_persisted_ids / sync_result_id post-hoc reconciliation machinery is removed.
    • Collapsed read-only tool groups now default to expanded and stop their loading spinner as soon as the last tool returns a result, instead of spinning until the overall message stream ends.
    • Subagent status labels (Subagent started / completed) no longer line-break on narrow viewports.
  • #126 967ae3d Thanks @dohooo! - Unify inline tags across the composer and sent messages, and let you preview their contents on hover:

    • Every @-file, image, and pasted-text tag now renders with the same size, padding, and baseline alignment whether you are still typing or looking at a past message.
    • Hovering a file tag opens a popover with the file's contents — syntax-highlighted for code — and shows a clear notice for files that are too large or cannot be read.
    • Image tags in sent messages now open the preview directly in a hover popover, replacing the old click-to-open fullscreen overlay.

Patch Changes

  • #124 1aa8bfd Thanks @dohooo! - Fix a visual alignment issue in the Git Actions header:

    • The colored Actions button now sits flush with the PR number button next to it, fixing a small vertical offset.
  • #111 ed5f351 Thanks @natllian! - Make the file diff viewer follow the app theme:

    • Opening a file from the diff tree now renders the Monaco editor and its surrounding chrome in the app's light or dark theme, instead of always using the dark theme.
  • #144 cf769f0 Thanks @natllian! - Speed up and stabilize archiving workspaces in batches:

    • Archiving runs in parallel instead of serially, and worktree removal returns immediately by renaming the directory into a sibling trash folder that gets cleaned up in the background — archiving 8 workspaces at once now takes under a second instead of ~90 seconds.
    • The archived list no longer reorders itself while a batch of optimistic archives is settling into server data; items stay in click order until reconciliation is complete.
    • Archived workspace directories no longer get resurrected as empty node_modules/.bun stubs when a stale slash-command prewarm fires for a workspace that was just archived.
  • #117 9098a17 Thanks @dohooo! - Fix the Conductor-to-Helmor workspace migration by rewriting $CONDUCTOR_* environment variable references in helmor.json to their $HELMOR_* equivalents, so Cmd+R no longer fails with exit 127 on freshly migrated or partially-migrated workspaces.

  • #140 7a68ca6 Thanks @natllian! - Fix the default model setting being silently overwritten on app restart:

    • The startup model-validation hook no longer replaces a user-saved default model when the model catalog is still partially loaded or when the saved model belongs to a provider that hasn't responded yet.
  • #145 83e57da Thanks @natllian! - Fix the slash-command popup to stop showing a "Loading more commands…" banner that could linger indefinitely once commands were already visible.

  • #127 cdf3e17 Thanks @dohooo! - Fix the composer's slash-command and @-mention popup:

    • Hug the top edge of the input with an 8px gap instead of being clipped behind the composer's rim.
    • Stay above chat messages and code blocks instead of rendering underneath them.
    • Confirm the highlighted option when you press Enter — no more accidentally sending the message while you were picking a command or file.
  • #147 1b83649 Thanks @natllian! - Keep streamed thinking blocks expanded through completion and show a "Thought for Ns" label once reasoning finishes instead of falling back to a collapsed generic "Thinking" state.

  • #120 348fbba Thanks @natllian! - Restore visible reasoning content for Claude Opus 4.7:

    • Opus 4.7 shipped with a new SDK default that hid thinking text from both streaming and the finalized response, leaving the reasoning block empty and DB rows with no text. Helmor now opts back into summarized thinking so the progress is visible during the turn and the full text is persisted with the message.
  • #110 44944af Thanks @natllian! - Make "Open workspace in …" more useful across the board:

    • Expand supported editors, terminals, and Git GUIs to 30 apps (Cursor, VS Code, Windsurf, Zed, the JetBrains suite, Xcode, Android Studio, Sublime Text, MacVim, Neovide, GNU Emacs, iTerm2, Ghostty, Alacritty, WezTerm, Warp, Hyper, Tower, Sourcetree, GitKraken, and more), detect apps installed in non-standard locations via Spotlight, show real brand logos, and surface the button instantly on launch without waiting for detection.
  • #130 f9d9ca1 Thanks @natllian! - Replace date-based log rotation with a bounded single-file ring:

    • Both the Rust host and the sidecar now write to rust.jsonl / sidecar.jsonl with a .1 backup that is overwritten on rotation, capping each component's log footprint at ~20 MB instead of accumulating a week of daily files.
    • Removes the background cleanup thread and the tracing-appender / flate2 dependencies; no more gzip pass, no UTC/local date races.
  • #128 407d0c1 Thanks @dohooo! - Show a small status icon next to the Setup and Run tabs in the inspector so you can see each script's state — unconfigured, idle, currently running (animated Helmor logo), succeeded, or failed — without opening the tab.

  • #139 9e4d5e0 Thanks @natllian! - Fix sidebar flicker when switching workspace status:

    • Changing status (e.g. backlog → in progress) no longer causes a visible flash. The sidebar now waits for the backend to confirm the change before refreshing, instead of doing an optimistic update that gets immediately overwritten by a cache refetch.
  • #113 3e86bce Thanks @dohooo! - Show a chat-style unread dot on the top-right of the workspace avatar whenever a workspace has unread activity, not just when a session just finished.

  • #134 ac2abbb Thanks @dohooo! - Unify the permission-approval, deferred-tool approval, and MCP elicitation panels behind one consistent look:

    • Bash command approvals now render with syntax highlighting instead of a raw JSON dump.
    • Multi-step question and elicitation forms get tabs at the top, dimming unanswered steps and marking required fields with *.
    • Headers, buttons, inputs, and option rows across all three panels now share the same shadcn-style layout, spacing, and button set.
  • #114 cf53c37 Thanks @natllian! - Make the Default model setting the single source of truth:

    • The Settings panel now shows a real default instead of "Select model" on first launch, and new chats always use whatever is configured there.
  • #121 2ac2bf5 Thanks @dohooo! - Match the loading spinner next to batched tool groups (e.g. "Reading 2 files…") to the muted gray used for individual streaming tool calls, so every in-flight indicator in a chat message shares the same color.

  • #115 f87bfc5 Thanks @dohooo! - Show workspace titles in full in the sidebar:

    • Workspace rows no longer reserve space for the archive button, so long titles are now visible in full instead of being truncated early.
    • Archive, restore, and delete buttons appear on hover and overlay the right end of the row, with the underlying title fading out behind them.

0.1.6

Patch Changes

  • 13e31d6 Thanks @natllian! - Fix resuming a Claude conversation sometimes failing with "No conversation found".

0.1.5

Patch Changes

  • fdfbab4 Thanks @claude! - Fix the missing change-log link in the app update flow:
    • The "View change log" button now appears in the update-ready toast and in Settings → App Updates, opening the matching GitHub release page.

0.1.4

Patch Changes

  • dd53716 Thanks @claude! - - Fix the caret jumping to the start of the paragraph right after a Chinese IME buffer got stripped of its segmentation spaces — the caret now stays at the end of what you just typed.

0.1.3

Patch Changes

  • #94 0ec4401 Thanks @dohooo! - - Fix Chinese / Japanese / Korean IME pressing Enter to confirm a candidate accidentally sending the message.
    • Fix Chinese IME segmentation spaces leaking into the composer when switching input method mid-composition (e.g. typing helmor no longer becomes he lmor).

0.1.2

Patch Changes

  • #91 8567d35 Thanks @natllian! - - Fix the empty model list in signed/notarized macOS release builds.

0.1.1

Patch Changes

  • #89 e3fc20f Thanks @natllian!
    • Fix new workspaces occasionally creating a duplicate session on first open.
    • Stop reshuffling the sidebar optimistically when you change a session's status manually.

All notable changes to Helmor will be documented in this file.

0.1.0

Hello Helmor.