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.

Read the failure signature.

command -v bashsucceeds

The executable is present outside Harness.

test -d "$old_workspace"fails

The Session has a missing cwd candidate.

read / editstill work

Only the subprocess boundary may be broken.

bash / grep / globfail together

Shared 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.

Continue the old SessionMove the complete project back.

Preserve the exact cwd, then verify repository identity before writes.

git -C "$old_workspace" status --short
Keep the new locationStart a fresh Session.

Select the new canonical workspace and hand off only the context you need.

new cwd + new Session ID
Compatibility bridgeSymlink with care.

Validate canonical roots, instructions, watchers, and policy before resuming.

realpath "$old_workspace"

Route nearby errors.

cwd missingMoved workspaceRestore path or start fresh
bash missingShell installationConfigure the real executable
EACCESPermission or sandboxInspect the enforcing boundary
fresh Session failsRuntime or profileTest a known-good install

Primary evidence.

Keep the full decision table.

The canonical runbook includes symlink caveats, prevention rules, incident evidence, and exact source boundaries.

Read the full runbook