Skip to content

herdr: native-Windows launch surface (agent.start launch, pwsh parked dialect, Windows-host re-characterization) #140

Description

@pbean

The herdr backend (#136 run path, #137 TUI-launch surface) ships end-to-end on POSIX. Its native-Windows launch surface was deliberately deferred ("PR-6" in the PR bodies) and currently has no open tracker — the umbrella #92 is closed. This issue is that residue.

Remaining work

  1. win32 launch path via herdr agent.start — the POSIX launch types exec <argv> into a fresh tab so process-exit == pane-close == window death (herdr_backend._launch); exec has no Windows equivalent, and agent.start (which splits the active tab) is the reserved win32 launch verb. Source: herdr_backend.py module-docstring degradation ledger + the _launch comment.
  2. pwsh parked-window dialectnew_parked_window types a POSIX exec sh -c '<argv>; ec=$?; banner; read -r; trailer' recipe (the trailer cats the per-window return file). The pwsh dialect of the recipe + trailer is deferred alongside the launch path. Source: degradation ledger ("POSIX-only, like the exec launch (pwsh dialect is the Windows follow-up)").
  3. Re-run Phase-0 characterization on a real Windows host — the shipped backend is POSIX-verified / Windows-by-construction; no Windows box was available during feat(mux): herdr cross-platform multiplexer backend #136/feat(mux): herdr TUI-launch surface #137. Per docs/ROADMAP.md: "the Phase-0 characterization must be re-run on a real Windows host before Feature Request: Support for Native Windows (Remove tmux dependency for Windows developers) #92 is claimed."

Non-goals here

Selection note (no code change needed when this lands)

herdr registers matches=True but _PLATFORM_DEFAULTS still declares psmux the win32 default, so herdr activates on win32 only via first-match while no higher-priority backend is available — once psmux ships, the default reasserts automatically.

Refs: #92 (closed umbrella), #136, #137, #58, docs/ROADMAP.md "Native Windows multiplexer backend", docs/porting-to-a-new-os.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions