mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-15 23:32:46 +00:00
SandboxExec carried an ExplicitEnvPolicy that, for local runs, dropped credential-shaped names out of the caller's explicit environment before the spec reached the driver. The filter duplicated the sandbox driver's Host provider, which applies the same safelist and suffix list to the inherited process environment and, by its own contract, leaves explicit spec env alone as the deliberate channel for secrets. Since fabro composes the explicit environment itself, the second filter added no protection. It only stripped variables a caller had set on purpose, such as a GITHUB_TOKEN for a local command stage, and it forced every constructor to pick a policy by provider kind. This removes ExplicitEnvPolicy, the safelist, is_sensitive_env_var, and the env_policy field on SandboxExec and RunSandbox. SandboxExec::new takes only the exec facet, and the explicit environment goes to the provider as composed on every provider. The tests that exercised the filter are replaced by one that shows a credential-shaped explicit variable reaching the command on the Host provider; the BASH_ENV test stays, since that blank is the driver's and still holds. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| fabro-acp | ||
| fabro-agent | ||
| fabro-automation | ||
| fabro-checkpoint | ||
| fabro-dump | ||
| fabro-environment | ||
| fabro-github | ||
| fabro-graphviz | ||
| fabro-hooks | ||
| fabro-install | ||
| fabro-interview | ||
| fabro-llm | ||
| fabro-manifest | ||
| fabro-mcp | ||
| fabro-mcp-store | ||
| fabro-sandbox | ||
| fabro-slack | ||
| fabro-store | ||
| fabro-tool | ||
| fabro-tracker | ||
| fabro-validate | ||
| fabro-variable | ||
| fabro-workflow | ||
| fabro-workflow-version | ||