Skip to content

v2026.5.16: SPEC-029 sendability enforcement

v2026.5.16: SPEC-029 sendability enforcement

Section titled “v2026.5.16: SPEC-029 sendability enforcement”

Janus now enforces the SPEC-029 sendability rule before the actor wire path ships. Proven actor, channel, and mailbox .send(...) calls are checked by the compiler:

  • ref T cannot cross the send boundary. The compiler emits E2801.
  • iso T can cross the boundary, and the binding is consumed by the send.
  • A later read of that consumed iso binding emits E2802.
  • val T and tag T are sendable.

The check is intentionally bounded to proven send boundaries. A normal method named send on an unrelated object is not treated as an actor or channel send.

This is not a Serialize trait gate. Janus actor sendability comes from reference capabilities and, for future wire transport, SBI-compatible layout. The current local actor runtime still lowers only unit message variants through the i64 actor mailbox ABI; payload-bearing actor envelopes remain the next typed mailbox step.

Terminal window
./scripts/zb test-intent-enforcement
./scripts/zb test-diagnostics-intents
./scripts/zb test-capability
./scripts/zb test-parser-cap-seam
./scripts/zb test-spec-085-pipeline