Repository navigation
Colonizer v0.2.19
Colonizer v0.2.19
What's new
- Code review with Kodus (issue #1280). The
reviewerorg setting lets you pick between open-code-review (the original ocr binary) and Kodus, a self-hosted AI reviewer service you install yourself using kodus-installer. Both backends use the sameshadowmode — findings are recorded, nothing changes — and share the diff snapshot. Store the Kodus URL and team key in Secrets, and the mothership sends only the redacted diff. Kodus's model is configured in Kodus itself, not in Colonizer. Findings land in the colony log andsessions/<id>/kodus.json. (#1280) - Settings → Colonies & runtime → Modules lists Cratefield modules as searchable cards. Each shows name, summary, status (published/unreleased/planned), versions (catalogue and published to crates.io), required and optional ports, and links to docs.rs, crates.io, and the catalogue. Search and filters by status and port. "Copy use line" puts a module in the clipboard. Data fetches hourly from
CATALOG.jsonand crates.io with in-memory cache, falling back gracefully to disk cache and bundled snapshot with a banner if the network is down. (#1291) - Shadow sentinel logs a verdict before risky tool calls run. Colony tool calls in a narrow risky class — mount/umount/chroot/nsenter, writes to
.git/config,.git/hooksor other protected paths, credential-shaped paths, curl/wget off the box, and kill of pid 1 or harness processes — now get anallow/refuse/askverdict with a probability and a reason, bound to a digest of the exact call, written to the decisions ledger (pointsentinel, shadow mode) next to what actually happened (ran,refused_by_policy,error). Read-only commands over credential paths (thegrep/node --checkshape behind false control_defeat holds) are recorded asallow. Nothing is blocked yet; exec and path policy stay the hard boundary. Seedocs/sentinel.md. (#1323) - Provenance ledger: records every worktree, branch, and pull request the harness creates,
- Every trace span carries the colony id. Child spans (
turn,execute_tool,subagent, - PlanetScale skillset: pscale CLI (Apache-2.0) and verified skills (MIT), off by default, downloaded on demand from pinned releases with sha256 verification.
- Self-host fonts: no external Google Fonts requests. Geist and Geist Mono for the cockpit, and Instrument Sans and JetBrains Mono for crate banners, are now bundled as local WOFF2 files. The web UI no longer connects to
fonts.googleapis.comorfonts.gstatic.com; banner rendering (scripts/render-crate-banners.sh) works offline. Font files are hashed at build time and cached for one year on CDN. (#1351) - Bench and evolver check the configuration each colony ran under. Every new session records
- evolve draft: automate prompt generation —
evolve.mjs draftspawns a model to generate candidate prompts for a failure class, reads the class evidence and optionally colony transcripts into an evidence directory, and turns valid replies into proposals. The command receives a brief on stdin, seesEVOLVER_LENSandEVOLVER_EVIDENCEin the environment, and must output eitherKEEP_BASE <reason>or cite-annotated replacement text. A leak guard refuses to spawn if the evidence contains sensitive paths or markers. (#1353) - An
aftercolony no longer starts without its parent's work when the parent made no changes and its issue is still open. A colony queued to start once its parent's pull request merges (afterwithoutstack) used to be re-based on the default branch and started when the parent endedno_changesor its pull request was closed unmerged. Every colony queued behind it followed, each on a base that lacked the work it depends on. Now, while the parent's issue is still open, the child staysblocked(no slot, not failed) with a reason that names the issue, and so does the chain below it. Closing the issue re-bases and queues the child as before. A newer colony launched for the same issue becomes the child's parent, so its merge releases the chain. A parent without an issue, andstackchildren, behave as before. (#1362) - Pre-publish checks for
cargo fmtandcargo clippynow succeed when the rust-toolchain is pinned withprofile = "minimal". When a repository pins a Rust toolchain without bundled components, the verifier now automatically installs rustfmt and clippy in the guest sandbox, so these checks run to completion instead of failing with "component not installed". Failed pre-publish checks that fail on the base branch too now show a sample of their output in the PR note for audit, redacted like other log output (#1363) - Auto-promote drafts when base-shared CI failures are fixed. When a pre-publish check fails on the base branch, the mothership opens the PR as a draft to hold it. Now, when the PR head's CI is green and all the base-shared red checks pass, the merge train automatically marks the PR ready and posts a comment identifying the now-passing checks. Operator-initiated drafts are never auto-promoted. (#1364)
- Prevent saving model tiers with inverted pricing: tasks routed high now can't run on cheaper/weaker models than medium ones. When saving agent settings, the mothership now checks whether
model_highis cheaper thanmodel(ormodel_lowmore expensive thanmodel) and refuses with a clear error naming both models and their prices, unless the newallow_inverted_tierssetting is enabled. Every colony'smodel_routingnow always names the lead model it ran with, and outcome activity entries (merged, failed, stopped, no_changes, etc.) now record the tier and model. Boot warns when tier inversions are detected. (#1366) - ECC agents with comma-separated
toolsare now accepted without warnings. ECC agents withtools: Read, Grep, Glob(comma-separated, the form Claude Code accepts) were dropped from the ant registry with ~70 "must be an inline array" warnings per boot. NowtoolsanddisallowedToolsaccept comma-separated strings (parens-aware, e.g.,Bash(git add:*, git commit:*)),skillsetsstays inline-array only, and unparseable agent files are reported as one warning line per pack. (#1367) - Copy buttons work when the cockpit is reached over plain HTTP. On a tailnet IP there is no secure context, so
navigator.clipboardis missing and Copy did nothing. Every copy button now goes through one helper that falls back to a hidden textarea andexecCommand("copy"), shows "Copied" only when the text really reached the clipboard, and otherwise says "Press ⌘C to copy" (Ctrl+C elsewhere). - One floating chat button on phones. On a phone the cockpit showed two round accent buttons at the bottom right, search and Ask Colonizer. The Ask button now shows from the
smbreakpoint up, and on a phone the search button opens Spotlight, whose Ask row opens the Ask panel. ⌘J is unchanged.
Prebuilt Colonizer for Linux x86_64 (with KVM) and Apple Silicon Macs, built from d4a22ee.
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.
The observability add-on rides along as colonizer-observability-.tar.gz for the same platforms; the installer puts it beside the colonizer binary, and the checksums and the attestation above cover it too.
Apple Silicon Macs can also use Colonizer-arm64.dmg: an unsigned app, so macOS asks you to approve it once (System Settings > Privacy & Security > Open Anyway). The curl installer above is the recommended path.
4b346bce2aeb180999f85a218f2c9794fbe9dc5a884237f75501d3df13dfd9e7 colonizer-darwin-arm64.tar.gz
937ba3eb1ffba02dc0440b2811fee8be0e1bd9111b08129de95dcb4af6d01fea colonizer-linux-x86_64.tar.gz
49b19cb381bbb42bbef0bd72571fab781954d9d24c238846fba7719ee901e762 colonizer-observability-darwin-arm64.tar.gz
5fe4e20b077ef34b78742cef5aed7517fea3c777d48a44a51d3244fa3e46efb0 colonizer-observability-linux-x86_64.tar.gz
4f84fb271bb43faec209f685850824775417f2227ab27f52ca33b582d2105821 Colonizer-arm64.dmg
a65be2043bbd94aa8d5e1e122113ae3d3945120bf4b2771fc300298a06e60f4e install.sh