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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions