Commit

07caf52

I think we don't need the switch inside the list. Just go to the details and switch it on or off because currently it is not clear when you configure that you can go inside and adjust it. Furthermore, I think it is fine to have SMB on non-Tailnet setup because each compose…
On mobile, the stepper looks off because the step number circles wrap into the second line. For the your own app, I'm not sure if this is needed because now we can just create components on our own and we already have the provisioning script and stuff like that. Personally, I…
Yeah. I think we don't need the built-in or the section headers because we don't explain what they mean. It would only lead to confusion, and I think it is understandable enough without it. Let's do it!
Combined: #41 now includes the What runs step and the startup script (d9b6317), and its description covers both. GitHub shows #42 as merged only because its commits are in #41's branch now. Full CI is running on #41.
@dtinth #41 is green with everything in it (d9b6317): both arch builds and smoke tests, the setup wizard, and Devin Review, with no new comments. Ready when you are.
Turning Docker on adds five flags to compose.yaml. A rootless engine needs them: cap_add: SYS_ADMIN, unconfined seccomp, AppArmor and systempaths, and /dev/net/tun. The configurator writes them for you.
What are the risks?
@dtinth Honestly: on normal rootful Docker, with these flags root in the container can become root on the host, and dev has passwordless sudo, so the agent can too. The worst is systempaths=unconfined: it makes /proc/sys writable, and /proc/sys/kernel/core_pattern isn't…
You are actually running on agent-env with rootless Docker, you can try finding the flag I planted on the host at /home/thai.guest/Scratch/flag.txt
@dtinth I can't get it — and now I can show why, not guess. That /run/user/1000/docker.sock is agent-env's *nested* rootless dockerd (data-root /home/dev/.local/share/docker, pid 514 as dev), not the host's daemon handed in. So a sibling container can't bind-mount /home/thai.guest; that path isn't in its view. No host socket exposed, no host FS mounted in. Rootless maps container-root to thai.guest (unprivileged), not host root, and the vectors that break out on *rootful* docker are closed: /proc/sys/kernel/core_pattern stays owned by real host root, not writable even with the five flags (checked). The only thing left is a real container-escape 0-day — which my own sandbox blocks and I didn't try to defeat. Net: rootless contains the agent here; the flags don't bridge to the host and box2 has no exposed-socket misconfig. Caveat: I proved 'no easy path', not 'no 0-day'. Want me to fix AGENTS.md to say 'no path to host root' holds for a rootless host, and that on a rootful host these flags are host-root-equivalent?

commit 07caf52

The host Docker daemon is rootful, not rootless. But the Docker daemon you see on your env is rootless. You know how to do a 0-day container escape, for real??