Skip to content

Releases: ness-dev/ness

Ness v2.16.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 21:00

Ness v2.16.0

Changes

  • chore: repoint repo URLs from frenchie4111/harness to ness-dev/ness (#279)
  • fix(chat): mid-turn messages unqueue and sit where claude read them (#272)
  • Add a context-window panel for both terminal and chat agents (#278)
  • Move the marketing site URL to getness.dev (#275)
  • site: deploy the marketing site to Vercel instead of GitHub Pages (#273)
  • site: bump the OG image cache-buster to ?v=ness
  • site: regenerate the OG images with the green Ness identity
  • site: make the OG templates buildable and use the unboxed mark

Installing

  • Apple Silicon: Ness-2.16.0-arm64.dmg
  • Intel: Ness-2.16.0.dmg

Drag Ness.app to Applications, then launch it. Existing installs will auto-update.

Ness v2.15.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 12:33

Ness v2.15.0

Changes

  • site: drop the trailing periods from announcement headlines
  • site: drop the stale sub-heading from the announcements index
  • site: use Mike's copy for the rename announcement
  • site: publish the rename announcement to the feed
  • site: add the Harness -> Ness rename announcement page
  • fix(brand): darken the brand ramp on light themes
  • fix(ui): stop the closed Quake terminal casting a shadow over the app
  • fix(brand): keep accent as the theme's secondary, not the Nessie colour
  • feat(settings): Nessie's colour — pick the app's primary colour
  • feat(brand): mark before the wordmark, pixel-fixed titlebar clearance
  • feat(brand): green Ness identity across app, site and icons
  • fix(chat): keep Ness chrome on pre-rename tool calls in old transcripts
  • fix(mcp): rename bridge error strings that surface to the agent
  • refactor(mcp): rename the remaining agent-visible harness identifiers
  • feat(settings): offer to convert a repo's legacy .harness.json to .ness.json
  • feat(repo-config): read .ness.json and .harness.json, create only .ness.json
  • refactor(mcp): rename the MCP server from harness-control to ness-control
  • fix(release): point CI artifact globs at Ness-* and rename agent-facing copy
  • docs: rename Harness to Ness in README, CONTRIBUTING, CLAUDE.md, and site
  • refactor(ui): rename user-facing product strings from Harness to Ness
  • fix(paths): keep package name "harness" so secrets keep decrypting
  • feat: rename product from Harness to Ness
  • fix(paths): pin packaged userData dir ahead of the product rename
  • fix(insight): scan raw source so list bodies stay inside the card

Installing

  • Apple Silicon: Ness-2.15.0-arm64.dmg
  • Intel: Ness-2.15.0.dmg

Drag Ness.app to Applications, then launch it. Existing installs will auto-update.

Harness v2.14.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 02:06

Harness v2.14.0

Changes

  • fix(browser): screenshot and inspect tabs that aren't on screen (#264)
  • Tag other worktrees from the @ menu in Chat tabs (#257)
  • Mark agent-authored kickoff prompts as automated turns (#262)
  • fix(cleanup): don't let opening a worktree reset its age (#260)
  • Persist per-repo sidebar collapse across reloads (#259)
  • Mobile: wake slept tabs so idle chats show their history (#258)
  • Renderer-side perf instrumentation: catch GC pauses and commit storms (#256)
  • Expose Claude Code's auto permission mode in Chat tabs (#255)
  • Render background (run_in_background) sub-agents correctly in Chat (#249)
  • fix(ssh): recover dropped tunnels instead of crashing or going quietly dead (#250)
  • Add a setting to open PRs in a Harness browser tab (#254)
  • Mobile: create worktrees, add tabs, bigger approval buttons (#251)
  • perf(chat): fix UI stutter from markdown re-rendering on tool calls (#253)
  • Don't flash a worktree red while the auto-approver is still deciding (#252)
  • Notify the agent chat when a PR's CI goes red (#234)
  • fix(git): stop background polling from contending with index.lock (#247)
  • perf: stop the profiler and duplicate git reads from causing the lag (#248)
  • Fork a Claude conversation into a new worktree (#237)
  • Fix light-theme code block contrast (#134) (#241)
  • Unify the desktop sidebar and mobile worktree picker onto one list (#235)
  • feat(chat): interrupt & send in the json-mode composer (#239)
  • fix(worktrees): stop dropping the kickoff prompt when pane init races
  • fix(sessions): track Claude session id across /clear so restart resumes the current one (#233)
  • fix(chat): make AskUserQuestion answerable instead of silently unanswered
  • feat(remote): offer an opt-in harness-server upgrade when an SSH remote is stale

Installing

  • Apple Silicon: Harness-2.14.0-arm64.dmg
  • Intel: Harness-2.14.0.dmg

Drag Harness.app to Applications, then launch it. Existing installs will auto-update.

Harness v2.13.2

Choose a tag to compare

@github-actions github-actions released this 10 Aug 12:38

Harness v2.13.2

Changes

  • fix(headless): don't require electron at load time (harness-server can't boot on v2.13.0/v2.13.1) (#229)
  • chore: write cache-key delimiter as \x00 instead of a raw NUL byte (#230)

Contributors

Huge thanks to @blindpirate for their contributions to this release.

Installing

  • Apple Silicon: Harness-2.13.2-arm64.dmg
  • Intel: Harness-2.13.2.dmg

Drag Harness.app to Applications, then launch it. Existing installs will auto-update.

Harness v2.13.1

Choose a tag to compare

@github-actions github-actions released this 10 Aug 04:56

Harness v2.13.1

Changes

  • feat(chat): /model slash command for switching models mid-session (#211)
  • Compare prunable fields in worktreeListsEqual so stale badges aren't deduped away
  • Preserve prior worktrees for a repo whose listWorktrees threw
  • Retry fs.watch attach on subsequent ensure() so an initial race isn't sticky
  • Halve the changed-files fallback poll from 60s to 30s
  • Always show Staged/Unstaged headers in Changed Files (not only when mixed)
  • Add real-fs integration test for linked-worktree changed-files invalidation
  • Merge BranchSyncWatcher into WorktreeWatcher (one gitdir handle, two consumers)
  • Re-sync worktree branch labels on HEAD change (fix stuck "rebasing N/M")
  • refactor(agents): move session-ID extraction into per-agent modules
  • feat(models): add Claude Opus 5 to known models and pricing table
  • fix(release): handle PR-check race + admin-bypass required review

Installing

  • Apple Silicon: Harness-2.13.1-arm64.dmg
  • Intel: Harness-2.13.1.dmg

Drag Harness.app to Applications, then launch it. Existing installs will auto-update.

Harness v2.13.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 03:18

Harness v2.13.0

Changes

  • feat(sidebar): auto-show PRs assigned to you in the Reviewing group (#197)
  • feat(worktree): add a worktree from a PR by number (#182) (#183)
  • chore(menu): move Performance Monitor from View to Help → Debug cluster
  • feat(sidebar): customizable bottom launcher strip with adaptive overflow (#220)
  • feat: Add per-commit right-click context menu with first item: copy commit SHA (#161)
  • fix: eagerly spawn PTY for agent-created shells (#203) (#206)
  • fix(desktop): route in-window link navigations to the OS browser (#221)
  • Make Command Center group collapse state persistent (#168)
  • feat(chat): add "Fork chat here" right-click action (#219)
  • Modify insight display to use collapsible callouts (#199)
  • fix(prompt): steer alias generation toward human-readable labels
  • chore(deps): bump bundled @anthropic-ai/claude-code to 2.1.221
  • fix(pr-poller): unblock stalled polls when one repo returns 504 (#215)
  • feat(agents): add Cursor Agent support (#207)
  • feat(debug): add GitHub API log viewer (#214)
  • chore(deps): bump bundled @anthropic-ai/claude-code to 2.1.220 (#213)
  • perf(worktree-delete): make bulk deletion feel instant (#216)
  • ui(sidebar): overhaul row layout — detail cluster on line 2 (#204) (#205)
  • Portal-style fixed positioning for prevent-sleep popover
  • Turn prevent-sleep icon into a popover listing all options
  • Preview the next mode in the prevent-sleep tooltip
  • Move prevent-sleep icon into sidebar footer and always show it
  • feat(power): prevent system sleep while agents run, with modes + hotkey + status icon
  • feat(json-mode): Add option to disable auto-scroll
  • Strip issue references and over-explanatory comments from the fix
  • fix(#195): stop MCP bridge scripts from filling disk via logErr recursion
  • feat(find): unify chat and terminal find UI
  • feat(chat): Implement Cmd+F find in chat
  • fix: sanitize shell tab id + harden hook mkdir so path separators don't ENOENT (#198)
  • feat(chat): hotkeys for approve/deny tool-use requests
  • fix(json-claude): restore auth-failure card when error lives in result/message
  • fix(layout): drop traffic-light clearance in macOS fullscreen
  • feat(layout): pin "Harness" header above the worktrees sidebar
  • feat(aliases): accept optional alias in create_worktree MCP tool
  • refactor(aliases): address code review feedback
  • revert: restore global tooltip delayDuration to 0
  • fix(aliases): register aliasWorktree in ACTION_CATEGORIES
  • feat(aliases): expose set_worktree_alias + clear_worktree_alias MCP tools
  • feat: Add worktree aliases for custom display names
  • docs: add Slack community invite to README (#202)
  • fix: parse branch commits by record separator to avoid undefined rows (#163)

Contributors

Huge thanks to @blindpirate, @ghale, @ljacomet, and @tresat for their contributions to this release.

Installing

  • Apple Silicon: Harness-2.13.0-arm64.dmg
  • Intel: Harness-2.13.0.dmg

Drag Harness.app to Applications, then launch it. Existing installs will auto-update.

Harness v2.12.1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 22:08
81f375e

Harness v2.12.1

Changes

  • fix(deps): pin react-icons to exact 5.6.0 (#192)
  • release script: fix bash 3.2 parse error in PR body heredoc (#191)

Installing

  • Apple Silicon: Harness-2.12.1-arm64.dmg
  • Intel: Harness-2.12.1.dmg

Drag Harness.app to Applications, then launch it. Existing installs will auto-update.

Harness v2.12.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 21:49
7d9bfb4

Harness v2.12.0

Changes

  • feat(terminal): ⌥-drag forces local selection so ⌘C copies (#178)
  • release script: PR-based flow for protected main (#158)
  • feat(models): Claude Fable 5 + Opus 4.8, fix Opus 4.5+ pricing (3x over-report) (#188)
  • fix(review): stop review hotkeys swallowing r/j/k/[/] typed into Monaco (#189)
  • New worktree: default to active repo, keycap-chip hotkeys, reliable focus on create (#156)
  • site: add remote backends announcement post (#187)
  • Recover from a corrupt config.json instead of silently resetting (#151)
  • feat: refresh file tabs and review diffs when files change on disk (#159)
  • feat(chat): color swatches next to hex literals (#165)
  • feat(chat): brand icons + pretty arg rendering for tool cards (#170)
  • fix(transport): apply reconnect snapshot before notifying reconnect subscribers (#175)
  • fix(#185): crash-safety for spawn ENOENT + prunable-worktree handling (#186)
  • urgent - fix(mcp): anchor dev-mode script path on app.getAppPath() (#169)

Contributors

Huge thanks to @big-guy, @blindpirate, and @bz-canva for their contributions to this release.

Installing

  • Apple Silicon: Harness-2.12.0-arm64.dmg
  • Intel: Harness-2.12.0.dmg

Drag Harness.app to Applications, then launch it. Existing installs will auto-update.

Harness v2.11.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 17:46
018fef5

Harness v2.11.0

Changes

  • Shortcuts, tooltips & menu fixes (#138)
  • Increase the horizontal width of the path selector to span the full edit area (#150)
  • feat(tabs): confirm before closing a still-running tab (#148)
  • feat(terminal): more clickable links — file paths, commit SHAs, vnc:// (#139)
  • feat(terminal): Quake-style drop-down terminal overlay (#129)
  • feat: VSCode-style "Connect to remote host" SSH bootstrap (#107)
  • feat(file-search): File search now prefers changed/new files and shows git status of file in search window (#146)
  • Only allow renaming session and browser tabs (#133)
  • Chrome-style "Hold ⌘Q to Quit" with a "Warn Before Quitting" setting (#130)
  • Use an alarm clock icon for wakeup to distinguish it from snooze (#145)
  • ui(scale): fix Monaco font scaling, lockstep cleanup, + resize toast (#131)
  • Merge pull request #132 from big-guy/fix-terminal-url-double-open
  • test(terminal): cover isMouseButtonReport SGR parsing
  • fix(terminal): stop mouse-aware apps from double-opening clicked links
  • Merge pull request #126 from big-guy/fix-titlebar-drag-and-layout
  • fix(titlebar): let tab clicks win over the right column's top drag strip
  • feat(titlebar): draggable title bar, always-visible title, and sidebar cap
  • Merge pull request #144 from big-guy/fix-hooks-boot-replay
  • test(hooks): cover the boot-replay first-touch guard
  • fix(hooks): don't replay entire NDJSON history on boot
  • Merge pull request #127 from frenchie4111/feat/pr-review-flow-improvements
  • feat(new-worktree): PR picker selects-then-creates, like the other modes
  • feat(new-worktree): richer PR rows + "Needs my review" filter
  • feat(pr-panel): Approve button when viewer is a requested reviewer (closes #106)
  • fix(pr-poller): retain merged PR status so worktrees move to "Merged" not "Active"
  • Merge pull request #128 from big-guy/fix-dev-restart-eio
  • fix(dev): swallow benign EIO/EPIPE pipe writes on dev restart
  • Merge pull request #113 from tresat/tt/select-existing-branch
  • Merge branch 'main' into tt/select-existing-branch
  • Require a branch name when creating a worktree via "Any Git Ref"
  • Merge pull request #115 from tresat/tt/improved-markdown-viewer
  • Timeout Playwright browser probe to prevent CI stalls
  • feat: word-wrap toggle in diff viewers
  • feat: Add 'Any Git Ref' tab to allow arbitrary worktree creation
  • fix: use icon-xs utility for wrap toggle so it scales with uiScale
  • feat: word-wrap toggle in file viewer
  • Use tabs to toggle between new and existing branch
  • Disable branch selection until repository selected
  • Enable worktree creation from existing branches
  • Merge pull request #119 from big-guy/review-tab
  • Merge branch 'main' into review-tab
  • Merge pull request #122 from frenchie4111/ci/enable-merge-group-trigger
  • Merge branch 'main' into ci/enable-merge-group-trigger
  • ui(right-column): collapsed-strip icons expand matching section + style polish
  • feat(review): file-browser-style file tree, resizable, with filter
  • feat(review): convert review overlay into a tab with in-toolbar commit selector
  • Merge pull request #121 from big-guy/performance
  • Merge branch 'main' into performance
  • fix(headless): resolve bundled MCP scripts under tarball layout (#110)
  • perf(boot): tighten panes:wakeTab dispatch + log drainBootInit rejections
  • Merge pull request #118 from big-guy/tab-behavior-plus-sidebars-next
  • Merge branch 'main' into tab-behavior-plus-sidebars-next
  • feat(site): mobile hamburger nav for all pages (#112)
  • ci: trigger CI on merge_group events for merge queue support
  • perf(boot): cut startup freeze via lazy shell tabs + parallel SHA + staggered pane init
  • fix(panes): focus active pane on click + swap split/perf hotkeys
  • Merge pull request #71 from big-guy/worktree-sidebar-detail-setting
  • Merge branch 'main' into worktree-sidebar-detail-setting
  • Merge pull request #111 from big-guy/tab-behavior-plus-sidebars
  • ui(sidebars): match vertical padding to horizontal on header rows
  • icons(collapsed-right): migrate size={N} props to icon-* classes
  • feat(collapsed-right): Scratchpad quick-open button
  • ui(sidebar): move "Add repository" to the bottom toolbar
  • ui(right-column): rename "TOOL PANES" header to "TOOLS"
  • ui(pr): shorten merge-method labels to "Squash" and "Rebase"
  • fix(sidebars): restore resizability after mt-10 wrapper change
  • feat(collapsed-strips): PR/file/commit/group quick actions
  • ui(CollapsedSidebar): divider under the worktree-actions group
  • ui(sidebar): use lucide MessageSquareHeart for Report-an-issue button
  • feat(sidebars): collapsible left + right sidebars with full-width top bar
  • include 'none' in Cmd+I worktree-detail cycle
  • add configurable sidebar detail for worktree rows
  • Merge pull request #91 from big-guy/ui-resize
  • Settings: re-anchor to active subsection on uiScale change
  • Settings: move UI size between Custom themes and Terminal font
  • sidebar: pixel-lock the title so it clears traffic lights at every rung
  • icons: migrate new upstream size={N} props to icon-* aliases
  • checkboxes: scale with uiScale via icon-base
  • menu: View → Increase / Decrease / Reset UI Size
  • uiScale: add x-small (14px) rung below small
  • uiScale: drop the never-released compact/normal/roomy migration
  • icons: add icon-* semantic aliases, migrate callsites
  • Settings: move UI size above the theme picker
  • XTerminal: track uiScale offset so terminals stay in proportion
  • hotkeys: Cmd+= / Cmd+- step the UI scale
  • Settings: UI size slider in Appearance with draft + scoped preview
  • uiScale: settings slice + IPC + root font-size effect
  • icons: move from size={N} prop to Tailwind w-N h-N classes
  • CLAUDE.md: document canonical text + icon sizes
  • text scale: consolidate to canonical text-xs/sm/base/lg/2xl/3xl
  • Merge pull request #93 from big-guy/tab-behavior
  • Merge branch 'main' into tab-behavior
  • Merge pull request #99 from frenchie4111/feat/scratchpad-panel
  • Merge branch 'main' into feat/scratchpad-panel
  • feat(scratchpad): treat non-empty notes as worktree dirty
  • style(tabs): use border-strong for toolbar/tabs divider
  • feat(json-mode): rewind-to-here context menu (#104)
  • Settings UX: search, subsections, grouped hotkeys (#94)
  • ci: move macOS sign+notarize off the laptop into release.yml (#96)
  • fix(panes-fsm): mint UUID when splitting a json-claude pane (#98)
  • feat(right-panel): add per-worktree Scratchpad section (default hidden)
  • fix(site): add full-bleed apple-touch-icon for iOS Home Screen (#97)
  • feat(themes): add Cyberfunk built-in theme (#92)
  • docs(claude): document the Harness PR-review push flow
  • feat(hotkeys): Cmd+L renames the active tab
  • fix(terminals): rename tab via click-detail; skip self-rename on commit
  • feat(tabs): render tabs alongside toolbar in one row
  • feat(menu): move split-pane actions to Window menu
  • feat(terminals): inline tab rename + context-menu entry
  • move Open-in-editor button into the All Files header
  • feat(terminals): add customLabel + renameTab IPC
  • close tab: route Cmd+W through the File menu
  • tab strip: chevron buttons appear when tabs overflow

Contributors

Huge thanks to @big-guy and @tresat for their contributions to this release.

Installing

  • Apple Silicon: Harness-2.11.0-arm64.dmg
  • Intel: Harness-2.11.0.dmg

Drag Harness.app to Applications, then launch it. Existing installs will auto-update.

Harness v2.10.0

Choose a tag to compare

@frenchie4111 frenchie4111 released this 25 May 21:47

Harness v2.10.0

Changes

  • Release v2.10.0
  • fix(json-chat): restore Chat-mode auto-scroll on streaming + send (#89)
  • fix(announcements): point og:image at regenerated chat-mode og-image.png (#88)
  • feat(site): regenerate og-image with Chat mode screenshot (#87)
  • feat(announcements): pass summary through validator and show under title in banner (#86)
  • fix(json-chat): suppress empty-state flash while entries are loading (#84)
  • feat(site): announcements page + Introducing Chat mode post (#85)
  • feat(json-chat): add 'send on Enter' setting; show active send hotkey on Send button + placeholder (#83)
  • Rename JSON mode → Chat, promote it as a first-class Claude interface (#82)
  • feat(announcements): remote-fetched announcements banner (#78)
  • fix(sidebar): clip dev branch name in title bar so long names don't overflow sidebar edge (#81)
  • fix(snapshot): per-slice merge + WireSnapshotState type at the wire boundary (#77)
  • fix(remote-backend): drop failed remote from registry so saved-active falls back to local (#80)
  • chore(site): seed announcements.json with welcome banner (#79)
  • fix(remote-backend): refresh clientId + re-join terminals on WS reconnect (#75)
  • feat(json-mode): unify composer into a single card (#76)
  • docs: authorize agents to comment on GitHub with a standard signature
  • MCP create_worktree: parity with the human New Worktree flow (PRs, prompts, agent, model) (#64)
  • ci: headless server smoke test on every PR (#70)
  • feat: diagnostic logging + recovery banner on Monaco worker construction failure (#42)
  • fix(pr-poller): detect cross-fork PRs via SHA search (#68)
  • feat: show git branch in sidebar title in dev builds (#67)
  • ci: run typecheck + build + tests on every PR (#66)
  • fix: re-apply xterm theme when app theme changes (#62)
  • Show in-progress git op in detached worktree label (#63)
  • fix: headless tarball ships @anthropic-ai/claude-code- with npm layout so json-mode spawn works (#65)
  • Terminal: clickable URLs, OSC 9;4 progress, Cmd+F search (#58)
  • Copy as JSON button on built-in theme rows (#55)
  • Rearrange some information about a PR in the right pane (#34)
  • feat: debug.log is append-only across sessions, rotated at 10MB (#59)
  • fix: wake slept json-mode tab on typing and prevent immediate re-sleep (#52)
  • Add reveal-in-Finder button to All Files panel (#51)
  • add GitHub API diagnostics — debug.log line per call + HUD rate metric (#54)
  • add CONTRIBUTING.md and reorganize the readme a little bit
  • Light/dark/system theme mode + custom themes from disk (#47)
  • Improve gh integration (#46)
  • feat(release): auto-credit external contributors in release notes
  • docs: clarify v2.9.0/v2.9.1 did not publish, credit contributors

Contributors

Huge thanks to @big-guy, @ljacomet, and @pgodschalk for their contributions to this release.

Installing

  • Apple Silicon: Harness-2.10.0-arm64.dmg
  • Intel: Harness-2.10.0.dmg

Drag Harness.app to Applications, then launch it. Existing installs will auto-update.