Repository navigation
v1.2.2
- sessions: a swipe's preview of the next session draws the sidebar's own workspace rows, inert, so nothing jumps when it lands: worktrees with their branch line, icons found through the panes' folders, folded groups, the shown workspace lit and the agents list's empty line, where it drew a plainer copy of them before
- review panel: Cmd+C copies a selection only while its text is shown (a hidden panel forgets it); another project's GitLab job is acted on at the repo's host; a job's log is drawn at its 10.5 px; the description is parsed once per body; the CI label is a label like its neighbours; a machine's scripts run under sh, its icon is looked for again every 5 minutes, and its transcript is read afresh when it shrinks or goes
- review panel: a draft's footer marks it ready; a branch's own pipeline shows as CI in the status bar; a job's log is selectable; herdr machines get their token spend and project icon over SSH
- usage: Codex's plan limits next to Claude's, read from ChatGPT's usage endpoint with Codex's own sign-in; a Usage page in Settings shows every agent's windows and picks whose the status bar's ring follows, and the limits pop-up leads there
- review panel: acts on the PR or MR and its pipeline, pages GitLab child pipelines, and works for herdr machines
- terminal: scrolling back reads herdr's history once (pane.read, its last 1000 lines with their styles) into a local grid and walks it there, as fast as a terminal's own scrollback, instead of a round trip to herdr per step; herdr's frames keep the live grid current meanwhile, a key or a resize goes back to it, and herdr scrolls on past the lines read, for an app that takes the wheel and on the alternate screen; images move down with the text
- ci: Zig 0.16 for libghostty-vt
- terminal: libghostty-vt instead of alacritty_terminal (experiment)
- terminal: ligatures are on: every glyph is placed at its cell's column, as Ghostty, kitty and WezTerm do, so a ligature or a fallback glyph no longer pulls the rest of the row off the grid; Arabic and Hebrew runs shape together and shrink to their cells
- agents: a done agent comes before a working one, and among equals the latest status change first, by herdr's state_change_seq; a blocked agent is red and, with Animated status icons, a question mark
- terminal: Option+Left/Right move a word back or forward (ESC b, ESC f) and Cmd+Left/Right go to the line's start or end (Ctrl+A, Ctrl+E), as Ghostty sends them
- shell: the tab you show gets herdr's focus through the public API, which moves every client shell's tab with it, herdr's TUI too: the window's shell request moved only its own, so a switch in Shepherd left the TUI where it was
- herdr, shell: Shepherd shows the tab herdr's focus moves to (its TUI, another window, a command), so the tab is the same everywhere; the window's shell is pointed at the shown tab only once herdr's first surface named its run; images a pane no longer shows are freed by the window, hidden panes and pruned ones too; herdr is told the cell size of the shown tab's panes, not a hidden one drawn at another scale; images below z 0 go under the selection and search marks; decoded images herdr no longer retains are dropped even when nothing shown changed; images decode on a thread of their own and their bytes are read at once; a herdr message that does not decode is reported once on stderr instead of silently dropping popups
- herdr, shell: the window's client shell (the popup watch, or the PoC's) follows the tab shown, herdr's focus with it: herdr sends a client shell the Kitty images of its own tab only, so images showed only while that tab happened to be Shepherd's (nvim's image preview in another tab stayed blank)
- terminal, herdr: Kitty images in panes (MVP), taken from the window's herdr client shell (the popup watch, or the PoC client shell): herdr 0.9.4 sends a client shell its tab's images with each whole surface once it knows the cell size, so the popup watch, the client shell and every attach now tell herdr a cell in device pixels; the image bytes, sent once, are decoded (PNG, raw RGB/RGBA) and kept while herdr places or retains them, each placement is cut to the part herdr shows and drawn over its pane's cells, under the text below z 0, else over it
- review panel: a folded description is drawn whole, as markdown, cut to its first lines with their bottom faded out through gpui's edge fade (no band over the glass); the heading, or a click on it that selects nothing, unfolds it
- review panel: the description is Zeron's markdown (the zeron-markdown crate, drawn as Zeron draws it): bold, italic, code, struck text, tables and nested lists, links in the accent that open in the browser, and text selection across its paragraphs (drag, double click a word, triple click a paragraph) that Cmd+C copies, or a release does with Copy on select
- review panel: a long description folds to its first four lines of text under its heading's chevron; the heading, or a click on those lines, unfolds the whole of it
- review panel: it loads, refreshes and runs checks with Zeron's matrix loaders instead of a turning ring; its toggle moves from the tab bar to the status bar's right end, lit while the panel is open
- review panel: a right panel shows the shown pane's branch's PR (gh) or MR (glab, picked by origin's host): its title, state, author and description in plain markdown, and its checks or pipeline jobs with their state, duration and link; it is asked again every 10 s while one runs, on a branch switch and from its refresh button; Cmd+Alt+B or the tab bar's button toggle it, its edge resizes it, both kept in settings
Full Changelog: v1.2.1...v1.2.2