fix(agent): address provider review feedback
test / unit (pull_request) Successful in 35s
test / integration (pull_request) Successful in 47s

Assisted-by: Codex
This commit is contained in:
2026-05-28 17:24:39 -04:00
parent c9291f97e6
commit 8875d8cc17
5 changed files with 5 additions and 10 deletions
View File
+1 -6
View File
@@ -48,11 +48,6 @@ development history, Docker and smolmachines backends, dashboard and
remediation flows, and unit/integration tests covering exfiltration and
sandbox escape scenarios.
Current status: personal/small-team security tool, not yet enterprise
fleet infrastructure. Next work: central policy and audit, stronger
container hardening, SBOM/vulnerability scanning, and team/RBAC
support.
## Security model
Each agent runs in its own bottle: its own container, its own internal
@@ -143,7 +138,7 @@ and MCP endpoints resolve without an agent-side change.
```
- **agent image** — built from the provider template Dockerfile
(`Dockerfile` for Claude, `Dockerfile.codex` for Codex, or
(`Dockerfile.claude` for Claude, `Dockerfile.codex` for Codex, or
`agent_provider.dockerfile`) on first run; runs the selected agent
CLI with the manifest-granted skills, env vars, and `~/.gitconfig`
(the latter for the git-gate's `insteadOf` rules when `bottle.git`
+1 -1
View File
@@ -38,7 +38,7 @@ _RUNTIMES = {
template=PROVIDER_CLAUDE,
command="claude",
image="claude-bottle:latest",
dockerfile="",
dockerfile=str(_REPO_ROOT / "Dockerfile.claude"),
auth_role="claude_code_oauth",
placeholder_env="CLAUDE_CODE_OAUTH_TOKEN",
prompt_mode="claude_append_file",
@@ -128,11 +128,11 @@ def apply_capability_change(slug: str, new_dockerfile: str) -> tuple[str, str]:
def _repo_dockerfile_path() -> Path:
"""Path to the repo's Dockerfile (one dir above this module's
"""Path to the repo's Claude Dockerfile (one dir above this module's
package root). Resolved at call time so the path is correct
regardless of where this module is imported from."""
# claude_bottle/backend/docker/capability_apply.py -> repo root
return Path(__file__).resolve().parent.parent.parent.parent / "Dockerfile"
return Path(__file__).resolve().parent.parent.parent.parent / "Dockerfile.claude"
def snapshot_transcript(slug: str) -> None:
+1 -1
View File
@@ -183,7 +183,7 @@ def resolve_plan(
supervise_dockerfile_path = (
Path(dockerfile_path)
if dockerfile_path
else Path(__file__).resolve().parent.parent.parent.parent / "Dockerfile"
else Path(__file__).resolve().parent.parent.parent.parent / "Dockerfile.claude"
)
dockerfile_content = (
supervise_dockerfile_path.read_text()