Add no-op telemetry context provider for remote server (#9232)
## Description Currently our preview remote server implementation could crash if we tried to send a telemetry event because we never initialized our telemetry context provider We will migrate this soon to an actual telemetry provider once we have auth syncing. But for now, we are going to use a noop telemetry provider ## Testing Tested locally to confirm this is no longer panicking
This commit is contained in:
@@ -24,3 +24,29 @@ impl TelemetryContextProvider for AppTelemetryContextProvider {
|
||||
auth_state.anonymous_id()
|
||||
}
|
||||
}
|
||||
|
||||
/// A no-op telemetry context provider for headless contexts (e.g. the remote
|
||||
/// server daemon) that run without authentication. Telemetry events that
|
||||
/// require a user/anonymous ID will silently produce empty identifiers,
|
||||
/// preventing panics from an unregistered `TelemetryContextModel` singleton.
|
||||
#[cfg_attr(target_family = "wasm", allow(dead_code))]
|
||||
pub struct NoopTelemetryContextProvider;
|
||||
|
||||
impl NoopTelemetryContextProvider {
|
||||
#[cfg_attr(target_family = "wasm", allow(dead_code))]
|
||||
pub fn new_context_provider(
|
||||
_ctx: &mut ModelContext<TelemetryContextModel>,
|
||||
) -> TelemetryContextModel {
|
||||
Box::new(Self)
|
||||
}
|
||||
}
|
||||
|
||||
impl TelemetryContextProvider for NoopTelemetryContextProvider {
|
||||
fn user_id(&self, _ctx: &AppContext) -> Option<String> {
|
||||
None
|
||||
}
|
||||
|
||||
fn anonymous_id(&self, _ctx: &AppContext) -> String {
|
||||
String::new()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user