Skip to content

Package the herdr 0.8.2 release instead of the fork - #170

Merged
dhh merged 2 commits into
masterfrom
herdr-track-upstream
Aug 22, 2026
Merged

Package the herdr 0.8.2 release instead of the fork#170
dhh merged 2 commits into
masterfrom
herdr-track-upstream

Conversation

@omarchybot

@omarchybot omarchybot commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

The package built from omacom-io/herdr, a fork pinned to a commit and versioned 0.8.0.r13. Its only divergence was three commits replaying an agent's CLI options when a session resumed, which upstream declined twice — from a contributor in herdrdev/herdr#2036, and from us in herdrdev/herdr#2614, closed in favour of an agent resume manifest meant to supersede it. Those three are dropped. Every other commit the fork carried is in v0.8.2: exactly three commits separate the packaged fork build from the tag.

The fork also self-reported 0.8.0 while speaking wire protocol 20, which upstream's published 0.8.0 did not — it spoke 19. An official client attaching to an Omarchy host therefore saw a server claiming to be its own version yet refusing to talk to it, and offered to stop it while showing 0.8.0 on both sides and never naming the protocol. That is #161.

Upstream released v0.8.2 today and it settles both halves. It carries protocol 20, and latest.json now publishes 0.8.2 at protocol 20, so an official client and this package agree — the restart loop ends rather than merely becoming legible. It also contains the five features Omarchy contributed after the v0.8.0 tag: configurable outer pane borders, direct pane resize keybindings, move tab keybind actions, centered tab labels, and outer terminal window title sync. That is what made packaging the older release a regression instead of a return to upstream, and why this change waited for a release that had them.

Because the build is now the release it claims to be, it needs no build-identity marking. HERDR_BUILD_CHANNEL and HERDR_BUILD_ID are gone and the binary reports a bare 0.8.2. The package name is unchanged, so nothing needs a rename, a migration, or a database removal to reach existing installs — 0.8.2-1 simply supersedes 0.8.0.r13-1.

Closes #161.

🤖 Generated by Opus 5 in Claude Code. Reviewed by Codex XHigh.

The fork carried three commits that replayed an agent's CLI options when Herdr resumed its session. Upstream declined that work twice — once from a contributor in #2036 and once from us in #2614, closed in favour of an agent resume manifest system that is meant to supersede it — so the fork was a permanent rebase treadmill for one feature, and it is dropped here.

Packaging the v0.8.0 release instead would have regressed more than the fork gained: configurable outer pane borders, direct pane resize keybindings, move tab keybind actions, centered tab labels and outer terminal window title sync all merged upstream after that tag, so the release predates five features Omarchy contributed. The package follows upstream master and takes the -git name that says so, replacing both herdr and omarchy-herdr.

Master's Cargo.toml reads 0.8.1, a release upstream cut and withdrew hours later, while the wire protocol is already 20 against the published release's 19. An unmarked build therefore self-reports a version that no release carries, which is how an official client came to insist on stopping an Omarchy host's server without saying why. HERDR_BUILD_CHANNEL and HERDR_BUILD_ID make it report 0.8.1-omarchy.<commit>. The channel is not "preview" because that gates is_preview(), which makes the stable updater treat every published release as installable and overwrite /usr/bin/herdr outside pacman.

pkgver() excludes the preview tags that sit on master between releases; describing without that returns a preview build id that pacman ranks below the version already shipped. It fails rather than falling back for the same reason: with no release tag reachable, every version it could invent sorts lower than what users already have.

Cross-architecture remote attach cannot bootstrap a helper for this build, because the stable manifest lists only published releases. That is true of any build from master, marked or not: an unmarked one asks the manifest for 0.8.1 and is told it does not exist.

🤖 Generated by Opus 5 in Claude Code. Reviewed by Codex XHigh.

Co-Authored-By: Codex XHigh <codex@openai.com>
The package built from omacom-io/herdr, a fork pinned to a commit and versioned 0.8.0.r13. Its only divergence was three commits replaying an agent's CLI options when a session resumed, which upstream declined twice — from a contributor in herdrdev/herdr#2036 and from us in herdrdev/herdr#2614, closed in favour of an agent resume manifest meant to supersede it. Those three are dropped; every other commit the fork carried is in v0.8.2.

The fork also self-reported "0.8.0" while speaking wire protocol 20, which upstream's published 0.8.0 did not: it spoke 19. An official client attaching to an Omarchy host therefore saw a server claiming to be its own version yet refusing to talk to it, and offered to stop it without ever naming the protocol. That is #161.

Upstream released v0.8.2 today, and it settles both halves. It carries protocol 20, and the stable manifest now publishes 0.8.2 at protocol 20, so an official client and this package agree. It also contains the five features Omarchy contributed after the v0.8.0 tag — configurable outer pane borders, direct pane resize keybindings, move tab keybind actions, centered tab labels and outer terminal window title sync — which is what made packaging the earlier release a regression rather than a return to upstream.

Because the build is now the release it claims to be, it needs no build-identity marking: HERDR_BUILD_CHANNEL and HERDR_BUILD_ID are gone, and the binary reports a bare 0.8.2. The package name is unchanged, so nothing needs a rename, a migration or a database removal to reach existing installs; 0.8.2-1 simply supersedes 0.8.0.r13-1.

🤖 Generated by Opus 5 in Claude Code. Reviewed by Codex XHigh.
@omarchybot omarchybot changed the title Track upstream herdr instead of the Omarchy fork Package the herdr 0.8.2 release instead of the fork Aug 22, 2026
@omarchybot
omarchybot marked this pull request as ready for review August 22, 2026 14:41
@dhh
dhh merged commit 0276a51 into master Aug 22, 2026
1 check passed
@dhh
dhh deleted the herdr-track-upstream branch August 22, 2026 14:49
@greptile-apps

greptile-apps Bot commented Aug 22, 2026

Copy link
Copy Markdown

Greptile Summary

The PR switches the Herdr package from a pinned Omarchy fork commit to the upstream v0.8.2 release.

  • Updates the project URL, source archive, checksum, description, and extracted source directory.
  • Retains migration metadata for installations using the former omarchy-herdr package name.
  • Preserves the existing Cargo/Zig build and installation process.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking issue identified.

The upstream release source, package version ordering, archive paths, build procedure, and migration metadata are consistent with the package’s existing contracts.

Important Files Changed

Filename Overview
pkgbuilds/herdr/PKGBUILD Repackages Herdr from the checksummed upstream v0.8.2 tag while preserving compatible build steps and the existing package migration path.

Reviews (1): Last reviewed commit: "Package the herdr 0.8.2 release instead ..." | Re-trigger Greptile

nixfred pushed a commit to nixfred/omarchy that referenced this pull request Aug 23, 2026
The herdr package was built from an Omarchy fork of Herdr whose only divergence was three commits replaying an agent's CLI options when a session resumed. Upstream declined that work twice — from a contributor in herdrdev/herdr#2036 and from us in herdrdev/herdr#2614, closed in favour of an agent resume manifest meant to supersede it — so the fork bought one feature at the price of rebasing it onto upstream forever. omacom/omarchy-pkgs#170 drops the fork and builds from upstream master instead, which renames the package to herdr-git.

Renaming means the package list has to name the new package, and existing installs need a nudge: herdr-git declares replaces, but pacman honours that only during a full sysupgrade, which leaves anyone who updates another way holding the old name.

The migration installs herdr-git in one transaction rather than dropping herdr and adding it back, because the session is usually running inside herdr and an install that failed between the two would leave the machine with no terminal. That needs --ask 4, since --noconfirm answers "no" to the conflict herdr-git raises against the installed herdr — the same reason omarchy-upgrade-to-quattro passes it. It ends by asserting the package is really there, because pacman does not always exit non-zero when an install fails and a migration that marked itself done would leave the machine on the fork for good.

Nothing here can merge before herdr-git is published to the package mirrors: until then the migration fails, stays pending and retries, which is safe but noisy.

🤖 Generated by Opus 5 in Claude Code. Reviewed by Codex XHigh.

Co-Authored-By: Codex XHigh <codex@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

herdr 0.8.0.r13 uses protocol 20 while reporting 0.8.0, causing remote attach restart loop

2 participants