Skip to content

fix(herdr): host pane clients in the operator's shell - #121

Merged
Inakitajes merged 1 commit into
mainfrom
fix/fix-herder-compatibility
Sep 17, 2026
Merged

Inakitajes merged 1 commit into
mainfrom
fix/fix-herder-compatibility

Conversation

@Inakitajes

Copy link
Copy Markdown
Owner

Why

Convoy forced ZDOTDIR=/var/empty on herdr pane split to make the pane prompt appear fast. That suppressed the operator's shell startup, which caused two problems:

  • After the client exited, the pane was left in a bare, unconfigured shell.
  • The skipped startup files are what re-establish the operator's PATH ordering, so the pane could resolve opencode to a different binary than the operator's shell. On Herdr 0.9.0 this surfaced as zsh: killed (SIGKILL 137) when a stale Homebrew opencode shadowed the operator's ~/.opencode/bin/opencode.

What changes

  • Stop forcing ZDOTDIR=/var/empty; the pane loads the operator's normal login/interactive startup.
  • Keep injecting working directory, PATH, and per-open env on the split.
  • Wait for the pane's output to settle (revision poll, bounded) before pane run instead of typing on the first line; keep the retry loop.
  • Update Herdr tests, docs/running.md, and the work-conversations spec; archive the change.

Verification

  • bun run typecheck → exit 0
  • bun test test/opencode.test.ts → 94 pass, 0 fail
  • bun test → 3402 pass, 0 fail
  • Manual inside Herdr via the real openSessionCommand path: pane resolves ~/.opencode/bin/opencode, opencode --version returns 1.18.31 with exit 0, ZDOTDIR unset, normal shell prompt after exit.

- stop forcing ZDOTDIR=/var/empty on `herdr pane split`
- load the operator's login/interactive startup so the pane resolves the
  same `opencode` their shell would and returns to a normal shell on exit
- wait for the pane output to settle before `pane run` instead of typing on
  the first line, keeping the retry loop
- update the Herdr tests, running docs, and the work-conversations spec
- archive the completed fix-herdr-user-shell change
@Inakitajes
Inakitajes merged commit d9acb7e into main Sep 17, 2026
@Inakitajes
Inakitajes deleted the fix/fix-herder-compatibility branch September 17, 2026 11:31
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