Class: Events::Subscribers::SubagentVisibilityBroadcaster

Inherits:
Object
  • Object
show all
Includes:
Events::Subscriber
Defined in:
lib/events/subscribers/subagent_visibility_broadcaster.rb

Overview

Broadcasts sub-agent eviction to the parent session’s stream so the TUI HUD panel removes the entry. Fires in response to Events::SubagentEvicted, which Mneme::Runner emits after a boundary advance leaves a sub-agent with no remaining traces in the parent viewport.

Examples:

Registering at boot

Events::Bus.subscribe(Events::Subscribers::SubagentVisibilityBroadcaster.new) { |event|
  event[:name] == "anima.subagent.evicted"
}

Instance Method Summary collapse

Instance Method Details

#emit(event) ⇒ Object

Parameters:

  • event (Hash)

    Rails.event notification hash



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/events/subscribers/subagent_visibility_broadcaster.rb', line 19

def emit(event)
  payload = event[:payload]
  session_id = payload[:session_id]
  ActionCable.server.broadcast(
    "session_#{session_id}",
    {
      "action" => "subagent_evicted",
      "session_id" => session_id,
      "child_id" => payload[:child_id]
    }
  )
end