Skip to content

Colonizer v0.2.5

Choose a tag to compare

@github-actions github-actions released this 04 Oct 16:13
Immutable release. Only release title and notes can be modified.
5620f66

Colonizer v0.2.5

Model requests survive a closed keep-alive connection

v0.2.4 made the model router name its failures, and that showed what was behind most of the old
"Anthropic is unreachable" errors: class=connection status=502 … detail=UND_ERR_SOCKET, about
0.1 s after the request started. The router had reused a pooled connection that the server had
already closed, so the request never reached Anthropic. In v0.2.5
(#1001):

  • The router retries once, on a fresh connection. When a connection is closed or reset under a
    request (UND_ERR_SOCKET "other side closed", ECONNRESET, EPIPE) before any byte of the
    answer has arrived, the same request is sent again straight away on a new connection. A 502 is
    returned only if that retry fails too, and there is never a third attempt.
  • Only safe replays. "No byte received" is measured on the socket, not guessed from the error
    code. Nothing is replayed after a timeout, a connect, DNS or TLS failure, an HTTP answer, or any
    part of the response.
  • It is logged. Each retry is a model_router line with class=connection_retry and the
    error code, so you can see how often it happens.
  • Explicit keep-alive settings. An idle pooled socket is reused for at most 4 s, or the
    server's Keep-Alive hint less 2 s, and never longer than 30 s whatever the hint.

What's new in v0.2.5

The rest, each backed by an entry in
CHANGELOG.md:

  • Search earlier colonies' conversations. The cockpit's History view has a search panel, and a
    colony gets a read-only colony_history_search tool scoped to its own org and sensitivity
    (#739).
  • Colony images carry a toolbox, and a repository can preinstall its own tools. python3,
    jq, ripgrep, make and more ship in every colony image, and the agent daemon runs the
    repository's .colonizer/setup.sh on boot (#753).
  • Colonies in GitHub loops can comment on and label pull requests, and request merges. Merges
    stay off until the operator lists the repository in the org's merge_prs setting, and the
    mothership checks the pull request itself before merging (#807).
  • A repository can opt out of Colonizer with a .colonizer-ignore file, a colonizer: ignore
    label or enabled = false in .colonizer/config.toml; the repository's owner can still launch
    (#909).
  • cargo install colonizer-harness && colonizer setup is now a real install path, with the same
    checksum and attestation checks as curl | sh (#905).
  • colonizer update --check says whether a newer release exists, with no mothership or token,
    and a new release-health workflow checks every release after it ships: assets, SHA256SUMS,
    crates.io, an install on Linux and macOS, and colonizer.dev
    (#830).
  • colonizer update no longer reports a stale "latest release", and --force never
    downgrades past the build's own base release (#820).
  • Publishing refuses a commit that would add a credential-looking file, such as a new
    .env.local or a nested SSH key (#780).
  • GitHub token scopes are documented, read-only first, and a token missing write access gets a
    clear prompt (#906).
  • CI retries a failing test command once and reports the flake instead of hiding it
    (#829).

Install

curl -fsSL https://colonizer.dev/install.sh | sh

Prebuilt bundles are published for Linux x86_64 (with KVM) and Apple Silicon Macs
(darwin-arm64); there is no Intel-Mac or Windows build. What one machine needs:

  • Linux: /dev/kvm readable and writable by your user (sudo usermod -aG kvm "$USER", then log
    out and back in) and a native Claude Code install, which colonies run.
  • Either platform: git, gh, curl and tar (with xz); on Apple Silicon the installer also
    fetches the Linux build of Claude Code a colony needs.

Run colonizer afterwards; it prints a sign-in link and opens it. The full walkthrough — install
options, first run, where things live, how to update — is in
docs/install.md.

Security status

Colonizer is alpha and not ready for unattended work on sensitive repositories, real credentials
included.
An external audit of v0.1.3 (commit d89ce76, 17 September 2026) found four ways a
colony could cross into the host; they are filed as draft advisories (F01–F04) and are not fixed
yet
, and its four release checkpoints (G1–G4) are all uncleared. Controls added since — scoped
tokens, remote-access fencing, sensitivity-aware routing, gateway audit lines, log and secret
redaction, path policy, egress and exec policies — do not close those findings, so attended work is
what the harness is good for today. The live status is
docs/audit.md and its tracking
issue (#91); report vulnerabilities privately
through SECURITY.md.

Prebuilt Colonizer for Linux x86_64 (with KVM) and Apple Silicon Macs, built from 5620f66.

curl -fsSL https://colonizer.dev/install.sh | sh

The installer checks the archive against SHA256SUMS. It fetches the Claude Agent SDK from the npm registry, and on a Mac the Linux build of Claude Code, from Anthropic's own channels: neither is in the release. Guide: https://colonizer.dev/docs/install

Each artifact, SHA256SUMS included, also carries a build-provenance attestation recording the commit that built it. Verify one with:

gh attestation verify colonizer-<platform>.tar.gz --repo Colonizer-dev/harness

Here is linux-x86_64 or darwin-arm64.

16a59866e6b35ec423ef7ef3fbb731c2696d6673bdc1bc4e1fde4890a9ee846f  colonizer-darwin-arm64.tar.gz
4d60958ad797db929c02df9b2756a16f146670920db45265430ba28e2aa6edaa  colonizer-linux-x86_64.tar.gz
12eeacb0c7248f4074b6343a1d787182a9ab18590837173dae19306ff33e85aa  install.sh