Repository navigation
Colonizer v0.2.14
Immutable
release. Only release title and notes can be modified.
Colonizer v0.2.14
What's new
- The observability exporter can be configured entirely from
OTEL_*environment variables, and a header it cannot parse is refused rather than half-sent. The standard variables are read and each one overrides its module field, withGET /api/observability/statusnaming where every field came from (module,env:<VAR>ordefault).COLONIZER_OBSERVABILITY=onturns export on for a setup with no module saved, and set to anything else (off,false,0,no, empty) turns it off even when a module is saved and enabled — an operator who wrote it meant it.OTEL_SDK_DISABLEDstill wins over both. A header list fromOTEL_EXPORTER_OTLP_HEADERSor the Observability headers secret is now really parsed:k=v,…pairs, values percent-decoded so Grafana Cloud'sAuthorizationheader, whose value carries a percent-encoded space before the base64, works,=allowed inside a value, an empty value legal, and one malformed pair refuses the whole list rather than sending a half-read credential. A rejected pair is reported by its position in the list, and by its name only when the pair has a legal one, so a mistypedAuthorization: Basic …or a bare token can never reach the status page; the same rules are applied as the add-on applies them when it reads the list, so a header list the status calls valid never fails at spawn. Every export now carries the whole resource (service.name,service.version,service.instance.id,host.name, andcolonizer.fleet.id/colonizer.fleet.rolewhere they are known);OTEL_RESOURCE_ATTRIBUTEScan add keys to it but never supplyservice.name,service.instance.id,host.nameor anything undercolonizer.— a fleet member carries no fleet id and a lone mothership no role, whatever the environment says. The effective config serialises with header names and never a value, so the status API and any log line are safe by construction. The default service name is nowcolonizer-mothership, which says which install is talking. (#841) - understand-anything: an optional knowledge-graph skillset, with a cost guard in colonies.
- Colonies can run the repository's own check scripts, syntax-check a script, and ask git about the placeholders with
-C, without a security hold. The exec policy'sscript-egressrule refusedpython3 tools/sync-nav.py --checkand other check scripts a repository ships and tells contributors to run, so colonies retried and were held forrepeated_denial. The boot now writes the base commit's scripts, with their git object ids, to/colonizer/tracked-scripts(read on the host from the merge-base, where the colony cannot change it), and the default rule leaves a script to the VM's network policy while its bytes are still the committed ones. A script the colony adds or edits is read as before, and an org, install or repository layer still sees every script.bash -n,sh -n,--noexec,node --check,node -candruby -cparse the script without running it and are no longer read as a run (bash -n -c …still is). The name-only allowance from #1169 now acceptsgit -C <the repository> check-ignore --no-index …; a-Cnaming any other directory is still refused. (#1239, #1227, #1079) - The exec policy now refuses reading a committed secret file through a git object spec.
secret-pathsmatched path-looking words, so the<rev>:prefix ingit show HEAD:.env,git cat-file -p HEAD:.env,git show origin/main:.npmrcorgit show <sha>:.netrchid the path, and the command printed the committed file. A git command's<rev>:<path>arguments now have their path part matched too, for any subcommand (show,cat-file,archive,diff,grep,logand the rest).git show HEAD:README.mdand committed templates such asHEAD:.env.examplestill pass. (#1241)
Prebuilt Colonizer for Linux x86_64 (with KVM) and Apple Silicon Macs, built from f59bdf7.
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.
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.
e9563804d9f2d85cd534e0a721d21ec7d20c1f704f826f0fc8b766eebd9adda1 colonizer-darwin-arm64.tar.gz
de1211f1bc1954d98b13d7b49eb5aead2a69214d780d404a7bb0c3a98b1dd7d1 colonizer-linux-x86_64.tar.gz
ddab5dee7e70cedf8f8bc9fbbdd8e493e913e6de0d29eb017fe96fafe12af61a Colonizer-arm64.dmg
4293bed20d991fb79164e457163a058fb362f10e480c0588e0edac4d3ffd7b4b install.sh