fix(run): confine dispatch guidance to the preparing host - #274
Merged
Conversation
The generated recipes carry the absolute paths of the host that prepared the workspace, so the shell that dispatches them has to resolve those same paths. Git Bash shares the Windows filesystem and does; WSL resolves its own namespace, where a `C:\...` path names nothing, and nothing in the tree translates between the two. Guidance that listed Git Bash and WSL side by side — and a preflight warning inviting an operator to "prepare here and dispatch from a POSIX shell" — pointed at a split that fails quietly. POSIX_TOOLING_REQUIREMENT now states the constraint once and names WSL as where eval-magic runs rather than somewhere to dispatch into; its four Markdown consumers pick that up, and AFTER_HELP mirrors it by hand for clap. Also records the support tiers under "Platform support" in the developer overview: Linux and macOS supported, Windows through Git Bash deprecated with removal gated on #256, and the Windows-prepare/WSL-dispatch split unsupported. Before: ⚠ no POSIX shell found. ... The workspace and recipes below are still correct — prepare here and dispatch them from a POSIX shell. After: ⚠ no POSIX shell found. ... The workspace and recipes below are still correct — dispatch them from a POSIX shell on this host. Verification: cargo fmt --check, cargo clippy --all-targets --all-features -- -D warnings, cargo test --all-targets (1146 passed, 0 failed). Golden fixtures re-blessed with GOLDEN_BLESS=1; the diff is one line per fixture. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This was referenced Aug 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
The generated dispatch and judge recipes carry the absolute paths of the host that prepared the workspace, so the shell that eventually runs them has to resolve those same paths. Git Bash shares the Windows filesystem and does. WSL resolves its own namespace, where a
C:\...path names nothing — and nothing in the tree translates between the two (nowslpath, no/mnt/chandling anywhere).Guidance that listed Git Bash and WSL side by side as equivalent Windows options pointed at a split that fails quietly.
src/cli/run/orchestrate/shell.rswent further and documented it as supported — "Preparing on Windows and dispatching from WSL is a legitimate split" — while its preflight warning told operators to "prepare here and dispatch them from a POSIX shell."User-facing change
POSIX_TOOLING_REQUIREMENT(src/core/runtime.rs) states the constraint once and names WSL as where eval-magic runs rather than somewhere to dispatch into. Its four Markdown consumers —RUNBOOK.md,dispatch-manifest.md, and both shell-discovery errors — pick that up automatically.AFTER_HELPmirrors it by hand for clap, per the convention in AGENTS.md.Preflight warning, before and after:
Documentation
docs/developer_overview.mdgains a Platform support section recording the tiers: Linux and macOS supported, Windows through Git Bash deprecated with removal gated on #256, and the Windows-prepare/WSL-dispatch split unsupported with the reason it cannot work.AGENTS.mdpoints at it; the README carries the user-facing deprecation note.No schema or CLI-surface changes.
Verification
Two new tests, both written first and confirmed failing against the old wording:
the_declared_requirement_places_wsl_around_eval_magic_not_downstream_of_it(src/core/runtime.rs)a_missing_shell_confines_dispatch_to_the_host_that_prepared_the_workspace(src/cli/run/orchestrate/shell.rs)Ten golden fixtures re-blessed with
GOLDEN_BLESS=1 cargo test golden_; the diff is one line per fixture — the requirement sentence and nothing else.cargo run -- --helpchecked for the rendered REQUIREMENTS block.Context
This is the pre-refactor half of a Windows support decision: correct what is claimed now, and defer the code, CI, and distribution removal until after #256 replaces the POSIX recipe surface with a runner-driven
eval-magic dispatch.🤖 Generated with Claude Code