{"version":"2.1.239","anchor":"a-shell-wrapper-that-prepends-a-private-directory-to-path-fo","canonical_anchor":"a-shell-wrapper-that-prepends-a-private-directory-to-path-fo","heading":"A shell wrapper that prepends a private directory to PATH for Bash commands, wired in but switched off","tier":"soon","area":"Bash Tool","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239\/e\/a-shell-wrapper-that-prepends-a-private-directory-to-path-fo","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239","markdown":"### A shell wrapper that prepends a private directory to PATH for Bash commands, wired in but switched off\n\nBash commands could get a private directory prepended to PATH, but nothing ever supplies one.\n\n**What**\n\nNew machinery creates a private directory under Claude Code's temp root and prepends it to PATH, and optionally PYTHONPATH, for every Bash tool call via a prologue spliced into the command string. The bash command builder already calls it. It is inert: the function the runtime consults returns nothing unconditionally, as does the provider of the directory's contents, so no prologue is ever added.\n\n**Details**\n\n- The remote config key is `tengu_sl_gate_config`, whose in-source fallback is enabled false, enforce false, everywhere false, python_leg \"on\".\n- That config reader has no caller anywhere in the bundle, so the fallback is not what decides the behaviour; the stubbed runtime check is.\n- The prologue is wrapped as `'eval' '...' 2>\/dev\/null || 'true'` so a failure cannot break the command.\n- Telemetry names `bash_sl_gate` success and materialise_failed are already registered.\n- None of this exists in 2.1.238.\n\n**Evidence**\n\n`tengu_sl_gate_config`, `carrier dir resolves outside the claude temp root`\n\n- Area: Bash Tool\n- Tier: Nothing to try yet\n- Useful: 1\/5\n- Signal: 4\/5\n- Present in the build but not switched on"}