Do not reinstall Bash firstNode can name the executable in an
ENOENT even when the missing object is the child process cwd.One path feeds several tools.
Durable identitySession header cwd
→
Tool routingDefault workdir
→
Host executionSubprocess cwd
→
FailurePath is missing
Read the failure signature.
command -v bashsucceedsThe executable is present outside Harness.
test -d "$old_workspace"failsThe Session has a missing cwd candidate.
read / editstill workOnly the subprocess boundary may be broken.
bash / grep / globfail togetherShared workspace routing is the stronger lead.
command -v bash
old_workspace='/absolute/path/recorded/by/the/session'
test -d "$old_workspace" && printf 'workspace exists\n' || printf 'workspace is missing\n'
Choose the identity you want.
Preserve the exact cwd, then verify repository identity before writes.
git -C "$old_workspace" status --shortSelect the new canonical workspace and hand off only the context you need.
new cwd + new Session IDValidate canonical roots, instructions, watchers, and policy before resuming.
realpath "$old_workspace"Route nearby errors.
cwd missingMoved workspaceRestore path or start freshbash missingShell installationConfigure the real executableEACCESPermission or sandboxInspect the enforcing boundaryfresh Session failsRuntime or profileTest a known-good installPrimary evidence.
- Bash tool Session-cwd routing
- Local executor subprocess cwd
- Missing-workdir ENOENT contract test
- Unresolvable Session cwd indexing
- Community reproduction and immediate diagnostic
Keep the full decision table.
The canonical runbook includes symlink caveats, prevention rules, incident evidence, and exact source boundaries.
Read the full runbook