Rebrand to Galaxy, major improvements to Bedrock support, still needs some TLC though

This commit is contained in:
Ryan Ward
2026-05-07 11:29:34 -05:00
parent f4e2475c60
commit a41cbd8cc7
2433 changed files with 14208 additions and 9409 deletions
+8 -8
View File
@@ -3,10 +3,10 @@ use std::{fs::remove_file, time::Duration};
use anyhow::Context;
use chrono::{LocalResult, TimeZone, Utc};
use warp_core::execution_mode::AppExecutionMode;
use warp_core::{report_error, report_if_error};
use warpui::r#async::{FutureExt as _, Timer};
use warpui::{App, Entity, ModelContext, SingletonEntity};
use galaxy_core::execution_mode::AppExecutionMode;
use galaxy_core::{report_error, report_if_error};
use galaxyui::r#async::{FutureExt as _, Timer};
use galaxyui::{App, Entity, ModelContext, SingletonEntity};
use super::{rudder_event_file_path, RUDDER_TELEMETRY_EVENTS_FILE_NAME};
use crate::auth::AuthStateProvider;
@@ -107,7 +107,7 @@ impl TelemetryCollector {
if execution_mode.send_telemetry_at_shutdown() {
let privacy_settings_snapshot = PrivacySettings::as_ref(ctx).get_snapshot(ctx);
let server_api = self.server_api.clone();
match warpui::r#async::block_on(async move {
match galaxyui::r#async::block_on(async move {
server_api
.flush_telemetry_events(privacy_settings_snapshot)
.with_timeout(TELEMETRY_SHUTDOWN_FLUSH_TIMEOUT)
@@ -144,7 +144,7 @@ impl TelemetryCollector {
async move {
let new_path = rudder_event_file_path();
let old_path =
warp_core::paths::state_dir().join(RUDDER_TELEMETRY_EVENTS_FILE_NAME);
galaxy_core::paths::state_dir().join(RUDDER_TELEMETRY_EVENTS_FILE_NAME);
// Try flushing from both new and legacy locations.
for path in [new_path, old_path] {
@@ -156,7 +156,7 @@ impl TelemetryCollector {
// case where we accidentally try to re-flush the events on the next app startup.
if let Err(e) = remove_file(&path) {
if e.kind() != std::io::ErrorKind::NotFound {
warp_core::report_error!(
galaxy_core::report_error!(
anyhow::anyhow!(e).context("Failed to remove persisted event file")
);
}
@@ -184,7 +184,7 @@ impl TelemetryCollector {
if let LocalResult::Single(timestamp) =
Utc.timestamp_opt(last_active_timestamp, 0)
{
warpui::telemetry::record_app_active_event(
galaxyui::telemetry::record_app_active_event(
auth_state.user_id().map(|uid| uid.as_string()),
auth_state.anonymous_id(),
timestamp,
+1 -1
View File
@@ -10,7 +10,7 @@ use serde_json::{json, Value};
use std::sync::OnceLock;
#[cfg(target_family = "wasm")]
use warpui::platform::wasm;
use galaxyui::platform::wasm;
static TELEMETRY_CONTEXT: OnceLock<TelemetryContext> = OnceLock::new();
+2 -2
View File
@@ -1,5 +1,5 @@
use warp_core::telemetry::{TelemetryContextModel, TelemetryContextProvider};
use warpui::{AppContext, ModelContext, SingletonEntity};
use galaxy_core::telemetry::{TelemetryContextModel, TelemetryContextProvider};
use galaxyui::{AppContext, ModelContext, SingletonEntity};
use crate::auth::AuthStateProvider;
+14 -14
View File
@@ -10,14 +10,14 @@ use session_sharing_protocol::common::SessionId as SharedSessionId;
use session_sharing_protocol::sharer::SessionEndedReason;
use strum_macros::EnumDiscriminants;
use strum_macros::EnumIter;
use warp_completer::completer::MatchType;
use warp_core::command::ExitCode;
use warp_core::telemetry::EnablementState;
use warp_core::telemetry::TelemetryEvent as TelemetryEventTrait;
use warp_core::telemetry::TelemetryEventDesc;
use warpui::keymap::Keystroke;
use warpui::notification::{NotificationSendError, RequestPermissionsOutcome};
use warpui::rendering::ThinStrokes;
use galaxy_completer::completer::MatchType;
use galaxy_core::command::ExitCode;
use galaxy_core::telemetry::EnablementState;
use galaxy_core::telemetry::TelemetryEvent as TelemetryEventTrait;
use galaxy_core::telemetry::TelemetryEventDesc;
use galaxyui::keymap::Keystroke;
use galaxyui::notification::{NotificationSendError, RequestPermissionsOutcome};
use galaxyui::rendering::ThinStrokes;
use crate::ai::agent::api::ServerConversationToken;
use crate::ai::agent::conversation::AIConversationId;
@@ -105,7 +105,7 @@ use crate::workspace::tab_settings::TabCloseButtonPosition;
use crate::workspace::tab_settings::WorkspaceDecorationVisibility;
use crate::workspace::TabMovement;
use session_sharing_protocol::sharer::SessionSourceType;
use warp_core::interval_timer::TimingDataPoint;
use galaxy_core::interval_timer::TimingDataPoint;
#[derive(Clone, Serialize, Deserialize)]
pub struct BootstrappingInfo {
@@ -2624,7 +2624,7 @@ pub enum TelemetryEvent {
AgentManagementViewCopiedSessionLink,
/// Detected that Warp is running in an isolated sandbox.
DetectedIsolationPlatform {
platform: warp_isolation_platform::IsolationPlatformType,
platform: galaxy_isolation_platform::IsolationPlatformType,
},
AgentTipShown {
@@ -2852,7 +2852,7 @@ impl TelemetryEventTrait for TelemetryEvent {
}
fn event_descs() -> impl Iterator<Item = Box<dyn TelemetryEventDesc>> {
warp_core::telemetry::enum_events::<Self>()
galaxy_core::telemetry::enum_events::<Self>()
}
}
@@ -5008,7 +5008,7 @@ impl TelemetryEvent {
// We initialize the feature flags so that we can determine which telemetry events to print.
crate::init_feature_flags();
let events: serde_json::Map<String, Value> = warp_core::telemetry::all_events()
let events: serde_json::Map<String, Value> = galaxy_core::telemetry::all_events()
.filter_map(|event| {
if !event.enablement_state().is_enabled() {
return None;
@@ -6677,7 +6677,7 @@ impl TelemetryEventDesc for TelemetryEventDiscriminants {
Self::ObjectLinkCopied => "The web link to an object has been copied.",
Self::FileTreeToggled => "Opened the file tree/project explorer",
Self::GlobalSearchOpened => "Opened the global search view",
Self::GlobalSearchQueryStarted => "Started a global search (warp_ripgrep) search",
Self::GlobalSearchQueryStarted => "Started a global search (galaxy_ripgrep) search",
Self::FileTreeItemAttachedAsContext => {
"Attached a file or directory as context from the file tree"
}
@@ -6994,7 +6994,7 @@ impl TelemetryEventDesc for TelemetryEventDiscriminants {
}
}
warp_core::register_telemetry_event!(TelemetryEvent);
galaxy_core::register_telemetry_event!(TelemetryEvent);
#[cfg(test)]
#[path = "events_test.rs"]
+2 -2
View File
@@ -1,4 +1,4 @@
use warp_core::telemetry::TelemetryEventDesc;
use galaxy_core::telemetry::TelemetryEventDesc;
#[derive(Debug)]
enum TelemetryEventPropertyError {
@@ -16,7 +16,7 @@ enum TelemetryEventPropertyError {
#[cfg(not(target_family = "wasm"))]
fn telemetry_events_have_nonempty_name_and_description() -> Result<(), TelemetryEventPropertyError>
{
for event in warp_core::telemetry::all_events() {
for event in galaxy_core::telemetry::all_events() {
if event.name().is_empty() {
return Err(TelemetryEventPropertyError::EmptyName(event));
}
+8 -8
View File
@@ -5,17 +5,17 @@
macro_rules! send_telemetry_sync_from_ctx {
($event:expr, $ctx:expr) => {
#[allow(unused_imports)]
use warp_core::telemetry::TelemetryEvent as _;
use galaxy_core::telemetry::TelemetryEvent as _;
let event = $event;
if event.enablement_state().is_enabled() {
let server_api =
<$crate::server::server_api::ServerApiProvider as warpui::SingletonEntity>::handle(
<$crate::server::server_api::ServerApiProvider as galaxyui::SingletonEntity>::handle(
$ctx,
)
.as_ref($ctx)
.get();
let privacy_settings_snapshot =
<$crate::settings::PrivacySettings as warpui::SingletonEntity>::handle($ctx)
<$crate::settings::PrivacySettings as galaxyui::SingletonEntity>::handle($ctx)
.as_ref($ctx)
.get_snapshot($ctx);
let _ = $ctx.spawn(
@@ -40,16 +40,16 @@ macro_rules! send_telemetry_sync_from_ctx {
macro_rules! send_telemetry_sync_from_app_ctx {
($event:expr, $app_ctx:expr) => {
#[allow(unused_imports)]
use warp_core::telemetry::TelemetryEvent as _;
use galaxy_core::telemetry::TelemetryEvent as _;
if $event.enablement_state().is_enabled() {
let server_api =
<$crate::server::server_api::ServerApiProvider as warpui::SingletonEntity>::handle(
<$crate::server::server_api::ServerApiProvider as galaxyui::SingletonEntity>::handle(
$app_ctx,
)
.as_ref($app_ctx)
.get();
let privacy_settings_snapshot =
<$crate::settings::PrivacySettings as warpui::SingletonEntity>::handle($app_ctx)
<$crate::settings::PrivacySettings as galaxyui::SingletonEntity>::handle($app_ctx)
.as_ref($app_ctx)
.get_snapshot($app_ctx);
$app_ctx
@@ -75,12 +75,12 @@ macro_rules! send_telemetry_sync_from_app_ctx {
macro_rules! send_telemetry_on_executor {
($auth_state: expr, $event:expr, $executor:expr) => {
#[allow(unused_imports)]
use warp_core::telemetry::TelemetryEvent as _;
use galaxy_core::telemetry::TelemetryEvent as _;
let event = $event;
if event.enablement_state().is_enabled() {
let user_id = $auth_state.user_id().map(|uid| uid.as_string());
let anonymous_id = $auth_state.anonymous_id();
warpui::record_telemetry_on_executor!(
galaxyui::record_telemetry_on_executor!(
user_id,
anonymous_id,
event.name().into(),
+11 -11
View File
@@ -28,22 +28,22 @@ use std::fs::File;
use std::fs::OpenOptions;
use std::future::Future;
use std::path::{Path, PathBuf};
use warp_core::channel::RudderStackDestination;
use warpui::telemetry::Event;
use galaxy_core::channel::RudderStackDestination;
use galaxyui::telemetry::Event;
/// Filename for file where telemetry events are written on app quit.
const RUDDER_TELEMETRY_EVENTS_FILE_NAME: &str = "rudder_telemetry_events.json";
/// Filepath where the Rudder events should be written on app quit.
fn rudder_event_file_path() -> PathBuf {
warp_core::paths::secure_state_dir()
.unwrap_or_else(warp_core::paths::state_dir)
galaxy_core::paths::secure_state_dir()
.unwrap_or_else(galaxy_core::paths::state_dir)
.join(RUDDER_TELEMETRY_EVENTS_FILE_NAME)
}
/// Removes all telemetry events from the app telemetry event queue.
pub fn clear_event_queue() {
let _ = warpui::telemetry::flush_events();
let _ = galaxyui::telemetry::flush_events();
}
pub struct TelemetryApi {
@@ -91,7 +91,7 @@ impl TelemetryApi {
// Batches up telemetry events from the global queue and sends a Message to the Rudderstack API.
// Returns the number of events that were flushed.
pub async fn flush_events(&self, settings_snapshot: PrivacySettingsSnapshot) -> Result<usize> {
let events = warpui::telemetry::flush_events();
let events = galaxyui::telemetry::flush_events();
let event_count = events.len();
#[cfg(not(target_family = "wasm"))]
@@ -169,7 +169,7 @@ impl TelemetryApi {
let file = File::create(path)?;
let events = warpui::telemetry::flush_events();
let events = galaxyui::telemetry::flush_events();
if events.len() > max_event_count {
log::error!("More telemetry events in queue than the limit to persist")
}
@@ -198,7 +198,7 @@ impl TelemetryApi {
#[cfg(not(target_family = "wasm"))]
fn persist_events_to_telemetry_log_file(&self, events: Vec<Event>) -> Result<()> {
let log_directory = warp_logging::log_directory()?;
let log_directory = galaxy_logging::log_directory()?;
let telemetry_file_path = log_directory.join(&*ChannelState::telemetry_file_name());
let file = OpenOptions::new()
@@ -214,16 +214,16 @@ impl TelemetryApi {
&self,
user_id: Option<UserUid>,
anonymous_id: String,
event: impl warp_core::telemetry::TelemetryEvent,
event: impl galaxy_core::telemetry::TelemetryEvent,
settings_snapshot: PrivacySettingsSnapshot,
) -> Result<()> {
let event = warpui::telemetry::create_event(
let event = galaxyui::telemetry::create_event(
user_id.map(|uid| uid.as_string()),
anonymous_id,
event.name().into(),
event.payload(),
event.contains_ugc(),
warpui::time::get_current_time(),
galaxyui::time::get_current_time(),
);
self.send_telemetry_event_internal(event, settings_snapshot)
+4 -4
View File
@@ -15,22 +15,22 @@ fn test_persist_events_doesnt_include_ugc_events() {
let user_id = Some("user".into());
let anonymous_id = "anonymous_id".to_owned();
warpui::telemetry::record_event(
galaxyui::telemetry::record_event(
user_id.clone(),
anonymous_id.clone(),
"non UGC event name".into(),
None, /* payload */
false, /* contains_ugc */
warpui::time::get_current_time(),
galaxyui::time::get_current_time(),
);
warpui::telemetry::record_event(
galaxyui::telemetry::record_event(
user_id.clone(),
anonymous_id.clone(),
"UGC event name".into(),
None, /* payload */
true, /* contains_ugc */
warpui::time::get_current_time(),
galaxyui::time::get_current_time(),
);
let file_path = dirs.root().join("rudderstack");