The lost run
A worker dies forty minutes into an investigation. The context was in process memory. Start over, and pay for every token again.
StarColony is a self-hosted platform that runs AI agents on Temporal, so each model turn and tool call becomes a replayable, budgeted, audited workflow step. The guardrails live in the platform: allowlists, grant tokens, network policy, human approval. Not in the prompt. Today the control plane, encrypted runs, and access layer are running; the agent loop and the tool, sandbox, and approval planes are designed and marked as such below.
CONTROL PLANE AND ENCRYPTED RUNS RUNNING · AGENT LOOP DESIGNED · PHASE 0
Most teams run agents the way they’d never run a service: steered by prompts, holding broad credentials, losing state on restart, leaving no record of what they actually did.
A worker dies forty minutes into an investigation. The context was in process memory. Start over, and pay for every token again.
“Please don’t delete anything important” is a steering suggestion, not a control. One injected instruction and the prompt is working for someone else.
The agent holds an org-wide token in an environment variable, for every run, every tool, indefinitely. Compromise the worker, inherit the keys.
Which tool did it call? With what arguments? Approved by whom? If the answer lives in stdout, the answer is gone.
Prompts are steering, and they were never brakes. The brakes have to be built into the platform.
Both run on the same durable Temporal fabric. Agents reason and choose tools; pipelines pull, crawl, and normalize. Neither is a bolt-on to the other. Both kinds can be registered today; the agent runtime itself is designed, not built.
One workflow type will run every agent, with each LLM turn and each tool call as a workflow activity:
The bring-your-own-worker contract is a registration shape, not an SDK:
Registered through the same API as everything else. Any Temporal SDK language can serve the queue, though today every payload is encrypted with a StarColony codec that a non-Rust worker would have to reimplement; worker kits for other languages are planned.
Because every step is recorded workflow history, a run that loses its worker resumes from its last step: same run, nothing repeated. Proven so far for a conformance workflow through a worker outage and a rollout; budgets are designed.
The edges are meant to be durable too. Deterministic run identities already collapse API retry storms into exactly one run: a repeated Idempotency-Key returns the original run, and a changed body under the same key is rejected. The inbound webhook outbox with a redrive sweeper is designed and not yet built; today a signal that cannot reach Temporal is refused rather than queued.
None of this is enforced by a system prompt. Each governed plane has an enforcement point you can audit, and the chip says whether that enforcement point exists today or is still on paper.
A compromised worker cannot call ungranted tools.
Code asks for a job class, not a model. Routing by data classification is designed, not enforced yet.
Workflow history is not a plaintext store of your documents.
A coding agent’s maximum authority is opening a pull request.
Consequential actions wait for a human, and the requester can never approve their own.
In the design, coding agents run in ephemeral, egress-locked jobs, and the capabilities you would worry about are not switched off; they are never installed. Nothing in this section is built yet.
GitHub Rulesets require a PR and reviews; the app sits on no bypass list.
Publication tokens are minted outside the sandbox: per run, single-repo, 1-hour TTL.
Default-deny network. Two ducts: the model gateway, and a logging proxy path-scoped to the target repo.
The one door. Plan → human approval → apply in a fresh sandbox → PR.
The infrastructure change lane, also designed, is stricter still: the agent edits config only, the plan output is the reviewed artifact, and apply happens post-merge through your existing pipeline. The agent never holds cloud credentials.
Consequential tools are gated on a human decision, delivered where your team already works. The card shows the tool arguments verbatim, so approval fatigue is fought with information rather than volume. Approvals are designed; the card and ledger below are mockups of the design.
In the design, the ledger is written by a role that can insert and never update or delete, and it exports nightly to write-once storage, so a compromised component can stop writing history but cannot rewrite it. Today the audit table exists and records machine-token authentications; the hash chain and the insert-only role are not yet written.
The engine is meant to ship no domain semantics. Whole problem domains arrive as content packs: versioned bundles of agent definitions, tool grants, connectors, and record types registered through the public API. The pack mechanism is designed, and the split is not yet enforced in the tree; the first dogfood left DLP tables in the engine’s migrations, and moving them out is on the list.
Deleting the pack must leave a complete platform, and the test that will enforce it is written into the plan: a non-security workload must register, schedule, run, and be observable end-to-end with zero engine changes. That check is not in CI yet; the repository has no CI today.
StarColony is being built in phases with exit criteria, and the repository sits in Phase 0. Present tense on this page describes the target architecture. Here is where the build is as of September 2026.
An agent with a granted egress channel can still misuse it within the gate’s bounds. Injection resistance is layered: templates, schema-bound notifications, scoped egress. Human approval on consequential tools is the backstop, not a formality.
Local sandboxes are weaker than production sandboxes. On a laptop cluster, isolation degrades, so in the design it is a flagged condition and applying changes from a degraded sandbox requires an explicit override.
Parts of our toolchain are young. The Rust Temporal SDK is in public preview; we pin it exactly and keep workflow code orchestration-thin.
It runs on one laptop today. The stack has only been exercised on a local kind cluster over a private tailnet. There is no published image or chart yet, so “your Kubernetes” is the design target, not a download.
We are looking for a small number of teams who run Kubernetes, want agents doing real work such as remediation, scanning, or investigation, and want the guardrails in the platform before the agents arrive.
What you get is a conversation about your workloads and our phases, and a say in the guardrails before they harden.
Autonomy, inside the law.