Skip to content

Cast

v0.2.0 Breaking

This release includes 4 breaking changes for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

agent-orchestration agents ai anthropic claude containers
+4 more
llm mcp multi-agent self-hosted

Affected surfaces

auth rbac breaking_upgrade

Summary

AI summary

Updates Highlights, Identity, access, and multi-agent, and Services across a mixed release.

Full changelog

The second alpha. This release reworks how Cast handles identity and reach across users and agents, makes in-agent services a first-class peer of extensions, and hardens message delivery.

Existing 0.1.x installs need a one-time data migration before starting 0.2.0. See Upgrading below. A fresh install skips it.

Highlights

  • Per-channel membership. Pairing a user places them on specific channels. The "*" wildcard still authorizes a conversation but no longer grants membership, so co-participant visibility and cross-conversation push now read concrete placement only.
  • Transport-blind addressing. Persisted identities are bare participants. The transport (Telegram, email, CLI) resolves at delivery time. The old local identity retires, and operator surfaces (cli:, admin:, console:) become first-class participants on a trust tier.
  • Participant discovery. An agent can list the channels and participants it can actually reach, scoped to its own placement. A query outside its rooms is denied without leaking whether the target exists.
  • First-class services. In-agent services now run with host-attested identity and declarative tool approval, the same trust model extensions get, plus secrets management and an admin surface.
  • Reliable outbound delivery. Failed sends retry in process and expire past a TTL into a terminal failed state, drained through a single path.

Upgrading from 0.1.x

Stop the server, then run the migration scripts in scripts/migrations/0.1-to-0.2/. They print a dry-run plan by default and only write with --apply. They are idempotent.

pnpm exec tsx scripts/migrations/0.1-to-0.2/1-bare-addresses.ts --apply --backup
pnpm exec tsx scripts/migrations/0.1-to-0.2/2-narrow-pairing-grants.ts ~/.cast/agents --apply
pnpm exec tsx scripts/migrations/0.1-to-0.2/3-packets-failed-at.ts --apply

See the migration README for the full procedure, restore points, and how placement is decided.

Identity, access, and multi-agent

  • Per-channel membership and the wildcard split described above.
  • Transport-blind, bare-participant addressing across all persisted state.
  • Participant discovery scoped to authorized reach.
  • Cross-agent push authority is user-keyed. A conduit agent ferrying a push is checked against the originating user's concrete placement, not its authorization, so operator and owner privileges cannot be smuggled into a channel the user was never placed on.

Services

  • Manifest-declared secrets, stored per agent and loaded into the service environment, with a restart when they change.
  • Two-track service admin: a settings mirror plus a service-rendered page.
  • Host-attested participant and declarative tool approval, bringing services to parity with extensions. Approval-gated tools fail closed on turns with no single participant.
  • New tooling: pnpm check:service type-checks a service against its registry dependencies, pnpm deploy:service rebuilds in place.

Runtime and ops

  • Gateway outbound delivery worker with in-process retry and TTL expiry.
  • Host-side SDK surface policy: one table for blocked tools and the feature kill-switch, with the in-container runner kept mechanism-only.
  • The agent image rebuilds automatically when build inputs change.
  • Fixed a service restart race where a killed predecessor was misattributed to its successor.

Other

  • pnpm version:set <semver> sets every workspace package in lockstep.
  • SPEC, console manuals, and site docs re-grounded on the membership, push, and discovery semantics.

Full Changelog: https://github.com/yaodub/cast/compare/v0.1.0...v0.2.0

Breaking Changes

  • Per-channel membership replaces wildcard (`"*"`) authorization; co‑participant visibility now requires explicit placement.
  • Retirement of `local` identity and transport‑blind bare‑participant addressing across all persisted state.
  • Cross‑agent push authority now keyed to originating user's concrete placement, removing operator/owner privilege smuggling.
  • One-time data migration required for existing 0.1.x installs before starting 0.2.0.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Cast

Get notified when new releases ship.

Sign up free

Related context

Earlier breaking changes

  • v0.3.0 `h` permission bit removed from vocabulary.
  • v0.3.0 Pairing removed; acl.json schema changed (peers → allowed) and now strict(); un-migrated 0.2.0 installs will not load.

Beta — feedback welcome: [email protected]