Skip to content

Track upstream herdr instead of the Omarchy fork - #170

Draft
omarchybot wants to merge 1 commit into
masterfrom
herdr-track-upstream
Draft

Track upstream herdr instead of the Omarchy fork#170
omarchybot wants to merge 1 commit into
masterfrom
herdr-track-upstream

Conversation

@omarchybot

Copy link
Copy Markdown
Collaborator

The herdr package built from omacom-io/herdr, a fork whose only divergence was three commits replaying an agent's CLI options when Herdr resumed its session. 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 system meant to supersede it — so the fork was a permanent rebase treadmill carrying one feature that upstream has no intention of taking. This drops it and follows upstream directly.

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 therefore follows master and takes the -git name that says so, replacing both herdr and omarchy-herdr so existing installs migrate.

Master's Cargo.toml reads 0.8.1, a release upstream cut on 2026-08-18 and withdrew forty-two minutes later, while its wire protocol is already 20 against the published release's 19. An unmarked build self-reports a version no published release carries, which is how an official macOS client came to insist on stopping an Omarchy host's server while showing the same 0.8.0 on both sides and never naming the protocol — the behaviour reported in #161. HERDR_BUILD_CHANNEL and HERDR_BUILD_ID make the binary report 0.8.1-omarchy.<commit> instead. The channel is deliberately not preview, because that gates build_info::is_preview(), and update.rs::stable_channel_should_install() returns true unconditionally for preview builds — it would offer every user a "update" to the protocol-19 stable release and overwrite /usr/bin/herdr outside pacman.

pkgver() excludes the preview-* tags that sit on master between releases: describing without that bases the version on a preview build id, which pacman ranks below the version already shipped, so the package would never install. 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.

One known limitation: cross-architecture remote attach cannot bootstrap a helper for this build, because the stable manifest lists only published releases. That holds for any build from master, marked or not — an unmarked one asks the manifest for 0.8.1 and is told it does not exist. Same-architecture attach is unaffected, since Herdr copies the local binary.

This is a draft on purpose. It does not close #161: two builds whose PROTOCOL_VERSION differs cannot share a server, because remote_server_restart_reason() checks the protocol before it looks at any version string, so this makes the mismatch legible rather than curing it. The cure is upstream's — when 0.8.1 is re-cut and stable publishes protocol 20, official clients and this package agree again. Parked until then.

🤖 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>
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

1 participant