pub(super) fn handle_delete_block( state: &mut State, tab_id: String, block_id: String, ) -> Vec<Event>
Phase E.3 — delete a block from a tab. Idempotent: deleting a missing tab or missing block is a silent no-op.