pub struct MobKitConsoleAggregator { /* private fields */ }Implementations§
Source§impl MobKitConsoleAggregator
impl MobKitConsoleAggregator
pub fn new(store: Arc<dyn ConsoleLogStore>) -> Self
pub fn new_with_options( store: Arc<dyn ConsoleLogStore>, options: ConsoleAggregatorOptions, ) -> Self
pub fn in_memory() -> Self
pub fn in_memory_with_options(options: ConsoleAggregatorOptions) -> Self
pub fn subscribe(&self) -> Receiver<ConsoleTimelineEvent>
pub fn store(&self) -> Arc<dyn ConsoleLogStore> ⓘ
pub fn register_runtime(&self, registration: ConsoleRuntimeRegistration)
Sourcepub fn unregister_runtime(&self, runtime_key: &str)
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.
pub async fn list_identities( &self, ) -> ConsoleLogResult<Vec<ConsoleIdentityRecord>>
pub async fn inspect_identity( &self, identity: &str, ) -> ConsoleLogResult<Option<ConsoleIdentityInspection>>
pub async fn retire_identity(&self, identity: &str) -> ConsoleLogResult<bool>
pub async fn clear_timeline_frames(&self) -> ConsoleLogResult<()>
pub async fn query_timeline( &self, query: ConsoleTimelineQuery, ) -> ConsoleLogResult<ConsoleTimelinePage>
pub async fn query_timeline_windowed( &self, query: ConsoleTimelineWindowQuery, ) -> ConsoleLogResult<ConsoleTimelineWindowPage>
pub async fn refresh_session_history(&self) -> ConsoleLogResult<()>
pub async fn latest_cursor(&self) -> ConsoleLogResult<Option<ConsoleCursor>>
pub async fn timeline_event_visible(&self, event: &ConsoleTimelineEvent) -> bool
Sourcepub async fn timeline_event_visible_for_subscriber(
&self,
event: &ConsoleTimelineEvent,
subscriber_identity: Option<&str>,
) -> bool
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:
- An identity-scoped subscriber gets the SAME own-identity allowance the query paths grant, so its frames flow immediately.
- 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 viaensure_memberpreviously stayed invisible until an unrelated refresh).
pub async fn timeline_frame_visible_for_query( &self, frame: &ConsoleFrame, identity: Option<&str>, ) -> bool
pub async fn send( &self, request: ConsoleSendRequest, ) -> Result<ConsoleInteractionAccepted, ConsoleSendError>
pub async fn reserve_identity_first_interaction( &self, request: ConsoleSendRequest, session_id: Option<&str>, ) -> Result<ConsoleInteractionAccepted, ConsoleSendError>
pub async fn mark_interaction_delivery_failed( &self, input_frame_id: &str, ) -> Result<(), ConsoleSendError>
pub async fn mark_interaction_delivered( &self, input_frame_id: &str, ) -> Result<(), ConsoleSendError>
pub async fn mark_steer_interaction_delivered( &self, input_frame_id: &str, interaction_id: &str, ) -> Result<(), ConsoleSendError>
pub async fn binary_blob_store_for_identity( &self, identity: &str, ) -> Result<Option<Arc<dyn BinaryBlobStore>>, ConsoleSendError>
pub fn binary_blob_stores(&self) -> Vec<Arc<dyn BinaryBlobStore>>
Trait Implementations§
Source§impl Clone for MobKitConsoleAggregator
impl Clone for MobKitConsoleAggregator
Source§fn clone(&self) -> MobKitConsoleAggregator
fn clone(&self) -> MobKitConsoleAggregator
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for MobKitConsoleAggregator
impl !UnwindSafe for MobKitConsoleAggregator
impl Freeze for MobKitConsoleAggregator
impl Send for MobKitConsoleAggregator
impl Sync for MobKitConsoleAggregator
impl Unpin for MobKitConsoleAggregator
impl UnsafeUnpin for MobKitConsoleAggregator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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