Converge MSYS_NO_PATHCONV=1 into Windows-host ansible (kill MSYS path-mangling of leading-slash args) #449
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/infrastructure#449
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
On Windows hosts, the Claude Code Bash tool (and any git-bash/MSYS2 shell) auto-converts leading-slash arguments into Windows paths.
aws ssm get-parameter --name /forgejo/api-tokengets mangled intoC:/msys64/forgejo/api-token, which returnsParameterNotFound. This bites agent sessions daily and every session re-derives the diagnosis from scratch.Root cause: MSYS path conversion. Fix:
MSYS_NO_PATHCONV=1.What was done (object-level)
Set
MSYS_NO_PATHCONV=1in this tower's Windows user environment (HKCU\Environment, via[Environment]::SetEnvironmentVariable(...,'User')). Confirmed reading back as1. Inherited by every future shell + agent session on this box.Meta-fix (this issue)
That fix is machine-local — it won't follow to another Windows host, which conflicts with the fleet-converged-config doctrine. Codify
MSYS_NO_PATHCONV=1in the Windows-host ansible convergence (agent-compose / the Windows env role) so a fresh Windows checkout gets it automatically.Collateral / notes
MSYS_NO_PATHCONV=1disables the helpful/c/foo -> C:\footranslation. Per-command escape hatch:MSYS_NO_PATHCONV= docker run -v /c/foo:/foo ....~/.claude/settings.jsonenv block (agent-only), or a surgicalaws()wrapper (aws-only). Machine-wide was chosen for full coverage.WARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-codex-infrastructure-449on hostkais-macbook-pro-2.local.Reserved by
ward agent --harness codex(reserved 2026-07-10T11:26:32Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (1h TTL).--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
run seed context — what this run is carrying (ward#609)
coilyco-flight-deck/infrastructure#449· branchissue-449· harnesscodex· workflowdirect-mainengineer-codex-infrastructure-449· wardv0.580.0· dispatched2026-07-10T11:26:32ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.580.0).
— Codex, via
ward agentWARD-OUTCOME: done
details
workflow: direct-main; review summary: review gate skipped by ~/.ward/config.yaml default retrospective: the implementation felt straightforward once the staged Windows group and env-role split were in place. confidence: high surprises: the local ansible dry-run hit a missing `brew` on the container, which was unrelated to this change. follow-ups: none.