Three dev-mode invariants close the leak-by-default regression class at runtime: (1) every scope-filtered event family must dispatch with a scope carrier — a bare dispatch throws at the call site naming the carrier rule; (2) where the subject is recoverable from the arguments (agent/*, the tool pipeline, prompt assembly) the carrier's key must BE that subject, and an assembly context must never carry agent without scope (use assembleContextFor); (3) a turn/start logged before the owning agent's agent/session-start is the setup-drives teaching error (setup registers the scoped world, it never drives the agent).
564 B
564 B