Skip to content

Herdr compatibility improvements #3539

Description

@taoeffect

Description

Problem

Crush reports its state (idle, working, waiting on the user) to Herdr so Herdr can show accurate agent status without scraping the screen. The reported state is often wrong:

  • Crush looks busy when it's actually idle at the prompt.
  • Crush looks busy when it's actually waiting for the user (questions, re-login).
  • Sub-agent turns make Crush look finished while the real turn is still going.

That breaks the main thing Herdr is for: seeing which of your agents need attention and waiting on them. Crush panes also carry no session info, so they're hard to tell apart.

Separately, in client/server mode the background crush server claims the pane that launched it, then reports state for unrelated workspaces and frees the pane's agent when any of them shuts down.

Solution

Make the state Herdr shows always match what the user sees:

  • Report "blocked" whenever Crush is waiting on the user — permission prompts, the question tool, re-authentication — with a short reason so Herdr can say what it's waiting for.
  • Return to "idle" after /compact finishes. Right now nothing ever ends that state, which is the main source of the stuck "working".
  • Ignore sub-agent turns. Only the session the user is looking at should drive pane state.
  • Switch to "working" when the prompt is submitted, not when the first output arrives.
  • Publish the session title and model as pane metadata so panes are identifiable.
  • Keep the detached server from touching the client's pane.

Optionally, a Herdr notification backend so Crush's "agent finished" toasts surface in Herdr's UI.

Note

This investigation was done by Opus 5 at my request after testing Crush in Herdr

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions