#3799·herdr

0.9.0: in multi-pane tabs, overlay panes are no longer full width

Author: rmargantiCreated Sep 8, 2026Updated Sep 17, 2026
Labelsbugmaintainer-neededp2macoslinuxrenderingplugins

Is this a reproducible bug?

  • I confirm this is a reproducible bug, not a feature request, idea, question, contribution proposal, or direction check.
  • I reproduced this bug on the version and environment reported below using the exact steps provided.

Current behavior

Plugin panes opened with plugin pane open --placement overlay receive incorrect geometry (while temporary panes opened via [[keys.command]] type = "pane" do not).

  • Have a tab with two equal-width panes
  • Plugin launch a pane with --placement overlay
  • Instead of being the expected full-width, it will be 50% wide

Expected behavior

When launching a overlay pane from a plugin, it should be full width.

Reproduction

Run the following from inside a Herdr pane. It creates and links a temporary local plugin whose overlay continuously compares its startup PTY width with its current width.

bash
mkdir -p /tmp/herdr-overlay-repro

cat >/tmp/herdr-overlay-repro/herdr-plugin.toml <<'EOF'
id = "local.overlay-width-repro"
name = "Overlay Width Reproduction"
version = "0.1.0"
min_herdr_version = "0.9.0"
platforms = ["linux", "macos"]

[[panes]]
id = "width"
title = "Overlay Width Reproduction"
placement = "overlay"
command = ["sh", "repro.sh"]
EOF

cat >/tmp/herdr-overlay-repro/repro.sh <<'EOF'
#!/bin/sh
startup_cols=$(stty size </dev/tty | awk '{print $2}')
layout_width=$(herdr pane layout --current | python3 -c \
    'import json,sys; print(json.load(sys.stdin)["result"]["layout"]["area"]["width"])')
trap 'exit 130' INT TERM HUP

while :; do
    current_cols=$(stty size </dev/tty | awk '{print $2}')
    printf '\033[H\033[2J'
    printf 'Tab layout width:  %s columns\n' "$layout_width"
    printf 'Startup PTY width: %s columns\n' "$startup_cols"
    printf 'Current PTY width: %s columns\n\n' "$current_cols"

    if [ "$current_cols" -lt "$((layout_width - 4))" ]; then
        printf 'RESULT: UNDERSIZED OVERLAY REPRODUCED\n'
    else
        printf 'RESULT: overlay approximately matches the tab width\n'
    fi

    printf '\nOverlay PTY ruler:\n'
    awk -v n="$current_cols" 'BEGIN { for (i=0; i<n; i++) printf "#"; print "" }'
    printf '\nPress Ctrl-C to close.\n'
    sleep 1
done
EOF

chmod +x /tmp/herdr-overlay-repro/repro.sh
herdr plugin link /tmp/herdr-overlay-repro

Create two equal-width panes:

bash
herdr pane split --current --direction right --ratio 0.5 --no-focus

Open the plugin overlay:

bash
herdr plugin pane open \
  --plugin local.overlay-width-repro \
  --entrypoint width \
  --placement overlay \
  --focus

On an affected 0.9.0 installation, the overlay reports approximately:

Tab layout width:  200 columns
Startup PTY width: 100 columns
Current PTY width: 100 columns

RESULT: UNDERSIZED OVERLAY REPRODUCED

Impact

Minor impact on a personal plugin I use (non-public).

Environment

  • Herdr version: 0.9.0
  • Update channel (stable or preview): stable
  • Operating system: MAC
  • Terminal: GhosTTY
  • Shell, if relevant: bash
  • Relevant config, if any: