v0.52.0
·
102 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Bobi looks like Bobi, and public CI proves the product rather than trusting it.
This is also the first release published entirely from bobi-agent — the
reference container image now builds and pushes from this repo rather than the
archived private deploy repo, completing the public half of the 2026-07 reorg.
Added
- Public CI proves both brains, against the real image (#909, #911). The
container-imagejob runs the built image through one real Claude ask and one
real Codex ask, against an ephemeral event server started from the real Worker
sources. Off by default: nightly, on dispatch, or on theci:livelabel —
never on a fork PR. - A real
wrangler deployis exercised (#909, #911).wrangler devproves
the Worker's code but never a deployment — the KV binding, thev1
new_sqlite_classesDurable Object migration, and account-side provisioning
were covered nowhere.worker-deploy-smoke.ymldeploys a dedicated
bobi-events-ci-smokeWorker in a separate Cloudflare account and runs a
health check plus a publish→subscribe round-trip against the deployed URL. - The live lanes must prove they RAN (#909, #911). Every test in both lanes
carries askipif, so a renamed secret would have skipped to green.
scripts/assert_junit_ran.pynow rejects any skip, any wrong count, and any
missing named test;tests/test_ci_live_wiring.pyfails if a live step is
deleted. - The reference image is published from this repo (#898).
Dockerfile,
docker/,release-image.yml,container.ymland the container contract
tests moved here, with a newdocs/REFERENCE_IMAGE.md. A self-hoster runs
Bobi from a public pull instead of a repo grant.
Changed
bobi setupandbobi appreskinned onto the Bobi design system (#883).
Vendored asdocs/design-system/, now the source of truth for anything visual
on any Bobi surface. Violet means state — live, enforced, gated, focused —
never decoration. Geist / Geist Mono / Inter vendored as woff2, so the offline
constraint holds: no CDN, no network at runtime, no build step.- The supervisor arrives via the wheel, not a
COPY(#898). The
bobi-supervisorshim is gone; the entrypoint execs
bobi agent "${AGENT_NAME}" supervise -- --foreground. - The public surface no longer points at an archived repo (#905, #907).
Including the setup wizard's Cloud card, which now points at
ghcr.io/moda-labs/bobianddocs/REFERENCE_IMAGE.md. docs/RELEASE_RUNBOOK.mddescribes the two-repo train (#900).
Fixed
- Subagent launch chains are bounded before a process is spawned (#849,
#888). Launches recorded no ancestry, so a workflow step launching its own
workflow was unbounded: one scheduled trigger became 50 runs in 44 minutes,
stopped only by the spend governor. Launches now carryBOBI_LAUNCH_LINEAGE
and are refused up front when self-recursive or deeper thanmax_launch_depth
(default 8). - Two supervisor test files now test the shipped code, not a private copy
(#904). - Three integration tests failed on ambient
BOBI_HOME, not on the code
(#908).
Full changelog: https://github.com/moda-labs/bobi-agent/blob/v0.52.0/CHANGELOG.md