Agent Toolkitv0.4.0
Jobs on their own machine, and a ledger it can read
Work runs in its own pinned image, and the coworker can ask what the week held — or say why it can't answer.
- A job runs on its own machine. External jobs run on demand in
digest-pinned worker images on Kubernetes, behind a shared dispatcher that
keeps run ids and verdicts across restarts, serializes requested against
scheduled work, and refuses to start the same body twice. A failed run posts
its failure and a redacted excerpt to the report destination and to the
conversation that asked, so nobody has to know to go looking; the full
redacted output stays behind operator-only
job diagnosticsfor seven days. - Ask what the week actually held — or hear that it can't say.
team_statuschecks search access and each repository's ledger separately, andteam_sessionsanswers only once credential access, repository identity, ledger availability, and a refresh inside five minutes have all been verified. Missing or stale data is refused instead of arriving as an empty week that looks like a quiet one. - What's been moving lately.
team_recentreturns work updates and session activity newest first over an explicit window — 72 hours by default, seven days at most, 20 results — and says so when it truncated rather than trailing off. - The same question, asked of the code.
code_insightsjoins the most-changed files, recent commits, and open pull requests and issues from the read-only checkout the coworker already has. A repository with nothing indexed reportsunknown, notnone, so "no open pull requests" and "never looked" stop reading the same. - The ledger stays fresh without a daemon. A team brain's
ledgerSyncentries name the repositories and HTTPS remotes the gateway should clone and refresh, reusing Git credentials already mounted. It never starts an ox daemon and never pushes, and an authentication failure waits for the mounted credential to change rather than retrying against a token already known to be dead. - A sibling coworker can't park your kill switch. The gateway is the only thing that ever saw who sent a message, so it now hands the turn's author to the switch: a park is refused when it comes from a recognized coworker the manifest doesn't name. It narrows rather than seals — a surface that can't identify a coworker still admits the park, because refusing those would refuse a person's park too.
The Helm chart moves to 0.12.0. Before upgrading, add top-level
killSwitchParkBy to every agent.yaml with a job that declares a
killSwitch — [] to refuse every recognized coworker, or the ids whose park
this coworker honours — because a manifest without it will not load. Existing
coworkers opt into the new tools by re-running sageox-agent memory add team,
sageox-agent repos add <url>, and sageox-agent mcp add jobs. External jobs
need Kubernetes 1.34 or newer and their own worker setup; all of it leads the
v0.4.0 release.

