Skip to content

Releases: reflective-exp/compostbin

v0.10.0

Choose a tag to compare

@sax sax released this 29 Sep 17:02
e9a78df

Changelog

  • Add compostbin install, which installs or updates compostbin's Claude skills
    in ~/.claude/skills.
    • compostbin-manifest
  • Move manifest documentation from the README to docs/manifest.

Diffs

https://github.com/reflective-exp/compostbin/commits/v0.10.0
https://github.com/reflective-exp/compostbin/compare/v0.9.1..v0.10.0

SHA256:

e69504af7745688eb2f195d82f789a745e48e908ed5d866f6fd720bf01ff16f1  compostbin-darwin-arm64.tar.gz

v0.9.1

Choose a tag to compare

@sax sax released this 24 Sep 05:40
3f69a30

Changelog

  • Extract containerization-framework to external repo; compostbin uses the published crate.
  • Create the session's Claude home before the container mounts it. A host with no ~/.claude and seed_from_keychain = false had nothing to create it, and the session failed to boot on a mount source that did not exist.

Diffs

https://github.com/reflective-exp/compostbin/commits/v0.9.1
https://github.com/reflective-exp/compostbin/compare/v0.9.0..v0.9.1

SHA256:

f11401cdf9d425f2106f6d4214852f4745ece1d9d577e179b0ddbe87fe6d9f3e  compostbin-darwin-arm64.tar.gz

v0.9.0

Choose a tag to compare

@sax sax released this 21 Sep 05:31
04e62d2

Changelog

  • Add compostbin exec <command>, which runs something other than Claude in the session, with -t for a terminal and -U / --user <user> for the guest user. run always attaches Claude, and shell is now exec -t bash.
  • Attach every process to the caller's own stdin, stdout and stderr, instead of running it with no streams at all when the caller has no terminal. Piping a prompt in, or redirecting output to a file, now works, whether the command creates the container or joins one already running.
  • Run [container] setup lines without the caller's stdin, which they could otherwise read before the attached process started.
  • Host terminal resizes get passed through to guest processes.

Diffs

https://github.com/reflective-exp/compostbin/commits/v0.9.0
https://github.com/reflective-exp/compostbin/compare/v0.8.1..v0.9.0

SHA256:

49cc3078f47de29e6025294bf6e825fda60a71ce3d7f7a92ba83e6f8134e0fd0  compostbin-darwin-arm64.tar.gz

v0.8.1

Choose a tag to compare

@sax sax released this 18 Sep 20:35
bf8dfb4

Changelog

  • Specify a small, random container ID for the container builder.

Diffs

https://github.com/reflective-exp/compostbin/commits/v0.8.1
https://github.com/reflective-exp/compostbin/compare/v0.8.0..v0.8.1

SHA256:

c00d8ef46f2918e80274c271601d3ff54b61ae3a70576d028d53653075953053  compostbin-darwin-arm64.tar.gz

v0.8.0

Choose a tag to compare

@sax sax released this 18 Sep 16:23
3c13204

Breaking!

This removes all dependency on Apple's container CLI, and will require re-building images after updating. As a pre-1.0 project, I'm deciding to release this without bumping the major version, in the interest of exercising as much as possible on the road to 1.0.

After updating, compostbin images will be built into ~/.cache/compostbin/images. Nothing cleans up the images we build in container's cache, so to do a full cleanup (assuming you're not using it for other projects):

container stop -a
container prune
container image rm -a
container system stop

Changelog

  • Breaking: build images with Containerization instead of container build and BuildKit. Removes last references to Apple's container CLI.
    • Requires rebuilding images!
  • Breaking: remove compostbin stop, compostbin port-relay and compostbin host-agent -- these commands were all around controlling Apple's container CLI.
  • Unpack each image once and clone it for every compostbin run, instead of unpacking it again on each run. Starting a session is near-instant after the first, and sessions on one image share disk blocks.
  • Add [container] setup, shell lines run as claude in the project directory each time the container is created, before Claude starts.
  • Add -U / --user <user> to shell. Defaults to the claude user.
  • Fix [container] env not reaching Claude or setup.

Diffs

https://github.com/reflective-exp/compostbin/commits/v0.8.0
https://github.com/reflective-exp/compostbin/compare/v0.7.0..v0.8.0

SHA256:

9b2cb79ecbca8684e542e67746f3bf6e08d05abf5796241a4998326801c2b4df  compostbin-darwin-arm64.tar.gz

v0.7.0

Choose a tag to compare

@sax sax released this 14 Sep 00:05
1f41e11
  • Add .config/compostbin.local.toml, which can mount extra [[paths]] in a git-ignored file.

https://github.com/reflective-exp/compostbin/commits/v0.7.0
https://github.com/reflective-exp/compostbin/compare/v0.6.0..v0.7.0

SHA256:

ea0815d3d90cc1a48f6a6354d007d9bfdcb76f89836e5fc0b98d1e690b56c48f  compostbin-darwin-arm64.tar.gz

v0.6.0

Choose a tag to compare

@sax sax released this 13 Sep 21:56
c50c5ac
  • Relay [host] ports through a unix socket per port instead of the vmnet gateway, so a forwarded port reaches the session's container and nothing else. Needs a compostbin build.
  • Hold the port sockets in a relay that lives as long as the container rather than as long as the attached session, so a second compostbin run keeps its ports.
  • Add a host ports check to doctor, which names a port nothing is listening on and a relay that has died.
  • Fix a host channel that went silently dead: clean and the cleanup after Claude exits unlinked the spool directory the running container was mounting, so every later shell and host-agent for that container wrote to a directory the guest could no longer reach. Both now empty it in place.
  • Install native claude into /usr/local/bin/claude and remove node from the base container.
  • Remove build-essential from base docker file.

https://github.com/reflective-exp/compostbin/commits/v0.6.0
https://github.com/reflective-exp/compostbin/compare/v0.5.0..v0.6.0

SHA256:

913a31eee8c613dd6fd8813c0b6315c929d468b95de57d850fcd7624eed3c039  compostbin-darwin-arm64.tar.gz

v0.5.0

Choose a tag to compare

@sax sax released this 11 Sep 17:35
5977a9b
  • Add [host] clipboard to send the guest's pbcopy, xclip, xsel and wl-copy to the macOS clipboard. Needs a compostbin build.

https://github.com/reflective-exp/compostbin/commits/v0.5.0
https://github.com/reflective-exp/compostbin/compare/v0.4.0..v0.5.0

SHA256:

7155878c6e9cec889e85b42aed69eef0ab610b4498176bb936f858d61b2729d6  compostbin-darwin-arm64.tar.gz

v0.4.0

Choose a tag to compare

@sax sax released this 11 Sep 16:46
dcaf61d
  • Harden against container escapes.
  • Add deny to [host.commands.*], replacing the built-in cargo deny list (--config, --manifest-path, -Z). Nothing is denied by default.
  • Avoid redundant symlink walks for nested workspace entries.
  • Run tty = true host commands under a pty only when the caller's stdout is a terminal, so captured output has no escape codes.

https://github.com/reflective-exp/compostbin/commits/v0.4.0
https://github.com/reflective-exp/compostbin/compare/v0.3.0..v0.4.0

SHA256:

5cd955acb23a9032340d67ccec9989a89ceb1a4ed65f69a550c940f1bd23cae2  compostbin-darwin-arm64.tar.gz

v0.3.0

Choose a tag to compare

@sax sax released this 11 Sep 14:23
357ba60
  • Add [host] ports to relay host ports into containers.

https://github.com/reflective-exp/compostbin/commits/v0.3.0
https://github.com/reflective-exp/compostbin/compare/v0.2.0..v0.3.0

SHA256:

c2db955a3d550ffdd4a21ec611b8b815b8cc26ff35c84f5095a2cb4bc80f4906  compostbin-darwin-arm64.tar.gz