# Changelog ## 1.1.1 - 2026-10-23 - `doos apparmor` prints a profile for the exact path of the running binary (own profile name per path, so several installs coexist). A start that fails because of AppArmor now prints the install command instead of only `mount bind /: Permission denied`. Verified with a copy in `~/.local/bin`. - `apparmor/doos` (packaging) covers more standard install paths. - Docs: Networking section with a verified example per mode (slirp, pasta, host, none), the inbound/loopback behavior of each, and the pasta port-detection delay. - Tests: 86 checks (adds apparmor output, `none`, slirp has no inbound path, pasta container to container). ## 1.1.0 - 2026-10-23 - Limits: `--memory`, `--pids`, `--cpus` (cgroup v2; whole-container OOM kill; reports OOM kills and pid-limit hits). Later attaches run in their own cgroup leaf with the same limits. - Hardening (default): Docker's default capability set, a seccomp filter (arch check, x32 guard, clone3 ENOSYS, no nested user namespaces, no mounts/keyrings/bpf/perf/io_uring/...), host `/etc` allowlist. `--hardening relaxed` turns it off per container. - Networking: `--net pasta` (host-like reachability, private namespace and abstract sockets). `--net host` now prints a note. - Size cap: measured from inside the id map (counts other uids), paced by scan cost (2 s floor), `RLIMIT_FSIZE` bounds single files. - Images: Debian in the catalog (`debian`, `debian-RELEASE`); Alpine and Ubuntu signatures verified against pinned key fingerprints. - Fix: a failed `get_or_create` no longer leaves an unreadable container directory behind. - Tests: 83 end-to-end checks. ## 1.0.0 - 2026-10-23 Breaking: state layout changed (private `/etc`, `meta` keys). Containers from 0.x must be deleted and recreated. - Images: `doos image list|add|delete`, `--image NAME` on `get_or_create`/`attach` (fetched on demand). Catalog: `alpine`, `ubuntu`, `ubuntu-VERSION`; also https URL with `--sha256`, or a local tarball. sha256 verified before extraction. - `--size`: cap for what a container writes (default 4g). Warns at 80%, freezes at 100% via cgroup v2, thaws below 95%. - `--ids`: subuid mapping through newuidmap/newgidmap by default (chown, su and apt's `_apt` work); falls back to one id. - Host mode fixes: directory skeleton so host-owned directories are writable, private copy of `/etc`, pre-seeded `/var` and dpkg state. `apt-get install` now completes. - Deleting trees with subuid-owned files works (runs inside the id map). - Usage measurement counts hard links once. - Tests: 56 end-to-end checks, including real image downloads, apt/apk installs and the size freeze. ## 0.1.3 - 2026-10-23 - Docs: field trial of apt and common tools, new gap G7 (host-owned lower layer), README limits section. No code change. ## 0.1.2 - 2026-10-23 - Docs: researched solutions for all known gaps (G1 to G6) in `docs/RESEARCH.md`, with measurements. Nothing implemented yet. ## 0.1.1 - 2026-10-23 - Docs: AGENTS.md release workflow, ARCHITECTURE.md, expanded README, this changelog. - Tooling: `scripts/release.sh` (bump, build, test, commit, tag). ## 0.1.0 - 2026-10-23 - First release: `list`, `get_or_create`, `attach`, `delete`. - overlayfs over host `/usr /etc /opt`, user/mount/pid/uts/ipc/net namespaces. - Networking: slirp4netns (default), `host`, `none`. - End-to-end test suite and AppArmor profile for Ubuntu 24.04+.