feat: add Herdr plugin for ghzinga links#39
Merged
Merged
Conversation
Member
Author
|
Final implementation report Summary:
Validation passed:
PR comments/reviews:
|
Member
Author
|
Final implementation report for the current Rust-owned Herdr plugin implementation. Summary:
Validation passed on head
PR comments/reviews:
Known Herdr-side limitation:
|
Member
Author
|
Follow-up fix for nested ghzinga panes:
Additional validation passed on head
|
Member
Author
|
Follow-up fix for stale restored tabs in Herdr plugin viewers:
Validation passed on head
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Opened on behalf of Onur Solmaz (
osolmaz).Summary
Herdr can now hand GitHub issue and pull request links to ghzinga.
The plugin stays thin: Herdr calls
gzg herdr-plugin open/viewer, and ghzinga owns the URL parsing, pane reuse, session naming, and Herdr pane control in Rust.This matters because the ghzinga-specific behavior now ships with ghzinga instead of living in plugin shell scripts.
What Changed
The production path is now Herdr manifest wiring into ghzinga-owned Rust entrypoints.
The plugin opens or reuses a right-side ghzinga pane next to the clicked pane, using Herdr's current Ctrl-click link-handler surface.
plugins/herdr/herdr-plugin.tomlwith a GitHub issue/PR link handler, one action, and one viewer pane.gzg herdr-plugin openandgzg herdr-plugin viewer.open.shandviewer.sh; shell remains only in test fakes/harnesses.README.mdandplugins/herdr/README.md.Testing
I tested the Rust-owned path directly, with fake Herdr, and inside a real disposable Herdr session.
The live Herdr smoke starts Herdr, links the plugin, opens a right-side pane, and verifies ghzinga rendered fixture content there.
cargo test herdr_plugin --libplugins/herdr/test/test-open.shplugins/herdr/test/test-viewer.shscripts/herdr-plugin-live-smoke.shnpx -y @simpledoc/simpledoc checkPATH="/tmp/ghzinga-py312/bin:$PATH" scripts/ci-local.shThe first local
scripts/ci-local.shrun used macOS system Python 3.9.6 and failed on existing Python 3.10+ type syntax in capture scripts.The full gate passed after putting a temporary Python 3.12 venv first on
PATH, matching the Python version available on GitHub'subuntu-latestrunner.Risks
The main limitation is Herdr's current trigger surface.
The plugin handles Ctrl-click link events; plain left-click link routing would need Herdr itself to expose that behavior to plugins.
gzgmust be installed onPATHfor normal Herdr plugin launches.GHZINGA_BINis supported for local development or custom viewer launches, but normal installs should not need it.