Is this a reproducible bug?
Current behavior
After restarting Herdr and restoring my existing default session, a fresh workspace created with --no-focus can have a running zsh child but no readable terminal output. pane run, pane send-text, and pane send-keys return success, but the submitted command does not execute; pane wait-output times out and pane read remains empty.
I reproduced this on three consecutive disposable workspaces. It is stateful/intermittent: after activating a disposable workspace, later fresh-workspace probes sometimes succeed. The server log contained no error for the failed input calls.
Expected behavior
A pane returned by workspace create should execute accepted input independently of whether its workspace has been focused. Otherwise the input call should return a structured not-ready or delivery error rather than success.
Reproduction
- Restart Herdr with its client attached and allow an existing multi-workspace default session to restore.
- From another terminal, run:
created=$(herdr workspace create --cwd "$PWD" --label input-repro --no-focus)
pane=$(printf '%s' "$created" | jq -r '.result.root_pane.pane_id')
workspace=$(printf '%s' "$created" | jq -r '.result.workspace.workspace_id')
trap 'herdr workspace close "$workspace" >/dev/null' EXIT
sleep 1.5
herdr pane run "$pane" "printf '%s%s\\n' HERDR_ EXECUTED"
herdr pane wait-output "$pane" \
--match HERDR_EXECUTED --source recent-unwrapped --lines 40 --timeout 5000
herdr pane read "$pane" --source recent-unwrapped --lines 40
Observed on failure:
pane run: exit 0, no stdout or stderr
pane wait-output: {"error":{"code":"timeout","message":"timed out waiting for output match"},...}
pane read: exit 0, empty output
The split marker ensures the echoed command cannot satisfy the match; only executed output contains HERDR_EXECUTED.
Impact
Background automation cannot rely on successful pane input. My subagent launcher must causally attest a sterile environment before starting a model, so every affected launch times out, rolls back its workspace, and never starts the agent.
Environment
- Herdr version: 0.8.0 (protocol 19)
- Update channel (stable or preview): stable
- Operating system: macOS 26.6, arm64
- Terminal: Ghostty 1.3.1
- Shell, if relevant: zsh
- Relevant config, if any: default persistent session with restore enabled; approximately 11 workspaces / 27 panes when first reproduced
Is this a reproducible bug?
Current behavior
After restarting Herdr and restoring my existing default session, a fresh workspace created with
--no-focuscan have a running zsh child but no readable terminal output.pane run,pane send-text, andpane send-keysreturn success, but the submitted command does not execute;pane wait-outputtimes out andpane readremains empty.I reproduced this on three consecutive disposable workspaces. It is stateful/intermittent: after activating a disposable workspace, later fresh-workspace probes sometimes succeed. The server log contained no error for the failed input calls.
Expected behavior
A pane returned by
workspace createshould execute accepted input independently of whether its workspace has been focused. Otherwise the input call should return a structured not-ready or delivery error rather than success.Reproduction
Observed on failure:
The split marker ensures the echoed command cannot satisfy the match; only executed output contains
HERDR_EXECUTED.Impact
Background automation cannot rely on successful pane input. My subagent launcher must causally attest a sterile environment before starting a model, so every affected launch times out, rolls back its workspace, and never starts the agent.
Environment