GUI-only release. macOS 14.2+ universal signed/notarized DMG; x86_64 and ARM64 Linux .deb, .rpm, Arch packages and tarballs (glibc 2.39+); Authenticode-signed Windows x86_64 and ARM64 installers and zips; installed copies update in the app. Requires an existing Herdr daemon. Source: 72b49b1.
[v20261108.1] - 2026-11-08
Added
- [orchestrator] Show each pull request's status and check count in the list
- [chat] Add an OpenCode layout
- [chat] Pin your prompt over the conversation once it scrolls away
- [chat] Choose the chat layout from View > Agent Layout
- [orchestrator] List Azure DevOps pull requests and work items
- [chat] Show what each composer setting sets with an icon and tooltip
- [chat] Name Claude's default model, effort, and mode by what they do
- [ios] Flag computers needing a newer Sheprd and update them from the phone
- [ios] Rename a workspace by tapping its title
- [orchestrator] Show issue and PR authors beside an open item
- [remote-control] Keep a computer's tags on its own daemon
- [ios] Tag computers and filter them by tag
- [sidebar] Group devices by tag, synced with phones
- [sidebar] Mute a device's notifications from its menu
- [cli] Add host and worktree mute commands, and mute Local from its menu
- [cloud] Add boxd machines as cloud devices
- [orchestrator] Let a prompt profile replace the built-in review prompt
- [tabs] Show the agent's terminal title on unnamed tabs
- [ios] Add Enter to the terminal's key rows and let people arrange them
- [ios] Let a terminal key press any ctrl, alt, or shift combination
- [orchestrator] List Beads tasks across projects and start agents on them
- [ios] Mark chats with an unsent draft
- [chat] Move a terminal agent into a chat from its tab's menu
- [remote-control] Group workspaces by Herdr session on the phone
- [ios] Show merged worktrees in purple on chat rows
- [remote] Choose how much Live Activities say, on the computer and the phone
- [relay] Add the push relay service for the iOS app
- [remote] Show questions and answer buttons on the lock screen by default
- [remote] Count finished and blocked agents on the app badge
- [relay] Run from memory, with SQLite and Postgres as options
- [remote] Recover from relay restarts without anyone doing anything
- [devices] Label the session chip in the device picker
- [keymap] Unbind a command's keystroke or prefix chord separately
- [chat] Show tool calls as readable source and red and green diffs
- [sidebar] Show pull request numbers in the minimal layout
- [herdr-2] Open terminal tabs when Herdr 1 is not installed
- [ios] Control the app by talking to it
- [ios] Follow up, fan out, and reach terminal agents by voice
- [sidebar] Mark coordinator sessions and filter agents by their group
- [site] Link the Sheprd Discord from the website and readme
- [orchestrator] Show merged and abandoned Azure DevOps PRs, and Mine
- [orchestrator] Read Azure DevOps projects and your pull requests remotely
- [orchestrator] Browse Azure DevOps projects and all your pull requests
- [orchestrator] Narrow the list by project from one menu, not pills
- [orchestrator] Show each pull request's state and review in a column
- [orchestrator] Pick Azure DevOps projects, not workers, in the menu
- [ports] Add the Ports panel and local port requests to the control protocol
- [ports] List every port this computer listens on in a Ports panel
- [ports] Name each port's app or script, with project, CPU, and memory
- [ports] Count your servers on the Ports icon
- [ios] Move a terminal agent into a chat from the phone
- [chat] Show sub-agents, shells, and monitors in the rail, and stop them
- [ios] See a workspace's changes and its pull request checks
- [chat] Color headings, emphasis, links, and inline code from the theme
- [chat] Show when an agent waits on you and how its last turn ended
- [site] Publish the user docs at sheprd.org/docs
- [orchestrator] Read Azure DevOps with tokens saved per organization
- [accounts] Connect Azure DevOps from the account menu
- [accounts] Reach every Azure DevOps page control from the keyboard
- [chat] Show live tool progress from Codex, pi, and Claude Code
- [chat] Show a loading view while an existing CLI session attaches
- [overview] Answer, reply to, and clear agents without switching to each one
- [devices] Count Herdr 2 agents in the devices overview
- [herdr-2] Run Herdr 2 terminals on SSH hosts, cloud machines, and WSL
Changed
- [overview] Stop rebuilding every row on each window tick
- Upgrade to GPUI 0.3.10 and Rust 1.99
- [remote] Keep device tokens, handles, and sessions in secrecy types
- [orchestrator] Keep pull request cells in their own module
- [chat] Share moving a terminal agent into a chat beyond the app
- [chat] Draw visible formulas and code first, one worker budget per window
- [orchestrator] Ask a view about any provider's sign-in
Fixed
- [theme] Keep saturated colors from turning white on dark themes
- [chat] Keep a false attachment count from stalling the pinned prompt
- [chat] Stop a quick second layout choice from flipping back
- [chat] Keep pages from showing through the pinned prompt
- [chat] Show a layout chosen in one window in every other window
- [chat] Let a Settings layout draft outlive a View menu choice
- [orchestrator] Show Azure DevOps failures in the app's language
- [orchestrator] List each Azure DevOps work item once per project
- [orchestrator] Replace a capped Azure DevOps listing's work items too
- [orchestrator] Keep paragraphs and links in Azure DevOps work items
- [orchestrator] Let az login replace a refused Azure DevOps token
- [orchestrator] Read Azure DevOps descriptions in linear time
- [orchestrator] Keep image placeholders in Azure DevOps work items
- [orchestrator] Keep Azure DevOps links whose attributes quote a bracket
- [orchestrator] Keep the status and checks columns whole at larger text sizes
- [ios] Keep phone update requests to the app run they were made to
- [ios] Stop a phone's update when it is cancelled at the computer
- [ios] Keep CPU and memory labels on one line in the Workspaces list
- [ios] Move to another address when a computer stops answering
- [ios] Keep a recovered connection when older calls fail late
- [acp] Show Claude's tasks and OpenCode and Copilot to-dos as the plan
- [acp] Keep a tool call's card unless it really is a to-do tool
- [acp] Read Claude's task list when results share a message
- Keep tag edits from being lost during sync
- Keep a stale tag offer from overwriting a newer edit
- [remote-control] Count tags saved while the daemon started
- [remote-control] Show phones every Herdr 1 session on the computer
- [remote-control] Keep a daemon on a chosen socket to that session
- [sidebar] Forget a removed device's mute even if its window closed
- [cloud] Let exec relays read their provider's settings
- [cloud] Run the boxd relay under the app's config folder
- [cloud] Fail a boxd command whose reply ends without a status
- [cloud] Show boxd settings errors in the chosen language
- [orchestrator] Withhold unsafe ref names from review profiles
- [remote] Show Grok's and Cursor's logos on the phone and in the web app
- [cloud] Run exec relays under the app's config folder
- [ios] Keep a terminal key that presses Enter with modifiers from repeating
- [orchestrator] Keep a task's runs when its Beads source moves
- [orchestrator] Settle Beads sources only after discovery confirms them
- [remote] Create worktrees from a phone on Herdr 2
- [remote] Log why a request failed
- [ios] Show what a computer said instead of its raw JSON
- [ios] Report why a computer went offline to its log
- [ios] Make the draft mark a filled circle
- [remote] Remove a new worktree when its chat cannot start
- [ios] Read a refusal whole before shortening it
- [ios] Report addresses when a live connection drops
- [ios] Keep the draft mark of an open chat when clearing the cache
- [remote] Keep a worktree whose chat may have started
- [ios] Show nearby pairing refusals as plain messages
- [linux] Identify windows as org.sheprd.Sheprd
- [ios] Open a repository's new worktree in its checkout's session
- [ios] Keep a draft when another window on its chat closes
- [ios] Clear a draft kept across the camera
- [vcs] Keep code search change counts when a renamed path is not UTF-8
- [remote] Keep badge pushes from using up the alert allowance
- [ios] End activities already showing when Keep Generic turns on
- [ios] End chat-naming activities at once and any started after Keep Generic
- [ios] Treat an untitled activity showing a workspace as naming its chat
- [relay] Require TLS to Postgres and bound what one device can revoke
- [remote] Count an agent that finished again before anyone noticed it working
- [remote] Refresh the web badge when a phone sees a finished agent
- [ios] End an activity by id so the app builds under strict concurrency
- [ios] End activities off the main actor so the app builds
- [orchestrator] Name a task's own project and keep its page header readable
- [devices] Keep the device picker's multi-select hint on one line
- [vcs] Keep a focused checkout dirty when a change has no line counts
- [vcs] Read porcelain status as bytes so a non-UTF-8 path can still commit
- [keymap] Keep a saved chord another device's prefix can reach
- [chat] Count a patch's file once in tool cards and the changed files rail
- [chat] Free a tool card's highlighting when it folds
- [chat] Keep a moved file's directory in apply_patch counts
- [review] Open files in the editor reliably and return to the diff on quit
- [review] Return to the review when the editor was its tab's last pane
- [review] Keep the review from taking focus after you left the editor's tab
- [review] Return to the review when a reused Neovim was its tab's last pane
- [remote-control] Show desktop space changes on phones right away
- [remote-control] Keep Sheprd's tabs on phones beside a desktop document
- [remote-control] Keep a saved pane another machine's space also names
- [ios] Keep spoken commands from reaching the wrong target
- [ios] Never type into a shell, and run only what was confirmed
- [automations] Offer the daemon update on this computer
- [automations] Refuse a daemon update while runs are going
- [sidebar] Offer only coordinator groups a session really joins
- [terminal] Open file paths containing wide characters on Cmd+click
- [terminal] Keep real spaces after one-column emoji in links and copied text
- [windows] Show browser pages instead of an empty tab
- [windows] Keep notices above browser pages
- Preserve Shift-Enter for Pi and other kitty-aware programs
- Keep session crate events in the app log
- [orchestrator] Match Azure DevOps Mine by identity, not display name
- [orchestrator] Count kept Azure DevOps organizations toward their cap
- [orchestrator] Keep the Projects menu inside short windows
- [orchestrator] Say why an organization's projects could not be read
- [logging] Log the session crate's events
- [orchestrator] Keep the pull request search usable in narrow windows
- [orchestrator] Recover Azure DevOps sign-in and reach every repository
- [ports] See a paused or exited process on macOS before signalling
- [ports] Show the Ports section's failures in the app's language
- [ports] Check a stopping process is still the same before SIGCONT
- [ports] Give ports stop|pause|resume the wait a fresh scan needs
- [ports] Answer commands from a fresh scan and show errors localized
- [ports] Keep Unix-only scan items out of the Windows build
- [ports] List ports in the panel help and every ports command in --help
- [ports] Show the right workspace and recover from failed scans
- [logs] Record the session crate's events in the app log
- [ports] Keep a paused process's name in a narrow window
- [ports] Signal the checked process and stop a batch together
- [macos] Let dictation tools such as Typeless type into the focused terminal
- [macos] Stop offering dictation to a terminal that failed
- [diagnostics] Keep events from the session crate in the log
- [i18n] Read a Herdr 2 terminal's label in the app's language
- [ios] Refuse a replaced agent and open its chat in the terminal's place
- [log] Keep the session crate's events in the app log
- [chat] Keep sub-agent steps in place and report refused Codex stops
- [review] Keep the first file's status when Git warns about line endings
- [remote] Refuse a check log too long to reach its end
- [ios] Fence a check's name and show checks as a pull request opens
- [logs] Keep the session crate's events in the log
- [ios] Keep a slow refresh from replacing the files of another comparison
- [remote] Limit how many phone questions about changes Sheprd answers at once
- [diagnostics] Keep the session crate's events in the app's log
- [diagnostics] Log events from the session crate
- [ios] Sign TestFlight archives with one stored certificate
- [site] Search all of each docs section and keep focus in the search dialog
- [site] Retry loading docs search after a failed load
- [orchestrator] Keep saved Azure DevOps tokens within the store's size
- [accounts] Show a capped Azure DevOps project count as a lower bound
- [orchestrator] Read saved tokens from the store a changed setting names
- [logs] Keep session crate events in the app's log
- [orchestrator] Let an Azure CLI sign-in replace an expired saved token
- [accounts] Keep the Azure DevOps page's keyboard selection in view
- [accounts] Reach the Azure DevOps tab from every account page's keyboard
- [chat] Keep pi diffs and reused Codex command ids in live progress
- [chat] Keep a pi command's output when its input fills the card
- [chat] Show a pi tool's whole final output after live updates
- [acp] Omit incomplete edits instead of showing false diffs
- [chat] Stop guessing change counts for edits too large to compare
- [chat] Name session, agent, and plan tools in existing chats
- [chat] Show Enter sent to a command as input, not a poll
- [chat] Keep edits too large to compare in the changed files list
- [chat] Keep edits too large to send in the changed files list
- [chat] List changed files by the exact name the agent reported
- [chat] Show no count for an edit with a part too large to send
- [logs] Include the session crate's events in the app log
- [remote] Show Antigravity's logo on the phone and in the web app
- [overview] Keep replies on their agent and quiet hours on waiting toasts
- [overview] Pick agents by pane and keep late quiet-hours alerts quiet
- [remote] Show WSL sessions on paired phones
- [remote] Hold followed WSL sessions to their limit
- [remote] Refuse new workspaces in WSL sessions from a phone
- [remote] Make phone pictures and saved WSL devices work from the service
- [devices] Open Herdr 2 agents from the overview and keep them counted
- [devices] Stop counting Herdr 2 agents while its core is unreachable
- [herdr-2] Keep chats and new terminals on the host they belong to
- [herdr-2] Drop a terminal still starting on a device that changed
- [chat] Build sheprd-acp again after two changes both defined identifier
- [acp] Build again after two merges defined the same id reader
Documentation
- [remote] Plan the push relay and add a sealed Live Activity spike
- [orchestrator] Describe Azure DevOps reading and the new menus
- [orchestrator] Describe Azure DevOps Mine, verdicts, and project menu
- Document ports all, stop, pause, and resume
- Keep the agent skill's description within its 1,024-character limit
- Describe the names, projects, and usage ports all reports
- Say a failed Herdr 2 terminal refuses dictation
- [orchestrator] Describe saving Azure DevOps tokens in the account menu