UI context exposed to plugins and plugin background workers.
Mirrors pi's small status-bar API: plugins set a keyed status string and Vibe
renderers decide where/how to show it. Passing nil clears the status.
Summary
Types
Functions
@spec clear_widget(session_id(), status_key()) :: :ok | {:error, :not_found}
@spec notify(session_id(), String.t(), atom()) :: :ok | {:error, :not_found}
@spec set_progress(session_id(), status_key(), keyword()) :: :ok | {:error, :not_found}
@spec set_status(session_id(), status_key(), String.t() | nil) :: :ok | {:error, :not_found}
@spec set_title(session_id(), String.t() | nil) :: :ok | {:error, :not_found}
@spec set_widget(session_id(), Vibe.UI.Widget.t()) :: :ok | {:error, :not_found}
@spec set_widget(session_id(), status_key(), [String.t()] | String.t()) :: :ok | {:error, :not_found}
@spec set_widget(session_id(), status_key(), [String.t()] | String.t(), keyword()) :: :ok | {:error, :not_found}
@spec set_working_message(session_id(), String.t() | nil) :: :ok | {:error, :not_found}