Skip to main content

MobKitConsoleAggregator

Struct MobKitConsoleAggregator 

Source
pub struct MobKitConsoleAggregator { /* private fields */ }

Implementations§

Source§

impl MobKitConsoleAggregator

Source

pub fn new(store: Arc<dyn ConsoleLogStore>) -> Self

Source

pub fn new_with_options( store: Arc<dyn ConsoleLogStore>, options: ConsoleAggregatorOptions, ) -> Self

Source

pub fn in_memory() -> Self

Source

pub fn in_memory_with_options(options: ConsoleAggregatorOptions) -> Self

Source

pub fn subscribe(&self) -> Receiver<ConsoleTimelineEvent>

Source

pub fn store(&self) -> Arc<dyn ConsoleLogStore>

Source

pub fn register_runtime(&self, registration: ConsoleRuntimeRegistration)

Source

pub fn unregister_runtime(&self, runtime_key: &str)

Unregister a runtime (issue #254 follow-up): removes the registry entry (which also terminates the 5s session-history discovery loop on its next tick — it checks registration), signals the live-projection task to stop (its broadcast receiver would otherwise never observe Closed while the runtime’s event store lives), and refreshes the identity read model so the dead runtime’s identities leave the console. Frames already projected into the store remain queryable — unregister detaches the LIVE source, it does not erase history. Idempotent; unknown keys are a no-op.

Source

pub async fn list_identities( &self, ) -> ConsoleLogResult<Vec<ConsoleIdentityRecord>>

Source

pub async fn inspect_identity( &self, identity: &str, ) -> ConsoleLogResult<Option<ConsoleIdentityInspection>>

Source

pub async fn retire_identity(&self, identity: &str) -> ConsoleLogResult<bool>

Source

pub async fn clear_timeline_frames(&self) -> ConsoleLogResult<()>

Source

pub async fn query_timeline( &self, query: ConsoleTimelineQuery, ) -> ConsoleLogResult<ConsoleTimelinePage>

Source

pub async fn query_timeline_windowed( &self, query: ConsoleTimelineWindowQuery, ) -> ConsoleLogResult<ConsoleTimelineWindowPage>

Source

pub async fn refresh_session_history(&self) -> ConsoleLogResult<()>

Source

pub async fn latest_cursor(&self) -> ConsoleLogResult<Option<ConsoleCursor>>

Source

pub async fn timeline_event_visible(&self, event: &ConsoleTimelineEvent) -> bool

Source

pub async fn timeline_event_visible_for_subscriber( &self, event: &ConsoleTimelineEvent, subscriber_identity: Option<&str>, ) -> bool

Live-stream visibility gate, subscriber-aware (issue #254).

The windowed query paths grant an own-identity allowance (allow_historical_identity = query.identity == frame.identity), but the live gate used to pass false unconditionally — so an identity-scoped SSE stream dropped every frame of a member the identity read model had not yet observed (records=0 → Missing), starving live tails while reconnect-with-snapshot showed full history. Two fixes, matching the issue’s suggestions:

  1. An identity-scoped subscriber gets the SAME own-identity allowance the query paths grant, so its frames flow immediately.
  2. A frame whose identity is unknown to the read model triggers a debounced [ConsoleIdentityReadModel::refresh_soon] — the model converges for UNSCOPED streams too (members spawned mid-run via ensure_member previously stayed invisible until an unrelated refresh).
Source

pub async fn timeline_frame_visible_for_query( &self, frame: &ConsoleFrame, identity: Option<&str>, ) -> bool

Source

pub async fn send( &self, request: ConsoleSendRequest, ) -> Result<ConsoleInteractionAccepted, ConsoleSendError>

Source

pub async fn reserve_identity_first_interaction( &self, request: ConsoleSendRequest, session_id: Option<&str>, ) -> Result<ConsoleInteractionAccepted, ConsoleSendError>

Source

pub async fn mark_interaction_delivery_failed( &self, input_frame_id: &str, ) -> Result<(), ConsoleSendError>

Source

pub async fn mark_interaction_delivered( &self, input_frame_id: &str, ) -> Result<(), ConsoleSendError>

Source

pub async fn mark_steer_interaction_delivered( &self, input_frame_id: &str, interaction_id: &str, ) -> Result<(), ConsoleSendError>

Source

pub async fn binary_blob_store_for_identity( &self, identity: &str, ) -> Result<Option<Arc<dyn BinaryBlobStore>>, ConsoleSendError>

Source

pub fn binary_blob_stores(&self) -> Vec<Arc<dyn BinaryBlobStore>>

Trait Implementations§

Source§

impl Clone for MobKitConsoleAggregator

Source§

fn clone(&self) -> MobKitConsoleAggregator

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more