This release includes 2 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+4 more
Affected surfaces
ReleasePort's take
Moderate signalPairing is removed and the acl.json schema now uses `allowed` instead of `peers`; strict validation enforces this change. Un‑migrated v0.2.0 installations will fail to load.
Why it matters: Affects all deployments using the previous access model; version 0.2.0 configs must be migrated before upgrade or the system will not start.
Summary
AI summaryUpdates Access model, Breaking changes, and MCP transport reliability across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | High |
Pairing removed; acl.json schema changed (peers → allowed) and now strict(); un-migrated 0.2.0 installs will not load. Pairing removed; acl.json schema changed (peers → allowed) and now strict(); un-migrated 0.2.0 installs will not load. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Breaking | High |
`h` permission bit removed from vocabulary. `h` permission bit removed from vocabulary. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Access model now uses a single ACL store (`acl.json`) with allowed/rejected polarity and three‑state gate (granted, rejected, askable). Access model now uses a single ACL store (`acl.json`) with allowed/rejected polarity and three‑state gate (granted, rejected, askable). Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Reactive first contact: unknown sender's first message is held and raised for owner approval, creating a standing grant. Reactive first contact: unknown sender's first message is held and raised for owner approval, creating a standing grant. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Cross‑agent edges now form via owner‑directed approval for askable denials, allowing the org map to grow dynamically. Cross‑agent edges now form via owner‑directed approval for askable denials, allowing the org map to grow dynamically. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
Owner claims bound through verification loop; operator sentinel as fallback. Owner claims bound through verification loop; operator sentinel as fallback. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Feature | Medium |
`request__list` now defaults to open requests (outbox model) with status filter for history. `request__list` now defaults to open requests (outbox model) with status filter for history. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Performance | Medium |
MCP transport gains per‑conversation socket nonce, preventing superseded runner teardown from unlinking live sockets. MCP transport gains per‑conversation socket nonce, preventing superseded runner teardown from unlinking live sockets. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Performance | Medium |
In‑container proxy recovers with write‑safe retry and 15‑second call timeout; SSE keepalive added to every session. In‑container proxy recovers with write‑safe retry and 15‑second call timeout; SSE keepalive added to every session. Source: llm_adapter@2026-07-15 Confidence: high |
— |
| Bugfix | Medium |
Cold‑spawn inbound messages now recorded in `message_log`, closing audit gap on first message of each conversation. Cold‑spawn inbound messages now recorded in `message_log`, closing audit gap on first message of each conversation. Source: llm_adapter@2026-07-15 Confidence: high |
— |
Full changelog
Access stops being a map you draw up front. In 0.3.0 the connections between
people and agents form at runtime: an unknown sender's first message is held,
the agent's owner approves it, and the edge exists. The org chart grows one
approved connection at a time instead of being wired ahead. The story behind it:
a living org chart for agents.
Access model
- Single ACL store. Pairing is gone;
acl.jsonis the one grant map, with an
allowed/rejectedpolarity pair and an origin-keyed, three-state gate
(granted / rejected / askable). The separatepaired-users.jsonstore is retired. - Reactive first contact. An unknown sender's first message is held and
raised to the agent's owner as an approval, with the message body in the card.
Approving writes a standing grant; the Access tab lists and revokes them. Held
senders see a pending notice; duplicates dedup, hammering goes quiet. - Cross-agent edges form the same way. An askable agent-to-agent denial raises
an owner-directed approval, so the org map grows at need. Hand-authored grants
still work when you already know two agents belong together. - Owner claims. A human owner is bound through a verification loop; owner
identity anchors approval routing, with the operator sentinel as fallback. - Bit vocabulary. The
h(host) bit is removed — a cross-agent push rides the
carried user's owniogrant.preturns as the framework-written
push-containment edge. Agent peers stay restricted toq/r/a/p.
MCP transport reliability
- Per-conversation socket paths gain a per-spawn nonce, so a superseded runner's
teardown can no longer unlink the live runner's socket. - The in-container proxy recovers: transport reconnect with write-safe retry and a
15s call timeout. Host-side SSE keepalive on every session. - Cold-spawn inbound messages are recorded in
message_log, closing the audit gap
on the first message of every conversation.
Runtime & tools
request__listdefaults to open requests (outbox model) with a status filter for
history.- Denial durability: framework corrections (blocked outbound previews) land in
message_logassystemrows, auditable after the fact.
Breaking changes
- Pairing is removed and the
acl.jsonschema changed (peers→allowed,
now.strict()); the per-agent approvals table andoutbound_requestsgained
columns. An un-migrated 0.2.0 install will not load. Run the migration before
starting 0.3.0. - The
hpermission bit is removed from the vocabulary.
Upgrading from 0.2.0
Stop the server, then run the idempotent scripts in
scripts/migrations/0.2-to-0.3/ — dry-run by
default, --apply to write. Its README also covers extension-stored reply targets
and the manual blueprint-cleanup pass.
Install
git clone https://github.com/yaodub/cast
pnpm start
Still developer alpha — rough in places. If something breaks, tell me:
[email protected].
Breaking Changes
- Removal of pairing mechanism and change of acl.json schema (peers → allowed, now .strict()); un‑migrated 0.2.0 installs will fail to load; migration script required.
- Removal of the `h` permission bit from the access vocabulary.
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
About Cast
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]