Skip to content

Run Herdr plugins without external Bun - #415

Merged
powerfooI merged 3 commits into
mainfrom
fix/plugin-without-bun
Oct 14, 2026
Merged

powerfooI merged 3 commits into
mainfrom
fix/plugin-without-bun

Conversation

@powerfooI

@powerfooI powerfooI commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Installing or using the Herdr plugin currently requires an external Bun runtime even though Roamgate already ships standalone executables. Run plugin actions and the terminal panel through roamgate plugin, and bootstrap the matching release with system tools on macOS/Linux or Windows PowerShell and tar.exe.

The installers verify the archive checksum, package version/platform and native command support before atomically replacing the executable. Failed installation preserves the previous executable. Start/Restart retain their existing service, configuration and credential behavior; source builds keep the compatibility entry point and use the root frozen workspace lockfile. No runtime dependencies were added.

Compatibility and rollout:

  • The plugin retains its existing declared Herdr minimum of 0.7.2. Git remains required by Herdr's GitHub installer; Bun is needed only for source builds. The full native installation/action/panel flow was verified with Herdr 0.9.4; older Herdr runtimes were not retested.
  • Existing tags keep their original Bun launcher. An unpublished checkout paired with an older published executable fails with source-build guidance. This feature becomes available through release installation after a normal release containing it is published; this PR does not publish or change versions.
  • Pinned plugin installs upgrade by installing the next published tag. Herdr 0.9.4's update command retains the original ref. Close/reopen existing panels, then use Start/Restart to register the new executable path.

Verification:

  • bun run precommit: 3,560 passed, 4 platform/environment skips; formatting, lint, web build and TypeScript checks passed.
  • bun run typecheck:bun: all three projects passed.
  • Windows 11 ARM64: ran install-plugin.windows.test.ts with a portable test runner; installer PATH contained only Windows system tools. First install, replacement, invalid checksum/name, metadata mismatch, missing native commands and failed download passed. Legacy mirror fallback, primary-variable precedence and an explicitly empty primary variable also passed (30 assertions).
  • Packaged all six supported targets; inspected versioned/latest archive layouts, VERSION metadata, binary architectures and SHA-256 files.
  • Installed locally built release packages with Bun absent from PATH on macOS ARM64, Ubuntu ARM64 and Windows ARM64. Native panels rendered and accepted q; Unix terminal/cursor state was restored. Herdr 0.9.4 on Windows successfully invoked ./server/roamgate and the panel through ConPTY.
  • macOS ARM64: Herdr 0.9.4 fetched this branch from GitHub, selected the Unix build, installed and replaced managed checkouts, and invoked native actions after both installs with Bun absent from PATH. The release download used a loopback mirror serving the locally built package; unchanged-ref plugin update correctly reported up to date.
  • macOS x64 under Rosetta and Windows x64 under emulation passed native command smoke checks. Linux x64 archive inspection passed, but execution was unavailable because the VM lacks /lib64/ld-linux-x86-64.so.2; no system packages were installed.

No persistent services were created or changed during VM validation.

@powerfooI powerfooI added enhancement New feature or request breaking-change Introduces a backwards-incompatible change labels Oct 14, 2026
@powerfooI

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-14T09:48:32.499310Z 9c9972d Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1767295775

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/install-plugin.ps1 Outdated
@powerfooI

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: 9c9972dca2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@powerfooI powerfooI removed the breaking-change Introduces a backwards-incompatible change label Oct 14, 2026
@powerfooI
powerfooI merged commit ffca28f into main Oct 14, 2026
5 checks passed
@powerfooI
powerfooI deleted the fix/plugin-without-bun branch October 14, 2026 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant