Repository navigation
Colonizer v0.2.4
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 (withretry-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(environmentCOLONIZER_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 owntimeout_secs
short. - Every upstream failure is logged. Each one is a
model_routerlog 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 acolonizer/local-checksstatus
(#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 newmain, andcolonizer hotspotsranks the files
colonies collide on (#831). - Colonies claim files and message each other through a
colonizer_coordMCP server, so two
pull requests stop fighting over the same file
(#834). - A colony can switch agent mid-task, between
claude-codeandcodex, 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_subagentssetting 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 | shPrebuilt 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/kvmreadable 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,curlandtar(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 | shThe 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/harnessHere is linux-x86_64 or darwin-arm64.
29b2db54375e877bcf6273e8f313c5c78c15f8c170b7be82b5d0761b79becc7a colonizer-darwin-arm64.tar.gz
4c8085057eb30ea19a34dd19b98fa14d34b85c86f3b5464e93a9cfffae34bcd1 colonizer-linux-x86_64.tar.gz
12eeacb0c7248f4074b6343a1d787182a9ab18590837173dae19306ff33e85aa install.sh