You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add gemini agent support and Docker-in-Docker auto-mount
- Add gemini.sh agent with oauth, api-key, vertex, and compute-adc auth
- Auto-mount /var/run/docker.sock by default with --no-docker opt-out
- Switch copilot-api to ericc-ch fork for latest features
- Track gemini-cli, atlas-cli, and copilot-api versions in builds
- Enhance version-report with colorized output and release dates
- Reorganize Dockerfile for better cache reuse
- Document container sandboxing architecture and Docker socket security
Copy file name to clipboardExpand all lines: AGENTS.md
+27Lines changed: 27 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,19 @@
1
1
This file provides guidance to codex, Claude Code when working with code in this repository.
2
2
3
+
## Deva Architecture: Container-Based Agent Sandboxing
4
+
5
+
**CRITICAL DESIGN PATTERN**: Deva purposely runs ALL agents inside Docker containers. The container IS the sandbox.
6
+
7
+
- Each agent (claude, codex, gemini) runs in isolated container environment
8
+
- Agent internal sandboxes/permission systems are DISABLED:
9
+
- claude: `--dangerously-skip-permissions`
10
+
- gemini: `--yolo` flag
11
+
- codex: equivalent unrestricted mode
12
+
- Container provides security boundary instead of agent-level prompts
13
+
- Result: No interactive permission prompts while maintaining isolation
14
+
15
+
**Why**: Avoids permission fatigue in trusted workspaces while keeping agents containerized for safety.
16
+
3
17
## We're following Issue-Based Development (IBD) workflow
4
18
1. Before running any Git/GitHub CLI `Bash` command (`git commit`, `gh issue create`, `gh pr create`, etc.), open the corresponding file in @workflows to review required steps.
5
19
2. Always apply the exact templates or conventions from the following files:
@@ -121,6 +135,19 @@ Model aliases are automatically converted to appropriate formats (API model name
121
135
- Requires explicit confirmation (`yes`) to proceed
122
136
- Protects users from accidentally giving Claude access to all personal files
123
137
138
+
**Docker Socket Warning** (SECURITY-SENSITIVE):
139
+
By default, `/var/run/docker.sock` is auto-mounted if present. This grants full Docker API access to the container - effectively equivalent to root on the host. The "container as sandbox" model is weakened when Docker socket is mounted.
140
+
141
+
Implications:
142
+
- Agent can start/stop any container on host
143
+
- Agent can mount any host path into new containers
144
+
- Agent can escape to host via privileged container creation
145
+
146
+
Mitigations:
147
+
- Use `--no-docker` flag to disable auto-mount
148
+
- Set `DEVA_NO_DOCKER=1` environment variable
149
+
- Only mount when Docker-in-Docker workflows are required
Copy file name to clipboardExpand all lines: CLAUDE.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,17 @@
2
2
3
3
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
4
5
+
## Deva Architecture: Container-Based Agent Sandboxing
6
+
7
+
**CRITICAL DESIGN PATTERN**: Deva purposely runs ALL agents inside Docker containers. The container IS the sandbox.
8
+
9
+
- Each agent (claude, codex, gemini) runs in isolated container environment
10
+
- Agent internal sandboxes/permission systems are DISABLED (e.g., claude --dangerously-skip-permissions, GEMINI_SANDBOX=false)
11
+
- Container provides security boundary instead of agent-level prompts
12
+
- Result: No interactive permission prompts while maintaining isolation
13
+
14
+
**Why**: Avoids permission fatigue in trusted workspaces while keeping agents containerized for safety.
15
+
5
16
## We're following Issue-Based Development (IBD) workflow
6
17
1. Before running any Git/GitHub CLI `Bash` command (`git commit`, `gh issue create`, `gh pr create`, etc.), open the corresponding file in @workflows to review required steps.
7
18
2. Always apply the exact templates or conventions from the following files:
Copy file name to clipboardExpand all lines: DEV-LOGS.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,11 @@
14
14
- Reference issue numbers in the format `#<issue-number>` for easy linking.
15
15
16
16
17
+
# [2025-11-27] Dev Log: Docker-in-Docker auto-mount support
18
+
- Why: Common dev workflow need - testing containers, building images, CI/CD simulation inside deva environments
19
+
- What: Auto-mount Docker socket (`/var/run/docker.sock`) by default with graceful detection, opt-out via `--no-docker` flag or `DEVA_NO_DOCKER=1`, quick permission fix (chmod 666) for deva user access
20
+
- Result: DinD works out-of-box on Linux/macOS/WSL2, no manual socket mounting needed, aligns with YOLO philosophy (make it work, container is the boundary)
21
+
17
22
# [2025-10-26] Dev Log: Custom credential files via --auth-with
18
23
- Why: Users have multiple credential files, needed direct path support beyond predefined auth methods
19
24
- What: `--auth-with /path/to/creds.json` now works, auto-backup existing credentials, workspace session tracking in `~/.config/deva/sessions/*.json`
0 commit comments