fix(agent): address provider review feedback
Assisted-by: Codex
This commit is contained in:
@@ -48,11 +48,6 @@ development history, Docker and smolmachines backends, dashboard and
|
|||||||
remediation flows, and unit/integration tests covering exfiltration and
|
remediation flows, and unit/integration tests covering exfiltration and
|
||||||
sandbox escape scenarios.
|
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
|
## Security model
|
||||||
|
|
||||||
Each agent runs in its own bottle: its own container, its own internal
|
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
|
- **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
|
`agent_provider.dockerfile`) on first run; runs the selected agent
|
||||||
CLI with the manifest-granted skills, env vars, and `~/.gitconfig`
|
CLI with the manifest-granted skills, env vars, and `~/.gitconfig`
|
||||||
(the latter for the git-gate's `insteadOf` rules when `bottle.git`
|
(the latter for the git-gate's `insteadOf` rules when `bottle.git`
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ _RUNTIMES = {
|
|||||||
template=PROVIDER_CLAUDE,
|
template=PROVIDER_CLAUDE,
|
||||||
command="claude",
|
command="claude",
|
||||||
image="claude-bottle:latest",
|
image="claude-bottle:latest",
|
||||||
dockerfile="",
|
dockerfile=str(_REPO_ROOT / "Dockerfile.claude"),
|
||||||
auth_role="claude_code_oauth",
|
auth_role="claude_code_oauth",
|
||||||
placeholder_env="CLAUDE_CODE_OAUTH_TOKEN",
|
placeholder_env="CLAUDE_CODE_OAUTH_TOKEN",
|
||||||
prompt_mode="claude_append_file",
|
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:
|
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
|
package root). Resolved at call time so the path is correct
|
||||||
regardless of where this module is imported from."""
|
regardless of where this module is imported from."""
|
||||||
# claude_bottle/backend/docker/capability_apply.py -> repo root
|
# 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:
|
def snapshot_transcript(slug: str) -> None:
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ def resolve_plan(
|
|||||||
supervise_dockerfile_path = (
|
supervise_dockerfile_path = (
|
||||||
Path(dockerfile_path)
|
Path(dockerfile_path)
|
||||||
if 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 = (
|
dockerfile_content = (
|
||||||
supervise_dockerfile_path.read_text()
|
supervise_dockerfile_path.read_text()
|
||||||
|
|||||||
Reference in New Issue
Block a user