docs: Add release notes for 1.0.0
The upgrade swaps the runtime under the user's feet, and nothing reuses the old Docker containers or image: storage moves to ~/.local/share/containers, the image has to be rebuilt, and hosts without subuid/subgid mappings fail on the first run. Without notes that say so, the empty container list looks like data loss and the first failed start looks like a broken release.
This commit is contained in:
parent
ed1c9a7b92
commit
87ddc6edfb
1 changed files with 63 additions and 0 deletions
63
CHANGELOG.md
Normal file
63
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
# Release notes
|
||||||
|
|
||||||
|
## 1.0.0 — 2026-10-29
|
||||||
|
|
||||||
|
Containers now run with rootless Podman instead of Docker.
|
||||||
|
|
||||||
|
### Why
|
||||||
|
|
||||||
|
Whoever can talk to `/var/run/docker.sock` is root on the host. A single
|
||||||
|
`docker run --privileged -v /:/host` edits any file, including
|
||||||
|
`/etc/shadow` and your SSH keys. Being in the `docker` group is therefore
|
||||||
|
the same as having root, and an agent with that access leaves the project
|
||||||
|
directory whenever it likes — the confinement this tool exists for holds
|
||||||
|
only against accidents, not against a malicious tool call.
|
||||||
|
|
||||||
|
Rootless Podman removes the shortcut: containers run inside a user
|
||||||
|
namespace owned by you, and container root maps to a subordinate UID from
|
||||||
|
`/etc/subuid` instead of to host root. Nothing outside your own file
|
||||||
|
permissions is reachable, and the `docker` group is not needed at all.
|
||||||
|
|
||||||
|
### Upgrading
|
||||||
|
|
||||||
|
Rootless Podman has to work on the host first:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo pacman -S podman passt # or slirp4netns
|
||||||
|
grep "^$USER:" /etc/subuid /etc/subgid # expect an entry like 100000:65536
|
||||||
|
podman info >/dev/null && echo ok
|
||||||
|
```
|
||||||
|
|
||||||
|
If the subuid/subgid entries are missing, add them with
|
||||||
|
`usermod --add-subuids 100000-165535 --add-subgids 100000-165535 <user>`.
|
||||||
|
|
||||||
|
Existing Docker containers and images are not reused. They are left
|
||||||
|
untouched, and the first Podman run builds a fresh image
|
||||||
|
(`localhost/agent-container:latest`).
|
||||||
|
|
||||||
|
1. Rebuild the image with Podman:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git pull
|
||||||
|
agent-container update
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Remove the old Docker containers and image:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker ps -a --filter 'name=^ac-' --format '{{.Names}}' | xargs -r docker rm -f
|
||||||
|
docker rmi agent-container:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Use `pi`, `claude`, and `opencode` as before. The first run creates a
|
||||||
|
Podman container per project.
|
||||||
|
|
||||||
|
4. Leave the `docker` group once nothing else on the machine needs the
|
||||||
|
socket as your user, then log out and in again:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo gpasswd -d "$USER" docker
|
||||||
|
```
|
||||||
|
|
||||||
|
Your container home (`$XDG_DATA_HOME/agent-container/container-home`) is
|
||||||
|
untouched: logins, settings, and history carry over.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue