-
#309
8a88fdbThanks @natllian! - Add DeepSeek as a built-in Claude Code custom provider with DeepSeek V4 Pro 1M and DeepSeek V4 Flash model options. -
#312
ee123bdThanks @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.
-
#299
7025e5aThanks @natllian! - Fix the Intel macOS build shipping arm64 vendor binaries —gh auth login,glab,codex, andbunnow match the bundle architecture instead of failing with "bad CPU type in executable". -
#295
4029ca5Thanks @dohooo! - Adjust the macOS app icon spacing so Helmor appears at a normal size in Finder, Dock, and Launchpad. -
#300
36b2fcfThanks @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.
-
#288
0b97558Thanks @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
1fb7c6aThanks @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.
- #284
8e5b731Thanks @natllian! - Restore the Conductor migration path during onboarding and keep its import screen matched to the current app theme.
- #282
9f2a514Thanks @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.
-
#279
d1f68d5Thanks @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
56a308cThanks @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
Unauthenticatedin 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.
ghnot 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
Escshortcut next to the X. - Fall back to
logo.svg/public/logo.svgwhen picking a workspace repo icon.
5f57067Thanks @natllian! - Fix a regression on macOS 26 (Tahoe) where scrollbar backgrounds stayed permanently visible in the workspace sidebar, conversation thread, and inspector panels.
-
378b521Thanks @natllian! - Add a Terminal tab to each workspace's inspector for running interactive shells -
#274
bb5432dThanks @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.
-
#269
f3643b8Thanks @natllian! - Fix the experimental Install CLI action on macOS so it pops the standard administrator authorization prompt (password or Touch ID) when/usr/local/binneeds root, instead of silently failing with a permission-denied error. -
#273
b50af02Thanks @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 HEADinstead ofgit push -u <remote> HEAD) so the agent gets a concrete command instead of a placeholder.
-
#270
7d70131Thanks @natllian! - Collapse all tool calls in the chat thread by default. -
#271
2709b07Thanks @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.
-
#264
07c8ce9Thanks @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 --helppreview — 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
24be4a4Thanks @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)
- Reopen closed session —
-
#262
dad03a8Thanks @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
2c05f79Thanks @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.
-
#257
33c056bThanks @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
ddeb6e4Thanks @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
1d22cbbThanks @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
75993c2Thanks @natllian! - Make switching into large sessions snappier and reduce database contention during heavy streaming. -
#254
7a229a8Thanks @natllian! - Make in-app updates land faster and feel more transparent -
#253
a804bb2Thanks @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).
-
#248
3ecf923Thanks @natllian! - Streamline GitHub and GitLab onboarding so users no longer have to install the forge CLIs themselves:- Ship
ghandglabbundled 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.
- Ship
-
#249
8253908Thanks @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.
-
#247
fb6710bThanks @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
7a7d6c4Thanks @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.
-
#242
04c6bb2Thanks @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
0a458afThanks @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.
- #239
7522fc5Thanks @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.
-
#235
0bca4a5Thanks @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
f5c5643Thanks @gxxgcn! - Surface downloaded app updates as a sidebar/header button so users can install them directly from the app. -
#213
a388af8Thanks @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
e43bddeThanks @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.
-
#208
043d5eeThanks @gxxgcn! - Keep the GitHub identity gate drag region above surrounding content so the window title bar stays draggable. -
#209
0f5b56dThanks @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
a01f0d9Thanks @gxxgcn! - Fail workspace archive cleanly when the source repository is missing, instead of leaving the archive flow half-finished. -
#230
52a07ceThanks @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
b63e1abThanks @natllian! - Make Create PR and conflict-resolution agent actions use the workspace target branch explicitly instead of relying on repository default branch assumptions.
-
#220
46b35abThanks @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
1e2c19cThanks @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
978f979Thanks @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
dedc9caThanks @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
af04884Thanks @natllian! - Add Codex context compaction support so Codex chats can run/compactfrom the composer and show a context-compacted notice when the provider finishes. -
#221
7fea750Thanks @natllian! - Hide duplicate Claude local command completion notices so finished shell tasks no longer appear as top-level subagent messages. -
#226
20a922eThanks @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
cfa0ee5Thanks @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.
- Retry the slash-command popup once when the Claude SDK tears down its query mid-request, so the
-
#225
090c1a0Thanks @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.
-
#215
561b4deThanks @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
d49f63aThanks @natllian! - Fix Claude's AskUserQuestion so the answer you pick in the UI actually reaches the assistant when you submit. -
#211
92193b5Thanks @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
cebac7bThanks @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
06e3cddThanks @natllian! - Remove the unused workspace.contextscaffold and stop preserving it during archive, restore, and import flows. -
#217
3f8d37dThanks @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.
- #203
4b9cf2eThanks @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.
-
#190
ba14555Thanks @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
1f0e5e7Thanks @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
4bb9fd6Thanks @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.
-
#194
cfe8f67Thanks @natllian! - Drop unused database tables and columns. -
#195
25cfefcThanks @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
9e41cd7Thanks @natllian! - Keep queued follow-up prompts overlaying the composer instead of shrinking the thread, and show a proper icon for streamed Skill entries. -
#196
34ce8a4Thanks @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
6e77a94Thanks @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
0ce21bbThanks @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
e5abd9cThanks @dohooo! - Stop the workspace sidebar and command palette from showing a stray scrollbar in production builds. -
#199
0d0050bThanks @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
c582325Thanks @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
12f3749Thanks @natllian! - Add a hover-only copy button for user chat bubbles and remove the copy button fade animation so message actions appear immediately.
- #173
dc620cdThanks @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
helmorin release builds orhelmor-devin 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.
- #180
b4882cdThanks @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.
-
#176
8536c7bThanks @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
b7d2de2Thanks @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
48bc8b1Thanks @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.
- #163
623c66bThanks @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.
-
#172
7120573Thanks @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
e8969e1Thanks @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
bcf68c2Thanks @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
c8bcd61Thanks @natllian! - Make Claude's/add-dirbehavior 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
2b5bd0aThanks @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
4ef8640Thanks @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.
- #159
fd8f6cbThanks @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.
-
#157
e46889eThanks @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
adc9c1aThanks @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.
-
#152
405c634Thanks @natllian! - Fix the sidebar workspace row so the green status dot on the avatar no longer gets clipped when you hover the row. -
#153
b05d39fThanks @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.
-
#150
c1116d9Thanks @natllian! - Add/add-dirto 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-dirinserts 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.writableRootsso edits outside cwd aren't rejected.
- Picker: selecting
-
#148
1e0d07bThanks @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
d8ed77bThanks @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
fcad25dThanks @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
a25c2a8Thanks @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:PORTfor a single service or a hover picker when the script exposes multiple at once.
- 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
-
#136
469a53fThanks @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
idminted 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:Nidentifiers that flip to a different UUID on commit. The entiresync_persisted_ids/sync_result_idpost-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.
- Every message part (Text, Reasoning, Image, TodoList, etc.) now carries a stable
-
#126
967ae3dThanks @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.
-
#124
1aa8bfdThanks @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
ed5f351Thanks @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
cf769f0Thanks @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/.bunstubs when a stale slash-command prewarm fires for a workspace that was just archived.
-
#117
9098a17Thanks @dohooo! - Fix the Conductor-to-Helmor workspace migration by rewriting$CONDUCTOR_*environment variable references inhelmor.jsonto their$HELMOR_*equivalents, so Cmd+R no longer fails withexit 127on freshly migrated or partially-migrated workspaces. -
#140
7a68ca6Thanks @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
83e57daThanks @natllian! - Fix the slash-command popup to stop showing a "Loading more commands…" banner that could linger indefinitely once commands were already visible. -
#127
cdf3e17Thanks @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
1b83649Thanks @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
348fbbaThanks @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
44944afThanks @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
f9d9ca1Thanks @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.jsonlwith a.1backup 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/flate2dependencies; no more gzip pass, no UTC/local date races.
- Both the Rust host and the sidecar now write to
-
#128
407d0c1Thanks @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
9e4d5e0Thanks @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
3e86bceThanks @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
ac2abbbThanks @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
cf53c37Thanks @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
2ac2bf5Thanks @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
f87bfc5Thanks @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.
13e31d6Thanks @natllian! - Fix resuming a Claude conversation sometimes failing with "No conversation found".
fdfbab4Thanks @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.
dd53716Thanks @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.
- #94
0ec4401Thanks @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
helmorno longer becomeshe lmor).
- Fix Chinese IME segmentation spaces leaking into the composer when switching input method mid-composition (e.g. typing
- #91
8567d35Thanks @natllian! - - Fix the empty model list in signed/notarized macOS release builds.
- #89
e3fc20fThanks @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.
Hello Helmor.