Skip to content

feat: configurable pane placement, direction, and popup via config.toml - #3

Merged
alexeyco merged 3 commits into
masterfrom
feat/pane-placement-settings
Oct 16, 2026
Merged

alexeyco merged 3 commits into
masterfrom
feat/pane-placement-settings

Conversation

@alexeyco

Copy link
Copy Markdown
Owner

Summary

Adds user-editable pane-layout settings to the gitui plugin, closing the
"hardcoded --placement tab" gap: a flat-key config.toml in the plugin's
config directory (HERDR_PLUGIN_CONFIG_DIR, else the guarded
herdr plugin config-dir gitui callback) now controls where the gitui pane
opens — tab (default), split, overlay, zoomed, or popup.

Verified against the herdr 0.9.5 daemon: split/zoomed require
--target-pane (the caller pane) and must omit --workspace; overlay/popup
must omit --workspace; a popup reply carries no pane id ({"type":"ok"})
and the popup session must make no close calls, or it would close the user's
agent pane. All of that is specified, implemented, and pinned by tests. The
OpenSpec change add-pane-placement-settings is archived in the branch and
its deltas are synced into the main specs. With no config the default argv is
byte-identical to 0.1.0. Version bumped to 0.2.0 in Cargo.toml and
herdr-plugin.toml.

Testing

  • cargo fmt --check
  • cargo clippy --all-targets --locked -- -D warnings
  • cargo test --locked (101 unit + 27 e2e, incl. placement/direction/popup
    argv, degradation paths, and the popup zero-close-call guarantee)
  • cargo build --release --locked
  • npx --yes prettier@3.9.6 --check "**/*.md"

Plus manual smoke on herdr 0.9.5: placement = "split" opens beside the
caller pane, popup opens as a centered modal and closes with gitui.

@alexeyco
alexeyco merged commit 6103a0b into master Oct 16, 2026
5 checks passed
@alexeyco
alexeyco deleted the feat/pane-placement-settings branch October 16, 2026 21:32
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.

1 participant