Skip to content

Releases: devswha/herdr-web-ui

herdr web ui v0.3.27

Choose a tag to compare

@github-actions github-actions released this 27 Sep 07:50
58aa03c

Fixed

  • An omo pane's chat keeps its transcript while a background task runs. omo holds the task's log
    (.omo/senpi-task/logs/*.jsonl in the working directory) open, and that file was taken for the
    pane's session, so the chat fell back to terminal text until omo restarted. Only files in omo's
    session store count now.

herdr web ui v0.3.26

Choose a tag to compare

@github-actions github-actions released this 27 Sep 07:20
757c09e

Changed

  • Releases are published only from a main commit that passed the full CI run, and pull requests
    must pass the same checks before they merge.

Fixed

  • Foldable and tablet-width screens (481-768px, e.g. a Galaxy Z Fold8 inner screen): the header no
    longer breaks the Korean "채팅"/"터미널" labels one syllable per line, and no longer shows the
    sidebar collapse toggle (a no-op in drawer mode) or sign out beside the drawer button. Up to
    560px the chat/terminal switch shows icons only, so the pane title keeps room.
  • The chat's terminal-text fallback, used when an agent's transcript cannot be found, reflows lines
    the terminal soft-wrapped instead of breaking them where the pty's columns ended. A PC whose
    herdr predates unwrapped reads falls back to the old read.
  • Korean UI: the new session dialog's Browse, the prompt card's Submit and Send, and the held-input
    and queued-message banners' Send, Discard and Send now are translated.
  • Phone-width screens (up to 480px) hide the command palette's keyboard shortcut hints, and the
    key bar puts its direct-typing toggle first, so a narrow cover screen no longer cuts it off.

herdr web ui v0.3.25

Choose a tag to compare

@github-actions github-actions released this 27 Sep 05:58

Added

  • Chat Markdown renders inline \(...\) and display \[...\] equations with KaTeX.
    Code stays literal, and invalid or incomplete formulas preserve the surrounding Markdown.

Changed

  • The installer keeps herdr's plugin install preview (every command of the manifest) to itself and
    prints only herdr's Installed ... line; when the install fails, it prints all of herdr's output.
  • README: a sample of the installer's output, from a PC that had herdr but no Bun or Node.

Fixed

  • Ctrl+V in the terminal pastes clipboard text instead of sending a control character that
    triggers an agent's image-paste shortcut and reports "No image in clipboard". Korean text,
    multiline paste, Ctrl+Shift+V and other terminal control keys retain their expected behavior.
  • Revoking a paired device closes its active terminal connections and roster stream immediately.
    A corrupt or unreadable device registry stays gated and intact, with recovery guidance.
  • Token and paired-device sessions show Sign out in the header and command palette.
    Closed or obsolete pane selections recover to a live pane without discarding newly created
    panes or selections on disconnected PCs.
  • The plugin also reads its settings from .env in herdr's plugin config dir, the name herdr's
    plugin docs use; it read only env, so a .env (say, HOST=0.0.0.0 for a reverse proxy) was
    silently ignored. env is still read; where both set a key to different values, .env wins and
    start and status name the keys (never their values). status prints the files it read. The
    plugin checkout runs this, and in-app updates do not replace it: reinstall the plugin to get it.

herdr web ui v0.3.24

Choose a tag to compare

@github-actions github-actions released this 27 Sep 05:06

Changed

  • The installer's addresses are links a terminal can open with a click (OSC 8), plain text when
    the output goes to a file or log. It also names this PC's Tailscale IP next to the phone address,
    which stays the MagicDNS name: the HTTPS certificate is for the name, not the IP.

herdr web ui v0.3.23

Choose a tag to compare

@github-actions github-actions released this 27 Sep 04:56

Fixed

  • The one-line installer, run where the app is already installed, prints the phone address and its
    QR code from the version that runs. herdr's plugin directory keeps the version first installed
    (in-app updates run from ~/.config/herdr-web-ui/updates), so it used to find no phone step
    there and only said to update. A running version from before 0.3.22 gets the address it already
    knows, as a QR code.

herdr web ui v0.3.22

Choose a tag to compare

@github-actions github-actions released this 27 Sep 04:47

Added

  • A one-line installer: curl -fsSL https://devswha.github.io/herdr-web-ui/install.sh | sh
    installs what is missing (herdr, Bun, Node 22, for the user only and without sudo), installs the
    herdr plugin and starts it when herdr runs. When Tailscale runs on the PC, it serves the app to
    the tailnet on the first free HTTPS port, says how to undo that, and prints the address a phone
    opens as a QR code. Running it again keeps what is there and prints the address again.
  • bun scripts/plugin.ts phone, the installer's last step, for a plugin installed without it.

Changed

  • Through a proxy on a PC whose Tailscale login is known, as with tailscale serve, a request
    with no login (a tagged device) needs pairing, even before the first device is paired.
  • The plugin starts the server with ~/.bun/bin, ~/.local/bin and the installer's Node appended
    to herdr's PATH, so a herdr started from a shell without them still runs terminals.

herdr web ui v0.3.21

Choose a tag to compare

@github-actions github-actions released this 26 Sep 20:13

Added

  • Codex and Claude skill activity stays visible above folded chat work blocks: the skill name,
    invocation/read status, and expandable evidence or document path. Recorded activity is distinct
    from completing the skill's workflow; English and Korean labels work on desktop and mobile.
  • Native Codex image attachments, including image-only prompts, appear in the chat through
    bounded, pane-scoped image reads.

Fixed

  • Native context clears discard old turns, pending calls, loaded pages and stale cursors.
    Late page and tool-output responses cannot restore cleared history or populate another pane.
  • omp, omo and gjc transcripts honor hidden messages and normalize string messages, tool field
    aliases and embedded results consistently across rendering, paging and full-output reads.
  • omo transcript selection uses process/session evidence and rejects ambiguous same-directory
    candidates. Claude paste wrappers unwrap only when their identifiers match.

Changed

  • Growing Codex tasks parse incrementally while preserving transcript rewrite invalidation,
    reducing repeated parsing of long tool-heavy turns.

herdr web ui v0.3.20

Choose a tag to compare

@github-actions github-actions released this 26 Sep 19:00

Added

  • Report a problem: a small bug icon at the end of the chat's status line gathers what a chat
    or prompt-card bug is made of (the versions, browser and agent; the latest turns and the prompt
    card as parsed; the terminal screen if chosen) into a report to read and edit. It is then
    copied, saved as a file, or opened as a prefilled GitHub issue; nothing is sent on its own.

Changed

  • The ⚡ button beside the message box is gone: quick replies show above the box only when turned on
    in Settings → Quick replies (off by default), so the box looks as it did before them.
  • The context left is a small ring beside the model, filled by what is used and red when little is
    left, as Codex's app shows it; hovering or tapping it says "Context 27% left" with the token
    counts. A session whose window the transcript does not name shows no ring.
  • The / commands @ files hint above the message box is gone.
  • In the sidebar, the computer the app runs on is marked Host, not "This PC", which on a phone
    read as the phone.
  • Settings open from the sidebar's Settings button (and ⌘⇧, or the palette): the ⚙ in the header,
    one more way to the same place, is gone. On a phone that is ☰, then Settings.

Fixed

  • Numbered lists in the chat keep their numbers now: items with blank lines between them (as agents
    often write them) each read "1.", a list broken by a code block started over at 1, and one that
    began at 3 read 1. An item's indented lines now read as its own text, and a code block indented
    inside a list reads as code.

herdr web ui v0.3.19

Choose a tag to compare

@github-actions github-actions released this 26 Sep 17:17

Added

  • Quick replies: one-tap messages above the chat's message box (continue, yes, no,
    commit and push, retry to start with). Each is sent as if typed: queued while the agent works,
    taken as the answer when a question is open, and a draft in the box stays. Settings → Quick
    replies
    edits the list on each device; the row is hidden until the ⚡ button beside the paperclip
    shows it.
  • The chat's status line says how much context is left: 74% left from the window Codex records,
    or for Claude once a request has run past 200k (the 1M window); 68k used where the transcript
    names no window (omp, omo, gjc, and Claude below 200k). It turns red at 20% left. Hovering shows
    the token counts.
  • A tool call that failed says so: its row reads "failed" in red, its output is headed Error, and
    the folded "Worked for…" header counts the failures. Claude and omp record the failure; for Codex
    it is read from the output (a command that exited non-zero, a script or patch that failed).
  • A file a tool call names (an edit, a read, a patch's files) opens in the viewer on a tap.
  • A Codex patch reads as a diff: each file as a header, then its lines in red and green, and the row
    is summed up by the files it touches, also when an exec script applies it.
  • While reading further up the chat, a ↓ button takes you back to the end, new messages or not.
  • Images you sent show above your message: ones pasted into Claude's prompt, fetched only when
    shown, and ones attached here (an @…png mention). A tap opens them.
  • An edit reads as one diff: unchanged lines once, removed and added lines in place between them,
    instead of the whole old block and then the whole new one. Several edits to one file each get
    theirs.
  • Where a compaction folded a Claude conversation, a divider says so, and opens to its summary.
  • Headings down to ###### render as headings.
  • A tool output cut for the chat (past 4,000 characters) has a "Show the whole output" button that
    fetches the rest, up to 2 MB, into a box of its own.
  • The / menu lists Claude's skills (yours and the project's) and the skills and commands of the
    plugins turned on in its settings, as /<plugin>:<name>. In a Codex pane it lists your saved
    prompts as /prompts:<name>, and $ opens Codex's skills.
  • On a phone, the terminal lens has an input line above the key bar. A phone keyboard rewrites
    what it typed (dictation revising a phrase, a Korean syllable being composed, autocorrect), and
    the terminal could not take back keys it had sent, so every revision arrived as more text. The
    line is written with the keyboard's own editing and goes to the pane whole, then Enter (typed
    like the keyboard, into an agent's open menu too); an empty line's button presses Enter alone.
    Tapping the terminal no longer raises the keyboard; the ⌨ key on the key bar switches to typing
    straight into it, remembered per device. Desktops are unchanged.

Changed

  • Remote PCs use the remote-v5 runtime, which carries this release's server side to them: the
    context left and failed calls in their chats, images and whole tool outputs, skills in the menu,
    questions read in a narrow pane, and the terminal's input line. A connected PC's bridge updates
    itself as for remote-v3.
  • Alerts wait before they go out, and a change of the pane meanwhile calls them off: a question
    answered at the PC within 10 seconds, or a finish followed by the next prompt within a minute,
    never buzzes the phone. A finish is told only after a turn that worked a minute or more, since a
    quick answer is read where it was asked.
  • Settings → Alerts chooses, per device, whether a waiting agent alerts, and whether a finish
    does never, after a long turn (the default) or every time (then after 10 seconds). An ended
    terminal follows the finish choice.

Fixed

  • An agent's chat said "No conversation yet" until its first answer arrived, seconds on a remote PC.
    It now says it is loading.
  • A Claude question never showed as a card in the chat when its pane was narrow (a phone, a split):
    the hint under the menu wraps (… Esc to / cancel), and it was looked for on one line. Hints
    are now read across the wrap, in every agent's menus, and so is the check that a menu is still
    open before an answer is typed into it. A single question's card is titled by its header chip.

herdr web ui v0.3.18

Choose a tag to compare

@github-actions github-actions released this 26 Sep 14:43

Changed

  • Remote PCs use the remote-v4 runtime, which carries the fix below to the remote side: an omo
    or gjc pane that finished keeps reading DONE after the bridge restarts. A connected PC's bridge
    updates itself as for remote-v3.

Fixed

  • An omo or gjc pane that had finished read READY again after this server restarted (an update
    does): what this server adds to herdr's own done lived in memory. It is now kept in
    completions.json in the state directory, for the herdr it was seen in; a herdr started anew
    starts it over.