Skip to content

Colonizer v0.2.4

Choose a tag to compare

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

Colonizer v0.2.4

The model router says what went wrong

A colony whose model requests go through the model router used to get
502 model router: Anthropic is unreachable for every request that got no HTTP answer: a refused
connection, a reset, a TLS failure and a timeout all looked the same, and the cause was thrown away.
Long Opus answers could also be cut off by Node's built-in 300 s fetch limit. In v0.2.4
(#983):

  • Failures are named for what they were. A DNS, connect or TLS failure is still a 502 that says
    the upstream is unreachable, now with the reason. A silence past the idle timeout is a 504
    timeout_error ("timed out after N s"), and a connection that broke once open is a 502 naming
    its error code. Anthropic's own 401/403, 429 (with retry-after) and 5xx answers still pass
    through unchanged.
  • Long answers are no longer cut off. The router has its own connection pool and streams
    responses through with no overall limit. An upstream gets 30 s to connect and may stay silent for
    up to 10 minutes, before its answer starts or between two chunks of it.
  • A new setting: Model request idle timeout. On the Claude Code agent module,
    router_idle_timeout_secs (environment COLONIZER_ROUTER_IDLE_TIMEOUT_SECS) sets that silence
    limit. It defaults to 600 s, its minimum is 60 s, and it never cuts a route's own timeout_secs
    short.
  • Every upstream failure is logged. Each one is a model_router log line with the provider,
    class, status and elapsed time, and the mothership writes it to its own output with the colony
    and the Claude account id (never a credential).

What's new in v0.2.4

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

  • The merge-train loop keeps going when GitHub CI can't run. An opted-in repository's checks run
    in a one-shot microVM and post a colonizer/local-checks status
    (#969). The loop also tells you once when a
    repository's CI stops running and once when it is back
    (#972).
  • The merge-train loop resolves conflicted colony pull requests with their colony, using a merge
    commit and never a force-push, instead of leaving them DIRTY (--resolve on,
    #968). After each merge it brings the other
    candidates that touch the same files onto the new main, and colonizer hotspots ranks the files
    colonies collide on (#831).
  • Colonies claim files and message each other through a colonizer_coord MCP server, so two
    pull requests stop fighting over the same file
    (#834).
  • A colony can switch agent mid-task, between claude-code and codex, without losing the
    conversation (POST /api/sessions/{id}/switch-agent,
    #737).
  • Shannon can be a red-team hunter. It runs inside a colony microVM, and its SARIF findings go
    through the usual validation (#952).
  • Resume is more reliable. A colony whose pull request is still open can be resumed after its
    worktree was reclaimed (#623). A resumed
    colony is no longer told that its own subagents were stopped by the user, and the new
    relaunch_subagents setting relaunches the unfinished ones
    (#756).
  • The exec policy asks about writes onto read-only host mounts or into .git. An org can turn
    the strict behaviour from before #877 back on with "writes_outside": "strict"
    (#750).

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 db44781.

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.

29b2db54375e877bcf6273e8f313c5c78c15f8c170b7be82b5d0761b79becc7a  colonizer-darwin-arm64.tar.gz
4c8085057eb30ea19a34dd19b98fa14d34b85c86f3b5464e93a9cfffae34bcd1  colonizer-linux-x86_64.tar.gz
12eeacb0c7248f4074b6343a1d787182a9ab18590837173dae19306ff33e85aa  install.sh