Repository navigation
devcontainer-kit v0.3.2
Interface stays 2.
Added
-
The host's SSH keys inside containers, opt-in (
[ssh] copy_keys = truein the host
profile; off by default, a repository'sdck.tomlcannot set it). Tools that only offer
key files, such asgh auth login, ignored the forwarded agent and asked to generate a
new key. With it on,dck upbinds the host's~/.sshread-only at~/.ssh_host
through a runtime compose overlay ($TMPDIR/dck-<uid>/<project>-sshkeys.yml), and every
container start copies itsid_*keys into the container's~/.sshon the state
volume (private 0600,.pub0644, refreshed when they change on the host, removed when
removed there). dck's ownconfig,config.d/,authorized_keysand
known_hosts.dck-hostare never touched, a key the container made itself is kept, and
the agent forwarding is unchanged. Turning it off removes the copies at the next start.
While it is on, the whole host~/.sshis readable inside (read-only), not only the
id_*keys, and private keys rest in the state volume: the trade-off and the wipe are
indocs/SECURITY.md. New entrypoint functiondck_ssh_copy_keys. -
dck setupasks once, on a terminal, whether to copy the host's SSH keys (default no)
and records the answer in the profile's[ssh]table. -
dck doctorreports the opt-in and the key file names (ssh keys copied: …, names
only);doctor --jsongains an optionalssh_keysobject (enabled,reason,
host_keys,copied). -
The agents layer installs coding-agents-kit's three skills (
agentkit,
agentkit-setup,agentkit-orchestrate) from the same verified release tarball into
the image's shared skills directory; the entrypoint links them into every agent's
skills directory at each start, so a recreate no longer loses them. -
The repository dogfoods its own container (
.devcontainer/,docker/local/,
dev.sh): python-3.13 with every coding-agents-kit CLI, Herdr, herdr-peers and
shellcheck, registered as a Herdr machine; the unit gate runs inside.
Fixed
[compose] state_volumeindck.toml(anddck init --state-volume NAME): the
name of the service's state volume (sshd host key,~/.ssh, gh auth, Herdr client
state, history). It was hardcoded asstate, so repositories sharing one compose
project (oneCOMPOSE_PROJECT_NAME) all mounted one<project>_statevolume. The
default staysstate, so no existing install loses its volume; only the compose
volume's name changes, the mount point (~/.dck/volumes/state) does not. The agents
layer's volumes stay shared by name.dck doctorflags a compose project shared with other services whose state volume is
not per service (or another service mounting the same state volume), with the fix;
doctor --jsongains an optionalcomposeobject. The doctor now resolves the compose
project like the launcher and compose (COMPOSE_PROJECT_NAMEfrom the environment or
the compose directory's.envbefore the file'sname:).dck doctorsays when Claude's default account will not be logged in inside (its
host login is the macOS keychain, never shared, andCLAUDE_CODE_OAUTH_TOKENis not in
ak's env file), with both fixes, instead of a bare "not copied" line.- A container built from scratch reaches the host and its peers at once:
dck rebuild,
dck startanddck restartnow run the same post-start steps asdck up— the Herdr
machine is registered (re-added when it was removed, its host key re-pinned), the mesh
and the host-catalog mirror are pushed, and the layout is created. A rebuild after the
volumes were removed left an empty Herdr catalog inside untildck herdr meshran by
hand.
Changed
- Pins: coding-agents-kit v0.5.1 (
AGENTKIT_TAG; tag commit48c38f8, tarball
sha25662cde0e8…,SHA256SUMSsha256400e8fd6…). - Agent tooling: the vendored
deepworkplanskill moves to v7.6.1 (skills-lock.json,
AGENTS.md provenance), through the pack's own addon planner; the AI Diff Reviewer
stays at v3.3.9, the pack's pin.
Install
git clone --branch v0.3.2 https://github.com/DailybotHQ/devcontainer-kit
./devcontainer-kit/install.shVerify a clone with shasum -a 256 -c SHA256SUMS. Images: ghcr.io/dailybothq/devcontainer-kit-base:{python-3.13,node-24,debian}-v0.3.2 (digests in the images workflow run).