Skip to content

Saved-machine panes are laid out one row taller than the local viewport, so the bottom row is clipped (0.9.1) #4614

Description

@villekivela

Is this a reproducible bug?

  • I confirm this is reproducible on Herdr 0.9.1.

Setup

  • herdr 0.9.1 (stable, protocol 22) on both sides
  • Local: macOS client
  • Remote: Linux server in an OrbStack VM, attached as a saved machine (herdr machine) through herdr remote-client-bridge
  • Only one client is attached to the remote server (client_id=10 in herdr-server.log), so no other client is setting the size

Current behavior

The bottom row of every pane in the saved-machine workspace is drawn outside the visible area. With Claude Code, the footer line under the prompt is missing. Local panes are not affected.

The remote server lays out one row more than the local client shows:

  • In a local pane, stty size returns 64 219
  • On the remote, herdr api snapshot reports the layout area as height: 65, width: 219. A pane PTY there returns 65 110 for stty -F /dev/pts/N size, which is the left half of a vertical split

The width matches and the height is one row too many.

herdr server reload-config on the remote fixes it for a moment, then the clipping comes back. It seems to return on the next size report from the local client.

Expected behavior

The size the local client forwards for a saved-machine view should equal the area that view gets locally, after the local tab bar, borders and other chrome are subtracted. Remote panes should then fit with no rows clipped.

Steps to reproduce

  1. Start herdr locally and add a remote host with herdr machine add ...
  2. Open the saved machine's workspace and start a full-screen TUI with a bottom status line (for example Claude Code)
  3. Compare stty size in a local pane with the remote layout area in herdr api snapshot. The remote height is one row larger
  4. The last row of remote panes is not visible
  5. Run herdr server reload-config on the remote. It looks right until the next size report, then clips again

Suspected cause

The local tab bar is visible (1 row). The forwarded height seems to still include that row, so the remote lays out for 65 rows while the saved-machine view only has 64. Hiding the local tab bar should make the two heights match, which would confirm it.

Relevant log (remote herdr-server.log)

INFO herdr::server::headless: client connected client_id=10 cols=155 rows=47 cell_width_px=10 cell_height_px=22 surface_active=false render_encoding=SemanticFrame

No other client connected after this, yet the layout area is now 219×65.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmaintainer-neededrequires maintainer judgment or maintainer-only reproductionp2valid narrow or ordinary defect with limited impact or a practical workaroundremoteaffects SSH, headless, or remote attachment behaviorrenderingterminal emulation, reflow, layout, graphics, or output renderingtriagedScreened; left open for investigation or maintainer judgment. Not proof of a bug or reproduction.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions