Repository navigation
v1.3.0
- ci: Windows aarch64 is cross-built on the x86_64 runner, since Zig crashes building libghostty-vt on windows-11-arm (0xc0000005); one Windows architecture failing no longer cancels the other, and a release goes out without aarch64 if its build fails, never without x86_64
- ci: on Windows curl fetches the Ghostty source that ghostty-vt-sys pins, checked against its sha256, since the crate's own download fails the CDN's certificate chain under native-tls there
- keys: keys typed into a pane go as herdr's semantic events over the client shell, which encodes them for the app's keyboard protocol as Ghostty would (Ctrl+Tab, Shift+Enter and the rest under kitty keys); Option and Cmd with the arrows go as before, popups too
- panes: a locked Mac gives the panes' size away within 5 s, with no idle minute to wait out first
- terminal: the right and middle buttons (press, drag, release) go to an app that captures the mouse instead of opening the pane's menu; with Shift, or for an app that does not, the right button is the menu as before
- search: matches past herdr's 1000-line read are no longer off by the unread lines: they count from the oldest line, and the count says when only the last 1000 were searched
- terminal: an app's OSC 52 copy reaches the Mac's clipboard: herdr hands it to the client in front, Shepherd's client shell, which read it as nothing before
- keys: Enter with Shift, Ctrl or Option goes as CSI 13; u once the pane's app asks for the kitty keyboard protocol, as herdr tells the attach, so Claude Code's Shift+Enter makes a newline instead of sending
- panes: a Mac left idle for a minute with Shepherd still in front gives the panes' size away, so herdr's TUI over ssh (from a phone, say) sizes them; a key or click in Shepherd takes it back
- terminal: typing goes to herdr over the window's client shell, whose input herdr draws at once, where an attach's waits out its 16 ms render cadence: a key's echo in ~6 ms, not ~21; only for a pane the shell's surface shows and no popup over it, else over the attach as before; the latency bench measures this path too
- terminal: the pointer's moves with no button held reach an app that captures the mouse (hover in TUIs), one report per cell crossed; Shift keeps the mouse for a selection, as on a press
- tabs: on Windows a press on a tab or the new tab button no longer moves the window: GPUI tells Windows the drag strip's area under the scroll-only blocking tabs too, so the tab bar and the button block it themselves
- ci: Windows builds for aarch64 too, on the windows-11-arm runner, so each Windows architecture gets its own zip in the release
- tabs: off macOS the new tab button follows the last tab instead of sitting by the window's own buttons at the titlebar's right end, and stays in view once the tabs scroll
- ci: a Windows job on windows-latest runs clippy and the tests, builds the release exe and zips it for the release
- windows: the titlebar's minimize, maximize and close buttons are Windows' own caption buttons to its hit testing, so Windows clicks them and maximize's hover brings Snap Layouts, and Shepherd's resize edges stay off there since Windows resizes from its own frame
- windows: Shepherd builds for Windows: herdr's server starts detached with no console and the helpers it runs (herdr, git, gh, ssh, curl) start without a console window, a keys.command shell runs in cmd /d /c, settings live in %APPDATA%\Shepherd and caches in %LOCALAPPDATA%\Shepherd, herdr's folder is found as herdr finds it ($XDG_CONFIG_HOME, else %APPDATA%\herdr on Windows, else ~/.config/herdr, now for its sockets as well as its config), the home folder comes from the platform rather than $HOME, ssh to machines goes without connection sharing on Windows, a release build is a windowed app, and the tests that fake herdr with a shell script or a unix socket run on unix only
- herdr: herdr's sockets go through one small module, a unix socket on macOS and Linux as before and on Windows the named pipe herdr names after the socket's path (interprocess, sync and tokio), for the sessions, the client shell, the popup watch, the API client and the remote relay's listeners
- linux, keys, panels: Shepherd builds and runs on Linux (x86_64 and aarch64): the Mac-only parts (Dock, notifications' authorization, Secure Keyboard Entry, self-update) sit behind cfg, settings and caches live in the XDG folders, the window is opaque and draws its own titlebar buttons and resize edges, and the key defaults follow Ghostty's Linux ones (Ctrl+Shift for the app, Ctrl+Shift+C/V in the terminal, Ctrl+click for links);
make linuxand CI pack it as a tar.gz, a .deb and an .rpm; selects in Settings move with the arrows and ctrl-p/ctrl-n and pick with Enter; a Workspaces panel in the command panel takes a chord of its own; the closed sidebar slides out floating when the pointer reaches the window's left edge; lists scroll the highlight clear of their edges; Settings' Back sits at the foot of its column; clippy runs with warnings as errors, and the README says what Shepherd does today
Full Changelog: v1.2.2...v1.3.0